{"version":3,"sources":["webpack:///./node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/vant/es/image-preview/shared.js","webpack:///./node_modules/vant/es/swipe/index.js","webpack:///./node_modules/vant/es/swipe-item/index.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/image/index.js","webpack:///./node_modules/vant/es/utils/dom/raf.js","webpack:///./node_modules/vant/es/utils/format/number.js","webpack:///./node_modules/vant/es/utils/vnodes.js","webpack:///./node_modules/vant/es/mixins/relation.js"],"names":["isHidden","el","style","window","getComputedStyle","hidden","display","parentHidden","offsetParent","position","_createNamespace","create","createComponent","bem","mixins","bind","isBind","this","resize","onVisibilityChange","initialize","clear","props","width","Number","String","height","autoplay","vertical","Boolean","lazyRender","indicatorColor","loop","type","default","duration","touchable","initialSwipe","showIndicators","stopPropagation","data","rect","offset","active","deltaX","deltaY","swiping","computedWidth","computedHeight","watch","children","_autoplay","autoPlay","computed","count","length","maxCount","Math","ceil","abs","minOffset","size","delta","trackSize","activeIndicator","isCorrectDirection","expect","direction","trackStyle","transitionDuration","transform","mainAxis","crossAxis","indicatorStyle","backgroundColor","mounted","bindTouchEvent","$refs","track","methods","$el","clearTimeout","timer","offsetWidth","offsetHeight","getTargetOffset","forEach","swipe","document","onTouchStart","event","touchStartTime","Date","now","touchStart","correctPosition","onTouchMove","touchMove","move","onTouchEnd","speed","shouldSwipe","offsetY","offsetX","pace","emitChange","getTargetActive","targetActive","currentPosition","min","targetOffset","_ref","_ref$pace","_ref$offset","outRightBound","outLeftBound","$emit","prev","_this","resetTouchStatus","next","_this2","swipeTo","index","options","_this3","targetIndex","immediate","_this4","setTimeout","genIndicator","_this5","h","$createElement","slot","slots","Array","apply","map","empty","render","arguments","inited","$nextTick","_this$parent","parent","shouldRender","maxActive","prevActive","nextActive","$listeners","getDistance","touches","sqrt","pow","clientX","clientY","instance","src","show","minZoom","maxZoom","rootWidth","rootHeight","scale","moveX","moveY","moving","zooming","imageRatio","displayWidth","displayHeight","rootRatio","imageStyle","maxMoveX","max","maxMoveY","val","resetScale","setScale","toggleScale","_this$offsetX","startMoveX","startMoveY","startScale","startDistance","distance","checkTap","_this$offsetX2","_this$offsetY","deltaTime","TAP_TIME","TAP_OFFSET","doubleTapTimer","onLoad","_event$target","target","naturalWidth","naturalHeight","imageSlots","loading","skipToggleEvent","className","closeable","asyncClose","images","overlay","transition","showIndex","swipeDuration","startPosition","overlayClass","closeIcon","closeOnPopstate","closeIconPosition","doubleClickTimer","value","setActive","url","getBoundingClientRect","emitClose","emitScale","args","genIndex","genCover","cover","genImages","image","ImagePreviewItem","genClose","onClosed","name","defaultConfig","onClose","onChange","getContainer","extend","createElement","body","appendChild","$on","onScale","isArray","$once","$off","Component","install","use","fit","alt","round","radius","lazyLoad","iconPrefix","showError","showLoading","errorIcon","loadingIcon","error","overflow","borderRadius","created","$Lazyload","onLazyLoaded","onLazyLoadError","beforeDestroy","_ref2","onError","onClick","genPlaceholder","genImage","imgData","class","attrs","objectFit","fallback","fn","curr","ms","id","root","global","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","raf","call","doubleRaf","cancelRaf","range","num","flattenVNodes","vnodes","result","traverse","vnode","push","componentInstance","$children","item","$vnode","sortChildren","componentOptions","sort","a","b","indexOf","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","filter","concat","ParentMixin","provide"],"mappings":"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","file":"js/chunk-09e5db91.5a150128.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 { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('image-preview'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport { createComponent, bem };","// 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});","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});","// 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 _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}","export function range(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction trimExtraChar(value, _char, regExp) {\n var index = value.indexOf(_char);\n var prefix = '';\n\n if (index === -1) {\n return value;\n }\n\n if (_char === '-' && index !== 0) {\n return value.slice(0, index);\n }\n\n if (_char === '.' && value.match(/^(\\.|-\\.)/)) {\n prefix = index ? '-0' : '0';\n }\n\n return prefix + value.slice(0, index + 1) + value.slice(index).replace(regExp, '');\n}\n\nexport function formatNumber(value, allowDot, allowMinus) {\n if (allowDot === void 0) {\n allowDot = true;\n }\n\n if (allowMinus === void 0) {\n allowMinus = true;\n }\n\n if (allowDot) {\n value = trimExtraChar(value, '.', /\\./g);\n } else {\n value = value.split('.')[0];\n }\n\n if (allowMinus) {\n value = trimExtraChar(value, '-', /-/g);\n } else {\n value = value.replace(/-/, '');\n }\n\n var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, '');\n} // add num and avoid float number\n\nexport function addNumber(num1, num2) {\n var cardinal = Math.pow(10, 10);\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","import { sortChildren } from '../utils/vnodes';\nexport function ChildrenMixin(_parent, options) {\n var _inject, _computed;\n\n if (options === void 0) {\n options = {};\n }\n\n var indexKey = options.indexKey || 'index';\n return {\n inject: (_inject = {}, _inject[_parent] = {\n default: null\n }, _inject),\n computed: (_computed = {\n parent: function parent() {\n if (this.disableBindRelation) {\n return null;\n }\n\n return this[_parent];\n }\n }, _computed[indexKey] = function () {\n this.bindRelation();\n\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return null;\n }, _computed),\n watch: {\n disableBindRelation: function disableBindRelation(val) {\n if (!val) {\n this.bindRelation();\n }\n }\n },\n mounted: function mounted() {\n this.bindRelation();\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n if (this.parent) {\n this.parent.children = this.parent.children.filter(function (item) {\n return item !== _this;\n });\n }\n },\n methods: {\n bindRelation: function bindRelation() {\n if (!this.parent || this.parent.children.indexOf(this) !== -1) {\n return;\n }\n\n var children = [].concat(this.parent.children, [this]);\n sortChildren(children, this.parent);\n this.parent.children = children;\n }\n }\n };\n}\nexport function ParentMixin(parent) {\n return {\n provide: function provide() {\n var _ref;\n\n return _ref = {}, _ref[parent] = this, _ref;\n },\n data: function data() {\n return {\n children: []\n };\n }\n };\n}"],"sourceRoot":""}