{"version":3,"sources":["webpack:///./node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/vant/es/swipe-item/index.js","webpack:///./node_modules/vant/es/image/index.js","webpack:///./node_modules/vant/es/utils/dom/raf.js","webpack:///./node_modules/vant/es/swipe/index.js","webpack:///./node_modules/vant/es/mixins/field.js","webpack:///./node_modules/vant/es/uploader/utils.js","webpack:///./node_modules/vant/es/image-preview/shared.js","webpack:///./node_modules/vant/es/image-preview/ImagePreviewItem.js","webpack:///./node_modules/vant/es/image-preview/index.js","webpack:///./node_modules/vant/es/image-preview/ImagePreview.js","webpack:///./node_modules/vant/es/uploader/index.js","webpack:///./node_modules/vant/es/uploader/style/index.js"],"names":["isHidden","el","style","window","getComputedStyle","hidden","display","parentHidden","offsetParent","position","_createNamespace","createComponent","bem","mixins","data","offset","inited","mounted","_this","this","$nextTick","computed","_this$parent","parent","size","vertical","transform","shouldRender","index","lazyRender","active","activeIndicator","maxActive","count","prevActive","loop","nextActive","render","h","arguments","$listeners","slots","props","src","String","fit","alt","round","Boolean","width","Number","height","radius","lazyLoad","iconPrefix","showError","type","default","showLoading","errorIcon","loadingIcon","loading","error","watch","overflow","borderRadius","created","$Lazyload","$on","onLazyLoaded","onLazyLoadError","beforeDestroy","$off","methods","onLoad","event","$emit","_ref","$refs","image","_ref2","onError","onClick","genPlaceholder","$createElement","genImage","imgData","class","attrs","objectFit","name","value","prev","Date","now","fallback","fn","curr","ms","Math","max","id","setTimeout","root","global","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","clearTimeout","raf","call","doubleRaf","cancelRaf","bind","isBind","resize","onVisibilityChange","initialize","clear","autoplay","indicatorColor","duration","touchable","initialSwipe","showIndicators","stopPropagation","rect","deltaX","deltaY","swiping","computedWidth","computedHeight","children","_autoplay","autoPlay","length","maxCount","ceil","abs","minOffset","delta","trackSize","isCorrectDirection","expect","direction","trackStyle","transitionDuration","mainAxis","crossAxis","indicatorStyle","backgroundColor","bindTouchEvent","track","$el","timer","offsetWidth","offsetHeight","getTargetOffset","forEach","swipe","document","onTouchStart","touchStartTime","touchStart","correctPosition","onTouchMove","touchMove","move","onTouchEnd","speed","shouldSwipe","offsetY","offsetX","pace","emitChange","getTargetActive","targetActive","currentPosition","min","targetOffset","_ref$pace","_ref$offset","outRightBound","outLeftBound","resetTouchStatus","next","_this2","swipeTo","options","_this3","targetIndex","immediate","_this4","genIndicator","_this5","slot","Array","apply","map","empty","FieldMixin","inject","vanField","field","resetValidation","validateWithTrigger","toArray","item","isArray","file","resultType","Promise","resolve","reader","FileReader","onload","target","result","readAsDataURL","readAsText","isOversize","files","maxSize","some","IMAGE_REGEXP","isImageUrl","url","test","isImageFile","isImage","indexOf","content","create","getDistance","touches","sqrt","pow","clientX","clientY","instance","show","minZoom","maxZoom","rootWidth","rootHeight","scale","moveX","moveY","moving","zooming","imageRatio","displayWidth","displayHeight","rootRatio","imageStyle","maxMoveX","maxMoveY","val","resetScale","setScale","toggleScale","_this$offsetX","startMoveX","startMoveY","startScale","startDistance","distance","checkTap","_this$offsetX2","_this$offsetY","deltaTime","TAP_TIME","TAP_OFFSET","doubleTapTimer","_event$target","naturalWidth","naturalHeight","imageSlots","skipToggleEvent","className","closeable","asyncClose","images","overlay","transition","showIndex","swipeDuration","startPosition","overlayClass","closeIcon","closeOnPopstate","closeIconPosition","doubleClickTimer","setActive","getBoundingClientRect","emitClose","emitScale","args","genIndex","genCover","cover","genImages","ImagePreviewItem","genClose","onClosed","defaultConfig","onClose","onChange","getContainer","extend","createElement","body","appendChild","onScale","$once","Component","install","use","inheritAttrs","model","prop","disabled","uploadText","afterRead","Function","beforeRead","beforeDelete","previewSize","previewOptions","Object","accept","fileList","MAX_VALUE","deletable","showUpload","previewImage","previewFullImage","imageFit","uploadIcon","previewSizeWithUnit","getDetail","slice","response","resetInput","then","readFile","catch","oversize","all","contents","status","message","onAfterRead","validFiles","oversizeFiles","push","isValidFiles","concat","onDelete","_file$beforeDelete","deleteFile","splice","input","onPreviewImage","imageFiles","filter","imageContents","imagePreview","closeImagePreview","close","chooseFile","click","genPreviewMask","MaskIcon","showMessage","genPreviewItem","_item$deletable","_item$previewSize","_item$imageFit","_this6","deleteAble","showDelete","DeleteIcon","PreviewCoverContent","PreviewCover","Preview","genPreviewList","genUpload","Input","$attrs"],"mappings":"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","file":"js/chunk-564a5654.6cb1faeb.js","sourcesContent":["export function isHidden(el) {\n var style = window.getComputedStyle(el);\n var hidden = style.display === 'none'; // offsetParent returns null in the following situations:\n // 1. The element or its parent element has the display property set to none.\n // 2. The element has the position property set to fixed\n\n var parentHidden = el.offsetParent === null && style.position !== 'fixed';\n return hidden || parentHidden;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('swipe-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSwipe')],\n data: function data() {\n return {\n offset: 0,\n inited: false,\n mounted: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.mounted = true;\n });\n },\n computed: {\n style: function style() {\n var style = {};\n var _this$parent = this.parent,\n size = _this$parent.size,\n vertical = _this$parent.vertical;\n\n if (size) {\n style[vertical ? 'height' : 'width'] = size + \"px\";\n }\n\n if (this.offset) {\n style.transform = \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\";\n }\n\n return style;\n },\n shouldRender: function shouldRender() {\n var index = this.index,\n inited = this.inited,\n parent = this.parent,\n mounted = this.mounted;\n\n if (!parent.lazyRender || inited) {\n return true;\n } // wait for all item to mount, so we can get the exact count\n\n\n if (!mounted) {\n return false;\n }\n\n var active = parent.activeIndicator;\n var maxActive = parent.count - 1;\n var prevActive = active === 0 && parent.loop ? maxActive : active - 1;\n var nextActive = active === maxActive && parent.loop ? 0 : active + 1;\n var shouldRender = index === active || index === prevActive || index === nextActive;\n\n if (shouldRender) {\n this.inited = true;\n }\n\n return shouldRender;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style,\n \"on\": _extends({}, this.$listeners)\n }, [this.shouldRender && this.slots()]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit, inBrowser } from '../utils';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('image'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n src: String,\n fit: String,\n alt: String,\n round: Boolean,\n width: [Number, String],\n height: [Number, String],\n radius: [Number, String],\n lazyLoad: Boolean,\n iconPrefix: String,\n showError: {\n type: Boolean,\n default: true\n },\n showLoading: {\n type: Boolean,\n default: true\n },\n errorIcon: {\n type: String,\n default: 'photo-fail'\n },\n loadingIcon: {\n type: String,\n default: 'photo'\n }\n },\n data: function data() {\n return {\n loading: true,\n error: false\n };\n },\n watch: {\n src: function src() {\n this.loading = true;\n this.error = false;\n }\n },\n computed: {\n style: function style() {\n var style = {};\n\n if (isDef(this.width)) {\n style.width = addUnit(this.width);\n }\n\n if (isDef(this.height)) {\n style.height = addUnit(this.height);\n }\n\n if (isDef(this.radius)) {\n style.overflow = 'hidden';\n style.borderRadius = addUnit(this.radius);\n }\n\n return style;\n }\n },\n created: function created() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload && inBrowser) {\n $Lazyload.$on('loaded', this.onLazyLoaded);\n $Lazyload.$on('error', this.onLazyLoadError);\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload) {\n $Lazyload.$off('loaded', this.onLazyLoaded);\n $Lazyload.$off('error', this.onLazyLoadError);\n }\n },\n methods: {\n onLoad: function onLoad(event) {\n this.loading = false;\n this.$emit('load', event);\n },\n onLazyLoaded: function onLazyLoaded(_ref) {\n var el = _ref.el;\n\n if (el === this.$refs.image && this.loading) {\n this.onLoad();\n }\n },\n onLazyLoadError: function onLazyLoadError(_ref2) {\n var el = _ref2.el;\n\n if (el === this.$refs.image && !this.error) {\n this.onError();\n }\n },\n onError: function onError(event) {\n this.error = true;\n this.loading = false;\n this.$emit('error', event);\n },\n onClick: function onClick(event) {\n this.$emit('click', event);\n },\n genPlaceholder: function genPlaceholder() {\n var h = this.$createElement;\n\n if (this.loading && this.showLoading) {\n return h(\"div\", {\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Icon, {\n \"attrs\": {\n \"name\": this.loadingIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('loading-icon')\n })]);\n }\n\n if (this.error && this.showError) {\n return h(\"div\", {\n \"class\": bem('error')\n }, [this.slots('error') || h(Icon, {\n \"attrs\": {\n \"name\": this.errorIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('error-icon')\n })]);\n }\n },\n genImage: function genImage() {\n var h = this.$createElement;\n var imgData = {\n class: bem('img'),\n attrs: {\n alt: this.alt\n },\n style: {\n objectFit: this.fit\n }\n };\n\n if (this.error) {\n return;\n }\n\n if (this.lazyLoad) {\n return h(\"img\", _mergeJSXProps([{\n \"ref\": \"image\",\n \"directives\": [{\n name: \"lazy\",\n value: this.src\n }]\n }, imgData]));\n }\n\n return h(\"img\", _mergeJSXProps2([{\n \"attrs\": {\n \"src\": this.src\n },\n \"on\": {\n \"load\": this.onLoad,\n \"error\": this.onError\n }\n }, imgData]));\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n round: this.round\n }),\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genImage(), this.genPlaceholder(), this.slots()]);\n }\n});","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from '..';\nvar prev = Date.now();\n/* istanbul ignore next */\n\nfunction fallback(fn) {\n var curr = Date.now();\n var ms = Math.max(0, 16 - (curr - prev));\n var id = setTimeout(fn, ms);\n prev = curr + ms;\n return id;\n}\n/* istanbul ignore next */\n\n\nvar root = isServer ? global : window;\n/* istanbul ignore next */\n\nvar iRaf = root.requestAnimationFrame || fallback;\n/* istanbul ignore next */\n\nvar iCancel = root.cancelAnimationFrame || root.clearTimeout;\nexport function raf(fn) {\n return iRaf.call(root, fn);\n} // double raf for animation\n\nexport function doubleRaf(fn) {\n raf(function () {\n raf(fn);\n });\n}\nexport function cancelRaf(id) {\n iCancel.call(root, id);\n}","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { preventDefault } from '../utils/dom/event';\nimport { doubleRaf } from '../utils/dom/raf';\nimport { range } from '../utils/format/number'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('swipe'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin, ParentMixin('vanSwipe'), BindEventMixin(function (bind, isBind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n bind(window, 'visibilitychange', this.onVisibilityChange);\n\n if (isBind) {\n this.initialize();\n } else {\n this.clear();\n }\n })],\n props: {\n width: [Number, String],\n height: [Number, String],\n autoplay: [Number, String],\n vertical: Boolean,\n lazyRender: Boolean,\n indicatorColor: String,\n loop: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 500\n },\n touchable: {\n type: Boolean,\n default: true\n },\n initialSwipe: {\n type: [Number, String],\n default: 0\n },\n showIndicators: {\n type: Boolean,\n default: true\n },\n stopPropagation: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n rect: null,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swiping: false,\n computedWidth: 0,\n computedHeight: 0\n };\n },\n watch: {\n children: function children() {\n this.initialize();\n },\n initialSwipe: function initialSwipe() {\n this.initialize();\n },\n autoplay: function autoplay(_autoplay) {\n if (_autoplay > 0) {\n this.autoPlay();\n } else {\n this.clear();\n }\n }\n },\n computed: {\n count: function count() {\n return this.children.length;\n },\n maxCount: function maxCount() {\n return Math.ceil(Math.abs(this.minOffset) / this.size);\n },\n delta: function delta() {\n return this.vertical ? this.deltaY : this.deltaX;\n },\n size: function size() {\n return this[this.vertical ? 'computedHeight' : 'computedWidth'];\n },\n trackSize: function trackSize() {\n return this.count * this.size;\n },\n activeIndicator: function activeIndicator() {\n return (this.active + this.count) % this.count;\n },\n isCorrectDirection: function isCorrectDirection() {\n var expect = this.vertical ? 'vertical' : 'horizontal';\n return this.direction === expect;\n },\n trackStyle: function trackStyle() {\n var style = {\n transitionDuration: (this.swiping ? 0 : this.duration) + \"ms\",\n transform: \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n\n if (this.size) {\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n style[mainAxis] = this.trackSize + \"px\";\n style[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '';\n }\n\n return style;\n },\n indicatorStyle: function indicatorStyle() {\n return {\n backgroundColor: this.indicatorColor\n };\n },\n minOffset: function minOffset() {\n return (this.vertical ? this.rect.height : this.rect.width) - this.size * this.count;\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$refs.track);\n },\n methods: {\n // initialize swipe position\n initialize: function initialize(active) {\n if (active === void 0) {\n active = +this.initialSwipe;\n }\n\n if (!this.$el || isHidden(this.$el)) {\n return;\n }\n\n clearTimeout(this.timer);\n var rect = {\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n };\n this.rect = rect;\n this.swiping = true;\n this.active = active;\n this.computedWidth = +this.width || rect.width;\n this.computedHeight = +this.height || rect.height;\n this.offset = this.getTargetOffset(active);\n this.children.forEach(function (swipe) {\n swipe.offset = 0;\n });\n this.autoPlay();\n },\n // @exposed-api\n resize: function resize() {\n this.initialize(this.activeIndicator);\n },\n onVisibilityChange: function onVisibilityChange() {\n if (document.hidden) {\n this.clear();\n } else {\n this.autoPlay();\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (!this.touchable) return;\n this.clear();\n this.touchStartTime = Date.now();\n this.touchStart(event);\n this.correctPosition();\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable || !this.swiping) return;\n this.touchMove(event);\n\n if (this.isCorrectDirection) {\n preventDefault(event, this.stopPropagation);\n this.move({\n offset: this.delta\n });\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.touchable || !this.swiping) return;\n var size = this.size,\n delta = this.delta;\n var duration = Date.now() - this.touchStartTime;\n var speed = delta / duration;\n var shouldSwipe = Math.abs(speed) > 0.25 || Math.abs(delta) > size / 2;\n\n if (shouldSwipe && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n var pace = 0;\n\n if (this.loop) {\n pace = offset > 0 ? delta > 0 ? -1 : 1 : 0;\n } else {\n pace = -Math[delta > 0 ? 'ceil' : 'floor'](delta / size);\n }\n\n this.move({\n pace: pace,\n emitChange: true\n });\n } else if (delta) {\n this.move({\n pace: 0\n });\n }\n\n this.swiping = false;\n this.autoPlay();\n },\n getTargetActive: function getTargetActive(pace) {\n var active = this.active,\n count = this.count,\n maxCount = this.maxCount;\n\n if (pace) {\n if (this.loop) {\n return range(active + pace, -1, count);\n }\n\n return range(active + pace, 0, maxCount);\n }\n\n return active;\n },\n getTargetOffset: function getTargetOffset(targetActive, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n var currentPosition = targetActive * this.size;\n\n if (!this.loop) {\n currentPosition = Math.min(currentPosition, -this.minOffset);\n }\n\n var targetOffset = offset - currentPosition;\n\n if (!this.loop) {\n targetOffset = range(targetOffset, this.minOffset, 0);\n }\n\n return targetOffset;\n },\n move: function move(_ref) {\n var _ref$pace = _ref.pace,\n pace = _ref$pace === void 0 ? 0 : _ref$pace,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? 0 : _ref$offset,\n emitChange = _ref.emitChange;\n var loop = this.loop,\n count = this.count,\n active = this.active,\n children = this.children,\n trackSize = this.trackSize,\n minOffset = this.minOffset;\n\n if (count <= 1) {\n return;\n }\n\n var targetActive = this.getTargetActive(pace);\n var targetOffset = this.getTargetOffset(targetActive, offset); // auto move first and last swipe in loop mode\n\n if (loop) {\n if (children[0] && targetOffset !== minOffset) {\n var outRightBound = targetOffset < minOffset;\n children[0].offset = outRightBound ? trackSize : 0;\n }\n\n if (children[count - 1] && targetOffset !== 0) {\n var outLeftBound = targetOffset > 0;\n children[count - 1].offset = outLeftBound ? -trackSize : 0;\n }\n }\n\n this.active = targetActive;\n this.offset = targetOffset;\n\n if (emitChange && targetActive !== active) {\n this.$emit('change', this.activeIndicator);\n }\n },\n // @exposed-api\n prev: function prev() {\n var _this = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this.swiping = false;\n\n _this.move({\n pace: -1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n next: function next() {\n var _this2 = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this2.swiping = false;\n\n _this2.move({\n pace: 1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n var targetIndex;\n\n if (_this3.loop && index === _this3.count) {\n targetIndex = _this3.active === 0 ? 0 : index;\n } else {\n targetIndex = index % _this3.count;\n }\n\n if (options.immediate) {\n doubleRaf(function () {\n _this3.swiping = false;\n });\n } else {\n _this3.swiping = false;\n }\n\n _this3.move({\n pace: targetIndex - _this3.active,\n emitChange: true\n });\n });\n },\n correctPosition: function correctPosition() {\n this.swiping = true;\n\n if (this.active <= -1) {\n this.move({\n pace: this.count\n });\n }\n\n if (this.active >= this.count) {\n this.move({\n pace: -this.count\n });\n }\n },\n clear: function clear() {\n clearTimeout(this.timer);\n },\n autoPlay: function autoPlay() {\n var _this4 = this;\n\n var autoplay = this.autoplay;\n\n if (autoplay > 0 && this.count > 1) {\n this.clear();\n this.timer = setTimeout(function () {\n _this4.next();\n\n _this4.autoPlay();\n }, autoplay);\n }\n },\n genIndicator: function genIndicator() {\n var _this5 = this;\n\n var h = this.$createElement;\n var count = this.count,\n activeIndicator = this.activeIndicator;\n var slot = this.slots('indicator');\n\n if (slot) {\n return slot;\n }\n\n if (this.showIndicators && count > 1) {\n return h(\"div\", {\n \"class\": bem('indicators', {\n vertical: this.vertical\n })\n }, [Array.apply(void 0, Array(count)).map(function (empty, index) {\n return h(\"i\", {\n \"class\": bem('indicator', {\n active: index === activeIndicator\n }),\n \"style\": index === activeIndicator ? _this5.indicatorStyle : null\n });\n })]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"style\": this.trackStyle,\n \"class\": bem('track', {\n vertical: this.vertical\n })\n }, [this.slots()]), this.genIndicator()]);\n }\n});","export var FieldMixin = {\n inject: {\n vanField: {\n default: null\n }\n },\n watch: {\n value: function value() {\n var field = this.vanField;\n\n if (field) {\n field.resetValidation();\n field.validateWithTrigger('onChange');\n }\n }\n },\n created: function created() {\n var field = this.vanField;\n\n if (field && !field.children) {\n field.children = this;\n }\n }\n};","export function toArray(item) {\n if (Array.isArray(item)) {\n return item;\n }\n\n return [item];\n}\nexport function readFile(file, resultType) {\n return new Promise(function (resolve) {\n if (resultType === 'file') {\n resolve();\n return;\n }\n\n var reader = new FileReader();\n\n reader.onload = function (event) {\n resolve(event.target.result);\n };\n\n if (resultType === 'dataUrl') {\n reader.readAsDataURL(file);\n } else if (resultType === 'text') {\n reader.readAsText(file);\n }\n });\n}\nexport function isOversize(files, maxSize) {\n return toArray(files).some(function (file) {\n return file.size > maxSize;\n });\n}\nvar IMAGE_REGEXP = /\\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;\nexport function isImageUrl(url) {\n return IMAGE_REGEXP.test(url);\n}\nexport function isImageFile(item) {\n // some special urls cannot be recognized\n // user can add `isImage` flag to mark it as an image url\n if (item.isImage) {\n return true;\n }\n\n if (item.file && item.file.type) {\n return item.file.type.indexOf('image') === 0;\n }\n\n if (item.url) {\n return isImageUrl(item.url);\n }\n\n if (item.content) {\n return item.content.indexOf('data:image') === 0;\n }\n\n return false;\n}","import { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('image-preview'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport { createComponent, bem };","// Utils\nimport { bem } from './shared';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch'; // Component\n\nimport Image from '../image';\nimport Loading from '../loading';\nimport SwipeItem from '../swipe-item';\n\nfunction getDistance(touches) {\n return Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));\n}\n\nexport default {\n mixins: [TouchMixin],\n props: {\n src: String,\n show: Boolean,\n active: Number,\n minZoom: [Number, String],\n maxZoom: [Number, String],\n rootWidth: Number,\n rootHeight: Number\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n imageRatio: 0,\n displayWidth: 0,\n displayHeight: 0\n };\n },\n computed: {\n vertical: function vertical() {\n var rootWidth = this.rootWidth,\n rootHeight = this.rootHeight;\n var rootRatio = rootHeight / rootWidth;\n return this.imageRatio > rootRatio;\n },\n imageStyle: function imageStyle() {\n var scale = this.scale;\n var style = {\n transitionDuration: this.zooming || this.moving ? '0s' : '.3s'\n };\n\n if (scale !== 1) {\n var offsetX = this.moveX / scale;\n var offsetY = this.moveY / scale;\n style.transform = \"scale(\" + scale + \", \" + scale + \") translate(\" + offsetX + \"px, \" + offsetY + \"px)\";\n }\n\n return style;\n },\n maxMoveX: function maxMoveX() {\n if (this.imageRatio) {\n var displayWidth = this.vertical ? this.rootHeight / this.imageRatio : this.rootWidth;\n return Math.max(0, (this.scale * displayWidth - this.rootWidth) / 2);\n }\n\n return 0;\n },\n maxMoveY: function maxMoveY() {\n if (this.imageRatio) {\n var displayHeight = this.vertical ? this.rootHeight : this.rootWidth * this.imageRatio;\n return Math.max(0, (this.scale * displayHeight - this.rootHeight) / 2);\n }\n\n return 0;\n }\n },\n watch: {\n active: 'resetScale',\n show: function show(val) {\n if (!val) {\n this.resetScale();\n }\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n resetScale: function resetScale() {\n this.setScale(1);\n this.moveX = 0;\n this.moveY = 0;\n },\n setScale: function setScale(scale) {\n scale = range(scale, +this.minZoom, +this.maxZoom);\n\n if (scale !== this.scale) {\n this.scale = scale;\n this.$emit('scale', {\n scale: this.scale,\n index: this.active\n });\n }\n },\n toggleScale: function toggleScale() {\n var scale = this.scale > 1 ? 1 : 2;\n this.setScale(scale);\n this.moveX = 0;\n this.moveY = 0;\n },\n onTouchStart: function onTouchStart(event) {\n var touches = event.touches;\n var _this$offsetX = this.offsetX,\n offsetX = _this$offsetX === void 0 ? 0 : _this$offsetX;\n this.touchStart(event);\n this.touchStartTime = new Date();\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.moving = touches.length === 1 && this.scale !== 1;\n this.zooming = touches.length === 2 && !offsetX;\n\n if (this.zooming) {\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n }\n },\n onTouchMove: function onTouchMove(event) {\n var touches = event.touches;\n this.touchMove(event);\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\n var moveX = this.deltaX + this.startMoveX;\n var moveY = this.deltaY + this.startMoveY;\n this.moveX = range(moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(moveY, -this.maxMoveY, this.maxMoveY);\n }\n\n if (this.zooming && touches.length === 2) {\n var distance = getDistance(touches);\n var scale = this.startScale * distance / this.startDistance;\n this.setScale(scale);\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n var stopPropagation = false;\n /* istanbul ignore else */\n\n if (this.moving || this.zooming) {\n stopPropagation = true;\n\n if (this.moving && this.startMoveX === this.moveX && this.startMoveY === this.moveY) {\n stopPropagation = false;\n }\n\n if (!event.touches.length) {\n if (this.zooming) {\n this.moveX = range(this.moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(this.moveY, -this.maxMoveY, this.maxMoveY);\n this.zooming = false;\n }\n\n this.moving = false;\n this.startMoveX = 0;\n this.startMoveY = 0;\n this.startScale = 1;\n\n if (this.scale < 1) {\n this.resetScale();\n }\n }\n } // eliminate tap delay on safari\n\n\n preventDefault(event, stopPropagation);\n this.checkTap();\n this.resetTouchStatus();\n },\n checkTap: function checkTap() {\n var _this = this;\n\n var _this$offsetX2 = this.offsetX,\n offsetX = _this$offsetX2 === void 0 ? 0 : _this$offsetX2,\n _this$offsetY = this.offsetY,\n offsetY = _this$offsetY === void 0 ? 0 : _this$offsetY;\n var deltaTime = new Date() - this.touchStartTime;\n var TAP_TIME = 250;\n var TAP_OFFSET = 10;\n\n if (offsetX < TAP_OFFSET && offsetY < TAP_OFFSET && deltaTime < TAP_TIME) {\n if (this.doubleTapTimer) {\n clearTimeout(this.doubleTapTimer);\n this.doubleTapTimer = null;\n this.toggleScale();\n } else {\n this.doubleTapTimer = setTimeout(function () {\n _this.$emit('close');\n\n _this.doubleTapTimer = null;\n }, TAP_TIME);\n }\n }\n },\n onLoad: function onLoad(event) {\n var _event$target = event.target,\n naturalWidth = _event$target.naturalWidth,\n naturalHeight = _event$target.naturalHeight;\n this.imageRatio = naturalHeight / naturalWidth;\n }\n },\n render: function render() {\n var h = arguments[0];\n var imageSlots = {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n }\n });\n }\n };\n return h(SwipeItem, {\n \"class\": bem('swipe-item')\n }, [h(Image, {\n \"attrs\": {\n \"src\": this.src,\n \"fit\": \"contain\"\n },\n \"class\": bem('image', {\n vertical: this.vertical\n }),\n \"style\": this.imageStyle,\n \"scopedSlots\": imageSlots,\n \"on\": {\n \"load\": this.onLoad\n }\n })]);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueImagePreview from './ImagePreview';\nimport { isServer } from '../utils';\nvar instance;\nvar defaultConfig = {\n loop: true,\n value: true,\n images: [],\n maxZoom: 3,\n minZoom: 1 / 3,\n onClose: null,\n onChange: null,\n className: '',\n showIndex: true,\n closeable: false,\n closeIcon: 'clear',\n asyncClose: false,\n transition: 'van-fade',\n getContainer: 'body',\n startPosition: 0,\n swipeDuration: 300,\n showIndicators: false,\n closeOnPopstate: true,\n closeIconPosition: 'top-right'\n};\n\nvar initInstance = function initInstance() {\n instance = new (Vue.extend(VueImagePreview))({\n el: document.createElement('div')\n });\n document.body.appendChild(instance.$el);\n instance.$on('change', function (index) {\n if (instance.onChange) {\n instance.onChange(index);\n }\n });\n instance.$on('scale', function (data) {\n if (instance.onScale) {\n instance.onScale(data);\n }\n });\n};\n\nvar ImagePreview = function ImagePreview(images, startPosition) {\n if (startPosition === void 0) {\n startPosition = 0;\n }\n\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n initInstance();\n }\n\n var options = Array.isArray(images) ? {\n images: images,\n startPosition: startPosition\n } : images;\n\n _extends(instance, defaultConfig, options);\n\n instance.$once('input', function (show) {\n instance.value = show;\n });\n instance.$once('closed', function () {\n instance.images = [];\n });\n\n if (options.onClose) {\n instance.$off('close');\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.Component = VueImagePreview;\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;","// Utils\nimport { bem, createComponent } from './shared'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Icon from '../icon';\nimport Swipe from '../swipe';\nimport ImagePreviewItem from './ImagePreviewItem';\nexport default createComponent({\n mixins: [TouchMixin, PopupMixin({\n skipToggleEvent: true\n }), BindEventMixin(function (bind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n })],\n props: {\n className: null,\n closeable: Boolean,\n asyncClose: Boolean,\n showIndicators: Boolean,\n images: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n loop: {\n type: Boolean,\n default: true\n },\n overlay: {\n type: Boolean,\n default: true\n },\n minZoom: {\n type: [Number, String],\n default: 1 / 3\n },\n maxZoom: {\n type: [Number, String],\n default: 3\n },\n transition: {\n type: String,\n default: 'van-fade'\n },\n showIndex: {\n type: Boolean,\n default: true\n },\n swipeDuration: {\n type: [Number, String],\n default: 300\n },\n startPosition: {\n type: [Number, String],\n default: 0\n },\n overlayClass: {\n type: String,\n default: bem('overlay')\n },\n closeIcon: {\n type: String,\n default: 'clear'\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n }\n },\n data: function data() {\n return {\n active: 0,\n rootWidth: 0,\n rootHeight: 0,\n doubleClickTimer: null\n };\n },\n mounted: function mounted() {\n this.resize();\n },\n watch: {\n startPosition: 'setActive',\n value: function value(val) {\n var _this = this;\n\n if (val) {\n this.setActive(+this.startPosition);\n this.$nextTick(function () {\n _this.resize();\n\n _this.$refs.swipe.swipeTo(+_this.startPosition, {\n immediate: true\n });\n });\n } else {\n this.$emit('close', {\n index: this.active,\n url: this.images[this.active]\n });\n }\n }\n },\n methods: {\n resize: function resize() {\n if (this.$el && this.$el.getBoundingClientRect) {\n var rect = this.$el.getBoundingClientRect();\n this.rootWidth = rect.width;\n this.rootHeight = rect.height;\n }\n },\n emitClose: function emitClose() {\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n },\n emitScale: function emitScale(args) {\n this.$emit('scale', args);\n },\n setActive: function setActive(active) {\n if (active !== this.active) {\n this.active = active;\n this.$emit('change', active);\n }\n },\n genIndex: function genIndex() {\n var h = this.$createElement;\n\n if (this.showIndex) {\n return h(\"div\", {\n \"class\": bem('index')\n }, [this.slots('index', {\n index: this.active\n }) || this.active + 1 + \" / \" + this.images.length]);\n }\n },\n genCover: function genCover() {\n var h = this.$createElement;\n var cover = this.slots('cover');\n\n if (cover) {\n return h(\"div\", {\n \"class\": bem('cover')\n }, [cover]);\n }\n },\n genImages: function genImages() {\n var _this2 = this;\n\n var h = this.$createElement;\n return h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"lazyRender\": true,\n \"loop\": this.loop,\n \"duration\": this.swipeDuration,\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators,\n \"indicatorColor\": \"white\"\n },\n \"class\": bem('swipe'),\n \"on\": {\n \"change\": this.setActive\n }\n }, [this.images.map(function (image) {\n return h(ImagePreviewItem, {\n \"attrs\": {\n \"src\": image,\n \"show\": _this2.value,\n \"active\": _this2.active,\n \"maxZoom\": _this2.maxZoom,\n \"minZoom\": _this2.minZoom,\n \"rootWidth\": _this2.rootWidth,\n \"rootHeight\": _this2.rootHeight\n },\n \"on\": {\n \"scale\": _this2.emitScale,\n \"close\": _this2.emitClose\n }\n });\n })]);\n },\n genClose: function genClose() {\n var h = this.$createElement;\n\n if (this.closeable) {\n return h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.emitClose\n }\n });\n }\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n if (this.$refs.swipe) {\n this.$refs.swipe.swipeTo(index, options);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterLeave\": this.onClosed\n }\n }, [this.shouldRender ? h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem(), this.className]\n }, [this.genClose(), this.genImages(), this.genIndex(), this.genCover()]) : null]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, addUnit, noop, isPromise, isDef } from '../utils';\nimport { toArray, readFile as _readFile, isOversize, isImageFile } from './utils'; // Mixins\n\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Icon from '../icon';\nimport Image from '../image';\nimport Loading from '../loading';\nimport ImagePreview from '../image-preview';\n\nvar _createNamespace = createNamespace('uploader'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n mixins: [FieldMixin],\n model: {\n prop: 'fileList'\n },\n props: {\n disabled: Boolean,\n lazyLoad: Boolean,\n uploadText: String,\n afterRead: Function,\n beforeRead: Function,\n beforeDelete: Function,\n previewSize: [Number, String],\n previewOptions: Object,\n name: {\n type: [Number, String],\n default: ''\n },\n accept: {\n type: String,\n default: 'image/*'\n },\n fileList: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n maxSize: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n maxCount: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n deletable: {\n type: Boolean,\n default: true\n },\n showUpload: {\n type: Boolean,\n default: true\n },\n previewImage: {\n type: Boolean,\n default: true\n },\n previewFullImage: {\n type: Boolean,\n default: true\n },\n imageFit: {\n type: String,\n default: 'cover'\n },\n resultType: {\n type: String,\n default: 'dataUrl'\n },\n uploadIcon: {\n type: String,\n default: 'photograph'\n }\n },\n computed: {\n previewSizeWithUnit: function previewSizeWithUnit() {\n return addUnit(this.previewSize);\n },\n // for form\n value: function value() {\n return this.fileList;\n }\n },\n methods: {\n getDetail: function getDetail(index) {\n if (index === void 0) {\n index = this.fileList.length;\n }\n\n return {\n name: this.name,\n index: index\n };\n },\n onChange: function onChange(event) {\n var _this = this;\n\n var files = event.target.files;\n\n if (this.disabled || !files.length) {\n return;\n }\n\n files = files.length === 1 ? files[0] : [].slice.call(files);\n\n if (this.beforeRead) {\n var response = this.beforeRead(files, this.getDetail());\n\n if (!response) {\n this.resetInput();\n return;\n }\n\n if (isPromise(response)) {\n response.then(function (data) {\n if (data) {\n _this.readFile(data);\n } else {\n _this.readFile(files);\n }\n }).catch(this.resetInput);\n return;\n }\n }\n\n this.readFile(files);\n },\n readFile: function readFile(files) {\n var _this2 = this;\n\n var oversize = isOversize(files, this.maxSize);\n\n if (Array.isArray(files)) {\n var maxCount = this.maxCount - this.fileList.length;\n\n if (files.length > maxCount) {\n files = files.slice(0, maxCount);\n }\n\n Promise.all(files.map(function (file) {\n return _readFile(file, _this2.resultType);\n })).then(function (contents) {\n var fileList = files.map(function (file, index) {\n var result = {\n file: file,\n status: '',\n message: ''\n };\n\n if (contents[index]) {\n result.content = contents[index];\n }\n\n return result;\n });\n\n _this2.onAfterRead(fileList, oversize);\n });\n } else {\n _readFile(files, this.resultType).then(function (content) {\n var result = {\n file: files,\n status: '',\n message: ''\n };\n\n if (content) {\n result.content = content;\n }\n\n _this2.onAfterRead(result, oversize);\n });\n }\n },\n onAfterRead: function onAfterRead(files, oversize) {\n var _this3 = this;\n\n this.resetInput();\n var validFiles = files;\n\n if (oversize) {\n var oversizeFiles = files;\n\n if (Array.isArray(files)) {\n oversizeFiles = [];\n validFiles = [];\n files.forEach(function (item) {\n if (item.file) {\n if (item.file.size > _this3.maxSize) {\n oversizeFiles.push(item);\n } else {\n validFiles.push(item);\n }\n }\n });\n } else {\n validFiles = null;\n }\n\n this.$emit('oversize', oversizeFiles, this.getDetail());\n }\n\n var isValidFiles = Array.isArray(validFiles) ? Boolean(validFiles.length) : Boolean(validFiles);\n\n if (isValidFiles) {\n this.$emit('input', [].concat(this.fileList, toArray(validFiles)));\n\n if (this.afterRead) {\n this.afterRead(validFiles, this.getDetail());\n }\n }\n },\n onDelete: function onDelete(file, index) {\n var _file$beforeDelete,\n _this4 = this;\n\n var beforeDelete = (_file$beforeDelete = file.beforeDelete) != null ? _file$beforeDelete : this.beforeDelete;\n\n if (beforeDelete) {\n var response = beforeDelete(file, this.getDetail(index));\n\n if (!response) {\n return;\n }\n\n if (isPromise(response)) {\n response.then(function () {\n _this4.deleteFile(file, index);\n }).catch(noop);\n return;\n }\n }\n\n this.deleteFile(file, index);\n },\n deleteFile: function deleteFile(file, index) {\n var fileList = this.fileList.slice(0);\n fileList.splice(index, 1);\n this.$emit('input', fileList);\n this.$emit('delete', file, this.getDetail(index));\n },\n resetInput: function resetInput() {\n /* istanbul ignore else */\n if (this.$refs.input) {\n this.$refs.input.value = '';\n }\n },\n onPreviewImage: function onPreviewImage(item) {\n var _this5 = this;\n\n if (!this.previewFullImage) {\n return;\n }\n\n var imageFiles = this.fileList.filter(function (item) {\n return isImageFile(item);\n });\n var imageContents = imageFiles.map(function (item) {\n return item.content || item.url;\n });\n this.imagePreview = ImagePreview(_extends({\n images: imageContents,\n startPosition: imageFiles.indexOf(item),\n onClose: function onClose() {\n _this5.$emit('close-preview');\n }\n }, this.previewOptions));\n },\n // @exposed-api\n closeImagePreview: function closeImagePreview() {\n if (this.imagePreview) {\n this.imagePreview.close();\n }\n },\n // @exposed-api\n chooseFile: function chooseFile() {\n if (this.disabled) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (this.$refs.input) {\n this.$refs.input.click();\n }\n },\n genPreviewMask: function genPreviewMask(item) {\n var h = this.$createElement;\n var status = item.status,\n message = item.message;\n\n if (status === 'uploading' || status === 'failed') {\n var MaskIcon = status === 'failed' ? h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": bem('mask-icon')\n }) : h(Loading, {\n \"class\": bem('loading')\n });\n var showMessage = isDef(message) && message !== '';\n return h(\"div\", {\n \"class\": bem('mask')\n }, [MaskIcon, showMessage && h(\"div\", {\n \"class\": bem('mask-message')\n }, [message])]);\n }\n },\n genPreviewItem: function genPreviewItem(item, index) {\n var _item$deletable,\n _this6 = this,\n _item$previewSize,\n _item$imageFit;\n\n var h = this.$createElement;\n var deleteAble = (_item$deletable = item.deletable) != null ? _item$deletable : this.deletable;\n var showDelete = item.status !== 'uploading' && deleteAble;\n var DeleteIcon = showDelete && h(\"div\", {\n \"class\": bem('preview-delete'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n\n _this6.onDelete(item, index);\n }\n }\n }, [h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('preview-delete-icon')\n })]);\n var PreviewCoverContent = this.slots('preview-cover', _extends({\n index: index\n }, item));\n var PreviewCover = PreviewCoverContent && h(\"div\", {\n \"class\": bem('preview-cover')\n }, [PreviewCoverContent]);\n var previewSize = (_item$previewSize = item.previewSize) != null ? _item$previewSize : this.previewSize;\n var imageFit = (_item$imageFit = item.imageFit) != null ? _item$imageFit : this.imageFit;\n var Preview = isImageFile(item) ? h(Image, {\n \"attrs\": {\n \"fit\": imageFit,\n \"src\": item.content || item.url,\n \"width\": previewSize,\n \"height\": previewSize,\n \"lazyLoad\": this.lazyLoad\n },\n \"class\": bem('preview-image'),\n \"on\": {\n \"click\": function click() {\n _this6.onPreviewImage(item);\n }\n }\n }, [PreviewCover]) : h(\"div\", {\n \"class\": bem('file'),\n \"style\": {\n width: this.previewSizeWithUnit,\n height: this.previewSizeWithUnit\n }\n }, [h(Icon, {\n \"class\": bem('file-icon'),\n \"attrs\": {\n \"name\": \"description\"\n }\n }), h(\"div\", {\n \"class\": [bem('file-name'), 'van-ellipsis']\n }, [item.file ? item.file.name : item.url]), PreviewCover]);\n return h(\"div\", {\n \"class\": bem('preview'),\n \"on\": {\n \"click\": function click() {\n _this6.$emit('click-preview', item, _this6.getDetail(index));\n }\n }\n }, [Preview, this.genPreviewMask(item), DeleteIcon]);\n },\n genPreviewList: function genPreviewList() {\n if (this.previewImage) {\n return this.fileList.map(this.genPreviewItem);\n }\n },\n genUpload: function genUpload() {\n var h = this.$createElement;\n\n if (this.fileList.length >= this.maxCount || !this.showUpload) {\n return;\n }\n\n var slot = this.slots();\n var Input = h(\"input\", {\n \"attrs\": _extends({}, this.$attrs, {\n \"type\": \"file\",\n \"accept\": this.accept,\n \"disabled\": this.disabled\n }),\n \"ref\": \"input\",\n \"class\": bem('input'),\n \"on\": {\n \"change\": this.onChange\n }\n });\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('input-wrapper')\n }, [slot, Input]);\n }\n\n var style;\n\n if (this.previewSize) {\n var size = this.previewSizeWithUnit;\n style = {\n width: size,\n height: size\n };\n }\n\n return h(\"div\", {\n \"class\": bem('upload'),\n \"style\": style\n }, [h(Icon, {\n \"attrs\": {\n \"name\": this.uploadIcon\n },\n \"class\": bem('upload-icon')\n }), this.uploadText && h(\"span\", {\n \"class\": bem('upload-text')\n }, [this.uploadText]), Input]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('wrapper', {\n disabled: this.disabled\n })\n }, [this.genPreviewList(), this.genUpload()])]);\n }\n});","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../image/index.css';\nimport '../../popup/index.css';\nimport '../../loading/index.css';\nimport '../../swipe/index.css';\nimport '../../swipe-item/index.css';\nimport '../../image-preview/index.css';\nimport '../index.css';"],"sourceRoot":""}