12345678910 |
- !function (t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e(require("vue")) : "function" == typeof define && define.amd ? define("vant", ["vue"], e) : "object" == typeof exports ? exports.vant = e(require("vue")) : t.vant = e(t.Vue) }("undefined" != typeof self ? self : this, function (t) {
- return function (t) { var e = {}; function i(n) { if (e[n]) return e[n].exports; var s = e[n] = { i: n, l: !1, exports: {} }; return t[n].call(s.exports, s, s.exports, i), s.l = !0, s.exports } return i.m = t, i.c = e, i.d = function (t, e, n) { i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) }, i.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, i.t = function (t, e) { if (1 & e && (t = i(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var n = Object.create(null); if (i.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var s in t) i.d(n, s, function (e) { return t[e] }.bind(null, s)); return n }, i.n = function (t) { var e = t && t.__esModule ? function () { return t.default } : function () { return t }; return i.d(e, "a", e), e }, i.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, i.p = "", i(i.s = 12) }([function (t, e, i) { "use strict"; i.d(e, "d", function () { return s }), i.d(e, "e", function () { return o }), i.d(e, "b", function () { return r }), i.d(e, "c", function () { return a }), i.d(e, "a", function () { return l }); var n = i(2), s = i.n(n).a.prototype.$isServer; function o() { } function r(t) { return null != t } function a(t) { var e = typeof t; return null !== t && ("object" === e || "function" === e) } function l(t, e) { var i = e.split("."), n = t; return i.forEach(function (t) { n = r(n[t]) ? n[t] : "" }), n } }, function (t, e, i) { "use strict"; function n() { return (n = Object.assign || function (t) { for (var e, i = 1; i < arguments.length; i++)for (var n in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t }).apply(this, arguments) } var s = ["attrs", "props", "domProps"], o = ["class", "style", "directives"], r = ["on", "nativeOn"], a = function (t, e) { return function () { t && t.apply(this, arguments), e && e.apply(this, arguments) } }; t.exports = function (t) { return t.reduce(function (t, e) { for (var i in e) if (t[i]) if (-1 !== s.indexOf(i)) t[i] = n({}, t[i], e[i]); else if (-1 !== o.indexOf(i)) { var l = t[i] instanceof Array ? t[i] : [t[i]], u = e[i] instanceof Array ? e[i] : [e[i]]; t[i] = l.concat(u) } else if (-1 !== r.indexOf(i)) for (var c in e[i]) if (t[i][c]) { var h = t[i][c] instanceof Array ? t[i][c] : [t[i][c]], d = e[i][c] instanceof Array ? e[i][c] : [e[i][c]]; t[i][c] = h.concat(d) } else t[i][c] = e[i][c]; else if ("hook" == i) for (var f in e[i]) t[i][f] = t[i][f] ? a(t[i][f], e[i][f]) : e[i][f]; else t[i] = e[i]; else t[i] = e[i]; return t }, {}) } }, function (e, i) { e.exports = t }, function (t, e, i) { "use strict"; i.d(e, "a", function () { return s }), i.d(e, "b", function () { return o }); var n = /-(\w)/g; function s(t) { return t.replace(n, function (t, e) { return e.toUpperCase() }) } function o(t, e) { void 0 === e && (e = 2); for (var i = t + ""; i.length < e;)i = "0" + i; return i } }, function (t, e, i) { "use strict"; (function (t) { i.d(e, "c", function () { return l }), i.d(e, "b", function () { return u }), i.d(e, "a", function () { return c }); var n = i(0), s = Date.now(); var o = n.d ? t : window, r = o.requestAnimationFrame || function (t) { var e = Date.now(), i = Math.max(0, 16 - (e - s)), n = setTimeout(t, i); return s = e + i, n }, a = o.cancelAnimationFrame || o.clearTimeout; function l(t) { return r.call(o, t) } function u(t) { l(function () { l(t) }) } function c(t) { a.call(o, t) } }).call(this, i(11)) }, function (t, e, i) { "use strict"; var n = i(2), s = i.n(n), o = i(7), r = s.a.prototype, a = s.a.util.defineReactive; a(r, "$vantLang", "zh-CN"), a(r, "$vantMessages", { "zh-CN": { name: "姓名", tel: "电话", save: "保存", confirm: "确认", cancel: "取消", delete: "删除", complete: "完成", loading: "加载中...", telEmpty: "请填写电话", nameEmpty: "请填写姓名", confirmDelete: "确定要删除么", telInvalid: "请填写正确的电话", vanContactCard: { addText: "添加联系人" }, vanContactList: { addText: "新建联系人" }, vanPagination: { prev: "上一页", next: "下一页" }, vanPullRefresh: { pulling: "下拉即可刷新...", loosing: "释放即可刷新..." }, vanSubmitBar: { label: "合计:" }, vanCoupon: { valid: "有效期", unlimited: "无使用门槛", discount: function (t) { return t + "折" }, condition: function (t) { return "满" + t + "元可用" } }, vanCouponCell: { title: "优惠券", tips: "使用优惠", count: function (t) { return t + "张可用" } }, vanCouponList: { empty: "暂无优惠券", exchange: "兑换", close: "不使用优惠", enable: "可使用优惠券", disabled: "不可使用优惠券", placeholder: "请输入优惠码" }, vanAddressEdit: { area: "地区", postal: "邮政编码", areaEmpty: "请选择地区", addressEmpty: "请填写详细地址", postalEmpty: "邮政编码格式不正确", defaultAddress: "设为默认收货地址", telPlaceholder: "收货人手机号", namePlaceholder: "收货人姓名", areaPlaceholder: "选择省 / 市 / 区" }, vanAddressEditDetail: { label: "详细地址", placeholder: "街道门牌、楼层房间号等信息" }, vanAddressList: { add: "新增地址" } } }); e.a = { messages: function () { return r.$vantMessages[r.$vantLang] }, use: function (t, e) { var i; r.$vantLang = t, this.add(((i = {})[t] = e, i)) }, add: function (t) { void 0 === t && (t = {}), Object(o.a)(r.$vantMessages, t) } } }, function (t, e, i) { "use strict"; function n(t) { return /^\d+(\.\d+)?$/.test(t) } function s(t) { return Number.isNaN ? Number.isNaN(t) : t != t } i.d(e, "b", function () { return n }), i.d(e, "a", function () { return s }) }, function (t, e, i) { "use strict"; i.d(e, "a", function () { return o }); var n = i(0), s = Object.prototype.hasOwnProperty; function o(t, e) { return Object.keys(e).forEach(function (i) { !function (t, e, i) { var r = e[i]; Object(n.b)(r) && (s.call(t, i) && Object(n.c)(r) && "function" != typeof r ? t[i] = o(Object(t[i]), e[i]) : t[i] = r) }(t, e, i) }), t } }, function (t, e, i) { "use strict"; i.d(e, "a", function () { return o }); var n = i(0), s = i(6); function o(t) { if (Object(n.b)(t)) return t = String(t), Object(s.b)(t) ? t + "px" : t } }, function (t, e, i) { "use strict"; var n = "__", s = "--"; function o(t, e, i) { return e ? t + i + e : t } function r(t, e) { if ("string" == typeof e) return o(t, e, s); if (Array.isArray(e)) return e.map(function (e) { return r(t, e) }); var i = {}; return e && Object.keys(e).forEach(function (n) { i[t + s + n] = e[n] }), i } function a(t) { return function (e, i) { return e && "string" != typeof e && (i = e, e = ""), e = o(t, e, n), i ? [e, r(e, i)] : e } } var l = i(3), u = i(2), c = i.n(u).a.extend({ methods: { slots: function (t, e) { void 0 === t && (t = "default"); var i = this.$slots, n = this.$scopedSlots[t]; return n ? n(e) : i[t] } } }); function h(t) { var e = this.name; t.component(e, this), t.component(Object(l.a)("-" + e), this) } function d(t) { return { functional: !0, props: t.props, model: t.model, render: function (e, i) { return t(e, i.props, function (t) { var e = t.scopedSlots || t.data.scopedSlots || {}, i = t.slots(); return Object.keys(i).forEach(function (t) { e[t] || (e[t] = function () { return i[t] }) }), e }(i), i) } } } function f(t) { return function (e) { return "function" == typeof e && (e = d(e)), e.functional || (e.mixins = e.mixins || [], e.mixins.push(c)), e.name = t, e.install = h, e } } var p = i(0), m = i(5); function v(t) { var e = Object(l.a)(t) + "."; return function (t) { for (var i = Object(p.a)(m.a.messages(), e + t) || Object(p.a)(m.a.messages(), t), n = arguments.length, s = new Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++)s[o - 1] = arguments[o]; return "function" == typeof i ? i.apply(void 0, s) : i } } function g(t) { return [f(t = "van-" + t), a(t), v(t)] } i.d(e, "a", function () { return g }) }, function (t, e, i) {
- /*!
- * Vue-Lazyload.js v1.2.3
- * (c) 2018 Awe <hilongjw@gmail.com>
- * Released under the MIT License.
- */
- t.exports = function () { "use strict"; function t(t) { t = t || {}; var n = arguments.length, s = 0; if (1 === n) return t; for (; ++s < n;) { var o = arguments[s]; d(t) && (t = o), i(o) && e(t, o) } return t } function e(e, s) { for (var o in f(e, s), s) if ("__proto__" !== o && n(s, o)) { var r = s[o]; i(r) ? ("undefined" === m(e[o]) && "function" === m(r) && (e[o] = r), e[o] = t(e[o] || {}, r)) : e[o] = r } return e } function i(t) { return "object" === m(t) || "function" === m(t) } function n(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } function s(t, e) { if (t.length) { var i = t.indexOf(e); return i > -1 ? t.splice(i, 1) : void 0 } } function o(t, e) { if ("IMG" === t.tagName && t.getAttribute("data-srcset")) { var i = t.getAttribute("data-srcset"), n = [], s = t.parentNode, o = s.offsetWidth * e, r = void 0, a = void 0, l = void 0; (i = i.trim().split(",")).map(function (t) { t = t.trim(), -1 === (r = t.lastIndexOf(" ")) ? (a = t, l = 999998) : (a = t.substr(0, r), l = parseInt(t.substr(r + 1, t.length - r - 2), 10)), n.push([l, a]) }), n.sort(function (t, e) { if (t[0] < e[0]) return -1; if (t[0] > e[0]) return 1; if (t[0] === e[0]) { if (-1 !== e[1].indexOf(".webp", e[1].length - 5)) return 1; if (-1 !== t[1].indexOf(".webp", t[1].length - 5)) return -1 } return 0 }); for (var u = "", c = void 0, h = n.length, d = 0; d < h; d++)if ((c = n[d])[0] >= o) { u = c[1]; break } return u } } function r(t, e) { for (var i = void 0, n = 0, s = t.length; n < s; n++)if (e(t[n])) { i = t[n]; break } return i } function a() { if (!g) return !1; var t = !0, e = document; try { var i = e.createElement("object"); i.type = "image/webp", i.style.visibility = "hidden", i.innerHTML = "!", e.body.appendChild(i), t = !i.offsetWidth, e.body.removeChild(i) } catch (e) { t = !1 } return t } function l() { } var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, c = function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }, h = function () { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) } } return function (e, i, n) { return i && t(e.prototype, i), n && t(e, n), e } }(), d = function (t) { return null == t || "function" != typeof t && "object" !== (void 0 === t ? "undefined" : u(t)) }, f = function (t, e) { if (null == t) throw new TypeError("expected first argument to be an object."); if (void 0 === e || "undefined" == typeof Symbol) return t; if ("function" != typeof Object.getOwnPropertySymbols) return t; for (var i = Object.prototype.propertyIsEnumerable, n = Object(t), s = arguments.length, o = 0; ++o < s;)for (var r = Object(arguments[o]), a = Object.getOwnPropertySymbols(r), l = 0; l < a.length; l++) { var u = a[l]; i.call(r, u) && (n[u] = r[u]) } return n }, p = Object.prototype.toString, m = function (t) { var e = void 0 === t ? "undefined" : u(t); return "undefined" === e ? "undefined" : null === t ? "null" : !0 === t || !1 === t || t instanceof Boolean ? "boolean" : "string" === e || t instanceof String ? "string" : "number" === e || t instanceof Number ? "number" : "function" === e || t instanceof Function ? void 0 !== t.constructor.name && "Generator" === t.constructor.name.slice(0, 9) ? "generatorfunction" : "function" : void 0 !== Array.isArray && Array.isArray(t) ? "array" : t instanceof RegExp ? "regexp" : t instanceof Date ? "date" : "[object RegExp]" === (e = p.call(t)) ? "regexp" : "[object Date]" === e ? "date" : "[object Arguments]" === e ? "arguments" : "[object Error]" === e ? "error" : "[object Promise]" === e ? "promise" : function (t) { return t.constructor && "function" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t) }(t) ? "buffer" : "[object Set]" === e ? "set" : "[object WeakSet]" === e ? "weakset" : "[object Map]" === e ? "map" : "[object WeakMap]" === e ? "weakmap" : "[object Symbol]" === e ? "symbol" : "[object Map Iterator]" === e ? "mapiterator" : "[object Set Iterator]" === e ? "setiterator" : "[object String Iterator]" === e ? "stringiterator" : "[object Array Iterator]" === e ? "arrayiterator" : "[object Int8Array]" === e ? "int8array" : "[object Uint8Array]" === e ? "uint8array" : "[object Uint8ClampedArray]" === e ? "uint8clampedarray" : "[object Int16Array]" === e ? "int16array" : "[object Uint16Array]" === e ? "uint16array" : "[object Int32Array]" === e ? "int32array" : "[object Uint32Array]" === e ? "uint32array" : "[object Float32Array]" === e ? "float32array" : "[object Float64Array]" === e ? "float64array" : "object" }, v = t, g = "undefined" != typeof window, b = g && "IntersectionObserver" in window, y = { event: "event", observer: "observer" }, k = function () { function t(t, e) { e = e || { bubbles: !1, cancelable: !1, detail: void 0 }; var i = document.createEvent("CustomEvent"); return i.initCustomEvent(t, e.bubbles, e.cancelable, e.detail), i } if (g) return "function" == typeof window.CustomEvent ? window.CustomEvent : (t.prototype = window.Event.prototype, t) }(), S = function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1; return g && window.devicePixelRatio || t }, x = function () { if (g) { var t = !1; try { var e = Object.defineProperty({}, "passive", { get: function () { t = !0 } }); window.addEventListener("test", null, e) } catch (t) { } return t } }(), w = { on: function (t, e, i) { var n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; x ? t.addEventListener(e, i, { capture: n, passive: !0 }) : t.addEventListener(e, i, n) }, off: function (t, e, i) { var n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; t.removeEventListener(e, i, n) } }, C = function (t, e, i) { var n = new Image; n.src = t.src, n.onload = function () { e({ naturalHeight: n.naturalHeight, naturalWidth: n.naturalWidth, src: n.src }) }, n.onerror = function (t) { i(t) } }, O = function (t, e) { return "undefined" != typeof getComputedStyle ? getComputedStyle(t, null).getPropertyValue(e) : t.style[e] }, T = function (t) { return O(t, "overflow") + O(t, "overflow-y") + O(t, "overflow-x") }, $ = {}, I = function () { function t(e) { var i = e.el, n = e.src, s = e.error, o = e.loading, r = e.bindType, a = e.$parent, l = e.options, u = e.elRenderer; c(this, t), this.el = i, this.src = n, this.error = s, this.loading = o, this.bindType = r, this.attempt = 0, this.naturalHeight = 0, this.naturalWidth = 0, this.options = l, this.rect = null, this.$parent = a, this.elRenderer = u, this.performanceData = { init: Date.now(), loadStart: 0, loadEnd: 0 }, this.filter(), this.initState(), this.render("loading", !1) } return h(t, [{ key: "initState", value: function () { this.el.dataset.src = this.src, this.state = { error: !1, loaded: !1, rendered: !1 } } }, { key: "record", value: function (t) { this.performanceData[t] = Date.now() } }, { key: "update", value: function (t) { var e = t.src, i = t.loading, n = t.error, s = this.src; this.src = e, this.loading = i, this.error = n, this.filter(), s !== this.src && (this.attempt = 0, this.initState()) } }, { key: "getRect", value: function () { this.rect = this.el.getBoundingClientRect() } }, { key: "checkInView", value: function () { return this.getRect(), this.rect.top < window.innerHeight * this.options.preLoad && this.rect.bottom > this.options.preLoadTop && this.rect.left < window.innerWidth * this.options.preLoad && this.rect.right > 0 } }, { key: "filter", value: function () { var t = this; (function (t) { if (!(t instanceof Object)) return []; if (Object.keys) return Object.keys(t); var e = []; for (var i in t) t.hasOwnProperty(i) && e.push(i); return e })(this.options.filter).map(function (e) { t.options.filter[e](t, t.options) }) } }, { key: "renderLoading", value: function (t) { var e = this; C({ src: this.loading }, function (i) { e.render("loading", !1), t() }, function () { t(), e.options.silent || console.warn("VueLazyload log: load failed with loading image(" + e.loading + ")") }) } }, { key: "load", value: function () { var t = this, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : l; return this.attempt > this.options.attempt - 1 && this.state.error ? (this.options.silent || console.log("VueLazyload log: " + this.src + " tried too more than " + this.options.attempt + " times"), void e()) : this.state.loaded || $[this.src] ? (this.state.loaded = !0, e(), this.render("loaded", !0)) : void this.renderLoading(function () { t.attempt++, t.record("loadStart"), C({ src: t.src }, function (i) { t.naturalHeight = i.naturalHeight, t.naturalWidth = i.naturalWidth, t.state.loaded = !0, t.state.error = !1, t.record("loadEnd"), t.render("loaded", !1), $[t.src] = 1, e() }, function (e) { !t.options.silent && console.error(e), t.state.error = !0, t.state.loaded = !1, t.render("error", !1) }) }) } }, { key: "render", value: function (t, e) { this.elRenderer(this, t, e) } }, { key: "performance", value: function () { var t = "loading", e = 0; return this.state.loaded && (t = "loaded", e = (this.performanceData.loadEnd - this.performanceData.loadStart) / 1e3), this.state.error && (t = "error"), { src: this.src, state: t, time: e } } }, { key: "destroy", value: function () { this.el = null, this.src = null, this.error = null, this.loading = null, this.bindType = null, this.attempt = 0 } }]), t }(), B = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", j = ["scroll", "wheel", "mousewheel", "resize", "animationend", "transitionend", "touchmove"], N = { rootMargin: "0px", threshold: 0 }, A = function (t) { return function () { function e(t) { var i = t.preLoad, n = t.error, s = t.throttleWait, o = t.preLoadTop, r = t.dispatchEvent, l = t.loading, u = t.attempt, h = t.silent, d = void 0 === h || h, f = t.scale, p = t.listenEvents, m = (t.hasbind, t.filter), v = t.adapter, g = t.observer, b = t.observerOptions; c(this, e), this.version = "1.2.3", this.mode = y.event, this.ListenerQueue = [], this.TargetIndex = 0, this.TargetQueue = [], this.options = { silent: d, dispatchEvent: !!r, throttleWait: s || 200, preLoad: i || 1.3, preLoadTop: o || 0, error: n || B, loading: l || B, attempt: u || 3, scale: f || S(f), ListenEvents: p || j, hasbind: !1, supportWebp: a(), filter: m || {}, adapter: v || {}, observer: !!g, observerOptions: b || N }, this._initEvent(), this.lazyLoadHandler = function (t, e) { var i = null, n = 0; return function () { if (!i) { var s = Date.now() - n, o = this, r = arguments, a = function () { n = Date.now(), i = !1, t.apply(o, r) }; s >= e ? a() : i = setTimeout(a, e) } } }(this._lazyLoadHandler.bind(this), this.options.throttleWait), this.setMode(this.options.observer ? y.observer : y.event) } return h(e, [{ key: "config", value: function () { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; v(this.options, t) } }, { key: "performance", value: function () { var t = []; return this.ListenerQueue.map(function (e) { t.push(e.performance()) }), t } }, { key: "addLazyBox", value: function (t) { this.ListenerQueue.push(t), g && (this._addListenerTarget(window), this._observer && this._observer.observe(t.el), t.$el && t.$el.parentNode && this._addListenerTarget(t.$el.parentNode)) } }, { key: "add", value: function (e, i, n) { var s = this; if (function (t, e) { for (var i = !1, n = 0, s = t.length; n < s; n++)if (e(t[n])) { i = !0; break } return i }(this.ListenerQueue, function (t) { return t.el === e })) return this.update(e, i), t.nextTick(this.lazyLoadHandler); var r = this._valueFormatter(i.value), a = r.src, l = r.loading, u = r.error; t.nextTick(function () { a = o(e, s.options.scale) || a, s._observer && s._observer.observe(e); var r = Object.keys(i.modifiers)[0], c = void 0; r && (c = (c = n.context.$refs[r]) ? c.$el || c : document.getElementById(r)), c || (c = function (t) { if (g) { if (!(t instanceof HTMLElement)) return window; for (var e = t; e && e !== document.body && e !== document.documentElement && e.parentNode;) { if (/(scroll|auto)/.test(T(e))) return e; e = e.parentNode } return window } }(e)); var h = new I({ bindType: i.arg, $parent: c, el: e, loading: l, error: u, src: a, elRenderer: s._elRenderer.bind(s), options: s.options }); s.ListenerQueue.push(h), g && (s._addListenerTarget(window), s._addListenerTarget(c)), s.lazyLoadHandler(), t.nextTick(function () { return s.lazyLoadHandler() }) }) } }, { key: "update", value: function (e, i) { var n = this, s = this._valueFormatter(i.value), a = s.src, l = s.loading, u = s.error; a = o(e, this.options.scale) || a; var c = r(this.ListenerQueue, function (t) { return t.el === e }); c && c.update({ src: a, loading: l, error: u }), this._observer && (this._observer.unobserve(e), this._observer.observe(e)), this.lazyLoadHandler(), t.nextTick(function () { return n.lazyLoadHandler() }) } }, { key: "remove", value: function (t) { if (t) { this._observer && this._observer.unobserve(t); var e = r(this.ListenerQueue, function (e) { return e.el === t }); e && (this._removeListenerTarget(e.$parent), this._removeListenerTarget(window), s(this.ListenerQueue, e) && e.destroy()) } } }, { key: "removeComponent", value: function (t) { t && (s(this.ListenerQueue, t), this._observer && this._observer.unobserve(t.el), t.$parent && t.$el.parentNode && this._removeListenerTarget(t.$el.parentNode), this._removeListenerTarget(window)) } }, { key: "setMode", value: function (t) { var e = this; b || t !== y.observer || (t = y.event), this.mode = t, t === y.event ? (this._observer && (this.ListenerQueue.forEach(function (t) { e._observer.unobserve(t.el) }), this._observer = null), this.TargetQueue.forEach(function (t) { e._initListen(t.el, !0) })) : (this.TargetQueue.forEach(function (t) { e._initListen(t.el, !1) }), this._initIntersectionObserver()) } }, { key: "_addListenerTarget", value: function (t) { if (t) { var e = r(this.TargetQueue, function (e) { return e.el === t }); return e ? e.childrenCount++ : (e = { el: t, id: ++this.TargetIndex, childrenCount: 1, listened: !0 }, this.mode === y.event && this._initListen(e.el, !0), this.TargetQueue.push(e)), this.TargetIndex } } }, { key: "_removeListenerTarget", value: function (t) { var e = this; this.TargetQueue.forEach(function (i, n) { i.el === t && (--i.childrenCount || (e._initListen(i.el, !1), e.TargetQueue.splice(n, 1), i = null)) }) } }, { key: "_initListen", value: function (t, e) { var i = this; this.options.ListenEvents.forEach(function (n) { return w[e ? "on" : "off"](t, n, i.lazyLoadHandler) }) } }, { key: "_initEvent", value: function () { var t = this; this.Event = { listeners: { loading: [], loaded: [], error: [] } }, this.$on = function (e, i) { t.Event.listeners[e].push(i) }, this.$once = function (e, i) { var n = t; t.$on(e, function t() { n.$off(e, t), i.apply(n, arguments) }) }, this.$off = function (e, i) { i ? s(t.Event.listeners[e], i) : t.Event.listeners[e] = [] }, this.$emit = function (e, i, n) { t.Event.listeners[e].forEach(function (t) { return t(i, n) }) } } }, { key: "_lazyLoadHandler", value: function () { var t = this; this.ListenerQueue.forEach(function (e, i) { e.state.loaded || e.checkInView() && e.load(function () { !e.error && e.loaded && t.ListenerQueue.splice(i, 1) }) }) } }, { key: "_initIntersectionObserver", value: function () { var t = this; b && (this._observer = new IntersectionObserver(this._observerHandler.bind(this), this.options.observerOptions), this.ListenerQueue.length && this.ListenerQueue.forEach(function (e) { t._observer.observe(e.el) })) } }, { key: "_observerHandler", value: function (t, e) { var i = this; t.forEach(function (t) { t.isIntersecting && i.ListenerQueue.forEach(function (e) { if (e.el === t.target) { if (e.state.loaded) return i._observer.unobserve(e.el); e.load() } }) }) } }, { key: "_elRenderer", value: function (t, e, i) { if (t.el) { var n = t.el, s = t.bindType, o = void 0; switch (e) { case "loading": o = t.loading; break; case "error": o = t.error; break; default: o = t.src }if (s ? n.style[s] = 'url("' + o + '")' : n.getAttribute("src") !== o && n.setAttribute("src", o), n.setAttribute("lazy", e), this.$emit(e, t, i), this.options.adapter[e] && this.options.adapter[e](t, this.options), this.options.dispatchEvent) { var r = new k(e, { detail: t }); n.dispatchEvent(r) } } } }, { key: "_valueFormatter", value: function (t) { var e = t, i = this.options.loading, n = this.options.error; return function (t) { return null !== t && "object" === (void 0 === t ? "undefined" : u(t)) }(t) && (t.src || this.options.silent || console.error("Vue Lazyload warning: miss src with " + t), e = t.src, i = t.loading || this.options.loading, n = t.error || this.options.error), { src: e, loading: i, error: n } } }]), e }() }, L = function (t) { return { props: { tag: { type: String, default: "div" } }, render: function (t) { return !1 === this.show ? t(this.tag) : t(this.tag, null, this.$slots.default) }, data: function () { return { el: null, state: { loaded: !1 }, rect: {}, show: !1 } }, mounted: function () { this.el = this.$el, t.addLazyBox(this), t.lazyLoadHandler() }, beforeDestroy: function () { t.removeComponent(this) }, methods: { getRect: function () { this.rect = this.$el.getBoundingClientRect() }, checkInView: function () { return this.getRect(), g && this.rect.top < window.innerHeight * t.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * t.options.preLoad && this.rect.right > 0 }, load: function () { this.show = !0, this.state.loaded = !0, this.$emit("show", this) } } } }, E = function () { function t(e) { var i = e.lazy; c(this, t), this.lazy = i, i.lazyContainerMananger = this, this._queue = [] } return h(t, [{ key: "bind", value: function (t, e, i) { var n = new D({ el: t, binding: e, vnode: i, lazy: this.lazy }); this._queue.push(n) } }, { key: "update", value: function (t, e, i) { var n = r(this._queue, function (e) { return e.el === t }); n && n.update({ el: t, binding: e, vnode: i }) } }, { key: "unbind", value: function (t, e, i) { var n = r(this._queue, function (e) { return e.el === t }); n && (n.clear(), s(this._queue, n)) } }]), t }(), z = { selector: "img" }, D = function () { function t(e) { var i = e.el, n = e.binding, s = e.vnode, o = e.lazy; c(this, t), this.el = null, this.vnode = s, this.binding = n, this.options = {}, this.lazy = o, this._queue = [], this.update({ el: i, binding: n }) } return h(t, [{ key: "update", value: function (t) { var e = this, i = t.el, n = t.binding; this.el = i, this.options = v({}, z, n.value), this.getImgs().forEach(function (t) { e.lazy.add(t, v({}, e.binding, { value: { src: t.dataset.src, error: t.dataset.error, loading: t.dataset.loading } }), e.vnode) }) } }, { key: "getImgs", value: function () { return function (t) { for (var e = t.length, i = [], n = 0; n < e; n++)i.push(t[n]); return i }(this.el.querySelectorAll(this.options.selector)) } }, { key: "clear", value: function () { var t = this; this.getImgs().forEach(function (e) { return t.lazy.remove(e) }), this.vnode = null, this.binding = null, this.lazy = null } }]), t }(); return { install: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = A(t), n = new i(e), s = new E({ lazy: n }), o = "2" === t.version.split(".")[0]; t.prototype.$Lazyload = n, e.lazyComponent && t.component("lazy-component", L(n)), o ? (t.directive("lazy", { bind: n.add.bind(n), update: n.update.bind(n), componentUpdated: n.lazyLoadHandler.bind(n), unbind: n.remove.bind(n) }), t.directive("lazy-container", { bind: s.bind.bind(s), update: s.update.bind(s), unbind: s.unbind.bind(s) })) : (t.directive("lazy", { bind: n.lazyLoadHandler.bind(n), update: function (t, e) { v(this.vm.$refs, this.vm.$els), n.add(this.el, { modifiers: this.modifiers || {}, arg: this.arg, value: t, oldValue: e }, { context: this.vm }) }, unbind: function () { n.remove(this.el) } }), t.directive("lazy-container", { update: function (t, e) { s.update(this.el, { modifiers: this.modifiers || {}, arg: this.arg, value: t, oldValue: e }, { context: this.vm }) }, unbind: function () { s.unbind(this.el) } })) } } }()
- }, function (t, e) { var i; i = function () { return this }(); try { i = i || new Function("return this")() } catch (t) { "object" == typeof window && (i = window) } t.exports = i }, function (t, e, i) { "use strict"; function n() { return (n = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var i = arguments[e]; for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]) } return t }).apply(this, arguments) } i.r(e); var s = i(1), o = i.n(s), r = i(9), a = i(2), l = i.n(a), u = ["ref", "style", "class", "attrs", "nativeOn", "directives", "staticClass", "staticStyle"], c = { nativeOn: "on" }; function h(t, e) { var i = u.reduce(function (e, i) { return t.data[i] && (e[c[i] || i] = t.data[i]), e }, {}); return e && (i.on = i.on || {}, n(i.on, t.data.on)), i } function d(t, e) { for (var i = arguments.length, n = new Array(i > 2 ? i - 2 : 0), s = 2; s < i; s++)n[s - 2] = arguments[s]; var o = t.listeners[e]; o && (Array.isArray(o) ? o.forEach(function (t) { t.apply(void 0, n) }) : o.apply(void 0, n)) } function f(t, e) { var i = new l.a({ el: document.createElement("div"), props: t.props, render: function (i) { return i(t, n({ props: this.$props }, e)) } }); return document.body.appendChild(i.$el), i } var p = "#ee0a24", m = "#1989fa", v = "#fff", g = "#969799", b = "van-hairline", y = b + "--top", k = b + "--left", S = b + "--bottom", x = b + "--surround", w = b + "--top-bottom", C = { zIndex: 2e3, lockCount: 0, stack: [], get top() { return this.stack[this.stack.length - 1] } }, O = 10; var T = l.a.extend({ data: function () { return { direction: "" } }, methods: { touchStart: function (t) { this.resetTouchStatus(), this.startX = t.touches[0].clientX, this.startY = t.touches[0].clientY }, touchMove: function (t) { var e, i, n = t.touches[0]; this.deltaX = n.clientX - this.startX, this.deltaY = n.clientY - this.startY, this.offsetX = Math.abs(this.deltaX), this.offsetY = Math.abs(this.deltaY), this.direction = this.direction || (e = this.offsetX, i = this.offsetY, e > i && e > O ? "horizontal" : i > e && i > O ? "vertical" : "") }, resetTouchStatus: function () { this.direction = "", this.deltaX = 0, this.deltaY = 0, this.offsetX = 0, this.offsetY = 0 } } }); function $(t) { var e = t.ref, i = t.afterPortal; return l.a.extend({ props: { getContainer: [String, Function] }, watch: { getContainer: "portal" }, mounted: function () { this.getContainer && this.portal() }, methods: { portal: function () { var t, n, s = this.getContainer, o = e ? this.$refs[e] : this.$el; s ? t = "string" == typeof (n = s) ? document.querySelector(n) : n() : this.$parent && (t = this.$parent.$el), t && t !== o.parentNode && t.appendChild(o), i && i.call(this) } } }) } var I = i(0), B = !1; if (!I.d) try { var j = {}; Object.defineProperty(j, "passive", { get: function () { B = !0 } }), window.addEventListener("test-passive", null, j) } catch (t) { } function N(t, e, i, n) { void 0 === n && (n = !1), I.d || t.addEventListener(e, i, !!B && { capture: !1, passive: n }) } function A(t, e, i) { I.d || t.removeEventListener(e, i) } function L(t) { t.stopPropagation() } function E(t, e) { ("boolean" != typeof t.cancelable || t.cancelable) && t.preventDefault(), e && L(t) } function z(t) { function e() { this.binded || (t.call(this, N, !0), this.binded = !0) } function i() { this.binded && (t.call(this, A, !1), this.binded = !1) } return { mounted: e, activated: e, deactivated: i, beforeDestroy: i } } var D = l.a.extend({ mixins: [z(function (t, e) { this.handlePopstate(e && this.closeOnPopstate) })], props: { closeOnPopstate: Boolean }, data: function () { return { bindStatus: !1 } }, watch: { closeOnPopstate: function (t) { this.handlePopstate(t) } }, methods: { handlePopstate: function (t) { this.$isServer || this.bindStatus !== t && (this.bindStatus = t, (t ? N : A)(window, "popstate", this.close)) } } }), M = Object(r.a)("overlay"), F = M[0], P = M[1]; function V(t) { E(t, !0) } function R(t, e, i, s) { var r = n({ zIndex: e.zIndex }, e.customStyle); return Object(I.b)(e.duration) && (r.animationDuration = e.duration + "s"), t("transition", { attrs: { name: "van-fade" } }, [t("div", o()([{ directives: [{ name: "show", value: e.show }], style: r, class: [P(), e.className], on: { touchmove: V } }, h(s, !0)]), [i.default && i.default()])]) } R.props = { show: Boolean, duration: [Number, String], className: null, customStyle: Object, zIndex: { type: [Number, String], default: 1 } }; var _, H = F(R), W = { className: "", customStyle: {} }; function q() { if (C.top) { var t = C.top.vm; t.$emit("click-overlay"), t.closeOnClickOverlay && (t.onClickOverlay ? t.onClickOverlay() : t.close()) } } function Y() { if (_ || (_ = f(H, { on: { click: q } })), C.top) { var t = C.top, e = t.vm, i = t.config, s = e.$el; s && s.parentNode ? s.parentNode.insertBefore(_.$el, s) : document.body.appendChild(_.$el), n(_, W, i, { show: !0 }) } else _.show = !1 } function U(t) { var e = C.stack; e.length && (C.top.vm === t ? (e.pop(), Y()) : C.stack = e.filter(function (e) { return e.vm !== t })) } var X = /scroll|auto/i; function K(t, e) { void 0 === e && (e = window); for (var i = t; i && "HTML" !== i.tagName && 1 === i.nodeType && i !== e;) { var n = window.getComputedStyle(i).overflowY; if (X.test(n)) { if ("BODY" !== i.tagName) return i; var s = window.getComputedStyle(i.parentNode).overflowY; if (X.test(s)) return i } i = i.parentNode } return e } function Q(t) { return "scrollTop" in t ? t.scrollTop : t.pageYOffset } function G(t, e) { "scrollTop" in t ? t.scrollTop = e : t.scrollTo(t.scrollX, e) } function Z() { return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 } function J(t) { G(window, t), G(document.body, t) } function tt(t) { return (t === window ? 0 : t.getBoundingClientRect().top) + Z() } var et = { mixins: [T, D, $({ afterPortal: function () { this.overlay && Y() } })], props: { value: Boolean, overlay: Boolean, overlayStyle: Object, overlayClass: String, closeOnClickOverlay: Boolean, zIndex: [Number, String], lockScroll: { type: Boolean, default: !0 }, lazyRender: { type: Boolean, default: !0 } }, data: function () { return { inited: this.value } }, computed: { shouldRender: function () { return this.inited || !this.lazyRender } }, watch: { value: function (t) { var e = t ? "open" : "close"; this.inited = this.inited || this.value, this[e](), this.$emit(e) }, overlay: "renderOverlay" }, mounted: function () { this.value && this.open() }, activated: function () { this.value && this.open() }, beforeDestroy: function () { this.close(), this.getContainer && this.$parent && this.$parent.$el && this.$parent.$el.appendChild(this.$el) }, deactivated: function () { this.close() }, methods: { open: function () { this.$isServer || this.opened || (void 0 !== this.zIndex && (C.zIndex = this.zIndex), this.opened = !0, this.renderOverlay(), this.lockScroll && (N(document, "touchstart", this.touchStart), N(document, "touchmove", this.onTouchMove), C.lockCount || document.body.classList.add("van-overflow-hidden"), C.lockCount++)) }, close: function () { this.opened && (this.lockScroll && (C.lockCount--, A(document, "touchstart", this.touchStart), A(document, "touchmove", this.onTouchMove), C.lockCount || document.body.classList.remove("van-overflow-hidden")), this.opened = !1, U(this), this.$emit("input", !1)) }, onTouchMove: function (t) { this.touchMove(t); var e = this.deltaY > 0 ? "10" : "01", i = K(t.target, this.$el), n = i.scrollHeight, s = i.offsetHeight, o = i.scrollTop, r = "11"; 0 === o ? r = s >= n ? "00" : "01" : o + s >= n && (r = "10"), "11" === r || "vertical" !== this.direction || parseInt(r, 2) & parseInt(e, 2) || E(t, !0) }, renderOverlay: function () { var t = this; !this.$isServer && this.value && this.$nextTick(function () { var e, i; t.updateZIndex(t.overlay ? 1 : 0), t.overlay ? (e = t, i = { zIndex: C.zIndex++, duration: t.duration, className: t.overlayClass, customStyle: t.overlayStyle }, C.stack.some(function (t) { return t.vm === e }) || (C.stack.push({ vm: e, config: i }), Y())) : U(t) }) }, updateZIndex: function (t) { void 0 === t && (t = 0), this.$el.style.zIndex = ++C.zIndex + t } } }, it = i(8), nt = Object(r.a)("info"), st = nt[0], ot = nt[1]; function rt(t, e, i, n) { var s = e.dot, r = e.info, a = Object(I.b)(r) && "" !== r; if (s || a) return t("div", o()([{ class: ot({ dot: s }) }, h(n, !0)]), [s ? "" : e.info]) } rt.props = { dot: Boolean, info: [Number, String] }; var at = st(rt), lt = Object(r.a)("image"), ut = lt[0], ct = lt[1], ht = ut({ props: { src: String, fit: String, alt: String, round: Boolean, width: [Number, String], height: [Number, String], radius: [Number, String], lazyLoad: Boolean, showError: { type: Boolean, default: !0 }, showLoading: { type: Boolean, default: !0 } }, data: function () { return { loading: !0, error: !1 } }, watch: { src: function () { this.loading = !0, this.error = !1 } }, computed: { style: function () { var t = {}; return Object(I.b)(this.width) && (t.width = Object(it.a)(this.width)), Object(I.b)(this.height) && (t.height = Object(it.a)(this.height)), Object(I.b)(this.radius) && (t.overflow = "hidden", t.borderRadius = Object(it.a)(this.radius)), t } }, created: function () { var t = this.$Lazyload; t && (t.$on("loaded", this.onLazyLoaded), t.$on("error", this.onLazyLoadError)) }, beforeDestroy: function () { var t = this.$Lazyload; t && (t.$off("loaded", this.onLazyLoaded), t.$off("error", this.onLazyLoadError)) }, methods: { onLoad: function (t) { this.loading = !1, this.$emit("load", t) }, onLazyLoaded: function (t) { t.el === this.$refs.image && this.loading && this.onLoad() }, onLazyLoadError: function (t) { t.el !== this.$refs.image || this.error || this.onError() }, onError: function (t) { this.error = !0, this.loading = !1, this.$emit("error", t) }, onClick: function (t) { this.$emit("click", t) }, genPlaceholder: function () { var t = this.$createElement; return this.loading && this.showLoading ? t("div", { class: ct("loading") }, [this.slots("loading") || t(vt, { attrs: { name: "photo-o", size: "22" } })]) : this.error && this.showError ? t("div", { class: ct("error") }, [this.slots("error") || t(vt, { attrs: { name: "warning-o", size: "22" } })]) : void 0 }, genImage: function () { var t = this.$createElement, e = { class: ct("img"), attrs: { alt: this.alt }, style: { objectFit: this.fit } }; if (!this.error) return this.lazyLoad ? t("img", o()([{ ref: "image", directives: [{ name: "lazy", value: this.src }] }, e])) : t("img", o()([{ attrs: { src: this.src }, on: { load: this.onLoad, error: this.onError } }, e])) } }, render: function () { var t = arguments[0]; return t("div", { class: ct({ round: this.round }), style: this.style, on: { click: this.onClick } }, [this.genImage(), this.genPlaceholder()]) } }), dt = Object(r.a)("icon"), ft = dt[0], pt = dt[1]; function mt(t, e, i, n) { var s, r = !!(s = e.name) && -1 !== s.indexOf("/"); return t(e.tag, o()([{ class: [e.classPrefix, r ? "" : e.classPrefix + "-" + e.name], style: { color: e.color, fontSize: Object(it.a)(e.size) } }, h(n, !0)]), [i.default && i.default(), r && t(ht, { class: pt("image"), attrs: { fit: "contain", src: e.name, showLoading: !1 } }), t(at, { attrs: { dot: e.dot, info: e.info } })]) } mt.props = { dot: Boolean, name: String, size: [Number, String], info: [Number, String], color: String, tag: { type: String, default: "i" }, classPrefix: { type: String, default: pt() } }; var vt = ft(mt), gt = Object(r.a)("popup"), bt = gt[0], yt = gt[1], kt = bt({ mixins: [et], props: { round: Boolean, duration: Number, closeable: Boolean, transition: String, safeAreaInsetBottom: Boolean, closeIcon: { type: String, default: "cross" }, closeIconPosition: { type: String, default: "top-right" }, position: { type: String, default: "center" }, overlay: { type: Boolean, default: !0 }, closeOnClickOverlay: { type: Boolean, default: !0 } }, beforeCreate: function () { var t = this, e = function (e) { return function (i) { return t.$emit(e, i) } }; this.onClick = e("click"), this.onOpened = e("opened"), this.onClosed = e("closed") }, render: function () { var t, e = arguments[0]; if (this.shouldRender) { var i = this.round, n = this.position, s = this.duration, o = this.transition || ("center" === n ? "van-fade" : "van-popup-slide-" + n), r = {}; return Object(I.b)(s) && (r.transitionDuration = s + "s"), e("transition", { attrs: { name: o }, on: { afterEnter: this.onOpened, afterLeave: this.onClosed } }, [e("div", { directives: [{ name: "show", value: this.value }], style: r, class: yt((t = { round: i }, t[n] = n, t["safe-area-inset-bottom"] = this.safeAreaInsetBottom, t)), on: { click: this.onClick } }, [this.slots(), this.closeable && e(vt, { attrs: { role: "button", tabindex: "0", name: this.closeIcon }, class: yt("close-icon", this.closeIconPosition), on: { click: this.close } })])]) } } }), St = Object(r.a)("loading"), xt = St[0], wt = St[1]; function Ct(t, e) { if ("spinner" === e.type) { for (var i = [], n = 0; n < 12; n++)i.push(t("i")); return i } return t("svg", { class: wt("circular"), attrs: { viewBox: "25 25 50 50" } }, [t("circle", { attrs: { cx: "50", cy: "50", r: "20", fill: "none" } })]) } function Ot(t, e, i) { if (i.default) { var n = e.textSize && { fontSize: Object(it.a)(e.textSize) }; return t("span", { class: wt("text"), style: n }, [i.default()]) } } function Tt(t, e, i, n) { var s = e.color, r = e.size, a = e.type, l = { color: s }; if (r) { var u = Object(it.a)(r); l.width = u, l.height = u } return t("div", o()([{ class: wt([a, { vertical: e.vertical }]) }, h(n, !0)]), [t("span", { class: wt("spinner", a), style: l }, [Ct(t, e)]), Ot(t, e, i)]) } Tt.props = { color: String, size: [Number, String], vertical: Boolean, textSize: [Number, String], type: { type: String, default: "circular" } }; var $t = xt(Tt), It = Object(r.a)("action-sheet"), Bt = It[0], jt = It[1]; function Nt(t, e, i, n) { var s = e.title, r = e.cancelText; function a() { d(n, "input", !1), d(n, "cancel") } var l = e.description && t("div", { class: jt("description") }, [e.description]); return t(kt, o()([{ class: jt(), attrs: { position: "bottom", round: e.round, value: e.value, overlay: e.overlay, duration: e.duration, lazyRender: e.lazyRender, lockScroll: e.lockScroll, getContainer: e.getContainer, closeOnClickOverlay: e.closeOnClickOverlay, safeAreaInsetBottom: e.safeAreaInsetBottom } }, h(n, !0)]), [function () { if (s) return t("div", { class: [jt("header"), S] }, [s, t(vt, { attrs: { name: e.closeIcon }, class: jt("close"), on: { click: a } })]) }(), l, e.actions && e.actions.map(function (i, s) { var o = i.disabled || i.loading; return t("button", { class: [jt("item", { disabled: o }), i.className, y], style: { color: i.color }, on: { click: function (t) { t.stopPropagation(), i.disabled || i.loading || (i.callback && i.callback(i), d(n, "select", i, s), e.closeOnClickAction && d(n, "input", !1)) } } }, [i.loading ? t($t, { attrs: { size: "20px" } }) : [t("span", { class: jt("name") }, [i.name]), i.subname && t("span", { class: jt("subname") }, [i.subname])]]) }), function () { if (i.default) return t("div", { class: jt("content") }, [i.default()]) }(), function () { if (r) return t("button", { class: jt("cancel"), on: { click: a } }, [r]) }()]) } Nt.props = n({}, et.props, { title: String, actions: Array, duration: Number, cancelText: String, description: String, getContainer: [String, Function], closeOnClickAction: Boolean, round: { type: Boolean, default: !0 }, closeIcon: { type: String, default: "close" }, safeAreaInsetBottom: { type: Boolean, default: !0 }, overlay: { type: Boolean, default: !0 }, closeOnClickOverlay: { type: Boolean, default: !0 } }); var At = Bt(Nt); function Lt(t) { return t = t.replace(/[^-|\d]/g, ""), /^((\+86)|(86))?(1)\d{10}$/.test(t) || /^0[0-9-]{10,13}$/.test(t) } var Et = i(7); function zt(t) { return Array.isArray(t) ? t.map(function (t) { return zt(t) }) : "object" == typeof t ? Object(Et.a)({}, t) : t } var Dt = { title: String, loading: Boolean, showToolbar: Boolean, cancelButtonText: String, confirmButtonText: String, allowHtml: { type: Boolean, default: !0 }, visibleItemCount: { type: Number, default: 5 }, itemHeight: { type: Number, default: 44 }, swipeDuration: { type: Number, default: 1e3 } }; function Mt(t, e, i) { return Math.min(Math.max(t, e), i) } var Ft = Object(r.a)("picker-column"), Pt = Ft[0], Vt = Ft[1]; function Rt(t) { return Object(I.c)(t) && t.disabled } var _t = Pt({ mixins: [T], props: { valueKey: String, allowHtml: Boolean, className: String, itemHeight: Number, defaultIndex: Number, swipeDuration: Number, visibleItemCount: Number, initialOptions: { type: Array, default: function () { return [] } } }, data: function () { return { offset: 0, duration: 0, options: zt(this.initialOptions), currentIndex: this.defaultIndex } }, created: function () { this.$parent.children && this.$parent.children.push(this), this.setIndex(this.currentIndex) }, destroyed: function () { var t = this.$parent.children; t && t.splice(t.indexOf(this), 1) }, watch: { defaultIndex: function () { this.setIndex(this.defaultIndex) } }, computed: { count: function () { return this.options.length }, baseOffset: function () { return this.itemHeight * (this.visibleItemCount - 1) / 2 } }, methods: { onTouchStart: function (t) { if (this.touchStart(t), this.moving) { var e = function (t) { var e = window.getComputedStyle(t), i = e.transform || e.webkitTransform, n = i.slice(7, i.length - 1).split(", ")[5]; return Number(n) }(this.$refs.wrapper); this.offset = Math.min(0, e - this.baseOffset), this.startOffset = this.offset } else this.startOffset = this.offset; this.duration = 0, this.transitionEndTrigger = null, this.touchStartTime = Date.now(), this.momentumOffset = this.startOffset }, onTouchMove: function (t) { this.moving = !0, this.touchMove(t), "vertical" === this.direction && E(t, !0), this.offset = Mt(this.startOffset + this.deltaY, -this.count * this.itemHeight, this.itemHeight); var e = Date.now(); e - this.touchStartTime > 300 && (this.touchStartTime = e, this.momentumOffset = this.offset) }, onTouchEnd: function () { var t = this.offset - this.momentumOffset, e = Date.now() - this.touchStartTime; if (e < 300 && Math.abs(t) > 15) this.momentum(t, e); else { var i = this.getIndexByOffset(this.offset); this.moving = !1, this.duration = 200, this.setIndex(i, !0) } }, onTransitionEnd: function () { this.stopMomentum() }, onClickItem: function (t) { this.moving || (this.duration = 200, this.setIndex(t, !0)) }, adjustIndex: function (t) { for (var e = t = Mt(t, 0, this.count); e < this.count; e++)if (!Rt(this.options[e])) return e; for (var i = t - 1; i >= 0; i--)if (!Rt(this.options[i])) return i }, getOptionText: function (t) { return Object(I.c)(t) && this.valueKey in t ? t[this.valueKey] : t }, setIndex: function (t, e) { var i = this; t = this.adjustIndex(t) || 0, this.offset = -t * this.itemHeight; var n = function () { t !== i.currentIndex && (i.currentIndex = t, e && i.$emit("change", t)) }; this.moving ? this.transitionEndTrigger = n : n() }, setValue: function (t) { for (var e = this.options, i = 0; i < e.length; i++)if (this.getOptionText(e[i]) === t) return this.setIndex(i) }, getValue: function () { return this.options[this.currentIndex] }, getIndexByOffset: function (t) { return Mt(Math.round(-t / this.itemHeight), 0, this.count - 1) }, momentum: function (t, e) { var i = Math.abs(t / e); t = this.offset + i / .002 * (t < 0 ? -1 : 1); var n = this.getIndexByOffset(t); this.duration = this.swipeDuration, this.setIndex(n, !0) }, stopMomentum: function () { this.moving = !1, this.duration = 0, this.transitionEndTrigger && (this.transitionEndTrigger(), this.transitionEndTrigger = null) }, genOptions: function () { var t = this, e = this.$createElement, i = { height: this.itemHeight + "px" }; return this.options.map(function (n, s) { var r = t.getOptionText(n), a = Rt(n), l = { style: i, attrs: { role: "button", tabindex: a ? -1 : 0 }, class: ["van-ellipsis", Vt("item", { disabled: a, selected: s === t.currentIndex })], on: { click: function () { t.onClickItem(s) } } }; return t.allowHtml && (l.domProps = { innerHTML: r }), e("li", o()([{}, l]), [t.allowHtml ? "" : r]) }) } }, render: function () { var t = arguments[0], e = { transform: "translate3d(0, " + (this.offset + this.baseOffset) + "px, 0)", transitionDuration: this.duration + "ms", transitionProperty: this.duration ? "all" : "none", lineHeight: this.itemHeight + "px" }; return t("div", { class: [Vt(), this.className], on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [t("ul", { ref: "wrapper", style: e, class: Vt("wrapper"), on: { transitionend: this.onTransitionEnd } }, [this.genOptions()])]) } }), Ht = Object(r.a)("picker"), Wt = Ht[0], qt = Ht[1], Yt = Ht[2], Ut = Wt({ props: n({}, Dt, { defaultIndex: { type: Number, default: 0 }, columns: { type: Array, default: function () { return [] } }, toolbarPosition: { type: String, default: "top" }, valueKey: { type: String, default: "text" } }), data: function () { return { children: [] } }, computed: { simple: function () { return this.columns.length && !this.columns[0].values } }, watch: { columns: "setColumns" }, methods: { setColumns: function () { var t = this; (this.simple ? [{ values: this.columns }] : this.columns).forEach(function (e, i) { t.setColumnValues(i, zt(e.values)) }) }, emit: function (t) { this.simple ? this.$emit(t, this.getColumnValue(0), this.getColumnIndex(0)) : this.$emit(t, this.getValues(), this.getIndexes()) }, onChange: function (t) { this.simple ? this.$emit("change", this, this.getColumnValue(0), this.getColumnIndex(0)) : this.$emit("change", this, this.getValues(), t) }, getColumn: function (t) { return this.children[t] }, getColumnValue: function (t) { var e = this.getColumn(t); return e && e.getValue() }, setColumnValue: function (t, e) { var i = this.getColumn(t); i && i.setValue(e) }, getColumnIndex: function (t) { return (this.getColumn(t) || {}).currentIndex }, setColumnIndex: function (t, e) { var i = this.getColumn(t); i && i.setIndex(e) }, getColumnValues: function (t) { return (this.children[t] || {}).options }, setColumnValues: function (t, e) { var i = this.children[t]; i && JSON.stringify(i.options) !== JSON.stringify(e) && (i.options = e, i.setIndex(0)) }, getValues: function () { return this.children.map(function (t) { return t.getValue() }) }, setValues: function (t) { var e = this; t.forEach(function (t, i) { e.setColumnValue(i, t) }) }, getIndexes: function () { return this.children.map(function (t) { return t.currentIndex }) }, setIndexes: function (t) { var e = this; t.forEach(function (t, i) { e.setColumnIndex(i, t) }) }, onConfirm: function () { this.children.map(function (t) { return t.stopMomentum() }), this.emit("confirm") }, onCancel: function () { this.emit("cancel") } }, render: function (t) { var e = this, i = this.itemHeight, n = i * this.visibleItemCount, s = this.simple ? [this.columns] : this.columns, o = { height: i + "px" }, r = { height: n + "px" }, a = { backgroundSize: "100% " + (n - i) / 2 + "px" }, l = this.showToolbar && t("div", { class: [w, qt("toolbar")] }, [this.slots() || [t("button", { class: qt("cancel"), on: { click: this.onCancel } }, [this.cancelButtonText || Yt("cancel")]), this.slots("title") || this.title && t("div", { class: ["van-ellipsis", qt("title")] }, [this.title]), t("button", { class: qt("confirm"), on: { click: this.onConfirm } }, [this.confirmButtonText || Yt("confirm")])]]); return t("div", { class: qt() }, ["top" === this.toolbarPosition ? l : t(), this.loading ? t($t, { class: qt("loading") }) : t(), this.slots("columns-top"), t("div", { class: qt("columns"), style: r, on: { touchmove: E } }, [s.map(function (i, n) { return t(_t, { attrs: { valueKey: e.valueKey, allowHtml: e.allowHtml, className: i.className, itemHeight: e.itemHeight, defaultIndex: i.defaultIndex || e.defaultIndex, swipeDuration: e.swipeDuration, visibleItemCount: e.visibleItemCount, initialOptions: e.simple ? i : i.values }, on: { change: function () { e.onChange(n) } } }) }), t("div", { class: qt("mask"), style: a }), t("div", { class: ["van-hairline-unset--top-bottom", qt("frame")], style: o })]), this.slots("columns-bottom"), "bottom" === this.toolbarPosition ? l : t()]) } }), Xt = Object(r.a)("area"), Kt = Xt[0], Qt = Xt[1]; var Gt = Kt({ props: n({}, Dt, { value: String, areaList: { type: Object, default: function () { return {} } }, columnsNum: { type: [Number, String], default: 3 }, isOverseaCode: { type: Function, default: function (t) { return "9" === t[0] } }, columnsPlaceholder: { type: Array, default: function () { return [] } } }), data: function () { return { code: this.value, columns: [{ values: [] }, { values: [] }, { values: [] }] } }, computed: { province: function () { return this.areaList.province_list || {} }, city: function () { return this.areaList.city_list || {} }, county: function () { return this.areaList.county_list || {} }, displayColumns: function () { return this.columns.slice(0, +this.columnsNum) }, typeToColumnsPlaceholder: function () { return { province: this.columnsPlaceholder[0] || "", city: this.columnsPlaceholder[1] || "", county: this.columnsPlaceholder[2] || "" } } }, watch: { value: function () { this.code = this.value, this.setValues() }, areaList: { deep: !0, handler: "setValues" }, columnsNum: function () { var t = this; this.$nextTick(function () { t.setValues() }) } }, mounted: function () { this.setValues() }, methods: { getList: function (t, e) { var i = []; if ("province" !== t && !e) return i; var n = this[t]; if (i = Object.keys(n).map(function (t) { return { code: t, name: n[t] } }), e && (this.isOverseaCode(e) && "city" === t && (e = "9"), i = i.filter(function (t) { return 0 === t.code.indexOf(e) })), this.typeToColumnsPlaceholder[t] && i.length) { var s = "province" === t ? "" : "city" === t ? "000000".slice(2, 4) : "000000".slice(4, 6); i.unshift({ code: "" + e + s, name: this.typeToColumnsPlaceholder[t] }) } return i }, getIndex: function (t, e) { var i = "province" === t ? 2 : "city" === t ? 4 : 6, n = this.getList(t, e.slice(0, i - 2)); this.isOverseaCode(e) && "province" === t && (i = 1), e = e.slice(0, i); for (var s = 0; s < n.length; s++)if (n[s].code.slice(0, i) === e) return s; return 0 }, parseOutputValues: function (t) { var e = this; return t.map(function (t, i) { return t ? ((t = JSON.parse(JSON.stringify(t))).code && t.name !== e.columnsPlaceholder[i] || (t.code = "", t.name = ""), t) : t }) }, onChange: function (t, e, i) { this.code = e[i].code, this.setValues(); var n = t.getValues(); n = this.parseOutputValues(n), this.$emit("change", t, n, i) }, onConfirm: function (t, e) { t = this.parseOutputValues(t), this.setValues(), this.$emit("confirm", t, e) }, setValues: function () { var t = this.code; t || (t = this.columnsPlaceholder.length ? "000000" : Object.keys(this.county)[0] ? Object.keys(this.county)[0] : ""); var e = this.$refs.picker, i = this.getList("province"), n = this.getList("city", t.slice(0, 2)); e && (e.setColumnValues(0, i), e.setColumnValues(1, n), n.length && "00" === t.slice(2, 4) && !this.isOverseaCode(t) && (t = n[0].code), e.setColumnValues(2, this.getList("county", t.slice(0, 4))), e.setIndexes([this.getIndex("province", t), this.getIndex("city", t), this.getIndex("county", t)])) }, getValues: function () { var t = this.$refs.picker, e = t ? t.getValues().filter(function (t) { return !!t }) : []; return e = this.parseOutputValues(e), e }, getArea: function () { var t = this.getValues(), e = { code: "", country: "", province: "", city: "", county: "" }; if (!t.length) return e; var i = t.map(function (t) { return t.name }), n = t.filter(function (t) { return !!t.code }); return e.code = n.length ? n[n.length - 1].code : "", this.isOverseaCode(e.code) ? (e.country = i[1] || "", e.province = i[2] || "") : (e.province = i[0] || "", e.city = i[1] || "", e.county = i[2] || ""), e }, reset: function (t) { this.code = t || "", this.setValues() } }, render: function () { var t = arguments[0], e = n({}, this.$listeners, { change: this.onChange, confirm: this.onConfirm }); return t(Ut, { ref: "picker", class: Qt(), attrs: { showToolbar: !0, valueKey: "name", title: this.title, loading: this.loading, columns: this.displayColumns, itemHeight: this.itemHeight, swipeDuration: this.swipeDuration, visibleItemCount: this.visibleItemCount, cancelButtonText: this.cancelButtonText, confirmButtonText: this.confirmButtonText }, on: n({}, e) }) } }), Zt = { icon: String, size: String, center: Boolean, isLink: Boolean, required: Boolean, clickable: Boolean, titleStyle: null, titleClass: null, valueClass: null, labelClass: null, title: [Number, String], value: [Number, String], label: [Number, String], arrowDirection: String, border: { type: Boolean, default: !0 } }; function Jt(t, e) { var i = e.to, n = e.url, s = e.replace; if (i && t) { var o = t[s ? "replace" : "push"](i); o && o.catch && o.catch(function (t) { if (t && "NavigationDuplicated" !== t.name) throw t }) } else n && (s ? location.replace(n) : location.href = n) } function te(t) { Jt(t.parent && t.parent.$router, t.props) } var ee = { url: String, replace: Boolean, to: [String, Object] }, ie = Object(r.a)("cell"), ne = ie[0], se = ie[1]; function oe(t, e, i, n) { var s = e.icon, r = e.size, a = e.title, l = e.label, u = e.value, c = e.isLink, f = e.arrowDirection, p = i.title || Object(I.b)(a), m = i.default || Object(I.b)(u), v = (i.label || Object(I.b)(l)) && t("div", { class: [se("label"), e.labelClass] }, [i.label ? i.label() : l]), g = p && t("div", { class: [se("title"), e.titleClass], style: e.titleStyle }, [i.title ? i.title() : t("span", [a]), v]), b = m && t("div", { class: [se("value", { alone: !i.title && !a }), e.valueClass] }, [i.default ? i.default() : t("span", [u])]), y = i.icon ? i.icon() : s && t(vt, { class: se("left-icon"), attrs: { name: s } }), k = i["right-icon"], S = k ? k() : c && t(vt, { class: se("right-icon"), attrs: { name: f ? "arrow-" + f : "arrow" } }); var x = c || e.clickable, w = { clickable: x, center: e.center, required: e.required, borderless: !e.border }; return r && (w[r] = r), t("div", o()([{ class: se(w), attrs: { role: x ? "button" : null, tabindex: x ? 0 : null }, on: { click: function (t) { d(n, "click", t), te(n) } } }, h(n)]), [y, g, b, S, i.extra && i.extra()]) } oe.props = n({}, Zt, {}, ee); var re = ne(oe); var ae = !I.d && /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()); function le() { ae && J(Z()) } var ue = Object(r.a)("field"), ce = ue[0], he = ue[1], de = ce({ inheritAttrs: !1, props: n({}, Zt, { error: Boolean, readonly: Boolean, autosize: [Boolean, Object], leftIcon: String, rightIcon: String, clearable: Boolean, maxlength: [Number, String], labelWidth: [Number, String], labelClass: null, labelAlign: String, inputAlign: String, errorMessage: String, errorMessageAlign: String, showWordLimit: Boolean, type: { type: String, default: "text" } }), data: function () { return { focused: !1 } }, watch: { value: function () { this.$nextTick(this.adjustSize) } }, mounted: function () { this.format(), this.$nextTick(this.adjustSize) }, computed: { showClear: function () { return this.clearable && this.focused && "" !== this.value && Object(I.b)(this.value) && !this.readonly }, listeners: function () { var t = n({}, this.$listeners, { input: this.onInput, keypress: this.onKeypress, focus: this.onFocus, blur: this.onBlur }); return delete t.click, t }, labelStyle: function () { var t = this.labelWidth; if (t) return { width: Object(it.a)(t) } } }, methods: { focus: function () { this.$refs.input && this.$refs.input.focus() }, blur: function () { this.$refs.input && this.$refs.input.blur() }, format: function (t) { if (void 0 === t && (t = this.$refs.input), t) { var e = t.value, i = this.maxlength; return Object(I.b)(i) && e.length > i && (e = e.slice(0, i), t.value = e), e } }, onInput: function (t) { t.target.composing || this.$emit("input", this.format(t.target)) }, onFocus: function (t) { this.focused = !0, this.$emit("focus", t), this.readonly && this.blur() }, onBlur: function (t) { this.focused = !1, this.$emit("blur", t), le() }, onClick: function (t) { this.$emit("click", t) }, onClickLeftIcon: function (t) { this.$emit("click-left-icon", t) }, onClickRightIcon: function (t) { this.$emit("click-right-icon", t) }, onClear: function (t) { E(t), this.$emit("input", ""), this.$emit("clear", t) }, onKeypress: function (t) { if ("number" === this.type) { var e = t.keyCode, i = -1 === String(this.value).indexOf("."); e >= 48 && e <= 57 || 46 === e && i || 45 === e || E(t) } "search" === this.type && 13 === t.keyCode && this.blur(), this.$emit("keypress", t) }, adjustSize: function () { var t = this.$refs.input; if ("textarea" === this.type && this.autosize && t) { t.style.height = "auto"; var e = t.scrollHeight; if (Object(I.c)(this.autosize)) { var i = this.autosize, n = i.maxHeight, s = i.minHeight; n && (e = Math.min(e, n)), s && (e = Math.max(e, s)) } e && (t.style.height = e + "px") } }, genInput: function () { var t = this.$createElement, e = this.slots("input"); if (e) return t("div", { class: he("control", this.inputAlign) }, [e]); var i = { ref: "input", class: he("control", this.inputAlign), domProps: { value: this.value }, attrs: n({}, this.$attrs, { readonly: this.readonly }), on: this.listeners, directives: [{ name: "model", value: this.value }] }; return "textarea" === this.type ? t("textarea", o()([{}, i])) : t("input", o()([{ attrs: { type: this.type } }, i])) }, genLeftIcon: function () { var t = this.$createElement; if (this.slots("left-icon") || this.leftIcon) return t("div", { class: he("left-icon"), on: { click: this.onClickLeftIcon } }, [this.slots("left-icon") || t(vt, { attrs: { name: this.leftIcon } })]) }, genRightIcon: function () { var t = this.$createElement, e = this.slots; if (e("right-icon") || this.rightIcon) return t("div", { class: he("right-icon"), on: { click: this.onClickRightIcon } }, [e("right-icon") || t(vt, { attrs: { name: this.rightIcon } })]) }, genWordLimit: function () { var t = this.$createElement; if (this.showWordLimit && this.maxlength) return t("div", { class: he("word-limit") }, [this.value.length, "/", this.maxlength]) } }, render: function () { var t, e = arguments[0], i = this.slots, n = this.labelAlign, s = { icon: this.genLeftIcon }; return i("label") && (s.title = function () { return i("label") }), e(re, { attrs: { icon: this.leftIcon, size: this.size, title: this.label, center: this.center, border: this.border, isLink: this.isLink, required: this.required, clickable: this.clickable, titleStyle: this.labelStyle, titleClass: [he("label", n), this.labelClass], arrowDirection: this.arrowDirection }, class: he((t = { error: this.error }, t["label-" + n] = n, t["min-height"] = "textarea" === this.type && !this.autosize, t)), scopedSlots: s, on: { click: this.onClick } }, [e("div", { class: he("body") }, [this.genInput(), this.showClear && e(vt, { attrs: { name: "clear" }, class: he("clear"), on: { touchstart: this.onClear } }), this.genRightIcon(), i("button") && e("div", { class: he("button") }, [i("button")])]), this.genWordLimit(), this.errorMessage && e("div", { class: he("error-message", this.errorMessageAlign) }, [this.errorMessage])]) } }), fe = Object(r.a)("toast"), pe = fe[0], me = fe[1], ve = pe({ mixins: [et], props: { icon: String, className: null, iconPrefix: String, loadingType: String, forbidClick: Boolean, closeOnClick: Boolean, message: [Number, String], type: { type: String, default: "text" }, position: { type: String, default: "middle" }, transition: { type: String, default: "van-fade" }, lockScroll: { type: Boolean, default: !1 } }, data: function () { return { clickable: !1 } }, mounted: function () { this.toggleClickable() }, destroyed: function () { this.toggleClickable() }, watch: { value: "toggleClickable", forbidClick: "toggleClickable" }, methods: { onClick: function () { this.closeOnClick && this.close() }, toggleClickable: function () { var t = this.value && this.forbidClick; if (this.clickable !== t) { this.clickable = t; var e = t ? "add" : "remove"; document.body.classList[e]("van-toast--unclickable") } }, onAfterEnter: function () { this.$emit("opened"), this.onOpened && this.onOpened() }, onAfterLeave: function () { this.$emit("closed") }, genIcon: function () { var t = this.$createElement, e = this.icon, i = this.type, n = this.iconPrefix, s = this.loadingType; return e || "success" === i || "fail" === i ? t(vt, { class: me("icon"), attrs: { classPrefix: n, name: e || i } }) : "loading" === i ? t($t, { class: me("loading"), attrs: { type: s } }) : void 0 }, genMessage: function () { var t = this.$createElement, e = this.type, i = this.message; if (Object(I.b)(i) && "" !== i) return "html" === e ? t("div", { class: me("text"), domProps: { innerHTML: i } }) : t("div", { class: me("text") }, [i]) } }, render: function () { var t, e = arguments[0]; return e("transition", { attrs: { name: this.transition }, on: { afterEnter: this.onAfterEnter, afterLeave: this.onAfterLeave } }, [e("div", { directives: [{ name: "show", value: this.value }], class: [me([this.position, (t = {}, t[this.type] = !this.icon, t)]), this.className], on: { click: this.onClick } }, [this.genIcon(), this.genMessage()])]) } }), ge = { icon: "", type: "text", mask: !1, value: !0, message: "", className: "", overlay: !1, onClose: null, onOpened: null, duration: 2e3, iconPrefix: void 0, position: "middle", transition: "van-fade", forbidClick: !1, loadingType: void 0, getContainer: "body", overlayStyle: null, closeOnClick: !1, closeOnClickOverlay: !1 }, be = {}, ye = [], ke = !1, Se = n({}, ge); function xe(t) { return Object(I.c)(t) ? t : { message: t } } function we(t) { void 0 === t && (t = {}); var e = function () { if (I.d) return {}; if (!ye.length || ke) { var t = new (l.a.extend(ve))({ el: document.createElement("div") }); t.$on("input", function (e) { t.value = e }), ye.push(t) } return ye[ye.length - 1] }(); return e.value && e.updateZIndex(), t = xe(t), (t = n({}, Se, {}, be[t.type || Se.type], {}, t)).clear = function () { e.value = !1, t.onClose && t.onClose(), ke && !I.d && e.$on("closed", function () { clearTimeout(e.timer), ye = ye.filter(function (t) { return t !== e }); var t = e.$el.parentNode; t && t.removeChild(e.$el), e.$destroy() }) }, n(e, function (t) { return n({}, t, { overlay: t.mask || t.overlay, mask: void 0, duration: void 0 }) }(t)), clearTimeout(e.timer), t.duration > 0 && (e.timer = setTimeout(function () { e.clear() }, t.duration)), e } ["loading", "success", "fail"].forEach(function (t) { var e; we[t] = (e = t, function (t) { return we(n({ type: e }, xe(t))) }) }), we.clear = function (t) { ye.length && (t ? (ye.forEach(function (t) { t.clear() }), ye = []) : ke ? ye.shift().clear() : ye[0].clear()) }, we.setDefaultOptions = function (t, e) { "string" == typeof t ? be[t] = e : n(Se, t) }, we.resetDefaultOptions = function (t) { "string" == typeof t ? be[t] = null : (Se = n({}, ge), be = {}) }, we.allowMultiple = function (t) { void 0 === t && (t = !0), ke = t }, we.install = function () { l.a.use(ve) }, l.a.prototype.$toast = we; var Ce = we, Oe = Object(r.a)("button"), Te = Oe[0], $e = Oe[1]; function Ie(t, e, i, n) { var s, r = e.tag, a = e.icon, l = e.type, u = e.color, c = e.plain, f = e.disabled, p = e.loading, m = e.hairline, g = e.loadingText, b = {}; u && (b.color = c ? u : v, c || (b.background = u), -1 !== u.indexOf("gradient") ? b.border = 0 : b.borderColor = u); var y, k, S = [$e([l, e.size, { plain: c, disabled: f, hairline: m, block: e.block, round: e.round, square: e.square }]), (s = {}, s[x] = m, s)]; return t(r, o()([{ style: b, class: S, attrs: { type: e.nativeType, disabled: f }, on: { click: function (t) { p || f || (d(n, "click", t), te(n)) }, touchstart: function (t) { d(n, "touchstart", t) } } }, h(n)]), [(k = [], p ? k.push(t($t, { class: $e("loading"), attrs: { size: e.loadingSize, type: e.loadingType, color: "currentColor" } })) : a && k.push(t(vt, { attrs: { name: a }, class: $e("icon") })), (y = p ? g : i.default ? i.default() : e.text) && k.push(t("span", { class: $e("text") }, [y])), k)]) } Ie.props = n({}, ee, { text: String, icon: String, color: String, block: Boolean, plain: Boolean, round: Boolean, square: Boolean, loading: Boolean, hairline: Boolean, disabled: Boolean, nativeType: String, loadingText: String, loadingType: String, tag: { type: String, default: "button" }, type: { type: String, default: "default" }, size: { type: String, default: "normal" }, loadingSize: { type: String, default: "20px" } }); var Be, je = Te(Ie), Ne = Object(r.a)("dialog"), Ae = Ne[0], Le = Ne[1], Ee = Ne[2], ze = Ae({ mixins: [et], props: { title: String, width: [Number, String], message: String, className: null, callback: Function, beforeClose: Function, messageAlign: String, cancelButtonText: String, cancelButtonColor: String, confirmButtonText: String, confirmButtonColor: String, showCancelButton: Boolean, transition: { type: String, default: "van-dialog-bounce" }, showConfirmButton: { type: Boolean, default: !0 }, overlay: { type: Boolean, default: !0 }, closeOnClickOverlay: { type: Boolean, default: !1 } }, data: function () { return { loading: { confirm: !1, cancel: !1 } } }, methods: { onClickOverlay: function () { this.handleAction("overlay") }, handleAction: function (t) { var e = this; this.$emit(t), this.beforeClose ? (this.loading[t] = !0, this.beforeClose(t, function (i) { !1 !== i && e.loading[t] && e.onClose(t), e.loading.confirm = !1, e.loading.cancel = !1 })) : this.onClose(t) }, onClose: function (t) { this.close(), this.callback && this.callback(t) }, onOpened: function () { this.$emit("opened") }, onClosed: function () { this.$emit("closed") } }, render: function () { var t, e, i = this, n = arguments[0]; if (this.shouldRender) { var s = this.message, o = this.messageAlign, r = this.slots(), a = this.slots("title") || this.title, l = a && n("div", { class: Le("header", { isolated: !s && !r }) }, [a]), u = (r || s) && n("div", { class: Le("content") }, [r || n("div", { domProps: { innerHTML: s }, class: Le("message", (t = { "has-title": a }, t[o] = o, t)) })]), c = this.showCancelButton && this.showConfirmButton, h = n("div", { class: [y, Le("footer", { buttons: c })] }, [this.showCancelButton && n(je, { attrs: { size: "large", loading: this.loading.cancel, text: this.cancelButtonText || Ee("cancel") }, class: Le("cancel"), style: { color: this.cancelButtonColor }, on: { click: function () { i.handleAction("cancel") } } }), this.showConfirmButton && n(je, { attrs: { size: "large", loading: this.loading.confirm, text: this.confirmButtonText || Ee("confirm") }, class: [Le("confirm"), (e = {}, e[k] = c, e)], style: { color: this.confirmButtonColor }, on: { click: function () { i.handleAction("confirm") } } })]); return n("transition", { attrs: { name: this.transition }, on: { afterEnter: this.onOpened, afterLeave: this.onClosed } }, [n("div", { directives: [{ name: "show", value: this.value }], attrs: { role: "dialog", "aria-labelledby": this.title || s }, class: [Le(), this.className], style: { width: Object(it.a)(this.width) } }, [l, u, h])]) } } }); function De(t) { return I.d ? Promise.resolve() : new Promise(function (e, i) { var s; Be && (s = Be.$el, document.body.contains(s)) || (Be && Be.$destroy(), (Be = new (l.a.extend(ze))({ el: document.createElement("div"), propsData: { lazyRender: !1 } })).$on("input", function (t) { Be.value = t })), n(Be, De.currentOptions, t, { resolve: e, reject: i }) }) } De.defaultOptions = { value: !0, title: "", width: "", message: "", overlay: !0, className: "", lockScroll: !0, transition: "van-dialog-bounce", beforeClose: null, overlayClass: "", overlayStyle: null, messageAlign: "", getContainer: "body", cancelButtonText: "", cancelButtonColor: null, confirmButtonText: "", confirmButtonColor: null, showConfirmButton: !0, showCancelButton: !1, closeOnPopstate: !1, closeOnClickOverlay: !1, callback: function (t) { Be["confirm" === t ? "resolve" : "reject"](t) } }, De.alert = De, De.confirm = function (t) { return De(n({ showCancelButton: !0 }, t)) }, De.close = function () { Be && (Be.value = !1) }, De.setDefaultOptions = function (t) { n(De.currentOptions, t) }, De.resetDefaultOptions = function () { De.currentOptions = n({}, De.defaultOptions) }, De.resetDefaultOptions(), De.install = function () { l.a.use(ze) }, De.Component = ze, l.a.prototype.$dialog = De; var Me = De, Fe = Object(r.a)("address-edit-detail"), Pe = Fe[0], Ve = Fe[1], Re = Fe[2], _e = !I.d && /android/.test(navigator.userAgent.toLowerCase()), He = Pe({ props: { value: String, error: Boolean, focused: Boolean, detailRows: Number, searchResult: Array, detailMaxlength: Number, showSearchResult: Boolean }, methods: { onSelect: function (t) { this.$emit("select-search", t), this.$emit("input", ((t.address || "") + " " + (t.name || "")).trim()) }, onFinish: function () { this.$refs.field.blur() }, genFinish: function () { var t = this.$createElement; if (this.value && this.focused && _e) return t("div", { class: Ve("finish"), on: { click: this.onFinish } }, [Re("complete")]) }, genSearchResult: function () { var t = this, e = this.$createElement, i = this.searchResult; if (this.focused && i && this.showSearchResult) return i.map(function (i) { return e(re, { key: i.name + i.address, attrs: { title: i.name, label: i.address, icon: "location-o", clickable: !0 }, on: { click: function () { t.onSelect(i) } } }) }) } }, render: function () { var t = arguments[0]; return t(re, { class: Ve() }, [t(de, { attrs: { autosize: !0, rows: this.detailRows, clearable: !_e, type: "textarea", value: this.value, error: this.error, label: Re("label"), maxlength: this.detailMaxlength, placeholder: Re("placeholder") }, ref: "field", scopedSlots: { icon: this.genFinish }, on: n({}, this.$listeners) }), this.genSearchResult()]) } }), We = { size: String, value: null, loading: Boolean, disabled: Boolean, activeColor: String, inactiveColor: String, activeValue: { type: null, default: !0 }, inactiveValue: { type: null, default: !1 } }, qe = Object(r.a)("switch"), Ye = qe[0], Ue = qe[1]; function Xe(t, e, i, n) { var s = e.size, r = e.value, a = e.loading, l = e.disabled, u = e.activeColor, c = e.activeValue, f = e.inactiveColor, p = e.inactiveValue, v = r === c, b = { fontSize: Object(it.a)(s), backgroundColor: v ? u : f }, y = v ? u || m : f || g; return t("div", o()([{ class: Ue({ on: v, disabled: l }), attrs: { role: "switch", "aria-checked": String(v) }, style: b, on: { click: function (t) { if (d(n, "click", t), !l && !a) { var e = v ? p : c; d(n, "input", e), d(n, "change", e) } } } }, h(n)]), [t("div", { class: Ue("node") }, [a && t($t, { class: Ue("loading"), attrs: { color: y } })])]) } Xe.props = We; var Ke = Ye(Xe), Qe = Object(r.a)("switch-cell"), Ge = Qe[0], Ze = Qe[1]; function Je(t, e, i, s) { return t(re, o()([{ attrs: { center: !0, size: e.cellSize, title: e.title, border: e.border }, class: Ze([e.cellSize]) }, h(s)]), [t(Ke, { props: n({}, e), on: n({}, s.listeners) })]) } Je.props = n({}, We, { title: String, cellSize: String, border: { type: Boolean, default: !0 }, size: { type: String, default: "24px" } }); var ti = Ge(Je), ei = Object(r.a)("address-edit"), ii = ei[0], ni = ei[1], si = ei[2], oi = { name: "", tel: "", country: "", province: "", city: "", county: "", areaCode: "", postalCode: "", addressDetail: "", isDefault: !1 }; var ri = ii({ props: { areaList: Object, isSaving: Boolean, isDeleting: Boolean, validator: Function, showDelete: Boolean, showPostal: Boolean, searchResult: Array, showSetDefault: Boolean, showSearchResult: Boolean, saveButtonText: String, deleteButtonText: String, showArea: { type: Boolean, default: !0 }, showDetail: { type: Boolean, default: !0 }, detailRows: { type: Number, default: 1 }, detailMaxlength: { type: Number, default: 200 }, addressInfo: { type: Object, default: function () { return n({}, oi) } }, telValidator: { type: Function, default: Lt }, postalValidator: { type: Function, default: function (t) { return /^\d{6}$/.test(t) } }, areaColumnsPlaceholder: { type: Array, default: function () { return [] } } }, data: function () { return { data: {}, showAreaPopup: !1, detailFocused: !1, errorInfo: { tel: !1, name: !1, postalCode: !1, addressDetail: !1 } } }, computed: { areaListLoaded: function () { return Object(I.c)(this.areaList) && Object.keys(this.areaList).length }, areaText: function () { var t = this.data, e = t.country, i = t.province, n = t.city, s = t.county; if (t.areaCode) { var o = [e, i, n, s]; return i && i === n && o.splice(1, 1), o.filter(function (t) { return t }).join("/") } return "" } }, watch: { addressInfo: { handler: function (t) { this.data = n({}, oi, {}, t), this.setAreaCode(t.areaCode) }, deep: !0, immediate: !0 }, areaList: function () { this.setAreaCode(this.data.areaCode) } }, methods: { onFocus: function (t) { this.errorInfo[t] = !1, this.detailFocused = "addressDetail" === t, this.$emit("focus", t) }, onChangeDetail: function (t) { this.data.addressDetail = t, this.$emit("change-detail", t) }, onAreaConfirm: function (t) { (t = t.filter(function (t) { return !!t })).some(function (t) { return !t.code }) ? Ce(si("areaEmpty")) : (this.showAreaPopup = !1, this.assignAreaValues(), this.$emit("change-area", t)) }, assignAreaValues: function () { var t = this.$refs.area; if (t) { var e = t.getArea(); e.areaCode = e.code, delete e.code, n(this.data, e) } }, onSave: function () { var t = this, e = ["name", "tel", "areaCode", "addressDetail"]; this.showPostal && e.push("postalCode"), e.every(function (e) { var i = t.getErrorMessage(e); return i && (t.errorInfo[e] = !0, Ce(i)), !i }) && !this.isSaving && this.$emit("save", this.data) }, getErrorMessage: function (t) { var e = String(this.data[t] || "").trim(); if (this.validator) { var i = this.validator(t, e); if (i) return i } switch (t) { case "name": return e ? "" : si("nameEmpty"); case "tel": return this.telValidator(e) ? "" : si("telInvalid"); case "areaCode": return e ? "" : si("areaEmpty"); case "addressDetail": return e ? "" : si("addressEmpty"); case "postalCode": return e && !this.postalValidator(e) ? si("postalEmpty") : "" } }, onDelete: function () { var t = this; Me.confirm({ title: si("confirmDelete") }).then(function () { t.$emit("delete", t.data) }).catch(function () { t.$emit("cancel-delete", t.data) }) }, getArea: function () { return this.$refs.area ? this.$refs.area.getValues() : [] }, setAreaCode: function (t) { this.data.areaCode = t || "", t && this.$nextTick(this.assignAreaValues) }, setAddressDetail: function (t) { this.data.addressDetail = t }, onDetailBlur: function () { var t = this; setTimeout(function () { t.detailFocused = !1 }) } }, render: function () { var t = this, e = arguments[0], i = this.data, n = this.errorInfo, s = this.searchResult, o = function (e) { return function () { return t.onFocus(e) } }, r = s && s.length && this.detailFocused; return e("div", { class: ni() }, [e(de, { attrs: { clearable: !0, label: si("name"), placeholder: si("namePlaceholder"), error: n.name }, on: { focus: o("name") }, model: { value: i.name, callback: function (e) { t.$set(i, "name", e) } } }), e(de, { attrs: { clearable: !0, type: "tel", label: si("tel"), placeholder: si("telPlaceholder"), error: n.tel }, on: { focus: o("tel") }, model: { value: i.tel, callback: function (e) { t.$set(i, "tel", e) } } }), e(de, { directives: [{ name: "show", value: this.showArea }], attrs: { readonly: !0, label: si("area"), placeholder: si("areaPlaceholder"), value: this.areaText }, on: { click: function () { t.showAreaPopup = !0 } } }), e(He, { directives: [{ name: "show", value: this.showDetail }], attrs: { focused: this.detailFocused, value: i.addressDetail, error: n.addressDetail, detailRows: this.detailRows, detailMaxlength: this.detailMaxlength, searchResult: this.searchResult, showSearchResult: this.showSearchResult }, on: { focus: o("addressDetail"), blur: this.onDetailBlur, input: this.onChangeDetail, "select-search": function (e) { t.$emit("select-search", e) } } }), this.showPostal && e(de, { directives: [{ name: "show", value: !r }], attrs: { type: "tel", maxlength: "6", label: si("postal"), placeholder: si("postal"), error: n.postalCode }, on: { focus: o("postalCode") }, model: { value: i.postalCode, callback: function (e) { t.$set(i, "postalCode", e) } } }), this.slots(), this.showSetDefault && e(ti, { directives: [{ name: "show", value: !r }], attrs: { title: si("defaultAddress") }, on: { change: function (e) { t.$emit("change-default", e) } }, model: { value: i.isDefault, callback: function (e) { t.$set(i, "isDefault", e) } } }), e("div", { directives: [{ name: "show", value: !r }], class: ni("buttons") }, [e(je, { attrs: { block: !0, loading: this.isSaving, type: "danger", text: this.saveButtonText || si("save") }, on: { click: this.onSave } }), this.showDelete && e(je, { attrs: { block: !0, loading: this.isDeleting, text: this.deleteButtonText || si("delete") }, on: { click: this.onDelete } })]), e(kt, { attrs: { position: "bottom", lazyRender: !1, getContainer: "body" }, model: { value: t.showAreaPopup, callback: function (e) { t.showAreaPopup = e } } }, [e(Gt, { ref: "area", attrs: { loading: !this.areaListLoaded, value: i.areaCode, areaList: this.areaList, columnsPlaceholder: this.areaColumnsPlaceholder }, on: { confirm: this.onAreaConfirm, cancel: function () { t.showAreaPopup = !1 } } })])]) } }); function ai(t, e) { var i, n; void 0 === e && (e = {}); var s = e.indexKey || "index"; return l.a.extend({ inject: (i = {}, i[t] = { default: null }, i), computed: (n = { parent: function () { return this.disableBindRelation ? null : this[t] } }, n[s] = function () { return this.bindRelation(), this.parent.children.indexOf(this) }, n), mounted: function () { this.bindRelation() }, beforeDestroy: function () { var t = this; this.parent && (this.parent.children = this.parent.children.filter(function (e) { return e !== t })) }, methods: { bindRelation: function () { if (this.parent && -1 === this.parent.children.indexOf(this)) { var t = [].concat(this.parent.children, [this]), e = function (t) { var e = []; return function t(i) { i.forEach(function (i) { e.push(i), i.children && t(i.children) }) }(t), e }(this.parent.slots()); t.sort(function (t, i) { return e.indexOf(t.$vnode) - e.indexOf(i.$vnode) }), this.parent.children = t } } } }) } function li(t) { return { provide: function () { var e; return (e = {})[t] = this, e }, data: function () { return { children: [] } } } } var ui = Object(r.a)("radio-group"), ci = ui[0], hi = ui[1], di = ci({ mixins: [li("vanRadio")], props: { value: null, disabled: Boolean, checkedColor: String, iconSize: [Number, String] }, watch: { value: function (t) { this.$emit("change", t) } }, render: function () { var t = arguments[0]; return t("div", { class: hi(), attrs: { role: "radiogroup" } }, [this.slots()]) } }), fi = function (t) { var e = t.parent, i = t.bem, n = t.role; return { mixins: [ai(e)], props: { name: null, value: null, disabled: Boolean, iconSize: [Number, String], checkedColor: String, labelPosition: String, labelDisabled: Boolean, shape: { type: String, default: "round" }, bindGroup: { type: Boolean, default: !0 } }, computed: { disableBindRelation: function () { return !this.bindGroup }, isDisabled: function () { return this.parent && this.parent.disabled || this.disabled }, iconStyle: function () { var t = this.checkedColor || this.parent && this.parent.checkedColor; if (t && this.checked && !this.isDisabled) return { borderColor: t, backgroundColor: t } }, tabindex: function () { return this.isDisabled || "radio" === n && !this.checked ? -1 : 0 } }, methods: { onClick: function (t) { var e = this.$refs.label, i = t.target, n = e && (e === i || e.contains(i)); this.isDisabled || n && this.labelDisabled || this.toggle(), this.$emit("click", t) } }, render: function () { var t = arguments[0], e = this.slots, s = this.checked, o = e("icon", { checked: s }) || t(vt, { attrs: { name: "success" }, style: this.iconStyle }), r = e() && t("span", { ref: "label", class: i("label", [this.labelPosition, { disabled: this.isDisabled }]) }, [e()]), a = this.iconSize || this.parent && this.parent.iconSize, l = [t("div", { class: i("icon", [this.shape, { disabled: this.isDisabled, checked: s }]), style: { fontSize: Object(it.a)(a) } }, [o])]; return "left" === this.labelPosition ? l.unshift(r) : l.push(r), t("div", { attrs: { role: n, tabindex: this.tabindex, "aria-checked": String(this.checked) }, class: i(), on: { click: this.onClick } }, [l]) } } }, pi = Object(r.a)("radio"), mi = (0, pi[0])({ mixins: [fi({ bem: pi[1], role: "radio", parent: "vanRadio" })], computed: { currentValue: { get: function () { return this.parent ? this.parent.value : this.value }, set: function (t) { (this.parent || this).$emit("input", t) } }, checked: function () { return this.currentValue === this.name } }, methods: { toggle: function () { this.currentValue = this.name } } }), vi = Object(r.a)("address-item"), gi = vi[0], bi = vi[1]; function yi(t, e, i, n) { var s = e.disabled, r = e.switchable; return t(re, o()([{ class: bi({ disabled: s }), attrs: { valueClass: bi("value"), clickable: r && !s }, scopedSlots: { default: function () { var i = e.data, n = [t("div", { class: bi("name") }, [i.name + "," + i.tel]), t("div", { class: bi("address") }, [i.address])]; return r && !s ? t(mi, { attrs: { name: i.id, iconSize: 16 } }, [n]) : n }, "right-icon": function () { return t(vt, { attrs: { name: "edit" }, class: bi("edit"), on: { click: function (t) { t.stopPropagation(), d(n, "edit"), d(n, "click") } } }) } }, on: { click: function () { r && d(n, "select"), d(n, "click") } } }, h(n)])) } yi.props = { data: Object, disabled: Boolean, switchable: Boolean }; var ki = gi(yi), Si = Object(r.a)("address-list"), xi = Si[0], wi = Si[1], Ci = Si[2]; function Oi(t, e, i, n) { function s(i, s) { if (i) return i.map(function (i, o) { return t(ki, { attrs: { data: i, disabled: s, switchable: e.switchable }, key: i.id, on: { select: function () { d(n, s ? "select-disabled" : "select", i, o), s || d(n, "input", i.id) }, edit: function () { d(n, s ? "edit-disabled" : "edit", i, o) }, click: function () { d(n, "click-item", i, o) } } }) }) } var r = s(e.list), a = s(e.disabledList, !0); return t("div", o()([{ class: wi() }, h(n)]), [i.top && i.top(), t(di, { attrs: { value: e.value } }, [r]), e.disabledText && t("div", { class: wi("disabled-text") }, [e.disabledText]), a, i.default && i.default(), t(je, { attrs: { square: !0, size: "large", type: "danger", text: e.addButtonText || Ci("add") }, class: wi("add"), on: { click: function () { d(n, "add") } } })]) } Oi.props = { list: Array, disabledList: Array, disabledText: String, addButtonText: String, value: [Number, String], switchable: { type: Boolean, default: !0 } }; var Ti = xi(Oi), $i = Object(r.a)("tag"), Ii = $i[0], Bi = $i[1]; function ji(t, e, i, n) { var s, r, a = e.type, l = e.mark, u = e.plain, c = e.color, f = e.round, p = e.size, m = ((s = {})[u ? "color" : "backgroundColor"] = c, s); e.textColor && (m.color = e.textColor); var v = { mark: l, plain: u, round: f }; p && (v[p] = p); var g = t("span", o()([{ style: m, class: [Bi([v, a]), (r = {}, r[x] = u, r)] }, h(n, !0)]), [i.default && i.default(), e.closeable && t(vt, { attrs: { name: "cross" }, class: Bi("close"), on: { click: function () { d(n, "close") } } })]); return e.closeable ? t("transition", { attrs: { name: "van-fade" } }, [g]) : g } ji.props = { size: String, mark: Boolean, color: String, plain: Boolean, round: Boolean, textColor: String, closeable: Boolean, type: { type: String, default: "default" } }; var Ni = Ii(ji), Ai = Object(r.a)("card"), Li = Ai[0], Ei = Ai[1]; function zi(t, e, i, n) { var s = e.thumb, r = i.num || Object(I.b)(e.num), a = i.price || Object(I.b)(e.price), l = i["origin-price"] || Object(I.b)(e.originPrice), u = r || a || l; function c(t) { d(n, "click-thumb", t) } function f() { if (i.tag || e.tag) return t("div", { class: Ei("tag") }, [i.tag ? i.tag() : t(Ni, { attrs: { mark: !0, type: "danger" } }, [e.tag])]) } return t("div", o()([{ class: Ei() }, h(n, !0)]), [t("div", { class: Ei("header") }, [function () { if (i.thumb || s) return t("a", { attrs: { href: e.thumbLink }, class: Ei("thumb"), on: { click: c } }, [i.thumb ? i.thumb() : t(ht, { attrs: { src: s, width: "100%", height: "100%", fit: "contain", "lazy-load": e.lazyLoad } }), f()]) }(), t("div", { class: Ei("content", { centered: e.centered }) }, [i.title ? i.title() : e.title ? t("div", { class: [Ei("title"), "van-multi-ellipsis--l2"] }, [e.title]) : void 0, i.desc ? i.desc() : e.desc ? t("div", { class: [Ei("desc"), "van-ellipsis"] }, [e.desc]) : void 0, i.tags && i.tags(), u && t("div", { class: "van-card__bottom" }, [function () { if (a) return t("div", { class: Ei("price") }, [i.price ? i.price() : e.currency + " " + e.price]) }(), function () { if (l) { var n = i["origin-price"]; return t("div", { class: Ei("origin-price") }, [n ? n() : e.currency + " " + e.originPrice]) } }(), function () { if (r) return t("div", { class: Ei("num") }, [i.num ? i.num() : "x " + e.num]) }(), i.bottom && i.bottom()])])]), function () { if (i.footer) return t("div", { class: Ei("footer") }, [i.footer()]) }()]) } zi.props = { tag: String, desc: String, thumb: String, title: String, centered: Boolean, lazyLoad: Boolean, thumbLink: String, num: [Number, String], price: [Number, String], originPrice: [Number, String], currency: { type: String, default: "¥" } }; var Di = Li(zi), Mi = Object(r.a)("cell-group"), Fi = Mi[0], Pi = Mi[1]; function Vi(t, e, i, n) { var s, r = t("div", o()([{ class: [Pi(), (s = {}, s[w] = e.border, s)] }, h(n, !0)]), [i.default && i.default()]); return e.title || i.title ? t("div", [t("div", { class: Pi("title") }, [i.title ? i.title() : e.title]), r]) : r } Vi.props = { title: String, border: { type: Boolean, default: !0 } }; var Ri = Fi(Vi), _i = Object(r.a)("checkbox"), Hi = (0, _i[0])({ mixins: [fi({ bem: _i[1], role: "checkbox", parent: "vanCheckbox" })], computed: { checked: { get: function () { return this.parent ? -1 !== this.parent.value.indexOf(this.name) : this.value }, set: function (t) { this.parent ? this.setParentValue(t) : this.$emit("input", t) } } }, watch: { value: function (t) { this.$emit("change", t) } }, methods: { toggle: function (t) { var e = this; void 0 === t && (t = !this.checked), clearTimeout(this.toggleTask), this.toggleTask = setTimeout(function () { e.checked = t }) }, setParentValue: function (t) { var e = this.parent, i = e.value.slice(); if (t) { if (e.max && i.length >= e.max) return; -1 === i.indexOf(this.name) && (i.push(this.name), e.$emit("input", i)) } else { var n = i.indexOf(this.name); -1 !== n && (i.splice(n, 1), e.$emit("input", i)) } } } }), Wi = Object(r.a)("checkbox-group"), qi = Wi[0], Yi = Wi[1], Ui = qi({ mixins: [li("vanCheckbox")], props: { max: Number, disabled: Boolean, iconSize: [Number, String], checkedColor: String, value: { type: Array, default: function () { return [] } } }, watch: { value: function (t) { this.$emit("change", t) } }, methods: { toggleAll: function (t) { this.children.forEach(function (e) { e.toggle(t) }) } }, render: function () { var t = arguments[0]; return t("div", { class: Yi() }, [this.slots()]) } }), Xi = i(4), Ki = Object(r.a)("circle"), Qi = Ki[0], Gi = Ki[1], Zi = 0; function Ji(t) { return Math.min(Math.max(t, 0), 100) } var tn = Qi({ props: { text: String, value: { type: Number, default: 0 }, speed: { type: Number, default: 0 }, size: { type: [String, Number], default: 100 }, fill: { type: String, default: "none" }, rate: { type: Number, default: 100 }, layerColor: { type: String, default: v }, color: { type: [String, Object], default: m }, strokeWidth: { type: Number, default: 40 }, clockwise: { type: Boolean, default: !0 } }, beforeCreate: function () { this.uid = "van-circle-gradient-" + Zi++ }, computed: { style: function () { var t = Object(it.a)(this.size); return { width: t, height: t } }, path: function () { return t = this.clockwise, "M " + (e = this.viewBoxSize) / 2 + " " + e / 2 + " m 0, -500 a 500, 500 0 1, " + (i = t ? 1 : 0) + " 0, 1000 a 500, 500 0 1, " + i + " 0, -1000"; var t, e, i }, viewBoxSize: function () { return 1e3 + this.strokeWidth }, layerStyle: function () { var t = 3140 * this.value / 100; return { stroke: "" + this.color, strokeWidth: this.strokeWidth + 1 + "px", strokeDasharray: t + "px 3140px" } }, hoverStyle: function () { return { fill: "" + this.fill, stroke: "" + this.layerColor, strokeWidth: this.strokeWidth + "px" } }, gradient: function () { return Object(I.c)(this.color) }, LinearGradient: function () { var t = this, e = this.$createElement; if (this.gradient) { var i = Object.keys(this.color).sort(function (t, e) { return parseFloat(t) - parseFloat(e) }).map(function (i, n) { return e("stop", { key: n, attrs: { offset: i, "stop-color": t.color[i] } }) }); return e("defs", [e("linearGradient", { attrs: { id: this.uid, x1: "100%", y1: "0%", x2: "0%", y2: "0%" } }, [i])]) } } }, watch: { rate: { handler: function () { this.startTime = Date.now(), this.startRate = this.value, this.endRate = Ji(this.rate), this.increase = this.endRate > this.startRate, this.duration = Math.abs(1e3 * (this.startRate - this.endRate) / this.speed), this.speed ? (Object(Xi.a)(this.rafId), this.rafId = Object(Xi.c)(this.animate)) : this.$emit("input", this.endRate) }, immediate: !0 } }, methods: { animate: function () { var t = Date.now(), e = Math.min((t - this.startTime) / this.duration, 1) * (this.endRate - this.startRate) + this.startRate; this.$emit("input", Ji(parseFloat(e.toFixed(1)))), (this.increase ? e < this.endRate : e > this.endRate) && (this.rafId = Object(Xi.c)(this.animate)) } }, render: function () { var t = arguments[0]; return t("div", { class: Gi(), style: this.style }, [t("svg", { attrs: { viewBox: "0 0 " + this.viewBoxSize + " " + this.viewBoxSize } }, [this.LinearGradient, t("path", { class: Gi("hover"), style: this.hoverStyle, attrs: { d: this.path } }), t("path", { attrs: { d: this.path, stroke: this.gradient ? "url(#" + this.uid + ")" : this.color }, class: Gi("layer"), style: this.layerStyle })]), this.slots() || this.text && t("div", { class: Gi("text") }, [this.text])]) } }), en = Object(r.a)("col"), nn = en[0], sn = en[1], on = nn({ props: { span: [Number, String], offset: [Number, String], tag: { type: String, default: "div" } }, computed: { gutter: function () { return this.$parent && Number(this.$parent.gutter) || 0 }, style: function () { var t = this.gutter / 2 + "px"; return this.gutter ? { paddingLeft: t, paddingRight: t } : {} } }, methods: { onClick: function (t) { this.$emit("click", t) } }, render: function () { var t, e = arguments[0], i = this.span, n = this.offset; return e(this.tag, { style: this.style, class: sn((t = {}, t[i] = i, t["offset-" + n] = n, t)), on: { click: this.onClick } }, [this.slots()]) } }), rn = Object(r.a)("collapse"), an = rn[0], ln = rn[1], un = an({ mixins: [li("vanCollapse")], props: { accordion: Boolean, value: [String, Number, Array], border: { type: Boolean, default: !0 } }, methods: { switch: function (t, e) { this.accordion || (t = e ? this.value.concat(t) : this.value.filter(function (e) { return e !== t })), this.$emit("change", t), this.$emit("input", t) } }, render: function () { var t, e = arguments[0]; return e("div", { class: [ln(), (t = {}, t[w] = this.border, t)] }, [this.slots()]) } }), cn = Object(r.a)("collapse-item"), hn = cn[0], dn = cn[1], fn = ["title", "icon", "right-icon"], pn = hn({ mixins: [ai("vanCollapse")], props: n({}, Zt, { name: [Number, String], disabled: Boolean, isLink: { type: Boolean, default: !0 } }), data: function () { return { show: null, inited: null } }, computed: { currentName: function () { return Object(I.b)(this.name) ? this.name : this.index }, expanded: function () { var t = this; if (!this.parent) return null; var e = this.parent, i = e.value; return e.accordion ? i === this.currentName : i.some(function (e) { return e === t.currentName }) } }, created: function () { this.show = this.expanded, this.inited = this.expanded }, watch: { expanded: function (t, e) { var i = this; null !== e && (t && (this.show = !0, this.inited = !0), (t ? this.$nextTick : Xi.c)(function () { var e = i.$refs, n = e.content, s = e.wrapper; if (n && s) { var o = n.offsetHeight; if (o) { var r = o + "px"; s.style.height = t ? 0 : r, Object(Xi.b)(function () { s.style.height = t ? r : 0 }) } else i.onTransitionEnd() } })) } }, methods: { onClick: function () { if (!this.disabled) { var t = this.parent, e = t.accordion && this.currentName === t.value ? "" : this.currentName; this.parent.switch(e, !this.expanded) } }, onTransitionEnd: function () { this.expanded ? this.$refs.wrapper.style.height = "" : this.show = !1 } }, render: function () { var t, e = this, i = arguments[0], s = this.disabled, o = this.expanded, r = fn.reduce(function (t, i) { return e.slots(i) && (t[i] = function () { return e.slots(i) }), t }, {}); this.slots("value") && (r.default = function () { return e.slots("value") }); var a = i(re, { attrs: { role: "button", tabindex: s ? -1 : 0, "aria-expanded": String(o) }, class: dn("title", { disabled: s, expanded: o }), on: { click: this.onClick }, scopedSlots: r, props: n({}, this.$props) }), l = this.inited && i("div", { directives: [{ name: "show", value: this.show }], ref: "wrapper", class: dn("wrapper"), on: { transitionend: this.onTransitionEnd } }, [i("div", { ref: "content", class: dn("content") }, [this.slots()])]); return i("div", { class: [dn(), (t = {}, t[y] = this.index, t)] }, [a, l]) } }), mn = Object(r.a)("contact-card"), vn = mn[0], gn = mn[1], bn = mn[2]; function yn(t, e, i, n) { var s = e.type, r = e.editable; return t(re, o()([{ attrs: { center: !0, border: !1, isLink: r, valueClass: gn("value"), icon: "edit" === s ? "contact" : "add-square" }, class: gn([s]), on: { click: function (t) { r && d(n, "click", t) } } }, h(n)]), ["add" === s ? e.addText || bn("addText") : [t("div", [bn("name") + ":" + e.name]), t("div", [bn("tel") + ":" + e.tel])]]) } yn.props = { tel: String, name: String, addText: String, editable: { type: Boolean, default: !0 }, type: { type: String, default: "add" } }; var kn = vn(yn), Sn = Object(r.a)("contact-edit"), xn = Sn[0], wn = Sn[1], Cn = Sn[2], On = { tel: "", name: "" }, Tn = xn({ props: { isEdit: Boolean, isSaving: Boolean, isDeleting: Boolean, contactInfo: { type: Object, default: function () { return n({}, On) } }, telValidator: { type: Function, default: Lt } }, data: function () { return { data: n({}, On, {}, this.contactInfo), errorInfo: { name: !1, tel: !1 } } }, watch: { contactInfo: function (t) { this.data = n({}, On, {}, t) } }, methods: { onFocus: function (t) { this.errorInfo[t] = !1 }, getErrorMessageByKey: function (t) { var e = this.data[t].trim(); switch (t) { case "name": return e ? "" : Cn("nameEmpty"); case "tel": return this.telValidator(e) ? "" : Cn("telInvalid") } }, onSave: function () { var t = this;["name", "tel"].every(function (e) { var i = t.getErrorMessageByKey(e); return i && (t.errorInfo[e] = !0, Ce(i)), !i }) && !this.isSaving && this.$emit("save", this.data) }, onDelete: function () { var t = this; Me.confirm({ message: Cn("confirmDelete") }).then(function () { t.$emit("delete", t.data) }) } }, render: function () { var t = this, e = arguments[0], i = this.data, n = this.errorInfo, s = function (e) { return function () { return t.onFocus(e) } }; return e("div", { class: wn() }, [e(de, { attrs: { clearable: !0, maxlength: "30", label: Cn("name"), placeholder: Cn("nameEmpty"), error: n.name }, on: { focus: s("name") }, model: { value: i.name, callback: function (e) { t.$set(i, "name", e) } } }), e(de, { attrs: { clearable: !0, type: "tel", label: Cn("tel"), placeholder: Cn("telEmpty"), error: n.tel }, on: { focus: s("tel") }, model: { value: i.tel, callback: function (e) { t.$set(i, "tel", e) } } }), e("div", { class: wn("buttons") }, [e(je, { attrs: { block: !0, type: "danger", text: Cn("save"), loading: this.isSaving }, on: { click: this.onSave } }), this.isEdit && e(je, { attrs: { block: !0, text: Cn("delete"), loading: this.isDeleting }, on: { click: this.onDelete } })])]) } }), $n = Object(r.a)("contact-list"), In = $n[0], Bn = $n[1], jn = $n[2]; function Nn(t, e, i, n) { var s = e.list && e.list.map(function (e, i) { function s() { d(n, "input", e.id), d(n, "select", e, i) } return t(re, { key: e.id, attrs: { isLink: !0, valueClass: Bn("item-value") }, class: Bn("item"), scopedSlots: { default: function () { return t(mi, { attrs: { name: e.id, iconSize: 16, checkedColor: p }, on: { click: s } }, [t("div", { class: Bn("name") }, [e.name + "," + e.tel])]) }, "right-icon": function () { return t(vt, { attrs: { name: "edit" }, class: Bn("edit"), on: { click: function (t) { t.stopPropagation(), d(n, "edit", e, i) } } }) } }, on: { click: s } }) }); return t("div", o()([{ class: Bn() }, h(n)]), [t(di, { attrs: { value: e.value }, class: Bn("group") }, [s]), t(je, { attrs: { square: !0, size: "large", type: "danger", text: e.addText || jn("addText") }, class: Bn("add"), on: { click: function () { d(n, "add") } } })]) } Nn.props = { value: null, list: Array, addText: String }; var An = In(Nn), Ln = i(3), En = 1e3, zn = 60 * En, Dn = 60 * zn, Mn = 24 * Dn; var Fn = Object(r.a)("count-down"), Pn = Fn[0], Vn = Fn[1], Rn = Pn({ props: { millisecond: Boolean, time: { type: Number, default: 0 }, format: { type: String, default: "HH:mm:ss" }, autoStart: { type: Boolean, default: !0 } }, data: function () { return { remain: 0 } }, computed: { timeData: function () { return t = this.remain, { days: Math.floor(t / Mn), hours: Math.floor(t % Mn / Dn), minutes: Math.floor(t % Dn / zn), seconds: Math.floor(t % zn / En), milliseconds: Math.floor(t % En) }; var t }, formattedTime: function () { return t = this.format, e = this.timeData, i = e.days, n = e.hours, s = e.minutes, o = e.seconds, r = e.milliseconds, -1 === t.indexOf("DD") ? n += 24 * i : t = t.replace("DD", Object(Ln.b)(i)), -1 === t.indexOf("HH") ? s += 60 * n : t = t.replace("HH", Object(Ln.b)(n)), -1 === t.indexOf("mm") ? o += 60 * s : t = t.replace("mm", Object(Ln.b)(s)), -1 === t.indexOf("ss") ? r += 1e3 * o : t = t.replace("ss", Object(Ln.b)(o)), t.replace("SSS", Object(Ln.b)(r, 3)); var t, e, i, n, s, o, r } }, watch: { time: { immediate: !0, handler: "reset" } }, activated: function () { this.keepAlivePaused && (this.counting = !0, this.keepAlivePaused = !1, this.tick()) }, deactivated: function () { this.counting && (this.pause(), this.keepAlivePaused = !0) }, beforeDestroy: function () { this.pause() }, methods: { start: function () { this.counting || (this.counting = !0, this.endTime = Date.now() + this.remain, this.tick()) }, pause: function () { this.counting = !1, Object(Xi.a)(this.rafId) }, reset: function () { this.pause(), this.remain = this.time, this.autoStart && this.start() }, tick: function () { this.millisecond ? this.microTick() : this.macroTick() }, microTick: function () { var t = this; this.rafId = Object(Xi.c)(function () { t.setRemain(t.getRemain()), 0 !== t.remain && t.microTick() }) }, macroTick: function () { var t = this; this.rafId = Object(Xi.c)(function () { var e, i, n = t.getRemain(); e = n, i = t.remain, (Math.floor(e / 1e3) !== Math.floor(i / 1e3) || 0 === n) && t.setRemain(n), 0 !== t.remain && t.macroTick() }) }, getRemain: function () { return Math.max(this.endTime - Date.now(), 0) }, setRemain: function (t) { this.remain = t, 0 === t && (this.pause(), this.$emit("finish")) } }, render: function () { var t = arguments[0]; return t("div", { class: Vn() }, [this.slots("default", this.timeData) || this.formattedTime]) } }), _n = Object(r.a)("coupon"), Hn = _n[0], Wn = _n[1], qn = _n[2]; function Yn(t) { var e = new Date(1e3 * t); return e.getFullYear() + "." + Object(Ln.b)(e.getMonth() + 1) + "." + Object(Ln.b)(e.getDate()) } function Un(t) { return (t / 100).toFixed(t % 100 == 0 ? 0 : t % 10 == 0 ? 1 : 2) } var Xn = Hn({ props: { coupon: Object, chosen: Boolean, disabled: Boolean, currency: { type: String, default: "¥" } }, computed: { validPeriod: function () { var t = this.coupon, e = t.startAt, i = t.endAt; return qn("valid") + ":" + Yn(e) + " - " + Yn(i) }, faceAmount: function () { var t, e = this.coupon; return e.valueDesc ? e.valueDesc + "<span>" + (e.unitDesc || "") + "</span>" : e.denominations ? "<span>" + this.currency + "</span> " + Un(this.coupon.denominations) : e.discount ? qn("discount", ((t = this.coupon.discount) / 10).toFixed(t % 10 == 0 ? 0 : 1)) : "" }, conditionMessage: function () { var t = Un(this.coupon.originCondition); return "0" === t ? qn("unlimited") : qn("condition", t) } }, render: function () { var t = arguments[0], e = this.coupon, i = this.disabled, n = i && e.reason || e.description; return t("div", { class: Wn({ disabled: i }) }, [t("div", { class: Wn("content") }, [t("div", { class: Wn("head") }, [t("h2", { class: Wn("amount"), domProps: { innerHTML: this.faceAmount } }), t("p", [this.coupon.condition || this.conditionMessage])]), t("div", { class: Wn("body") }, [t("h2", { class: Wn("name") }, [e.name]), t("p", [this.validPeriod]), this.chosen && t(Hi, { attrs: { value: !0, "checked-color": p }, class: Wn("corner") })])]), n && t("p", { class: Wn("description") }, [n])]) } }), Kn = Object(r.a)("coupon-cell"), Qn = Kn[0], Gn = Kn[1], Zn = Kn[2]; function Jn(t, e, i, n) { var s = e.coupons[e.chosenCoupon] ? "van-coupon-cell--selected" : "", r = function (t) { var e = t.coupons, i = t.chosenCoupon, n = t.currency, s = e[i]; return s ? "-" + n + ((s.denominations || s.value) / 100).toFixed(2) : 0 === e.length ? Zn("tips") : Zn("count", e.length) }(e); return t(re, o()([{ class: Gn(), attrs: { value: r, title: e.title || Zn("title"), border: e.border, isLink: e.editable, valueClass: s } }, h(n, !0)])) } Jn.model = { prop: "chosenCoupon" }, Jn.props = { title: String, coupons: { type: Array, default: function () { return [] } }, currency: { type: String, default: "¥" }, border: { type: Boolean, default: !0 }, editable: { type: Boolean, default: !0 }, chosenCoupon: { type: Number, default: -1 } }; var ts = Qn(Jn), es = Object(r.a)("tab"), is = es[0], ns = es[1], ss = is({ mixins: [ai("vanTabs")], props: n({}, ee, { name: [Number, String], title: String, titleStyle: null, disabled: Boolean }), data: function () { return { inited: !1 } }, computed: { computedName: function () { return Object(I.b)(this.name) ? this.name : this.index }, isActive: function () { return this.computedName === this.parent.currentName } }, watch: { "parent.currentIndex": function () { this.inited = this.inited || this.isActive }, title: function () { this.parent.setLine() } }, render: function (t) { var e = this.slots, i = this.isActive, n = this.inited || !this.parent.lazyRender ? e() : t(); return this.parent.animated ? t("div", { attrs: { role: "tabpanel", "aria-hidden": !i }, class: ns("pane-wrapper", { inactive: !i }) }, [t("div", { class: ns("pane") }, [n])]) : t("div", { directives: [{ name: "show", value: i }], attrs: { role: "tabpanel" }, class: ns("pane") }, [n]) } }); function os(t) { return "none" === window.getComputedStyle(t).display || null === t.offsetParent } var rs = Object(r.a)("tab"), as = rs[0], ls = rs[1], us = as({ props: { type: String, color: String, title: String, isActive: Boolean, ellipsis: Boolean, disabled: Boolean, scrollable: Boolean, activeColor: String, inactiveColor: String, swipeThreshold: Number }, computed: { style: function () { var t = {}, e = this.color, i = this.isActive, n = "card" === this.type; e && n && (t.borderColor = e, this.disabled || (i ? t.backgroundColor = e : t.color = e)); var s = i ? this.activeColor : this.inactiveColor; return s && (t.color = s), this.scrollable && this.ellipsis && (t.flexBasis = 88 / this.swipeThreshold + "%"), t } }, methods: { onClick: function () { this.$emit("click") } }, render: function () { var t = arguments[0]; return t("div", { attrs: { role: "tab", "aria-selected": this.isActive }, class: ls({ active: this.isActive, disabled: this.disabled, complete: !this.ellipsis }), style: this.style, on: { click: this.onClick } }, [t("span", { class: { "van-ellipsis": this.ellipsis } }, [this.slots() || this.title])]) } }), cs = Object(r.a)("tabs"), hs = cs[0], ds = cs[1], fs = hs({ mixins: [T], props: { count: Number, duration: Number, animated: Boolean, swipeable: Boolean, currentIndex: Number }, computed: { style: function () { if (this.animated) return { transform: "translate3d(" + -1 * this.currentIndex * 100 + "%, 0, 0)", transitionDuration: this.duration + "s" } }, listeners: function () { if (this.swipeable) return { touchstart: this.touchStart, touchmove: this.touchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } } }, methods: { onTouchEnd: function () { var t = this.direction, e = this.deltaX, i = this.currentIndex; "horizontal" === t && this.offsetX >= 50 && (e > 0 && 0 !== i ? this.$emit("change", i - 1) : e < 0 && i !== this.count - 1 && this.$emit("change", i + 1)) }, genChildren: function () { var t = this.$createElement; return this.animated ? t("div", { class: ds("track"), style: this.style }, [this.slots()]) : this.slots() } }, render: function () { var t = arguments[0]; return t("div", { class: ds("content", { animated: this.animated }), on: n({}, this.listeners) }, [this.genChildren()]) } }), ps = Object(r.a)("sticky"), ms = ps[0], vs = ps[1], gs = ms({ mixins: [z(function (t) { this.scroller || (this.scroller = K(this.$el)), t(this.scroller, "scroll", this.onScroll, !0), this.onScroll() })], props: { zIndex: Number, container: null, offsetTop: { type: Number, default: 0 } }, data: function () { return { fixed: !1, height: 0, transform: 0 } }, computed: { style: function () { if (this.fixed) { var t = {}; return Object(I.b)(this.zIndex) && (t.zIndex = this.zIndex), this.offsetTop && this.fixed && (t.top = this.offsetTop + "px"), this.transform && (t.transform = "translate3d(0, " + this.transform + "px, 0)"), t } } }, methods: { onScroll: function () { var t = this; this.height = this.$el.offsetHeight; var e = this.container, i = this.offsetTop, n = Q(window), s = tt(this.$el), o = function () { t.$emit("scroll", { scrollTop: n, isFixed: t.fixed }) }; if (e) { var r = s + e.offsetHeight; if (n + i + this.height > r) { var a = this.height + n - r; return a < this.height ? (this.fixed = !0, this.transform = -(a + i)) : this.fixed = !1, void o() } } n + i > s ? (this.fixed = !0, this.transform = 0) : this.fixed = !1, o() } }, render: function () { var t = arguments[0], e = this.fixed, i = { height: e ? this.height + "px" : null }; return t("div", { style: i }, [t("div", { class: vs({ fixed: e }), style: this.style }, [this.slots()])]) } }), bs = Object(r.a)("tabs"), ys = bs[0], ks = bs[1], Ss = ys({ mixins: [li("vanTabs"), z(function (t) { t(window, "resize", this.resize, !0) })], model: { prop: "active" }, props: { color: String, sticky: Boolean, animated: Boolean, swipeable: Boolean, background: String, lineWidth: [Number, String], lineHeight: [Number, String], titleActiveColor: String, titleInactiveColor: String, type: { type: String, default: "line" }, active: { type: [Number, String], default: 0 }, border: { type: Boolean, default: !0 }, ellipsis: { type: Boolean, default: !0 }, duration: { type: Number, default: .3 }, offsetTop: { type: Number, default: 0 }, lazyRender: { type: Boolean, default: !0 }, swipeThreshold: { type: Number, default: 4 } }, data: function () { return { position: "", currentIndex: null, lineStyle: { backgroundColor: this.color } } }, computed: { scrollable: function () { return this.children.length > this.swipeThreshold || !this.ellipsis }, navStyle: function () { return { borderColor: this.color, background: this.background } }, currentName: function () { var t = this.children[this.currentIndex]; if (t) return t.computedName } }, watch: { color: "setLine", active: function (t) { t !== this.currentName && this.setCurrentIndexByName(t) }, children: function () { var t = this; this.setCurrentIndexByName(this.currentName || this.active), this.setLine(), this.$nextTick(function () { t.scrollIntoView(!0) }) }, currentIndex: function () { this.scrollIntoView(), this.setLine(), this.stickyFixed && J(Math.ceil(tt(this.$el) - this.offsetTop)) } }, mounted: function () { this.onShow() }, activated: function () { this.onShow(), this.setLine() }, methods: { resize: function () { this.setLine() }, onShow: function () { var t = this; this.$nextTick(function () { t.inited = !0, t.scrollIntoView(!0) }) }, setLine: function () { var t = this, e = this.inited; this.$nextTick(function () { var i = t.$refs.titles; if (i && i[t.currentIndex] && "line" === t.type && !os(t.$el)) { var n = i[t.currentIndex].$el, s = t.lineWidth, o = t.lineHeight, r = Object(I.b)(s) ? s : n.offsetWidth / 2, a = n.offsetLeft + n.offsetWidth / 2, l = { width: Object(it.a)(r), backgroundColor: t.color, transform: "translateX(" + a + "px) translateX(-50%)" }; if (e && (l.transitionDuration = t.duration + "s"), Object(I.b)(o)) { var u = Object(it.a)(o); l.height = u, l.borderRadius = u } t.lineStyle = l } }) }, setCurrentIndexByName: function (t) { var e = this.children.filter(function (e) { return e.computedName === t }), i = (this.children[0] || {}).index || 0; this.setCurrentIndex(e.length ? e[0].index : i) }, setCurrentIndex: function (t) { if (t = this.findAvailableTab(t), Object(I.b)(t) && t !== this.currentIndex) { var e = null !== this.currentIndex; this.currentIndex = t, this.$emit("input", this.currentName), e && this.$emit("change", this.currentName, this.children[t].title) } }, findAvailableTab: function (t) { for (var e = t < this.currentIndex ? -1 : 1; t >= 0 && t < this.children.length;) { if (!this.children[t].disabled) return t; t += e } }, onClick: function (t) { var e = this.children[t], i = e.title, n = e.disabled, s = e.computedName; n ? this.$emit("disabled", s, i) : (this.setCurrentIndex(t), this.$emit("click", s, i)) }, scrollIntoView: function (t) { var e = this.$refs.titles; if (this.scrollable && e && e[this.currentIndex]) { var i = this.$refs.nav, n = e[this.currentIndex].$el; !function (t, e, i) { var n = 0, s = t.scrollLeft, o = 0 === i ? 1 : Math.round(1e3 * i / 16); !function i() { t.scrollLeft += (e - s) / o, ++n < o && Object(Xi.c)(i) }() }(i, n.offsetLeft - (i.offsetWidth - n.offsetWidth) / 2, t ? 0 : this.duration) } }, onScroll: function (t) { this.stickyFixed = t.isFixed, this.$emit("scroll", t) } }, render: function () { var t, e = this, i = arguments[0], n = this.type, s = this.ellipsis, o = this.animated, r = this.scrollable, a = this.children.map(function (t, o) { return i(us, { ref: "titles", refInFor: !0, attrs: { type: n, title: t.title, color: e.color, isActive: o === e.currentIndex, ellipsis: s, disabled: t.disabled, scrollable: r, activeColor: e.titleActiveColor, inactiveColor: e.titleInactiveColor, swipeThreshold: e.swipeThreshold }, style: t.titleStyle, scopedSlots: { default: function () { return t.slots("title") } }, on: { click: function () { e.onClick(o), Jt(t.$router, t) } } }) }), l = i("div", { ref: "wrap", class: [ks("wrap", { scrollable: r }), (t = {}, t[w] = "line" === n && this.border, t)] }, [i("div", { ref: "nav", attrs: { role: "tablist" }, class: ks("nav", [n]), style: this.navStyle }, [this.slots("nav-left"), a, "line" === n && i("div", { class: ks("line"), style: this.lineStyle }), this.slots("nav-right")])]); return i("div", { class: ks([n]) }, [this.sticky ? i(gs, { attrs: { container: this.$el, offsetTop: this.offsetTop }, on: { scroll: this.onScroll } }, [l]) : l, i(fs, { attrs: { count: this.children.length, animated: o, duration: this.duration, swipeable: this.swipeable, currentIndex: this.currentIndex }, on: { change: this.setCurrentIndex } }, [this.slots()])]) } }), xs = Object(r.a)("coupon-list"), ws = xs[0], Cs = xs[1], Os = xs[2], Ts = ws({ model: { prop: "code" }, props: { code: String, closeButtonText: String, inputPlaceholder: String, enabledTitle: String, disabledTitle: String, exchangeButtonText: String, exchangeButtonLoading: Boolean, exchangeButtonDisabled: Boolean, exchangeMinLength: { type: Number, default: 1 }, chosenCoupon: { type: Number, default: -1 }, coupons: { type: Array, default: function () { return [] } }, disabledCoupons: { type: Array, default: function () { return [] } }, displayedCouponIndex: { type: Number, default: -1 }, showExchangeBar: { type: Boolean, default: !0 }, showCloseButton: { type: Boolean, default: !0 }, currency: { type: String, default: "¥" }, emptyImage: { type: String, default: "https://img.yzcdn.cn/vant/coupon-empty.png" } }, data: function () { return { tab: 0, winHeight: window.innerHeight, currentCode: this.code || "" } }, computed: { buttonDisabled: function () { return !this.exchangeButtonLoading && (this.exchangeButtonDisabled || !this.currentCode || this.currentCode.length < this.exchangeMinLength) }, listStyle: function () { return { height: this.winHeight - (this.showExchangeBar ? 140 : 94) + "px" } } }, watch: { code: function (t) { this.currentCode = t }, currentCode: function (t) { this.$emit("input", t) }, displayedCouponIndex: "scrollToShowCoupon" }, mounted: function () { this.scrollToShowCoupon(this.displayedCouponIndex) }, methods: { onClickExchangeButton: function () { this.$emit("exchange", this.currentCode), this.code || (this.currentCode = "") }, scrollToShowCoupon: function (t) { var e = this; -1 !== t && this.$nextTick(function () { var i = e.$refs, n = i.card, s = i.list; s && n && n[t] && (s.scrollTop = n[t].$el.offsetTop - 100) }) }, genEmpty: function () { var t = this.$createElement; return t("div", { class: Cs("empty") }, [t("img", { attrs: { src: this.emptyImage } }), t("p", [Os("empty")])]) }, genExchangeButton: function () { return (0, this.$createElement)(je, { attrs: { size: "small", type: "danger", text: this.exchangeButtonText || Os("exchange"), loading: this.exchangeButtonLoading, disabled: this.buttonDisabled }, class: Cs("exchange"), on: { click: this.onClickExchangeButton } }) } }, render: function () { var t = this, e = arguments[0], i = this.coupons, n = this.disabledCoupons, s = (this.enabledTitle || Os("enable")) + " (" + i.length + ")", o = (this.disabledTitle || Os("disabled")) + " (" + n.length + ")", r = this.showExchangeBar && e(de, { attrs: { clearable: !0, border: !1, placeholder: this.inputPlaceholder || Os("placeholder"), maxlength: "20" }, class: Cs("field"), scopedSlots: { button: this.genExchangeButton }, model: { value: t.currentCode, callback: function (e) { t.currentCode = e } } }), a = function (e) { return function () { return t.$emit("change", e) } }, l = e(ss, { attrs: { title: s } }, [e("div", { class: Cs("list"), style: this.listStyle }, [i.map(function (i, n) { return e(Xn, { ref: "card", key: i.id, attrs: { coupon: i, currency: t.currency, chosen: n === t.chosenCoupon }, nativeOn: { click: a(n) } }) }), !i.length && this.genEmpty()])]), u = e(ss, { attrs: { title: o } }, [e("div", { class: Cs("list"), style: this.listStyle }, [n.map(function (i) { return e(Xn, { attrs: { disabled: !0, coupon: i, currency: t.currency }, key: i.id }) }), !n.length && this.genEmpty()])]); return e("div", { class: Cs() }, [r, e(Ss, { class: Cs("tab"), attrs: { "line-width": 120 }, model: { value: t.tab, callback: function (e) { t.tab = e } } }, [l, u]), e(je, { directives: [{ name: "show", value: this.showCloseButton }], attrs: { size: "large", text: this.closeButtonText || Os("close") }, class: Cs("close"), on: { click: a(-1) } })]) } }), $s = i(6); function Is(t, e) { return 32 - new Date(t, e - 1, 32).getDate() } var Bs = n({}, Dt, { value: null, filter: Function, showToolbar: { type: Boolean, default: !0 }, formatter: { type: Function, default: function (t, e) { return e } } }), js = { data: function () { return { innerValue: this.formatValue(this.value) } }, computed: { originColumns: function () { var t = this; return this.ranges.map(function (e) { var i = e.type, n = e.range, s = function (t, e) { for (var i = -1, n = Array(t); ++i < t;)n[i] = e(i); return n }(n[1] - n[0] + 1, function (t) { return Object(Ln.b)(n[0] + t) }); return t.filter && (s = t.filter(i, s)), { type: i, values: s } }) }, columns: function () { var t = this; return this.originColumns.map(function (e) { return { values: e.values.map(function (i) { return t.formatter(e.type, i) }) } }) } }, watch: { columns: "updateColumnValue", innerValue: function (t) { this.$emit("input", t) } }, mounted: function () { var t = this; this.updateColumnValue(), this.$nextTick(function () { t.updateInnerValue() }) }, methods: { onConfirm: function () { this.$emit("confirm", this.innerValue) }, onCancel: function () { this.$emit("cancel") } }, render: function () { var t = this, e = arguments[0], i = {}; return Object.keys(Dt).forEach(function (e) { i[e] = t[e] }), e(Ut, { ref: "picker", attrs: { columns: this.columns }, on: { change: this.onChange, confirm: this.onConfirm, cancel: this.onCancel }, props: n({}, i) }) } }, Ns = (0, Object(r.a)("time-picker")[0])({ mixins: [js], props: n({}, Bs, { minHour: { type: Number, default: 0 }, maxHour: { type: Number, default: 23 }, minMinute: { type: Number, default: 0 }, maxMinute: { type: Number, default: 59 } }), computed: { ranges: function () { return [{ type: "hour", range: [this.minHour, this.maxHour] }, { type: "minute", range: [this.minMinute, this.maxMinute] }] } }, watch: { filter: "updateInnerValue", minHour: "updateInnerValue", maxHour: "updateInnerValue", minMinute: "updateInnerValue", maxMinute: "updateInnerValue", value: function (t) { (t = this.formatValue(t)) !== this.innerValue && (this.innerValue = t, this.updateColumnValue(t)) } }, methods: { formatValue: function (t) { t || (t = Object(Ln.b)(this.minHour) + ":" + Object(Ln.b)(this.minMinute)); var e = t.split(":"), i = e[0], n = e[1]; return (i = Object(Ln.b)(Mt(i, this.minHour, this.maxHour))) + ":" + (n = Object(Ln.b)(Mt(n, this.minMinute, this.maxMinute))) }, updateInnerValue: function () { var t = this.$refs.picker.getIndexes(), e = t[0], i = t[1], n = (this.originColumns[0].values[e] || this.originColumns[0].values[0]) + ":" + (this.originColumns[1].values[i] || this.originColumns[1].values[0]); this.innerValue = this.formatValue(n) }, onChange: function (t) { var e = this; this.updateInnerValue(), this.$nextTick(function () { e.$nextTick(function () { e.$emit("change", t) }) }) }, updateColumnValue: function () { var t = this, e = this.formatter, i = this.innerValue.split(":"), n = [e("hour", i[0]), e("minute", i[1])]; this.$nextTick(function () { t.$refs.picker.setValues(n) }) } } }); function As(t) { return "[object Date]" === Object.prototype.toString.call(t) && !Object($s.a)(t.getTime()) } var Ls = (new Date).getFullYear(), Es = (0, Object(r.a)("date-picker")[0])({ mixins: [js], props: n({}, Bs, { type: { type: String, default: "datetime" }, minDate: { type: Date, default: function () { return new Date(Ls - 10, 0, 1) }, validator: As }, maxDate: { type: Date, default: function () { return new Date(Ls + 10, 11, 31) }, validator: As } }), watch: { filter: "updateInnerValue", minDate: "updateInnerValue", maxDate: "updateInnerValue", value: function (t) { (t = this.formatValue(t)).valueOf() !== this.innerValue.valueOf() && (this.innerValue = t) } }, computed: { ranges: function () { var t = this.getBoundary("max", this.innerValue), e = t.maxYear, i = t.maxDate, n = t.maxMonth, s = t.maxHour, o = t.maxMinute, r = this.getBoundary("min", this.innerValue), a = r.minYear, l = r.minDate, u = [{ type: "year", range: [a, e] }, { type: "month", range: [r.minMonth, n] }, { type: "day", range: [l, i] }, { type: "hour", range: [r.minHour, s] }, { type: "minute", range: [r.minMinute, o] }]; return "date" === this.type && u.splice(3, 2), "year-month" === this.type && u.splice(2, 3), u } }, methods: { formatValue: function (t) { return As(t) || (t = this.minDate), t = Math.max(t, this.minDate.getTime()), t = Math.min(t, this.maxDate.getTime()), new Date(t) }, getBoundary: function (t, e) { var i, n = this[t + "Date"], s = n.getFullYear(), o = 1, r = 1, a = 0, l = 0; return "max" === t && (o = 12, r = Is(e.getFullYear(), e.getMonth() + 1), a = 23, l = 59), e.getFullYear() === s && (o = n.getMonth() + 1, e.getMonth() + 1 === o && (r = n.getDate(), e.getDate() === r && (a = n.getHours(), e.getHours() === a && (l = n.getMinutes())))), (i = {})[t + "Year"] = s, i[t + "Month"] = o, i[t + "Date"] = r, i[t + "Hour"] = a, i[t + "Minute"] = l, i }, updateInnerValue: function () { var t, e = this, i = this.$refs.picker.getIndexes(), n = function (t) { return function (t) { if (!t) return 0; for (; Object($s.a)(parseInt(t, 10));) { if (!(t.length > 1)) return 0; t = t.slice(1) } return parseInt(t, 10) }(e.originColumns[t].values[i[t]]) }, s = n(0), o = n(1), r = Is(s, o); t = (t = "year-month" === this.type ? 1 : n(2)) > r ? r : t; var a = 0, l = 0; "datetime" === this.type && (a = n(3), l = n(4)); var u = new Date(s, o - 1, t, a, l); this.innerValue = this.formatValue(u) }, onChange: function (t) { var e = this; this.updateInnerValue(), this.$nextTick(function () { e.$nextTick(function () { e.$emit("change", t) }) }) }, updateColumnValue: function () { var t = this, e = this.innerValue, i = this.formatter, n = [i("year", "" + e.getFullYear()), i("month", Object(Ln.b)(e.getMonth() + 1)), i("day", Object(Ln.b)(e.getDate()))]; "datetime" === this.type && n.push(i("hour", Object(Ln.b)(e.getHours())), i("minute", Object(Ln.b)(e.getMinutes()))), "year-month" === this.type && (n = n.slice(0, 2)), this.$nextTick(function () { t.$refs.picker.setValues(n) }) } } }), zs = Object(r.a)("datetime-picker"), Ds = zs[0], Ms = zs[1], Fs = Ds({ props: n({}, Ns.props, {}, Es.props), render: function () { var t = arguments[0], e = "time" === this.type ? Ns : Es; return t(e, { class: Ms(), props: n({}, this.$props), on: n({}, this.$listeners) }) } }), Ps = Object(r.a)("divider"), Vs = Ps[0], Rs = Ps[1]; function _s(t, e, i, n) { var s; return t("div", o()([{ attrs: { role: "separator" }, style: { borderColor: e.borderColor }, class: Rs((s = { dashed: e.dashed, hairline: e.hairline }, s["content-" + e.contentPosition] = i.default, s)) }, h(n, !0)]), [i.default && i.default()]) } _s.props = { dashed: Boolean, hairline: { type: Boolean, default: !0 }, contentPosition: { type: String, default: "center" } }; var Hs = Vs(_s), Ws = Object(r.a)("dropdown-item"), qs = Ws[0], Ys = Ws[1], Us = qs({ mixins: [$({ ref: "wrapper" }), ai("vanDropdownMenu")], props: { value: null, title: String, disabled: Boolean, titleClass: String, options: { type: Array, default: function () { return [] } } }, data: function () { return { transition: !0, showPopup: !1, showWrapper: !1 } }, computed: { displayTitle: function () { var t = this; if (this.title) return this.title; var e = this.options.filter(function (e) { return e.value === t.value }); return e.length ? e[0].text : "" } }, beforeCreate: function () { var t = this, e = function (e) { return function () { return t.$emit(e) } }; this.onOpen = e("open"), this.onClose = e("close"), this.onOpened = e("opened") }, methods: { toggle: function (t, e) { void 0 === t && (t = !this.showPopup), void 0 === e && (e = {}), t !== this.showPopup && (this.transition = !e.immediate, this.showPopup = t, t && (this.parent.updateOffset(), this.showWrapper = !0)) }, onClickWrapper: function (t) { this.getContainer && t.stopPropagation() } }, render: function () { var t = this, e = arguments[0], i = this.parent, n = i.zIndex, s = i.offset, o = i.overlay, r = i.duration, a = i.direction, l = i.activeColor, u = i.closeOnClickOverlay, c = this.options.map(function (i) { var n = i.value === t.value; return e(re, { attrs: { clickable: !0, icon: i.icon, title: i.text }, key: i.value, class: Ys("option", { active: n }), style: { color: n ? l : "" }, on: { click: function () { t.showPopup = !1, i.value !== t.value && (t.$emit("input", i.value), t.$emit("change", i.value)) } } }, [n && e(vt, { class: Ys("icon"), attrs: { color: l, name: "success" } })]) }), h = { zIndex: n }; return "down" === a ? h.top = s + "px" : h.bottom = s + "px", e("div", [e("div", { directives: [{ name: "show", value: this.showWrapper }], ref: "wrapper", style: h, class: Ys([a]), on: { click: this.onClickWrapper } }, [e(kt, { attrs: { overlay: o, position: "down" === a ? "top" : "bottom", duration: this.transition ? r : 0, closeOnClickOverlay: u, overlayStyle: { position: "absolute" } }, class: Ys("content"), on: { open: this.onOpen, close: this.onClose, opened: this.onOpened, closed: function () { t.showWrapper = !1, t.$emit("closed") } }, model: { value: t.showPopup, callback: function (e) { t.showPopup = e } } }, [c, this.slots("default")])])]) } }), Xs = function (t) { return l.a.extend({ props: { closeOnClickOutside: { type: Boolean, default: !0 } }, data: function () { var e = this; return { clickOutsideHandler: function (i) { e.closeOnClickOutside && !e.$el.contains(i.target) && e[t.method]() } } }, mounted: function () { N(document, t.event, this.clickOutsideHandler) }, beforeDestroy: function () { A(document, t.event, this.clickOutsideHandler) } }) }, Ks = Object(r.a)("dropdown-menu"), Qs = Ks[0], Gs = Ks[1], Zs = Qs({ mixins: [li("vanDropdownMenu"), Xs({ event: "click", method: "onClickOutside" })], props: { activeColor: String, overlay: { type: Boolean, default: !0 }, zIndex: { type: Number, default: 10 }, duration: { type: Number, default: .2 }, direction: { type: String, default: "down" }, closeOnClickOverlay: { type: Boolean, default: !0 } }, data: function () { return { offset: 0 } }, methods: { updateOffset: function () { var t = this.$refs.menu.getBoundingClientRect(); "down" === this.direction ? this.offset = t.bottom : this.offset = window.innerHeight - t.top }, toggleItem: function (t) { this.children.forEach(function (e, i) { i === t ? e.toggle() : e.showPopup && e.toggle(!1, { immediate: !0 }) }) }, onClickOutside: function () { this.children.forEach(function (t) { t.toggle(!1) }) } }, render: function () { var t = this, e = arguments[0], i = this.children.map(function (i, n) { return e("div", { attrs: { role: "button", tabindex: i.disabled ? -1 : 0 }, class: Gs("item", { disabled: i.disabled }), on: { click: function () { i.disabled || t.toggleItem(n) } } }, [e("span", { class: [Gs("title", { active: i.showPopup, down: i.showPopup === ("down" === t.direction) }), i.titleClass], style: { color: i.showPopup ? t.activeColor : "" } }, [e("div", { class: "van-ellipsis" }, [i.slots("title") || i.displayTitle])])]) }); return e("div", { ref: "menu", class: [Gs(), w] }, [i, this.slots("default")]) } }), Js = Object(r.a)("goods-action"), to = Js[0], eo = Js[1], io = to({ mixins: [li("vanGoodsAction")], props: { safeAreaInsetBottom: Boolean }, render: function () { var t = arguments[0]; return t("div", { class: eo({ "safe-area-inset-bottom": this.safeAreaInsetBottom }) }, [this.slots()]) } }), no = Object(r.a)("goods-action-button"), so = no[0], oo = no[1], ro = so({ mixins: [ai("vanGoodsAction")], props: n({}, ee, { type: String, text: String, color: String, loading: Boolean, disabled: Boolean }), computed: { isFirst: function () { var t = this.parent && this.parent.children[this.index - 1]; return !t || t.$options.name !== this.$options.name }, isLast: function () { var t = this.parent && this.parent.children[this.index + 1]; return !t || t.$options.name !== this.$options.name } }, methods: { onClick: function (t) { this.$emit("click", t), Jt(this.$router, this) } }, render: function () { var t = arguments[0]; return t(je, { class: oo([{ first: this.isFirst, last: this.isLast }, this.type]), attrs: { square: !0, size: "large", type: this.type, color: this.color, loading: this.loading, disabled: this.disabled }, on: { click: this.onClick } }, [this.slots() || this.text]) } }), ao = Object(r.a)("goods-action-icon"), lo = ao[0], uo = ao[1], co = lo({ mixins: [ai("vanGoodsAction")], props: n({}, ee, { text: String, icon: String, info: [Number, String], iconClass: null }), methods: { onClick: function (t) { this.$emit("click", t), Jt(this.$router, this) } }, render: function () { var t = arguments[0]; return t("div", { attrs: { role: "button", tabindex: "0" }, class: uo(), on: { click: this.onClick } }, [this.slots("icon") ? t("div", { class: uo("icon") }, [this.slots("icon")]) : t(vt, { class: [uo("icon"), this.iconClass], attrs: { tag: "div", info: this.info, name: this.icon } }), this.slots() || this.text]) } }), ho = Object(r.a)("grid"), fo = ho[0], po = ho[1], mo = fo({ mixins: [li("vanGrid")], props: { square: Boolean, gutter: [Number, String], iconSize: [Number, String], clickable: Boolean, columnNum: { type: Number, default: 4 }, center: { type: Boolean, default: !0 }, border: { type: Boolean, default: !0 } }, computed: { style: function () { var t = this.gutter; if (t) return { paddingLeft: Object(it.a)(t) } } }, render: function () { var t, e = arguments[0]; return e("div", { style: this.style, class: [po(), (t = {}, t[y] = this.border && !this.gutter, t)] }, [this.slots()]) } }), vo = Object(r.a)("grid-item"), go = vo[0], bo = vo[1], yo = go({ mixins: [ai("vanGrid")], props: n({}, ee, { dot: Boolean, text: String, icon: String, info: [Number, String] }), computed: { style: function () { var t = this.parent, e = t.square, i = t.gutter, n = t.columnNum, s = 100 / n + "%", o = { flexBasis: s }; if (e) o.paddingTop = s; else if (i) { var r = Object(it.a)(i); o.paddingRight = r, this.index >= n && (o.marginTop = r) } return o }, contentStyle: function () { var t = this.parent, e = t.square, i = t.gutter; if (e && i) { var n = Object(it.a)(i); return { right: n, bottom: n, height: "auto" } } } }, methods: { onClick: function (t) { this.$emit("click", t), Jt(this.$router, this) }, genIcon: function () { var t = this.$createElement, e = this.slots("icon"); return e ? t("div", { class: bo("icon-wrapper") }, [e, t(at, { attrs: { dot: this.dot, info: this.info } })]) : this.icon ? t(vt, { attrs: { name: this.icon, dot: this.dot, info: this.info, size: this.parent.iconSize }, class: bo("icon") }) : void 0 }, genContent: function () { var t = this.$createElement, e = this.slots(); return e || [this.genIcon(), this.slots("text") || this.text && t("span", { class: bo("text") }, [this.text])] } }, render: function () { var t, e = arguments[0], i = this.parent, n = i.center, s = i.border, o = i.square, r = i.gutter, a = i.clickable; return e("div", { class: [bo({ square: o })], style: this.style }, [e("div", { style: this.contentStyle, attrs: { role: a ? "button" : null, tabindex: a ? 0 : null }, class: [bo("content", { center: n, square: o, clickable: a, surround: s && r }), (t = {}, t[b] = s, t)], on: { click: this.onClick } }, [this.genContent()])]) } }), ko = Object(r.a)("swipe"), So = ko[0], xo = ko[1], wo = So({ mixins: [T, z(function (t, e) { t(window, "resize", this.resize, !0), e ? this.initialize() : this.clear() })], props: { width: Number, height: Number, autoplay: Number, vertical: Boolean, indicatorColor: String, loop: { type: Boolean, default: !0 }, duration: { type: Number, default: 500 }, touchable: { type: Boolean, default: !0 }, initialSwipe: { type: Number, default: 0 }, showIndicators: { type: Boolean, default: !0 }, stopPropagation: { type: Boolean, default: !0 } }, data: function () { return { computedWidth: 0, computedHeight: 0, offset: 0, active: 0, deltaX: 0, deltaY: 0, swipes: [], swiping: !1 } }, watch: { swipes: function () { this.initialize() }, initialSwipe: function () { this.initialize() }, autoplay: function (t) { t ? this.autoPlay() : this.clear() } }, computed: { count: function () { return this.swipes.length }, delta: function () { return this.vertical ? this.deltaY : this.deltaX }, size: function () { return this[this.vertical ? "computedHeight" : "computedWidth"] }, trackSize: function () { return this.count * this.size }, activeIndicator: function () { return (this.active + this.count) % this.count }, isCorrectDirection: function () { var t = this.vertical ? "vertical" : "horizontal"; return this.direction === t }, trackStyle: function () { var t, e = this.vertical ? "height" : "width", i = this.vertical ? "width" : "height"; return (t = {})[e] = this.trackSize + "px", t[i] = this[i] ? this[i] + "px" : "", t.transitionDuration = (this.swiping ? 0 : this.duration) + "ms", t.transform = "translate" + (this.vertical ? "Y" : "X") + "(" + this.offset + "px)", t }, indicatorStyle: function () { return { backgroundColor: this.indicatorColor } }, minOffset: function () { var t = this.$el.getBoundingClientRect(); return (this.vertical ? t.height : t.width) - this.size * this.count } }, methods: { initialize: function (t) { if (void 0 === t && (t = this.initialSwipe), clearTimeout(this.timer), this.$el) { var e = this.$el.getBoundingClientRect(); this.computedWidth = this.width || e.width, this.computedHeight = this.height || e.height } this.swiping = !0, this.active = t, this.offset = this.count > 1 ? -this.size * this.active : 0, this.swipes.forEach(function (t) { t.offset = 0 }), this.autoPlay() }, resize: function () { this.initialize(this.activeIndicator) }, onTouchStart: function (t) { this.touchable && (this.clear(), this.swiping = !0, this.touchStart(t), this.correctPosition()) }, onTouchMove: function (t) { this.touchable && this.swiping && (this.touchMove(t), this.isCorrectDirection && (E(t, this.stopPropagation), this.move({ offset: this.delta }))) }, onTouchEnd: function () { if (this.touchable && this.swiping) { if (this.delta && this.isCorrectDirection) { var t = this.vertical ? this.offsetY : this.offsetX; this.move({ pace: t > 0 ? this.delta > 0 ? -1 : 1 : 0, emitChange: !0 }) } this.swiping = !1, this.autoPlay() } }, getTargetActive: function (t) { var e = this.active, i = this.count; return t ? this.loop ? Mt(e + t, -1, i) : Mt(e + t, 0, i - 1) : e }, getTargetOffset: function (t, e) { var i = t * this.size; this.loop || (i = Math.min(i, -this.minOffset)); var n = Math.round(e - i); return this.loop || (n = Mt(n, this.minOffset, 0)), n }, move: function (t) { var e = t.pace, i = void 0 === e ? 0 : e, n = t.offset, s = void 0 === n ? 0 : n, o = t.emitChange, r = this.loop, a = this.count, l = this.active, u = this.swipes, c = this.trackSize, h = this.minOffset; if (!(a <= 1)) { var d = this.getTargetActive(i), f = this.getTargetOffset(d, s); if (r) { if (u[0]) { var p = f < h; u[0].offset = p ? c : 0 } if (u[a - 1]) { var m = f > 0; u[a - 1].offset = m ? -c : 0 } } this.active = d, this.offset = f, o && d !== l && this.$emit("change", this.activeIndicator) } }, swipeTo: function (t, e) { var i = this; void 0 === e && (e = {}), this.swiping = !0, this.resetTouchStatus(), this.correctPosition(), Object(Xi.b)(function () { var n; n = i.loop && t === i.count ? 0 === i.active ? 0 : t : t % i.count, i.move({ pace: n - i.active, emitChange: !0 }), e.immediate ? Object(Xi.b)(function () { i.swiping = !1 }) : i.swiping = !1 }) }, correctPosition: function () { this.active <= -1 && this.move({ pace: this.count }), this.active >= this.count && this.move({ pace: -this.count }) }, clear: function () { clearTimeout(this.timer) }, autoPlay: function () { var t = this, e = this.autoplay; e && this.count > 1 && (this.clear(), this.timer = setTimeout(function () { t.swiping = !0, t.resetTouchStatus(), t.correctPosition(), Object(Xi.b)(function () { t.swiping = !1, t.move({ pace: 1, emitChange: !0 }), t.autoPlay() }) }, e)) }, genIndicator: function () { var t = this, e = this.$createElement, i = this.count, n = this.activeIndicator, s = this.slots("indicator"); return s || (this.showIndicators && i > 1 ? e("div", { class: xo("indicators", { vertical: this.vertical }) }, [Array.apply(void 0, Array(i)).map(function (i, s) { return e("i", { class: xo("indicator", { active: s === n }), style: s === n ? t.indicatorStyle : null }) })]) : void 0) } }, render: function () { var t = arguments[0]; return t("div", { class: xo() }, [t("div", { ref: "track", style: this.trackStyle, class: xo("track"), on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [this.slots()]), this.genIndicator()]) } }), Co = Object(r.a)("swipe-item"), Oo = Co[0], To = Co[1], $o = Oo({ data: function () { return { offset: 0 } }, beforeCreate: function () { this.$parent.swipes.push(this) }, destroyed: function () { this.$parent.swipes.splice(this.$parent.swipes.indexOf(this), 1) }, render: function () { var t = arguments[0], e = this.$parent, i = e.vertical, s = e.computedWidth, o = e.computedHeight, r = { width: s + "px", height: i ? o + "px" : "100%", transform: "translate" + (i ? "Y" : "X") + "(" + this.offset + "px)" }; return t("div", { class: To(), style: r, on: n({}, this.$listeners) }, [this.slots()]) } }), Io = Object(r.a)("image-preview"), Bo = Io[0], jo = Io[1]; function No(t) { return Math.sqrt(Math.pow(t[0].clientX - t[1].clientX, 2) + Math.pow(t[0].clientY - t[1].clientY, 2)) } var Ao, Lo = Bo({ mixins: [et, T], props: { className: null, lazyLoad: Boolean, asyncClose: Boolean, showIndicators: Boolean, images: { type: Array, default: function () { return [] } }, loop: { type: Boolean, default: !0 }, swipeDuration: { type: Number, default: 500 }, overlay: { type: Boolean, default: !0 }, showIndex: { type: Boolean, default: !0 }, startPosition: { type: Number, default: 0 }, minZoom: { type: Number, default: 1 / 3 }, maxZoom: { type: Number, default: 3 }, overlayClass: { type: String, default: jo("overlay") } }, data: function () { return { scale: 1, moveX: 0, moveY: 0, active: 0, moving: !1, zooming: !1, doubleClickTimer: null } }, computed: { imageStyle: function () { var t = this.scale, e = { transitionDuration: this.zooming || this.moving ? "0s" : ".3s" }; return 1 !== t && (e.transform = "scale3d(" + t + ", " + t + ", 1) translate(" + this.moveX / t + "px, " + this.moveY / t + "px)"), e } }, watch: { value: function () { this.setActive(this.startPosition) }, startPosition: function (t) { this.setActive(t) } }, methods: { onWrapperTouchStart: function () { this.touchStartTime = new Date }, onWrapperTouchEnd: function (t) { var e = this; E(t); var i = new Date - this.touchStartTime, n = this.$refs.swipe || {}, s = n.offsetX, o = void 0 === s ? 0 : s, r = n.offsetY; i < 300 && o < 10 && (void 0 === r ? 0 : r) < 10 && (this.doubleClickTimer ? (clearTimeout(this.doubleClickTimer), this.doubleClickTimer = null, this.toggleScale()) : this.doubleClickTimer = setTimeout(function () { var t = e.active; e.$emit("close", { index: t, url: e.images[t] }), e.asyncClose || e.$emit("input", !1), e.doubleClickTimer = null }, 300)) }, startMove: function (t) { var e = t.currentTarget.getBoundingClientRect(), i = window.innerWidth, n = window.innerHeight; this.touchStart(t), this.moving = !0, this.startMoveX = this.moveX, this.startMoveY = this.moveY, this.maxMoveX = Math.max(0, (e.width - i) / 2), this.maxMoveY = Math.max(0, (e.height - n) / 2) }, startZoom: function (t) { this.moving = !1, this.zooming = !0, this.startScale = this.scale, this.startDistance = No(t.touches) }, onImageTouchStart: function (t) { var e = t.touches, i = (this.$refs.swipe || {}).offsetX, n = void 0 === i ? 0 : i; 1 === e.length && 1 !== this.scale ? this.startMove(t) : 2 !== e.length || n || this.startZoom(t) }, onImageTouchMove: function (t) { var e = t.touches; if ((this.moving || this.zooming) && E(t, !0), this.moving) { this.touchMove(t); var i = this.deltaX + this.startMoveX, n = this.deltaY + this.startMoveY; this.moveX = Mt(i, -this.maxMoveX, this.maxMoveX), this.moveY = Mt(n, -this.maxMoveY, this.maxMoveY) } if (this.zooming && 2 === e.length) { var s = No(e), o = this.startScale * s / this.startDistance; this.scale = Mt(o, this.minZoom, this.maxZoom) } }, onImageTouchEnd: function (t) { if (this.moving || this.zooming) { var e = !0; this.moving && this.startMoveX === this.moveX && this.startMoveY === this.moveY && (e = !1), t.touches.length || (this.moving = !1, this.zooming = !1, this.startMoveX = 0, this.startMoveY = 0, this.startScale = 1, this.scale < 1 && this.resetScale()), e && E(t, !0) } }, setActive: function (t) { this.resetScale(), t !== this.active && (this.active = t, this.$emit("change", t)) }, resetScale: function () { this.scale = 1, this.moveX = 0, this.moveY = 0 }, toggleScale: function () { var t = this.scale > 1 ? 1 : 2; this.scale = t, this.moveX = 0, this.moveY = 0 }, genIndex: function () { var t = this.$createElement; if (this.showIndex) return t("div", { class: jo("index") }, [this.slots("index") || this.active + 1 + " / " + this.images.length]) }, genCover: function () { var t = this.$createElement, e = this.slots("cover"); if (e) return t("div", { class: jo("cover") }, [e]) }, genImages: function () { var t = this, e = this.$createElement, i = { loading: function () { return e($t, { attrs: { type: "spinner" } }) } }; return e(wo, { ref: "swipe", attrs: { loop: this.loop, indicatorColor: "white", duration: this.swipeDuration, initialSwipe: this.startPosition, showIndicators: this.showIndicators }, class: jo("swipe"), on: { change: this.setActive }, nativeOn: { touchstart: this.onWrapperTouchStart, touchMove: E, touchend: this.onWrapperTouchEnd, touchcancel: this.onWrapperTouchEnd } }, [this.images.map(function (n, s) { return e($o, [e(ht, { attrs: { src: n, fit: "contain", lazyLoad: t.lazyLoad }, class: jo("image"), scopedSlots: i, style: s === t.active ? t.imageStyle : null, nativeOn: { touchstart: t.onImageTouchStart, touchmove: t.onImageTouchMove, touchend: t.onImageTouchEnd, touchcancel: t.onImageTouchEnd } })]) })]) } }, render: function () { var t = arguments[0]; if (this.value) return t("transition", { attrs: { name: "van-fade" } }, [t("div", { class: [jo(), this.className] }, [this.genImages(), this.genIndex(), this.genCover()])]) } }), Eo = { loop: !0, images: [], value: !0, minZoom: 1 / 3, maxZoom: 3, className: "", onClose: null, onChange: null, lazyLoad: !1, showIndex: !0, asyncClose: !1, startPosition: 0, swipeDuration: 500, showIndicators: !1, closeOnPopstate: !1 }, zo = function (t, e) { if (void 0 === e && (e = 0), !I.d) { Ao || (Ao = new (l.a.extend(Lo))({ el: document.createElement("div") }), document.body.appendChild(Ao.$el), Ao.$on("change", function (t) { Ao.onChange && Ao.onChange(t) })); var i = Array.isArray(t) ? { images: t, startPosition: e } : t; return n(Ao, Eo, i), Ao.$once("input", function (t) { Ao.value = t }), i.onClose && Ao.$once("close", i.onClose), Ao } }; zo.install = function () { l.a.use(Lo) }; var Do = zo, Mo = Object(r.a)("index-anchor"), Fo = Mo[0], Po = Mo[1], Vo = Fo({ mixins: [ai("vanIndexBar", { indexKey: "childrenIndex" })], props: { index: [Number, String] }, data: function () { return { top: 0, active: !1, position: "static" } }, computed: { sticky: function () { return this.active && this.parent.sticky }, anchorStyle: function () { if (this.sticky) return { position: this.position, zIndex: "" + this.parent.zIndex, transform: "translate3d(0, " + this.top + "px, 0)", color: this.parent.highlightColor } } }, mounted: function () { this.height = this.$el.offsetHeight }, methods: { scrollIntoView: function () { this.$el.scrollIntoView() } }, render: function () { var t, e = arguments[0], i = this.sticky; return e("div", { style: { height: i ? this.height + "px" : null } }, [e("div", { style: this.anchorStyle, class: [Po({ sticky: i }), (t = {}, t[S] = i, t)] }, [this.slots("default") || this.index])]) } }), Ro = Object(r.a)("index-bar"), _o = Ro[0], Ho = Ro[1], Wo = _o({ mixins: [T, li("vanIndexBar"), z(function (t) { this.scroller || (this.scroller = K(this.$el)), t(this.scroller, "scroll", this.onScroll) })], props: { sticky: { type: Boolean, default: !0 }, zIndex: { type: Number, default: 1 }, highlightColor: { type: String, default: "#07c160" }, stickyOffsetTop: { type: Number, default: 0 }, indexList: { type: Array, default: function () { for (var t = [], e = "A".charCodeAt(0), i = 0; i < 26; i++)t.push(String.fromCharCode(e + i)); return t } } }, data: function () { return { activeAnchorIndex: null } }, computed: { highlightStyle: function () { var t = this.highlightColor; if (t) return { color: t } } }, watch: { indexList: function () { this.$nextTick(this.onScroll) } }, methods: { onScroll: function () { var t = this; if (!os(this.$el)) { var e = Q(this.scroller), i = this.getScrollerRect(), n = this.children.map(function (e) { return { height: e.height, top: t.getElementTop(e.$el, i) } }), s = this.getActiveAnchorIndex(e, n); if (this.activeAnchorIndex = this.indexList[s], this.sticky) { var o = 0, r = !1; -1 !== s && (o = n[s].top - e - this.stickyOffsetTop, r = o <= 0), this.children.forEach(function (e, n) { n === s ? (e.active = !0, e.position = r ? "fixed" : "relative", e.top = r ? t.stickyOffsetTop + i.top : 0) : n === s - 1 ? (e.active = !r, e.position = "relative", e.top = e.$el.parentElement.offsetHeight - e.height) : (e.active = !1, e.position = "static") }) } } }, getScrollerRect: function () { var t = this.scroller, e = { top: 0, left: 0 }; return t.getBoundingClientRect && (e = t.getBoundingClientRect()), e }, getElementTop: function (t, e) { var i = this.scroller; return i === window || i === document.body ? tt(t) : t.getBoundingClientRect().top - e.top + Q(i) }, getActiveAnchorIndex: function (t, e) { for (var i = this.children.length - 1; i >= 0; i--) { var n = i > 0 ? e[i - 1].height : 0; if (t + (this.sticky ? n + this.stickyOffsetTop : 0) >= e[i].top) return i } return -1 }, onClick: function (t) { this.scrollToElement(t.target) }, onTouchMove: function (t) { if (this.touchMove(t), "vertical" === this.direction) { E(t); var e = t.touches[0], i = e.clientX, n = e.clientY, s = document.elementFromPoint(i, n); if (s) { var o = s.dataset.index; this.touchActiveIndex !== o && (this.touchActiveIndex = o, this.scrollToElement(s)) } } }, scrollToElement: function (t) { var e = t.dataset.index; if (e) { var i = this.children.filter(function (t) { return String(t.index) === e }); i[0] && (i[0].scrollIntoView(), this.sticky && this.stickyOffsetTop && J(Z() - this.stickyOffsetTop), this.$emit("select", i[0].index)) } }, onTouchEnd: function () { this.active = null } }, render: function () { var t = this, e = arguments[0], i = this.indexList.map(function (i) { var n = i === t.activeAnchorIndex; return e("span", { class: Ho("index", { active: n }), style: n ? t.highlightStyle : null, attrs: { "data-index": i } }, [i]) }); return e("div", { class: Ho() }, [e("div", { class: Ho("sidebar"), style: { zIndex: this.zIndex + 1 }, on: { click: this.onClick, touchstart: this.touchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [i]), this.slots("default")]) } }), qo = i(10), Yo = i.n(qo).a, Uo = Object(r.a)("list"), Xo = Uo[0], Ko = Uo[1], Qo = Uo[2], Go = Xo({ mixins: [z(function (t) { this.scroller || (this.scroller = K(this.$el)), t(this.scroller, "scroll", this.check) })], model: { prop: "loading" }, props: { error: Boolean, loading: Boolean, finished: Boolean, errorText: String, loadingText: String, finishedText: String, immediateCheck: { type: Boolean, default: !0 }, offset: { type: Number, default: 300 }, direction: { type: String, default: "down" } }, data: function () { return { innerLoading: this.loading } }, updated: function () { this.innerLoading = this.loading }, mounted: function () { this.immediateCheck && this.check() }, watch: { loading: "check", finished: "check" }, methods: { check: function () { var t = this; this.$nextTick(function () { if (!(t.innerLoading || t.finished || t.error)) { var e, i = t.$el, n = t.scroller, s = t.offset, o = t.direction; if (!((e = n.getBoundingClientRect ? n.getBoundingClientRect() : { top: 0, bottom: n.innerHeight }).bottom - e.top) || os(i)) return !1; var r = t.$refs.placeholder.getBoundingClientRect(); ("up" === o ? r.top - e.top <= s : r.bottom - e.bottom <= s) && (t.innerLoading = !0, t.$emit("input", !0), t.$emit("load")) } }) }, clickErrorText: function () { this.$emit("update:error", !1), this.check() }, genLoading: function () { var t = this.$createElement; if (this.innerLoading && !this.finished) return t("div", { class: Ko("loading"), key: "loading" }, [this.slots("loading") || t($t, { attrs: { size: "16" } }, [this.loadingText || Qo("loading")])]) }, genFinishedText: function () { var t = this.$createElement; if (this.finished && this.finishedText) return t("div", { class: Ko("finished-text") }, [this.finishedText]) }, genErrorText: function () { var t = this.$createElement; if (this.error && this.errorText) return t("div", { on: { click: this.clickErrorText }, class: Ko("error-text") }, [this.errorText]) } }, render: function () { var t = arguments[0], e = t("div", { ref: "placeholder", class: Ko("placeholder") }); return t("div", { class: Ko(), attrs: { role: "feed", "aria-busy": this.innerLoading } }, ["down" === this.direction ? this.slots() : e, this.genLoading(), this.genFinishedText(), this.genErrorText(), "up" === this.direction ? this.slots() : e]) } }), Zo = i(5), Jo = Object(r.a)("nav-bar"), tr = Jo[0], er = Jo[1]; function ir(t, e, i, n) { var s; return t("div", o()([{ class: [er({ fixed: e.fixed }), (s = {}, s[S] = e.border, s)], style: { zIndex: e.zIndex } }, h(n)]), [t("div", { class: er("left"), on: { click: n.listeners["click-left"] || I.e } }, [i.left ? i.left() : [e.leftArrow && t(vt, { class: er("arrow"), attrs: { name: "arrow-left" } }), e.leftText && t("span", { class: er("text") }, [e.leftText])]]), t("div", { class: [er("title"), "van-ellipsis"] }, [i.title ? i.title() : e.title]), t("div", { class: er("right"), on: { click: n.listeners["click-right"] || I.e } }, [i.right ? i.right() : e.rightText && t("span", { class: er("text") }, [e.rightText])])]) } ir.props = { title: String, fixed: Boolean, leftText: String, rightText: String, leftArrow: Boolean, border: { type: Boolean, default: !0 }, zIndex: { type: Number, default: 1 } }; var nr = tr(ir), sr = Object(r.a)("notice-bar"), or = sr[0], rr = sr[1], ar = or({ props: { text: String, mode: String, color: String, leftIcon: String, wrapable: Boolean, background: String, delay: { type: [Number, String], default: 1 }, scrollable: { type: Boolean, default: !0 }, speed: { type: Number, default: 50 } }, data: function () { return { wrapWidth: 0, firstRound: !0, duration: 0, offsetWidth: 0, showNoticeBar: !0, animationClass: "" } }, watch: { text: { handler: function () { var t = this; this.$nextTick(function () { var e = t.$refs, i = e.wrap, n = e.content; if (i && n) { var s = i.getBoundingClientRect().width, o = n.getBoundingClientRect().width; t.scrollable && o > s && (t.wrapWidth = s, t.offsetWidth = o, t.duration = o / t.speed, t.animationClass = rr("play")) } }) }, immediate: !0 } }, methods: { onClickIcon: function (t) { "closeable" === this.mode && (this.showNoticeBar = !1, this.$emit("close", t)) }, onAnimationEnd: function () { var t = this; this.firstRound = !1, this.$nextTick(function () { t.duration = (t.offsetWidth + t.wrapWidth) / t.speed, t.animationClass = rr("play--infinite") }) } }, render: function () { var t = this, e = arguments[0], i = this.slots, n = this.mode, s = this.leftIcon, o = this.onClickIcon, r = { color: this.color, background: this.background }, a = { paddingLeft: this.firstRound ? 0 : this.wrapWidth + "px", animationDelay: (this.firstRound ? this.delay : 0) + "s", animationDuration: this.duration + "s" }; function l() { var t = i("left-icon"); return t || (s ? e(vt, { class: rr("left-icon"), attrs: { name: s } }) : void 0) } function u() { var t = i("right-icon"); if (t) return t; var s = "closeable" === n ? "cross" : "link" === n ? "arrow" : ""; return s ? e(vt, { class: rr("right-icon"), attrs: { name: s }, on: { click: o } }) : void 0 } return e("div", { attrs: { role: "alert" }, directives: [{ name: "show", value: this.showNoticeBar }], class: rr({ wrapable: this.wrapable }), style: r, on: { click: function (e) { t.$emit("click", e) } } }, [l(), e("div", { ref: "wrap", class: rr("wrap"), attrs: { role: "marquee" } }, [e("div", { ref: "content", class: [rr("content"), this.animationClass, { "van-ellipsis": !this.scrollable && !this.wrapable }], style: a, on: { animationend: this.onAnimationEnd, webkitAnimationEnd: this.onAnimationEnd } }, [this.slots() || this.text])]), u()]) } }), lr = Object(r.a)("notify"), ur = lr[0], cr = lr[1]; function hr(t, e, i, n) { var s = { color: e.color, background: e.background }; return t(kt, o()([{ attrs: { value: e.value, position: "top", overlay: !1, duration: .2, lockScroll: !1 }, style: s, class: [cr([e.type]), e.className] }, h(n, !0)]), [e.message]) } hr.props = n({}, et.props, { background: String, className: null, message: [Number, String], getContainer: [String, Function], type: { type: String, default: "danger" }, color: { type: String, default: v }, duration: { type: Number, default: 3e3 } }); var dr, fr, pr = ur(hr); function mr(t) { var e; if (!I.d) return fr || (fr = f(pr, { on: { click: function (t) { fr.onClick && fr.onClick(t) }, close: function () { fr.onClose && fr.onClose() }, opened: function () { fr.onOpened && fr.onOpened() } } })), t = n({}, mr.currentOptions, {}, (e = t, Object(I.c)(e) ? e : { message: e })), n(fr, t), clearTimeout(dr), t.duration && t.duration > 0 && (dr = setTimeout(mr.clear, t.duration)), fr } function vr() { return { type: "danger", value: !0, message: "", color: v, background: void 0, duration: 3e3, className: "", onClose: null, onClick: null, onOpened: null } } mr.clear = function () { fr && (fr.value = !1) }, mr.currentOptions = vr(), mr.setDefaultOptions = function (t) { n(mr.currentOptions, t) }, mr.resetDefaultOptions = function () { mr.currentOptions = vr() }, mr.install = function () { l.a.use(pr) }, l.a.prototype.$notify = mr; var gr = mr, br = Object(r.a)("key"), yr = br[0], kr = br[1], Sr = yr({ mixins: [T], props: { type: String, text: [Number, String], theme: { type: Array, default: function () { return [] } } }, data: function () { return { active: !1 } }, computed: { className: function () { var t = this.theme.slice(0); return this.active && t.push("active"), this.type && t.push(this.type), kr(t) } }, methods: { onTouchStart: function (t) { t.stopPropagation(), this.touchStart(t), this.active = !0 }, onTouchMove: function (t) { this.touchMove(t), this.direction && (this.active = !1) }, onTouchEnd: function () { this.active && (this.active = !1, this.$emit("press", this.text, this.type)) } }, render: function () { var t = arguments[0]; return t("i", { attrs: { role: "button", tabindex: "0" }, class: [b, this.className], on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [this.slots("default") || this.text]) } }), xr = Object(r.a)("number-keyboard"), wr = xr[0], Cr = xr[1], Or = xr[2], Tr = ["blue", "big"], $r = ["delete", "big", "gray"], Ir = wr({ mixins: [z(function (t) { this.hideOnClickOutside && t(document.body, "touchstart", this.onBlur) })], model: { event: "update:value" }, props: { show: Boolean, title: String, closeButtonText: String, deleteButtonText: String, theme: { type: String, default: "default" }, value: { type: String, default: "" }, extraKey: { type: String, default: "" }, maxlength: { type: [Number, String], default: Number.MAX_VALUE }, zIndex: { type: Number, default: 100 }, transition: { type: Boolean, default: !0 }, showDeleteKey: { type: Boolean, default: !0 }, hideOnClickOutside: { type: Boolean, default: !0 }, safeAreaInsetBottom: { type: Boolean, default: !0 } }, watch: { show: function () { this.transition || this.$emit(this.show ? "show" : "hide") } }, computed: { keys: function () { for (var t = [], e = 1; e <= 9; e++)t.push({ text: e }); switch (this.theme) { case "default": t.push({ text: this.extraKey, theme: ["gray"], type: "extra" }, { text: 0 }, { text: this.deleteText, theme: ["gray"], type: "delete" }); break; case "custom": t.push({ text: 0, theme: ["middle"] }, { text: this.extraKey, type: "extra" }) }return t }, deleteText: function () { return this.deleteButtonText || Or("delete") } }, methods: { onBlur: function () { this.$emit("blur") }, onClose: function () { this.$emit("close"), this.onBlur() }, onAnimationEnd: function () { this.$emit(this.show ? "show" : "hide") }, onPress: function (t, e) { if ("" !== t) { var i = this.value; "delete" === e ? (this.$emit("delete"), this.$emit("update:value", i.slice(0, i.length - 1))) : "close" === e ? this.onClose() : i.length < this.maxlength && (this.$emit("input", t), this.$emit("update:value", i + t)) } } }, render: function () { var t = this, e = arguments[0], i = this.title, n = this.theme, s = this.onPress, o = this.closeButtonText, r = this.slots("title-left"), a = o && "default" === n, l = i || a || r, u = l && e("div", { class: [Cr("title"), y] }, [r && e("span", { class: Cr("title-left") }, [r]), i && e("span", [i]), a && e("span", { attrs: { role: "button", tabindex: "0" }, class: Cr("close"), on: { click: this.onClose } }, [o])]), c = this.keys.map(function (i) { return e(Sr, { key: i.text, attrs: { text: i.text, type: i.type, theme: i.theme }, on: { press: s } }, ["delete" === i.type && t.slots("delete"), "extra" === i.type && t.slots("extra-key")]) }), h = "custom" === n && e("div", { class: Cr("sidebar") }, [e(Sr, { attrs: { text: this.deleteText, type: "delete", theme: $r }, on: { press: s } }, [this.slots("delete")]), e(Sr, { attrs: { text: o, type: "close", theme: Tr }, on: { press: s } })]); return e("transition", { attrs: { name: this.transition ? "van-slide-up" : "" } }, [e("div", { directives: [{ name: "show", value: this.show }], style: { zIndex: this.zIndex }, class: Cr([n, { "safe-area-inset-bottom": this.safeAreaInsetBottom }]), on: { touchstart: L, animationend: this.onAnimationEnd, webkitAnimationEnd: this.onAnimationEnd } }, [u, e("div", { class: Cr("body") }, [c, h])])]) } }), Br = Object(r.a)("pagination"), jr = Br[0], Nr = Br[1], Ar = Br[2]; function Lr(t, e, i) { return { number: t, text: e, active: i } } var Er = jr({ props: { prevText: String, nextText: String, forceEllipses: Boolean, value: { type: Number, default: 0 }, pageCount: { type: Number, default: 0 }, totalItems: { type: Number, default: 0 }, mode: { type: String, default: "multi" }, itemsPerPage: { type: Number, default: 10 }, showPageSize: { type: Number, default: 5 } }, computed: { count: function () { var t = this.pageCount || Math.ceil(this.totalItems / this.itemsPerPage); return Math.max(1, t) }, pages: function () { var t = [], e = this.count; if ("multi" !== this.mode) return t; var i = 1, n = e, s = void 0 !== this.showPageSize && this.showPageSize < e; s && (n = (i = Math.max(this.value - Math.floor(this.showPageSize / 2), 1)) + this.showPageSize - 1) > e && (i = (n = e) - this.showPageSize + 1); for (var o = i; o <= n; o++) { var r = Lr(o, o, o === this.value); t.push(r) } if (s && this.showPageSize > 0 && this.forceEllipses) { if (i > 1) { var a = Lr(i - 1, "...", !1); t.unshift(a) } if (n < e) { var l = Lr(n + 1, "...", !1); t.push(l) } } return t } }, watch: { value: { handler: function (t) { this.select(t || this.value) }, immediate: !0 } }, methods: { select: function (t, e) { t = Math.min(this.count, Math.max(1, t)), this.value !== t && (this.$emit("input", t), e && this.$emit("change", t)) } }, render: function () { var t = this, e = arguments[0], i = this.value, n = "multi" !== this.mode, s = function (e) { return function () { t.select(e, !0) } }; return e("ul", { class: Nr({ simple: n }) }, [e("li", { class: [Nr("item", { disabled: 1 === i }), Nr("prev"), b], on: { click: s(i - 1) } }, [this.prevText || Ar("prev")]), this.pages.map(function (t) { return e("li", { class: [Nr("item", { active: t.active }), Nr("page"), b], on: { click: s(t.number) } }, [t.text]) }), n && e("li", { class: Nr("page-desc") }, [this.slots("pageDesc") || i + "/" + this.count]), e("li", { class: [Nr("item", { disabled: i === this.count }), Nr("next"), b], on: { click: s(i + 1) } }, [this.nextText || Ar("next")])]) } }), zr = Object(r.a)("panel"), Dr = zr[0], Mr = zr[1]; function Fr(t, e, i, n) { return t(Ri, o()([{ class: Mr(), scopedSlots: { default: function () { return [i.header ? i.header() : t(re, { attrs: { icon: e.icon, label: e.desc, title: e.title, value: e.status, valueClass: Mr("header-value") }, class: Mr("header") }), t("div", { class: Mr("content") }, [i.default && i.default()]), i.footer && t("div", { class: [Mr("footer"), y] }, [i.footer()])] } } }, h(n, !0)])) } Fr.props = { icon: String, desc: String, title: String, status: String }; var Pr = Dr(Fr), Vr = Object(r.a)("password-input"), Rr = Vr[0], _r = Vr[1]; function Hr(t, e, i, n) { for (var s, r = e.errorInfo || e.info, a = [], l = 0; l < e.length; l++) { var u, c = e.value[l], f = 0 !== l && !e.gutter, p = e.focused && l === e.value.length, m = void 0; 0 !== l && e.gutter && (m = { marginLeft: Object(it.a)(e.gutter) }), a.push(t("li", { class: (u = {}, u[k] = f, u), style: m }, [e.mask ? t("i", { style: { visibility: c ? "visible" : "hidden" } }) : c, p && t("div", { class: _r("cursor") })])) } return t("div", { class: _r() }, [t("ul", o()([{ class: [_r("security"), (s = {}, s[x] = !e.gutter, s)], on: { touchstart: function (t) { t.stopPropagation(), d(n, "focus", t) } } }, h(n, !0)]), [a]), r && t("div", { class: _r(e.errorInfo ? "error-info" : "info") }, [r])]) } Hr.props = { info: String, gutter: [Number, String], focused: Boolean, errorInfo: String, mask: { type: Boolean, default: !0 }, value: { type: String, default: "" }, length: { type: Number, default: 6 } }; var Wr = Rr(Hr), qr = Object(r.a)("progress"), Yr = qr[0], Ur = qr[1], Xr = Yr({ props: { color: String, inactive: Boolean, pivotText: String, textColor: String, pivotColor: String, trackColor: String, strokeWidth: [String, Number], percentage: { type: Number, required: !0, validator: function (t) { return t >= 0 && t <= 100 } }, showPivot: { type: Boolean, default: !0 } }, data: function () { return { pivotWidth: 0, progressWidth: 0 } }, mounted: function () { this.setWidth() }, watch: { showPivot: "setWidth", pivotText: "setWidth" }, methods: { setWidth: function () { var t = this; this.$nextTick(function () { t.progressWidth = t.$el.offsetWidth, t.pivotWidth = t.$refs.pivot ? t.$refs.pivot.offsetWidth : 0 }) } }, render: function () { var t = arguments[0], e = this.pivotText, i = this.percentage, n = Object(I.b)(e) ? e : i + "%", s = this.showPivot && n, o = this.inactive ? "#cacaca" : this.color, r = { color: this.textColor, left: (this.progressWidth - this.pivotWidth) * i / 100 + "px", background: this.pivotColor || o }, a = { background: o, width: this.progressWidth * i / 100 + "px" }, l = { background: this.trackColor, height: Object(it.a)(this.strokeWidth) }; return t("div", { class: Ur(), style: l }, [t("span", { class: Ur("portion"), style: a }, [s && t("span", { ref: "pivot", style: r, class: Ur("pivot") }, [n])])]) } }), Kr = Object(r.a)("pull-refresh"), Qr = Kr[0], Gr = Kr[1], Zr = Kr[2], Jr = ["pulling", "loosing", "success"], ta = Qr({ mixins: [T], props: { disabled: Boolean, successText: String, pullingText: String, loosingText: String, loadingText: String, value: { type: Boolean, required: !0 }, successDuration: { type: Number, default: 500 }, animationDuration: { type: Number, default: 300 }, headHeight: { type: Number, default: 50 } }, data: function () { return { status: "normal", distance: 0, duration: 0 } }, computed: { untouchable: function () { return "loading" === this.status || "success" === this.status || this.disabled } }, watch: { value: function (t) { var e = this; this.duration = this.animationDuration, !t && this.successText ? (this.status = "success", setTimeout(function () { e.setStatus(0) }, this.successDuration)) : this.setStatus(t ? this.headHeight : 0, t) } }, mounted: function () { this.scrollEl = K(this.$el) }, methods: { onTouchStart: function (t) { !this.untouchable && this.getCeiling() && (this.duration = 0, this.touchStart(t)) }, onTouchMove: function (t) { this.untouchable || (this.touchMove(t), !this.ceiling && this.getCeiling() && (this.duration = 0, this.startY = t.touches[0].clientY, this.deltaY = 0), this.ceiling && this.deltaY >= 0 && "vertical" === this.direction && (this.setStatus(this.ease(this.deltaY)), E(t))) }, onTouchEnd: function () { var t = this; !this.untouchable && this.ceiling && this.deltaY && (this.duration = this.animationDuration, "loosing" === this.status ? (this.setStatus(this.headHeight, !0), this.$emit("input", !0), this.$nextTick(function () { t.$emit("refresh") })) : this.setStatus(0)) }, getCeiling: function () { return this.ceiling = 0 === Q(this.scrollEl), this.ceiling }, ease: function (t) { var e = this.headHeight; return Math.round(t < e ? t : t < 2 * e ? e + (t - e) / 2 : 1.5 * e + (t - 2 * e) / 4) }, setStatus: function (t, e) { this.distance = t; var i = e ? "loading" : 0 === t ? "normal" : t < this.headHeight ? "pulling" : "loosing"; i !== this.status && (this.status = i) } }, render: function () { var t = arguments[0], e = this.status, i = this.distance, n = this[e + "Text"] || Zr(e), s = { transitionDuration: this.duration + "ms", transform: this.distance ? "translate3d(0," + this.distance + "px, 0)" : "" }, o = this.slots(e, { distance: i }) || [-1 !== Jr.indexOf(e) && t("div", { class: Gr("text") }, [n]), "loading" === e && t($t, { attrs: { size: "16" } }, [n])]; return t("div", { class: Gr() }, [t("div", { class: Gr("track"), style: s, on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [t("div", { class: Gr("head") }, [o]), this.slots()])]) } }), ea = Object(r.a)("rate"), ia = ea[0], na = ea[1]; var sa = ia({ mixins: [T], props: { size: [Number, String], gutter: [Number, String], readonly: Boolean, disabled: Boolean, allowHalf: Boolean, value: { type: Number, default: 0 }, icon: { type: String, default: "star" }, voidIcon: { type: String, default: "star-o" }, color: { type: String, default: "#ffd21e" }, voidColor: { type: String, default: "#c7c7c7" }, disabledColor: { type: String, default: "#bdbdbd" }, count: { type: Number, default: 5 }, touchable: { type: Boolean, default: !0 } }, computed: { list: function () { for (var t, e, i, n = [], s = 1; s <= this.count; s++)n.push((t = this.value, e = s, i = this.allowHalf, t >= e ? "full" : t + .5 >= e && i ? "half" : "void")); return n }, sizeWithUnit: function () { return Object(it.a)(this.size) }, gutterWithUnit: function () { return Object(it.a)(this.gutter) } }, methods: { select: function (t) { this.disabled || this.readonly || t === this.value || (this.$emit("input", t), this.$emit("change", t)) }, onTouchStart: function (t) { var e = this; if (!this.readonly && !this.disabled && this.touchable) { this.touchStart(t); var i = this.$refs.items.map(function (t) { return t.getBoundingClientRect() }), n = []; i.forEach(function (t, i) { e.allowHalf ? n.push({ score: i + .5, left: t.left }, { score: i + 1, left: t.left + t.width / 2 }) : n.push({ score: i + 1, left: t.left }) }), this.ranges = n } }, onTouchMove: function (t) { if (!this.readonly && !this.disabled && this.touchable && (this.touchMove(t), "horizontal" === this.direction)) { E(t); var e = t.touches[0].clientX; this.select(this.getScoreByPosition(e)) } }, getScoreByPosition: function (t) { for (var e = this.ranges.length - 1; e > 0; e--)if (t > this.ranges[e].left) return this.ranges[e].score; return this.allowHalf ? .5 : 1 }, genStar: function (t, e) { var i, n = this, s = this.$createElement, o = this.icon, r = this.color, a = this.count, l = this.voidIcon, u = this.disabled, c = this.voidColor, h = this.disabledColor, d = e + 1, f = "full" === t, p = "void" === t; return this.gutterWithUnit && d !== a && (i = { paddingRight: this.gutterWithUnit }), s("div", { ref: "items", refInFor: !0, key: e, attrs: { role: "radio", tabindex: "0", "aria-setsize": a, "aria-posinset": d, "aria-checked": String(!p) }, style: i, class: na("item") }, [s(vt, { attrs: { size: this.sizeWithUnit, name: f ? o : l, "data-score": d, color: u ? h : f ? r : c }, class: na("icon"), on: { click: function () { n.select(d) } } }), this.allowHalf && s(vt, { attrs: { size: this.sizeWithUnit, name: p ? l : o, "data-score": d - .5, color: u ? h : p ? c : r }, class: na("icon", "half"), on: { click: function () { n.select(d - .5) } } })]) } }, render: function () { var t = this, e = arguments[0]; return e("div", { class: na(), attrs: { tabindex: "0", role: "radiogroup" }, on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove } }, [this.list.map(function (e, i) { return t.genStar(e, i) })]) } }), oa = Object(r.a)("row"), ra = oa[0], aa = oa[1], la = ra({ props: { type: String, align: String, justify: String, tag: { type: String, default: "div" }, gutter: { type: [Number, String], default: 0 } }, methods: { onClick: function (t) { this.$emit("click", t) } }, render: function () { var t, e = arguments[0], i = this.align, n = this.justify, s = "flex" === this.type, o = "-" + Number(this.gutter) / 2 + "px", r = this.gutter ? { marginLeft: o, marginRight: o } : {}; return e(this.tag, { style: r, class: aa((t = { flex: s }, t["align-" + i] = s && i, t["justify-" + n] = s && n, t)), on: { click: this.onClick } }, [this.slots()]) } }), ua = Object(r.a)("search"), ca = ua[0], ha = ua[1], da = ua[2]; function fa(t, e, i, s) { var r = { attrs: s.data.attrs, on: n({}, s.listeners, { keypress: function (t) { 13 === t.keyCode && (E(t), d(s, "search", e.value)), d(s, "keypress", t) } }) }, a = h(s); return a.attrs = void 0, t("div", o()([{ class: ha({ "show-action": e.showAction }), style: { background: e.background } }, a]), [t("div", { class: ha("content", e.shape) }, [function () { if (i.label || e.label) return t("div", { class: ha("label") }, [i.label ? i.label() : e.label]) }(), t(de, o()([{ attrs: { type: "search", border: !1, value: e.value, leftIcon: e.leftIcon, rightIcon: e.rightIcon, clearable: e.clearable }, scopedSlots: { "left-icon": i["left-icon"], "right-icon": i["right-icon"] } }, r]))]), function () { if (e.showAction) return t("div", { class: ha("action"), attrs: { role: "button", tabindex: "0" }, on: { click: function () { i.action || (d(s, "input", ""), d(s, "cancel")) } } }, [i.action ? i.action() : e.actionText || da("cancel")]) }()]) } fa.props = { value: String, label: String, rightIcon: String, actionText: String, showAction: Boolean, shape: { type: String, default: "square" }, clearable: { type: Boolean, default: !0 }, background: { type: String, default: "#fff" }, leftIcon: { type: String, default: "search" } }; var pa = ca(fa), ma = Object(r.a)("sidebar"), va = ma[0], ga = ma[1], ba = va({ mixins: [li("vanSidebar")], model: { prop: "activeKey" }, props: { activeKey: { type: [Number, String], default: 0 } }, render: function () { var t = arguments[0]; return t("div", { class: ga() }, [this.slots()]) } }), ya = Object(r.a)("sidebar-item"), ka = ya[0], Sa = ya[1], xa = ka({ mixins: [ai("vanSidebar")], props: n({}, ee, { dot: Boolean, info: [Number, String], title: String, disabled: Boolean }), computed: { select: function () { return this.index === +this.parent.activeKey } }, methods: { onClick: function () { this.disabled || (this.$emit("click", this.index), this.parent.$emit("input", this.index), this.parent.$emit("change", this.index), Jt(this.$router, this)) } }, render: function () { var t = arguments[0]; return t("a", { class: Sa({ select: this.select, disabled: this.disabled }), on: { click: this.onClick } }, [t("div", { class: Sa("text") }, [this.title, t(at, { attrs: { dot: this.dot, info: this.info }, class: Sa("info") })])]) } }), wa = Object(r.a)("skeleton"), Ca = wa[0], Oa = wa[1], Ta = "100%", $a = "60%"; function Ia(t, e, i, n) { if (!e.loading) return i.default && i.default(); return t("div", o()([{ class: Oa({ animate: e.animate }) }, h(n)]), [function () { if (e.avatar) { var i = Object(it.a)(e.avatarSize); return t("div", { class: Oa("avatar", e.avatarShape), style: { width: i, height: i } }) } }(), t("div", { class: Oa("content") }, [function () { if (e.title) return t("h3", { class: Oa("title"), style: { width: Object(it.a)(e.titleWidth) } }) }(), function () { for (var i, n = [], s = e.rowWidth, o = 0; o < e.row; o++)n.push(t("div", { class: Oa("row"), style: { width: Object(it.a)((i = o, s === Ta && i === e.row - 1 ? $a : Array.isArray(s) ? s[i] : s)) } })); return n }()])]) } Ia.props = { title: Boolean, avatar: Boolean, row: { type: Number, default: 0 }, loading: { type: Boolean, default: !0 }, animate: { type: Boolean, default: !0 }, avatarSize: { type: String, default: "32px" }, avatarShape: { type: String, default: "round" }, titleWidth: { type: [Number, String], default: "40%" }, rowWidth: { type: [Number, String, Array], default: Ta } }; var Ba = Ca(Ia), ja = Object(r.a)("sku-header"), Na = ja[0], Aa = ja[1]; function La(t, e, i, n) { var s = e.sku, r = e.goods, a = e.skuEventBus, l = function (t, e) { var i; return t.tree.some(function (t) { var n = e[t.k_s]; if (n && t.v) { var s = t.v.filter(function (t) { return t.id === n })[0] || {}; return i = s.previewImgUrl || s.imgUrl || s.img_url } return !1 }), i }(s, e.selectedSku) || r.picture; return t("div", o()([{ class: [Aa(), S] }, h(n)]), [t("div", { class: Aa("img-wrap"), on: { click: function () { a.$emit("sku:previewImage", l) } } }, [t("img", { attrs: { src: l } })]), t("div", { class: Aa("goods-info") }, [i.default && i.default()])]) } La.props = { sku: Object, goods: Object, skuEventBus: Object, selectedSku: Object }; var Ea = Na(La), za = Object(r.a)("sku-header-item"), Da = za[0], Ma = za[1]; var Fa = Da(function (t, e, i, n) { return t("div", o()([{ class: Ma() }, h(n)]), [i.default && i.default()]) }), Pa = Object(r.a)("sku-row"), Va = Pa[0], Ra = Pa[1]; function _a(t, e, i, n) { return t("div", o()([{ class: [Ra(), S] }, h(n)]), [t("div", { class: Ra("title") }, [e.skuRow.k]), i.default && i.default()]) } _a.props = { skuRow: Object }; var Ha = Va(_a), Wa = { QUOTA_LIMIT: 0, STOCK_LIMIT: 1 }, qa = { LIMIT_TYPE: Wa, UNSELECTED_SKU_VALUE_ID: "" }, Ya = function (t) { var e = {}; return t.forEach(function (t) { e[t.k_s] = t.v }), e }, Ua = function (t, e) { var i = Object.keys(e).filter(function (t) { return "" !== e[t] }); return t.length === i.length }, Xa = function (t, e) { return t.filter(function (t) { return Object.keys(e).every(function (i) { return String(t[i]) === String(e[i]) }) })[0] }, Ka = function (t, e) { var i = Ya(t); return Object.keys(e).reduce(function (t, n) { var s = i[n], o = e[n]; if ("" !== o) { var r = s.filter(function (t) { return t.id === o })[0]; r && t.push(r) } return t }, []) }, Qa = function (t, e, i) { var s, o = i.key, r = i.valueId, a = n({}, e, ((s = {})[o] = r, s)), l = Object.keys(a).filter(function (t) { return "" !== a[t] }); return t.filter(function (t) { return l.every(function (e) { return String(a[e]) === String(t[e]) }) }).reduce(function (t, e) { return t += e.stock_num }, 0) > 0 }, Ga = { normalizeSkuTree: Ya, getSkuComb: Xa, getSelectedSkuValues: Ka, isAllSelected: Ua, isSkuChoosable: Qa }, Za = (0, Object(r.a)("sku-row-item")[0])({ props: { skuValue: Object, skuKeyStr: String, skuEventBus: Object, selectedSku: Object, skuList: { type: Array, default: function () { return [] } } }, computed: { choosable: function () { return Qa(this.skuList, this.selectedSku, { key: this.skuKeyStr, valueId: this.skuValue.id }) } }, methods: { onSelect: function () { this.choosable && this.skuEventBus.$emit("sku:select", n({}, this.skuValue, { skuKeyStr: this.skuKeyStr })) } }, render: function () { var t = arguments[0], e = this.skuValue.id === this.selectedSku[this.skuKeyStr], i = this.skuValue.imgUrl || this.skuValue.img_url; return t("span", { class: ["van-sku-row__item", { "van-sku-row__item--active": e, "van-sku-row__item--disabled": !this.choosable }], on: { click: this.onSelect } }, [i && t("img", { class: "van-sku-row__item-img", attrs: { src: i } }), t("span", { class: "van-sku-row__item-name" }, [this.skuValue.name])]) } }), Ja = Object(r.a)("stepper"), tl = Ja[0], el = Ja[1]; function il(t, e) { return String(t) === String(e) } var nl = tl({ props: { value: null, integer: Boolean, disabled: Boolean, inputWidth: [Number, String], buttonSize: [Number, String], asyncChange: Boolean, disableInput: Boolean, decimalLength: Number, name: { type: [Number, String], default: "" }, min: { type: [Number, String], default: 1 }, max: { type: [Number, String], default: 1 / 0 }, step: { type: [Number, String], default: 1 }, defaultValue: { type: [Number, String], default: 1 }, showPlus: { type: Boolean, default: !0 }, showMinus: { type: Boolean, default: !0 }, disablePlus: { type: Boolean }, disableMinus: { type: Boolean } }, data: function () { var t = Object(I.b)(this.value) ? this.value : this.defaultValue, e = this.format(t); return il(e, this.value) || this.$emit("input", e), { currentValue: e } }, computed: { minusDisabled: function () { return this.disabled || this.disableMinus || this.currentValue <= this.min }, plusDisabled: function () { return this.disabled || this.disablePlus || this.currentValue >= this.max }, inputStyle: function () { var t = {}; return this.inputWidth && (t.width = Object(it.a)(this.inputWidth)), this.buttonSize && (t.height = Object(it.a)(this.buttonSize)), t }, buttonStyle: function () { if (this.buttonSize) { var t = Object(it.a)(this.buttonSize); return { width: t, height: t } } } }, watch: { value: function (t) { il(t, this.currentValue) || (this.currentValue = this.format(t)) }, currentValue: function (t) { this.$emit("input", t), this.$emit("change", t, { name: this.name }) } }, methods: { filter: function (t) { return t = String(t).replace(/[^0-9.-]/g, ""), this.integer && -1 !== t.indexOf(".") && (t = t.split(".")[0]), t }, format: function (t) { return t = "" === (t = this.filter(t)) ? 0 : +t, t = Math.max(Math.min(this.max, t), this.min), Object(I.b)(this.decimalLength) && (t = t.toFixed(this.decimalLength)), t }, onInput: function (t) { var e = t.target.value; if ("" !== e) { var i = this.filter(e); if (Object(I.b)(this.decimalLength) && -1 !== i.indexOf(".")) { var n = i.split("."); i = n[0] + "." + n[1].slice(0, this.decimalLength) } il(e, i) || (t.target.value = i), this.emitChange(i) } }, emitChange: function (t) { this.asyncChange ? (this.$emit("input", t), this.$emit("change", t, { name: this.name })) : this.currentValue = t }, onChange: function () { var t = this.type; if (this[t + "Disabled"]) this.$emit("overlimit", t); else { var e, i, n, s = "minus" === t ? -this.step : +this.step, o = this.format((e = +this.currentValue, i = s, n = Math.pow(10, 10), Math.round((e + i) * n) / n)); this.emitChange(o), this.$emit(t) } }, onFocus: function (t) { this.$emit("focus", t) }, onBlur: function (t) { var e = this.format(t.target.value); t.target.value = e, this.currentValue = e, this.$emit("blur", t), le() }, longPressStep: function () { var t = this; this.longPressTimer = setTimeout(function () { t.onChange(t.type), t.longPressStep(t.type) }, 200) }, onTouchStart: function () { var t = this; clearTimeout(this.longPressTimer), this.isLongPress = !1, this.longPressTimer = setTimeout(function () { t.isLongPress = !0, t.onChange(), t.longPressStep() }, 600) }, onTouchEnd: function (t) { clearTimeout(this.longPressTimer), this.isLongPress && E(t) } }, render: function () { var t = this, e = arguments[0], i = function (e) { return { on: { click: function () { t.type = e, t.onChange() }, touchstart: function () { t.type = e, t.onTouchStart(e) }, touchend: t.onTouchEnd, touchcancel: t.onTouchEnd } } }; return e("div", { class: el() }, [e("button", o()([{ directives: [{ name: "show", value: this.showMinus }], style: this.buttonStyle, class: el("minus", { disabled: this.minusDisabled }) }, i("minus")])), e("input", { attrs: { type: "number", role: "spinbutton", "aria-valuemax": this.max, "aria-valuemin": this.min, "aria-valuenow": this.currentValue, disabled: this.disabled || this.disableInput }, class: el("input"), domProps: { value: this.currentValue }, style: this.inputStyle, on: { input: this.onInput, focus: this.onFocus, blur: this.onBlur } }), e("button", o()([{ directives: [{ name: "show", value: this.showPlus }], style: this.buttonStyle, class: el("plus", { disabled: this.plusDisabled }) }, i("plus")]))]) } }), sl = Object(r.a)("sku-stepper"), ol = sl[0], rl = sl[2], al = Wa.QUOTA_LIMIT, ll = Wa.STOCK_LIMIT, ul = ol({ props: { stock: Number, skuEventBus: Object, skuStockNum: Number, selectedNum: Number, stepperTitle: String, disableStepperInput: Boolean, customStepperConfig: Object, quota: { type: Number, default: 0 }, quotaUsed: { type: Number, default: 0 } }, data: function () { return { currentNum: this.selectedNum, limitType: ll } }, watch: { currentNum: function (t) { this.skuEventBus.$emit("sku:numChange", t) }, stepperLimit: function (t) { t < this.currentNum && (this.currentNum = t) } }, computed: { stepperLimit: function () { var t, e = this.quota - this.quotaUsed; return this.quota > 0 && e <= this.stock ? (t = e < 0 ? 0 : e, this.limitType = al) : (t = this.stock, this.limitType = ll), t } }, methods: { setCurrentNum: function (t) { this.currentNum = t }, onOverLimit: function (t) { this.skuEventBus.$emit("sku:overLimit", { action: t, limitType: this.limitType, quota: this.quota, quotaUsed: this.quotaUsed }) }, onChange: function (t) { var e = this.customStepperConfig.handleStepperChange; e && e(t), this.$emit("change", t) } }, render: function () { var t = this, e = arguments[0]; return e("div", { class: "van-sku-stepper-stock" }, [e("div", { class: "van-sku-stepper-container" }, [e("div", { class: "van-sku__stepper-title" }, [this.stepperTitle || rl("num")]), e(nl, { class: "van-sku__stepper", attrs: { max: this.stepperLimit, disableInput: this.disableStepperInput }, on: { overlimit: this.onOverLimit, change: this.onChange }, model: { value: t.currentNum, callback: function (e) { t.currentNum = e } } })])]) } }); function cl(t) { return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(t) } function hl(t) { return Array.isArray(t) ? t : [t] } function dl(t, e) { return new Promise(function (i) { if ("file" !== e) { var n = new FileReader; n.onload = function (t) { i(t.target.result) }, "dataUrl" === e ? n.readAsDataURL(t) : "text" === e && n.readAsText(t) } else i() }) } var fl = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; function pl(t) { return !!t.isImage || (t.file && t.file.type ? 0 === t.file.type.indexOf("image") : t.url ? (e = t.url, fl.test(e)) : !!t.content && 0 === t.content.indexOf("data:image")); var e } var ml = Object(r.a)("uploader"), vl = ml[0], gl = ml[1], bl = vl({ inheritAttrs: !1, model: { prop: "fileList" }, props: { disabled: Boolean, uploadText: String, afterRead: Function, beforeRead: Function, beforeDelete: Function, previewSize: [Number, String], name: { type: [Number, String], default: "" }, accept: { type: String, default: "image/*" }, fileList: { type: Array, default: function () { return [] } }, maxSize: { type: Number, default: Number.MAX_VALUE }, maxCount: { type: Number, default: Number.MAX_VALUE }, deletable: { type: Boolean, default: !0 }, previewImage: { type: Boolean, default: !0 }, previewFullImage: { type: Boolean, default: !0 }, imageFit: { type: String, default: "cover" }, resultType: { type: String, default: "dataUrl" } }, computed: { previewSizeWithUnit: function () { return Object(it.a)(this.previewSize) } }, methods: { getDetail: function (t) { return void 0 === t && (t = this.fileList.length), { name: this.name, index: t } }, onChange: function (t) { var e = this, i = t.target.files; if (!this.disabled && i.length) { if (i = 1 === i.length ? i[0] : [].slice.call(i), this.beforeRead) { var n = this.beforeRead(i, this.getDetail()); if (!n) return void this.resetInput(); if (n.then) return void n.then(function () { e.readFile(i) }).catch(this.resetInput) } this.readFile(i) } }, readFile: function (t) { var e = this, i = function (t, e) { return hl(t).some(function (t) { return t.size > e }) }(t, this.maxSize); if (Array.isArray(t)) { var n = this.maxCount - this.fileList.length; t.length > n && (t = t.slice(0, n)), Promise.all(t.map(function (t) { return dl(t, e.resultType) })).then(function (n) { var s = t.map(function (t, e) { var i = { file: t }; return n[e] && (i.content = n[e]), i }); e.onAfterRead(s, i) }) } else dl(t, this.resultType).then(function (n) { var s = { file: t }; n && (s.content = n), e.onAfterRead(s, i) }) }, onAfterRead: function (t, e) { e ? this.$emit("oversize", t, this.getDetail()) : (this.resetInput(), this.$emit("input", [].concat(this.fileList, hl(t))), this.afterRead && this.afterRead(t, this.getDetail())) }, onDelete: function (t, e) { var i = this; if (this.beforeDelete) { var n = this.beforeDelete(t, this.getDetail(e)); if (!n) return; if (n.then) return void n.then(function () { i.deleteFile(t, e) }).catch(I.e) } this.deleteFile(t, e) }, deleteFile: function (t, e) { var i = this.fileList.slice(0); i.splice(e, 1), this.$emit("input", i), this.$emit("delete", t, this.getDetail(e)) }, resetInput: function () { this.$refs.input && (this.$refs.input.value = "") }, onPreviewImage: function (t) { var e = this; if (this.previewFullImage) { var i = this.fileList.filter(function (t) { return pl(t) }), n = i.map(function (t) { return t.content || t.url }); this.imagePreview = Do({ images: n, closeOnPopstate: !0, startPosition: i.indexOf(t), onClose: function () { e.$emit("close-preview") } }) } }, closeImagePreview: function () { this.imagePreview && this.imagePreview.close() }, genPreviewItem: function (t, e) { var i = this, n = this.$createElement, s = this.deletable && n(vt, { attrs: { name: "clear" }, class: gl("preview-delete"), on: { click: function (n) { n.stopPropagation(), i.onDelete(t, e) } } }), o = pl(t) ? n(ht, { attrs: { fit: this.imageFit, src: t.content || t.url, width: this.previewSize, height: this.previewSize, radius: 4 }, class: gl("preview-image"), on: { click: function () { i.onPreviewImage(t) } } }) : n("div", { class: gl("file"), style: { width: this.previewSizeWithUnit, height: this.previewSizeWithUnit } }, [n(vt, { class: gl("file-icon"), attrs: { name: "description" } }), n("div", { class: [gl("file-name"), "van-ellipsis"] }, [t.file ? t.file.name : t.url])]); return n("div", { class: gl("preview"), on: { click: function () { i.$emit("click-preview", t, i.getDetail(e)) } } }, [o, s]) }, genPreviewList: function () { if (this.previewImage) return this.fileList.map(this.genPreviewItem) }, genUpload: function () { var t = this.$createElement; if (!(this.fileList.length >= this.maxCount)) { var e, i = this.slots(), s = t("input", { attrs: n({}, this.$attrs, { type: "file", accept: this.accept, disabled: this.disabled }), ref: "input", class: gl("input"), on: { change: this.onChange } }); if (i) return t("div", { class: gl("input-wrapper") }, [i, s]); if (this.previewSize) { var o = this.previewSizeWithUnit; e = { width: o, height: o } } return t("div", { class: gl("upload"), style: e }, [t(vt, { attrs: { name: "plus" }, class: gl("upload-icon") }), this.uploadText && t("span", { class: gl("upload-text") }, [this.uploadText]), s]) } } }, render: function () { var t = arguments[0]; return t("div", { class: gl() }, [t("div", { class: gl("wrapper") }, [this.genPreviewList(), this.genUpload()])]) } }), yl = Object(r.a)("sku-img-uploader"), kl = yl[0], Sl = yl[1], xl = yl[2], wl = kl({ props: { value: String, uploadImg: Function, maxSize: { type: Number, default: 6 } }, data: function () { return { paddingImg: "", uploadFail: !1 } }, methods: { afterReadFile: function (t) { var e = this; this.paddingImg = t.content, this.uploadFail = !1, this.uploadImg(t.file, t.content).then(function (t) { e.$emit("input", t), e.$nextTick(function () { e.paddingImg = "" }) }).catch(function () { e.uploadFail = !0 }) }, onOversize: function () { this.$toast(xl("oversize", this.maxSize)) }, genUploader: function (t, e) { void 0 === e && (e = !1); var i = this.$createElement; return i(bl, { class: Sl("uploader"), attrs: { disabled: e, afterRead: this.afterReadFile, maxSize: 1024 * this.maxSize * 1024 }, on: { oversize: this.onOversize } }, [i("div", { class: Sl("img") }, [t])]) }, genMask: function () { var t = this.$createElement; return t("div", { class: Sl("mask") }, [this.uploadFail ? [t(vt, { attrs: { name: "warning-o", size: "20px" } }), t("div", { class: Sl("warn-text"), domProps: { innerHTML: xl("fail") } })] : t($t, { attrs: { type: "spinner", size: "20px", color: "white" } })]) } }, render: function () { var t = this, e = arguments[0]; return e("div", { class: Sl() }, [this.value && this.genUploader([e("img", { attrs: { src: this.value } }), e(vt, { attrs: { name: "clear" }, class: Sl("delete"), on: { click: function () { t.$emit("input", "") } } })], !0), this.paddingImg && this.genUploader([e("img", { attrs: { src: this.paddingImg } }), this.genMask()], !this.uploadFail), !this.value && !this.paddingImg && this.genUploader(e("div", { class: Sl("trigger") }, [e(vt, { attrs: { name: "photograph", size: "22px" } })]))]) } }), Cl = Object(r.a)("sku-messages"), Ol = Cl[0], Tl = Cl[1], $l = Cl[2], Il = Ol({ props: { messages: { type: Array, default: function () { return [] } }, messageConfig: Object, goodsId: [Number, String] }, data: function () { return { messageValues: this.resetMessageValues(this.messages) } }, watch: { messages: function (t) { this.messageValues = this.resetMessageValues(t) } }, methods: { resetMessageValues: function (t) { return (t || []).map(function () { return { value: "" } }) }, getType: function (t) { return 1 == +t.multiple ? "textarea" : "id_no" === t.type ? "text" : t.datetime > 0 ? "datetime-local" : t.type }, getMessages: function () { var t = this, e = {}; return this.messageValues.forEach(function (i, n) { var s = i.value; t.messages[n].datetime > 0 && (s = s.replace(/T/g, " ")), e["message_" + n] = s }), e }, getCartMessages: function () { var t = this, e = {}; return this.messageValues.forEach(function (i, n) { var s = i.value, o = t.messages[n]; o.datetime > 0 && (s = s.replace(/T/g, " ")), e[o.name] = s }), e }, getPlaceholder: function (t) { var e = 1 == +t.multiple ? "textarea" : t.type, i = this.messageConfig.placeholderMap || {}; return t.placeholder || i[e] || $l("placeholder." + e) }, validateMessages: function () { for (var t = this.messageValues, e = 0; e < t.length; e++) { var i = t[e].value, n = this.messages[e]; if ("" === i) { if ("1" === String(n.required)) return $l("image" === n.type ? "upload" : "fill") + n.name } else { if ("tel" === n.type && !Object($s.b)(i)) return $l("invalid.tel"); if ("mobile" === n.type && !/^\d{6,20}$/.test(i)) return $l("invalid.mobile"); if ("email" === n.type && !cl(i)) return $l("invalid.email"); if ("id_no" === n.type && (i.length < 15 || i.length > 18)) return $l("invalid.id_no") } } } }, render: function () { var t = this, e = arguments[0]; return e(Ri, { class: Tl(), attrs: { border: this.messages.length > 0 } }, [this.messages.map(function (i, n) { return "image" === i.type ? e(re, { class: Tl("image-cell"), attrs: { "value-class": Tl("image-cell-value"), label: $l("imageLabel"), title: i.name, required: "1" === String(i.required) }, key: t.goodsId + "-" + n }, [e(wl, { attrs: { uploadImg: t.messageConfig.uploadImg, maxSize: t.messageConfig.uploadMaxSize }, model: { value: t.messageValues[n].value, callback: function (e) { t.$set(t.messageValues[n], "value", e) } } })]) : e(de, { attrs: { maxlength: "200", label: i.name, required: "1" === String(i.required), placeholder: t.getPlaceholder(i), type: t.getType(i) }, key: t.goodsId + "-" + n, model: { value: t.messageValues[n].value, callback: function (e) { t.$set(t.messageValues[n], "value", e) } } }) })]) } }), Bl = Object(r.a)("sku-actions"), jl = Bl[0], Nl = Bl[1], Al = Bl[2]; function Ll(t, e, i, n) { var s = function (t) { return function () { e.skuEventBus.$emit(t) } }; return t("div", o()([{ class: Nl() }, h(n)]), [e.showAddCartBtn && t(je, { attrs: { size: "large", type: "warning", text: e.addCartText || Al("addCart") }, on: { click: s("sku:addCart") } }), t(je, { attrs: { size: "large", type: "danger", text: e.buyText || Al("buy") }, on: { click: s("sku:buy") } })]) } Ll.props = { buyText: String, addCartText: String, skuEventBus: Object, showAddCartBtn: Boolean }; var El = jl(Ll), zl = Object(r.a)("sku"), Dl = zl[0], Ml = zl[1], Fl = zl[2], Pl = Wa.QUOTA_LIMIT, Vl = Dl({ props: { sku: Object, priceTag: String, goods: Object, value: Boolean, buyText: String, goodsId: [Number, String], hideStock: Boolean, addCartText: String, stepperTitle: String, getContainer: Function, hideQuotaText: Boolean, hideSelectedText: Boolean, resetStepperOnHide: Boolean, customSkuValidator: Function, closeOnClickOverlay: Boolean, disableStepperInput: Boolean, safeAreaInsetBottom: Boolean, resetSelectedSkuOnHide: Boolean, quota: { type: Number, default: 0 }, quotaUsed: { type: Number, default: 0 }, initialSku: { type: Object, default: function () { return {} } }, stockThreshold: { type: Number, default: 50 }, showSoldoutSku: { type: Boolean, default: !0 }, showAddCartBtn: { type: Boolean, default: !0 }, bodyOffsetTop: { type: Number, default: 200 }, messageConfig: { type: Object, default: function () { return { placeholderMap: {}, uploadImg: function () { return Promise.resolve() }, uploadMaxSize: 5 } } }, customStepperConfig: { type: Object, default: function () { return {} } } }, data: function () { return { selectedSku: {}, selectedNum: 1, show: this.value } }, watch: { show: function (t) { this.$emit("input", t), t || (this.$emit("sku-close", { selectedSkuValues: this.selectedSkuValues, selectedNum: this.selectedNum, selectedSkuComb: this.selectedSkuComb }), this.resetStepperOnHide && this.resetStepper(), this.resetSelectedSkuOnHide && this.resetSelectedSku(this.skuTree)) }, value: function (t) { this.show = t }, skuTree: "resetSelectedSku", initialSku: function () { this.resetStepper(), this.resetSelectedSku(this.skuTree) } }, computed: { skuGroupClass: function () { return ["van-sku-group-container", { "van-sku-group-container--hide-soldout": !this.showSoldoutSku }] }, bodyStyle: function () { if (!this.$isServer) return { maxHeight: window.innerHeight - this.bodyOffsetTop + "px" } }, isSkuCombSelected: function () { return Ua(this.sku.tree, this.selectedSku) }, isSkuEmpty: function () { return 0 === Object.keys(this.sku).length }, hasSku: function () { return !this.sku.none_sku }, selectedSkuComb: function () { return this.hasSku ? this.isSkuCombSelected ? Xa(this.sku.list, this.selectedSku) : null : { id: this.sku.collection_id, price: Math.round(100 * this.sku.price), stock_num: this.sku.stock_num } }, selectedSkuValues: function () { return Ka(this.skuTree, this.selectedSku) }, price: function () { return this.selectedSkuComb ? (this.selectedSkuComb.price / 100).toFixed(2) : this.sku.price }, originPrice: function () { return this.selectedSkuComb && this.selectedSkuComb.origin_price ? (this.selectedSkuComb.origin_price / 100).toFixed(2) : this.sku.origin_price }, skuTree: function () { return this.sku.tree || [] }, imageList: function () { var t = [this.goods.picture]; return this.skuTree.length > 0 && this.skuTree.forEach(function (e) { e.v && e.v.forEach(function (e) { var i = e.previewImgUrl || e.imgUrl || e.img_url; i && t.push(i) }) }), t }, stock: function () { var t = this.customStepperConfig.stockNum; return void 0 !== t ? t : this.selectedSkuComb ? this.selectedSkuComb.stock_num : this.sku.stock_num }, stockText: function () { var t = this.$createElement, e = this.customStepperConfig.stockFormatter; return e ? e(this.stock) : [Fl("stock") + " ", t("span", { class: Ml("stock-num", { highlight: this.stock < this.stockThreshold }) }, [this.stock]), " " + Fl("stockUnit")] }, quotaText: function () { var t = this.customStepperConfig, e = t.quotaText; if (t.hideQuotaText) return ""; var i = ""; return e ? i = e : this.quota > 0 && (i = Fl("quotaLimit", this.quota)), i }, selectedText: function () { var t = this; if (this.selectedSkuComb) return Fl("selected") + " " + this.selectedSkuValues.map(function (t) { return t.name }).join(";"); var e = this.skuTree.filter(function (e) { return "" === t.selectedSku[e.k_s] }).map(function (t) { return t.k }).join(";"); return Fl("select") + " " + e } }, created: function () { var t = new l.a; this.skuEventBus = t, t.$on("sku:select", this.onSelect), t.$on("sku:numChange", this.onNumChange), t.$on("sku:previewImage", this.onPreviewImage), t.$on("sku:overLimit", this.onOverLimit), t.$on("sku:addCart", this.onAddCart), t.$on("sku:buy", this.onBuy), this.resetStepper(), this.resetSelectedSku(this.skuTree), this.$emit("after-sku-create", t) }, methods: { resetStepper: function () { var t = this.$refs.skuStepper, e = this.initialSku.selectedNum, i = Object(I.b)(e) ? e : 1; t ? t.setCurrentNum(i) : this.selectedNum = i }, resetSelectedSku: function (t) { var e = this; this.selectedSku = {}, t.forEach(function (t) { e.selectedSku[t.k_s] = e.initialSku[t.k_s] || "" }), t.forEach(function (t) { var i = t.k_s, n = t.v[0].id; 1 === t.v.length && Qa(e.sku.list, e.selectedSku, { key: i, valueId: n }) && (e.selectedSku[i] = n) }); var i = this.selectedSkuValues; i.length > 0 && this.$nextTick(function () { e.$emit("sku-selected", { skuValue: i[i.length - 1], selectedSku: e.selectedSku, selectedSkuComb: e.selectedSkuComb }) }) }, getSkuMessages: function () { return this.$refs.skuMessages ? this.$refs.skuMessages.getMessages() : {} }, getSkuCartMessages: function () { return this.$refs.skuMessages ? this.$refs.skuMessages.getCartMessages() : {} }, validateSkuMessages: function () { return this.$refs.skuMessages ? this.$refs.skuMessages.validateMessages() : "" }, validateSku: function () { if (0 === this.selectedNum) return Fl("unavailable"); if (this.isSkuCombSelected) return this.validateSkuMessages(); if (this.customSkuValidator) { var t = this.customSkuValidator(this); if (t) return t } return Fl("selectSku") }, onSelect: function (t) { var e, i; this.selectedSku = this.selectedSku[t.skuKeyStr] === t.id ? n({}, this.selectedSku, ((e = {})[t.skuKeyStr] = "", e)) : n({}, this.selectedSku, ((i = {})[t.skuKeyStr] = t.id, i)), this.$emit("sku-selected", { skuValue: t, selectedSku: this.selectedSku, selectedSkuComb: this.selectedSkuComb }) }, onNumChange: function (t) { this.selectedNum = t }, onPreviewImage: function (t) { var e = this, i = this.imageList.findIndex(function (e) { return e === t }), n = { index: i, imageList: this.imageList, indexImage: t }; this.$emit("open-preview", n), Do({ images: this.imageList, startPosition: i, closeOnPopstate: !0, onClose: function () { e.$emit("close-preview", n) } }) }, onOverLimit: function (t) { var e = t.action, i = t.limitType, n = t.quota, s = t.quotaUsed, o = this.customStepperConfig.handleOverLimit; if (o) o(t); else if ("minus" === e) Ce(Fl("minusTip")); else if ("plus" === e) if (i === Pl) { var r = Fl("quotaLimit", n); s > 0 && (r += "," + Fl("quotaCount", s)), Ce(r) } else Ce(Fl("soldout")) }, onAddCart: function () { this.onBuyOrAddCart("add-cart") }, onBuy: function () { this.onBuyOrAddCart("buy-clicked") }, onBuyOrAddCart: function (t) { var e = this.validateSku(); e ? Ce(e) : this.$emit(t, this.getSkuData()) }, getSkuData: function () { return { goodsId: this.goodsId, selectedNum: this.selectedNum, selectedSkuComb: this.selectedSkuComb, messages: this.getSkuMessages(), cartMessages: this.getSkuCartMessages() } } }, render: function () { var t = this, e = arguments[0]; if (!this.isSkuEmpty) { var i = this.sku, n = this.goods, s = this.price, o = this.originPrice, r = this.skuEventBus, a = this.selectedSku, l = this.selectedNum, u = this.stepperTitle, c = this.hideQuotaText, h = this.selectedSkuComb, d = { price: s, originPrice: o, selectedNum: l, skuEventBus: r, selectedSku: a, selectedSkuComb: h }, f = function (e) { return t.slots(e, d) }, p = f("sku-header") || e(Ea, { attrs: { sku: i, goods: n, skuEventBus: r, selectedSku: a } }, [f("sku-header-price") || e("div", { class: "van-sku__goods-price" }, [e("span", { class: "van-sku__price-symbol" }, ["¥"]), e("span", { class: "van-sku__price-num" }, [s]), this.priceTag && e("span", { class: "van-sku__price-tag" }, [this.priceTag])]), f("sku-header-origin-price") || o && e(Fa, [Fl("originPrice"), " ¥", o]), !this.hideStock && e(Fa, [e("span", { class: "van-sku__stock" }, [this.stockText]), !c && this.quotaText && e("span", { class: "van-sku__quota" }, ["(", this.quotaText, ")"])]), this.hasSku && !this.hideSelectedText && e(Fa, [this.selectedText]), f("sku-header-extra")]), m = f("sku-group") || this.hasSku && e("div", { class: this.skuGroupClass }, [this.skuTree.map(function (t) { return e(Ha, { attrs: { skuRow: t } }, [t.v.map(function (n) { return e(Za, { attrs: { skuList: i.list, skuValue: n, selectedSku: a, skuEventBus: r, skuKeyStr: t.k_s } }) })]) })]), v = f("sku-stepper") || e(ul, { ref: "skuStepper", attrs: { stock: this.stock, quota: this.quota, quotaUsed: this.quotaUsed, skuEventBus: r, selectedNum: l, selectedSku: a, stepperTitle: u, skuStockNum: i.stock_num, disableStepperInput: this.disableStepperInput, customStepperConfig: this.customStepperConfig }, on: { change: function (e) { t.$emit("stepper-change", e) } } }), g = f("sku-messages") || e(Il, { ref: "skuMessages", attrs: { goodsId: this.goodsId, messageConfig: this.messageConfig, messages: i.messages } }), b = f("sku-actions") || e(El, { attrs: { buyText: this.buyText, skuEventBus: r, addCartText: this.addCartText, showAddCartBtn: this.showAddCartBtn } }); return e(kt, { attrs: { round: !0, closeable: !0, position: "bottom", getContainer: this.getContainer, closeOnClickOverlay: this.closeOnClickOverlay, safeAreaInsetBottom: this.safeAreaInsetBottom }, class: "van-sku-container", model: { value: t.show, callback: function (e) { t.show = e } } }, [p, e("div", { class: "van-sku-body", style: this.bodyStyle }, [f("sku-body-top"), m, f("extra-sku-group"), v, g]), b]) } } }); Zo.a.add({ "zh-CN": { vanSku: { select: "选择", selected: "已选", selectSku: "请先选择商品规格", soldout: "库存不足", originPrice: "原价", minusTip: "至少选择一件", unavailable: "商品已经无法购买啦", stock: "剩余", stockUnit: "件", quotaLimit: function (t) { return "每人限购" + t + "件" }, quotaCount: function (t) { return "你已购买" + t + "件" } }, vanSkuActions: { buy: "立即购买", addCart: "加入购物车" }, vanSkuImgUploader: { oversize: function (t) { return "最大可上传图片为" + t + "MB,请尝试压缩图片尺寸" }, fail: "上传失败<br />重新上传" }, vanSkuStepper: { num: "购买数量" }, vanSkuMessages: { fill: "请填写", upload: "请上传", imageLabel: "仅限一张", invalid: { tel: "请填写正确的数字格式留言", mobile: "手机号长度为6-20位数字", email: "请填写正确的邮箱", id_no: "请填写正确的身份证号码" }, placeholder: { id_no: "输入身份证号码", text: "输入文本", tel: "输入数字", email: "输入邮箱", date: "点击选择日期", time: "点击选择时间", textarea: "点击填写段落文本", mobile: "输入手机号码" } } } }), Vl.SkuActions = El, Vl.SkuHeader = Ea, Vl.SkuHeaderItem = Fa, Vl.SkuMessages = Il, Vl.SkuStepper = ul, Vl.SkuRow = Ha, Vl.SkuRowItem = Za, Vl.skuHelper = Ga, Vl.skuConstants = qa; var Rl = Vl, _l = Object(r.a)("slider"), Hl = _l[0], Wl = _l[1], ql = Hl({ mixins: [T], props: { disabled: Boolean, vertical: Boolean, activeColor: String, inactiveColor: String, min: { type: Number, default: 0 }, max: { type: Number, default: 100 }, step: { type: Number, default: 1 }, value: { type: Number, default: 0 }, barHeight: { type: [Number, String], default: 2 } }, data: function () { return { dragStatus: "" } }, computed: { range: function () { return this.max - this.min } }, created: function () { this.updateValue(this.value) }, methods: { onTouchStart: function (t) { this.disabled || (this.touchStart(t), this.startValue = this.format(this.value), this.dragStatus = "start") }, onTouchMove: function (t) { if (!this.disabled) { "start" === this.dragStatus && this.$emit("drag-start"), E(t, !0), this.touchMove(t), this.dragStatus = "draging"; var e = this.$el.getBoundingClientRect(), i = (this.vertical ? this.deltaY : this.deltaX) / (this.vertical ? e.height : e.width) * this.range; this.newValue = this.startValue + i, this.updateValue(this.newValue) } }, onTouchEnd: function () { this.disabled || ("draging" === this.dragStatus && (this.updateValue(this.newValue, !0), this.$emit("drag-end")), this.dragStatus = "") }, onClick: function (t) { if (t.stopPropagation(), !this.disabled) { var e = this.$el.getBoundingClientRect(), i = (this.vertical ? t.clientY - e.top : t.clientX - e.left) / (this.vertical ? e.height : e.width) * this.range + this.min; this.startValue = this.value, this.updateValue(i, !0) } }, updateValue: function (t, e) { (t = this.format(t)) !== this.value && this.$emit("input", t), e && t !== this.startValue && this.$emit("change", t) }, format: function (t) { return Math.round(Math.max(this.min, Math.min(t, this.max)) / this.step) * this.step } }, render: function () { var t, e = arguments[0], i = this.vertical, n = { background: this.inactiveColor }, s = i ? "height" : "width", o = i ? "width" : "height", r = ((t = {})[s] = 100 * (this.value - this.min) / this.range + "%", t[o] = Object(it.a)(this.barHeight), t.background = this.activeColor, t); return this.dragStatus && (r.transition = "none"), e("div", { style: n, class: Wl({ disabled: this.disabled, vertical: i }), on: { click: this.onClick } }, [e("div", { class: Wl("bar"), style: r }, [e("div", { attrs: { role: "slider", tabindex: this.disabled ? -1 : 0, "aria-valuemin": this.min, "aria-valuenow": this.value, "aria-valuemax": this.max, "aria-orientation": this.vertical ? "vertical" : "horizontal" }, class: Wl("button-wrapper"), on: { touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [this.slots("button") || e("div", { class: Wl("button") })])])]) } }), Yl = Object(r.a)("step"), Ul = Yl[0], Xl = Yl[1], Kl = Ul({ mixins: [ai("vanSteps")], computed: { status: function () { return this.index < this.parent.active ? "finish" : this.index === this.parent.active ? "process" : void 0 } }, methods: { genCircle: function () { var t = this.$createElement, e = this.parent, i = e.activeIcon, n = e.activeColor, s = e.inactiveIcon; if ("process" === this.status) return this.slots("active-icon") || t(vt, { class: Xl("icon"), attrs: { name: i, color: n } }); var o = this.slots("inactive-icon"); return s || o ? o || t(vt, { class: Xl("icon"), attrs: { name: s } }) : t("i", { class: Xl("circle") }) } }, render: function () { var t, e = arguments[0], i = this.status, n = this.parent, s = n.activeColor, o = n.direction, r = "process" === i && { color: s }; return e("div", { class: [b, Xl([o, (t = {}, t[i] = i, t)])] }, [e("div", { class: Xl("title"), style: r }, [this.slots()]), e("div", { class: Xl("circle-container") }, [this.genCircle()]), e("div", { class: Xl("line") })]) } }), Ql = Object(r.a)("steps"), Gl = Ql[0], Zl = Ql[1], Jl = Gl({ mixins: [li("vanSteps")], props: { inactiveIcon: String, active: { type: Number, default: 0 }, direction: { type: String, default: "horizontal" }, activeColor: { type: String, default: "#07c160" }, activeIcon: { type: String, default: "checked" } }, render: function () { var t = arguments[0]; return t("div", { class: Zl([this.direction]) }, [t("div", { class: Zl("items") }, [this.slots()])]) } }), tu = Object(r.a)("submit-bar"), eu = tu[0], iu = tu[1], nu = tu[2]; function su(t, e, i, n) { var s = e.tip, r = e.price, a = e.tipIcon; return t("div", o()([{ class: iu({ "safe-area-inset-bottom": e.safeAreaInsetBottom }) }, h(n)]), [i.top && i.top(), function () { if (i.tip || s) return t("div", { class: iu("tip") }, [a && t(vt, { class: iu("tip-icon"), attrs: { name: a } }), s && t("span", { class: iu("tip-text") }, [s]), i.tip && i.tip()]) }(), t("div", { class: iu("bar") }, [i.default && i.default(), function () { if ("number" == typeof r) { var i = e.currency + " " + (r / 100).toFixed(e.decimalLength); return t("div", { class: iu("text") }, [t("span", [e.label || nu("label")]), t("span", { class: iu("price") }, [i]), e.suffixLabel && t("span", { class: iu("suffix-label") }, [e.suffixLabel])]) } }(), t(je, { attrs: { square: !0, size: "large", type: e.buttonType, loading: e.loading, disabled: e.disabled, text: e.loading ? "" : e.buttonText }, class: iu("button"), on: { click: function () { d(n, "submit") } } })])]) } su.props = { tip: String, label: String, price: Number, tipIcon: String, loading: Boolean, disabled: Boolean, buttonText: String, suffixLabel: String, safeAreaInsetBottom: Boolean, decimalLength: { type: Number, default: 2 }, currency: { type: String, default: "¥" }, buttonType: { type: String, default: "danger" } }; var ou = eu(su), ru = Object(r.a)("swipe-cell"), au = ru[0], lu = ru[1], uu = au({ mixins: [T, Xs({ event: "touchstart", method: "onClick" })], props: { onClose: Function, disabled: Boolean, leftWidth: Number, rightWidth: Number, stopPropagation: Boolean, name: { type: [Number, String], default: "" } }, data: function () { return { offset: 0, dragging: !1 } }, computed: { computedLeftWidth: function () { return this.leftWidth || this.getWidthByRef("left") }, computedRightWidth: function () { return this.rightWidth || this.getWidthByRef("right") } }, methods: { getWidthByRef: function (t) { return this.$refs[t] ? this.$refs[t].getBoundingClientRect().width : 0 }, open: function (t) { var e = "left" === t ? this.computedLeftWidth : -this.computedRightWidth; this.swipeMove(e), this.opened = !0, this.$emit("open", { position: t, detail: this.name }) }, close: function () { this.offset = 0 }, swipeMove: function (t) { void 0 === t && (t = 0), this.offset = Mt(t, -this.computedRightWidth, this.computedLeftWidth), this.offset || (this.opened = !1) }, onTouchStart: function (t) { this.disabled || (this.startOffset = this.offset, this.touchStart(t)) }, onTouchMove: function (t) { this.disabled || (this.touchMove(t), "horizontal" === this.direction && (this.dragging = !0, this.lockClick = !0, (!this.opened || this.deltaX * this.startOffset < 0) && E(t, this.stopPropagation), this.swipeMove(this.deltaX + this.startOffset))) }, onTouchEnd: function () { var t = this; this.disabled || this.dragging && (this.toggle(this.offset > 0 ? "left" : "right"), this.dragging = !1, setTimeout(function () { t.lockClick = !1 }, 0)) }, toggle: function (t) { var e = Math.abs(this.offset), i = this.opened ? .85 : .15, n = this.computedLeftWidth, s = this.computedRightWidth; s && "right" === t && e > s * i ? this.open("right") : n && "left" === t && e > n * i ? this.open("left") : this.swipeMove(0) }, onClick: function (t) { void 0 === t && (t = "outside"), this.$emit("click", t), this.opened && !this.lockClick && (this.onClose ? this.onClose(t, this, { name: this.name }) : this.swipeMove(0)) }, getClickHandler: function (t, e) { var i = this; return function (n) { e && n.stopPropagation(), i.onClick(t) } }, genLeftPart: function () { var t = this.$createElement; if (this.slots("left")) return t("div", { ref: "left", class: lu("left"), on: { click: this.getClickHandler("left", !0) } }, [this.slots("left")]) }, genRightPart: function () { var t = this.$createElement; if (this.slots("right")) return t("div", { ref: "right", class: lu("right"), on: { click: this.getClickHandler("right", !0) } }, [this.slots("right")]) } }, render: function () { var t = arguments[0], e = { transform: "translate3d(" + this.offset + "px, 0, 0)", transitionDuration: this.dragging ? "0s" : ".6s" }; return t("div", { class: lu(), on: { click: this.getClickHandler("cell"), touchstart: this.onTouchStart, touchmove: this.onTouchMove, touchend: this.onTouchEnd, touchcancel: this.onTouchEnd } }, [t("div", { class: lu("wrapper"), style: e }, [this.genLeftPart(), this.slots(), this.genRightPart()])]) } }), cu = Object(r.a)("tabbar"), hu = cu[0], du = cu[1], fu = hu({ mixins: [li("vanTabbar")], props: { route: Boolean, activeColor: String, inactiveColor: String, safeAreaInsetBottom: Boolean, value: { type: [Number, String], default: 0 }, border: { type: Boolean, default: !0 }, fixed: { type: Boolean, default: !0 }, zIndex: { type: Number, default: 1 } }, watch: { value: "setActiveItem", children: "setActiveItem" }, methods: { setActiveItem: function () { var t = this; this.children.forEach(function (e, i) { e.active = (e.name || i) === t.value }) }, onChange: function (t) { t !== this.value && (this.$emit("input", t), this.$emit("change", t)) } }, render: function () { var t, e = arguments[0]; return e("div", { style: { zIndex: this.zIndex }, class: [(t = {}, t[w] = this.border, t), du({ fixed: this.fixed, "safe-area-inset-bottom": this.safeAreaInsetBottom })] }, [this.slots()]) } }), pu = Object(r.a)("tabbar-item"), mu = pu[0], vu = pu[1], gu = mu({ mixins: [ai("vanTabbar")], props: n({}, ee, { dot: Boolean, icon: String, name: [Number, String], info: [Number, String] }), data: function () { return { active: !1 } }, computed: { routeActive: function () { var t = this.to, e = this.$route; if (t && e) { var i = Object(I.c)(t) ? t : { path: t }, n = i.path === e.path, s = Object(I.b)(i.name) && i.name === e.name; return n || s } } }, methods: { onClick: function (t) { this.parent.onChange(this.name || this.index), this.$emit("click", t), Jt(this.$router, this) } }, render: function () { var t = arguments[0], e = this.icon, i = this.slots, n = this.parent.route ? this.routeActive : this.active, s = this.parent[n ? "activeColor" : "inactiveColor"]; return t("div", { class: vu({ active: n }), style: { color: s }, on: { click: this.onClick } }, [t("div", { class: vu("icon") }, [i("icon", { active: n }) || e && t(vt, { attrs: { name: e } }), t(at, { attrs: { dot: this.dot, info: this.info } })]), t("div", { class: vu("text") }, [i("default", { active: n })])]) } }), bu = Object(r.a)("tree-select"), yu = bu[0], ku = bu[1]; function Su(t, e, i, n) { var s = e.height, r = e.items, a = e.mainActiveIndex, l = e.activeId, u = (r[a] || {}).children || [], c = Array.isArray(l); function f(t) { return c ? -1 !== l.indexOf(t) : l === t } var p = r.map(function (e) { return t(xa, { attrs: { dot: e.dot, info: e.info, title: e.text, disabled: e.disabled }, class: [ku("nav-item"), e.className] }) }); return t("div", o()([{ class: ku(), style: { height: Object(it.a)(s) } }, h(n)]), [t(ba, { class: ku("nav"), attrs: { activeKey: a }, on: { change: function (t) { d(n, "click-nav", t), d(n, "update:main-active-index", t), d(n, "navclick", t) } } }, [p]), t("div", { class: ku("content") }, [i.content ? i.content() : u.map(function (i) { return t("div", { key: i.id, class: ["van-ellipsis", ku("item", { active: f(i.id), disabled: i.disabled })], on: { click: function () { if (!i.disabled) { var t = i.id; if (c) { var s = (t = l.slice()).indexOf(i.id); -1 !== s ? t.splice(s, 1) : t.length < e.max && t.push(i.id) } d(n, "click-item", i), d(n, "update:active-id", t), d(n, "itemclick", i) } } } }, [i.text, f(i.id) && t(vt, { attrs: { name: "checked", size: "16px" }, class: ku("selected") })]) })])]) } Su.props = { max: { type: Number, default: 1 / 0 }, items: { type: Array, default: function () { return [] } }, height: { type: [Number, String], default: 300 }, activeId: { type: [Number, String, Array], default: 0 }, mainActiveIndex: { type: Number, default: 0 } }; var xu = yu(Su); i.d(e, "install", function () { return Ou }), i.d(e, "version", function () { return wu }), i.d(e, "ActionSheet", function () { return At }), i.d(e, "AddressEdit", function () { return ri }), i.d(e, "AddressList", function () { return Ti }), i.d(e, "Area", function () { return Gt }), i.d(e, "Button", function () { return je }), i.d(e, "Card", function () { return Di }), i.d(e, "Cell", function () { return re }), i.d(e, "CellGroup", function () { return Ri }), i.d(e, "Checkbox", function () { return Hi }), i.d(e, "CheckboxGroup", function () { return Ui }), i.d(e, "Circle", function () { return tn }), i.d(e, "Col", function () { return on }), i.d(e, "Collapse", function () { return un }), i.d(e, "CollapseItem", function () { return pn }), i.d(e, "ContactCard", function () { return kn }), i.d(e, "ContactEdit", function () { return Tn }), i.d(e, "ContactList", function () { return An }), i.d(e, "CountDown", function () { return Rn }), i.d(e, "Coupon", function () { return Xn }), i.d(e, "CouponCell", function () { return ts }), i.d(e, "CouponList", function () { return Ts }), i.d(e, "DatetimePicker", function () { return Fs }), i.d(e, "Dialog", function () { return Me }), i.d(e, "Divider", function () { return Hs }), i.d(e, "DropdownItem", function () { return Us }), i.d(e, "DropdownMenu", function () { return Zs }), i.d(e, "Field", function () { return de }), i.d(e, "GoodsAction", function () { return io }), i.d(e, "GoodsActionButton", function () { return ro }), i.d(e, "GoodsActionIcon", function () { return co }), i.d(e, "Grid", function () { return mo }), i.d(e, "GridItem", function () { return yo }), i.d(e, "Icon", function () { return vt }), i.d(e, "Image", function () { return ht }), i.d(e, "ImagePreview", function () { return Do }), i.d(e, "IndexAnchor", function () { return Vo }), i.d(e, "IndexBar", function () { return Wo }), i.d(e, "Info", function () { return at }), i.d(e, "Lazyload", function () { return Yo }), i.d(e, "List", function () { return Go }), i.d(e, "Loading", function () { return $t }), i.d(e, "Locale", function () { return Zo.a }), i.d(e, "NavBar", function () { return nr }), i.d(e, "NoticeBar", function () { return ar }), i.d(e, "Notify", function () { return gr }), i.d(e, "NumberKeyboard", function () { return Ir }), i.d(e, "Overlay", function () { return H }), i.d(e, "Pagination", function () { return Er }), i.d(e, "Panel", function () { return Pr }), i.d(e, "PasswordInput", function () { return Wr }), i.d(e, "Picker", function () { return Ut }), i.d(e, "Popup", function () { return kt }), i.d(e, "Progress", function () { return Xr }), i.d(e, "PullRefresh", function () { return ta }), i.d(e, "Radio", function () { return mi }), i.d(e, "RadioGroup", function () { return di }), i.d(e, "Rate", function () { return sa }), i.d(e, "Row", function () { return la }), i.d(e, "Search", function () { return pa }), i.d(e, "Sidebar", function () { return ba }), i.d(e, "SidebarItem", function () { return xa }), i.d(e, "Skeleton", function () { return Ba }), i.d(e, "Sku", function () { return Rl }), i.d(e, "Slider", function () { return ql }), i.d(e, "Step", function () { return Kl }), i.d(e, "Stepper", function () { return nl }), i.d(e, "Steps", function () { return Jl }), i.d(e, "Sticky", function () { return gs }), i.d(e, "SubmitBar", function () { return ou }), i.d(e, "Swipe", function () { return wo }), i.d(e, "SwipeCell", function () { return uu }), i.d(e, "SwipeItem", function () { return $o }), i.d(e, "Switch", function () { return Ke }), i.d(e, "SwitchCell", function () { return ti }), i.d(e, "Tab", function () { return ss }), i.d(e, "Tabbar", function () { return fu }), i.d(e, "TabbarItem", function () { return gu }), i.d(e, "Tabs", function () { return Ss }), i.d(e, "Tag", function () { return Ni }), i.d(e, "Toast", function () { return Ce }), i.d(e, "TreeSelect", function () { return xu }), i.d(e, "Uploader", function () { return bl }); var wu = "2.2.16", Cu = [At, ri, Ti, Gt, je, Di, re, Ri, Hi, Ui, tn, on, un, pn, kn, Tn, An, Rn, Xn, ts, Ts, Fs, Me, Hs, Us, Zs, de, io, ro, co, mo, yo, vt, ht, Do, Vo, Wo, at, Go, $t, nr, ar, gr, Ir, H, Er, Pr, Wr, Ut, kt, Xr, ta, mi, di, sa, la, pa, ba, xa, Ba, Rl, ql, Kl, nl, Jl, gs, ou, wo, uu, $o, Ke, ti, ss, fu, gu, Ss, Ni, Ce, xu, bl], Ou = function (t) { Cu.forEach(function (e) { t.use(e) }) }; "undefined" != typeof window && window.Vue && Ou(window.Vue); e.default = { install: Ou, version: wu } }])
- });
|