{"version":3,"sources":["webpack:///./node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/vant/es/image-preview/ImagePreview.js","webpack:///./node_modules/vant/es/image-preview/index.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/utils/format/number.js","webpack:///./node_modules/vant/es/swipe/index.js"],"names":["isHidden","el","style","window","getComputedStyle","hidden","display","parentHidden","offsetParent","position","__webpack_require__","d","__webpack_exports__","_createNamespace","Object","create","createComponent","bem","getDistance","touches","Math","sqrt","pow","clientX","clientY","instance","image_preview_ImagePreview","mixins","popup","skipToggleEvent","touch","props","className","lazyLoad","Boolean","asyncClose","showIndicators","images","type","Array","default","loop","swipeDuration","Number","String","overlay","showIndex","startPosition","minZoom","maxZoom","overlayClass","closeable","closeIcon","closeIconPosition","data","scale","moveX","moveY","active","moving","zooming","doubleClickTimer","computed","imageStyle","this","transitionDuration","transform","watch","value","val","_this","setActive","$nextTick","$refs","swipe","swipeTo","immediate","$emit","index","url","shouldRender","handler","_this2","$el","dom_event","onWrapperTouchStart","onWrapperTouchEnd","methods","emitClose","touchStartTime","Date","event","_this3","deltaTime","_ref","_ref$offsetX","offsetX","_ref$offsetY","offsetY","clearTimeout","toggleScale","setTimeout","startMove","image","currentTarget","rect","getBoundingClientRect","winWidth","innerWidth","winHeight","innerHeight","touchStart","startMoveX","startMoveY","maxMoveX","max","width","maxMoveY","height","startZoom","startScale","startDistance","onImageTouchStart","_ref2","_ref2$offsetX","length","onImageTouchMove","touchMove","deltaX","deltaY","number","distance","setScale","onImageTouchEnd","stopPropagation","resetScale","genIndex","h","$createElement","class","slots","genCover","cover","genImages","_this4","imageSlots","loading","es_loading","attrs","es_swipe","ref","indicatorColor","duration","initialSwipe","on","change","map","swipe_item","es_image","src","fit","scopedSlots","nativeOn","touchstart","touchmove","touchend","touchcancel","genClose","icon","role","name","click","render","arguments","directives","defaultConfig","onClose","onChange","closeOnPopstate","image_preview_initInstance","vue_runtime_esm","extend","document","createElement","body","appendChild","$on","onScale","es_image_preview_ImagePreview","utils","options","isArray","esm_extends","$once","show","$off","install","use","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__","_utils__WEBPACK_IMPORTED_MODULE_1__","offset","beforeCreate","$parent","swipes","push","destroyed","splice","indexOf","_this$$parent","vertical","computedWidth","computedHeight","$listeners","_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0__","_vue_babel_helper_vue_jsx_merge_props__WEBPACK_IMPORTED_MODULE_0___default","n","_utils__WEBPACK_IMPORTED_MODULE_2__","_utils__WEBPACK_IMPORTED_MODULE_3__","_icon__WEBPACK_IMPORTED_MODULE_4__","alt","round","radius","showError","showLoading","errorIcon","loadingIcon","error","overflow","borderRadius","created","$Lazyload","onLazyLoaded","onLazyLoadError","beforeDestroy","onLoad","onError","onClick","genPlaceholder","genImage","imgData","objectFit","load","global","raf","doubleRaf","cancelRaf","___WEBPACK_IMPORTED_MODULE_0__","prev","now","fallback","fn","curr","ms","id","root","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","call","range","num","min","_utils__WEBPACK_IMPORTED_MODULE_0__","_utils_dom_style__WEBPACK_IMPORTED_MODULE_1__","_utils_dom_event__WEBPACK_IMPORTED_MODULE_2__","_utils_dom_raf__WEBPACK_IMPORTED_MODULE_3__","_utils_format_number__WEBPACK_IMPORTED_MODULE_4__","_mixins_touch__WEBPACK_IMPORTED_MODULE_5__","_mixins_bind_event__WEBPACK_IMPORTED_MODULE_6__","bind","isBind","resize","onVisibilityChange","initialize","clear","autoplay","touchable","swiping","_autoplay","autoPlay","count","delta","size","trackSize","activeIndicator","isCorrectDirection","expect","direction","trackStyle","mainAxis","crossAxis","indicatorStyle","backgroundColor","minOffset","mounted","bindTouchEvent","track","timer","forEach","onTouchStart","correctPosition","onTouchMove","move","onTouchEnd","pace","emitChange","getTargetActive","getTargetOffset","targetActive","currentPosition","targetOffset","_ref2$pace","_ref2$offset","outRightBound","outLeftBound","resetTouchStatus","next","targetIndex","genIndicator","_this5","slot","apply","empty"],"mappings":"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","file":"js/chunk-76f8b28a.0abab6a8.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}","// Utils\nimport { createNamespace } from '../utils';\nimport { range } from '../utils/format/number';\nimport { on, preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch'; // Components\n\nimport Image from '../image';\nimport Swipe from '../swipe';\nimport Loading from '../loading';\nimport SwipeItem from '../swipe-item';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('image-preview'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\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 createComponent({\n mixins: [PopupMixin({\n skipToggleEvent: true\n }), TouchMixin],\n props: {\n className: null,\n lazyLoad: 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 swipeDuration: {\n type: [Number, String],\n default: 500\n },\n overlay: {\n type: Boolean,\n default: true\n },\n showIndex: {\n type: Boolean,\n default: true\n },\n startPosition: {\n type: [Number, String],\n default: 0\n },\n minZoom: {\n type: [Number, String],\n default: 1 / 3\n },\n maxZoom: {\n type: [Number, String],\n default: 3\n },\n overlayClass: {\n type: String,\n default: bem('overlay')\n },\n closeable: Boolean,\n closeIcon: {\n type: String,\n default: 'clear'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n }\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n active: 0,\n moving: false,\n zooming: false,\n doubleClickTimer: null\n };\n },\n computed: {\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 style.transform = \"scale3d(\" + scale + \", \" + scale + \", 1) translate(\" + this.moveX / scale + \"px, \" + this.moveY / scale + \"px)\";\n }\n\n return style;\n }\n },\n watch: {\n value: function value(val) {\n var _this = this;\n\n if (val) {\n this.setActive(+this.startPosition);\n this.$nextTick(function () {\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 startPosition: function startPosition(val) {\n this.setActive(val);\n },\n shouldRender: {\n handler: function handler(val) {\n var _this2 = this;\n\n if (val) {\n this.$nextTick(function () {\n var swipe = _this2.$refs.swipe.$el;\n on(swipe, 'touchstart', _this2.onWrapperTouchStart);\n on(swipe, 'touchmove', preventDefault);\n on(swipe, 'touchend', _this2.onWrapperTouchEnd);\n on(swipe, 'touchcancel', _this2.onWrapperTouchEnd);\n });\n }\n },\n immediate: true\n }\n },\n methods: {\n emitClose: function emitClose() {\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n },\n onWrapperTouchStart: function onWrapperTouchStart() {\n this.touchStartTime = new Date();\n },\n onWrapperTouchEnd: function onWrapperTouchEnd(event) {\n var _this3 = this;\n\n preventDefault(event);\n var deltaTime = new Date() - this.touchStartTime;\n\n var _ref = this.$refs.swipe || {},\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY; // prevent long tap to close component\n\n\n if (deltaTime < 300 && offsetX < 10 && offsetY < 10) {\n if (!this.doubleClickTimer) {\n this.doubleClickTimer = setTimeout(function () {\n _this3.emitClose();\n\n _this3.doubleClickTimer = null;\n }, 300);\n } else {\n clearTimeout(this.doubleClickTimer);\n this.doubleClickTimer = null;\n this.toggleScale();\n }\n }\n },\n startMove: function startMove(event) {\n var image = event.currentTarget;\n var rect = image.getBoundingClientRect();\n var winWidth = window.innerWidth;\n var winHeight = window.innerHeight;\n this.touchStart(event);\n this.moving = true;\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.maxMoveX = Math.max(0, (rect.width - winWidth) / 2);\n this.maxMoveY = Math.max(0, (rect.height - winHeight) / 2);\n },\n startZoom: function startZoom(event) {\n this.moving = false;\n this.zooming = true;\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n },\n onImageTouchStart: function onImageTouchStart(event) {\n var touches = event.touches;\n\n var _ref2 = this.$refs.swipe || {},\n _ref2$offsetX = _ref2.offsetX,\n offsetX = _ref2$offsetX === void 0 ? 0 : _ref2$offsetX;\n\n if (touches.length === 1 && this.scale !== 1) {\n this.startMove(event);\n }\n /* istanbul ignore else */\n else if (touches.length === 2 && !offsetX) {\n this.startZoom(event);\n }\n },\n onImageTouchMove: function onImageTouchMove(event) {\n var touches = event.touches;\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\n this.touchMove(event);\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 onImageTouchEnd: function onImageTouchEnd(event) {\n /* istanbul ignore else */\n if (this.moving || this.zooming) {\n var 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 this.moving = false;\n this.zooming = 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\n if (stopPropagation) {\n preventDefault(event, true);\n }\n }\n },\n setActive: function setActive(active) {\n this.resetScale();\n\n if (active !== this.active) {\n this.active = active;\n this.$emit('change', active);\n }\n },\n setScale: function setScale(scale) {\n var value = range(scale, +this.minZoom, +this.maxZoom);\n this.scale = value;\n this.$emit('scale', {\n index: this.active,\n scale: value\n });\n },\n resetScale: function resetScale() {\n this.setScale(1);\n this.moveX = 0;\n this.moveY = 0;\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 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') || 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 _this4 = this;\n\n var h = this.$createElement;\n var imageSlots = {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n }\n });\n }\n };\n return h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"loop\": this.loop,\n \"indicatorColor\": \"white\",\n \"duration\": this.swipeDuration,\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators\n },\n \"class\": bem('swipe'),\n \"on\": {\n \"change\": this.setActive\n }\n }, [this.images.map(function (image, index) {\n return h(SwipeItem, [h(Image, {\n \"attrs\": {\n \"src\": image,\n \"fit\": \"contain\",\n \"lazyLoad\": _this4.lazyLoad\n },\n \"class\": bem('image'),\n \"scopedSlots\": imageSlots,\n \"style\": index === _this4.active ? _this4.imageStyle : null,\n \"nativeOn\": {\n \"touchstart\": _this4.onImageTouchStart,\n \"touchmove\": _this4.onImageTouchMove,\n \"touchend\": _this4.onImageTouchEnd,\n \"touchcancel\": _this4.onImageTouchEnd\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 },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [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()])]);\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 images: [],\n value: true,\n minZoom: 1 / 3,\n maxZoom: 3,\n className: '',\n onClose: null,\n onChange: null,\n lazyLoad: false,\n showIndex: true,\n closeable: false,\n closeIcon: 'clear',\n asyncClose: false,\n startPosition: 0,\n swipeDuration: 500,\n showIndicators: false,\n closeOnPopstate: false,\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\n if (options.onClose) {\n instance.$off('close');\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('swipe-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n data: function data() {\n return {\n offset: 0\n };\n },\n beforeCreate: function beforeCreate() {\n this.$parent.swipes.push(this);\n },\n destroyed: function destroyed() {\n this.$parent.swipes.splice(this.$parent.swipes.indexOf(this), 1);\n },\n render: function render() {\n var h = arguments[0];\n var _this$$parent = this.$parent,\n vertical = _this$$parent.vertical,\n computedWidth = _this$$parent.computedWidth,\n computedHeight = _this$$parent.computedHeight;\n var style = {\n width: computedWidth + 'px',\n height: vertical ? computedHeight + 'px' : '100%',\n transform: \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n return h(\"div\", {\n \"class\": bem(),\n \"style\": style,\n \"on\": _extends({}, this.$listeners)\n }, [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 } 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 showError: {\n type: Boolean,\n default: true\n },\n showLoading: {\n type: Boolean,\n default: true\n },\n errorIcon: {\n type: String,\n default: 'warning-o'\n },\n loadingIcon: {\n type: String,\n default: 'photo-o'\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) {\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 },\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 },\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()]);\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}","// 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 { 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, BindEventMixin(function (bind, isBind) {\n bind(window, 'resize', 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 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 computedWidth: 0,\n computedHeight: 0,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swipes: [],\n swiping: false\n };\n },\n watch: {\n swipes: function swipes() {\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.swipes.length;\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 _ref;\n\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n return _ref = {}, _ref[mainAxis] = this.trackSize + \"px\", _ref[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '', _ref.transitionDuration = (this.swiping ? 0 : this.duration) + \"ms\", _ref.transform = \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\", _ref;\n },\n indicatorStyle: function indicatorStyle() {\n return {\n backgroundColor: this.indicatorColor\n };\n },\n minOffset: function minOffset() {\n var rect = this.$el.getBoundingClientRect();\n return (this.vertical ? rect.height : 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 clearTimeout(this.timer);\n\n if (this.$el && !isHidden(this.$el)) {\n var rect = this.$el.getBoundingClientRect();\n this.computedWidth = Math.round(+this.width || rect.width);\n this.computedHeight = Math.round(+this.height || rect.height);\n }\n\n this.swiping = true;\n this.active = active;\n this.offset = this.count > 1 ? -this.size * this.active : 0;\n this.swipes.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.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\n if (this.delta && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n this.move({\n pace: offset > 0 ? this.delta > 0 ? -1 : 1 : 0,\n emitChange: true\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\n if (pace) {\n if (this.loop) {\n return range(active + pace, -1, count);\n }\n\n return range(active + pace, 0, count - 1);\n }\n\n return active;\n },\n getTargetOffset: function getTargetOffset(targetActive, offset) {\n var currentPosition = targetActive * this.size;\n\n if (!this.loop) {\n currentPosition = Math.min(currentPosition, -this.minOffset);\n }\n\n var targetOffset = Math.round(offset - currentPosition);\n\n if (!this.loop) {\n targetOffset = range(targetOffset, this.minOffset, 0);\n }\n\n return targetOffset;\n },\n move: function move(_ref2) {\n var _ref2$pace = _ref2.pace,\n pace = _ref2$pace === void 0 ? 0 : _ref2$pace,\n _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n emitChange = _ref2.emitChange;\n var loop = this.loop,\n count = this.count,\n active = this.active,\n swipes = this.swipes,\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 (swipes[0]) {\n var outRightBound = targetOffset < minOffset;\n swipes[0].offset = outRightBound ? trackSize : 0;\n }\n\n if (swipes[count - 1]) {\n var outLeftBound = targetOffset > 0;\n swipes[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 }, [this.slots()]), this.genIndicator()]);\n }\n});"],"sourceRoot":""}