{"version":3,"sources":["webpack:///./node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/vant/es/tab/index.js","webpack:///./node_modules/vant/es/utils/dom/raf.js","webpack:///./node_modules/vant/es/utils/router.js","webpack:///./node_modules/vant/es/tabs/utils.js","webpack:///./node_modules/vant/es/utils/interceptor.js","webpack:///./node_modules/vant/es/tabs/Title.js","webpack:///./node_modules/vant/es/sticky/index.js","webpack:///./node_modules/vant/es/tabs/Content.js","webpack:///./node_modules/vant/es/tabs/index.js","webpack:///./node_modules/vant/es/mixins/relation.js","webpack:///./node_modules/vant/es/utils/constant.js","webpack:///./node_modules/vant/es/tabs/style/index.js","webpack:///./node_modules/vant/es/tab/style/index.js","webpack:///./node_modules/vant/es/utils/vnodes.js"],"names":["isHidden","el","style","window","getComputedStyle","hidden","display","parentHidden","offsetParent","position","_createNamespace","createComponent","bem","mixins","props","dot","Boolean","name","Number","String","info","badge","title","titleStyle","titleClass","disabled","data","inited","computed","computedName","_this$name","this","index","isActive","active","parent","currentName","watch","setLine","scrollIntoView","val","_this","lazyRender","$nextTick","$emit","render","h","slots","slotContent","animated","show","scrollspy","shouldRender","Content","inactive","value","prev","Date","now","fallback","fn","curr","ms","Math","max","id","setTimeout","root","global","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","clearTimeout","raf","call","doubleRaf","cancelRaf","isRedundantNavigation","err","message","indexOf","route","router","config","to","url","replace","promise","catch","location","href","functionalRoute","context","$router","routeProps","Object","scrollLeftRafId","scrollLeftTo","scroller","duration","count","from","scrollLeft","frames","round","animate","scrollTopTo","callback","current","isDown","step","callInterceptor","options","interceptor","args","done","returnVal","apply","then","create","type","color","scrollable","activeColor","inactiveColor","isCard","borderColor","backgroundColor","titleColor","methods","onClick","genText","$createElement","Text","ellipsis","arguments","bind","isBind","$el","observer","method","onScroll","zIndex","container","offsetTop","default","fixed","height","transform","offsetTopPx","unit","top","isFixed","created","IntersectionObserver","entries","intersectionRatio","document","body","_this2","offsetHeight","scrollTop","topToPageTop","emitScrollEvent","bottomToPageTop","distanceToBottom","MIN_SWIPE_DISTANCE","swipeable","currentIndex","transitionDuration","listeners","touchstart","touchStart","touchmove","touchMove","touchend","onTouchEnd","touchcancel","direction","deltaX","offsetX","genChildren","resize","model","prop","border","sticky","background","lineWidth","lineHeight","beforeChange","Function","titleActiveColor","titleInactiveColor","swipeThreshold","lineStyle","children","length","navStyle","activeTab","scrollOffset","tabHeight","setCurrentIndexByName","stickyFixed","ceil","mounted","init","activated","$refs","wrap","_this3","shouldAnimate","titles","left","offsetLeft","offsetWidth","width","borderRadius","matched","filter","tab","defaultIndex","setCurrentIndex","newIndex","findAvailableTab","newTab","newName","shouldEmitChange","diff","item","_this4","_this$children$index","scrollToCurrentContent","immediate","nav","onSticktScroll","params","scrollTo","_this5","_this6","target","lockScroll","getCurrentIndexOnScroll","_ref","_this7","Nav","map","_item$badge","Title","Wrap","complete","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","beforeDestroy","concat","ParentMixin","provide","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","flattenVNodes","vnodes","result","traverse","forEach","vnode","push","componentInstance","$children","$vnode","sortChildren","componentOptions","sort","a","b"],"mappings":"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","file":"h5/js/chunk-c5a30878.c65277b6.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';\nimport { routeProps } from '../utils/router';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanTabs')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n name: [Number, String],\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n title: String,\n titleStyle: null,\n titleClass: null,\n disabled: Boolean\n }),\n data: function data() {\n return {\n inited: false\n };\n },\n computed: {\n computedName: function computedName() {\n var _this$name;\n\n return (_this$name = this.name) != null ? _this$name : this.index;\n },\n isActive: function isActive() {\n var active = this.computedName === this.parent.currentName;\n\n if (active) {\n this.inited = true;\n }\n\n return active;\n }\n },\n watch: {\n title: function title() {\n this.parent.setLine();\n this.parent.scrollIntoView();\n },\n inited: function inited(val) {\n var _this = this;\n\n if (this.parent.lazyRender && val) {\n this.$nextTick(function () {\n _this.parent.$emit('rendered', _this.computedName, _this.title);\n });\n }\n }\n },\n render: function render(h) {\n var slots = this.slots,\n parent = this.parent,\n isActive = this.isActive;\n var slotContent = slots();\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] Tab: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (!slotContent && !parent.animated) {\n return;\n }\n\n var show = parent.scrollspy || isActive;\n var shouldRender = this.inited || parent.scrollspy || !parent.lazyRender;\n var Content = shouldRender ? slotContent : h();\n\n if (parent.animated) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tabpanel\",\n \"aria-hidden\": !isActive\n },\n \"class\": bem('pane-wrapper', {\n inactive: !isActive\n })\n }, [h(\"div\", {\n \"class\": bem('pane')\n }, [Content])]);\n }\n\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: show\n }],\n \"attrs\": {\n \"role\": \"tabpanel\"\n },\n \"class\": bem('pane')\n }, [Content]);\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}","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\n\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};","import { raf, cancelRaf } from '../utils/dom/raf';\nimport { getScrollTop, setScrollTop } from '../utils/dom/scroll';\nvar scrollLeftRafId;\nexport function scrollLeftTo(scroller, to, duration) {\n cancelRaf(scrollLeftRafId);\n var count = 0;\n var from = scroller.scrollLeft;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n\n function animate() {\n scroller.scrollLeft += (to - from) / frames;\n\n if (++count < frames) {\n scrollLeftRafId = raf(animate);\n }\n }\n\n animate();\n}\nexport function scrollTopTo(scroller, to, duration, callback) {\n var current = getScrollTop(scroller);\n var isDown = current < to;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n var step = (to - current) / frames;\n\n function animate() {\n current += step;\n\n if (isDown && current > to || !isDown && current < to) {\n current = to;\n }\n\n setScrollTop(scroller, current);\n\n if (isDown && current < to || !isDown && current > to) {\n raf(animate);\n } else if (callback) {\n raf(callback);\n }\n }\n\n animate();\n}","import { isPromise, noop } from '.';\nexport function callInterceptor(options) {\n var interceptor = options.interceptor,\n args = options.args,\n done = options.done;\n\n if (interceptor) {\n var returnVal = interceptor.apply(void 0, args);\n\n if (isPromise(returnVal)) {\n returnVal.then(function (value) {\n if (value) {\n done();\n }\n }).catch(noop);\n } else if (returnVal) {\n done();\n }\n } else {\n done();\n }\n}","import { createNamespace, isDef } from '../utils';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n type: String,\n info: [Number, String],\n color: String,\n title: String,\n isActive: Boolean,\n disabled: Boolean,\n scrollable: Boolean,\n activeColor: String,\n inactiveColor: String\n },\n computed: {\n style: function style() {\n var style = {};\n var color = this.color,\n isActive = this.isActive;\n var isCard = this.type === 'card'; // card theme color\n\n if (color && isCard) {\n style.borderColor = color;\n\n if (!this.disabled) {\n if (isActive) {\n style.backgroundColor = color;\n } else {\n style.color = color;\n }\n }\n }\n\n var titleColor = isActive ? this.activeColor : this.inactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n return style;\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click');\n },\n genText: function genText() {\n var h = this.$createElement;\n var Text = h(\"span\", {\n \"class\": bem('text', {\n ellipsis: !this.scrollable\n })\n }, [this.slots() || this.title]);\n\n if (this.dot || isDef(this.info) && this.info !== '') {\n return h(\"span\", {\n \"class\": bem('text-wrapper')\n }, [Text, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": this.info\n }\n })]);\n }\n\n return Text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tab\",\n \"aria-selected\": this.isActive\n },\n \"class\": [bem({\n active: this.isActive,\n disabled: this.disabled\n })],\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genText()]);\n }\n});","import { isHidden } from '../utils/dom/style';\nimport { unitToPx } from '../utils/format/unit';\nimport { createNamespace, isDef, isServer } from '../utils';\nimport { getScrollTop, getElementTop, getScroller } from '../utils/dom/scroll';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sticky'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind, isBind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n if (this.observer) {\n var method = isBind ? 'observe' : 'unobserve';\n this.observer[method](this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll, true);\n this.onScroll();\n })],\n props: {\n zIndex: [Number, String],\n container: null,\n offsetTop: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n fixed: false,\n height: 0,\n transform: 0\n };\n },\n computed: {\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n style: function style() {\n if (!this.fixed) {\n return;\n }\n\n var style = {};\n\n if (isDef(this.zIndex)) {\n style.zIndex = this.zIndex;\n }\n\n if (this.offsetTopPx && this.fixed) {\n style.top = this.offsetTopPx + \"px\";\n }\n\n if (this.transform) {\n style.transform = \"translate3d(0, \" + this.transform + \"px, 0)\";\n }\n\n return style;\n }\n },\n watch: {\n fixed: function fixed(isFixed) {\n this.$emit('change', isFixed);\n }\n },\n created: function created() {\n var _this = this;\n\n // compatibility: https://caniuse.com/#feat=intersectionobserver\n if (!isServer && window.IntersectionObserver) {\n this.observer = new IntersectionObserver(function (entries) {\n // trigger scroll when visibility changed\n if (entries[0].intersectionRatio > 0) {\n _this.onScroll();\n }\n }, {\n root: document.body\n });\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this2 = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n this.height = this.$el.offsetHeight;\n var container = this.container,\n offsetTopPx = this.offsetTopPx;\n var scrollTop = getScrollTop(window);\n var topToPageTop = getElementTop(this.$el);\n\n var emitScrollEvent = function emitScrollEvent() {\n _this2.$emit('scroll', {\n scrollTop: scrollTop,\n isFixed: _this2.fixed\n });\n }; // The sticky component should be kept inside the container element\n\n\n if (container) {\n var bottomToPageTop = topToPageTop + container.offsetHeight;\n\n if (scrollTop + offsetTopPx + this.height > bottomToPageTop) {\n var distanceToBottom = this.height + scrollTop - bottomToPageTop;\n\n if (distanceToBottom < this.height) {\n this.fixed = true;\n this.transform = -(distanceToBottom + offsetTopPx);\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n return;\n }\n }\n\n if (scrollTop + offsetTopPx > topToPageTop) {\n this.fixed = true;\n this.transform = 0;\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n }\n },\n render: function render() {\n var h = arguments[0];\n var fixed = this.fixed;\n var style = {\n height: fixed ? this.height + \"px\" : null\n };\n return h(\"div\", {\n \"style\": style\n }, [h(\"div\", {\n \"class\": bem({\n fixed: fixed\n }),\n \"style\": this.style\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar MIN_SWIPE_DISTANCE = 50;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n count: Number,\n duration: [Number, String],\n animated: Boolean,\n swipeable: Boolean,\n currentIndex: Number\n },\n computed: {\n style: function style() {\n if (this.animated) {\n return {\n transform: \"translate3d(\" + -1 * this.currentIndex * 100 + \"%, 0, 0)\",\n transitionDuration: this.duration + \"s\"\n };\n }\n },\n listeners: function listeners() {\n if (this.swipeable) {\n return {\n touchstart: this.touchStart,\n touchmove: this.touchMove,\n touchend: this.onTouchEnd,\n touchcancel: this.onTouchEnd\n };\n }\n }\n },\n methods: {\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n currentIndex = this.currentIndex;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= MIN_SWIPE_DISTANCE) {\n /* istanbul ignore else */\n if (deltaX > 0 && currentIndex !== 0) {\n this.$emit('change', currentIndex - 1);\n } else if (deltaX < 0 && currentIndex !== this.count - 1) {\n this.$emit('change', currentIndex + 1);\n }\n }\n },\n genChildren: function genChildren() {\n var h = this.$createElement;\n\n if (this.animated) {\n return h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.style\n }, [this.slots()]);\n }\n\n return this.slots();\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('content', {\n animated: this.animated\n }),\n \"on\": _extends({}, this.listeners)\n }, [this.genChildren()]);\n }\n});","// Utils\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { scrollLeftTo, scrollTopTo } from './utils';\nimport { route } from '../utils/router';\nimport { isHidden } from '../utils/dom/style';\nimport { on, off } from '../utils/dom/event';\nimport { unitToPx } from '../utils/format/unit';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { getScroller, getVisibleTop, getElementTop, getVisibleHeight, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Title from './Title';\nimport Sticky from '../sticky';\nimport Content from './Content';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabs'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(window, 'resize', this.resize, true);\n\n if (this.scrollspy) {\n bind(this.scroller, 'scroll', this.onScroll, true);\n }\n })],\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n border: Boolean,\n sticky: Boolean,\n animated: Boolean,\n swipeable: Boolean,\n scrollspy: Boolean,\n background: String,\n lineWidth: [Number, String],\n lineHeight: [Number, String],\n beforeChange: Function,\n titleActiveColor: String,\n titleInactiveColor: String,\n type: {\n type: String,\n default: 'line'\n },\n active: {\n type: [Number, String],\n default: 0\n },\n ellipsis: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.3\n },\n offsetTop: {\n type: [Number, String],\n default: 0\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n swipeThreshold: {\n type: [Number, String],\n default: 5\n }\n },\n data: function data() {\n return {\n position: '',\n currentIndex: null,\n lineStyle: {\n backgroundColor: this.color\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.children.length > this.swipeThreshold || !this.ellipsis;\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n currentName: function currentName() {\n var activeTab = this.children[this.currentIndex];\n\n if (activeTab) {\n return activeTab.computedName;\n }\n },\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n scrollOffset: function scrollOffset() {\n if (this.sticky) {\n return this.offsetTopPx + this.tabHeight;\n }\n\n return 0;\n }\n },\n watch: {\n color: 'setLine',\n active: function active(name) {\n if (name !== this.currentName) {\n this.setCurrentIndexByName(name);\n }\n },\n children: function children() {\n var _this = this;\n\n this.setCurrentIndexByName(this.active);\n this.setLine();\n this.$nextTick(function () {\n _this.scrollIntoView(true);\n });\n },\n currentIndex: function currentIndex() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.stickyFixed && !this.scrollspy) {\n setRootScrollTop(Math.ceil(getElementTop(this.$el) - this.offsetTopPx));\n }\n },\n scrollspy: function scrollspy(val) {\n if (val) {\n on(this.scroller, 'scroll', this.onScroll, true);\n } else {\n off(this.scroller, 'scroll', this.onScroll);\n }\n }\n },\n mounted: function mounted() {\n this.init();\n },\n activated: function activated() {\n this.init();\n this.setLine();\n },\n methods: {\n // @exposed-api\n resize: function resize() {\n this.setLine();\n },\n init: function init() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.inited = true;\n _this2.tabHeight = getVisibleHeight(_this2.$refs.wrap);\n\n _this2.scrollIntoView(true);\n });\n },\n // update nav bar style\n setLine: function setLine() {\n var _this3 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var titles = _this3.$refs.titles;\n\n if (!titles || !titles[_this3.currentIndex] || _this3.type !== 'line' || isHidden(_this3.$el)) {\n return;\n }\n\n var title = titles[_this3.currentIndex].$el;\n var lineWidth = _this3.lineWidth,\n lineHeight = _this3.lineHeight;\n var left = title.offsetLeft + title.offsetWidth / 2;\n var lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: _this3.color,\n transform: \"translateX(\" + left + \"px) translateX(-50%)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this3.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this3.lineStyle = lineStyle;\n });\n },\n // correct the index of active tab\n setCurrentIndexByName: function setCurrentIndexByName(name) {\n var matched = this.children.filter(function (tab) {\n return tab.computedName === name;\n });\n var defaultIndex = (this.children[0] || {}).index || 0;\n this.setCurrentIndex(matched.length ? matched[0].index : defaultIndex);\n },\n setCurrentIndex: function setCurrentIndex(currentIndex) {\n var newIndex = this.findAvailableTab(currentIndex);\n\n if (!isDef(newIndex)) {\n return;\n }\n\n var newTab = this.children[newIndex];\n var newName = newTab.computedName;\n var shouldEmitChange = this.currentIndex !== null;\n this.currentIndex = newIndex;\n\n if (newName !== this.active) {\n this.$emit('input', newName);\n\n if (shouldEmitChange) {\n this.$emit('change', newName, newTab.title);\n }\n }\n },\n findAvailableTab: function findAvailableTab(index) {\n var diff = index < this.currentIndex ? -1 : 1;\n\n while (index >= 0 && index < this.children.length) {\n if (!this.children[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(item, index) {\n var _this4 = this;\n\n var _this$children$index = this.children[index],\n title = _this$children$index.title,\n disabled = _this$children$index.disabled,\n computedName = _this$children$index.computedName;\n\n if (disabled) {\n this.$emit('disabled', computedName, title);\n } else {\n callInterceptor({\n interceptor: this.beforeChange,\n args: [computedName],\n done: function done() {\n _this4.setCurrentIndex(index);\n\n _this4.scrollToCurrentContent();\n }\n });\n this.$emit('click', computedName, title);\n route(item.$router, item);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var titles = this.$refs.titles;\n\n if (!this.scrollable || !titles || !titles[this.currentIndex]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var title = titles[this.currentIndex].$el;\n var to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;\n scrollLeftTo(nav, to, immediate ? 0 : +this.duration);\n },\n onSticktScroll: function onSticktScroll(params) {\n this.stickyFixed = params.isFixed;\n this.$emit('scroll', params);\n },\n // @exposed-api\n scrollTo: function scrollTo(name) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.setCurrentIndexByName(name);\n\n _this5.scrollToCurrentContent(true);\n });\n },\n scrollToCurrentContent: function scrollToCurrentContent(immediate) {\n var _this6 = this;\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n if (this.scrollspy) {\n var target = this.children[this.currentIndex];\n var el = target == null ? void 0 : target.$el;\n\n if (el) {\n var to = getElementTop(el, this.scroller) - this.scrollOffset;\n this.lockScroll = true;\n scrollTopTo(this.scroller, to, immediate ? 0 : +this.duration, function () {\n _this6.lockScroll = false;\n });\n }\n }\n },\n onScroll: function onScroll() {\n if (this.scrollspy && !this.lockScroll) {\n var index = this.getCurrentIndexOnScroll();\n this.setCurrentIndex(index);\n }\n },\n getCurrentIndexOnScroll: function getCurrentIndexOnScroll() {\n var children = this.children;\n\n for (var index = 0; index < children.length; index++) {\n var top = getVisibleTop(children[index].$el);\n\n if (top > this.scrollOffset) {\n return index === 0 ? 0 : index - 1;\n }\n }\n\n return children.length - 1;\n }\n },\n render: function render() {\n var _this7 = this,\n _ref;\n\n var h = arguments[0];\n var type = this.type,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.children.map(function (item, index) {\n var _item$badge;\n\n return h(Title, {\n \"ref\": \"titles\",\n \"refInFor\": true,\n \"attrs\": {\n \"type\": type,\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.title,\n \"color\": _this7.color,\n \"isActive\": index === _this7.currentIndex,\n \"disabled\": item.disabled,\n \"scrollable\": scrollable,\n \"activeColor\": _this7.titleActiveColor,\n \"inactiveColor\": _this7.titleInactiveColor\n },\n \"style\": item.titleStyle,\n \"class\": item.titleClass,\n \"scopedSlots\": {\n default: function _default() {\n return item.slots('title');\n }\n },\n \"on\": {\n \"click\": function click() {\n _this7.onClick(item, index);\n }\n }\n });\n });\n var Wrap = h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": [bem('wrap', {\n scrollable: scrollable\n }), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = type === 'line' && this.border, _ref)]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"attrs\": {\n \"role\": \"tablist\"\n },\n \"class\": bem('nav', [type, {\n complete: this.scrollable\n }]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), Nav, type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), this.slots('nav-right')])]);\n return h(\"div\", {\n \"class\": bem([type])\n }, [this.sticky ? h(Sticky, {\n \"attrs\": {\n \"container\": this.$el,\n \"offsetTop\": this.offsetTop\n },\n \"on\": {\n \"scroll\": this.onSticktScroll\n }\n }, [Wrap]) : Wrap, h(Content, {\n \"attrs\": {\n \"count\": this.children.length,\n \"animated\": animated,\n \"duration\": this.duration,\n \"swipeable\": this.swipeable,\n \"currentIndex\": this.currentIndex\n },\n \"on\": {\n \"change\": this.setCurrentIndex\n }\n }, [this.slots()])]);\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}","// color\nexport var RED = '#ee0a24'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../../sticky/index.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../index.css';","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}"],"sourceRoot":""}