From 06f64075f441539e2a0f06c5fc3ca3af88a99a1d Mon Sep 17 00:00:00 2001 From: huayifeng <461249104@qq.com> Date: Sat, 18 Jul 2020 16:25:27 +0800 Subject: [PATCH] fix: ll --- love-yuan/dist/index.html | 1 + .../app.ec3e554946f880f79e6f914717789fb8.css | 2 ++ ...p.ec3e554946f880f79e6f914717789fb8.css.map | 1 + .../static/js/app.3b1cf55ac78dd14f33d5.js | 2 ++ .../static/js/app.3b1cf55ac78dd14f33d5.js.map | 1 + .../js/manifest.3ad1d5771e9b13dbdad2.js | 2 ++ .../js/manifest.3ad1d5771e9b13dbdad2.js.map | 1 + .../static/js/vendor.fd212e28dcc820b6a3be.js | 8 ++++++ .../js/vendor.fd212e28dcc820b6a3be.js.map | 1 + love-yuan/index1.html | 25 +++++++++++++++++++ 10 files changed, 44 insertions(+) create mode 100644 love-yuan/dist/index.html create mode 100644 love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css create mode 100644 love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css.map create mode 100644 love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js create mode 100644 love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js.map create mode 100644 love-yuan/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js create mode 100644 love-yuan/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map create mode 100644 love-yuan/dist/static/js/vendor.fd212e28dcc820b6a3be.js create mode 100644 love-yuan/dist/static/js/vendor.fd212e28dcc820b6a3be.js.map create mode 100644 love-yuan/index1.html diff --git a/love-yuan/dist/index.html b/love-yuan/dist/index.html new file mode 100644 index 0000000..517bc9f --- /dev/null +++ b/love-yuan/dist/index.html @@ -0,0 +1 @@ +❤️
\ No newline at end of file diff --git a/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css b/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css new file mode 100644 index 0000000..8915354 --- /dev/null +++ b/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css @@ -0,0 +1,2 @@ +*{margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html{overflow:hidden;width:100%}#app,body,html{height:100%}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}.one,.van-swipe{height:100%}.one{background-color:#f9f1ff;margin-top:-.24rem}.one p:first-child{padding-top:1.6rem}.one p{margin-top:.266667rem}.one .next{font-size:.533333rem;position:absolute;left:48%;bottom:1.333333rem;animation:leaves 5s ease-in-out infinite alternate;-webkit-animation:dance .5s infinite alternate}.two{background-color:#daf6ff;height:100%;margin-top:-.24rem}.two p:first-child{padding-top:.8rem}.two p{margin-top:.266667rem}.two .next{font-size:.533333rem;position:absolute;left:48%;bottom:1.333333rem}.two .lover,.two .next{animation:leaves 5s ease-in-out infinite alternate;-webkit-animation:dance .5s infinite alternate}.two .lover{margin-top:.533333rem;font-size:.8rem;cursor:pointer}.avatar{width:1.333333rem;height:1.333333rem;border-radius:8.88rem;margin:0 .133333rem}.photo{width:2.666667rem;margin-bottom:.266667rem}@-webkit-keyframes dance{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(2);transform:scale(2)}}@keyframes dance{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(2);transform:scale(2)}}.three{background-color:#f9f1ff;height:100%;margin-top:-.24rem;position:relative}.three p:first-child{padding-top:1.6rem}.three p{margin-top:.266667rem}.three button{position:absolute;font-size:.266667rem;background-color:#fff}.four{background-color:#f9f1ff;height:100%;margin-top:-.24rem}.four button{position:absolute;top:9.333333rem;background:#fff}.four p:first-child{padding-top:1.6rem}.four p{margin-top:.266667rem}.four .btn1{left:1.333333rem}.four .btn2{left:4.533333rem}.rsv{-o-transition:all .2s;transition:all .2s;-moz-transition:all .2s;-webkit-transition:all .2s}.rjt,.rsv{padding:.133333rem .266667rem;border:.013333rem solid #d2d2d2}.rjt{top:10.666667rem;left:5.333333rem}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}:focus{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none}input[type=search]{-webkit-appearance:none;-moz-appearance:none}audio,canvas,video{display:inline-block;*display:inline;*zoom:1;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted}a:active,a:hover{outline:0}img{border:0;-ms-interpolation-mode:bicubic}figure,form{margin:0}fieldset{border:.013333rem solid silver;margin:0 .026667rem;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-.093333rem}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;*height:.173333rem;*width:.173333rem}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}button,html,input,select,textarea{color:#222}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}img{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0} +/*# sourceMappingURL=app.ec3e554946f880f79e6f914717789fb8.css.map */ \ No newline at end of file diff --git a/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css.map b/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css.map new file mode 100644 index 0000000..548a63d --- /dev/null +++ b/love-yuan/dist/static/css/app.ec3e554946f880f79e6f914717789fb8.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["app.ec3e554946f880f79e6f914717789fb8.css"],"names":[],"mappings":"AACA,EACE,QAAS,CACT,SAAU,CACV,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,KACE,eAAgB,CAChB,UAEF,CAIA,eALE,WAYF,CAPA,KAEE,6CAAmD,CACnD,kCAAmC,CACnC,iCAAkC,CAClC,iBAAkB,CAClB,aACF,CAwBA,gBAtBE,WA0BF,CAJA,KACE,wBAAyB,CAEzB,kBACF,CACA,mBACE,kBACF,CACA,OACE,qBACF,CACA,WACE,oBAAsB,CACtB,iBAAkB,CAClB,QAAS,CACT,kBAAmB,CACnB,kDAAmD,CACnD,8CACF,CAqBA,KACE,wBAAyB,CACzB,WAAY,CACZ,kBACF,CACA,mBACE,iBACF,CACA,OACE,qBACF,CACA,WACE,oBAAsB,CACtB,iBAAkB,CAClB,QAAS,CACT,kBAGF,CACA,uBAHE,kDAAmD,CACnD,8CAQF,CANA,YACE,qBAAuB,CACvB,eAAiB,CACjB,cAGF,CACA,QACE,iBAAkB,CAClB,kBAAmB,CACnB,qBAAsB,CACtB,mBACF,CACA,OACE,iBAAkB,CAClB,wBACF,CACA,yBACA,GACI,0BAA6B,CACrB,kBACZ,CACA,GACI,0BAA6B,CACrB,kBACZ,CACA,CACA,iBACA,GACI,0BAA6B,CACrB,kBACZ,CACA,GACI,0BAA6B,CACrB,kBACZ,CACA,CACA,OACE,wBAAyB,CACzB,WAAY,CACZ,kBAAoB,CACpB,iBACF,CACA,qBACE,kBACF,CACA,SACE,qBACF,CACA,cACE,iBAAkB,CAClB,oBAAsB,CACtB,qBACF,CACA,MACE,wBAAyB,CACzB,WAAY,CACZ,kBACF,CACA,aACE,iBAAkB,CAClB,eAAgB,CAChB,eACF,CACA,oBACE,kBACF,CACA,QACE,qBACF,CACA,YACE,gBACF,CACA,YACE,gBACF,CACA,KACE,qBAAuB,CACvB,kBAAoB,CACpB,uBAAyB,CAEzB,0BAIF,CACA,UAHE,6BAAgC,CAChC,+BAOF,CALA,KAGE,gBAAiB,CACjB,gBACF,CAKA,2ZAiFE,QAAS,CACT,SAAU,CACV,QAAS,CACT,cAAe,CACf,YAAa,CACb,uBACF,CAIA,OACE,SACF,CAIA,8EAWE,aACF,CAEA,KACE,aACF,CAEA,MAEE,eACF,CAEA,aAEE,WACF,CAEA,oDAIE,UAAW,CACX,YACF,CAOA,uMAIE,uBAAwB,CACxB,oBACF,CAEA,mBACE,uBAAwB,CACxB,oBAGF,CAYA,mBAGE,oBAAqB,EACrB,cAAgB,EAChB,MAAQ,CACR,cACF,CAOA,sBACE,YAAa,CACb,QACF,CAOA,SACE,YACF,CASA,KACE,cAAe,CAEf,6BAA8B,CAE9B,yBAEF,CAMA,QACE,mBACF,CAMA,iBAEE,SACF,CAOA,IACE,QAAS,CAET,8BAEF,CAcA,YACE,QACF,CAMA,SACE,8BAAiC,CACjC,mBAAqB,CACrB,0BACF,CAQA,OACE,QAAS,CAET,SAAU,CACV,kBAAmB,EAEnB,uBAEF,CASA,6BAIE,cAAe,CAEf,QAAS,CAET,uBAAwB,EAExB,qBAEF,CAOA,aAEE,kBACF,CASA,cAEE,mBACF,CAYA,oEAIE,yBAA0B,CAE1B,cAAe,EAEf,gBAEF,CAMA,sCAEE,cACF,CASA,uCAEE,6BAA8B,CACtB,qBAAsB,CAE9B,SAAU,EAEV,iBAAoB,EAEpB,gBAEF,CAQA,mBACE,4BAA6B,CAE7B,8BAA+B,CAE/B,sBACF,CAOA,+FAEE,uBACF,CAMA,iDAEE,QAAS,CACT,SACF,CAOA,SACE,aAAc,CAEd,kBAEF,CAMA,MACE,wBAAyB,CACzB,gBACF,CAEA,kCAKE,UACF,CAEA,iBACE,kBAAmB,CACnB,gBACF,CAEA,YACE,kBAAmB,CACnB,gBACF,CAEA,IACE,qBACF,CAEA,SACE,QAAS,CACT,QAAS,CACT,SACF,CAEA,SACE,eACF,CAEA,aACE,aAAe,CACf,eAAgB,CAChB,UAAW,CACX,cACF","file":"app.ec3e554946f880f79e6f914717789fb8.css","sourcesContent":["\n* {\n margin: 0;\n padding: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\nhtml {\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\nbody {\n height: 100%;\n}\n#app {\n height: 100%;\n font-family: \"Avenir\", Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-align: center;\n color: #2c3e50;\n}\n.van-swipe {\n height: 100%;\n}\n@-webkit-keyframes dance {\n0% {\n -webkit-transform: scale(1.0);\n transform: scale(1.0);\n}\n100% {\n -webkit-transform: scale(2.0);\n transform: scale(2.0);\n}\n}\n@keyframes dance {\n0% {\n -webkit-transform: scale(1.0);\n transform: scale(1.0);\n}\n100% {\n -webkit-transform: scale(2.0);\n transform: scale(2.0);\n}\n}\n.one {\n background-color: #f9f1ff;\n height: 100%;\n margin-top: -0.24rem;\n}\n.one p:nth-child(1) {\n padding-top: 1.6rem;\n}\n.one p {\n margin-top: 0.266667rem;\n}\n.one .next {\n font-size: 0.533333rem;\n position: absolute;\n left: 48%;\n bottom: 1.333333rem;\n animation: leaves 5s ease-in-out infinite alternate;\n -webkit-animation: dance .5s infinite alternate;\n}\n@-webkit-keyframes dance {\n0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n100% {\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n}\n}\n@keyframes dance {\n0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n}\n100% {\n -webkit-transform: scale(1.5);\n transform: scale(1.5);\n}\n}\n.two {\n background-color: #daf6ff;\n height: 100%;\n margin-top: -0.24rem;\n}\n.two p:nth-child(1) {\n padding-top: 0.8rem;\n}\n.two p {\n margin-top: 0.266667rem;\n}\n.two .next {\n font-size: 0.533333rem;\n position: absolute;\n left: 48%;\n bottom: 1.333333rem;\n animation: leaves 5s ease-in-out infinite alternate;\n -webkit-animation: dance 0.5s infinite alternate;\n}\n.two .lover {\n margin-top: 0.533333rem;\n font-size: 0.8rem;\n cursor: pointer;\n animation: leaves 5s ease-in-out infinite alternate;\n -webkit-animation: dance 0.5s infinite alternate;\n}\n.avatar {\n width: 1.333333rem;\n height: 1.333333rem;\n border-radius: 8.88rem;\n margin: 0 0.133333rem;\n}\n.photo {\n width: 2.666667rem;\n margin-bottom: 0.266667rem;\n}\n@-webkit-keyframes dance {\n0% {\n -webkit-transform: scale(1.0);\n transform: scale(1.0);\n}\n100% {\n -webkit-transform: scale(2.0);\n transform: scale(2.0);\n}\n}\n@keyframes dance {\n0% {\n -webkit-transform: scale(1.0);\n transform: scale(1.0);\n}\n100% {\n -webkit-transform: scale(2.0);\n transform: scale(2.0);\n}\n}\n.three {\n background-color: #f9f1ff;\n height: 100%;\n margin-top: -0.24rem;\n position: relative;\n}\n.three p:nth-child(1) {\n padding-top: 1.6rem;\n}\n.three p {\n margin-top: 0.266667rem;\n}\n.three button {\n position: absolute;\n font-size: 0.266667rem;\n background-color: #fff;\n}\n.four {\n background-color: #f9f1ff;\n height: 100%;\n margin-top: -0.24rem;\n}\n.four button {\n position: absolute;\n top: 9.333333rem;\n background: #fff;\n}\n.four p:nth-child(1) {\n padding-top: 1.6rem;\n}\n.four p {\n margin-top: 0.266667rem;\n}\n.four .btn1 {\n left: 1.333333rem;\n}\n.four .btn2 {\n left: 4.533333rem;\n}\n.rsv {\n -o-transition: all 0.2s;\n transition: all 0.2s;\n -moz-transition: all 0.2s;\n /* Firefox 4 */\n -webkit-transition: all 0.2s;\n /* Safari 和 Chrome */\n padding: 0.133333rem 0.266667rem;\n border: 0.013333rem solid #d2d2d2;\n}\n.rjt {\n padding: 0.133333rem 0.266667rem;\n border: 0.013333rem solid #d2d2d2;\n top: 10.666667rem;\n left: 5.333333rem;\n}/* http://meyerweb.com/eric/tools/css/reset/\n v2.0-modified | 20110126\n License: none (public domain)\n*/\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* make sure to set some focus styles for accessibility */\n\n:focus {\n outline: 0;\n}\n\n/* HTML5 display-role reset for older browsers */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol,\nul {\n list-style: none;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\ninput[type=search] {\n -webkit-appearance: none;\n -moz-appearance: none;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n}\n\ntextarea {\n overflow: auto;\n vertical-align: top;\n resize: vertical;\n}\n\n/**\n * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.\n */\n\naudio,\ncanvas,\nvideo {\n display: inline-block;\n *display: inline;\n *zoom: 1;\n max-width: 100%;\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.\n * Known issue: no IE 6 support.\n */\n\n[hidden] {\n display: none;\n}\n\n/**\n * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using\n * `em` units.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-size: 100%;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n}\n\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\n\na:focus {\n outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/**\n * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.\n * 2. Improve image quality when scaled in IE 7.\n */\n\nimg {\n border: 0;\n /* 1 */\n -ms-interpolation-mode: bicubic;\n /* 2 */\n}\n\n/**\n * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.\n */\n\nfigure {\n margin: 0;\n}\n\n/**\n * Correct margin displayed oddly in IE 6/7.\n */\n\nform {\n margin: 0;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 0.013333rem solid #c0c0c0;\n margin: 0 0.026667rem;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct color not being inherited in IE 6/7/8/9.\n * 2. Correct text not wrapping in Firefox 3.\n * 3. Correct alignment displayed oddly in IE 6/7.\n */\n\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n white-space: normal;\n /* 2 */\n *margin-left: -0.093333rem;\n /* 3 */\n}\n\n/**\n * 1. Correct font size not being inherited in all browsers.\n * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,\n * and Chrome.\n * 3. Improve appearance and consistency in all browsers.\n */\n\nbutton,\ninput,\nselect,\ntextarea {\n font-size: 100%;\n /* 1 */\n margin: 0;\n /* 2 */\n vertical-align: baseline;\n /* 3 */\n *vertical-align: middle;\n /* 3 */\n}\n\n/**\n * Address Firefox 3+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\nbutton,\ninput {\n line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n * 4. Remove inner spacing in IE 7 without affecting normal text inputs.\n * Known issue: inner spacing remains in IE 6.\n */\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */\n *overflow: visible;\n /* 4 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * 1. Address box sizing set to content-box in IE 8/9.\n * 2. Remove excess padding in IE 8/9.\n * 3. Remove excess padding in IE 7.\n * Known issue: excess padding remains in IE 6.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n *height: 0.173333rem;\n /* 3 */\n *width: 0.173333rem;\n /* 3 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n -webkit-box-sizing: content-box;\n /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 3+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 6/7/8/9.\n * 2. Improve readability and alignment in all browsers.\n */\n\ntextarea {\n overflow: auto;\n /* 1 */\n vertical-align: top;\n /* 2 */\n}\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml,\nbutton,\ninput,\nselect,\ntextarea {\n color: #222;\n}\n\n::-moz-selection {\n background: #b3d4fc;\n text-shadow: none;\n}\n\n::selection {\n background: #b3d4fc;\n text-shadow: none;\n}\n\nimg {\n vertical-align: middle;\n}\n\nfieldset {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\n.chromeframe {\n margin: 0.2em 0;\n background: #ccc;\n color: #000;\n padding: 0.2em 0;\n}"]} \ No newline at end of file diff --git a/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js b/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js new file mode 100644 index 0000000..a0f66be --- /dev/null +++ b/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js @@ -0,0 +1,2 @@ +webpackJsonp([1],{"0ukV":function(t,e){},"1GLP":function(t,e){},"8Cmu":function(t,e){},N7QA:function(t,e){},NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=n("kV13"),r=(n("D0oh"),n("6xlI")),a={mounted(){setInterval(()=>{const t=this.arr.shift();t&&this.texts.push(t)},1e3)},data(){const t=new Date;return{arr:["圆圆","❄️","我有话想对你说","🌹","遇见你我真的非常开心","😄",`今天是${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`,"📅","这本来是一个一点都不特别的日子","🍥","但是接下来发生的事可能会让今天变得有点特别","❓","如果你猜今天貌似有点不一样特别而且对我有感觉 就请下滑","..."],texts:[]}}},o={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"one"},[t._l(t.texts,function(e){return n("p",{key:e},[t._v("\n "+t._s(e)+"\n ")])}),t._v(" "),0===t.arr.length?n("p",{staticClass:"next"},[n("van-icon",{attrs:{name:"arrow-down"}})],1):t._e()],2)},staticRenderFns:[]};var i=n("C7Lr")(a,o,!1,function(t){n("1GLP")},null,null).exports,l={data(){new Date;return{arr:["唔,也许一开始我们可能有点被外貌协会收编了","😆","但是后来我看到了小圆的温柔,小圆看到了我的才华","🎻","本来一个月前应该见面的我们,因为疫情","👫","我们被迫当了整整两个月的网友","😅","终于见面了,小圆依旧是如此美丽温柔(10级滤镜加上)","🌼","还记得我们每次说话都是那么的默契","👇","你想我的时候我正想你","😋","那么以后我负责帅气你负责美丽,怎么样❓","💓","请继续往下滑。"],texts:[]}},methods:{add(){const t=this.arr.shift();t&&this.texts.push(t)}}},c={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"two"},[n("p",[t._v("不断点击这个小爱心 你即将拥有好运")]),t._v(" "),n("p",{staticClass:"lover",on:{click:t.add}},[t._v("💗")]),t._v(" "),t._l(t.texts,function(e,s){return n("p",{key:e},[1===s?[t._m(0,!0)]:t._e(),t._v(" "),3===s?[t._m(1,!0)]:t._e(),t._v(" "),4===s?[t._m(2,!0)]:t._e(),t._v("\n "+t._s(e)+"\n ")],2)}),t._v(" "),0===t.arr.length?n("p",{staticClass:"next"},[n("van-icon",{attrs:{name:"arrow-down"}})],1):t._e()],2)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("img",{staticClass:"avatar",attrs:{src:"https://s3.qiufengh.com/love/WechatIMG931.jpeg",alt:""}}),this._v("\n ❤️ ❤️ ❤️ 💗 ❤️ ❤️ ❤️\n "),e("img",{staticClass:"avatar",attrs:{src:"https://s3.qiufengh.com/love/WechatIMG930.jpeg",alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("img",{staticClass:"photo",attrs:{src:"",alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("img",{staticClass:"photo",attrs:{src:"",alt:""}})])}]};var u=n("C7Lr")(l,c,!1,function(t){n("N7QA")},null,null).exports,v={mounted(){setInterval(()=>{this.countdown=Date.now().valueOf()-localStorage.getItem("love_now")},1e3)},data:()=>({countdown:0}),computed:{countdownDetail(){let t=this.countdown,e=0,n=0,s=0,r=0,a=0,o=0;return t/1e3/60/60/24/30/12>1&&(t-=1e3*(e=Math.floor(t/1e3/60/60/24/30/12))*60*60*24*30*12),t/1e3/60/60/24/30>1&&(t-=1e3*(n=Math.floor(t/1e3/60/60/24/30))*60*60*24*30),t/1e3/60/60/24>1&&(t-=1e3*(s=Math.floor(t/1e3/60/60/24))*60*60*24),t/1e3/60/60>1&&(t-=1e3*(r=Math.floor(t/1e3/60/60))*60*60),t/1e3/60>1&&(t-=1e3*(a=Math.floor(t/1e3/60))*60),t/1e3>1&&(t-=1e3*(o=Math.floor(t/1e3))),{y:e,m:n,d:s,h:r,min:a,s:o}}}},_={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"three"},[[n("p",[t._v("华益峰💗袁媛")]),t._v(" "),n("p",[t._v("已经在一起了")]),t._v(" "),n("p",[t._v("❤️❤️❤️❤️❤️❤️💗❤️❤️❤️❤️❤️❤️")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.y)+"年")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.m)+"月")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.d)+"日")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.h)+"时")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.min)+"分")]),t._v(" "),n("p",[t._v(t._s(t.countdownDetail.s)+"秒")])]],2)},staticRenderFns:[]};var h=n("C7Lr")(v,_,!1,function(t){n("0ukV")},null,null).exports,d={mounted(){},data(){const t=new Date;return{arr:["所以就在今天小华正式地向你表白","👨","他喜欢你","🌹",`今天是${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`,"📅","这将会是一个值得纪念的日志","😄","圆圆小盆友,你要不要考虑和小华在一起?","⭕️","请选择"],count:0}},methods:{handleError(){const t=document.querySelector(".btn1"),e=document.querySelector(".btn2");alert("你肯定是嫌弃我不好看, 唔,不行,这个选择我不同意,超级变变变。"),e.style.display="none",t.style.left="40%"},handleRight(){this.count++;const t=document.querySelector(".btn1");if(1===this.count)alert("嘿嘿,你同意了,我怎么能这么轻易放过你,喜欢我就来追我呀。");else if(this.count<5);else if(5===this.count)alert("来追我呀,追到就是你的啦。");else if(!(this.count<10)){if(10===this.count){const t=Date.now();return alert(`恭喜你,喜提小华一只,提货码${t},请截图保存,此码独一无二,稍后进行兑换, 以后就要在你家蹭你的喝你的啦。`),alert("重新刷新页面,会有惊喜哦"),void localStorage.setItem("love_now",t)}return}t.style.top=~~(600*Math.random())+"px",t.style.left=~~(300*Math.random())+"px"}}},p={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"four"},[t._l(t.arr,function(e){return n("p",{key:e},[t._v("\n "+t._s(e)+"\n ")])}),t._v(" "),0===t.arr.length?n("p",{staticClass:"next"},[n("van-icon",{attrs:{name:"arrow-down"}})],1):t._e(),t._v(" "),n("button",{staticClass:"rsv btn1",on:{click:t.handleRight}},[t._v("💕 同意在一起")]),t._v(" "),n("button",{staticClass:"rsv btn2",on:{click:t.handleError}},[t._v("\n ❌ 我美丽你丑我们不一样\n ")])],2)},staticRenderFns:[]};var f={name:"App",components:{One:i,Two:u,Three:h,Four:n("C7Lr")(d,p,!1,function(t){n("8Cmu")},null,null).exports},data:()=>({isTime:localStorage.getItem("love_now")})},m={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[this.isTime?e("Three"):e("van-swipe",{attrs:{vertical:!0,loop:!1}},[e("van-swipe-item",[e("One")],1),this._v(" "),e("van-swipe-item",[e("Two")],1),this._v(" "),e("van-swipe-item",[e("Four")],1)],1)],1)},staticRenderFns:[]};var w=n("C7Lr")(f,m,!1,function(t){n("u+Av")},null,null).exports;n("vdop");s.a.config.productionTip=!1,s.a.use(r.c).use(r.d).use(r.b).use(r.a),new s.a({el:"#app",components:{App:w},template:""})},"u+Av":function(t,e){},vdop:function(t,e){}},["NHnr"]); +//# sourceMappingURL=app.3b1cf55ac78dd14f33d5.js.map \ No newline at end of file diff --git a/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js.map b/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js.map new file mode 100644 index 0000000..0c868a1 --- /dev/null +++ b/love-yuan/dist/static/js/app.3b1cf55ac78dd14f33d5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///src/components/one.vue","webpack:///./src/components/one.vue?c26a","webpack:///./src/components/one.vue","webpack:///src/components/two.vue","webpack:///./src/components/two.vue?61a8","webpack:///./src/components/two.vue","webpack:///src/components/three.vue","webpack:///./src/components/three.vue?a28e","webpack:///./src/components/three.vue","webpack:///src/components/four.vue","webpack:///./src/components/four.vue?0aa7","webpack:///./src/components/four.vue","webpack:///src/App.vue","webpack:///./src/App.vue?95bd","webpack:///./src/App.vue","webpack:///./src/main.js"],"names":["one","[object Object]","setInterval","item","this","arr","shift","texts","push","date","Date","getFullYear","getMonth","getDate","components_one","render","_vm","_h","$createElement","_c","_self","staticClass","_l","text","key","_v","_s","length","attrs","name","_e","staticRenderFns","src_components_one","__webpack_require__","normalizeComponent","ssrContext","two","methods","components_two","on","click","add","idx","_m","src","alt","src_components_two","two_normalizeComponent","three","countdown","now","valueOf","localStorage","getItem","data","computed","ct","y","m","d","h","min","s","Math","floor","components_three","countdownDetail","src_components_three","three_normalizeComponent","four","count","btn1","document","querySelector","btn2","alert","style","display","left","time","setItem","top","random","components_four","handleRight","handleError","App","components","One","Two","Three","Four","four_normalizeComponent","isTime","selectortype_template_index_0_src_App","id","vertical","loop","src_App","App_normalizeComponent","Vue","config","productionTip","use","Swipe","SwipeItem","Icon","Button","el","template"],"mappings":"uOAaAA,GACAC,UACAC,YAAA,KACA,MAAAC,EAAAC,KAAAC,IAAAC,QACAH,GAAAC,KAAAG,MAAAC,KAAAL,IACA,MAEAF,OACA,MAAAQ,EAAA,IAAAC,KACA,OACAL,KACA,KACA,KACA,UACA,KACA,aACA,WACAI,EAAAE,iBAAAF,EAAAG,WAAA,KAAAH,EAAAI,YACA,KACA,kBACA,KACA,wBACA,IACA,8BACA,OAGAN,YCrCeO,GADEC,OAFjB,WAA0B,IAAAC,EAAAZ,KAAaa,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,QAAkBL,EAAAM,GAAAN,EAAA,eAAAO,GAAoC,OAAAJ,EAAA,KAAeK,IAAAD,IAASP,EAAAS,GAAA,SAAAT,EAAAU,GAAAH,GAAA,YAAyCP,EAAAS,GAAA,SAAAT,EAAAX,IAAAsB,OAAAR,EAAA,KAA6CE,YAAA,SAAmBF,EAAA,YAAiBS,OAAOC,KAAA,iBAAqB,GAAAb,EAAAc,MAAA,IAE7TC,oBCCjB,IAuBeC,EAvBUC,EAAQ,OAcjCC,CACElC,EACAc,GATF,EAVA,SAAAqB,GACEF,EAAQ,SAaV,KAEA,MAUgC,QCchCG,GACAnC,OACA,IAAAS,KACA,OACAL,KACA,wBACA,KACA,0BACA,KACA,qBACA,KACA,iBACA,KACA,6BACA,KACA,mBACA,KACA,aACA,KACA,sBACA,KACA,WAEAE,WAGA8B,SACApC,MACA,MAAAE,EAAAC,KAAAC,IAAAC,QACAH,GAAAC,KAAAG,MAAAC,KAAAL,MClEemC,GADEvB,OAFP,WAAgB,IAAAC,EAAAZ,KAAaa,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,QAAkBF,EAAA,KAAAH,EAAAS,GAAA,uBAAAT,EAAAS,GAAA,KAAAN,EAAA,KAA4DE,YAAA,QAAAkB,IAAwBC,MAAAxB,EAAAyB,OAAiBzB,EAAAS,GAAA,QAAAT,EAAAS,GAAA,KAAAT,EAAAM,GAAAN,EAAA,eAAAO,EAAAmB,GAAmE,OAAAvB,EAAA,KAAeK,IAAAD,IAAS,IAAAmB,GAAA1B,EAAA2B,GAAA,OAAA3B,EAAAc,KAAAd,EAAAS,GAAA,SAAAiB,GAAA1B,EAAA2B,GAAA,OAAA3B,EAAAc,KAAAd,EAAAS,GAAA,SAAAiB,GAAA1B,EAAA2B,GAAA,OAAA3B,EAAAc,KAAAd,EAAAS,GAAA,SAAAT,EAAAU,GAAAH,GAAA,cAAqLP,EAAAS,GAAA,SAAAT,EAAAX,IAAAsB,OAAAR,EAAA,KAA6CE,YAAA,SAAmBF,EAAA,YAAiBS,OAAOC,KAAA,iBAAqB,GAAAb,EAAAc,MAAA,IAE9jBC,iBADb,WAAiB,IAAad,EAAbb,KAAac,eAA0BC,EAAvCf,KAAuCgB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAAA,EAAA,OAA2BE,YAAA,SAAAO,OAA4BgB,IAAA,iDAAAC,IAAA,MAAtHzC,KAAuLqB,GAAA,4CAAAN,EAAA,OAA+DE,YAAA,SAAAO,OAA4BgB,IAAA,iDAAAC,IAAA,SAAqE,WAAc,IAAa5B,EAAbb,KAAac,eAA0BC,EAAvCf,KAAuCgB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAAA,EAAA,OAA2BE,YAAA,QAAAO,OAA2BgB,IAAA,GAAAC,IAAA,SAAuB,WAAc,IAAa5B,EAAbb,KAAac,eAA0BC,EAAvCf,KAAuCgB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAAA,EAAA,OAA2BE,YAAA,QAAAO,OAA2BgB,IAAA,GAAAC,IAAA,WCExpB,IAuBeC,EAvBUb,EAAQ,OAcjBc,CACdX,EACAE,GAT6B,EAV/B,SAAoBH,GAClBF,EAAQ,SAaS,KAEU,MAUG,QCRhCe,GACA/C,UACAC,YAAA,KACAE,KAAA6C,UAAAvC,KAAAwC,MAAAC,UAAAC,aAAAC,QAAA,aACA,MAEAC,KAAA,MAEAL,UAAA,IAGAM,UACAtD,kBACA,IAAAuD,EAAApD,KAAA6C,UACAQ,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAyBA,OAxBAN,EAAA,uBAEAA,GAAA,KADAC,EAAAM,KAAAC,MAAAR,EAAA,qBACA,gBAEAA,EAAA,oBAEAA,GAAA,KADAE,EAAAK,KAAAC,MAAAR,EAAA,kBACA,aAEAA,EAAA,iBAEAA,GAAA,KADAG,EAAAI,KAAAC,MAAAR,EAAA,eACA,UAEAA,EAAA,cAEAA,GAAA,KADAI,EAAAG,KAAAC,MAAAR,EAAA,YACA,OAEAA,EAAA,WAEAA,GAAA,KADAK,EAAAE,KAAAC,MAAAR,EAAA,SACA,IAEAA,EAAA,QAEAA,GAAA,KADAM,EAAAC,KAAAC,MAAAR,EAAA,QAGAC,IAAAC,IAAAC,IAAAC,IAAAC,MAAAC,QCtDeG,GADElD,OAFP,WAAgB,IAAAC,EAAAZ,KAAaa,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,WAAoBF,EAAA,KAAAH,EAAAS,GAAA,aAAAT,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAA,YAAAT,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAA,gCAAAT,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAT,GAAA,OAAAzC,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAR,GAAA,OAAA1C,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAP,GAAA,OAAA3C,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAN,GAAA,OAAA5C,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAL,KAAA,OAAA7C,EAAAS,GAAA,KAAAN,EAAA,KAAAH,EAAAS,GAAAT,EAAAU,GAAAV,EAAAkD,gBAAAJ,GAAA,aAE9F/B,oBCChC,IAuBeoC,EAvBUlC,EAAQ,OAcjBmC,CACdpB,EACAiB,GAT6B,EAV/B,SAAoB9B,GAClBF,EAAQ,SAaS,KAEU,MAUG,QCVhCoC,GACApE,YACAA,OACA,MAAAQ,EAAA,IAAAC,KACA,OACAL,KACA,kBACA,KACA,OACA,WACAI,EAAAE,iBAAAF,EAAAG,WAAA,KAAAH,EAAAI,YACA,KACA,gBACA,KACA,sBACA,KACA,OAEAyD,MAAA,IAGAjC,SACApC,cACA,MAAAsE,EAAAC,SAAAC,cAAA,SACAC,EAAAF,SAAAC,cAAA,SACAE,MAAA,oCACAD,EAAAE,MAAAC,QAAA,OACAN,EAAAK,MAAAE,KAAA,OAEA7E,cACAG,KAAAkE,QACA,MAAAC,EAAAC,SAAAC,cAAA,SAGA,OAAArE,KAAAkE,MACAK,MAAA,sCACA,GAAAvE,KAAAkE,MAAA,QACA,OAAAlE,KAAAkE,MACAK,MAAA,sBACA,KAAAvE,KAAAkE,MAAA,IACA,SAAAlE,KAAAkE,MAAA,CACA,MAAAS,EAAArE,KAAAwC,MAMA,OALAyB,uBACAI,0CAEAJ,MAAA,qBACAvB,aAAA4B,QAAA,WAAAD,GAGA,OAEAR,EAAAK,MAAAK,OAlBA,IAkBAlB,KAAAmB,UAAA,KACAX,EAAAK,MAAAE,QApBA,IAoBAf,KAAAmB,UAAA,QCjEeC,GADEpE,OAFP,WAAgB,IAAAC,EAAAZ,KAAaa,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,SAAmBL,EAAAM,GAAAN,EAAA,aAAAO,GAAkC,OAAAJ,EAAA,KAAeK,IAAAD,IAASP,EAAAS,GAAA,SAAAT,EAAAU,GAAAH,GAAA,YAAyCP,EAAAS,GAAA,SAAAT,EAAAX,IAAAsB,OAAAR,EAAA,KAA6CE,YAAA,SAAmBF,EAAA,YAAiBS,OAAOC,KAAA,iBAAqB,GAAAb,EAAAc,KAAAd,EAAAS,GAAA,KAAAN,EAAA,UAAwCE,YAAA,WAAAkB,IAA2BC,MAAAxB,EAAAoE,eAAyBpE,EAAAS,GAAA,cAAAT,EAAAS,GAAA,KAAAN,EAAA,UAAgDE,YAAA,WAAAkB,IAA2BC,MAAAxB,EAAAqE,eAAyBrE,EAAAS,GAAA,iCAE7eM,oBCChC,ICoBAuD,GACAzD,KAAA,MACA0D,YACIC,IAAAxD,EACAyD,IAAA3C,EACA4C,MAAAvB,EACAwB,KD1BqB1D,EAAQ,OAcjB2D,CACdvB,EACAc,GAT6B,EAV/B,SAAoBhD,GAClBF,EAAQ,SAaS,KAEU,MAUG,SCKhCqB,KAAA,MAEAuC,OAAAzC,aAAAC,QAAA,eC9BeyC,GADE/E,OAFP,WAAgB,IAAaE,EAAbb,KAAac,eAA0BC,EAAvCf,KAAuCgB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBS,OAAOmE,GAAA,SAAvF3F,KAAmG,OAAAe,EAAA,SAAAA,EAAA,aAA2CS,OAAOoE,UAAA,EAAAC,MAAA,KAA8B9E,EAAA,kBAAAA,EAAA,WAAnLf,KAAmLqB,GAAA,KAAAN,EAAA,kBAAAA,EAAA,WAAnLf,KAAmLqB,GAAA,KAAAN,EAAA,kBAAAA,EAAA,qBAE7KY,oBCChC,IAuBemE,EAvBUjE,EAAQ,OAcjBkE,CACdb,EACAQ,GAT6B,EAV/B,SAAoB3D,GAClBF,EAAQ,SAaS,KAEU,MAUG,kBCfhCmE,IAAIC,OAAOC,eAAgB,EAG3BF,IAAIG,IAAIC,KAAOD,IAAIE,KAAWF,IAAIG,KAAMH,IAAII,KAG5C,IAAIP,KACFQ,GAAI,OACJrB,YAAcD,OACduB,SAAU","file":"static/js/app.3b1cf55ac78dd14f33d5.js","sourcesContent":["\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/one.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"one\"},[_vm._l((_vm.texts),function(text){return _c('p',{key:text},[_vm._v(\"\\n \"+_vm._s(text)+\"\\n \")])}),_vm._v(\" \"),(_vm.arr.length === 0)?_c('p',{staticClass:\"next\"},[_c('van-icon',{attrs:{\"name\":\"arrow-down\"}})],1):_vm._e()],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-148a9534\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/one.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true,\\\"importLoader\\\":5}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-148a9534\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!px2rem-loader?{\\\"emUnit\\\":75}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./one.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./one.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./one.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-148a9534\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./one.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/one.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/two.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"two\"},[_c('p',[_vm._v(\"不断点击这个小爱心 你即将拥有好运\")]),_vm._v(\" \"),_c('p',{staticClass:\"lover\",on:{\"click\":_vm.add}},[_vm._v(\"💗\")]),_vm._v(\" \"),_vm._l((_vm.texts),function(text,idx){return _c('p',{key:text},[(idx === 1)?[_vm._m(0,true)]:_vm._e(),_vm._v(\" \"),(idx === 3)?[_vm._m(1,true)]:_vm._e(),_vm._v(\" \"),(idx === 4)?[_vm._m(2,true)]:_vm._e(),_vm._v(\"\\n \"+_vm._s(text)+\"\\n \")],2)}),_vm._v(\" \"),(_vm.arr.length === 0)?_c('p',{staticClass:\"next\"},[_c('van-icon',{attrs:{\"name\":\"arrow-down\"}})],1):_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{staticClass:\"avatar\",attrs:{\"src\":\"https://s3.qiufengh.com/love/WechatIMG931.jpeg\",\"alt\":\"\"}}),_vm._v(\"\\n ❤️ ❤️ ❤️ 💗 ❤️ ❤️ ❤️\\n \"),_c('img',{staticClass:\"avatar\",attrs:{\"src\":\"https://s3.qiufengh.com/love/WechatIMG930.jpeg\",\"alt\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{staticClass:\"photo\",attrs:{\"src\":\"\",\"alt\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{staticClass:\"photo\",attrs:{\"src\":\"\",\"alt\":\"\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-00b191f9\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/two.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true,\\\"importLoader\\\":5}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-00b191f9\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!px2rem-loader?{\\\"emUnit\\\":75}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./two.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./two.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./two.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-00b191f9\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./two.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/two.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/three.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"three\"},[[_c('p',[_vm._v(\"华益峰💗袁媛\")]),_vm._v(\" \"),_c('p',[_vm._v(\"已经在一起了\")]),_vm._v(\" \"),_c('p',[_vm._v(\"❤️❤️❤️❤️❤️❤️💗❤️❤️❤️❤️❤️❤️\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.y)+\"年\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.m)+\"月\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.d)+\"日\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.h)+\"时\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.min)+\"分\")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.countdownDetail.s)+\"秒\")])]],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-68b81df7\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/three.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true,\\\"importLoader\\\":5}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-68b81df7\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!px2rem-loader?{\\\"emUnit\\\":75}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./three.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./three.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./three.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-68b81df7\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./three.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/three.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/four.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"four\"},[_vm._l((_vm.arr),function(text){return _c('p',{key:text},[_vm._v(\"\\n \"+_vm._s(text)+\"\\n \")])}),_vm._v(\" \"),(_vm.arr.length === 0)?_c('p',{staticClass:\"next\"},[_c('van-icon',{attrs:{\"name\":\"arrow-down\"}})],1):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"rsv btn1\",on:{\"click\":_vm.handleRight}},[_vm._v(\"💕 同意在一起\")]),_vm._v(\" \"),_c('button',{staticClass:\"rsv btn2\",on:{\"click\":_vm.handleError}},[_vm._v(\"\\n ❌ 我美丽你丑我们不一样\\n \")])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-7afe8fb2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/four.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true,\\\"importLoader\\\":5}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7afe8fb2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!px2rem-loader?{\\\"emUnit\\\":75}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./four.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./four.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./four.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7afe8fb2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./four.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/four.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.isTime)?_c('Three'):_c('van-swipe',{attrs:{\"vertical\":true,\"loop\":false}},[_c('van-swipe-item',[_c('One')],1),_vm._v(\" \"),_c('van-swipe-item',[_c('Two')],1),_vm._v(\" \"),_c('van-swipe-item',[_c('Four')],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-90ed7b00\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true,\\\"importLoader\\\":5}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-90ed7b00\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!px2rem-loader?{\\\"emUnit\\\":75}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-90ed7b00\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\n\nimport 'lib-flexible/flexible.js'\nimport { Swipe, SwipeItem, Icon, Button} from 'vant'\n\nimport App from './App'\nimport './reset.css';\n\n\nVue.config.productionTip = false\n\n\nVue.use(Swipe).use(SwipeItem).use(Icon).use(Button);\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n components: { App },\n template: ''\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""} \ No newline at end of file diff --git a/love-yuan/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js b/love-yuan/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js new file mode 100644 index 0000000..1acd401 --- /dev/null +++ b/love-yuan/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js @@ -0,0 +1,2 @@ +!function(r){var n=window.webpackJsonp;window.webpackJsonp=function(e,u,c){for(var f,i,p,a=0,l=[];a2?n-2:0),r=2;rn&&e>p?"horizontal":n>e&&n>p?"vertical":"")},resetTouchStatus:function(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0}}},m=!1;if(!s.h)try{var g={};Object.defineProperty(g,"passive",{get:function(){m=!0}}),window.addEventListener("test-passive",null,g)}catch(t){}function y(t,e,n,i){void 0===i&&(i=!1),s.h||t.addEventListener(e,n,!!m&&{capture:!1,passive:i})}function b(t,e,n){s.h||t.removeEventListener(e,n)}function k(t){t.stopPropagation()}function x(t,e){("boolean"!=typeof t.cancelable||t.cancelable)&&t.preventDefault(),e&&k(t)}var S=Object(s.k)("overlay"),w=S[0],C=S[1];function $(t,e,n,r){var s=i({zIndex:e.zIndex},e.customStyle);return t("transition",{attrs:{name:"van-fade"}},[t("div",o()([{directives:[{name:"show",value:e.visible}],style:s,class:[C(),e.className],on:{touchmove:function(t){x(t,!0)}}},l(r,!0)]))])}$.props={zIndex:Number,className:null,visible:Boolean,customStyle:Object};var _,O=w($),T={className:"",customStyle:{}};function A(){if(f.top){var t=f.top.vm;t.$emit("click-overlay"),t.closeOnClickOverlay&&(t.onClickOverlay?t.onClickOverlay():t.close())}}function j(){if(_||(_=h(O,{on:{click:A}})),f.top){var t=f.top,e=t.vm,n=t.config,r=e.$el,o=r&&r.parentNode?r.parentNode:document.body;o&&o.appendChild(_.$el),i(_,T,n,{visible:!0})}else _.visible=!1}function I(t){var e=f.stack;e.length&&(f.top.vm===t?(e.pop(),j()):f.stack=e.filter(function(e){return e.vm!==t}))}function B(t,e){void 0===e&&(e=window);for(var n=t;n&&"HTML"!==n.tagName&&"BODY"!==n.tagName&&1===n.nodeType&&n!==e;){var i=window.getComputedStyle(n).overflowY;if("scroll"===i||"auto"===i)return n;n=n.parentNode}return e}function E(t){return"scrollTop"in t?t.scrollTop:t.pageYOffset}function N(t){return(t===window?0:t.getBoundingClientRect().top)+E(window)}function L(t){return t===window?t.innerHeight:t.getBoundingClientRect().height}var D={mixins:[v],props:{value:Boolean,overlay:Boolean,overlayStyle:Object,overlayClass:String,closeOnClickOverlay:Boolean,zIndex:[String,Number],getContainer:[String,Function],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)},getContainer:function(){this.move()},overlay:function(){this.renderOverlay()}},mounted:function(){this.getContainer&&this.move(),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&&(f.zIndex=this.zIndex),this.opened=!0,this.renderOverlay(),this.lockScroll&&(y(document,"touchstart",this.touchStart),y(document,"touchmove",this.onTouchMove),f.lockCount||document.body.classList.add("van-overflow-hidden"),f.lockCount++))},close:function(){this.opened&&(this.lockScroll&&(f.lockCount--,b(document,"touchstart",this.touchStart),b(document,"touchmove",this.onTouchMove),f.lockCount||document.body.classList.remove("van-overflow-hidden")),this.opened=!1,I(this),this.$emit("input",!1))},move:function(){var t,e=this.getContainer;e?t="string"==typeof e?document.querySelector(e):e():this.$parent&&(t=this.$parent.$el),t&&t!==this.$el.parentNode&&t.appendChild(this.$el),this.overlay&&j()},onTouchMove:function(t){this.touchMove(t);var e=this.deltaY>0?"10":"01",n=B(t.target,this.$el),i=n.scrollHeight,r=n.offsetHeight,o=n.scrollTop,s="11";0===o?s=r>=i?"00":"01":o+r>=i&&(s="10"),"11"===s||"vertical"!==this.direction||parseInt(s,2)&parseInt(e,2)||x(t,!0)},renderOverlay:function(){var t,e;!this.$isServer&&this.value&&(this.overlay?(t=this,e={zIndex:f.zIndex++,className:this.overlayClass,customStyle:this.overlayStyle},f.stack.some(function(e){return e.vm===t})||(f.stack.push({vm:t,config:e}),j())):I(this),this.updateZIndex())},updateZIndex:function(){var t=this;this.$nextTick(function(){t.$el.style.zIndex=f.zIndex++})}}},F=Object(s.k)("info"),M=F[0],z=F[1];function P(t,e,n,i){if(Object(s.d)(e.info)&&""!==e.info)return t("div",o()([{class:z()},l(i,!0)]),[e.info])}P.props={info:[String,Number]};var V=M(P),R=Object(s.k)("icon")[0];function H(t,e,n,i){var r,s=!!(r=e.name)&&-1!==r.indexOf("/");return t(e.tag,o()([{class:[e.classPrefix,s?"van-icon--image":e.classPrefix+"-"+e.name],style:{color:e.color,fontSize:e.size}},l(i,!0)]),[n.default&&n.default(),s&&t("img",{attrs:{src:e.name}}),t(V,{attrs:{info:e.info}})])}H.props={name:String,size:String,color:String,info:[String,Number],tag:{type:String,default:"i"},classPrefix:{type:String,default:"van-icon"}};var W=R(H),q=Object(s.k)("loading"),Y=q[0],U=q[1],K="#c9c9c9";function X(t,e,n,i){var r=e.color,s=e.size,a=e.type,c="white"===r||"black"===r?r:"",u={color:"black"===r?K:r,width:s,height:s},d=[];if("spinner"===a)for(var h=0;h<12;h++)d.push(t("i"));var f="circular"===a&&t("svg",{class:U("circular"),attrs:{viewBox:"25 25 50 50"}},[t("circle",{attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})]);return t("div",o()([{class:U([a,c]),style:u},l(i,!0)]),[t("span",{class:U("spinner",a)},[d,f])])}X.props={size:String,type:{type:String,default:"circular"},color:{type:String,default:K}};var Q=Y(X),J=Object(s.k)("popup"),Z=J[0],G=J[1],tt=Z({mixins:[D],props:{position:String,transition:String,overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}},render:function(t){var e,n=this;if(this.shouldRender){var i=this.position,r=function(t){return function(){return n.$emit(t)}};return t("transition",{attrs:{name:this.transition||(i?"van-popup-slide-"+i:"van-fade")},on:{afterEnter:r("opened"),afterLeave:r("closed")}},[t("div",{directives:[{name:"show",value:this.value}],class:G((e={},e[i]=i,e))},[this.slots()])])}}}),et=Object(s.k)("actionsheet"),nt=et[0],it=et[1];function rt(t,e,n,i){var r=e.title,s=e.cancelText,a=function(){d(i,"input",!1),d(i,"cancel")};return t(tt,o()([{class:it({"safe-area-inset-bottom":e.safeAreaInsetBottom}),attrs:{value:e.value,position:"bottom",overlay:e.overlay,lazyRender:e.lazyRender,getContainer:e.getContainer,closeOnClickOverlay:e.closeOnClickOverlay},on:{input:function(t){d(i,"input",t)}}},l(i)]),[r?t("div",{class:[it("header"),"van-hairline--top-bottom"]},[r,t(W,{attrs:{name:"close"},class:it("close"),on:{click:a}})]):e.actions.map(function(e,n){return t("div",{class:[it("item",{disabled:e.disabled||e.loading}),e.className,"van-hairline--top"],on:{click:function(t){t.stopPropagation(),e.disabled||e.loading||(e.callback&&e.callback(e),d(i,"select",e,n))}}},[e.loading?t(Q,{class:it("loading"),attrs:{size:"20px"}}):[t("span",{class:it("name")},[e.name]),e.subname&&t("span",{class:it("subname")},[e.subname])]])}),n.default&&t("div",{class:it("content")},[n.default()]),s&&t("div",{class:it("cancel"),on:{click:a}},[s])])}rt.props=i({},D.props,{title:String,actions:Array,cancelText:String,safeAreaInsetBottom:Boolean,overlay:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}});var ot=nt(rt);function st(t){return t=t.replace(/[^-|\d]/g,""),/^((\+86)|(86))?(1)\d{10}$/.test(t)||/^0[0-9-]{10,13}$/.test(t)}var at=n("TExJ");function ct(t){return Array.isArray(t)?t.map(function(t){return ct(t)}):"object"==typeof t?Object(at.a)({},t):t}var ut={title:String,loading:Boolean,showToolbar:Boolean,cancelButtonText:String,confirmButtonText:String,visibleItemCount:{type:Number,default:5},itemHeight:{type:Number,default:44}},lt=Object(s.k)("picker-column"),dt=lt[0],ht=lt[1],ft=dt({props:{valueKey:String,className:String,itemHeight:Number,defaultIndex:Number,initialOptions:Array,visibleItemCount:Number},data:function(){return{startY:0,offset:0,duration:0,startOffset:0,options:ct(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}},methods:{onTouchStart:function(t){this.startY=t.touches[0].clientY,this.startOffset=this.offset,this.duration=0},onTouchMove:function(t){x(t);var e=t.touches[0].clientY-this.startY;this.offset=Object(s.j)(this.startOffset+e,-this.count*this.itemHeight,this.itemHeight)},onTouchEnd:function(){if(this.offset!==this.startOffset){this.duration=200;var t=Object(s.j)(Math.round(-this.offset/this.itemHeight),0,this.count-1);this.setIndex(t,!0)}},adjustIndex:function(t){for(var e=t=Object(s.j)(t,0,this.count);e=0;n--)if(!this.isDisabled(this.options[n]))return n},isDisabled:function(t){return Object(s.g)(t)&&t.disabled},getOptionText:function(t){return Object(s.g)(t)&&this.valueKey in t?t[this.valueKey]:t},setIndex:function(t,e){t=this.adjustIndex(t)||0,this.offset=-t*this.itemHeight,t!==this.currentIndex&&(this.currentIndex=t,e&&this.$emit("change",t))},setValue:function(t){for(var e=this.options,n=0;nn&&(e=e.slice(0,n),t.value=e),e},onInput:function(t){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),Object(s.e)()&&window.scrollTo(0,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0)},onClickLeftIcon:function(){this.$emit("click-left-icon")},onClickRightIcon:function(){this.$emit("click-icon"),this.$emit("click-right-icon"),this.onIconClick&&this.onIconClick()},onClear:function(t){x(t),this.$emit("input",""),this.$emit("clear")},onKeypress:function(t){if("number"===this.type){var e=t.keyCode,n=-1===String(this.value).indexOf(".");e>=48&&e<=57||46===e&&n||45===e||x(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(s.g)(this.autosize)){var n=this.autosize,i=n.maxHeight,r=n.minHeight;i&&(e=Math.min(e,i)),r&&(e=Math.max(e,r))}e&&(t.style.height=e+"px")}},renderInput:function(){var t=this.$createElement,e={ref:"input",class:Lt("control",this.inputAlign),domProps:{value:this.value},attrs:i({},this.$attrs,{readonly:this.readonly}),on:this.listeners};return"textarea"===this.type?t("textarea",o()([{},e])):t("input",o()([{attrs:{type:this.type}},e]))},renderLeftIcon:function(){var t=this.$createElement;if(this.slots("left-icon")||this.leftIcon)return t("div",{class:Lt("left-icon"),on:{click:this.onClickLeftIcon}},[this.slots("left-icon")||t(W,{attrs:{name:this.leftIcon}})])},renderRightIcon:function(){var t=this.$createElement,e=this.slots;if(e("right-icon")||e("icon")||this.rightIcon||this.icon)return t("div",{class:Lt("right-icon"),on:{click:this.onClickRightIcon}},[e("right-icon")||e("icon")||t(W,{attrs:{name:this.rightIcon||this.icon}})])}},render:function(t){var e,n=this.slots,i=this.labelAlign,r={icon:this.renderLeftIcon};return n("label")&&(r.title=function(){return n("label")}),t(It,{attrs:{icon:this.leftIcon,size:this.size,title:this.label,center:this.center,border:this.border,isLink:this.isLink,required:this.required,titleStyle:this.labelStyle,titleClass:Lt("label",i)},class:Lt((e={error:this.error,disabled:this.$attrs.disabled},e["label-"+i]=i,e["min-height"]="textarea"===this.type&&!this.autosize,e)),scopedSlots:r},[t("div",{class:Lt("body")},[this.renderInput(),this.showClear&&t(W,{attrs:{name:"clear"},class:Lt("clear"),on:{touchstart:this.onClear}}),this.renderRightIcon(),n("button")&&t("div",{class:Lt("button")},[n("button")])]),this.errorMessage&&t("div",{class:Lt("error-message",this.errorMessageAlign)},[this.errorMessage])])}}),Ft=Object(s.k)("toast"),Mt=Ft[0],zt=Ft[1],Pt=["success","fail","loading"],Vt=Mt({mixins:[D],props:{className:null,forbidClick:Boolean,message:[String,Number],type:{type:String,default:"text"},loadingType:{type:String,default:"circular"},position:{type:String,default:"middle"},lockScroll:{type:Boolean,default:!1}},data:function(){return{clickable:!1}},mounted:function(){this.toggleClickale()},destroyed:function(){this.toggleClickale()},watch:{value:function(){this.toggleClickale()},forbidClick:function(){this.toggleClickale()}},methods:{toggleClickale: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")}}},render:function(t){var e=this,n=this.type,i=this.message,r=-1!==Pt.indexOf(n)?"default":n;return t("transition",{attrs:{name:"van-fade"}},[t("div",{directives:[{name:"show",value:this.value}],class:[zt([r,this.position]),this.className]},[function(){switch(r){case"text":return t("div",[i]);case"html":return t("div",{domProps:{innerHTML:i}});default:return["loading"===n?t(Q,{attrs:{color:"white",type:e.loadingType}}):t(W,{class:zt("icon"),attrs:{name:n}}),Object(s.d)(i)&&t("div",{class:zt("text")},[i])]}}()])])}}),Rt={type:"text",mask:!1,value:!0,message:"",className:"",onClose:null,duration:3e3,position:"middle",forbidClick:!1,loadingType:"circular",getContainer:"body",overlayStyle:null},Ht=function(t){return Object(s.g)(t)?t:{message:t}},Wt=[],qt=!1,Yt=i({},Rt);function Ut(t){void 0===t&&(t={});var e=function(){if(s.h)return{};if(!Wt.length||qt){var t=new(a.a.extend(Vt))({el:document.createElement("div")});Wt.push(t)}return Wt[Wt.length-1]}();return e.value&&e.updateZIndex(),t=i({},Yt,Ht(t),{clear:function(){if(e.value=!1,t.onClose&&t.onClose(),qt&&!s.h){clearTimeout(e.timer),Wt=Wt.filter(function(t){return t!==e});var n=e.$el.parentNode;n&&n.removeChild(e.$el),e.$destroy()}}}),i(e,function(t){return t.overlay=t.mask,t}(t)),clearTimeout(e.timer),t.duration>0&&(e.timer=setTimeout(function(){e.clear()},t.duration)),e}["loading","success","fail"].forEach(function(t){var e;Ut[t]=(e=t,function(t){return Ut(i({type:e},Ht(t)))})}),Ut.clear=function(t){Wt.length&&(t?(Wt.forEach(function(t){t.clear()}),Wt=[]):qt?Wt.shift().clear():Wt[0].clear())},Ut.setDefaultOptions=function(t){i(Yt,t)},Ut.resetDefaultOptions=function(){Yt=i({},Rt)},Ut.allowMultiple=function(t){void 0===t&&(t=!0),qt=t},Ut.install=function(){a.a.use(Vt)},a.a.prototype.$toast=Ut;var Kt=Ut,Xt=Object(s.k)("button"),Qt=Xt[0],Jt=Xt[1];function Zt(t,e,n,i){var r=e.tag,s=e.type,a=e.disabled,c=e.loading,u=e.hairline,h=e.loadingText,f=[Jt([s,e.size,{loading:c,disabled:a,hairline:u,block:e.block,plain:e.plain,round:e.round,square:e.square,"bottom-action":e.bottomAction}]),{"van-hairline--surround":u}];return t(r,o()([{class:f,attrs:{type:e.nativeType,disabled:a},on:{click:function(t){c||a||(d(i,"click",t),$t(i))},touchstart:function(t){d(i,"touchstart",t)}}},l(i)]),[c?[t(Q,{attrs:{size:e.loadingSize,color:"default"===s?void 0:""}}),h&&t("span",{class:Jt("loading-text")},[h])]:t("span",{class:Jt("text")},[n.default?n.default():e.text])])}Zt.props=i({},_t,{text:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,nativeType:String,loadingText:String,bottomAction:Boolean,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},loadingSize:{type:String,default:"20px"}});var Gt,te=Qt(Zt),ee=Object(s.k)("dialog"),ne=ee[0],ie=ee[1],re=ee[2],oe=ne({mixins:[D],props:{title:String,message:String,className:null,callback:Function,beforeClose:Function,messageAlign:String,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showCancelButton:Boolean,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(n){!1!==n&&e.onClose(t),e.loading[t]=!1})):this.onClose(t)},onClose:function(t){this.close(),this.callback&&this.callback(t)}},render:function(t){var e,n=this;if(this.shouldRender){var i=this.title,r=this.message,o=this.messageAlign,s=this.slots(),a=i&&t("div",{class:ie("header",{isolated:!r&&!s})},[i]),c=(s||r)&&t("div",{class:ie("content")},[s||t("div",{domProps:{innerHTML:r},class:ie("message",(e={"has-title":i},e[o]=o,e))})]),u=this.showCancelButton&&this.showConfirmButton,l=t("div",{class:["van-hairline--top",ie("footer",{buttons:u})]},[this.showCancelButton&&t(te,{attrs:{size:"large",loading:this.loading.cancel,text:this.cancelButtonText||re("cancel")},class:ie("cancel"),style:{color:this.cancelButtonColor},on:{click:function(){n.handleAction("cancel")}}}),this.showConfirmButton&&t(te,{attrs:{size:"large",loading:this.loading.confirm,text:this.confirmButtonText||re("confirm")},class:[ie("confirm"),{"van-hairline--left":u}],style:{color:this.confirmButtonColor},on:{click:function(){n.handleAction("confirm")}}})]);return t("transition",{attrs:{name:"van-dialog-bounce"}},[t("div",{directives:[{name:"show",value:this.value}],class:[ie(),this.className]},[a,c,l])])}}});function se(t){return s.h?Promise.resolve():new Promise(function(e,n){Gt&&Object(s.f)(Gt.$el)||(Gt&&Gt.$destroy(),(Gt=new(a.a.extend(oe))({el:document.createElement("div"),propsData:{lazyRender:!1}})).$on("input",function(t){Gt.value=t})),i(Gt,se.currentOptions,t,{resolve:e,reject:n})})}se.defaultOptions={value:!0,title:"",message:"",overlay:!0,className:"",lockScroll:!0,beforeClose:null,messageAlign:"",getContainer:"body",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnClickOverlay:!1,callback:function(t){Gt["confirm"===t?"resolve":"reject"](t)}},se.alert=se,se.confirm=function(t){return se(i({showCancelButton:!0},t))},se.close=function(){Gt&&(Gt.value=!1)},se.setDefaultOptions=function(t){i(se.currentOptions,t)},se.resetDefaultOptions=function(){se.currentOptions=i({},se.defaultOptions)},se.resetDefaultOptions(),se.install=function(){a.a.use(oe)},a.a.prototype.$dialog=se;var ae=se,ce=Object(s.k)("address-edit-detail"),ue=ce[0],le=ce[1],de=ce[2],he=Object(s.c)(),fe=ue({props:{value:String,error:Boolean,focused:Boolean,detailRows:Number,searchResult:Array,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()},renderFinish:function(){var t=this.$createElement;if(this.value&&this.focused&&he)return t("div",{class:le("finish"),on:{click:this.onFinish}},[de("complete")])},renderSearchResult:function(){var t=this,e=this.$createElement,n=this.searchResult;if(this.focused&&n&&this.showSearchResult)return n.map(function(n){return e(It,{key:n.name+n.address,attrs:{title:n.name,label:n.address,icon:"location-o",clickable:!0},on:{click:function(){t.onSelect(n)}}})})}},render:function(t){return t(It,{class:le()},[t(Dt,{attrs:{autosize:!0,rows:this.detailRows,clearable:!he,type:"textarea",maxlength:"200",value:this.value,error:this.error,label:de("label"),placeholder:de("placeholder")},ref:"field",scopedSlots:{icon:this.renderFinish},on:i({},this.$listeners)}),this.renderSearchResult()])}}),pe={value:null,loading:Boolean,disabled:Boolean,activeColor:String,inactiveColor:String,activeValue:{type:null,default:!0},inactiveValue:{type:null,default:!1},size:{type:String,default:"30px"}},ve=Object(s.k)("switch"),me=ve[0],ge=ve[1];function ye(t,e,n,i){var r=e.value,s=e.loading,a=e.disabled,c=e.activeValue,u=e.inactiveValue,h=r===c,f={fontSize:e.size,backgroundColor:h?e.activeColor:e.inactiveColor};return t("div",o()([{class:ge({on:h,disabled:a}),style:f,on:{click:function(){if(!a&&!s){var t=h?u:c;d(i,"input",t),d(i,"change",t)}}}},l(i)]),[t("div",{class:ge("node")},[s&&t(Q,{class:ge("loading")})])])}ye.props=pe;var be=me(ye),ke=Object(s.k)("switch-cell"),xe=ke[0],Se=ke[1];function we(t,e,n,r){return t(It,o()([{attrs:{center:!0,title:e.title,border:e.border},class:Se()},l(r)]),[t(be,{props:i({},e),on:i({},r.listeners)})])}we.props=i({},pe,{title:String,border:Boolean,size:{type:String,default:"24px"}});var Ce=xe(we),$e=Object(s.k)("address-edit"),_e=$e[0],Oe=$e[1],Te=$e[2],Ae={name:"",tel:"",country:"",province:"",city:"",county:"",areaCode:"",postalCode:"",addressDetail:"",isDefault:!1},je=_e({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},addressInfo:{type:Object,default:function(){return i({},Ae)}},telValidator:{type:Function,default:st},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(s.g)(this.areaList)&&Object.keys(this.areaList).length},areaText:function(){var t=this.data,e=t.country,n=t.province,i=t.city,r=t.county;if(t.areaCode){var o=[e,n,i,r];return n&&n===i&&o.splice(1,1),o.filter(function(t){return t}).join("/")}return""}},watch:{addressInfo:{handler:function(t){this.data=i({},Ae,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.some(function(t){return!t.code})?Kt(Te("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,i(this.data,e)}},onSave:function(){var t=this,e=["name","tel","areaCode","addressDetail"];this.showPostal&&e.push("postalCode"),e.every(function(e){var n=t.getErrorMessage(e);return n&&(t.errorInfo[e]=!0,Kt(n)),!n})&&!this.isSaving&&this.$emit("save",this.data)},getErrorMessage:function(t){var e=String(this.data[t]||"").trim();if(this.validator){var n=this.validator(t,e);if(n)return n}switch(t){case"name":return e?"":Te("nameEmpty");case"tel":return this.telValidator(e)?"":Te("telInvalid");case"areaCode":return e?"":Te("areaEmpty");case"addressDetail":return e?"":Te("addressEmpty");case"postalCode":return e&&!/^\d{6}$/.test(e)?Te("postalEmpty"):""}},onDelete:function(){var t=this;ae.confirm({title:Te("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(t){var e=this,n=this.data,i=this.errorInfo,r=function(t){return function(){return e.onFocus(t)}},o=this.searchResult.length&&this.detailFocused;return t("div",{class:Oe()},[t(Dt,{attrs:{clearable:!0,label:Te("name"),placeholder:Te("namePlaceholder"),error:i.name},on:{focus:r("name")},model:{value:n.name,callback:function(t){n.name=t}}}),t(Dt,{attrs:{clearable:!0,type:"tel",label:Te("tel"),placeholder:Te("telPlaceholder"),error:i.tel},on:{focus:r("tel")},model:{value:n.tel,callback:function(t){n.tel=t}}}),t(Dt,{directives:[{name:"show",value:this.showArea}],attrs:{readonly:!0,label:Te("area"),placeholder:Te("areaPlaceholder"),value:this.areaText},on:{click:function(){e.showAreaPopup=!0}}}),t(fe,{directives:[{name:"show",value:this.showDetail}],attrs:{focused:this.detailFocused,value:n.addressDetail,error:i.addressDetail,detailRows:this.detailRows,searchResult:this.searchResult,showSearchResult:this.showSearchResult},on:{focus:r("addressDetail"),blur:this.onDetailBlur,input:this.onChangeDetail,"select-search":function(t){e.$emit("select-search",t)}}}),this.showPostal&&t(Dt,{directives:[{name:"show",value:!o}],attrs:{type:"tel",maxlength:"6",label:Te("postal"),placeholder:Te("postal"),error:i.postalCode},on:{focus:r("postalCode")},model:{value:n.postalCode,callback:function(t){n.postalCode=t}}}),this.slots(),this.showSetDefault&&t(Ce,{directives:[{name:"show",value:!o}],attrs:{title:Te("defaultAddress")},on:{change:function(t){e.$emit("change-default",t)}},model:{value:n.isDefault,callback:function(t){n.isDefault=t}}}),t("div",{directives:[{name:"show",value:!o}],class:Oe("buttons")},[t(te,{attrs:{block:!0,loading:this.isSaving,type:"danger",text:this.saveButtonText||Te("save")},on:{click:this.onSave}}),this.showDelete&&t(te,{attrs:{block:!0,loading:this.isDeleting,text:this.deleteButtonText||Te("delete")},on:{click:this.onDelete}})]),t(tt,{attrs:{position:"bottom",lazyRender:!1,getContainer:"body"},model:{value:e.showAreaPopup,callback:function(t){e.showAreaPopup=t}}},[t(St,{ref:"area",attrs:{loading:!this.areaListLoaded,value:n.areaCode,areaList:this.areaList,columnsPlaceholder:this.areaColumnsPlaceholder},on:{confirm:this.onAreaConfirm,cancel:function(){e.showAreaPopup=!1}}})])])}}),Ie=Object(s.k)("radio-group"),Be=Ie[0],Ee=Ie[1],Ne=Be({props:{value:null,disabled:Boolean},watch:{value:function(t){this.$emit("change",t)}},render:function(t){return t("div",{class:Ee()},[this.slots()])}}),Le={data:function(){return{parent:null}},methods:{findParent:function(t){for(var e=this.$parent;e;){if(e.$options.name===t){this.parent=e;break}e=e.$parent}}}},De=function(t,e){return{mixins:[Le],props:{name:null,value:null,disabled:Boolean,checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"},bindGroup:{type:Boolean,default:!0}},created:function(){this.bindGroup&&this.findParent(t)},computed:{isDisabled:function(){return this.parent&&this.parent.disabled||this.disabled},iconStyle:function(){var t=this.checkedColor;if(t&&this.checked&&!this.isDisabled)return{borderColor:t,backgroundColor:t}}},render:function(){var t=this,n=arguments[0],i=this.slots,r=this.checked,o=i("icon",{checked:r})||n(W,{attrs:{name:"success"},style:this.iconStyle}),s=i()&&n("span",{class:e("label",[this.labelPosition,{disabled:this.isDisabled}]),on:{click:this.onClickLabel}},[i()]);return n("div",{class:e(),on:{click:function(e){t.$emit("click",e)}}},[n("div",{class:e("icon",[this.shape,{disabled:this.isDisabled,checked:r}]),on:{click:this.onClickIcon}},[o]),s])}}},Fe=Object(s.k)("radio"),Me=(0,Fe[0])({mixins:[De("van-radio-group",Fe[1])],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:{onClickIcon:function(){this.isDisabled||(this.currentValue=this.name)},onClickLabel:function(){this.isDisabled||this.labelDisabled||(this.currentValue=this.name)}}}),ze=Object(s.k)("address-item"),Pe=ze[0],Ve=ze[1];function Re(t,e,n,i){var r=e.disabled,s=e.switchable;return t(It,o()([{class:Ve({disabled:r,unswitchable:!s}),attrs:{valueClass:Ve("value"),clickable:s&&!r},scopedSlots:{default:function(){var n=e.data,i=[t("div",{class:Ve("name")},[n.name+","+n.tel]),t("div",{class:Ve("address")},[n.address])];return s&&!r?t(Me,{attrs:{name:n.id}},[i]):i},"right-icon":function(){return t(W,{attrs:{name:"edit"},class:Ve("edit"),on:{click:function(t){t.stopPropagation(),d(i,"edit")}}})}},on:{click:function(){s&&d(i,"select")}}},l(i)]))}Re.props={data:Object,disabled:Boolean,switchable:Boolean};var He=Pe(Re),We=Object(s.k)("address-list"),qe=We[0],Ye=We[1],Ue=We[2];function Ke(t,e,n,i){var r=function(n,r){return n.map(function(n,o){return t(He,{attrs:{data:n,disabled:r,switchable:e.switchable},key:n.id,on:{select:function(){d(i,r?"select-disabled":"select",n,o)},edit:function(){d(i,r?"edit-disabled":"edit",n,o)}}})})},s=r(e.list),a=r(e.disabledList,!0);return t("div",o()([{class:Ye()},l(i)]),[n.top&&n.top(),t(Ne,{attrs:{value:e.value},on:{input:function(t){d(i,"input",t)}}},[s]),e.disabledText&&t("div",{class:Ye("disabled-text")},[e.disabledText]),a,n.default&&n.default(),t(te,{attrs:{square:!0,size:"large",type:"danger",text:e.addButtonText||Ue("add")},class:Ye("add"),on:{click:function(){d(i,"add")}}})])}Ke.props={list:Array,disabledList:Array,disabledText:String,addButtonText:String,value:[String,Number],switchable:{type:Boolean,default:!0}};var Xe=qe(Ke),Qe=Object(s.k)("badge"),Je=Qe[0],Ze=Qe[1],Ge=Je({props:{url:String,info:[String,Number],title:String},inject:["vanBadgeGroup"],created:function(){this.parent.badges.push(this)},beforeDestroy:function(){var t=this;this.parent.badges=this.parent.badges.filter(function(e){return e!==t})},computed:{parent:function(){return this.vanBadgeGroup},select:function(){return this.parent.badges.indexOf(this)===+this.parent.activeKey}},methods:{onClick:function(){var t=this.parent.badges.indexOf(this);this.$emit("click",t),this.parent.$emit("change",t)}},render:function(t){return t("a",{attrs:{href:this.url},class:[Ze({select:this.select}),"van-hairline"],on:{click:this.onClick}},[t("div",{class:Ze("text")},[this.title,t(V,{attrs:{info:this.info},class:Ze("info")})])])}}),tn=Object(s.k)("badge-group"),en=tn[0],nn=tn[1],rn=en({props:{activeKey:{type:[Number,String],default:0}},provide:function(){return{vanBadgeGroup:this}},data:function(){return{badges:[]}},render:function(t){return t("div",{class:[nn(),"van-hairline--top-bottom"]},[this.slots()])}}),on="#f44",sn="#fff",an="#969799",cn=Object(s.k)("tag"),un=cn[0],ln=cn[1],dn={danger:on,primary:"#1989fa",success:"#07c160"};function hn(t,e,n,i){var r,s=e.type,a=e.mark,c=e.plain,u=e.round,d=e.size,h=e.color||s&&dn[s]||an,f=((r={})[c?"color":"backgroundColor"]=h,r);e.textColor&&(f.color=e.textColor);var p={mark:a,plain:c,round:u};return d&&(p[d]=d),t("span",o()([{style:f,class:[ln(p),{"van-hairline--surround":c}]},l(i,!0)]),[n.default&&n.default()])}hn.props={size:String,type:String,mark:Boolean,color:String,plain:Boolean,round:Boolean,textColor:String};var fn=un(hn),pn=Object(s.k)("card"),vn=pn[0],mn=pn[1];function gn(t,e,n,i){var r=e.thumb,a=n.thumb||r,c=n.tag||e.tag,u=n.num||Object(s.d)(e.num),h=n.price||Object(s.d)(e.price),f=n["origin-price"]||Object(s.d)(e.originPrice),p=u||h||f,v=a&&t("a",{attrs:{href:e.thumbLink},class:mn("thumb"),on:{click:function(){d(i,"click-thumb")}}},[n.thumb?n.thumb():e.lazyLoad?t("img",{class:mn("img"),directives:[{name:"lazy",value:r}]}):t("img",{class:mn("img"),attrs:{src:r}}),c&&t("div",{class:mn("tag")},[n.tag?n.tag():t(fn,{attrs:{mark:!0,type:"danger"}},[e.tag])])]),m=n.title?n.title():e.title&&t("div",{class:mn("title")},[e.title]),g=n.desc?n.desc():e.desc&&t("div",{class:[mn("desc"),"van-ellipsis"]},[e.desc]),y=h&&t("div",{class:mn("price")},[n.price?n.price():e.currency+" "+e.price]),b=f&&t("div",{class:mn("origin-price")},[n["origin-price"]?n["origin-price"]():e.currency+" "+e.originPrice]),k=u&&t("div",{class:mn("num")},[n.num?n.num():"x "+e.num]),x=n.footer&&t("div",{class:mn("footer")},[n.footer()]);return t("div",o()([{class:mn()},l(i,!0)]),[t("div",{class:mn("header")},[v,t("div",{class:mn("content",{centered:e.centered})},[m,g,n.tags&&n.tags(),p&&t("div",{class:"van-card__bottom"},[y,b,k,n.bottom&&n.bottom()])])]),x])}gn.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 yn=vn(gn),bn=Object(s.k)("cell-group"),kn=bn[0],xn=bn[1];function Sn(t,e,n,i){var r=t("div",o()([{class:[xn(),{"van-hairline--top-bottom":e.border}]},l(i,!0)]),[n.default&&n.default()]);return e.title?t("div",[t("div",{class:xn("title")},[e.title]),r]):r}Sn.props={title:String,border:{type:Boolean,default:!0}};var wn=kn(Sn),Cn=Object(s.k)("checkbox"),$n=(0,Cn[0])({mixins:[De("van-checkbox-group",Cn[1])],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(){var t=this,e=!this.checked;clearTimeout(this.toggleTask),this.toggleTask=setTimeout(function(){t.checked=e})},onClickIcon:function(){this.isDisabled||this.toggle()},onClickLabel:function(){this.isDisabled||this.labelDisabled||this.toggle()},setParentValue:function(t){var e=this.parent,n=e.value.slice();if(t){if(e.max&&n.length>=e.max)return;-1===n.indexOf(this.name)&&(n.push(this.name),e.$emit("input",n))}else{var i=n.indexOf(this.name);-1!==i&&(n.splice(i,1),e.$emit("input",n))}}}}),_n=Object(s.k)("checkbox-group"),On=_n[0],Tn=_n[1],An=On({props:{max:Number,value:Array,disabled:Boolean},watch:{value:function(t){this.$emit("change",t)}},render:function(t){return t("div",{class:Tn()},[this.slots()])}}),jn=n("VsCf"),In=Object(s.k)("circle"),Bn=In[0],En=In[1],Nn="M 530 530 m -500, 0 a 500, 500 0 1, 1 1000, 0 a 500, 500 0 1, 1 -1000, 0";function Ln(t){return Math.min(Math.max(t,0),100)}var Dn=Bn({props:{text:String,value:Number,speed:Number,size:{type:String,default:"100px"},fill:{type:String,default:"none"},rate:{type:Number,default:100},layerColor:{type:String,default:sn},color:{type:String,default:"#1989fa"},strokeWidth:{type:Number,default:40},clockwise:{type:Boolean,default:!0}},computed:{style:function(){return{width:this.size,height:this.size}},layerStyle:function(){var t=3140*(100-this.value)/100;return t=this.clockwise?t:6280-t,{stroke:""+this.color,strokeDashoffset:t+"px",strokeWidth:this.strokeWidth+1+"px"}},hoverStyle:function(){return{fill:""+this.fill,stroke:""+this.layerColor,strokeWidth:this.strokeWidth+"px"}}},watch:{rate:{handler:function(){this.startTime=Date.now(),this.startRate=this.value,this.endRate=Ln(this.rate),this.increase=this.endRate>this.startRate,this.duration=Math.abs(1e3*(this.startRate-this.endRate)/this.speed),this.speed?(Object(jn.a)(this.rafId),this.rafId=Object(jn.b)(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",Ln(parseFloat(e.toFixed(1)))),(this.increase?ethis.endRate)&&(this.rafId=Object(jn.b)(this.animate))}},render:function(t){return t("div",{class:En(),style:this.style},[t("svg",{attrs:{viewBox:"0 0 1060 1060"}},[t("path",{class:En("hover"),style:this.hoverStyle,attrs:{d:Nn}}),t("path",{class:En("layer"),style:this.layerStyle,attrs:{d:Nn}})]),this.slots()||this.text&&t("div",{class:En("text")},[this.text])])}}),Fn=Object(s.k)("col"),Mn=Fn[0],zn=Fn[1],Pn=Mn({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}:{}}},render:function(t){var e,n=this.span,i=this.offset;return t(this.tag,{class:zn((e={},e[n]=n,e["offset-"+i]=i,e)),style:this.style},[this.slots()])}}),Vn=Object(s.k)("collapse"),Rn=Vn[0],Hn=Vn[1],Wn=Rn({props:{accordion:Boolean,value:[String,Number,Array],border:{type:Boolean,default:!0}},data:function(){return{items:[]}},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(t){return t("div",{class:[Hn(),{"van-hairline--top-bottom":this.border}]},[this.slots()])}}),qn=Object(s.k)("collapse-item"),Yn=qn[0],Un=qn[1],Kn=["title","icon","right-icon"],Xn=Yn({mixins:[Le],props:i({},wt,{name:[String,Number],disabled:Boolean,isLink:{type:Boolean,default:!0}}),data:function(){return{show:null,inited:null}},computed:{items:function(){return this.parent.items},index:function(){return this.items.indexOf(this)},currentName:function(){return Object(s.d)(this.name)?this.name:this.index},expanded:function(){var t=this;if(!this.parent)return null;var e=this.parent.value;return this.parent.accordion?e===this.currentName:e.some(function(e){return e===t.currentName})}},created:function(){this.findParent("van-collapse"),this.items.push(this),this.show=this.expanded,this.inited=this.expanded},destroyed:function(){this.items.splice(this.index,1)},watch:{expanded:function(t,e){var n=this;null!==e&&(t&&(this.show=!0,this.inited=!0),Object(jn.b)(function(){var e=n.$refs,i=e.content,r=e.wrapper;if(i&&r){var o=i.clientHeight;if(o){var s=o+"px";r.style.height=t?0:s,Object(jn.b)(function(){r.style.height=t?s:0})}else n.onTransitionEnd()}}))}},methods:{onClick:function(){if(!this.disabled){var t=this.parent,e=t.accordion&&this.currentName===t.value?"":this.currentName,n=!this.expanded;this.parent.switch(e,n)}},onTransitionEnd:function(){this.expanded?this.$refs.wrapper.style.height=null:this.show=!1}},render:function(t){var e=this,n=Kn.reduce(function(t,n){return e.slots(n)&&(t[n]=function(){return e.slots(n)}),t},{});this.slots("value")&&(n.default=function(){return e.slots("value")});var r=t(It,{class:Un("title",{disabled:this.disabled,expanded:this.expanded}),on:{click:this.onClick},scopedSlots:n,props:i({},this.$props)}),o=this.inited&&t("div",{directives:[{name:"show",value:this.show}],ref:"wrapper",class:Un("wrapper"),on:{transitionend:this.onTransitionEnd}},[t("div",{ref:"content",class:Un("content")},[this.slots()])]);return t("div",{class:[Un(),{"van-hairline--top":this.index}]},[r,o])}}),Qn=Object(s.k)("contact-card"),Jn=Qn[0],Zn=Qn[1],Gn=Qn[2];function ti(t,e,n,i){var r=e.type,s=e.editable;return t(It,o()([{attrs:{center:!0,border:!1,isLink:s,valueClass:Zn("value"),icon:"edit"===r?"contact":"add-square"},class:Zn([r]),on:{click:function(t){s&&d(i,"click",t)}}},l(i)]),["add"===r?e.addText||Gn("addText"):[t("div",[Gn("name")+":"+e.name]),t("div",[Gn("tel")+":"+e.tel])]])}ti.props={tel:String,name:String,addText:String,editable:{type:Boolean,default:!0},type:{type:String,default:"add"}};var ei=Jn(ti),ni=Object(s.k)("contact-edit"),ii=ni[0],ri=ni[1],oi=ni[2],si={tel:"",name:""},ai=ii({props:{isEdit:Boolean,isSaving:Boolean,isDeleting:Boolean,contactInfo:{type:Object,default:function(){return i({},si)}},telValidator:{type:Function,default:st}},data:function(){return{data:i({},si,this.contactInfo),errorInfo:{name:!1,tel:!1}}},watch:{contactInfo:function(t){this.data=i({},si,t)}},methods:{onFocus:function(t){this.errorInfo[t]=!1},getErrorMessageByKey:function(t){var e=this.data[t].trim();switch(t){case"name":return e?"":oi("nameEmpty");case"tel":return this.telValidator(e)?"":oi("telInvalid")}},onSave:function(){var t=this;["name","tel"].every(function(e){var n=t.getErrorMessageByKey(e);return n&&(t.errorInfo[e]=!0,Kt(n)),!n})&&!this.isSaving&&this.$emit("save",this.data)},onDelete:function(){var t=this;ae.confirm({message:oi("confirmDelete")}).then(function(){t.$emit("delete",t.data)})}},render:function(t){var e=this,n=this.data,i=this.errorInfo,r=function(t){return function(){return e.onFocus(t)}};return t("div",{class:ri()},[t(Dt,{attrs:{clearable:!0,maxlength:"30",label:oi("name"),placeholder:oi("nameEmpty"),error:i.name},on:{focus:r("name")},model:{value:n.name,callback:function(t){n.name=t}}}),t(Dt,{attrs:{clearable:!0,type:"tel",label:oi("tel"),placeholder:oi("telEmpty"),error:i.tel},on:{focus:r("tel")},model:{value:n.tel,callback:function(t){n.tel=t}}}),t("div",{class:ri("buttons")},[t(te,{attrs:{block:!0,type:"danger",text:oi("save"),loading:this.isSaving},on:{click:this.onSave}}),this.isEdit&&t(te,{attrs:{block:!0,text:oi("delete"),loading:this.isDeleting},on:{click:this.onDelete}})])])}}),ci=Object(s.k)("contact-list"),ui=ci[0],li=ci[1],di=ci[2];function hi(t,e,n,i){var r=e.list.map(function(e,n){var r=function(){d(i,"input",e.id),d(i,"select",e,n)};return t(It,{key:e.id,attrs:{isLink:!0,valueClass:li("item-value")},class:li("item"),scopedSlots:{default:function(){return t(Me,{attrs:{name:e.id},on:{click:r}},[t("div",{class:li("name")},[e.name+","+e.tel])])},"right-icon":function(){return t(W,{attrs:{name:"edit"},class:li("edit"),on:{click:function(t){t.stopPropagation(),d(i,"edit",e,n)}}})}},on:{click:r}})});return t("div",o()([{class:li()},l(i)]),[t(Ne,{attrs:{value:e.value},class:li("group")},[r]),t(te,{attrs:{square:!0,size:"large",type:"danger",text:e.addText||di("addText")},class:li("add"),on:{click:function(){d(i,"add")}}})])}hi.props={value:null,list:Array,addText:String};var fi=ui(hi),pi=Object(s.k)("coupon"),vi=pi[0],mi=pi[1],gi=pi[2];function yi(t){return(t<10?"0":"")+t}function bi(t){var e=new Date(1e3*t);return e.getFullYear()+"."+yi(e.getMonth()+1)+"."+yi(e.getDate())}var ki=vi({props:{coupon:Object,chosen:Boolean,disabled:Boolean,currency:{type:String,default:"¥"}},computed:{validPeriod:function(){return gi("valid")+":"+bi(this.coupon.startAt)+" - "+bi(this.coupon.endAt)},faceAmount:function(){var t,e,n=this.coupon;return n.valueDesc?n.valueDesc+""+(n.unitDesc||"")+"":n.denominations?""+this.currency+" "+((e=this.coupon.denominations)/100).toFixed(e%100==0?0:e%10==0?1:2):n.discount?gi("discount",((t=this.coupon.discount)/10).toFixed(t%10==0?0:1)):""},conditionMessage:function(){var t=this.coupon.originCondition;return 0===(t=t%100==0?Math.round(t/100):(t/100).toFixed(2))?gi("unlimited"):gi("condition",t)}},render:function(t){var e=this.coupon,n=this.disabled,i=n&&e.reason||e.description;return t("div",{class:mi({disabled:n})},[t("div",{class:mi("content")},[t("div",{class:mi("head")},[t("h2",{domProps:{innerHTML:this.faceAmount}}),t("p",[this.coupon.condition||this.conditionMessage])]),t("div",{class:mi("body")},[t("h2",[e.name]),t("p",[this.validPeriod]),this.chosen&&t($n,{attrs:{value:!0},class:mi("corner")})])]),i&&t("p",{class:mi("description")},[i])])}}),xi=Object(s.k)("coupon-cell"),Si=xi[0],wi=xi[1],Ci=xi[2];function $i(t,e,n,i){var r=e.coupons[e.chosenCoupon]?"van-coupon-cell--selected":"",s=function(t){var e=t.coupons,n=t.chosenCoupon,i=t.currency,r=e[n];return r?"-"+i+((r.denominations||r.value)/100).toFixed(2):0===e.length?Ci("tips"):Ci("count",e.length)}(e);return t(It,o()([{class:wi(),attrs:{value:s,title:e.title||Ci("title"),border:e.border,isLink:e.editable,valueClass:r}},l(i,!0)]))}$i.model={prop:"chosenCoupon"},$i.props={title:String,coupons:Array,currency:{type:String,default:"¥"},border:{type:Boolean,default:!0},editable:{type:Boolean,default:!0},chosenCoupon:{type:Number,default:-1}};var _i=Si($i),Oi=Object(s.k)("tab"),Ti=Oi[0],Ai=Oi[1],ji=Ti({mixins:[Le],props:{title:String,disabled:Boolean},data:function(){return{inited:!1}},computed:{index:function(){return this.parent.tabs.indexOf(this)},selected:function(){return this.index===this.parent.curActive}},watch:{"parent.curActive":function(){this.inited=this.inited||this.selected},title:function(){this.parent.setLine()}},created:function(){this.findParent("van-tabs")},mounted:function(){var t=this.parent.tabs,e=this.parent.slots().indexOf(this.$vnode);t.splice(-1===e?t.length:e,0,this),this.slots("title")&&this.parent.renderTitle(this.$refs.title,this.index)},beforeDestroy:function(){this.parent.tabs.splice(this.index,1)},render:function(t){var e=this.slots,n=this.inited||!this.parent.lazyRender;return t("div",{directives:[{name:"show",value:this.selected||this.parent.animated}],class:Ai("pane")},[n?e():t(),e("title")&&t("div",{ref:"title"},[e("title")])])}}),Ii=Object(s.k)("tabs"),Bi=Ii[0],Ei=Ii[1],Ni=Object(s.k)("tab")[1],Li=Bi({mixins:[v],model:{prop:"active"},props:{color:String,sticky:Boolean,animated:Boolean,offsetTop:Number,swipeable:Boolean,background:String,titleActiveColor:String,titleInactiveColor:String,ellipsis:{type:Boolean,default:!0},lazyRender:{type:Boolean,default:!0},lineWidth:{type:Number,default:null},lineHeight:{type:Number,default:null},active:{type:[Number,String],default:0},type:{type:String,default:"line"},duration:{type:Number,default:.3},swipeThreshold:{type:Number,default:4}},data:function(){return{tabs:[],position:"",curActive:null,lineStyle:{backgroundColor:this.color},events:{resize:!1,sticky:!1,swipeable:!1}}},computed:{scrollable:function(){return this.tabs.length>this.swipeThreshold||!this.ellipsis},wrapStyle:function(){switch(this.position){case"top":return{top:this.offsetTop+"px",position:"fixed"};case"bottom":return{top:"auto",bottom:0};default:return null}},navStyle:function(){return{borderColor:this.color,background:this.background}},trackStyle:function(){if(this.animated)return{left:-1*this.curActive*100+"%",transitionDuration:this.duration+"s"}}},watch:{active:function(t){t!==this.curActive&&this.correctActive(t)},color:function(){this.setLine()},tabs:function(){this.correctActive(this.curActive||this.active),this.scrollIntoView(),this.setLine()},curActive:function(){var t,e;this.scrollIntoView(),this.setLine(),"top"!==this.position&&"bottom"!==this.position||(t=window,e=N(this.$el)-this.offsetTop,"scrollTop"in t?t.scrollTop=e:t.scrollTo(t.scrollX,e))},sticky:function(){this.handlers(!0)},swipeable:function(){this.handlers(!0)}},mounted:function(){this.onShow()},activated:function(){this.onShow(),this.setLine()},deactivated:function(){this.handlers(!1)},beforeDestroy:function(){this.handlers(!1)},methods:{onShow:function(){var t=this;this.$nextTick(function(){t.inited=!0,t.handlers(!0),t.scrollIntoView(!0)})},handlers:function(t){var e=this.events,n=this.sticky&&t,i=this.swipeable&&t;if(e.resize!==t&&(e.resize=t,(t?y:b)(window,"resize",this.setLine,!0)),e.sticky!==n&&(e.sticky=n,this.scrollEl=this.scrollEl||B(this.$el),(n?y:b)(this.scrollEl,"scroll",this.onScroll,!0),this.onScroll()),e.swipeable!==i){e.swipeable=i;var r=this.$refs.content,o=i?y:b;o(r,"touchstart",this.touchStart),o(r,"touchmove",this.touchMove),o(r,"touchend",this.onTouchEnd),o(r,"touchcancel",this.onTouchEnd)}},onTouchEnd:function(){var t=this.direction,e=this.deltaX,n=this.curActive;"horizontal"===t&&this.offsetX>=50&&(e>0&&0!==n?this.setCurActive(n-1):e<0&&n!==this.tabs.length-1&&this.setCurActive(n+1))},onScroll:function(){var t=E(window)+this.offsetTop,e=N(this.$el),n=e+this.$el.offsetHeight-this.$refs.wrap.offsetHeight;this.position=t>n?"bottom":t>e?"top":"";var i={scrollTop:t,isFixed:"top"===this.position};this.$emit("scroll",i)},setLine:function(){var t=this,e=this.inited;this.$nextTick(function(){var n=t.$refs.tabs;if(n&&n[t.curActive]&&"line"===t.type){var i=n[t.curActive],r=t.lineWidth,o=t.lineHeight,a=Object(s.d)(r)?r:i.offsetWidth/2,c=i.offsetLeft+(i.offsetWidth-a)/2,u={width:a+"px",backgroundColor:t.color,transform:"translateX("+c+"px)"};if(e&&(u.transitionDuration=t.duration+"s"),Object(s.d)(o)){var l=o+"px";u.height=l,u.borderRadius=l}t.lineStyle=u}})},correctActive:function(t){t=+t;var e=this.tabs.some(function(e){return e.index===t}),n=(this.tabs[0]||{}).index||0;this.setCurActive(e?t:n)},setCurActive:function(t){t=this.findAvailableTab(t,t=0&&i10?n:"0"+n)+":00"}if(!e){var i=t.split(":"),r=i[0],o=i[1];return(r=Ri(Object(s.j)(r,this.minHour,this.maxHour)))+":"+(o=Ri(Object(s.j)(o,this.minMinute,this.maxMinute)))}return t=Math.max(t,this.minDate.getTime()),t=Math.min(t,this.maxDate.getTime()),new Date(t)},getBoundary:function(t,e){var n,i=this[t+"Date"],r=i.getFullYear(),o=1,s=1,a=0,c=0;return"max"===t&&(o=12,s=Wi(e.getFullYear(),e.getMonth()+1),a=23,c=59),e.getFullYear()===r&&(o=i.getMonth()+1,e.getMonth()+1===o&&(s=i.getDate(),e.getDate()===s&&(a=i.getHours(),e.getHours()===a&&(c=i.getMinutes())))),(n={})[t+"Year"]=r,n[t+"Month"]=o,n[t+"Date"]=s,n[t+"Hour"]=a,n[t+"Minute"]=c,n},onConfirm:function(){this.$emit("confirm",this.innerValue)},onChange:function(t){var e,n=this;if("time"===this.type){var i=t.getIndexes();e=i[0]+this.minHour+":"+(i[1]+this.minMinute)}else{var r=t.getValues(),o=Hi(r[0]),s=Hi(r[1]),a=Wi(o,s),c=Hi(r[2]);"year-month"===this.type&&(c=1),c=c>a?a:c;var u=0,l=0;"datetime"===this.type&&(u=Hi(r[3]),l=Hi(r[4])),e=new Date(o,s-1,c,u,l)}this.innerValue=this.correctValue(e),this.$nextTick(function(){n.$nextTick(function(){n.$emit("change",t)})})},updateColumnValue:function(t){var e=this,n=[],i=this.formatter;if("time"===this.type){var r=t.split(":");n=[i("hour",r[0]),i("minute",r[1])]}else n=[i("year",""+t.getFullYear()),i("month",Ri(t.getMonth()+1)),i("day",Ri(t.getDate()))],"datetime"===this.type&&n.push(i("hour",Ri(t.getHours())),i("minute",Ri(t.getMinutes()))),"year-month"===this.type&&(n=n.slice(0,2));this.$nextTick(function(){e.$refs.picker.setValues(n)})}},render:function(t){var e=this,n={};return Object.keys(ut).forEach(function(t){n[t]=e[t]}),t(yt,{class:Ui(),ref:"picker",attrs:{columns:this.columns},on:{change:this.onChange,confirm:this.onConfirm,cancel:function(){e.$emit("cancel")}},props:i({},n)})}}),Qi=Object(s.k)("goods-action"),Ji=Qi[0],Zi=Qi[1];function Gi(t,e,n,i){return t("div",o()([{class:Zi({"safe-area-inset-bottom":e.safeAreaInsetBottom})},l(i,!0)]),[n.default&&n.default()])}Gi.props={safeAreaInsetBottom:Boolean};var tr=Ji(Gi),er=Object(s.k)("goods-action-big-btn"),nr=er[0],ir=er[1];function rr(t,e,n,i){return t(te,o()([{attrs:{square:!0,size:"large",loading:e.loading,disabled:e.disabled,type:e.primary?"danger":"warning"},class:ir(),on:{click:function(t){d(i,"click",t),$t(i)}}},l(i)]),[n.default?n.default():e.text])}rr.props=i({},_t,{text:String,primary:Boolean,loading:Boolean,disabled:Boolean});var or=nr(rr),sr=Object(s.k)("goods-action-mini-btn"),ar=sr[0],cr=sr[1];function ur(t,e,n,i){return t("div",o()([{class:[cr(),"van-hairline"],on:{click:function(t){d(i,"click",t),$t(i)}}},l(i)]),[t(W,{class:[cr("icon"),e.iconClass],attrs:{tag:"div",info:e.info,name:e.icon}}),n.default?n.default():e.text])}ur.props=i({},_t,{text:String,icon:String,info:[String,Number],iconClass:null});var lr=ar(ur),dr=Object(s.k)("swipe"),hr=dr[0],fr=dr[1],pr=hr({mixins:[v],props:{width:Number,height:Number,autoplay:Number,vertical:Boolean,initialSwipe:Number,indicatorColor:String,loop:{type:Boolean,default:!0},touchable:{type:Boolean,default:!0},showIndicators:{type:Boolean,default:!0},duration:{type:Number,default:500}},data:function(){return{computedWidth:0,computedHeight:0,offset:0,active:0,deltaX:0,deltaY:0,swipes:[],swiping:!1}},mounted:function(){this.initialize(),this.$isServer||y(window,"resize",this.onResize,!0)},activated:function(){this.rendered&&this.initialize(),this.rendered=!0},destroyed:function(){this.clear(),this.$isServer||b(window,"resize",this.onResize)},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",n=this.vertical?"width":"height";return(t={})[e]=this.trackSize+"px",t[n]=this[n]?this[n]+"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}}},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()},onResize: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&&(x(t,!0),this.move({offset:Math.min(Math.max(this.delta,-this.size),this.size)})))},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()}},move:function(t){var e=t.pace,n=void 0===e?0:e,i=t.offset,r=void 0===i?0:i,o=t.emitChange,s=this.delta,a=this.active,c=this.count,u=this.swipes,l=this.trackSize,d=0===a,h=a===c-1;!this.loop&&(d&&(r>0||n<0)||h&&(r<0||n>0))||c<=1||(u[0]&&(u[0].offset=h&&(s<0||n>0)?l:0),u[c-1]&&(u[c-1].offset=d&&(s>0||n<0)?-l:0),n&&a+n>=-1&&a+n<=c&&(this.active+=n,o&&this.$emit("change",this.activeIndicator)),this.offset=Math.round(r-this.active*this.size))},swipeTo:function(t){var e=this;this.swiping=!0,this.resetTouchStatus(),this.correctPosition(),setTimeout(function(){e.swiping=!1,e.move({pace:t%e.count-e.active,emitChange:!0})},30)},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(),setTimeout(function(){t.swiping=!1,t.move({pace:1,emitChange:!0}),t.autoPlay()},30)},e))}},render:function(t){var e=this,n=this.count,i=this.activeIndicator,r=this.slots("indicator")||this.showIndicators&&n>1&&t("div",{class:fr("indicators",{vertical:this.vertical})},[Array.apply(void 0,Array(n)).map(function(n,r){return t("i",{class:fr("indicator",{active:r===i}),style:r===i?e.indicatorStyle:null})})]);return t("div",{class:fr()},[t("div",{ref:"track",style:this.trackStyle,class:fr("track"),on:{touchstart:this.onTouchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}},[this.slots()]),r])}}),vr=Object(s.k)("swipe-item"),mr=vr[0],gr=vr[1],yr=mr({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(t){var e=this.$parent,n=e.vertical,r=e.computedWidth,o=e.computedHeight,s={width:r+"px",height:n?o+"px":"100%",transform:"translate"+(n?"Y":"X")+"("+this.offset+"px)"};return t("div",{class:gr(),style:s,on:i({},this.$listeners)},[this.slots()])}}),br=Object(s.k)("image-preview"),kr=br[0],xr=br[1];function Sr(t){return Math.sqrt(Math.abs((t[0].clientX-t[1].clientX)*(t[0].clientY-t[1].clientY)))}var wr,Cr=kr({mixins:[D,v],props:{images:Array,className:null,lazyLoad:Boolean,asyncClose:Boolean,startPosition:Number,showIndicators:Boolean,loop:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},showIndex:{type:Boolean,default:!0},minZoom:{type:Number,default:1/3},maxZoom:{type:Number,default:3},overlayClass:{type:String,default:"van-image-preview__overlay"},closeOnClickOverlay:{type:Boolean,default:!0}},data:function(){return{scale:1,moveX:0,moveY:0,moving:!1,zooming:!1,active:0}},computed:{imageStyle:function(){var t=this.scale,e={transition:this.zooming||this.moving?"":".3s all"};return 1!==t&&(e.transform="scale3d("+t+", "+t+", 1) translate("+this.moveX/t+"px, "+this.moveY/t+"px)"),e}},watch:{value:function(){this.active=this.startPosition},startPosition:function(t){this.active=t}},methods:{onWrapperTouchStart:function(){this.touchStartTime=new Date},onWrapperTouchEnd:function(t){x(t);var e=new Date-this.touchStartTime,n=this.$refs.swipe||{},i=n.offsetX,r=void 0===i?0:i,o=n.offsetY;if(e<300&&r<10&&(void 0===o?0:o)<10){var s=this.active;this.resetScale(),this.$emit("close",{index:s,url:this.images[s]}),this.asyncClose||this.$emit("input",!1)}},startMove:function(t){var e=t.currentTarget.getBoundingClientRect(),n=window.innerWidth,i=window.innerHeight;this.touchStart(t),this.moving=!0,this.startMoveX=this.moveX,this.startMoveY=this.moveY,this.maxMoveX=Math.max(0,(e.width-n)/2),this.maxMoveY=Math.max(0,(e.height-i)/2)},startZoom:function(t){this.moving=!1,this.zooming=!0,this.startScale=this.scale,this.startDistance=Sr(t.touches)},onTouchStart:function(t){var e=t.touches,n=(this.$refs.swipe||{}).offsetX,i=void 0===n?0:n;1===e.length&&1!==this.scale?this.startMove(t):2!==e.length||i||this.startZoom(t)},onTouchMove:function(t){var e=t.touches;if((this.moving||this.zooming)&&x(t,!0),this.moving){this.touchMove(t);var n=this.deltaX+this.startMoveX,i=this.deltaY+this.startMoveY;this.moveX=Object(s.j)(n,-this.maxMoveX,this.maxMoveX),this.moveY=Object(s.j)(i,-this.maxMoveY,this.maxMoveY)}if(this.zooming&&2===e.length){var r=Sr(e),o=this.startScale*r/this.startDistance;this.scale=Object(s.j)(o,this.minZoom,this.maxZoom)}},onTouchEnd: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&&x(t,!0)}},onChange:function(t){this.resetScale(),this.active=t,this.$emit("change",t)},resetScale:function(){this.scale=1,this.moveX=0,this.moveY=0}},render:function(t){var e=this;if(this.value){var n=this.active,i=this.images,r=this.showIndex&&t("div",{class:xr("index")},[this.slots("index")||n+1+"/"+i.length]),s=t(pr,{ref:"swipe",attrs:{loop:this.loop,indicatorColor:"white",initialSwipe:this.startPosition,showIndicators:this.showIndicators},on:{change:this.onChange}},[i.map(function(i,r){var s={class:xr("image"),style:r===n?e.imageStyle:null,on:{touchstart:e.onTouchStart,touchmove:e.onTouchMove,touchend:e.onTouchEnd,touchcancel:e.onTouchEnd}};return t(yr,[e.lazyLoad?t("img",o()([{directives:[{name:"lazy",value:i}]},s])):t("img",o()([{attrs:{src:i}},s]))])})]);return t("transition",{attrs:{name:"van-fade"}},[t("div",{class:[xr(),this.className],on:{touchstart:this.onWrapperTouchStart,touchend:this.onWrapperTouchEnd,touchcancel:this.onWrapperTouchEnd}},[r,s])])}}}),$r={images:[],loop:!0,value:!0,minZoom:1/3,maxZoom:3,className:"",lazyLoad:!1,showIndex:!0,asyncClose:!1,startPosition:0,showIndicators:!1},_r=function(t,e){if(void 0===e&&(e=0),!s.h){wr||(wr=new(a.a.extend(Cr))({el:document.createElement("div")}),document.body.appendChild(wr.$el));var n=Array.isArray(t)?{images:t,startPosition:e}:t;return i(wr,$r,n),wr.$once("input",function(t){wr.value=t}),n.onClose&&wr.$once("close",n.onClose),wr}};_r.install=function(){a.a.use(Cr)};var Or=_r,Tr=n("lJzc"),Ar=n.n(Tr).a,jr=Object(s.k)("list"),Ir=jr[0],Br=jr[1],Er=jr[2],Nr=Ir({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"}},mounted:function(){this.scroller=B(this.$el),this.handler(!0),this.immediateCheck&&this.$nextTick(this.check)},destroyed:function(){this.handler(!1)},activated:function(){this.handler(!0)},deactivated:function(){this.handler(!1)},watch:{loading:function(){this.$nextTick(this.check)},finished:function(){this.$nextTick(this.check)}},methods:{check:function(){if(!(this.loading||this.finished||this.error)){var t=this.$el,e=this.scroller,n=L(e);if(n&&"none"!==window.getComputedStyle(t).display&&null!==t.offsetParent){var i=this.offset,r=this.direction;(function(){if(t===e){var o=E(t);if("up"===r)return o<=i;var s=o+n;return e.scrollHeight-s<=i}return"up"===r?E(e)-N(t)<=i:N(t)+L(t)-N(e)-n<=i})()&&(this.$emit("input",!0),this.$emit("load"))}}},clickErrorText:function(){this.$emit("update:error",!1),this.$nextTick(this.check)},handler:function(t){this.binded!==t&&(this.binded=t,(t?y:b)(this.scroller,"scroll",this.check))}},render:function(t){return t("div",{class:Br()},["down"===this.direction&&this.slots(),this.loading&&t("div",{class:Br("loading"),key:"loading"},[this.slots("loading")||[t(Q,{class:Br("loading-icon")}),t("span",{class:Br("loading-text")},[this.loadingText||Er("loading")])]]),this.finished&&this.finishedText&&t("div",{class:Br("finished-text")},[this.finishedText]),this.error&&this.errorText&&t("div",{on:{click:this.clickErrorText},class:Br("error-text")},[this.errorText]),"up"===this.direction&&this.slots()])}}),Lr=n("tgu0"),Dr=Object(s.k)("nav-bar"),Fr=Dr[0],Mr=Dr[1];function zr(t,e,n,i){return t("div",o()([{class:[Mr({fixed:e.fixed}),{"van-hairline--bottom":e.border}],style:{zIndex:e.zIndex}},l(i)]),[t("div",{class:Mr("left"),on:{click:i.listeners["click-left"]||s.i}},[n.left?n.left():[e.leftArrow&&t(W,{class:Mr("arrow"),attrs:{name:"arrow-left"}}),e.leftText&&t("span",{class:Mr("text")},[e.leftText])]]),t("div",{class:[Mr("title"),"van-ellipsis"]},[n.title?n.title():e.title]),t("div",{class:Mr("right"),on:{click:i.listeners["click-right"]||s.i}},[n.right?n.right():e.rightText&&t("span",{class:Mr("text")},[e.rightText])])])}zr.props={title:String,fixed:Boolean,leftText:String,rightText:String,leftArrow:Boolean,border:{type:Boolean,default:!0},zIndex:{type:Number,default:1}};var Pr=Fr(zr),Vr=Object(s.k)("notice-bar"),Rr=Vr[0],Hr=Vr[1],Wr=Rr({props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,delay:{type:[String,Number],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,n=e.wrap,i=e.content;if(n&&i){var r=n.getBoundingClientRect().width,o=i.getBoundingClientRect().width;t.scrollable&&o>r&&(t.wrapWidth=r,t.offsetWidth=o,t.duration=o/t.speed,t.animationClass=Hr("play"))}})},immediate:!0}},methods:{onClickIcon:function(){"closeable"===this.mode&&(this.showNoticeBar=!1,this.$emit("close"))},onAnimationEnd:function(){var t=this;this.firstRound=!1,this.$nextTick(function(){t.duration=(t.offsetWidth+t.wrapWidth)/t.speed,t.animationClass=Hr("play--infinite")})}},render:function(t){var e=this,n=this.mode,i="closeable"===n?"cross":"link"===n?"arrow":"",r={color:this.color,background:this.background},o={paddingLeft:this.firstRound?0:this.wrapWidth+"px",animationDelay:(this.firstRound?this.delay:0)+"s",animationDuration:this.duration+"s"};return t("div",{directives:[{name:"show",value:this.showNoticeBar}],class:Hr({withicon:n,wrapable:this.wrapable}),style:r,on:{click:function(){e.$emit("click")}}},[this.leftIcon&&t(W,{class:Hr("left-icon"),attrs:{name:this.leftIcon}}),t("div",{ref:"wrap",class:Hr("wrap")},[t("div",{ref:"content",class:[Hr("content"),this.animationClass,{"van-ellipsis":!this.scrollable&&!this.wrapable}],style:o,on:{animationend:this.onAnimationEnd,webkitAnimationEnd:this.onAnimationEnd}},[this.slots()||this.text])]),i&&t(W,{class:Hr("right-icon"),attrs:{name:i},on:{click:this.onClickIcon}})])}}),qr=Object(s.k)("notify"),Yr=qr[0],Ur=qr[1];function Kr(t,e,n,i){var r={color:e.color,background:e.background};return t(tt,o()([{attrs:{value:e.value,position:"top",overlay:!1,lockScroll:!1},style:r,class:[Ur(),e.className],on:{input:function(t){d(i,"input",t)}}},l(i)]),[e.message])}Kr.props=i({},D.props,{className:null,message:[String,Number],color:{type:String,default:sn},background:{type:String,default:on},duration:{type:Number,default:3e3}});var Xr,Qr,Jr=Yr(Kr);function Zr(t){var e;if(!s.h)return Qr||(Qr=h(Jr)),t=i({},Zr.currentOptions,(e=t,Object(s.g)(e)?e:{message:e})),i(Qr,t),clearTimeout(Xr),t.duration&&t.duration>0&&(Xr=setTimeout(Zr.clear,t.duration)),Qr}function Gr(){return{value:!0,message:"",color:sn,background:on,duration:3e3,className:""}}Zr.clear=function(){Qr&&(Qr.value=!1)},Zr.currentOptions=Gr(),Zr.setDefaultOptions=function(t){i(Zr.currentOptions,t)},Zr.resetDefaultOptions=function(){Zr.currentOptions=Gr()},Zr.install=function(){a.a.use(Jr)},a.a.prototype.$notify=Zr;var to=Zr,eo=Object(s.k)("key"),no=eo[0],io=eo[1],ro=no({props:{type:Array,text:[String,Number]},data:function(){return{active:!1}},computed:{className:function(){var t=this.type.slice(0);return this.active&&t.push("active"),io(t)}},methods:{onFocus:function(){this.active=!0,this.$emit("press",this.text)},onBlur:function(t){x(t,!0),this.active=!1}},render:function(t){var e=this.onBlur;return t("i",{class:["van-hairline",this.className],on:{touchstart:this.onFocus,touchmove:e,touchend:e,touchcancel:e}},[this.text])}}),oo=Object(s.k)("number-keyboard"),so=oo[0],ao=oo[1],co=oo[2],uo=["blue","big"],lo=["delete","big","gray"],ho=so({props:{show:Boolean,title:String,closeButtonText:String,deleteButtonText:String,safeAreaInsetBottom:Boolean,theme:{type:String,default:"default"},extraKey:{type:String,default:""},zIndex:{type:Number,default:100},transition:{type:Boolean,default:!0},showDeleteKey:{type:Boolean,default:!0},hideOnClickOutside:{type:Boolean,default:!0}},mounted:function(){this.handler(!0)},destroyed:function(){this.handler(!1)},activated:function(){this.handler(!0)},deactivated:function(){this.handler(!1)},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,type:["gray"]},{text:0},{text:this.deleteText,type:["gray","delete"]});break;case"custom":t.push({text:0,type:["middle"]},{text:this.extraKey})}return t},deleteText:function(){return this.deleteButtonText||co("delete")}},methods:{handler:function(t){this.$isServer||t!==this.handlerStatus&&this.hideOnClickOutside&&(this.handlerStatus=t,document.body[(t?"add":"remove")+"EventListener"]("touchstart",this.onBlur))},onBlur:function(){this.$emit("blur")},onClose:function(){this.$emit("close"),this.onBlur()},onAnimationEnd:function(){this.$emit(this.show?"show":"hide")},onPress:function(t){""!==t&&(t===this.deleteText?this.$emit("delete"):t===this.closeButtonText?this.onClose():this.$emit("input",t))}},render:function(t){var e=this.title,n=this.theme,i=this.onPress,r=this.closeButtonText,o=this.slots("title-left"),s=r&&"default"===n,a=e||s||o;return t("transition",{attrs:{name:this.transition?"van-slide-up":""}},[t("div",{directives:[{name:"show",value:this.show}],style:{zIndex:this.zIndex},class:ao([n,{"safe-area-inset-bottom":this.safeAreaInsetBottom}]),on:{touchstart:k,animationend:this.onAnimationEnd,webkitAnimationEnd:this.onAnimationEnd}},[a&&t("div",{class:[ao("title"),"van-hairline--top"]},[o&&t("span",{class:ao("title-left")},[o]),e&&t("span",[e]),s&&t("span",{class:ao("close"),on:{click:this.onClose}},[r])]),t("div",{class:ao("body")},[this.keys.map(function(e){return t(ro,{key:e.text,attrs:{text:e.text,type:e.type},on:{press:i}})})]),"custom"===n&&t("div",{class:ao("sidebar")},[t(ro,{attrs:{text:this.deleteText,type:lo},on:{press:i}}),t(ro,{attrs:{text:r,type:uo},on:{press:i}})])])])}}),fo=Object(s.k)("pagination"),po=fo[0],vo=fo[1],mo=fo[2];function go(t,e,n){return{number:t,text:e,active:n}}var yo=po({props:{value:Number,prevText:String,nextText:String,pageCount:Number,totalItems:Number,forceEllipses:Boolean,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 n=1,i=e,r=void 0!==this.showPageSize&&this.showPageSizee&&(n=(i=e)-this.showPageSize+1);for(var o=n;o<=i;o++){var s=go(o,o,o===this.value);t.push(s)}if(r&&this.showPageSize>0&&this.forceEllipses){if(n>1){var a=go(n-1,"...",!1);t.unshift(a)}if(i=0&&t<=100}},showPivot:{type:Boolean,default:!0},color:{type:String,default:"#1989fa"},textColor:{type:String,default:sn}},data:function(){return{pivotWidth:0,progressWidth:0}},mounted:function(){this.getWidth()},watch:{showPivot:function(){this.getWidth()},pivotText:function(){this.getWidth()}},methods:{getWidth:function(){var t=this;this.$nextTick(function(){t.progressWidth=t.$el.offsetWidth,t.pivotWidth=t.$refs.pivot?t.$refs.pivot.offsetWidth:0})}},render:function(t){var e=this.pivotText,n=this.percentage,i=Object(s.d)(e)?e:n+"%",r=this.showPivot&&i,o=this.inactive?"#cacaca":this.color,a={color:this.textColor,background:this.pivotColor||o},c={background:o,width:(this.progressWidth-this.pivotWidth)*n/100+"px"};return t("div",{class:Io()},[t("span",{class:Io("portion",{"with-pivot":r}),style:c},[r&&t("span",{ref:"pivot",style:a,class:Io("pivot")},[i])])])}}),Eo=Object(s.k)("pull-refresh"),No=Eo[0],Lo=Eo[1],Do=Eo[2],Fo=["pulling","loosing","success"],Mo=No({mixins:[v],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",height: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=B(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)),x(t)))},onTouchEnd:function(){!this.untouchable&&this.ceiling&&this.deltaY&&(this.duration=this.animationDuration,"loosing"===this.status?(this.setStatus(this.headHeight,!0),this.$emit("input",!0),this.$emit("refresh")):this.setStatus(0))},getCeiling:function(){return this.ceiling=0===E(this.scrollEl),this.ceiling},ease:function(t){var e=this.headHeight;return t=s?"full":r+.5>=s&&a?"half":"void"));function k(t){v||p||(d(i,"input",t),d(i,"change",t))}return t("div",o()([{class:Vo()},l(i),{on:{touchmove:function(t){if(!p&&!v&&document.elementFromPoint){x(t);var e=t.touches[0],n=e.clientX,i=e.clientY,r=document.elementFromPoint(n,i);if(r&&r.dataset){var o=r.dataset.score;o&&k(+o)}}}}}]),[y.map(function(n,i){return function(n,i){var r="full"===n,o="void"===n;return t("div",{key:i,class:Vo("item")},[t(W,{attrs:{name:r?c:f,size:u+"px","data-score":i+1,color:v?g:r?h:m},class:Vo("icon"),on:{click:function(){k(i+1)}}}),e.allowHalf&&t(W,{attrs:{name:o?f:c,size:u+"px","data-score":i+.5,color:v?g:o?m:h},class:Vo("icon","half"),on:{click:function(){k(i+.5)}}})])}(n,i)})])}Ro.props={value:Number,readonly:Boolean,disabled:Boolean,allowHalf:Boolean,size:{type:Number,default:20},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}};var Ho=Po(Ro),Wo=Object(s.k)("row"),qo=Wo[0],Yo=Wo[1],Uo=qo({props:{type:String,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},render:function(t){var e,n=this.align,i=this.justify,r="flex"===this.type,o="-"+Number(this.gutter)/2+"px",s=this.gutter?{marginLeft:o,marginRight:o}:{};return t(this.tag,{style:s,class:Yo((e={flex:r},e["align-"+n]=r&&n,e["justify-"+i]=r&&i,e))},[this.slots()])}}),Ko=Object(s.k)("search"),Xo=Ko[0],Qo=Ko[1],Jo=Ko[2];function Zo(t,e,n,r){var s={attrs:r.data.attrs,on:i({},r.listeners,{input:function(t){d(r,"input",t)},keypress:function(t){13===t.keyCode&&(x(t),d(r,"search",e.value)),d(r,"keypress",t)}})},a=l(r);return delete a.attrs,t("div",o()([{class:Qo({"show-action":e.showAction}),style:{background:e.background}},a]),[t("div",{class:Qo("content",e.shape)},[n.label||e.label?t("div",{class:Qo("label")},[n.label?n.label():e.label]):null,t(Dt,o()([{attrs:{clearable:!0,type:"search",value:e.value,border:!1,leftIcon:"search"},scopedSlots:{"left-icon":n["left-icon"]}},s]))]),function(){if(!e.showAction)return null;return t("div",{class:Qo("action")},[n.action?n.action():t("div",{on:{click:function(){d(r,"input",""),d(r,"cancel")}}},[Jo("cancel")])])}()])}Zo.props={value:String,label:String,showAction:Boolean,shape:{type:String,default:"square"},background:{type:String,default:"#fff"}};var Go=Xo(Zo),ts=Object(s.k)("sku-header"),es=ts[0],ns=ts[1];function is(t,e,n,i){var r=e.sku,s=e.goods,a=e.skuEventBus,c=function(t,e){var n=e.s1;if(n){var i=t.tree.filter(function(t){return"s1"===t.k_s})[0]||{};if(i.v){var r=i.v.filter(function(t){return t.id===n})[0];if(r)return r.imgUrl||r.img_url}}}(r,e.selectedSku)||s.picture;return t("div",o()([{class:[ns(),"van-hairline--bottom"]},l(i)]),[t("div",{class:ns("img-wrap"),on:{click:function(){a.$emit("sku:previewImage",c)}}},[t("img",{attrs:{src:c}})]),t("div",{class:ns("goods-info")},[t("div",{class:"van-sku__goods-name van-ellipsis"},[s.title]),n.default&&n.default(),t(W,{attrs:{name:"close"},class:"van-sku__close-icon",on:{click:function(){a.$emit("sku:close")}}})])])}is.props={sku:Object,goods:Object,skuEventBus:Object,selectedSku:Object};var rs=es(is),os=Object(s.k)("sku-row"),ss=os[0],as=os[1];function cs(t,e,n,i){return t("div",o()([{class:as()},l(i)]),[t("div",{class:as("title")},[e.skuRow.k,":"]),n.default&&n.default()])}cs.props={skuRow:Object};var us=ss(cs),ls={QUOTA_LIMIT:0,STOCK_LIMIT:1},ds={LIMIT_TYPE:ls,UNSELECTED_SKU_VALUE_ID:""},hs=function(t){var e={};return t.forEach(function(t){e[t.k_s]=t.v}),e},fs=function(t,e){var n=Object.keys(e).filter(function(t){return""!==e[t]});return t.length===n.length},ps=function(t,e){return t.filter(function(t){return Object.keys(e).every(function(n){return String(t[n])===String(e[n])})})[0]},vs=function(t,e){var n=hs(t);return Object.keys(e).reduce(function(t,i){var r=n[i],o=e[i];if(""!==o){var s=r.filter(function(t){return t.id===o})[0];s&&t.push(s)}return t},[])},ms=function(t,e,n){var r,o=n.key,s=n.valueId,a=i({},e,((r={})[o]=s,r)),c=Object.keys(a).filter(function(t){return""!==a[t]});return t.filter(function(t){return c.every(function(e){return String(a[e])===String(t[e])})}).reduce(function(t,e){return t+=e.stock_num},0)>0},gs={normalizeSkuTree:hs,getSkuComb:ps,getSelectedSkuValues:vs,isAllSelected:fs,isSkuChoosable:ms},ys=(0,Object(s.k)("sku-row-item")[0])({props:{skuList:Array,skuValue:Object,skuKeyStr:String,skuEventBus:Object,selectedSku:Object},computed:{choosable:function(){return ms(this.skuList,this.selectedSku,{key:this.skuKeyStr,valueId:this.skuValue.id})}},methods:{onSelect:function(){this.choosable&&this.skuEventBus.$emit("sku:select",i({},this.skuValue,{skuKeyStr:this.skuKeyStr}))}},render:function(t){return t("span",{class:["van-sku-row__item",{"van-sku-row__item--active":this.skuValue.id===this.selectedSku[this.skuKeyStr],"van-sku-row__item--disabled":!this.choosable}],on:{click:this.onSelect}},[this.skuValue.name])}}),bs=Object(s.k)("stepper"),ks=bs[0],xs=bs[1],Ss=ks({props:{value:null,integer:Boolean,disabled:Boolean,inputWidth:String,asyncChange:Boolean,disableInput:Boolean,min:{type:[String,Number],default:1},max:{type:[String,Number],default:1/0},step:{type:[String,Number],default:1},defaultValue:{type:[String,Number],default:1}},data:function(){var t=this.range(Object(s.d)(this.value)?this.value:this.defaultValue);return t!==+this.value&&this.$emit("input",t),{currentValue:t}},computed:{minusDisabled:function(){return this.disabled||this.currentValue<=this.min},plusDisabled:function(){return this.disabled||this.currentValue>=this.max}},watch:{value:function(t){t!==this.currentValue&&(this.currentValue=this.format(t))},currentValue:function(t){this.$emit("input",t),this.$emit("change",t)}},methods:{format:function(t){return""===(t=String(t).replace(/[^0-9.-]/g,""))?0:this.integer?Math.floor(t):+t},range:function(t){return Math.max(Math.min(this.max,this.format(t)),this.min)},onInput:function(t){var e=t.target.value,n=this.format(e);this.asyncChange?(t.target.value=this.currentValue,this.$emit("input",n),this.$emit("change",n)):(+e!==n&&(t.target.value=n),this.currentValue=n)},onChange:function(t){if(this[t+"Disabled"])this.$emit("overlimit",t);else{var e="minus"===t?-this.step:+this.step,n=Math.round(100*(this.currentValue+e))/100;this.asyncChange?(this.$emit("input",n),this.$emit("change",n)):this.currentValue=this.range(n),this.$emit(t)}},onFocus:function(t){this.$emit("focus",t)},onBlur:function(t){this.currentValue=this.range(this.currentValue),this.$emit("blur",t),0===this.currentValue&&(t.target.value=this.currentValue)}},render:function(t){var e=this,n=function(t){return function(){e.onChange(t)}};return t("div",{class:xs()},[t("button",{class:xs("minus",{disabled:this.minusDisabled}),on:{click:n("minus")}}),t("input",{attrs:{type:"number",disabled:this.disabled||this.disableInput},class:xs("input"),domProps:{value:this.currentValue},style:{width:this.inputWidth},on:{input:this.onInput,focus:this.onFocus,blur:this.onBlur}}),t("button",{class:xs("plus",{disabled:this.plusDisabled}),on:{click:n("plus")}})])}}),ws=Object(s.k)("sku-stepper")[0],Cs=ls.QUOTA_LIMIT,$s=ls.STOCK_LIMIT,_s=ws({props:{quota:Number,quotaUsed:Number,hideStock:Boolean,skuEventBus:Object,skuStockNum:Number,selectedSku:Object,selectedNum:Number,stepperTitle:String,hideQuotaText:Boolean,selectedSkuComb:Object,disableStepperInput:Boolean,customStepperConfig:Object},data:function(){return{currentNum:this.selectedNum,limitType:$s}},watch:{currentNum:function(t){this.skuEventBus.$emit("sku:numChange",t)},stepperLimit:function(t){t0&&(n="每人限购"+this.quota+"件"),n},stepperLimit:function(){var t,e=this.quota-this.quotaUsed;return this.quota>0&&e<=this.stock?(t=e<0?0:e,this.limitType=Cs):(t=this.stock,this.limitType=$s),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(t){var e=this;return t("div",{class:"van-sku-stepper-stock"},[t("div",{class:"van-sku-stepper-container"},[t("div",{class:"van-sku__stepper-title"},[this.stepperTitle||"购买数量",":"]),t(Ss,{class:"van-sku__stepper",attrs:{max:this.stepperLimit,disableInput:this.disableStepperInput},on:{overlimit:this.onOverLimit,change:this.onChange},model:{value:e.currentNum,callback:function(t){e.currentNum=t}}})]),!this.hideStock&&t("div",{class:"van-sku__stock"},[this.stockText]),!this.hideQuotaText&&this.quotaText&&t("div",{class:"van-sku__quota"},[this.quotaText])])}});function Os(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)}var Ts=Object(s.k)("uploader"),As=Ts[0],js=Ts[1],Is=As({inheritAttrs:!1,props:{disabled:Boolean,beforeRead:Function,afterRead:Function,accept:{type:String,default:"image/*"},resultType:{type:String,default:"dataUrl"},maxSize:{type:Number,default:Number.MAX_VALUE}},computed:{detail:function(){return{name:this.$attrs.name||""}}},methods:{onChange:function(t){var e=this,n=t.target.files;!this.disabled&&n.length&&(!(n=1===n.length?n[0]:[].slice.call(n,0))||this.beforeRead&&!this.beforeRead(n,this.detail)?this.resetInput():Array.isArray(n)?Promise.all(n.map(this.readFile)).then(function(t){var i=!1,r=n.map(function(r,o){return r.size>e.maxSize&&(i=!0),{file:n[o],content:t[o]}});e.onAfterRead(r,i)}):this.readFile(n).then(function(t){e.onAfterRead({file:n,content:t},n.size>e.maxSize)}))},readFile:function(t){var e=this;return new Promise(function(n){var i=new FileReader;i.onload=function(t){n(t.target.result)},"dataUrl"===e.resultType?i.readAsDataURL(t):"text"===e.resultType&&i.readAsText(t)})},onAfterRead:function(t,e){e?this.$emit("oversize",t):this.afterRead&&this.afterRead(t,this.detail),this.resetInput()},resetInput:function(){this.$refs.input&&(this.$refs.input.value="")}},render:function(t){var e=this.accept,n=this.disabled;return t("div",{class:js()},[this.slots(),t("input",{attrs:i({},this.$attrs,{type:"file",accept:e,disabled:n}),ref:"input",class:js("input"),on:{change:this.onChange}})])}}),Bs=Object(s.k)("sku-img-uploader"),Es=Bs[0],Ns=Bs[1],Ls=Es({props:{value:String,uploadImg:Function,maxSize:{type:Number,default:6}},data:function(){return{paddingImg:""}},computed:{imgList:function(){return this.value&&!this.paddingImg?[this.value]:[]}},methods:{afterReadFile:function(t){var e=this;this.paddingImg=t.content,this.uploadImg(t.file,t.content).then(function(t){e.$emit("input",t),e.$nextTick(function(){e.paddingImg=""})}).catch(function(){e.paddingImg=""})},onOversize:function(){this.$toast("最大可上传图片为"+this.maxSize+"MB,请尝试压缩图片尺寸")}},render:function(t){var e=this,n=this.imgList,i=this.paddingImg,r=(i||n.length>0)&&t("div",{class:"van-clearfix"},[n.map(function(n){return t("div",{class:Ns("img")},[t("img",{attrs:{src:n}}),t(W,{attrs:{name:"clear"},class:Ns("delete"),on:{click:function(){e.$emit("input","")}}})])}),i&&t("div",{class:Ns("img")},[t("img",{attrs:{src:i}}),t(Q,{attrs:{type:"spinner"},class:Ns("uploading")})])]);return t("div",{class:Ns()},[t(Is,{attrs:{disabled:!!i,afterRead:this.afterReadFile,maxSize:1024*this.maxSize*1024},on:{oversize:this.onOversize}},[t("div",{class:Ns("header")},[i?t("div",["正在上传..."]):[t(W,{attrs:{name:"photograph"}}),t("span",{class:"label"},[this.value?"重拍":"拍照"," 或 "]),t(W,{attrs:{name:"photo"}}),t("span",{class:"label"},[this.value?"重新选择照片":"选择照片"])]])]),r])}}),Ds=Object(s.k)("sku-messages"),Fs=Ds[0],Ms=Ds[1],zs={id_no:"输入身份证号码",text:"输入文本",tel:"输入数字",email:"输入邮箱",date:"点击选择日期",time:"点击选择时间",textarea:"点击填写段落文本",mobile:"输入手机号码"},Ps=Fs({props:{messages:Array,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(n,i){var r=n.value;t.messages[i].datetime>0&&(r=r.replace(/T/g," ")),e["message_"+i]=r}),e},getCartMessages:function(){var t=this,e={};return this.messageValues.forEach(function(n,i){var r=n.value,o=t.messages[i];o.datetime>0&&(r=r.replace(/T/g," ")),e[o.name]=r}),e},getPlaceholder:function(t){var e=1==+t.multiple?"textarea":t.type;return(this.messageConfig.placeholderMap||{})[e]||zs[e]},validateMessages:function(){for(var t=this.messageValues,e=0;e18))return"请填写正确的身份证号码"}}}},render:function(t){var e=this;return t(wn,{class:Ms()},[this.messages.map(function(n,i){return"image"===n.type?t(It,{class:Ms("image-cell"),attrs:{label:"仅限一张",title:n.name,required:"1"===String(n.required)},key:e.goodsId+"-"+i},[t(Ls,{attrs:{uploadImg:e.messageConfig.uploadImg,maxSize:e.messageConfig.uploadMaxSize},model:{value:e.messageValues[i].value,callback:function(t){e.messageValues[i].value=t}}})]):t(Dt,{attrs:{maxlength:"200",label:n.name,required:"1"===String(n.required),placeholder:e.getPlaceholder(n),type:e.getType(n)},key:e.goodsId+"-"+i,model:{value:e.messageValues[i].value,callback:function(t){e.messageValues[i].value=t}}})})])}}),Vs=Object(s.k)("sku-actions"),Rs=Vs[0],Hs=Vs[1];function Ws(t,e,n,i){var r=function(t){return function(){e.skuEventBus.$emit(t)}};return t("div",o()([{class:Hs()},l(i)]),[e.showAddCartBtn&&t(te,{attrs:{bottomAction:!0,text:"加入购物车"},on:{click:r("sku:addCart")}}),t(te,{attrs:{type:"primary",bottomAction:!0,text:e.buyText||"立即购买"},on:{click:r("sku:buy")}})])}Ws.props={buyText:String,skuEventBus:Object,showAddCartBtn:Boolean};var qs=Rs(Ws),Ys=Object(s.k)("sku")[0],Us=ls.QUOTA_LIMIT,Ks=Ys({props:{sku:Object,goods:Object,quota:Number,value:Boolean,buyText:String,quotaUsed:Number,goodsId:[Number,String],hideStock:Boolean,hideQuotaText:Boolean,stepperTitle:String,getContainer:Function,customSkuValidator:Function,closeOnClickOverlay:Boolean,disableStepperInput:Boolean,resetStepperOnHide:Boolean,resetSelectedSkuOnHide:Boolean,initialSku:{type:Object,default:function(){return{}}},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){if(this.$emit("input",t),!t){var e=vs(this.sku.tree,this.selectedSku);this.$emit("sku-close",{selectedSkuValues:e,selectedNum:this.selectedNum,selectedSkuComb:this.selectedSkuComb}),this.resetStepperOnHide&&this.resetStepper(),this.resetSelectedSkuOnHide&&this.resetSelectedSku(this.skuTree)}},value:function(t){this.show=t},skuTree:function(t){this.resetSelectedSku(t)}},computed:{skuGroupClass:function(){return["van-sku-group-container","van-hairline--bottom",{"van-sku-group-container--hide-soldout":!this.showSoldoutSku}]},bodyStyle:function(){if(!this.$isServer)return{maxHeight:window.innerHeight-this.bodyOffsetTop+"px"}},isSkuCombSelected:function(){return fs(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?ps(this.sku.list,this.selectedSku):null:{id:this.sku.collection_id,price:Math.round(100*this.sku.price),stock_num:this.sku.stock_num}},price:function(){return this.selectedSkuComb?(this.selectedSkuComb.price/100).toFixed(2):this.sku.price},skuTree:function(){return this.sku.tree||[]},imageList:function(){var t=[this.goods.picture];if(this.skuTree.length>0){var e=this.skuTree.filter(function(t){return"s1"===t.k_s})[0]||{};if(!e.v)return;e.v.forEach(function(e){var n=e.imgUrl||e.img_url;n&&t.push(n)})}return t}},created:function(){var t=new a.a;this.skuEventBus=t,t.$on("sku:close",this.onClose),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,n=Object(s.d)(e)?e:1;t?t.setCurrentNum(n):this.selectedNum=n},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 n=t.k_s,i=t.v[0].id;1===t.v.length&&ms(e.sku.list,e.selectedSku,{key:n,valueId:i})&&(e.selectedSku[n]=i)})},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"商品已经无法购买啦";if(this.isSkuCombSelected)return this.validateSkuMessages();if(this.customSkuValidator){var t=this.customSkuValidator(this);if(t)return t}return"请先选择商品规格"},onClose:function(){this.show=!1},onSelect:function(t){var e,n;this.selectedSku=this.selectedSku[t.skuKeyStr]===t.id?i({},this.selectedSku,((e={})[t.skuKeyStr]="",e)):i({},this.selectedSku,((n={})[t.skuKeyStr]=t.id,n)),this.$emit("sku-selected",{skuValue:t,selectedSku:this.selectedSku,selectedSkuComb:this.selectedSkuComb})},onNumChange:function(t){this.selectedNum=t},onPreviewImage:function(t){var e=this,n=this.imageList.findIndex(function(e){return e===t}),i={index:n,imageList:this.imageList,indexImage:t};this.$emit("preview-on",i),Or({images:this.imageList,startPosition:n,onClose:function(){e.$emit("preview-close",i)}})},onOverLimit:function(t){var e=t.action,n=t.limitType,i=t.quota,r=t.quotaUsed,o=this.customStepperConfig.handleOverLimit;if(o)o(t);else if("minus"===e)Kt("至少选择一件");else if("plus"===e)if(n===Us){var s="限购"+i+"件";r>0&&(s+=",你已购买"+r+"件"),Kt(s)}else Kt("库存不足")},onAddCart:function(){this.onBuyOrAddCart("add-cart")},onBuy:function(){this.onBuyOrAddCart("buy-clicked")},onBuyOrAddCart:function(t){var e=this.validateSku();e?Kt(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(t){var e=this;if(!this.isSkuEmpty){var n=this.sku,i=this.goods,r=this.price,o=this.skuEventBus,s=this.selectedSku,a=this.selectedNum,c=this.stepperTitle,u=this.hideQuotaText,l=this.selectedSkuComb,d={price:r,selectedNum:a,skuEventBus:o,selectedSku:s,selectedSkuComb:l},h=function(t){return e.slots(t,d)},f=h("sku-header")||t(rs,{attrs:{sku:n,goods:i,skuEventBus:o,selectedSku:s}},[h("sku-header-price")||t("div",{class:"van-sku__goods-price"},[t("span",{class:"van-sku__price-symbol"},["¥"]),t("span",{class:"van-sku__price-num"},[r])])]),p=h("sku-group")||this.hasSku&&t("div",{class:this.skuGroupClass},[this.skuTree.map(function(e){return t(us,{attrs:{skuRow:e}},[e.v.map(function(i){return t(ys,{attrs:{skuList:n.list,skuValue:i,selectedSku:s,skuEventBus:o,skuKeyStr:e.k_s}})})])})]),v=h("sku-stepper")||t(_s,{ref:"skuStepper",attrs:{quota:this.quota,hideStock:this.hideStock,quotaUsed:this.quotaUsed,skuEventBus:o,selectedNum:a,selectedSku:s,stepperTitle:c,skuStockNum:n.stock_num,hideQuotaText:u,selectedSkuComb:l,disableStepperInput:this.disableStepperInput,customStepperConfig:this.customStepperConfig},on:{change:function(t){e.$emit("stepper-change",t)}}}),m=h("sku-messages")||t(Ps,{ref:"skuMessages",attrs:{goodsId:this.goodsId,messageConfig:this.messageConfig,messages:n.messages}}),g=h("sku-actions")||t(qs,{attrs:{buyText:this.buyText,skuEventBus:o,showAddCartBtn:this.showAddCartBtn}});return t(tt,{attrs:{position:"bottom",getContainer:this.getContainer,closeOnClickOverlay:this.closeOnClickOverlay},class:"van-sku-container",model:{value:e.show,callback:function(t){e.show=t}}},[f,t("div",{class:"van-sku-body",style:this.bodyStyle},[h("sku-body-top"),p,h("extra-sku-group"),v,m]),g])}}});Ks.SkuActions=qs,Ks.SkuHeader=rs,Ks.SkuMessages=Ps,Ks.SkuStepper=_s,Ks.SkuRow=us,Ks.SkuRowItem=ys,Ks.skuHelper=gs,Ks.skuConstants=ds;var Xs=Ks,Qs=Object(s.k)("slider"),Js=Qs[0],Zs=Qs[1],Gs=Js({mixins:[v],props:{min:Number,value:Number,disabled:Boolean,vertical:Boolean,activeColor:String,inactiveColor:String,max:{type:Number,default:100},step:{type:Number,default:1},barHeight:{type:String,default:"2px"}},methods:{onTouchStart:function(t){this.disabled||(this.touchStart(t),this.startValue=this.format(this.value))},onTouchMove:function(t){if(x(t,!0),!this.disabled){this.touchMove(t);var e=this.$el.getBoundingClientRect(),n=(this.vertical?this.deltaY:this.deltaX)/(this.vertical?e.height:e.width)*100;this.newValue=this.startValue+n,this.updateValue(this.newValue)}},onTouchEnd:function(){this.disabled||this.updateValue(this.newValue,!0)},onClick:function(t){if(t.stopPropagation(),!this.disabled){var e=this.$el.getBoundingClientRect(),n=(this.vertical?t.clientY-e.top:t.clientX-e.left)/(this.vertical?e.height:e.width)*100;this.updateValue(n,!0)}},updateValue:function(t,e){t=this.format(t),this.$emit("input",t),e&&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(t){var e,n=this.vertical,i={background:this.inactiveColor},r=n?"width":"height",o=((e={})[n?"height":"width"]=this.format(this.value)+"%",e[r]=this.barHeight,e.background=this.activeColor,e);return t("div",{style:i,class:Zs({disabled:this.disabled,vertical:n}),on:{click:this.onClick}},[t("div",{class:Zs("bar"),style:o},[t("div",{class:Zs("button-wrapper"),on:{touchstart:this.onTouchStart,touchmove:this.onTouchMove,touchend:this.onTouchEnd,touchcancel:this.onTouchEnd}},[this.slots("button")||t("div",{class:Zs("button")})])])])}}),ta=Object(s.k)("step"),ea=ta[0],na=ta[1],ia=ea({beforeCreate:function(){var t=this.$parent.steps,e=this.$parent.slots().indexOf(this.$vnode);t.splice(-1===e?t.length:e,0,this)},beforeDestroy:function(){var t=this.$parent.steps.indexOf(this);t>-1&&this.$parent.steps.splice(t,1)},computed:{status:function(){var t=this.$parent.steps.indexOf(this),e=this.$parent.active;return ti*r&&i>0?this.open("right"):"left"===t&&e>n*r&&n>0?this.open("left"):this.swipeMove(0)},startDrag:function(t){this.disabled||(this.dragging=!0,this.startOffset=this.offset,this.touchStart(t))},onDrag:function(t){this.disabled||(this.touchMove(t),"horizontal"===this.direction&&(x(t),this.swipeMove(this.deltaX+this.startOffset)))},endDrag:function(){this.disabled||(this.dragging=!1,this.swiping&&this.swipeLeaveTransition(this.offset>0?"left":"right"))},onClick:function(t){void 0===t&&(t="outside"),this.$emit("click",t),this.offset&&(this.onClose?this.onClose(t,this):this.swipeMove(0))}},render:function(t){var e=this,n=function(t,n){return function(i){n&&i.stopPropagation(),e.onClick(t)}},i={transform:"translate3d("+this.offset+"px, 0, 0)",transition:this.dragging?"none":".6s cubic-bezier(0.18, 0.89, 0.32, 1)"};return t("div",{class:ga(),on:{click:n("cell"),touchstart:this.startDrag,touchmove:this.onDrag,touchend:this.endDrag,touchcancel:this.endDrag}},[t("div",{class:ga("wrapper"),style:i,on:{transitionend:function(){e.swiping=!1}}},[this.leftWidth?t("div",{class:ga("left"),on:{click:n("left",!0)}},[this.slots("left")]):null,this.slots(),this.rightWidth?t("div",{class:ga("right"),on:{click:n("right",!0)}},[this.slots("right")]):null])])}}),ba=Object(s.k)("tabbar"),ka=ba[0],xa=ba[1],Sa=ka({data:function(){return{items:[]}},props:{value:Number,activeColor:String,safeAreaInsetBottom:Boolean,fixed:{type:Boolean,default:!0},zIndex:{type:Number,default:1}},watch:{items:function(){this.setActiveItem()},value:function(){this.setActiveItem()}},methods:{setActiveItem:function(){var t=this;this.items.forEach(function(e,n){e.active=n===t.value})},onChange:function(t){t!==this.value&&(this.$emit("input",t),this.$emit("change",t))}},render:function(t){return t("div",{style:{zIndex:this.zIndex},class:["van-hairline--top-bottom",xa({fixed:this.fixed,"safe-area-inset-bottom":this.safeAreaInsetBottom})]},[this.slots()])}}),wa=Object(s.k)("tabbar-item"),Ca=wa[0],$a=wa[1],_a=Ca({props:i({},_t,{icon:String,dot:Boolean,info:[String,Number]}),data:function(){return{active:!1}},beforeCreate:function(){this.$parent.items.push(this)},destroyed:function(){this.$parent.items.splice(this.$parent.items.indexOf(this),1)},methods:{onClick:function(t){this.$parent.onChange(this.$parent.items.indexOf(this)),this.$emit("click",t),Ct(this.$router,this)}},render:function(t){var e=this.icon,n=this.slots,i=this.active,r=i?{color:this.$parent.activeColor}:null;return t("div",{class:$a({active:i}),style:r,on:{click:this.onClick}},[t("div",{class:$a("icon",{dot:this.dot})},[n("icon",{active:i})||e&&t(W,{attrs:{name:e}}),t(V,{attrs:{info:this.info}})]),t("div",{class:$a("text")},[n("default",{active:i})])])}}),Oa=Object(s.k)("tree-select"),Ta=Oa[0],Aa=Oa[1];function ja(t,e,n,i){var r=e.height,s=e.items,a=e.mainActiveIndex,c=e.activeId,u=(s[a]||{}).children||[];return t("div",o()([{class:Aa(),style:{height:r+"px"}},l(i)]),[t("div",{class:Aa("nav")},[s.map(function(e,n){return t("div",{key:n,class:["van-ellipsis",Aa("nitem",{active:a===n,disabled:e.disabled})],on:{click:function(){e.disabled||d(i,"navclick",n)}}},[e.text])})]),t("div",{class:Aa("content")},[u.map(function(e){return t("div",{key:e.id,class:["van-ellipsis",Aa("item",{active:c===e.id,disabled:e.disabled})],on:{click:function(){e.disabled||d(i,"itemclick",e)}}},[e.text,c===e.id&&t(W,{attrs:{name:"checked",size:"16px"},class:Aa("selected")})])})])])}ja.props={items:Array,mainActiveIndex:Number,activeId:{type:[Number,String],default:0},height:{type:Number,default:300}};var Ia=Ta(ja),Ba="@@Waterfall",Ea=300;function Na(){var t=this;if(!this.el[Ba].binded){this.el[Ba].binded=!0,this.scrollEventListener=function(){var t=this.el,e=this.scrollEventTarget;if(!this.disabled){var n=E(e),i=L(e),r=n+i;if(i){(t===e?e.scrollHeight-r0)&&this.cb.upper&&this.cb.upper({target:e,top:n})}}}.bind(this),this.scrollEventTarget=B(this.el);var e=this.el.getAttribute("waterfall-disabled"),n=!1;e&&(this.vm.$watch(e,function(e){t.disabled=e,t.scrollEventListener()}),n=Boolean(this.vm[e])),this.disabled=n;var i=this.el.getAttribute("waterfall-offset");this.offset=Number(i)||Ea,y(this.scrollEventTarget,"scroll",this.scrollEventListener,!0),this.scrollEventListener()}}function La(t){t[Ba].vm.$nextTick(function(){Na.call(t[Ba])})}var Da=function(t){return{bind:function(e,n,i){e[Ba]||(e[Ba]={el:e,vm:i.context,cb:{}}),e[Ba].cb[t]=n.value,function(t){var e=t[Ba];e.vm._isMounted?La(t):e.vm.$on("hook:mounted",function(){La(t)})}(e)},update:function(t){var e=t[Ba];e.scrollEventListener&&e.scrollEventListener()},unbind:function(t){var e=t[Ba];e.scrollEventTarget&&b(e.scrollEventTarget,"scroll",e.scrollEventListener)}}};Da.install=function(t){t.directive("WaterfallLower",Da("lower")),t.directive("WaterfallUpper",Da("upper"))};var Fa=Da;n.d(e,!1,function(){return ot}),n.d(e,!1,function(){return je}),n.d(e,!1,function(){return Xe}),n.d(e,!1,function(){return St}),n.d(e,!1,function(){return Ge}),n.d(e,!1,function(){return rn}),n.d(e,"a",function(){return te}),n.d(e,!1,function(){return yn}),n.d(e,!1,function(){return It}),n.d(e,!1,function(){return wn}),n.d(e,!1,function(){return $n}),n.d(e,!1,function(){return An}),n.d(e,!1,function(){return Dn}),n.d(e,!1,function(){return Pn}),n.d(e,!1,function(){return Wn}),n.d(e,!1,function(){return Xn}),n.d(e,!1,function(){return ei}),n.d(e,!1,function(){return ai}),n.d(e,!1,function(){return fi}),n.d(e,!1,function(){return ki}),n.d(e,!1,function(){return _i}),n.d(e,!1,function(){return Pi}),n.d(e,!1,function(){return Xi}),n.d(e,!1,function(){return ae}),n.d(e,!1,function(){return Dt}),n.d(e,!1,function(){return tr}),n.d(e,!1,function(){return or}),n.d(e,!1,function(){return lr}),n.d(e,"b",function(){return W}),n.d(e,!1,function(){return Or}),n.d(e,!1,function(){return V}),n.d(e,!1,function(){return Ar}),n.d(e,!1,function(){return Nr}),n.d(e,!1,function(){return Q}),n.d(e,!1,function(){return Lr.a}),n.d(e,!1,function(){return Pr}),n.d(e,!1,function(){return Wr}),n.d(e,!1,function(){return to}),n.d(e,!1,function(){return ho}),n.d(e,!1,function(){return O}),n.d(e,!1,function(){return yo}),n.d(e,!1,function(){return wo}),n.d(e,!1,function(){return To}),n.d(e,!1,function(){return yt}),n.d(e,!1,function(){return tt}),n.d(e,!1,function(){return Bo}),n.d(e,!1,function(){return Mo}),n.d(e,!1,function(){return Me}),n.d(e,!1,function(){return Ne}),n.d(e,!1,function(){return Ho}),n.d(e,!1,function(){return Uo}),n.d(e,!1,function(){return Go}),n.d(e,!1,function(){return Xs}),n.d(e,!1,function(){return Gs}),n.d(e,!1,function(){return ia}),n.d(e,!1,function(){return Ss}),n.d(e,!1,function(){return aa}),n.d(e,!1,function(){return pa}),n.d(e,"c",function(){return pr}),n.d(e,!1,function(){return ya}),n.d(e,"d",function(){return yr}),n.d(e,!1,function(){return be}),n.d(e,!1,function(){return Ce}),n.d(e,!1,function(){return ji}),n.d(e,!1,function(){return Sa}),n.d(e,!1,function(){return _a}),n.d(e,!1,function(){return Li}),n.d(e,!1,function(){return fn}),n.d(e,!1,function(){return Kt}),n.d(e,!1,function(){return Ia}),n.d(e,!1,function(){return Is}),n.d(e,!1,function(){return Fa});var Ma=[ot,je,Xe,St,Ge,rn,te,yn,It,wn,$n,An,Dn,Pn,Wn,Xn,ei,ai,fi,ki,_i,Pi,Xi,ae,Dt,tr,or,lr,W,Or,V,Nr,Q,Pr,Wr,to,ho,O,yo,wo,To,yt,tt,Bo,Mo,Me,Ne,Ho,Uo,Go,Xs,Gs,ia,Ss,aa,pa,pr,ya,yr,be,Ce,ji,Sa,_a,Li,fn,Kt,Ia,Is],za=function(t){Ma.forEach(function(e){t.use(e)})};"undefined"!=typeof window&&window.Vue&&za(window.Vue)},"9AUj":function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},C7Lr:function(t,e){t.exports=function(t,e,n,i,r,o){var s,a=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(s=t,a=t.default);var u,l="function"==typeof a?a.options:a;if(e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=u):i&&(u=i),u){var d=l.functional,h=d?l.render:l.beforeCreate;d?(l._injectStyles=u,l.render=function(t,e){return u.call(e),h(t,e)}):l.beforeCreate=h?[].concat(h,u):[u]}return{esModule:s,exports:a,options:l}}},D0oh:function(t,e){!function(t,e){var n,i=t.document,r=i.documentElement,o=i.querySelector('meta[name="viewport"]'),s=i.querySelector('meta[name="flexible"]'),a=0,c=0,u=e.flexible||(e.flexible={});if(o){console.warn("将根据已有的meta标签来设置缩放比例");var l=o.getAttribute("content").match(/initial\-scale=([\d\.]+)/);l&&(c=parseFloat(l[1]),a=parseInt(1/c))}else if(s){var d=s.getAttribute("content");if(d){var h=d.match(/initial\-dpr=([\d\.]+)/),f=d.match(/maximum\-dpr=([\d\.]+)/);h&&(a=parseFloat(h[1]),c=parseFloat((1/a).toFixed(2))),f&&(a=parseFloat(f[1]),c=parseFloat((1/a).toFixed(2)))}}if(!a&&!c){t.navigator.appVersion.match(/android/gi);var p=t.navigator.appVersion.match(/iphone/gi),v=t.devicePixelRatio;c=1/(a=p?v>=3&&(!a||a>=3)?3:v>=2&&(!a||a>=2)?2:1:1)}if(r.setAttribute("data-dpr",a),!o)if((o=i.createElement("meta")).setAttribute("name","viewport"),o.setAttribute("content","initial-scale="+c+", maximum-scale="+c+", minimum-scale="+c+", user-scalable=no"),r.firstElementChild)r.firstElementChild.appendChild(o);else{var m=i.createElement("div");m.appendChild(o),i.write(m.innerHTML)}function g(){var e=r.getBoundingClientRect().width;e/a>540&&(e=540*a);var n=e/10;r.style.fontSize=n+"px",u.rem=t.rem=n}t.addEventListener("resize",function(){clearTimeout(n),n=setTimeout(g,300)},!1),t.addEventListener("pageshow",function(t){t.persisted&&(clearTimeout(n),n=setTimeout(g,300))},!1),"complete"===i.readyState?i.body.style.fontSize=12*a+"px":i.addEventListener("DOMContentLoaded",function(t){i.body.style.fontSize=12*a+"px"},!1),g(),u.dpr=t.dpr=a,u.refreshRem=g,u.rem2px=function(t){var e=parseFloat(t)*this.rem;return"string"==typeof t&&t.match(/rem$/)&&(e+="px"),e},u.px2rem=function(t){var e=parseFloat(t)/this.rem;return"string"==typeof t&&t.match(/px$/)&&(e+="rem"),e}}(window,window.lib||(window.lib={}))},TExJ:function(t,e,n){"use strict";e.a=o;var i=n("tm21"),r=Object.prototype.hasOwnProperty;function o(t,e){return Object.keys(e).forEach(function(n){!function(t,e,n){var s=e[n];Object(i.d)(s)&&(r.call(t,n)&&Object(i.g)(s)?t[n]=o(Object(t[n]),e[n]):t[n]=s)}(t,e,n)}),t}},VsCf:function(t,e,n){"use strict";(function(t){e.b=function(t){return s.call(o,t)},e.a=function(t){a.call(o,t)};var i=n("tm21"),r=Date.now();var o=i.h?t:window,s=o.requestAnimationFrame||function(t){var e=Date.now(),n=Math.max(0,16-(e-r)),i=setTimeout(t,n);return r=e+n,i},a=o.cancelAnimationFrame||o.clearTimeout}).call(e,n("9AUj"))},j6cy:function(t,e,n){"use strict";function i(){return(i=Object.assign||function(t){for(var e,n=1;n=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return r(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function f(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function k(t,e){return b.call(t,e)}function x(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var S=/-(\w)/g,w=x(function(t){return t.replace(S,function(t,e){return e?e.toUpperCase():""})}),C=x(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),$=/\B([A-Z])/g,_=x(function(t){return t.replace($,"-$1").toLowerCase()});var O=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function T(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function A(t,e){for(var n in e)t[n]=e[n];return t}function j(t){for(var e={},n=0;n0,G=Q&&Q.indexOf("edge/")>0,tt=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===X),et=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),nt={}.watch,it=!1;if(U)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){it=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var ot=function(){return void 0===q&&(q=!U&&!K&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),q},st=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var ct,ut="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);ct="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var lt=I,dt=0,ht=function(){this.id=dt++,this.subs=[]};ht.prototype.addSub=function(t){this.subs.push(t)},ht.prototype.removeSub=function(t){y(this.subs,t)},ht.prototype.depend=function(){ht.target&&ht.target.addDep(this)},ht.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!k(r,"default"))s=!1;else if(""===s||s===_(t)){var c=Rt(String,r.type);(c<0||a0&&(de((u=t(u,(n||"")+"_"+c))[0])&&de(d)&&(a[l]=bt(d.text+u[0].text),u.shift()),a.push.apply(a,u)):s(u)?de(d)?a[l]=bt(d.text+u):""!==u&&a.push(bt(u)):de(u)&&de(d)?a[l]=bt(d.text+u.text):(o(e._isVList)&&r(u.tag)&&i(u.key)&&r(n)&&(u.key="__vlist"+n+"_"+c+"__"),a.push(u)));return a}(t):void 0}function de(t){return r(t)&&r(t.text)&&!1===t.isComment}function he(t,e){if(t){for(var n=Object.create(null),i=ut?Reflect.ownKeys(t):Object.keys(t),r=0;r0,s=t?!!t.$stable:!o,a=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&i&&i!==n&&a===i.$key&&!o&&!i.$hasNormal)return i;for(var c in r={},t)t[c]&&"$"!==c[0]&&(r[c]=me(e,c,t[c]))}else r={};for(var u in e)u in r||(r[u]=ge(e,u));return t&&Object.isExtensible(t)&&(t._normalized=r),H(r,"$stable",s),H(r,"$key",a),H(r,"$hasNormal",o),r}function me(t,e,n){var i=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:le(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:i,enumerable:!0,configurable:!0}),i}function ge(t,e){return function(){return t[e]}}function ye(t,e){var n,i,o,s,c;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),i=0,o=t.length;idocument.createEvent("Event").timeStamp&&(dn=function(){return hn.now()})}function fn(){var t,e;for(ln=dn(),cn=!0,rn.sort(function(t,e){return t.id-e.id}),un=0;unun&&rn[n].id>t.id;)n--;rn.splice(n+1,0,t)}else rn.push(t);an||(an=!0,ne(fn))}}(this)},vn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||a(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ht(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},vn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},vn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},vn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var mn={enumerable:!0,configurable:!0,get:I,set:I};function gn(t,e,n){mn.get=function(){return this[e][n]},mn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,mn)}function yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[],o=!t.$parent;o||$t(!1);var s=function(o){r.push(o);var s=zt(o,e,n,t);Tt(i,o,s),o in t||gn(t,"_props",o)};for(var a in e)s(a);$t(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?I:O(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;u(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return Ht(t,e,"data()"),{}}finally{vt()}}(e,t):e||{})||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);for(;r--;){var o=n[r];0,i&&k(i,o)||R(o)||gn(t,"_data",o)}Ot(e,!0)}(t):Ot(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),i=ot();for(var r in e){var o=e[r],s="function"==typeof o?o:o.get;0,i||(n[r]=new vn(t,s||I,I,bn)),r in t||kn(t,r,o)}}(t,e.computed),e.watch&&e.watch!==nt&&function(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function jn(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var o in n){var s=n[o];if(s){var a=Tn(s.componentOptions);a&&!e(a)&&In(n,o,i,r)}}}function In(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=Cn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),i=e._parentVnode;n.parent=e.parent,n._parentVnode=i;var r=i.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Ft($n(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Je(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,i=t.$vnode=e._parentVnode,r=i&&i.context;t.$slots=fe(e._renderChildren,r),t.$scopedSlots=n,t._c=function(e,n,i,r){return Re(t,e,n,i,r,!1)},t.$createElement=function(e,n,i,r){return Re(t,e,n,i,r,!0)};var o=i&&i.data;Tt(t,"$attrs",o&&o.attrs||n,null,!0),Tt(t,"$listeners",e._parentListeners||n,null,!0)}(e),nn(e,"beforeCreate"),function(t){var e=he(t.$options.inject,t);e&&($t(!1),Object.keys(e).forEach(function(n){Tt(t,n,e[n])}),$t(!0))}(e),yn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),nn(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(_n),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=At,t.prototype.$delete=jt,t.prototype.$watch=function(t,e,n){if(u(e))return wn(this,t,e,n);(n=n||{}).user=!0;var i=new vn(this,t,e,n);if(n.immediate)try{e.call(this,i.value)}catch(t){Ht(t,this,'callback for immediate watcher "'+i.expression+'"')}return function(){i.teardown()}}}(_n),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var i=this;if(Array.isArray(t))for(var r=0,o=t.length;r1?T(n):n;for(var i=T(arguments,1),r='event handler for "'+t+'"',o=0,s=n.length;oparseInt(this.max)&&In(s,a[0],a,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return P}};Object.defineProperty(t,"config",e),t.util={warn:lt,extend:A,mergeOptions:Ft,defineReactive:Tt},t.set=At,t.delete=jt,t.nextTick=ne,t.observable=function(t){return Ot(t),t},t.options=Object.create(null),M.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,A(t.options.components,En),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=T(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Ft(this.options,t),this}}(t),On(t),function(t){M.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(_n),Object.defineProperty(_n.prototype,"$isServer",{get:ot}),Object.defineProperty(_n.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(_n,"FunctionalRenderContext",{value:Ee}),_n.version="2.6.11";var Nn=v("style,class"),Ln=v("input,textarea,option,select,progress"),Dn=function(t,e,n){return"value"===n&&Ln(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Fn=v("contenteditable,draggable,spellcheck"),Mn=v("events,caret,typing,plaintext-only"),zn=function(t,e){return Wn(e)||"false"===e?"false":"contenteditable"===t&&Mn(e)?e:"true"},Pn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Vn="http://www.w3.org/1999/xlink",Rn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Hn=function(t){return Rn(t)?t.slice(6,t.length):""},Wn=function(t){return null==t||!1===t};function qn(t){for(var e=t.data,n=t,i=t;r(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=Yn(i.data,e));for(;r(n=n.parent);)n&&n.data&&(e=Yn(e,n.data));return function(t,e){if(r(t)||r(e))return Un(t,Kn(e));return""}(e.staticClass,e.class)}function Yn(t,e){return{staticClass:Un(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Un(t,e){return t?e?t+" "+e:t:e||""}function Kn(t){return Array.isArray(t)?function(t){for(var e,n="",i=0,o=t.length;i-1?bi(t,e,n):Pn(e)?Wn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Fn(e)?t.setAttribute(e,zn(e,n)):Rn(e)?Wn(n)?t.removeAttributeNS(Vn,Hn(e)):t.setAttributeNS(Vn,e,n):bi(t,e,n)}function bi(t,e,n){if(Wn(n))t.removeAttribute(e);else{if(J&&!Z&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var ki={create:gi,update:gi};function xi(t,e){var n=e.elm,o=e.data,s=t.data;if(!(i(o.staticClass)&&i(o.class)&&(i(s)||i(s.staticClass)&&i(s.class)))){var a=qn(e),c=n._transitionClasses;r(c)&&(a=Un(a,Kn(c))),a!==n._prevClass&&(n.setAttribute("class",a),n._prevClass=a)}}var Si,wi,Ci,$i,_i,Oi,Ti={create:xi,update:xi},Ai=/[\w).+\-_$\]]/;function ji(t){var e,n,i,r,o,s=!1,a=!1,c=!1,u=!1,l=0,d=0,h=0,f=0;for(i=0;i=0&&" "===(v=t.charAt(p));p--);v&&Ai.test(v)||(u=!0)}}else void 0===r?(f=i+1,r=t.slice(0,i).trim()):m();function m(){(o||(o=[])).push(t.slice(f,i).trim()),f=i+1}if(void 0===r?r=t.slice(0,i).trim():0!==f&&m(),o)for(i=0;i-1?{exp:t.slice(0,$i),key:'"'+t.slice($i+1)+'"'}:{exp:t,key:null};wi=t,$i=_i=Oi=0;for(;!Ki();)Xi(Ci=Ui())?Ji(Ci):91===Ci&&Qi(Ci);return{exp:t.slice(0,_i),key:t.slice(_i+1,Oi)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Ui(){return wi.charCodeAt(++$i)}function Ki(){return $i>=Si}function Xi(t){return 34===t||39===t}function Qi(t){var e=1;for(_i=$i;!Ki();)if(Xi(t=Ui()))Ji(t);else if(91===t&&e++,93===t&&e--,0===e){Oi=$i;break}}function Ji(t){for(var e=t;!Ki()&&(t=Ui())!==e;);}var Zi,Gi="__r",tr="__c";function er(t,e,n){var i=Zi;return function r(){null!==e.apply(null,arguments)&&rr(t,r,n,i)}}var nr=Kt&&!(et&&Number(et[1])<=53);function ir(t,e,n,i){if(nr){var r=ln,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Zi.addEventListener(t,e,it?{capture:n,passive:i}:n)}function rr(t,e,n,i){(i||Zi).removeEventListener(t,e._wrapper||e,n)}function or(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},o=t.data.on||{};Zi=e.elm,function(t){if(r(t[Gi])){var e=J?"change":"input";t[e]=[].concat(t[Gi],t[e]||[]),delete t[Gi]}r(t[tr])&&(t.change=[].concat(t[tr],t.change||[]),delete t[tr])}(n),ae(n,o,ir,rr,er,e.context),Zi=void 0}}var sr,ar={create:or,update:or};function cr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,o,s=e.elm,a=t.data.domProps||{},c=e.data.domProps||{};for(n in r(c.__ob__)&&(c=e.data.domProps=A({},c)),a)n in c||(s[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===a[n])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===n&&"PROGRESS"!==s.tagName){s._value=o;var u=i(o)?"":String(o);ur(s,u)&&(s.value=u)}else if("innerHTML"===n&&Jn(s.tagName)&&i(s.innerHTML)){(sr=sr||document.createElement("div")).innerHTML=""+o+"";for(var l=sr.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;l.firstChild;)s.appendChild(l.firstChild)}else if(o!==a[n])try{s[n]=o}catch(t){}}}}function ur(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,i=t._vModifiers;if(r(i)){if(i.number)return p(n)!==p(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var lr={create:cr,update:cr},dr=x(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var i=t.split(n);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e});function hr(t){var e=fr(t.style);return t.staticStyle?A(t.staticStyle,e):e}function fr(t){return Array.isArray(t)?j(t):"string"==typeof t?dr(t):t}var pr,vr=/^--/,mr=/\s*!important$/,gr=function(t,e,n){if(vr.test(e))t.style.setProperty(e,n);else if(mr.test(n))t.style.setProperty(_(e),n.replace(mr,""),"important");else{var i=br(e);if(Array.isArray(n))for(var r=0,o=n.length;r-1?e.split(Sr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Cr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Sr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function $r(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&A(e,_r(t.name||"v")),A(e,t),e}return"string"==typeof t?_r(t):void 0}}var _r=x(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Or=U&&!Z,Tr="transition",Ar="animation",jr="transition",Ir="transitionend",Br="animation",Er="animationend";Or&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(jr="WebkitTransition",Ir="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Br="WebkitAnimation",Er="webkitAnimationEnd"));var Nr=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Lr(t){Nr(function(){Nr(t)})}function Dr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),wr(t,e))}function Fr(t,e){t._transitionClasses&&y(t._transitionClasses,e),Cr(t,e)}function Mr(t,e,n){var i=Pr(t,e),r=i.type,o=i.timeout,s=i.propCount;if(!r)return n();var a=r===Tr?Ir:Er,c=0,u=function(){t.removeEventListener(a,l),n()},l=function(e){e.target===t&&++c>=s&&u()};setTimeout(function(){c0&&(n=Tr,l=s,d=o.length):e===Ar?u>0&&(n=Ar,l=u,d=c.length):d=(n=(l=Math.max(s,u))>0?s>u?Tr:Ar:null)?n===Tr?o.length:c.length:0,{type:n,timeout:l,propCount:d,hasTransform:n===Tr&&zr.test(i[jr+"Property"])}}function Vr(t,e){for(;t.length1}function Ur(t,e){!0!==e.data.show&&Hr(e)}var Kr=function(t){var e,n,a={},c=t.modules,u=t.nodeOps;for(e=0;ep?b(t,i(n[g+1])?null:n[g+1].elm,n,f,g,o):f>g&&x(e,h,p)}(h,v,g,n,l):r(g)?(r(t.text)&&u.setTextContent(h,""),b(h,null,g,0,g.length-1,n)):r(v)?x(v,0,v.length-1):r(t.text)&&u.setTextContent(h,""):t.text!==e.text&&u.setTextContent(h,e.text),r(p)&&r(f=p.hook)&&r(f=f.postpatch)&&f(t,e)}}}function $(t,e,n){if(o(n)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,s.selected!==o&&(s.selected=o);else if(N(Gr(s),i))return void(t.selectedIndex!==a&&(t.selectedIndex=a));r||(t.selectedIndex=-1)}}function Zr(t,e){return e.every(function(e){return!N(e,t)})}function Gr(t){return"_value"in t?t._value:t.value}function to(t){t.target.composing=!0}function eo(t){t.target.composing&&(t.target.composing=!1,no(t.target,"input"))}function no(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function io(t){return!t.componentInstance||t.data&&t.data.transition?t:io(t.componentInstance._vnode)}var ro={model:Xr,show:{bind:function(t,e,n){var i=e.value,r=(n=io(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,Hr(n,function(){t.style.display=o})):t.style.display=i?o:"none"},update:function(t,e,n){var i=e.value;!i!=!e.oldValue&&((n=io(n)).data&&n.data.transition?(n.data.show=!0,i?Hr(n,function(){t.style.display=t.__vOriginalDisplay}):Wr(n,function(){t.style.display="none"})):t.style.display=i?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}}},oo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function so(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?so(Ue(e.children)):t}function ao(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var o in r)e[w(o)]=r[o];return e}function co(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var uo=function(t){return t.tag||Ye(t)},lo=function(t){return"show"===t.name},ho={name:"transition",props:oo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(uo)).length){0;var i=this.mode;0;var r=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return r;var o=so(r);if(!o)return r;if(this._leaving)return co(t,r);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var c=(o.data||(o.data={})).transition=ao(this),u=this._vnode,l=so(u);if(o.data.directives&&o.data.directives.some(lo)&&(o.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,l)&&!Ye(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var d=l.data.transition=A({},c);if("out-in"===i)return this._leaving=!0,ce(d,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),co(t,r);if("in-out"===i){if(Ye(o))return u;var h,f=function(){h()};ce(c,"afterEnter",f),ce(c,"enterCancelled",f),ce(d,"delayLeave",function(t){h=t})}}return r}}},fo=A({tag:String,moveClass:String},oo);function po(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function vo(t){t.data.newPos=t.elm.getBoundingClientRect()}function mo(t){var e=t.data.pos,n=t.data.newPos,i=e.left-n.left,r=e.top-n.top;if(i||r){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+i+"px,"+r+"px)",o.transitionDuration="0s"}}delete fo.mode;var go={Transition:ho,TransitionGroup:{props:fo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Ge(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],s=ao(this),a=0;a-1?ti[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:ti[t]=/HTMLUnknownElement/.test(e.toString())},A(_n.options.directives,ro),A(_n.options.components,go),_n.prototype.__patch__=U?Kr:I,_n.prototype.$mount=function(t,e){return function(t,e,n){return t.$el=e,t.$options.render||(t.$options.render=yt),nn(t,"beforeMount"),new vn(t,function(){t._update(t._render(),n)},I,{before:function(){t._isMounted&&!t._isDestroyed&&nn(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,nn(t,"mounted")),t}(this,t=t&&U?ni(t):void 0,e)},U&&setTimeout(function(){P.devtools&&st&&st.emit("init",_n)},0);var yo=/\{\{((?:.|\r?\n)+?)\}\}/g,bo=/[-.*+?^${}()|[\]\/\\]/g,ko=x(function(t){var e=t[0].replace(bo,"\\$&"),n=t[1].replace(bo,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")});function xo(t,e){var n=e?ko(e):yo;if(n.test(t)){for(var i,r,o,s=[],a=[],c=n.lastIndex=0;i=n.exec(t);){(r=i.index)>c&&(a.push(o=t.slice(c,r)),s.push(JSON.stringify(o)));var u=ji(i[1].trim());s.push("_s("+u+")"),a.push({"@binding":u}),c=r+i[0].length}return c\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,jo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Io="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+V.source+"]*",Bo="((?:"+Io+"\\:)?"+Io+")",Eo=new RegExp("^<"+Bo),No=/^\s*(\/?)>/,Lo=new RegExp("^<\\/"+Bo+"[^>]*>"),Do=/^]+>/i,Fo=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},Ro=/&(?:lt|gt|quot|amp|#39);/g,Ho=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Wo=v("pre,textarea",!0),qo=function(t,e){return t&&Wo(t)&&"\n"===e[0]};function Yo(t,e){var n=e?Ho:Ro;return t.replace(n,function(t){return Vo[t]})}var Uo,Ko,Xo,Qo,Jo,Zo,Go,ts,es=/^@|^v-on:/,ns=/^v-|^@|^:|^#/,is=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,rs=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,os=/^\(|\)$/g,ss=/^\[.*\]$/,as=/:(.*)$/,cs=/^:|^\.|^v-bind:/,us=/\.[^.\]]+(?=[^\]]*$)/g,ls=/^v-slot(:|$)|^#/,ds=/[\r\n]/,hs=/\s+/g,fs=x($o),ps="_empty_";function vs(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:function(t){for(var e={},n=0,i=t.length;n]*>)","i")),h=t.replace(d,function(t,n,i){return u=i.length,zo(l)||"noscript"===l||(n=n.replace(//g,"$1").replace(//g,"$1")),qo(l,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});c+=t.length-h.length,t=h,_(l,c-u,c)}else{var f=t.indexOf("<");if(0===f){if(Fo.test(t)){var p=t.indexOf("--\x3e");if(p>=0){e.shouldKeepComment&&e.comment(t.substring(4,p),c,c+p+3),w(p+3);continue}}if(Mo.test(t)){var v=t.indexOf("]>");if(v>=0){w(v+2);continue}}var m=t.match(Do);if(m){w(m[0].length);continue}var g=t.match(Lo);if(g){var y=c;w(g[0].length),_(g[1],y,c);continue}var b=C();if(b){$(b),qo(b.tagName,t)&&w(1);continue}}var k=void 0,x=void 0,S=void 0;if(f>=0){for(x=t.slice(f);!(Lo.test(x)||Eo.test(x)||Fo.test(x)||Mo.test(x)||(S=x.indexOf("<",1))<0);)f+=S,x=t.slice(f);k=t.substring(0,f)}f<0&&(k=t),k&&w(k.length),e.chars&&k&&e.chars(k,c-k.length,c)}if(t===n){e.chars&&e.chars(t);break}}function w(e){c+=e,t=t.substring(e)}function C(){var e=t.match(Eo);if(e){var n,i,r={tagName:e[1],attrs:[],start:c};for(w(e[0].length);!(n=t.match(No))&&(i=t.match(jo)||t.match(Ao));)i.start=c,w(i[0].length),i.end=c,r.attrs.push(i);if(n)return r.unarySlash=n[1],w(n[0].length),r.end=c,r}}function $(t){var n=t.tagName,c=t.unarySlash;o&&("p"===i&&To(n)&&_(i),a(n)&&i===n&&_(n));for(var u=s(n)||!!c,l=t.attrs.length,d=new Array(l),h=0;h=0&&r[s].lowerCasedTag!==a;s--);else s=0;if(s>=0){for(var u=r.length-1;u>=s;u--)e.end&&e.end(r[u].tag,n,o);r.length=s,i=s&&r[s-1].tag}else"br"===a?e.start&&e.start(t,[],!0,n,o):"p"===a&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}_()}(t,{warn:Uo,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,n,s,a,d){var h=r&&r.ns||ts(t);J&&"svg"===h&&(n=function(t){for(var e=[],n=0;n-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),zi(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+s+");if(Array.isArray($$a)){var $$v="+(i?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Yi(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Yi(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Yi(e,"$$c")+"}",null,!0)}(t,i,r);else if("input"===o&&"radio"===s)!function(t,e,n){var i=n&&n.number,r=Vi(t,"value")||"null";Ni(t,"checked","_q("+e+","+(r=i?"_n("+r+")":r)+")"),zi(t,"change",Yi(e,r),null,!0)}(t,i,r);else if("input"===o||"textarea"===o)!function(t,e,n){var i=t.attrsMap.type,r=n||{},o=r.lazy,s=r.number,a=r.trim,c=!o&&"range"!==i,u=o?"change":"range"===i?Gi:"input",l="$event.target.value";a&&(l="$event.target.value.trim()"),s&&(l="_n("+l+")");var d=Yi(e,l);c&&(d="if($event.target.composing)return;"+d),Ni(t,"value","("+e+")"),zi(t,u,d,null,!0),(a||s)&&zi(t,"blur","$forceUpdate()")}(t,i,r);else if(!P.isReservedTag(o))return qi(t,i,r),!1;return!0},text:function(t,e){e.value&&Ni(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&Ni(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:_o,mustUseProp:Dn,canBeLeftOpenTag:Oo,isReservedTag:Zn,getTagNamespace:Gn,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}($s)},As=x(function(t){return v("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))});function js(t,e){t&&(_s=As(e.staticKeys||""),Os=e.isReservedTag||B,function t(e){e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||m(t.tag)||!Os(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(_s)))}(e);if(1===e.type){if(!Os(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,i=e.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,Bs=/\([^)]*?\);*$/,Es=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ns={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ls={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Ds=function(t){return"if("+t+")return null;"},Fs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Ds("$event.target !== $event.currentTarget"),ctrl:Ds("!$event.ctrlKey"),shift:Ds("!$event.shiftKey"),alt:Ds("!$event.altKey"),meta:Ds("!$event.metaKey"),left:Ds("'button' in $event && $event.button !== 0"),middle:Ds("'button' in $event && $event.button !== 1"),right:Ds("'button' in $event && $event.button !== 2")};function Ms(t,e){var n=e?"nativeOn:":"on:",i="",r="";for(var o in t){var s=zs(t[o]);t[o]&&t[o].dynamic?r+=o+","+s+",":i+='"'+o+'":'+s+","}return i="{"+i.slice(0,-1)+"}",r?n+"_d("+i+",["+r.slice(0,-1)+"])":n+i}function zs(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map(function(t){return zs(t)}).join(",")+"]";var e=Es.test(t.value),n=Is.test(t.value),i=Es.test(t.value.replace(Bs,""));if(t.modifiers){var r="",o="",s=[];for(var a in t.modifiers)if(Fs[a])o+=Fs[a],Ns[a]&&s.push(a);else if("exact"===a){var c=t.modifiers;o+=Ds(["ctrl","shift","alt","meta"].filter(function(t){return!c[t]}).map(function(t){return"$event."+t+"Key"}).join("||"))}else s.push(a);return s.length&&(r+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(Ps).join("&&")+")return null;"}(s)),o&&(r+=o),"function($event){"+r+(e?"return "+t.value+"($event)":n?"return ("+t.value+")($event)":i?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(i?"return "+t.value:t.value)+"}"}function Ps(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=Ns[t],i=Ls[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(i)+")"}var Vs={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:I},Rs=function(t){this.options=t,this.warn=t.warn||Bi,this.transforms=Ei(t.modules,"transformCode"),this.dataGenFns=Ei(t.modules,"genData"),this.directives=A(A({},Vs),t.directives);var e=t.isReservedTag||B;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Hs(t,e){var n=new Rs(e);return{render:"with(this){return "+(t?Ws(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ws(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return qs(t,e);if(t.once&&!t.onceProcessed)return Ys(t,e);if(t.for&&!t.forProcessed)return Ks(t,e);if(t.if&&!t.ifProcessed)return Us(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',i=Zs(t,e),r="_t("+n+(i?","+i:""),o=t.attrs||t.dynamicAttrs?ea((t.attrs||[]).concat(t.dynamicAttrs||[]).map(function(t){return{name:w(t.name),value:t.value,dynamic:t.dynamic}})):null,s=t.attrsMap["v-bind"];!o&&!s||i||(r+=",null");o&&(r+=","+o);s&&(r+=(o?"":",null")+","+s);return r+")"}(t,e);var n;if(t.component)n=function(t,e,n){var i=e.inlineTemplate?null:Zs(e,n,!0);return"_c("+t+","+Xs(e,n)+(i?","+i:"")+")"}(t.component,t,e);else{var i;(!t.plain||t.pre&&e.maybeComponent(t))&&(i=Xs(t,e));var r=t.inlineTemplate?null:Zs(t,e,!0);n="_c('"+t.tag+"'"+(i?","+i:"")+(r?","+r:"")+")"}for(var o=0;o>>0}(s):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];0;if(n&&1===n.type){var i=Hs(n,e.options);return"inlineTemplate:{render:function(){"+i.render+"},staticRenderFns:["+i.staticRenderFns.map(function(t){return"function(){"+t+"}"}).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+ea(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function Qs(t){return 1===t.type&&("slot"===t.tag||t.children.some(Qs))}function Js(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Us(t,e,Js,"null");if(t.for&&!t.forProcessed)return Ks(t,e,Js);var i=t.slotScope===ps?"":String(t.slotScope),r="function("+i+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(Zs(t,e)||"undefined")+":undefined":Zs(t,e)||"undefined":Ws(t,e))+"}",o=i?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+r+o+"}"}function Zs(t,e,n,i,r){var o=t.children;if(o.length){var s=o[0];if(1===o.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var a=n?e.maybeComponent(s)?",1":",0":"";return""+(i||Ws)(s,e)+a}var c=n?function(t,e){for(var n=0,i=0;i':'
',sa.innerHTML.indexOf(" ")>0}var la=!!U&&ua(!1),da=!!U&&ua(!0),ha=x(function(t){var e=ni(t);return e&&e.innerHTML}),fa=_n.prototype.$mount;_n.prototype.$mount=function(t,e){if((t=t&&ni(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var i=n.template;if(i)if("string"==typeof i)"#"===i.charAt(0)&&(i=ha(i));else{if(!i.nodeType)return this;i=i.innerHTML}else t&&(i=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(i){0;var r=ca(i,{outputSourceRange:!1,shouldDecodeNewlines:la,shouldDecodeNewlinesForHref:da,delimiters:n.delimiters,comments:n.comments},this),o=r.render,s=r.staticRenderFns;n.render=o,n.staticRenderFns=s}}return fa.call(this,t,e)},_n.compile=ca,e.a=_n}).call(e,n("9AUj"))},lJzc:function(t,e,n){var i;i=function(){"use strict";function t(t){t=t||{};var i=arguments.length,r=0;if(1===i)return t;for(;++r-1?t.splice(n,1):void 0}}function o(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var n=t.getAttribute("data-srcset"),i=[],r=t.parentNode.offsetWidth*e,o=void 0,s=void 0,a=void 0;(n=n.trim().split(",")).map(function(t){t=t.trim(),-1===(o=t.lastIndexOf(" "))?(s=t,a=999998):(s=t.substr(0,o),a=parseInt(t.substr(o+1,t.length-o-2),10)),i.push([a,s])}),i.sort(function(t,e){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 c="",u=void 0,l=i.length,d=0;d=r){c=u[1];break}return c}}function s(t,e){for(var n=void 0,i=0,r=t.length;i0&&void 0!==arguments[0]?arguments[0]:1;return m&&window.devicePixelRatio||t},x=function(){if(m){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}(),S={on:function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];x?t.addEventListener(e,n,{capture:i,passive:!0}):t.addEventListener(e,n,i)},off:function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t.removeEventListener(e,n,i)}},w=function(t,e,n){var i=new Image;i.src=t.src,i.onload=function(){e({naturalHeight:i.naturalHeight,naturalWidth:i.naturalWidth,src:i.src})},i.onerror=function(t){n(t)}},C=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},$=function(t){return C(t,"overflow")+C(t,"overflow-y")+C(t,"overflow-x")},_={},O=function(){function t(e){var n=e.el,i=e.src,r=e.error,o=e.loading,s=e.bindType,a=e.$parent,c=e.options,l=e.elRenderer;u(this,t),this.el=n,this.src=i,this.error=r,this.loading=o,this.bindType=s,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=c,this.rect=null,this.$parent=a,this.elRenderer=l,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render("loading",!1)}return l(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,n=t.loading,i=t.error,r=this.src;this.src=e,this.loading=n,this.error=i,this.filter(),r!==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.topthis.options.preLoadTop&&this.rect.left0}},{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 n in t)t.hasOwnProperty(n)&&e.push(n);return e})(this.options.filter).map(function(e){t.options.filter[e](t,t.options)})}},{key:"renderLoading",value:function(t){var e=this;w({src:this.loading},function(n){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]:a;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"),w({src:t.src},function(n){t.naturalHeight=n.naturalHeight,t.naturalWidth=n.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}(),T="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",A=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],j={rootMargin:"0px",threshold:0},I=function(t){return function(){function e(t){var n=t.preLoad,i=t.error,r=t.throttleWait,o=t.preLoadTop,s=t.dispatchEvent,a=t.loading,c=t.attempt,l=t.silent,d=void 0===l||l,h=t.scale,f=t.listenEvents,p=(t.hasbind,t.filter),v=t.adapter,g=t.observer,b=t.observerOptions;u(this,e),this.version="1.2.3",this.mode=y.event,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:d,dispatchEvent:!!s,throttleWait:r||200,preLoad:n||1.3,preLoadTop:o||0,error:i||T,loading:a||T,attempt:c||3,scale:h||k(h),ListenEvents:f||A,hasbind:!1,supportWebp:function(){if(!m)return!1;var t=!0,e=document;try{var n=e.createElement("object");n.type="image/webp",n.style.visibility="hidden",n.innerHTML="!",e.body.appendChild(n),t=!n.offsetWidth,e.body.removeChild(n)}catch(e){t=!1}return t}(),filter:p||{},adapter:v||{},observer:!!g,observerOptions:b||j},this._initEvent(),this.lazyLoadHandler=function(t,e){var n=null,i=0;return function(){if(!n){var r=this,o=arguments,s=function(){i=Date.now(),n=!1,t.apply(r,o)};Date.now()-i>=e?s():n=setTimeout(s,e)}}}(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?y.observer:y.event)}return l(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),m&&(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,n,i){var r=this;if(function(t,e){for(var n=!1,i=0,r=t.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=new(I(t))(e),i=new B({lazy:n}),r="2"===t.version.split(".")[0];t.prototype.$Lazyload=n,e.lazyComponent&&t.component("lazy-component",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(),m&&this.rect.top0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}}(n)),r?(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:i.bind.bind(i),update:i.update.bind(i),unbind:i.unbind.bind(i)})):(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){i.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:e},{context:this.vm})},unbind:function(){i.unbind(this.el)}}))}}},t.exports=i()},tgu0:function(t,e,n){"use strict";var i=n("kV13"),r=n("TExJ"),o=i.a.prototype,s=i.a.util.defineReactive;s(o,"$vantLang","zh-CN"),s(o,"$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 o.$vantMessages[o.$vantLang]},use:function(t,e){var n;o.$vantLang=t,this.add(((n={})[t]=e,n))},add:function(t){void 0===t&&(t={}),Object(r.a)(o.$vantMessages,t)}}},tm21:function(t,e,n){"use strict";var i=n("kV13"),r="--";function o(t,e,n){return e?t+n+e:t}var s=function(t){return function(e,n){return e&&"string"!=typeof e&&(n=e,e=""),e=o(t,e,"__"),n?[e,function t(e,n){if("string"==typeof n)return o(e,n,r);if(Array.isArray(n))return n.map(function(n){return t(e,n)});var i={};return n&&Object.keys(n).forEach(function(t){i[e+r+t]=n[t]}),i}(e,n)]:e}},a=n("tgu0"),c={methods:{slots:function(t,e){void 0===t&&(t="default");var n=this.$slots,i=this.$scopedSlots;return i[t]?i[t](e):n[t]}}},u={type:Array,default:function(){return[]}},l={type:Number,default:0};function d(t){var e=this.name;t.component(e,this),t.component(k("-"+e),this)}function h(t){return{functional:!0,props:t.props,model:t.model,render:function(e,n){return t(e,n.props,function(t){var e=t.scopedSlots||t.data.scopedSlots||{},n=t.slots();return Object.keys(n).forEach(function(t){e[t]||(e[t]=function(){return n[t]})}),e}(n),n)}}}var f=function(t){return function(e){var n;return"function"==typeof e&&(e=h(e)),e.functional||(e.mixins=e.mixins||[],e.mixins.push(c)),e.props&&(n=e.props,Object.keys(n).forEach(function(t){n[t]===Array?n[t]=u:n[t]===Number&&(n[t]=l)})),e.name=t,e.install=d,e}},p=function(t){var e=k(t)+".";return function(t){for(var n=y(a.a.messages(),e+t)||y(a.a.messages(),t),i=arguments.length,r=new Array(i>1?i-1:0),o=1;o 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var listeners = context.listeners[eventName];\n\n if (listeners) {\n if (Array.isArray(listeners)) {\n listeners.forEach(function (listener) {\n listener.apply(void 0, args);\n });\n } else {\n listeners.apply(void 0, args);\n }\n }\n} // mount functional component\n\nexport function mount(Component, data) {\n var instance = new Vue({\n el: document.createElement('div'),\n props: Component.props,\n render: function render(h) {\n return h(Component, _extends({\n props: this.$props\n }, data));\n }\n });\n document.body.appendChild(instance.$el);\n return instance;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/functional.js\n// module id = null\n// module chunks = ","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/popup/context.js\n// module id = null\n// module chunks = ","var MIN_DISTANCE = 10;\n\nfunction getDirection(x, y) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0];\n this.deltaX = touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY);\n this.direction = this.direction || getDirection(this.offsetX, this.offsetY);\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/touch.js\n// module id = null\n// module chunks = ","/* eslint-disable no-empty */\n\n/* eslint-disable getter-return */\n\n/* eslint-disable import/no-mutable-exports */\nimport { isServer } from '.';\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/event.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/event'; // Types\n\nvar _use = use('overlay'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.visible\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": function touchmove(event) {\n preventDefault(event, true);\n }\n }\n }, inherit(ctx, true)]))]);\n}\n\nOverlay.props = {\n zIndex: Number,\n className: null,\n visible: Boolean,\n customStyle: Object\n};\nexport default sfc(Overlay);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/overlay/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\nvar overlay; // close popup when click overlay && closeOnClickOverlay is true\n\nfunction onClickOverlay() {\n if (context.top) {\n var vm = context.top.vm;\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n}\n\nexport function updateOverlay() {\n if (!overlay) {\n overlay = mount(Overlay, {\n on: {\n click: onClickOverlay\n }\n });\n }\n\n if (context.top) {\n var _context$top = context.top,\n vm = _context$top.vm,\n config = _context$top.config;\n var el = vm.$el;\n var target = el && el.parentNode ? el.parentNode : document.body;\n\n if (target) {\n target.appendChild(overlay.$el);\n }\n\n _extends(overlay, defaultConfig, config, {\n visible: true\n });\n } else {\n overlay.visible = false;\n }\n}\nexport function openOverlay(vm, config) {\n if (!context.stack.some(function (item) {\n return item.vm === vm;\n })) {\n context.stack.push({\n vm: vm,\n config: config\n });\n updateOverlay();\n }\n}\nexport function closeOverlay(vm) {\n var stack = context.stack;\n\n if (stack.length) {\n if (context.top.vm === vm) {\n stack.pop();\n updateOverlay();\n } else {\n context.stack = stack.filter(function (item) {\n return item.vm !== vm;\n });\n }\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/popup/overlay.js\n// module id = null\n// module chunks = ","// get nearest scroll element\n// http://w3help.org/zh-cn/causes/SD9013\n// http://stackoverflow.com/questions/17016740/onscroll-function-is-not-working-for-chrome\nexport function getScrollEventTarget(element, rootParent) {\n if (rootParent === void 0) {\n rootParent = window;\n }\n\n var node = element;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== rootParent) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowY === 'scroll' || overflowY === 'auto') {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return rootParent;\n}\nexport function getScrollTop(element) {\n return 'scrollTop' in element ? element.scrollTop : element.pageYOffset;\n}\nexport function setScrollTop(element, value) {\n 'scrollTop' in element ? element.scrollTop = value : element.scrollTo(element.scrollX, value);\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n} // get distance from element top to page top\n\nexport function getElementTop(element) {\n return (element === window ? 0 : element.getBoundingClientRect().top) + getScrollTop(window);\n}\nexport function getVisibleHeight(element) {\n return element === window ? element.innerHeight : element.getBoundingClientRect().height;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/scroll.js\n// module id = null\n// module chunks = ","import { context } from './context';\nimport { TouchMixin } from '../touch';\nimport { on, off, preventDefault } from '../../utils/event';\nimport { openOverlay, closeOverlay, updateOverlay } from './overlay';\nimport { getScrollEventTarget } from '../../utils/scroll';\nexport var PopupMixin = {\n mixins: [TouchMixin],\n props: {\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when click overlay\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [String, Number],\n // return the mount node for popup\n getContainer: [String, Function],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n \"default\": true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n this.$emit(type);\n },\n getContainer: function getContainer() {\n this.move();\n },\n overlay: function overlay() {\n this.renderOverlay();\n }\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.move();\n }\n\n if (this.value) {\n this.open();\n }\n },\n activated: function activated() {\n /* istanbul ignore next */\n if (this.value) {\n this.open();\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.close();\n\n if (this.getContainer && this.$parent && this.$parent.$el) {\n this.$parent.$el.appendChild(this.$el);\n }\n },\n deactivated: function deactivated() {\n /* istanbul ignore next */\n this.close();\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n if (this.lockScroll) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n\n this.opened = false;\n closeOverlay(this);\n this.$emit('input', false);\n },\n move: function move() {\n var container;\n var getContainer = this.getContainer;\n\n if (getContainer) {\n container = typeof getContainer === 'string' ? document.querySelector(getContainer) : getContainer();\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== this.$el.parentNode) {\n container.appendChild(this.$el);\n }\n\n if (this.overlay) {\n updateOverlay();\n }\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScrollEventTarget(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n if (this.$isServer || !this.value) {\n return;\n }\n\n if (this.overlay) {\n openOverlay(this, {\n zIndex: context.zIndex++,\n className: this.overlayClass,\n customStyle: this.overlayStyle\n });\n } else {\n closeOverlay(this);\n }\n\n this.updateZIndex();\n },\n updateZIndex: function updateZIndex() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.$el.style.zIndex = context.zIndex++;\n });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/popup/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('info'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Info(h, props, slots, ctx) {\n if (!isDef(props.info) || props.info === '') {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx, true)]), [props.info]);\n}\n\nInfo.props = {\n info: [String, Number]\n};\nexport default sfc(Info);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/info/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Info from '../info'; // Types\n\nvar _use = use('icon'),\n sfc = _use[0];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var urlIcon = isImage(props.name);\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, urlIcon ? 'van-icon--image' : props.classPrefix + \"-\" + props.name],\n \"style\": {\n color: props.color,\n fontSize: props.size\n }\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"](), urlIcon && h(\"img\", {\n \"attrs\": {\n \"src\": props.name\n }\n }), h(Info, {\n \"attrs\": {\n \"info\": props.info\n }\n })]);\n}\n\nIcon.props = {\n name: String,\n size: String,\n color: String,\n info: [String, Number],\n tag: {\n type: String,\n \"default\": 'i'\n },\n classPrefix: {\n type: String,\n \"default\": 'van-icon'\n }\n};\nexport default sfc(Icon);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/icon/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('loading'),\n sfc = _use[0],\n bem = _use[1];\n\nvar DEFAULT_COLOR = '#c9c9c9';\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var colorType = color === 'white' || color === 'black' ? color : '';\n var style = {\n color: color === 'black' ? DEFAULT_COLOR : color,\n width: size,\n height: size\n };\n var Spin = [];\n\n if (type === 'spinner') {\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n }\n\n var Circular = type === 'circular' && h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, colorType]),\n \"style\": style\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type)\n }, [Spin, Circular])]);\n}\n\nLoading.props = {\n size: String,\n type: {\n type: String,\n \"default\": 'circular'\n },\n color: {\n type: String,\n \"default\": DEFAULT_COLOR\n }\n};\nexport default sfc(Loading);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/loading/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\n\nvar _use = use('popup'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n position: String,\n transition: String,\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n },\n render: function render(h) {\n var _this = this,\n _bem;\n\n if (!this.shouldRender) {\n return;\n }\n\n var position = this.position;\n\n var emit = function emit(event) {\n return function () {\n return _this.$emit(event);\n };\n };\n\n var transitionName = this.transition || (position ? \"van-popup-slide-\" + position : 'van-fade');\n return h(\"transition\", {\n \"attrs\": {\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": emit('opened'),\n \"afterLeave\": emit('closed')\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": bem((_bem = {}, _bem[position] = position, _bem))\n }, [this.slots()])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/popup/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\nimport Loading from '../loading';\nimport Popup from '../popup'; // Types\n\nvar _use = use('actionsheet'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Actionsheet(h, props, slots, ctx) {\n var title = props.title,\n cancelText = props.cancelText;\n\n var onCancel = function onCancel() {\n emit(ctx, 'input', false);\n emit(ctx, 'cancel');\n };\n\n var Header = function Header() {\n return h(\"div\", {\n \"class\": [bem('header'), 'van-hairline--top-bottom']\n }, [title, h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onCancel\n }\n })]);\n };\n\n var Option = function Option(item, index) {\n return h(\"div\", {\n \"class\": [bem('item', {\n disabled: item.disabled || item.loading\n }), item.className, 'van-hairline--top'],\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n\n if (!item.disabled && !item.loading) {\n if (item.callback) {\n item.callback(item);\n }\n\n emit(ctx, 'select', item, index);\n }\n }\n }\n }, [item.loading ? h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": \"20px\"\n }\n }) : [h(\"span\", {\n \"class\": bem('name')\n }, [item.name]), item.subname && h(\"span\", {\n \"class\": bem('subname')\n }, [item.subname])]]);\n };\n\n return h(Popup, _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n }),\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"bottom\",\n \"overlay\": props.overlay,\n \"lazyRender\": props.lazyRender,\n \"getContainer\": props.getContainer,\n \"closeOnClickOverlay\": props.closeOnClickOverlay\n },\n \"on\": {\n \"input\": function input(value) {\n emit(ctx, 'input', value);\n }\n }\n }, inherit(ctx)]), [title ? Header() : props.actions.map(Option), slots[\"default\"] && h(\"div\", {\n \"class\": bem('content')\n }, [slots[\"default\"]()]), cancelText && h(\"div\", {\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": onCancel\n }\n }, [cancelText])]);\n}\n\nActionsheet.props = _extends({}, PopupMixin.props, {\n title: String,\n actions: Array,\n cancelText: String,\n safeAreaInsetBottom: Boolean,\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n});\nexport default sfc(Actionsheet);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/actionsheet/index.js\n// module id = null\n// module chunks = ","export function isMobile(value) {\n value = value.replace(/[^-|\\d]/g, '');\n return /^((\\+86)|(86))?(1)\\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/validate/mobile.js\n// module id = null\n// module chunks = ","import { deepAssign } from './deep-assign';\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n return obj.map(function (item) {\n return deepClone(item);\n });\n }\n\n if (typeof obj === 'object') {\n return deepAssign({}, obj);\n }\n\n return obj;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/deep-clone.js\n// module id = null\n// module chunks = ","export var pickerProps = {\n title: String,\n loading: Boolean,\n showToolbar: Boolean,\n cancelButtonText: String,\n confirmButtonText: String,\n visibleItemCount: {\n type: Number,\n \"default\": 5\n },\n itemHeight: {\n type: Number,\n \"default\": 44\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/picker/shared.js\n// module id = null\n// module chunks = ","import { deepClone } from '../utils/deep-clone';\nimport { use, isObj, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nvar DEFAULT_DURATION = 200;\n\nvar _use = use('picker-column'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n valueKey: String,\n className: String,\n itemHeight: Number,\n defaultIndex: Number,\n initialOptions: Array,\n visibleItemCount: Number\n },\n data: function data() {\n return {\n startY: 0,\n offset: 0,\n duration: 0,\n startOffset: 0,\n options: deepClone(this.initialOptions),\n currentIndex: this.defaultIndex\n };\n },\n created: function created() {\n this.$parent.children && this.$parent.children.push(this);\n this.setIndex(this.currentIndex);\n },\n destroyed: function destroyed() {\n var children = this.$parent.children;\n children && children.splice(children.indexOf(this), 1);\n },\n watch: {\n defaultIndex: function defaultIndex() {\n this.setIndex(this.defaultIndex);\n }\n },\n computed: {\n count: function count() {\n return this.options.length;\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n this.startY = event.touches[0].clientY;\n this.startOffset = this.offset;\n this.duration = 0;\n },\n onTouchMove: function onTouchMove(event) {\n preventDefault(event);\n var deltaY = event.touches[0].clientY - this.startY;\n this.offset = range(this.startOffset + deltaY, -(this.count * this.itemHeight), this.itemHeight);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.offset !== this.startOffset) {\n this.duration = DEFAULT_DURATION;\n var index = range(Math.round(-this.offset / this.itemHeight), 0, this.count - 1);\n this.setIndex(index, true);\n }\n },\n adjustIndex: function adjustIndex(index) {\n index = range(index, 0, this.count);\n\n for (var i = index; i < this.count; i++) {\n if (!this.isDisabled(this.options[i])) return i;\n }\n\n for (var _i = index - 1; _i >= 0; _i--) {\n if (!this.isDisabled(this.options[_i])) return _i;\n }\n },\n isDisabled: function isDisabled(option) {\n return isObj(option) && option.disabled;\n },\n getOptionText: function getOptionText(option) {\n return isObj(option) && this.valueKey in option ? option[this.valueKey] : option;\n },\n setIndex: function setIndex(index, userAction) {\n index = this.adjustIndex(index) || 0;\n this.offset = -index * this.itemHeight;\n\n if (index !== this.currentIndex) {\n this.currentIndex = index;\n userAction && this.$emit('change', index);\n }\n },\n setValue: function setValue(value) {\n var options = this.options;\n\n for (var i = 0; i < options.length; i++) {\n if (this.getOptionText(options[i]) === value) {\n return this.setIndex(i);\n }\n }\n },\n getValue: function getValue() {\n return this.options[this.currentIndex];\n }\n },\n render: function render(h) {\n var _this = this;\n\n var itemHeight = this.itemHeight,\n visibleItemCount = this.visibleItemCount;\n var columnStyle = {\n height: itemHeight * visibleItemCount + 'px'\n };\n var baseOffset = itemHeight * (visibleItemCount - 1) / 2;\n var wrapperStyle = {\n transition: this.duration + \"ms\",\n transform: \"translate3d(0, \" + (this.offset + baseOffset) + \"px, 0)\",\n lineHeight: itemHeight + \"px\"\n };\n var optionStyle = {\n height: itemHeight + \"px\"\n };\n return h(\"div\", {\n \"style\": columnStyle,\n \"class\": [bem(), this.className],\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [h(\"ul\", {\n \"style\": wrapperStyle\n }, [this.options.map(function (option, index) {\n return h(\"li\", {\n \"style\": optionStyle,\n \"class\": ['van-ellipsis', bem('item', {\n disabled: _this.isDisabled(option),\n selected: index === _this.currentIndex\n })],\n \"domProps\": {\n \"innerHTML\": _this.getOptionText(option)\n },\n \"on\": {\n \"click\": function click() {\n _this.setIndex(index, true);\n }\n }\n });\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/picker/PickerColumn.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { deepClone } from '../utils/deep-clone';\nimport { pickerProps } from './shared';\nimport Loading from '../loading';\nimport PickerColumn from './PickerColumn';\n\nvar _use = use('picker'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n props: _extends({}, pickerProps, {\n columns: Array,\n defaultIndex: {\n type: Number,\n \"default\": 0\n },\n valueKey: {\n type: String,\n \"default\": 'text'\n }\n }),\n data: function data() {\n return {\n children: []\n };\n },\n computed: {\n simple: function simple() {\n return this.columns.length && !this.columns[0].values;\n }\n },\n watch: {\n columns: function columns() {\n this.setColumns();\n }\n },\n methods: {\n setColumns: function setColumns() {\n var _this = this;\n\n var columns = this.simple ? [{\n values: this.columns\n }] : this.columns;\n columns.forEach(function (column, index) {\n _this.setColumnValues(index, deepClone(column.values));\n });\n },\n emit: function emit(event) {\n if (this.simple) {\n this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n this.$emit(event, this.getValues(), this.getIndexes());\n }\n },\n onChange: function onChange(columnIndex) {\n if (this.simple) {\n this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n this.$emit('change', this, this.getValues(), columnIndex);\n }\n },\n // get column instance by index\n getColumn: function getColumn(index) {\n return this.children[index];\n },\n // get column value by index\n getColumnValue: function getColumnValue(index) {\n var column = this.getColumn(index);\n return column && column.getValue();\n },\n // set column value by index\n setColumnValue: function setColumnValue(index, value) {\n var column = this.getColumn(index);\n column && column.setValue(value);\n },\n // get column option index by column index\n getColumnIndex: function getColumnIndex(columnIndex) {\n return (this.getColumn(columnIndex) || {}).currentIndex;\n },\n // set column option index by column index\n setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {\n var column = this.getColumn(columnIndex);\n column && column.setIndex(optionIndex);\n },\n // get options of column by index\n getColumnValues: function getColumnValues(index) {\n return (this.children[index] || {}).options;\n },\n // set options of column by index\n setColumnValues: function setColumnValues(index, options) {\n var column = this.children[index];\n\n if (column && JSON.stringify(column.options) !== JSON.stringify(options)) {\n column.options = options;\n column.setIndex(0);\n }\n },\n // get values of all columns\n getValues: function getValues() {\n return this.children.map(function (child) {\n return child.getValue();\n });\n },\n // set values of all columns\n setValues: function setValues(values) {\n var _this2 = this;\n\n values.forEach(function (value, index) {\n _this2.setColumnValue(index, value);\n });\n },\n // get indexes of all columns\n getIndexes: function getIndexes() {\n return this.children.map(function (child) {\n return child.currentIndex;\n });\n },\n // set indexes of all columns\n setIndexes: function setIndexes(indexes) {\n var _this3 = this;\n\n indexes.forEach(function (optionIndex, columnIndex) {\n _this3.setColumnIndex(columnIndex, optionIndex);\n });\n },\n onConfirm: function onConfirm() {\n this.emit('confirm');\n },\n onCancel: function onCancel() {\n this.emit('cancel');\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var itemHeight = this.itemHeight;\n var columns = this.simple ? [this.columns] : this.columns;\n var frameStyle = {\n height: itemHeight + \"px\"\n };\n var columnsStyle = {\n height: itemHeight * this.visibleItemCount + \"px\"\n };\n var Toolbar = this.showToolbar && h(\"div\", {\n \"class\": ['van-hairline--top-bottom', bem('toolbar')]\n }, [this.slots() || [h(\"div\", {\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.onCancel\n }\n }, [this.cancelButtonText || t('cancel')]), this.slots('title') || this.title && h(\"div\", {\n \"class\": ['van-ellipsis', bem('title')]\n }, [this.title]), h(\"div\", {\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.onConfirm\n }\n }, [this.confirmButtonText || t('confirm')])]]);\n return h(\"div\", {\n \"class\": bem()\n }, [Toolbar, this.loading ? h(\"div\", {\n \"class\": bem('loading')\n }, [h(Loading)]) : h(), h(\"div\", {\n \"class\": bem('columns'),\n \"style\": columnsStyle,\n \"on\": {\n \"touchmove\": preventDefault\n }\n }, [columns.map(function (item, index) {\n return h(PickerColumn, {\n \"attrs\": {\n \"valueKey\": _this4.valueKey,\n \"className\": item.className,\n \"itemHeight\": _this4.itemHeight,\n \"defaultIndex\": item.defaultIndex || _this4.defaultIndex,\n \"visibleItemCount\": _this4.visibleItemCount,\n \"initialOptions\": _this4.simple ? item : item.values\n },\n \"on\": {\n \"change\": function change() {\n _this4.onChange(index);\n }\n }\n });\n }), h(\"div\", {\n \"class\": ['van-hairline--top-bottom', bem('frame')],\n \"style\": frameStyle\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/picker/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Picker from '../picker';\nimport { pickerProps } from '../picker/shared';\n\nvar _use = use('area'),\n sfc = _use[0],\n bem = _use[1];\n\nvar COLUMNSPLACEHOLDERCODE = '000000';\nexport default sfc({\n props: _extends({}, pickerProps, {\n value: String,\n areaList: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n columnsNum: {\n type: [String, Number],\n \"default\": 3\n },\n columnsPlaceholder: {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n }\n }),\n data: function data() {\n return {\n code: this.value,\n columns: [{\n values: []\n }, {\n values: []\n }, {\n values: []\n }]\n };\n },\n computed: {\n province: function province() {\n return this.areaList.province_list || {};\n },\n city: function city() {\n return this.areaList.city_list || {};\n },\n county: function county() {\n return this.areaList.county_list || {};\n },\n displayColumns: function displayColumns() {\n return this.columns.slice(0, +this.columnsNum);\n },\n typeToColumnsPlaceholder: function typeToColumnsPlaceholder() {\n return {\n province: this.columnsPlaceholder[0] || '',\n city: this.columnsPlaceholder[1] || '',\n county: this.columnsPlaceholder[2] || ''\n };\n }\n },\n watch: {\n value: function value() {\n this.code = this.value;\n this.setValues();\n },\n areaList: {\n deep: true,\n handler: function handler() {\n this.setValues();\n }\n },\n columnsNum: function columnsNum() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setValues();\n });\n }\n },\n mounted: function mounted() {\n this.setValues();\n },\n methods: {\n // get list by code\n getList: function getList(type, code) {\n var result = [];\n\n if (type !== 'province' && !code) {\n return result;\n }\n\n var list = this[type];\n result = Object.keys(list).map(function (listCode) {\n return {\n code: listCode,\n name: list[listCode]\n };\n });\n\n if (code) {\n // oversea code\n if (code[0] === '9' && type === 'city') {\n code = '9';\n }\n\n result = result.filter(function (item) {\n return item.code.indexOf(code) === 0;\n });\n }\n\n if (this.typeToColumnsPlaceholder[type] && result.length) {\n // set columns placeholder\n var codeFill = type === 'province' ? '' : type === 'city' ? COLUMNSPLACEHOLDERCODE.slice(2, 4) : COLUMNSPLACEHOLDERCODE.slice(4, 6);\n result.unshift({\n code: \"\" + code + codeFill,\n name: this.typeToColumnsPlaceholder[type]\n });\n }\n\n return result;\n },\n // get index by code\n getIndex: function getIndex(type, code) {\n var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;\n var list = this.getList(type, code.slice(0, compareNum - 2)); // oversea code\n\n if (code[0] === '9' && type === 'province') {\n compareNum = 1;\n }\n\n code = code.slice(0, compareNum);\n\n for (var i = 0; i < list.length; i++) {\n if (list[i].code.slice(0, compareNum) === code) {\n return i;\n }\n }\n\n return 0;\n },\n // parse output columns data\n parseOutputValues: function parseOutputValues(values) {\n var _this2 = this;\n\n return values.map(function (value, index) {\n if (value === void 0) {\n value = {};\n }\n\n value = JSON.parse(JSON.stringify(value));\n\n if (!value.code || value.name === _this2.columnsPlaceholder[index]) {\n value.code = '';\n value.name = '';\n }\n\n return value;\n });\n },\n onChange: function onChange(picker, values, index) {\n this.code = values[index].code;\n this.setValues();\n var getValues = picker.getValues();\n getValues = this.parseOutputValues(getValues);\n this.$emit('change', picker, getValues, index);\n },\n onConfirm: function onConfirm(values, index) {\n values = this.parseOutputValues(values);\n this.setValues();\n this.$emit('confirm', values, index);\n },\n setValues: function setValues() {\n var code = this.code;\n\n if (!code) {\n if (this.columnsPlaceholder.length) {\n code = COLUMNSPLACEHOLDERCODE;\n } else if (Object.keys(this.county)[0]) {\n code = Object.keys(this.county)[0];\n } else {\n code = '';\n }\n }\n\n var picker = this.$refs.picker;\n var province = this.getList('province');\n var city = this.getList('city', code.slice(0, 2));\n\n if (!picker) {\n return;\n }\n\n picker.setColumnValues(0, province);\n picker.setColumnValues(1, city);\n\n if (city.length && code.slice(2, 4) === '00') {\n code = city[0].code;\n }\n\n picker.setColumnValues(2, this.getList('county', code.slice(0, 4)));\n picker.setIndexes([this.getIndex('province', code), this.getIndex('city', code), this.getIndex('county', code)]);\n },\n getValues: function getValues() {\n var picker = this.$refs.picker;\n var getValues = picker ? picker.getValues() : [];\n getValues = this.parseOutputValues(getValues);\n return getValues.filter(function (value) {\n return !!value;\n });\n },\n getArea: function getArea() {\n var values = this.getValues();\n var area = {\n code: '',\n country: '',\n province: '',\n city: '',\n county: ''\n };\n\n if (!values.length) {\n return area;\n }\n\n var names = values.map(function (item) {\n return item.name;\n });\n var filterCodeValues = values.filter(function (value) {\n return !!value.code;\n });\n area.code = filterCodeValues.length ? filterCodeValues[filterCodeValues.length - 1].code : '';\n\n if (area.code[0] === '9') {\n area.country = names[1] || '';\n area.province = names[2] || '';\n } else {\n area.province = names[0] || '';\n area.city = names[1] || '';\n area.county = names[2] || '';\n }\n\n return area;\n },\n reset: function reset() {\n this.code = '';\n this.setValues();\n }\n },\n render: function render(h) {\n var on = _extends({}, this.$listeners, {\n change: this.onChange,\n confirm: this.onConfirm\n });\n\n return h(Picker, {\n \"ref\": \"picker\",\n \"class\": bem(),\n \"attrs\": {\n \"showToolbar\": true,\n \"valueKey\": \"name\",\n \"title\": this.title,\n \"loading\": this.loading,\n \"columns\": this.displayColumns,\n \"itemHeight\": this.itemHeight,\n \"visibleItemCount\": this.visibleItemCount,\n \"cancelButtonText\": this.cancelButtonText,\n \"confirmButtonText\": this.confirmButtonText\n },\n \"on\": _extends({}, on)\n });\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/area/index.js\n// module id = null\n// module chunks = ","export var cellProps = {\n icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: Boolean,\n titleStyle: null,\n titleClass: null,\n valueClass: null,\n labelClass: null,\n title: [String, Number],\n value: [String, Number],\n label: [String, Number],\n border: {\n type: Boolean,\n \"default\": true\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/cell/shared.js\n// module id = null\n// module chunks = ","/**\n * Vue Router support\n */\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n router[replace ? 'replace' : 'push'](to);\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/router.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { cellProps } from './shared';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport Icon from '../icon'; // Types\n\nvar _use = use('cell'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Cell(h, props, slots, ctx) {\n var icon = props.icon,\n size = props.size,\n title = props.title,\n label = props.label,\n value = props.value,\n isLink = props.isLink,\n arrowDirection = props.arrowDirection;\n var showTitle = slots.title || isDef(title);\n var showValue = slots[\"default\"] || isDef(value);\n var showLabel = slots.label || isDef(label);\n var Label = showLabel && h(\"div\", {\n \"class\": [bem('label'), props.labelClass]\n }, [slots.label ? slots.label() : label]);\n var Title = showTitle && h(\"div\", {\n \"class\": [bem('title'), props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", [title]), Label]);\n var Value = showValue && h(\"div\", {\n \"class\": [bem('value', {\n alone: !slots.title && !title\n }), props.valueClass]\n }, [slots[\"default\"] ? slots[\"default\"]() : h(\"span\", [value])]);\n var LeftIcon = slots.icon ? slots.icon() : icon && h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": icon\n }\n });\n var rightIconSlot = slots['right-icon'];\n var RightIcon = rightIconSlot ? rightIconSlot() : isLink && h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"arrow-\" + arrowDirection : 'arrow'\n }\n });\n\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n var classes = {\n center: props.center,\n required: props.required,\n borderless: !props.border,\n clickable: isLink || props.clickable\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(classes),\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [LeftIcon, Title, Value, RightIcon, slots.extra && slots.extra()]);\n}\n\nCell.props = _extends({}, cellProps, routeProps, {\n clickable: Boolean,\n arrowDirection: String\n});\nexport default sfc(Cell);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/cell/index.js\n// module id = null\n// module chunks = ","export function isNumber(value) {\n return /^\\d+$/.test(value);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/validate/number.js\n// module id = null\n// module chunks = ","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\nimport { use, isObj, isDef, isIOS } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { getRootScrollTop } from '../utils/scroll';\nimport { isNumber } from '../utils/validate/number';\n\nvar _use = use('field'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n inheritAttrs: false,\n props: _extends({}, cellProps, {\n error: Boolean,\n leftIcon: String,\n rightIcon: String,\n readonly: Boolean,\n clearable: Boolean,\n labelWidth: [String, Number],\n labelAlign: String,\n inputAlign: String,\n onIconClick: Function,\n autosize: [Boolean, Object],\n errorMessage: String,\n errorMessageAlign: String,\n type: {\n type: String,\n \"default\": 'text'\n }\n }),\n data: function data() {\n return {\n focused: false\n };\n },\n watch: {\n value: function value() {\n this.$nextTick(this.adjustSize);\n }\n },\n mounted: function mounted() {\n this.format();\n this.$nextTick(this.adjustSize);\n },\n computed: {\n showClear: function showClear() {\n return this.clearable && this.focused && this.value !== '' && isDef(this.value) && !this.readonly;\n },\n listeners: function listeners() {\n return _extends({}, this.$listeners, {\n input: this.onInput,\n keypress: this.onKeypress,\n focus: this.onFocus,\n blur: this.onBlur\n });\n },\n labelStyle: function labelStyle() {\n var labelWidth = this.labelWidth;\n\n if (labelWidth) {\n var width = isNumber(String(labelWidth)) ? labelWidth + \"px\" : labelWidth;\n return {\n maxWidth: width,\n minWidth: width\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n this.$refs.input && this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input && this.$refs.input.blur();\n },\n // native maxlength not work when type = number\n format: function format(target) {\n if (target === void 0) {\n target = this.$refs.input;\n }\n\n var _target = target,\n value = _target.value;\n var maxlength = this.$attrs.maxlength;\n\n if (this.type === 'number' && isDef(maxlength) && value.length > maxlength) {\n value = value.slice(0, maxlength);\n target.value = value;\n }\n\n return value;\n },\n onInput: function onInput(event) {\n this.$emit('input', this.format(event.target));\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.$emit('focus', event); // hack for safari\n\n /* istanbul ignore if */\n\n if (this.readonly) {\n this.blur();\n }\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.$emit('blur', event); // Hack for iOS12 page scroll\n // https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800\n\n /* istanbul ignore next */\n\n if (isIOS()) {\n window.scrollTo(0, getRootScrollTop());\n }\n },\n onClickLeftIcon: function onClickLeftIcon() {\n this.$emit('click-left-icon');\n },\n onClickRightIcon: function onClickRightIcon() {\n // compatible old version\n this.$emit('click-icon');\n this.$emit('click-right-icon');\n this.onIconClick && this.onIconClick();\n },\n onClear: function onClear(event) {\n preventDefault(event);\n this.$emit('input', '');\n this.$emit('clear');\n },\n onKeypress: function onKeypress(event) {\n if (this.type === 'number') {\n var keyCode = event.keyCode;\n var allowPoint = String(this.value).indexOf('.') === -1;\n var isValidKey = keyCode >= 48 && keyCode <= 57 || keyCode === 46 && allowPoint || keyCode === 45;\n\n if (!isValidKey) {\n preventDefault(event);\n }\n } // trigger blur after click keyboard search button\n\n /* istanbul ignore next */\n\n\n if (this.type === 'search' && event.keyCode === 13) {\n this.blur();\n }\n\n this.$emit('keypress', event);\n },\n adjustSize: function adjustSize() {\n var input = this.$refs.input;\n\n if (!(this.type === 'textarea' && this.autosize) || !input) {\n return;\n }\n\n input.style.height = 'auto';\n var height = input.scrollHeight;\n\n if (isObj(this.autosize)) {\n var _this$autosize = this.autosize,\n maxHeight = _this$autosize.maxHeight,\n minHeight = _this$autosize.minHeight;\n\n if (maxHeight) {\n height = Math.min(height, maxHeight);\n }\n\n if (minHeight) {\n height = Math.max(height, minHeight);\n }\n }\n\n if (height) {\n input.style.height = height + 'px';\n }\n },\n renderInput: function renderInput() {\n var h = this.$createElement;\n var inputProps = {\n ref: 'input',\n \"class\": bem('control', this.inputAlign),\n domProps: {\n value: this.value\n },\n attrs: _extends({}, this.$attrs, {\n readonly: this.readonly\n }),\n on: this.listeners\n };\n\n if (this.type === 'textarea') {\n return h(\"textarea\", _mergeJSXProps([{}, inputProps]));\n }\n\n return h(\"input\", _mergeJSXProps2([{\n \"attrs\": {\n \"type\": this.type\n }\n }, inputProps]));\n },\n renderLeftIcon: function renderLeftIcon() {\n var h = this.$createElement;\n var showLeftIcon = this.slots('left-icon') || this.leftIcon;\n\n if (showLeftIcon) {\n return h(\"div\", {\n \"class\": bem('left-icon'),\n \"on\": {\n \"click\": this.onClickLeftIcon\n }\n }, [this.slots('left-icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.leftIcon\n }\n })]);\n }\n },\n renderRightIcon: function renderRightIcon() {\n var h = this.$createElement;\n var slots = this.slots;\n var showRightIcon = slots('right-icon') || slots('icon') || this.rightIcon || this.icon;\n\n if (showRightIcon) {\n return h(\"div\", {\n \"class\": bem('right-icon'),\n \"on\": {\n \"click\": this.onClickRightIcon\n }\n }, [slots('right-icon') || slots('icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.rightIcon || this.icon\n }\n })]);\n }\n }\n },\n render: function render(h) {\n var _bem;\n\n var slots = this.slots,\n labelAlign = this.labelAlign;\n var scopedSlots = {\n icon: this.renderLeftIcon\n };\n\n if (slots('label')) {\n scopedSlots.title = function () {\n return slots('label');\n };\n }\n\n return h(Cell, {\n \"attrs\": {\n \"icon\": this.leftIcon,\n \"size\": this.size,\n \"title\": this.label,\n \"center\": this.center,\n \"border\": this.border,\n \"isLink\": this.isLink,\n \"required\": this.required,\n \"titleStyle\": this.labelStyle,\n \"titleClass\": bem('label', labelAlign)\n },\n \"class\": bem((_bem = {\n error: this.error,\n disabled: this.$attrs.disabled\n }, _bem[\"label-\" + labelAlign] = labelAlign, _bem['min-height'] = this.type === 'textarea' && !this.autosize, _bem)),\n \"scopedSlots\": scopedSlots\n }, [h(\"div\", {\n \"class\": bem('body')\n }, [this.renderInput(), this.showClear && h(Icon, {\n \"attrs\": {\n \"name\": \"clear\"\n },\n \"class\": bem('clear'),\n \"on\": {\n \"touchstart\": this.onClear\n }\n }), this.renderRightIcon(), slots('button') && h(\"div\", {\n \"class\": bem('button')\n }, [slots('button')])]), this.errorMessage && h(\"div\", {\n \"class\": bem('error-message', this.errorMessageAlign)\n }, [this.errorMessage])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/field/index.js\n// module id = null\n// module chunks = ","import { use, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\nimport Loading from '../loading';\n\nvar _use = use('toast'),\n sfc = _use[0],\n bem = _use[1];\n\nvar STYLE = ['success', 'fail', 'loading'];\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n className: null,\n forbidClick: Boolean,\n message: [String, Number],\n type: {\n type: String,\n \"default\": 'text'\n },\n loadingType: {\n type: String,\n \"default\": 'circular'\n },\n position: {\n type: String,\n \"default\": 'middle'\n },\n lockScroll: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n clickable: false\n };\n },\n mounted: function mounted() {\n this.toggleClickale();\n },\n destroyed: function destroyed() {\n this.toggleClickale();\n },\n watch: {\n value: function value() {\n this.toggleClickale();\n },\n forbidClick: function forbidClick() {\n this.toggleClickale();\n }\n },\n methods: {\n toggleClickale: function toggleClickale() {\n var clickable = this.value && this.forbidClick;\n\n if (this.clickable !== clickable) {\n this.clickable = clickable;\n var action = clickable ? 'add' : 'remove';\n document.body.classList[action]('van-toast--unclickable');\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var type = this.type,\n message = this.message;\n var style = STYLE.indexOf(type) !== -1 ? 'default' : type;\n\n var Content = function Content() {\n switch (style) {\n case 'text':\n return h(\"div\", [message]);\n\n case 'html':\n return h(\"div\", {\n \"domProps\": {\n \"innerHTML\": message\n }\n });\n\n default:\n return [type === 'loading' ? h(Loading, {\n \"attrs\": {\n \"color\": \"white\",\n \"type\": _this.loadingType\n }\n }) : h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"name\": type\n }\n }), isDef(message) && h(\"div\", {\n \"class\": bem('text')\n }, [message])];\n }\n };\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem([style, this.position]), this.className]\n }, [Content()])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/toast/Toast.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueToast from './Toast';\nimport { isObj, isServer } from '../utils';\nvar defaultOptions = {\n type: 'text',\n mask: false,\n value: true,\n message: '',\n className: '',\n onClose: null,\n duration: 3000,\n position: 'middle',\n forbidClick: false,\n loadingType: 'circular',\n getContainer: 'body',\n overlayStyle: null\n};\n\nvar parseOptions = function parseOptions(message) {\n return isObj(message) ? message : {\n message: message\n };\n};\n\nvar queue = [];\nvar multiple = false;\n\nvar currentOptions = _extends({}, defaultOptions);\n\nfunction createInstance() {\n /* istanbul ignore if */\n if (isServer) {\n return {};\n }\n\n if (!queue.length || multiple) {\n var toast = new (Vue.extend(VueToast))({\n el: document.createElement('div')\n });\n queue.push(toast);\n }\n\n return queue[queue.length - 1];\n} // transform toast options to popup props\n\n\nfunction transformer(options) {\n options.overlay = options.mask;\n return options;\n}\n\nfunction Toast(options) {\n if (options === void 0) {\n options = {};\n }\n\n var toast = createInstance(); // should add z-index if previous toast has not disappeared\n\n if (toast.value) {\n toast.updateZIndex();\n }\n\n options = _extends({}, currentOptions, parseOptions(options), {\n clear: function clear() {\n toast.value = false;\n\n if (options.onClose) {\n options.onClose();\n }\n\n if (multiple && !isServer) {\n clearTimeout(toast.timer);\n queue = queue.filter(function (item) {\n return item !== toast;\n });\n var parent = toast.$el.parentNode;\n\n if (parent) {\n parent.removeChild(toast.$el);\n }\n\n toast.$destroy();\n }\n }\n });\n\n _extends(toast, transformer(options));\n\n clearTimeout(toast.timer);\n\n if (options.duration > 0) {\n toast.timer = setTimeout(function () {\n toast.clear();\n }, options.duration);\n }\n\n return toast;\n}\n\nvar createMethod = function createMethod(type) {\n return function (options) {\n return Toast(_extends({\n type: type\n }, parseOptions(options)));\n };\n};\n\n['loading', 'success', 'fail'].forEach(function (method) {\n Toast[method] = createMethod(method);\n});\n\nToast.clear = function (all) {\n if (queue.length) {\n if (all) {\n queue.forEach(function (toast) {\n toast.clear();\n });\n queue = [];\n } else if (!multiple) {\n queue[0].clear();\n } else {\n queue.shift().clear();\n }\n }\n};\n\nToast.setDefaultOptions = function (options) {\n _extends(currentOptions, options);\n};\n\nToast.resetDefaultOptions = function () {\n currentOptions = _extends({}, defaultOptions);\n};\n\nToast.allowMultiple = function (value) {\n if (value === void 0) {\n value = true;\n }\n\n multiple = value;\n};\n\nToast.install = function () {\n Vue.use(VueToast);\n};\n\nVue.prototype.$toast = Toast;\nexport default Toast;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/toast/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport Loading from '../loading'; // Types\n\nvar _use = use('button'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Button(h, props, slots, ctx) {\n var tag = props.tag,\n type = props.type,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText;\n\n var onClick = function onClick(event) {\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n };\n\n var onTouchstart = function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n };\n\n var classes = [bem([type, props.size, {\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n plain: props.plain,\n round: props.round,\n square: props.square,\n 'bottom-action': props.bottomAction\n }]), {\n 'van-hairline--surround': hairline\n }];\n return h(tag, _mergeJSXProps([{\n \"class\": classes,\n \"attrs\": {\n \"type\": props.nativeType,\n \"disabled\": disabled\n },\n \"on\": {\n \"click\": onClick,\n \"touchstart\": onTouchstart\n }\n }, inherit(ctx)]), [loading ? [h(Loading, {\n \"attrs\": {\n \"size\": props.loadingSize,\n \"color\": type === 'default' ? undefined : ''\n }\n }), loadingText && h(\"span\", {\n \"class\": bem('loading-text')\n }, [loadingText])] : h(\"span\", {\n \"class\": bem('text')\n }, [slots[\"default\"] ? slots[\"default\"]() : props.text])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n nativeType: String,\n loadingText: String,\n bottomAction: Boolean,\n tag: {\n type: String,\n \"default\": 'button'\n },\n type: {\n type: String,\n \"default\": 'default'\n },\n size: {\n type: String,\n \"default\": 'normal'\n },\n loadingSize: {\n type: String,\n \"default\": '20px'\n }\n});\nexport default sfc(Button);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/button/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer, isInDocument } from '../utils';\nvar instance;\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n message: '',\n overlay: true,\n className: '',\n lockScroll: true,\n beforeClose: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nVue.prototype.$dialog = Dialog;\nexport default Dialog;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/dialog/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\n\nvar _use = use('dialog'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n title: String,\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n showConfirmButton: {\n type: Boolean,\n \"default\": true\n },\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action);\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false) {\n _this.onClose(action);\n }\n\n _this.loading[action] = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n }\n },\n render: function render(h) {\n var _bem,\n _this2 = this;\n\n if (!this.shouldRender) {\n return;\n }\n\n var title = this.title,\n message = this.message,\n messageAlign = this.messageAlign;\n var children = this.slots();\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !children\n })\n }, [title]);\n var Content = (children || message) && h(\"div\", {\n \"class\": bem('content')\n }, [children || h(\"div\", {\n \"domProps\": {\n \"innerHTML\": message\n },\n \"class\": bem('message', (_bem = {\n 'has-title': title\n }, _bem[messageAlign] = messageAlign, _bem))\n })]);\n var hasButtons = this.showCancelButton && this.showConfirmButton;\n var ButtonGroup = h(\"div\", {\n \"class\": ['van-hairline--top', bem('footer', {\n buttons: hasButtons\n })]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel')\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm')\n },\n \"class\": [bem('confirm'), {\n 'van-hairline--left': hasButtons\n }],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('confirm');\n }\n }\n })]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-dialog-bounce\"\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem(), this.className]\n }, [Title, Content, ButtonGroup])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/dialog/Dialog.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isAndroid } from '../utils';\nimport Cell from '../cell';\nimport Field from '../field';\n\nvar _use = use('address-edit-detail'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar android = isAndroid();\nexport default sfc({\n props: {\n value: String,\n error: Boolean,\n focused: Boolean,\n detailRows: Number,\n searchResult: Array,\n showSearchResult: Boolean\n },\n methods: {\n onSelect: function onSelect(express) {\n this.$emit('select-search', express);\n this.$emit('input', ((express.address || '') + \" \" + (express.name || '')).trim());\n },\n onFinish: function onFinish() {\n this.$refs.field.blur();\n },\n renderFinish: function renderFinish() {\n var h = this.$createElement;\n var show = this.value && this.focused && android;\n\n if (show) {\n return h(\"div\", {\n \"class\": bem('finish'),\n \"on\": {\n \"click\": this.onFinish\n }\n }, [t('complete')]);\n }\n },\n renderSearchResult: function renderSearchResult() {\n var _this = this;\n\n var h = this.$createElement;\n var searchResult = this.searchResult;\n var show = this.focused && searchResult && this.showSearchResult;\n\n if (show) {\n return searchResult.map(function (express) {\n return h(Cell, {\n \"key\": express.name + express.address,\n \"attrs\": {\n \"title\": express.name,\n \"label\": express.address,\n \"icon\": \"location-o\",\n \"clickable\": true\n },\n \"on\": {\n \"click\": function click() {\n _this.onSelect(express);\n }\n }\n });\n });\n }\n }\n },\n render: function render(h) {\n return h(Cell, {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"autosize\": true,\n \"rows\": this.detailRows,\n \"clearable\": !android,\n \"type\": \"textarea\",\n \"maxlength\": \"200\",\n \"value\": this.value,\n \"error\": this.error,\n \"label\": t('label'),\n \"placeholder\": t('placeholder')\n },\n \"ref\": \"field\",\n \"scopedSlots\": {\n icon: this.renderFinish\n },\n \"on\": _extends({}, this.$listeners)\n }), this.renderSearchResult()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/address-edit/Detail.js\n// module id = null\n// module chunks = ","/**\n * Common Switch Props\n */\nexport var switchProps = {\n value: null,\n loading: Boolean,\n disabled: Boolean,\n activeColor: String,\n inactiveColor: String,\n activeValue: {\n type: null,\n \"default\": true\n },\n inactiveValue: {\n type: null,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": '30px'\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/switch/shared.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Loading from '../loading';\nimport { switchProps } from './shared';\nimport { emit, inherit } from '../utils/functional'; // Types\n\nvar _use = use('switch'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Switch(h, props, slots, ctx) {\n var value = props.value,\n loading = props.loading,\n disabled = props.disabled,\n activeValue = props.activeValue,\n inactiveValue = props.inactiveValue;\n var checked = value === activeValue;\n var style = {\n fontSize: props.size,\n backgroundColor: checked ? props.activeColor : props.inactiveColor\n };\n\n var onClick = function onClick() {\n if (!disabled && !loading) {\n var newValue = checked ? inactiveValue : activeValue;\n emit(ctx, 'input', newValue);\n emit(ctx, 'change', newValue);\n }\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n on: checked,\n disabled: disabled\n }),\n \"style\": style,\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('node')\n }, [loading && h(Loading, {\n \"class\": bem('loading')\n })])]);\n}\n\nSwitch.props = switchProps;\nexport default sfc(Switch);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/switch/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Cell from '../cell';\nimport Switch from '../switch';\nimport { switchProps } from '../switch/shared'; // Types\n\nvar _use = use('switch-cell'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SwitchCell(h, props, slots, ctx) {\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"title\": props.title,\n \"border\": props.border\n },\n \"class\": bem()\n }, inherit(ctx)]), [h(Switch, {\n \"props\": _extends({}, props),\n \"on\": _extends({}, ctx.listeners)\n })]);\n}\n\nSwitchCell.props = _extends({}, switchProps, {\n title: String,\n border: Boolean,\n size: {\n type: String,\n \"default\": '24px'\n }\n});\nexport default sfc(SwitchCell);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/switch-cell/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isObj } from '../utils';\nimport { isMobile } from '../utils/validate/mobile';\nimport Area from '../area';\nimport Field from '../field';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport Button from '../button';\nimport Dialog from '../dialog';\nimport Detail from './Detail';\nimport SwitchCell from '../switch-cell';\n\nvar _use = use('address-edit'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar defaultData = {\n name: '',\n tel: '',\n country: '',\n province: '',\n city: '',\n county: '',\n areaCode: '',\n postalCode: '',\n addressDetail: '',\n isDefault: false\n};\nexport default sfc({\n props: {\n areaList: Object,\n isSaving: Boolean,\n isDeleting: Boolean,\n validator: Function,\n showDelete: Boolean,\n showPostal: Boolean,\n searchResult: Array,\n showSetDefault: Boolean,\n showSearchResult: Boolean,\n saveButtonText: String,\n deleteButtonText: String,\n showArea: {\n type: Boolean,\n \"default\": true\n },\n showDetail: {\n type: Boolean,\n \"default\": true\n },\n detailRows: {\n type: Number,\n \"default\": 1\n },\n addressInfo: {\n type: Object,\n \"default\": function _default() {\n return _extends({}, defaultData);\n }\n },\n telValidator: {\n type: Function,\n \"default\": isMobile\n },\n areaColumnsPlaceholder: {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n data: {},\n showAreaPopup: false,\n detailFocused: false,\n errorInfo: {\n tel: false,\n name: false,\n postalCode: false,\n addressDetail: false\n }\n };\n },\n computed: {\n areaListLoaded: function areaListLoaded() {\n return isObj(this.areaList) && Object.keys(this.areaList).length;\n },\n areaText: function areaText() {\n var _this$data = this.data,\n country = _this$data.country,\n province = _this$data.province,\n city = _this$data.city,\n county = _this$data.county,\n areaCode = _this$data.areaCode;\n\n if (areaCode) {\n var arr = [country, province, city, county];\n\n if (province && province === city) {\n arr.splice(1, 1);\n }\n\n return arr.filter(function (text) {\n return text;\n }).join('/');\n }\n\n return '';\n }\n },\n watch: {\n addressInfo: {\n handler: function handler(val) {\n this.data = _extends({}, defaultData, val);\n this.setAreaCode(val.areaCode);\n },\n deep: true,\n immediate: true\n },\n areaList: function areaList() {\n this.setAreaCode(this.data.areaCode);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = false;\n this.detailFocused = key === 'addressDetail';\n this.$emit('focus', key);\n },\n onChangeDetail: function onChangeDetail(val) {\n this.data.addressDetail = val;\n this.$emit('change-detail', val);\n },\n onAreaConfirm: function onAreaConfirm(values) {\n if (values.some(function (value) {\n return !value.code;\n })) {\n Toast(t('areaEmpty'));\n return;\n }\n\n this.showAreaPopup = false;\n this.assignAreaValues();\n this.$emit('change-area', values);\n },\n assignAreaValues: function assignAreaValues() {\n var area = this.$refs.area;\n\n if (area) {\n var detail = area.getArea();\n detail.areaCode = detail.code;\n delete detail.code;\n\n _extends(this.data, detail);\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var items = ['name', 'tel', 'areaCode', 'addressDetail'];\n\n if (this.showPostal) {\n items.push('postalCode');\n }\n\n var isValid = items.every(function (item) {\n var msg = _this.getErrorMessage(item);\n\n if (msg) {\n _this.errorInfo[item] = true;\n Toast(msg);\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n getErrorMessage: function getErrorMessage(key) {\n var value = String(this.data[key] || '').trim();\n\n if (this.validator) {\n var message = this.validator(key, value);\n\n if (message) {\n return message;\n }\n }\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameEmpty');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n\n case 'areaCode':\n return value ? '' : t('areaEmpty');\n\n case 'addressDetail':\n return value ? '' : t('addressEmpty');\n\n case 'postalCode':\n return value && !/^\\d{6}$/.test(value) ? t('postalEmpty') : '';\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n title: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n })[\"catch\"](function () {\n _this2.$emit('cancel-delete', _this2.data);\n });\n },\n // get values of area component\n getArea: function getArea() {\n return this.$refs.area ? this.$refs.area.getValues() : [];\n },\n // set area code to area component\n setAreaCode: function setAreaCode(code) {\n this.data.areaCode = code || '';\n\n if (code) {\n this.$nextTick(this.assignAreaValues);\n }\n },\n setAddressDetail: function setAddressDetail(value) {\n this.data.addressDetail = value;\n },\n onDetailBlur: function onDetailBlur() {\n var _this3 = this;\n\n // await for click search event\n setTimeout(function () {\n _this3.detailFocused = false;\n });\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this4.onFocus(name);\n };\n }; // hide bottom field when use search && detail get focused\n\n\n var hideBottomFields = this.searchResult.length && this.detailFocused;\n return h(\"div\", {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"label\": t('name'),\n \"placeholder\": t('namePlaceholder'),\n \"error\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n data.name = $$v;\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"placeholder\": t('telPlaceholder'),\n \"error\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n data.tel = $$v;\n }\n }\n }), h(Field, {\n \"directives\": [{\n name: \"show\",\n value: this.showArea\n }],\n \"attrs\": {\n \"readonly\": true,\n \"label\": t('area'),\n \"placeholder\": t('areaPlaceholder'),\n \"value\": this.areaText\n },\n \"on\": {\n \"click\": function click() {\n _this4.showAreaPopup = true;\n }\n }\n }), h(Detail, {\n \"directives\": [{\n name: \"show\",\n value: this.showDetail\n }],\n \"attrs\": {\n \"focused\": this.detailFocused,\n \"value\": data.addressDetail,\n \"error\": errorInfo.addressDetail,\n \"detailRows\": this.detailRows,\n \"searchResult\": this.searchResult,\n \"showSearchResult\": this.showSearchResult\n },\n \"on\": {\n \"focus\": onFocus('addressDetail'),\n \"blur\": this.onDetailBlur,\n \"input\": this.onChangeDetail,\n \"select-search\": function selectSearch(event) {\n _this4.$emit('select-search', event);\n }\n }\n }), this.showPostal && h(Field, {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"attrs\": {\n \"type\": \"tel\",\n \"maxlength\": \"6\",\n \"label\": t('postal'),\n \"placeholder\": t('postal'),\n \"error\": errorInfo.postalCode\n },\n \"on\": {\n \"focus\": onFocus('postalCode')\n },\n \"model\": {\n value: data.postalCode,\n callback: function callback($$v) {\n data.postalCode = $$v;\n }\n }\n }), this.slots(), this.showSetDefault && h(SwitchCell, {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"attrs\": {\n \"title\": t('defaultAddress')\n },\n \"on\": {\n \"change\": function change(event) {\n _this4.$emit('change-default', event);\n }\n },\n \"model\": {\n value: data.isDefault,\n callback: function callback($$v) {\n data.isDefault = $$v;\n }\n }\n }), h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"loading\": this.isSaving,\n \"type\": \"danger\",\n \"text\": this.saveButtonText || t('save')\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.showDelete && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"loading\": this.isDeleting,\n \"text\": this.deleteButtonText || t('delete')\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })]), h(Popup, {\n \"attrs\": {\n \"position\": \"bottom\",\n \"lazyRender\": false,\n \"getContainer\": \"body\"\n },\n \"model\": {\n value: _this4.showAreaPopup,\n callback: function callback($$v) {\n _this4.showAreaPopup = $$v;\n }\n }\n }, [h(Area, {\n \"ref\": \"area\",\n \"attrs\": {\n \"loading\": !this.areaListLoaded,\n \"value\": data.areaCode,\n \"areaList\": this.areaList,\n \"columnsPlaceholder\": this.areaColumnsPlaceholder\n },\n \"on\": {\n \"confirm\": this.onAreaConfirm,\n \"cancel\": function cancel() {\n _this4.showAreaPopup = false;\n }\n }\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/address-edit/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('radio-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: null,\n disabled: Boolean\n },\n watch: {\n value: function value(_value) {\n this.$emit('change', _value);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/radio-group/index.js\n// module id = null\n// module chunks = ","/**\n * find parent component by name\n */\nexport var FindParentMixin = {\n data: function data() {\n return {\n parent: null\n };\n },\n methods: {\n findParent: function findParent(name) {\n var parent = this.$parent;\n\n while (parent) {\n if (parent.$options.name === name) {\n this.parent = parent;\n break;\n }\n\n parent = parent.$parent;\n }\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/find-parent.js\n// module id = null\n// module chunks = ","/**\n * Common part of Checkbox & Radio\n */\nimport Icon from '../icon';\nimport { FindParentMixin } from './find-parent';\nexport var CheckboxMixin = function CheckboxMixin(parent, bem) {\n return {\n mixins: [FindParentMixin],\n props: {\n name: null,\n value: null,\n disabled: Boolean,\n checkedColor: String,\n labelPosition: String,\n labelDisabled: Boolean,\n shape: {\n type: String,\n \"default\": 'round'\n },\n bindGroup: {\n type: Boolean,\n \"default\": true\n }\n },\n created: function created() {\n if (this.bindGroup) {\n this.findParent(parent);\n }\n },\n computed: {\n isDisabled: function isDisabled() {\n return this.parent && this.parent.disabled || this.disabled;\n },\n iconStyle: function iconStyle() {\n var checkedColor = this.checkedColor;\n\n if (checkedColor && this.checked && !this.isDisabled) {\n return {\n borderColor: checkedColor,\n backgroundColor: checkedColor\n };\n }\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var slots = this.slots,\n checked = this.checked;\n var CheckIcon = slots('icon', {\n checked: checked\n }) || h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"style\": this.iconStyle\n });\n var Label = slots() && h(\"span\", {\n \"class\": bem('label', [this.labelPosition, {\n disabled: this.isDisabled\n }]),\n \"on\": {\n \"click\": this.onClickLabel\n }\n }, [slots()]);\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": function click(event) {\n _this.$emit('click', event);\n }\n }\n }, [h(\"div\", {\n \"class\": bem('icon', [this.shape, {\n disabled: this.isDisabled,\n checked: checked\n }]),\n \"on\": {\n \"click\": this.onClickIcon\n }\n }, [CheckIcon]), Label]);\n }\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/checkbox.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _use = use('radio'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [CheckboxMixin('van-radio-group', bem)],\n computed: {\n currentValue: {\n get: function get() {\n return this.parent ? this.parent.value : this.value;\n },\n set: function set(val) {\n (this.parent || this).$emit('input', val);\n }\n },\n checked: function checked() {\n return this.currentValue === this.name;\n }\n },\n methods: {\n onClickIcon: function onClickIcon() {\n if (!this.isDisabled) {\n this.currentValue = this.name;\n }\n },\n onClickLabel: function onClickLabel() {\n if (!this.isDisabled && !this.labelDisabled) {\n this.currentValue = this.name;\n }\n }\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/radio/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio'; // Types\n\nvar _use = use('address-item'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction AddressItem(h, props, slots, ctx) {\n var disabled = props.disabled,\n switchable = props.switchable;\n\n function onSelect() {\n if (switchable) {\n emit(ctx, 'select');\n }\n }\n\n var renderRightIcon = function renderRightIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit');\n }\n }\n });\n };\n\n var renderContent = function renderContent() {\n var data = props.data;\n var Info = [h(\"div\", {\n \"class\": bem('name')\n }, [data.name + \"\\uFF0C\" + data.tel]), h(\"div\", {\n \"class\": bem('address')\n }, [data.address])];\n return switchable && !disabled ? h(Radio, {\n \"attrs\": {\n \"name\": data.id\n }\n }, [Info]) : Info;\n };\n\n return h(Cell, _mergeJSXProps([{\n \"class\": bem({\n disabled: disabled,\n unswitchable: !switchable\n }),\n \"attrs\": {\n \"valueClass\": bem('value'),\n \"clickable\": switchable && !disabled\n },\n \"scopedSlots\": {\n \"default\": renderContent,\n 'right-icon': renderRightIcon\n },\n \"on\": {\n \"click\": onSelect\n }\n }, inherit(ctx)]));\n}\n\nAddressItem.props = {\n data: Object,\n disabled: Boolean,\n switchable: Boolean\n};\nexport default sfc(AddressItem);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/address-list/Item.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Button from '../button';\nimport RadioGroup from '../radio-group';\nimport AddressItem from './Item'; // Types\n\nvar _use = use('address-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction AddressList(h, props, slots, ctx) {\n var getList = function getList(list, disabled) {\n return list.map(function (item, index) {\n return h(AddressItem, {\n \"attrs\": {\n \"data\": item,\n \"disabled\": disabled,\n \"switchable\": props.switchable\n },\n \"key\": item.id,\n \"on\": {\n \"select\": function select() {\n emit(ctx, disabled ? 'select-disabled' : 'select', item, index);\n },\n \"edit\": function edit() {\n emit(ctx, disabled ? 'edit-disabled' : 'edit', item, index);\n }\n }\n });\n });\n };\n\n var List = getList(props.list);\n var DisabledList = getList(props.disabledList, true);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.top && slots.top(), h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n },\n \"on\": {\n \"input\": function input(event) {\n emit(ctx, 'input', event);\n }\n }\n }, [List]), props.disabledText && h(\"div\", {\n \"class\": bem('disabled-text')\n }, [props.disabledText]), DisabledList, slots[\"default\"] && slots[\"default\"](), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.addButtonText || t('add')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })]);\n}\n\nAddressList.props = {\n list: Array,\n disabledList: Array,\n disabledText: String,\n addButtonText: String,\n value: [String, Number],\n switchable: {\n type: Boolean,\n \"default\": true\n }\n};\nexport default sfc(AddressList);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/address-list/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Info from '../info';\n\nvar _use = use('badge'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n url: String,\n info: [String, Number],\n title: String\n },\n inject: ['vanBadgeGroup'],\n created: function created() {\n this.parent.badges.push(this);\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n this.parent.badges = this.parent.badges.filter(function (item) {\n return item !== _this;\n });\n },\n computed: {\n parent: function parent() {\n if (process.env.NODE_ENV !== 'production' && !this.vanBadgeGroup) {\n console.error('[Vant] Badge needs to be child of BadgeGroup');\n }\n\n return this.vanBadgeGroup;\n },\n select: function select() {\n return this.parent.badges.indexOf(this) === +this.parent.activeKey;\n }\n },\n methods: {\n onClick: function onClick() {\n var index = this.parent.badges.indexOf(this);\n this.$emit('click', index);\n this.parent.$emit('change', index);\n }\n },\n render: function render(h) {\n return h(\"a\", {\n \"attrs\": {\n \"href\": this.url\n },\n \"class\": [bem({\n select: this.select\n }), 'van-hairline'],\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('text')\n }, [this.title, h(Info, {\n \"attrs\": {\n \"info\": this.info\n },\n \"class\": bem('info')\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/badge/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('badge-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n activeKey: {\n type: [Number, String],\n \"default\": 0\n }\n },\n provide: function provide() {\n return {\n vanBadgeGroup: this\n };\n },\n data: function data() {\n return {\n badges: []\n };\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": [bem(), 'van-hairline--top-bottom']\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/badge-group/index.js\n// module id = null\n// module chunks = ","export var RED = '#f44';\nexport var BLUE = '#1989fa';\nexport var GREEN = '#07c160';\nexport var WHITE = '#fff';\nexport var GRAY_DARK = '#969799';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/color.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { RED, BLUE, GREEN, GRAY_DARK } from '../utils/color'; // Types\n\nvar _use = use('tag'),\n sfc = _use[0],\n bem = _use[1];\n\nvar COLOR_MAP = {\n danger: RED,\n primary: BLUE,\n success: GREEN\n};\n\nfunction Tag(h, props, slots, ctx) {\n var _style;\n\n var type = props.type,\n mark = props.mark,\n plain = props.plain,\n round = props.round,\n size = props.size;\n var color = props.color || type && COLOR_MAP[type] || GRAY_DARK;\n var key = plain ? 'color' : 'backgroundColor';\n var style = (_style = {}, _style[key] = color, _style);\n\n if (props.textColor) {\n style.color = props.textColor;\n }\n\n var classes = {\n mark: mark,\n plain: plain,\n round: round\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"span\", _mergeJSXProps([{\n \"style\": style,\n \"class\": [bem(classes), {\n 'van-hairline--surround': plain\n }]\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n}\n\nTag.props = {\n size: String,\n type: String,\n mark: Boolean,\n color: String,\n plain: Boolean,\n round: Boolean,\n textColor: String\n};\nexport default sfc(Tag);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tag/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Tag from '../tag'; // Types\n\nvar _use = use('card'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Card(h, props, slots, ctx) {\n var thumb = props.thumb;\n var showThumb = slots.thumb || thumb;\n var showTag = slots.tag || props.tag;\n var showNum = slots.num || isDef(props.num);\n var showPrice = slots.price || isDef(props.price);\n var showOriginPrice = slots['origin-price'] || isDef(props.originPrice);\n var showBottom = showNum || showPrice || showOriginPrice;\n\n var onThumbClick = function onThumbClick() {\n emit(ctx, 'click-thumb');\n };\n\n var Thumb = showThumb && h(\"a\", {\n \"attrs\": {\n \"href\": props.thumbLink\n },\n \"class\": bem('thumb'),\n \"on\": {\n \"click\": onThumbClick\n }\n }, [slots.thumb ? slots.thumb() : props.lazyLoad ? h(\"img\", {\n \"class\": bem('img'),\n \"directives\": [{\n name: \"lazy\",\n value: thumb\n }]\n }) : h(\"img\", {\n \"class\": bem('img'),\n \"attrs\": {\n \"src\": thumb\n }\n }), showTag && h(\"div\", {\n \"class\": bem('tag')\n }, [slots.tag ? slots.tag() : h(Tag, {\n \"attrs\": {\n \"mark\": true,\n \"type\": \"danger\"\n }\n }, [props.tag])])]);\n var Title = slots.title ? slots.title() : props.title && h(\"div\", {\n \"class\": bem('title')\n }, [props.title]);\n var Desc = slots.desc ? slots.desc() : props.desc && h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [props.desc]);\n var Price = showPrice && h(\"div\", {\n \"class\": bem('price')\n }, [slots.price ? slots.price() : props.currency + \" \" + props.price]);\n var OriginPrice = showOriginPrice && h(\"div\", {\n \"class\": bem('origin-price')\n }, [slots['origin-price'] ? slots['origin-price']() : props.currency + \" \" + props.originPrice]);\n var Num = showNum && h(\"div\", {\n \"class\": bem('num')\n }, [slots.num ? slots.num() : \"x \" + props.num]);\n var Footer = slots.footer && h(\"div\", {\n \"class\": bem('footer')\n }, [slots.footer()]);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx, true)]), [h(\"div\", {\n \"class\": bem('header')\n }, [Thumb, h(\"div\", {\n \"class\": bem('content', {\n centered: props.centered\n })\n }, [Title, Desc, slots.tags && slots.tags(), showBottom && h(\"div\", {\n \"class\": \"van-card__bottom\"\n }, [Price, OriginPrice, Num, slots.bottom && slots.bottom()])])]), Footer]);\n}\n\nCard.props = {\n tag: String,\n desc: String,\n thumb: String,\n title: String,\n centered: Boolean,\n lazyLoad: Boolean,\n thumbLink: String,\n num: [Number, String],\n price: [Number, String],\n originPrice: [Number, String],\n currency: {\n type: String,\n \"default\": '¥'\n }\n};\nexport default sfc(Card);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/card/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('cell-group'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction CellGroup(h, props, slots, ctx) {\n var Group = h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), {\n 'van-hairline--top-bottom': props.border\n }]\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n\n if (props.title) {\n return h(\"div\", [h(\"div\", {\n \"class\": bem('title')\n }, [props.title]), Group]);\n }\n\n return Group;\n}\n\nCellGroup.props = {\n title: String,\n border: {\n type: Boolean,\n \"default\": true\n }\n};\nexport default sfc(CellGroup);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/cell-group/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _use = use('checkbox'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [CheckboxMixin('van-checkbox-group', bem)],\n computed: {\n checked: {\n get: function get() {\n return this.parent ? this.parent.value.indexOf(this.name) !== -1 : this.value;\n },\n set: function set(val) {\n if (this.parent) {\n this.setParentValue(val);\n } else {\n this.$emit('input', val);\n }\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n toggle: function toggle() {\n var _this = this;\n\n var checked = !this.checked; // When toggle method is called multiple times at the same time,\n // only the last call is valid.\n // This is a hack for usage inside Cell.\n\n clearTimeout(this.toggleTask);\n this.toggleTask = setTimeout(function () {\n _this.checked = checked;\n });\n },\n onClickIcon: function onClickIcon() {\n if (!this.isDisabled) {\n this.toggle();\n }\n },\n onClickLabel: function onClickLabel() {\n if (!this.isDisabled && !this.labelDisabled) {\n this.toggle();\n }\n },\n setParentValue: function setParentValue(val) {\n var parent = this.parent;\n var value = parent.value.slice();\n\n if (val) {\n if (parent.max && value.length >= parent.max) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (value.indexOf(this.name) === -1) {\n value.push(this.name);\n parent.$emit('input', value);\n }\n } else {\n var index = value.indexOf(this.name);\n /* istanbul ignore else */\n\n if (index !== -1) {\n value.splice(index, 1);\n parent.$emit('input', value);\n }\n }\n }\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/checkbox/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('checkbox-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n max: Number,\n value: Array,\n disabled: Boolean\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/checkbox-group/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { raf, cancel } from '../utils/raf';\nimport { BLUE, WHITE } from '../utils/color';\n\nvar _use = use('circle'),\n sfc = _use[0],\n bem = _use[1];\n\nvar PERIMETER = 3140;\nvar PATH = 'M 530 530 m -500, 0 a 500, 500 0 1, 1 1000, 0 a 500, 500 0 1, 1 -1000, 0';\n\nfunction format(rate) {\n return Math.min(Math.max(rate, 0), 100);\n}\n\nexport default sfc({\n props: {\n text: String,\n value: Number,\n speed: Number,\n size: {\n type: String,\n \"default\": '100px'\n },\n fill: {\n type: String,\n \"default\": 'none'\n },\n rate: {\n type: Number,\n \"default\": 100\n },\n layerColor: {\n type: String,\n \"default\": WHITE\n },\n color: {\n type: String,\n \"default\": BLUE\n },\n strokeWidth: {\n type: Number,\n \"default\": 40\n },\n clockwise: {\n type: Boolean,\n \"default\": true\n }\n },\n computed: {\n style: function style() {\n return {\n width: this.size,\n height: this.size\n };\n },\n layerStyle: function layerStyle() {\n var offset = PERIMETER * (100 - this.value) / 100;\n offset = this.clockwise ? offset : PERIMETER * 2 - offset;\n return {\n stroke: \"\" + this.color,\n strokeDashoffset: offset + \"px\",\n strokeWidth: this.strokeWidth + 1 + \"px\"\n };\n },\n hoverStyle: function hoverStyle() {\n return {\n fill: \"\" + this.fill,\n stroke: \"\" + this.layerColor,\n strokeWidth: this.strokeWidth + \"px\"\n };\n }\n },\n watch: {\n rate: {\n handler: function handler() {\n this.startTime = Date.now();\n this.startRate = this.value;\n this.endRate = format(this.rate);\n this.increase = this.endRate > this.startRate;\n this.duration = Math.abs((this.startRate - this.endRate) * 1000 / this.speed);\n\n if (this.speed) {\n cancel(this.rafId);\n this.rafId = raf(this.animate);\n } else {\n this.$emit('input', this.endRate);\n }\n },\n immediate: true\n }\n },\n methods: {\n animate: function animate() {\n var now = Date.now();\n var progress = Math.min((now - this.startTime) / this.duration, 1);\n var rate = progress * (this.endRate - this.startRate) + this.startRate;\n this.$emit('input', format(parseFloat(rate.toFixed(1))));\n\n if (this.increase ? rate < this.endRate : rate > this.endRate) {\n this.rafId = raf(this.animate);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style\n }, [h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 1060 1060\"\n }\n }, [h(\"path\", {\n \"class\": bem('hover'),\n \"style\": this.hoverStyle,\n \"attrs\": {\n \"d\": PATH\n }\n }), h(\"path\", {\n \"class\": bem('layer'),\n \"style\": this.layerStyle,\n \"attrs\": {\n \"d\": PATH\n }\n })]), this.slots() || this.text && h(\"div\", {\n \"class\": bem('text')\n }, [this.text])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/circle/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('col'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n span: [Number, String],\n offset: [Number, String],\n tag: {\n type: String,\n \"default\": 'div'\n }\n },\n computed: {\n gutter: function gutter() {\n return this.$parent && Number(this.$parent.gutter) || 0;\n },\n style: function style() {\n var padding = this.gutter / 2 + \"px\";\n return this.gutter ? {\n paddingLeft: padding,\n paddingRight: padding\n } : {};\n }\n },\n render: function render(h) {\n var _bem;\n\n var span = this.span,\n offset = this.offset;\n return h(this.tag, {\n \"class\": bem((_bem = {}, _bem[span] = span, _bem[\"offset-\" + offset] = offset, _bem)),\n \"style\": this.style\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/col/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('collapse'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n accordion: Boolean,\n value: [String, Number, Array],\n border: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n items: []\n };\n },\n methods: {\n \"switch\": function _switch(name, expanded) {\n if (!this.accordion) {\n name = expanded ? this.value.concat(name) : this.value.filter(function (activeName) {\n return activeName !== name;\n });\n }\n\n this.$emit('change', name);\n this.$emit('input', name);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": [bem(), {\n 'van-hairline--top-bottom': this.border\n }]\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/collapse/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isDef } from '../utils';\nimport { raf } from '../utils/raf';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\nimport { FindParentMixin } from '../mixins/find-parent';\n\nvar _use = use('collapse-item'),\n sfc = _use[0],\n bem = _use[1];\n\nvar CELL_SLOTS = ['title', 'icon', 'right-icon'];\nexport default sfc({\n mixins: [FindParentMixin],\n props: _extends({}, cellProps, {\n name: [String, Number],\n disabled: Boolean,\n isLink: {\n type: Boolean,\n \"default\": true\n }\n }),\n data: function data() {\n return {\n show: null,\n inited: null\n };\n },\n computed: {\n items: function items() {\n return this.parent.items;\n },\n index: function index() {\n return this.items.indexOf(this);\n },\n currentName: function currentName() {\n return isDef(this.name) ? this.name : this.index;\n },\n expanded: function expanded() {\n var _this = this;\n\n if (!this.parent) {\n return null;\n }\n\n var value = this.parent.value;\n return this.parent.accordion ? value === this.currentName : value.some(function (name) {\n return name === _this.currentName;\n });\n }\n },\n created: function created() {\n this.findParent('van-collapse');\n this.items.push(this);\n this.show = this.expanded;\n this.inited = this.expanded;\n },\n destroyed: function destroyed() {\n this.items.splice(this.index, 1);\n },\n watch: {\n expanded: function expanded(_expanded, prev) {\n var _this2 = this;\n\n if (prev === null) {\n return;\n }\n\n if (_expanded) {\n this.show = true;\n this.inited = true;\n }\n\n raf(function () {\n var _this2$$refs = _this2.$refs,\n content = _this2$$refs.content,\n wrapper = _this2$$refs.wrapper;\n\n if (!content || !wrapper) {\n return;\n }\n\n var clientHeight = content.clientHeight;\n\n if (clientHeight) {\n var contentHeight = clientHeight + \"px\";\n wrapper.style.height = _expanded ? 0 : contentHeight;\n raf(function () {\n wrapper.style.height = _expanded ? contentHeight : 0;\n });\n } else {\n _this2.onTransitionEnd();\n }\n });\n }\n },\n methods: {\n onClick: function onClick() {\n if (this.disabled) {\n return;\n }\n\n var parent = this.parent;\n var name = parent.accordion && this.currentName === parent.value ? '' : this.currentName;\n var expanded = !this.expanded;\n this.parent[\"switch\"](name, expanded);\n },\n onTransitionEnd: function onTransitionEnd() {\n if (!this.expanded) {\n this.show = false;\n } else {\n this.$refs.wrapper.style.height = null;\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var titleSlots = CELL_SLOTS.reduce(function (slots, name) {\n if (_this3.slots(name)) {\n slots[name] = function () {\n return _this3.slots(name);\n };\n }\n\n return slots;\n }, {});\n\n if (this.slots('value')) {\n titleSlots[\"default\"] = function () {\n return _this3.slots('value');\n };\n }\n\n var Title = h(Cell, {\n \"class\": bem('title', {\n disabled: this.disabled,\n expanded: this.expanded\n }),\n \"on\": {\n \"click\": this.onClick\n },\n \"scopedSlots\": titleSlots,\n \"props\": _extends({}, this.$props)\n });\n var Content = this.inited && h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"ref\": \"wrapper\",\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": bem('content')\n }, [this.slots()])]);\n return h(\"div\", {\n \"class\": [bem(), {\n 'van-hairline--top': this.index\n }]\n }, [Title, Content]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/collapse-item/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Cell from '../cell'; // Types\n\nvar _use = use('contact-card'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction ContactCard(h, props, slots, ctx) {\n var type = props.type,\n editable = props.editable;\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"border\": false,\n \"isLink\": editable,\n \"valueClass\": bem('value'),\n \"icon\": type === 'edit' ? 'contact' : 'add-square'\n },\n \"class\": bem([type]),\n \"on\": {\n \"click\": function click(event) {\n if (editable) {\n emit(ctx, 'click', event);\n }\n }\n }\n }, inherit(ctx)]), [type === 'add' ? props.addText || t('addText') : [h(\"div\", [t('name') + \"\\uFF1A\" + props.name]), h(\"div\", [t('tel') + \"\\uFF1A\" + props.tel])]]);\n}\n\nContactCard.props = {\n tel: String,\n name: String,\n addText: String,\n editable: {\n type: Boolean,\n \"default\": true\n },\n type: {\n type: String,\n \"default\": 'add'\n }\n};\nexport default sfc(ContactCard);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/contact-card/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Button from '../button';\nimport Field from '../field';\nimport Toast from '../toast';\nimport Dialog from '../dialog';\nimport { isMobile } from '../utils/validate/mobile';\n\nvar _use = use('contact-edit'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar defaultContact = {\n tel: '',\n name: ''\n};\nexport default sfc({\n props: {\n isEdit: Boolean,\n isSaving: Boolean,\n isDeleting: Boolean,\n contactInfo: {\n type: Object,\n \"default\": function _default() {\n return _extends({}, defaultContact);\n }\n },\n telValidator: {\n type: Function,\n \"default\": isMobile\n }\n },\n data: function data() {\n return {\n data: _extends({}, defaultContact, this.contactInfo),\n errorInfo: {\n name: false,\n tel: false\n }\n };\n },\n watch: {\n contactInfo: function contactInfo(val) {\n this.data = _extends({}, defaultContact, val);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = false;\n },\n getErrorMessageByKey: function getErrorMessageByKey(key) {\n var value = this.data[key].trim();\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameEmpty');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var isValid = ['name', 'tel'].every(function (item) {\n var msg = _this.getErrorMessageByKey(item);\n\n if (msg) {\n _this.errorInfo[item] = true;\n Toast(msg);\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n message: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n });\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this3.onFocus(name);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"maxlength\": \"30\",\n \"label\": t('name'),\n \"placeholder\": t('nameEmpty'),\n \"error\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n data.name = $$v;\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"placeholder\": t('telEmpty'),\n \"error\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n data.tel = $$v;\n }\n }\n }), h(\"div\", {\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"type\": \"danger\",\n \"text\": t('save'),\n \"loading\": this.isSaving\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.isEdit && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"text\": t('delete'),\n \"loading\": this.isDeleting\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/contact-edit/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Button from '../button';\nimport Radio from '../radio';\nimport RadioGroup from '../radio-group'; // Types\n\nvar _use = use('contact-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction ContactList(h, props, slots, ctx) {\n var List = props.list.map(function (item, index) {\n var onClick = function onClick() {\n emit(ctx, 'input', item.id);\n emit(ctx, 'select', item, index);\n };\n\n return h(Cell, {\n \"key\": item.id,\n \"attrs\": {\n \"isLink\": true,\n \"valueClass\": bem('item-value')\n },\n \"class\": bem('item'),\n \"scopedSlots\": {\n \"default\": function _default() {\n return h(Radio, {\n \"attrs\": {\n \"name\": item.id\n },\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('name')\n }, [item.name + \"\\uFF0C\" + item.tel])]);\n },\n 'right-icon': function rightIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit', item, index);\n }\n }\n });\n }\n },\n \"on\": {\n \"click\": onClick\n }\n });\n });\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n },\n \"class\": bem('group')\n }, [List]), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.addText || t('addText')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })]);\n}\n\nContactList.props = {\n value: null,\n list: Array,\n addText: String\n};\nexport default sfc(ContactList);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/contact-list/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Checkbox from '../checkbox';\n\nvar _use = use('coupon'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction padZero(num) {\n return (num < 10 ? '0' : '') + num;\n}\n\nfunction getDate(timeStamp) {\n var date = new Date(timeStamp * 1000);\n return date.getFullYear() + \".\" + padZero(date.getMonth() + 1) + \".\" + padZero(date.getDate());\n}\n\nfunction formatDiscount(discount) {\n return (discount / 10).toFixed(discount % 10 === 0 ? 0 : 1);\n}\n\nfunction formatAmount(amount) {\n return (amount / 100).toFixed(amount % 100 === 0 ? 0 : amount % 10 === 0 ? 1 : 2);\n}\n\nexport default sfc({\n props: {\n coupon: Object,\n chosen: Boolean,\n disabled: Boolean,\n currency: {\n type: String,\n \"default\": '¥'\n }\n },\n computed: {\n validPeriod: function validPeriod() {\n return t('valid') + \"\\uFF1A\" + getDate(this.coupon.startAt) + \" - \" + getDate(this.coupon.endAt);\n },\n faceAmount: function faceAmount() {\n var coupon = this.coupon;\n\n if (coupon.valueDesc) {\n return coupon.valueDesc + \"\" + (coupon.unitDesc || '') + \"\";\n }\n\n return coupon.denominations ? \"\" + this.currency + \" \" + formatAmount(this.coupon.denominations) : coupon.discount ? t('discount', formatDiscount(this.coupon.discount)) : '';\n },\n conditionMessage: function conditionMessage() {\n var condition = this.coupon.originCondition;\n condition = condition % 100 === 0 ? Math.round(condition / 100) : (condition / 100).toFixed(2);\n return condition === 0 ? t('unlimited') : t('condition', condition);\n }\n },\n render: function render(h) {\n var coupon = this.coupon,\n disabled = this.disabled;\n var description = disabled && coupon.reason || coupon.description;\n return h(\"div\", {\n \"class\": bem({\n disabled: disabled\n })\n }, [h(\"div\", {\n \"class\": bem('content')\n }, [h(\"div\", {\n \"class\": bem('head')\n }, [h(\"h2\", {\n \"domProps\": {\n \"innerHTML\": this.faceAmount\n }\n }), h(\"p\", [this.coupon.condition || this.conditionMessage])]), h(\"div\", {\n \"class\": bem('body')\n }, [h(\"h2\", [coupon.name]), h(\"p\", [this.validPeriod]), this.chosen && h(Checkbox, {\n \"attrs\": {\n \"value\": true\n },\n \"class\": bem('corner')\n })])]), description && h(\"p\", {\n \"class\": bem('description')\n }, [description])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/coupon/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Cell from '../cell'; // Types\n\nvar _use = use('coupon-cell'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction formatValue(props) {\n var coupons = props.coupons,\n chosenCoupon = props.chosenCoupon,\n currency = props.currency;\n var coupon = coupons[chosenCoupon];\n\n if (coupon) {\n var value = coupon.denominations || coupon.value;\n return \"-\" + currency + (value / 100).toFixed(2);\n }\n\n return coupons.length === 0 ? t('tips') : t('count', coupons.length);\n}\n\nfunction CouponCell(h, props, slots, ctx) {\n var valueClass = props.coupons[props.chosenCoupon] ? 'van-coupon-cell--selected' : '';\n var value = formatValue(props);\n return h(Cell, _mergeJSXProps([{\n \"class\": bem(),\n \"attrs\": {\n \"value\": value,\n \"title\": props.title || t('title'),\n \"border\": props.border,\n \"isLink\": props.editable,\n \"valueClass\": valueClass\n }\n }, inherit(ctx, true)]));\n}\n\nCouponCell.model = {\n prop: 'chosenCoupon'\n};\nCouponCell.props = {\n title: String,\n coupons: Array,\n currency: {\n type: String,\n \"default\": '¥'\n },\n border: {\n type: Boolean,\n \"default\": true\n },\n editable: {\n type: Boolean,\n \"default\": true\n },\n chosenCoupon: {\n type: Number,\n \"default\": -1\n }\n};\nexport default sfc(CouponCell);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/coupon-cell/index.js\n// module id = null\n// module chunks = ","/* eslint-disable object-shorthand */\nimport { use } from '../utils';\nimport { FindParentMixin } from '../mixins/find-parent';\n\nvar _use = use('tab'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [FindParentMixin],\n props: {\n title: String,\n disabled: Boolean\n },\n data: function data() {\n return {\n inited: false\n };\n },\n computed: {\n index: function index() {\n return this.parent.tabs.indexOf(this);\n },\n selected: function selected() {\n return this.index === this.parent.curActive;\n }\n },\n watch: {\n 'parent.curActive': function parentCurActive() {\n this.inited = this.inited || this.selected;\n },\n title: function title() {\n this.parent.setLine();\n }\n },\n created: function created() {\n this.findParent('van-tabs');\n },\n mounted: function mounted() {\n var tabs = this.parent.tabs;\n var index = this.parent.slots().indexOf(this.$vnode);\n tabs.splice(index === -1 ? tabs.length : index, 0, this);\n\n if (this.slots('title')) {\n this.parent.renderTitle(this.$refs.title, this.index);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.parent.tabs.splice(this.index, 1);\n },\n render: function render(h) {\n var slots = this.slots;\n var shouldRender = this.inited || !this.parent.lazyRender;\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.selected || this.parent.animated\n }],\n \"class\": bem('pane')\n }, [shouldRender ? slots() : h(), slots('title') && h(\"div\", {\n \"ref\": \"title\"\n }, [slots('title')])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tab/index.js\n// module id = null\n// module chunks = ","import { use, isDef } from '../utils';\nimport { raf } from '../utils/raf';\nimport { on, off } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { setScrollTop, getScrollTop, getElementTop, getScrollEventTarget } from '../utils/scroll';\n\nvar _use = use('tabs'),\n sfc = _use[0],\n bem = _use[1];\n\nvar tabBem = use('tab')[1];\nexport default sfc({\n mixins: [TouchMixin],\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n sticky: Boolean,\n animated: Boolean,\n offsetTop: Number,\n swipeable: Boolean,\n background: String,\n titleActiveColor: String,\n titleInactiveColor: String,\n ellipsis: {\n type: Boolean,\n \"default\": true\n },\n lazyRender: {\n type: Boolean,\n \"default\": true\n },\n lineWidth: {\n type: Number,\n \"default\": null\n },\n lineHeight: {\n type: Number,\n \"default\": null\n },\n active: {\n type: [Number, String],\n \"default\": 0\n },\n type: {\n type: String,\n \"default\": 'line'\n },\n duration: {\n type: Number,\n \"default\": 0.3\n },\n swipeThreshold: {\n type: Number,\n \"default\": 4\n }\n },\n data: function data() {\n return {\n tabs: [],\n position: '',\n curActive: null,\n lineStyle: {\n backgroundColor: this.color\n },\n events: {\n resize: false,\n sticky: false,\n swipeable: false\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.tabs.length > this.swipeThreshold || !this.ellipsis;\n },\n wrapStyle: function wrapStyle() {\n switch (this.position) {\n case 'top':\n return {\n top: this.offsetTop + 'px',\n position: 'fixed'\n };\n\n case 'bottom':\n return {\n top: 'auto',\n bottom: 0\n };\n\n default:\n return null;\n }\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n trackStyle: function trackStyle() {\n if (this.animated) {\n return {\n left: -1 * this.curActive * 100 + \"%\",\n transitionDuration: this.duration + \"s\"\n };\n }\n }\n },\n watch: {\n active: function active(val) {\n if (val !== this.curActive) {\n this.correctActive(val);\n }\n },\n color: function color() {\n this.setLine();\n },\n tabs: function tabs() {\n this.correctActive(this.curActive || this.active);\n this.scrollIntoView();\n this.setLine();\n },\n curActive: function curActive() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.position === 'top' || this.position === 'bottom') {\n setScrollTop(window, getElementTop(this.$el) - this.offsetTop);\n }\n },\n sticky: function sticky() {\n this.handlers(true);\n },\n swipeable: function swipeable() {\n this.handlers(true);\n }\n },\n mounted: function mounted() {\n this.onShow();\n },\n activated: function activated() {\n this.onShow();\n this.setLine();\n },\n deactivated: function deactivated() {\n this.handlers(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.handlers(false);\n },\n methods: {\n onShow: function onShow() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.inited = true;\n\n _this.handlers(true);\n\n _this.scrollIntoView(true);\n });\n },\n // whether to bind sticky listener\n handlers: function handlers(bind) {\n var events = this.events;\n var sticky = this.sticky && bind;\n var swipeable = this.swipeable && bind; // listen to window resize event\n\n if (events.resize !== bind) {\n events.resize = bind;\n (bind ? on : off)(window, 'resize', this.setLine, true);\n } // listen to scroll event\n\n\n if (events.sticky !== sticky) {\n events.sticky = sticky;\n this.scrollEl = this.scrollEl || getScrollEventTarget(this.$el);\n (sticky ? on : off)(this.scrollEl, 'scroll', this.onScroll, true);\n this.onScroll();\n } // listen to touch event\n\n\n if (events.swipeable !== swipeable) {\n events.swipeable = swipeable;\n var content = this.$refs.content;\n var action = swipeable ? on : off;\n action(content, 'touchstart', this.touchStart);\n action(content, 'touchmove', this.touchMove);\n action(content, 'touchend', this.onTouchEnd);\n action(content, 'touchcancel', this.onTouchEnd);\n }\n },\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n curActive = this.curActive;\n var minSwipeDistance = 50;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= minSwipeDistance) {\n /* istanbul ignore else */\n if (deltaX > 0 && curActive !== 0) {\n this.setCurActive(curActive - 1);\n } else if (deltaX < 0 && curActive !== this.tabs.length - 1) {\n this.setCurActive(curActive + 1);\n }\n }\n },\n // adjust tab position\n onScroll: function onScroll() {\n var scrollTop = getScrollTop(window) + this.offsetTop;\n var elTopToPageTop = getElementTop(this.$el);\n var elBottomToPageTop = elTopToPageTop + this.$el.offsetHeight - this.$refs.wrap.offsetHeight;\n\n if (scrollTop > elBottomToPageTop) {\n this.position = 'bottom';\n } else if (scrollTop > elTopToPageTop) {\n this.position = 'top';\n } else {\n this.position = '';\n }\n\n var scrollParams = {\n scrollTop: scrollTop,\n isFixed: this.position === 'top'\n };\n this.$emit('scroll', scrollParams);\n },\n // update nav bar style\n setLine: function setLine() {\n var _this2 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var tabs = _this2.$refs.tabs;\n\n if (!tabs || !tabs[_this2.curActive] || _this2.type !== 'line') {\n return;\n }\n\n var tab = tabs[_this2.curActive];\n var lineWidth = _this2.lineWidth,\n lineHeight = _this2.lineHeight;\n var width = isDef(lineWidth) ? lineWidth : tab.offsetWidth / 2;\n var left = tab.offsetLeft + (tab.offsetWidth - width) / 2;\n var lineStyle = {\n width: width + \"px\",\n backgroundColor: _this2.color,\n transform: \"translateX(\" + left + \"px)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this2.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = lineHeight + \"px\";\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this2.lineStyle = lineStyle;\n });\n },\n // correct the value of active\n correctActive: function correctActive(active) {\n active = +active;\n var exist = this.tabs.some(function (tab) {\n return tab.index === active;\n });\n var defaultActive = (this.tabs[0] || {}).index || 0;\n this.setCurActive(exist ? active : defaultActive);\n },\n setCurActive: function setCurActive(active) {\n active = this.findAvailableTab(active, active < this.curActive);\n\n if (isDef(active) && active !== this.curActive) {\n this.$emit('input', active);\n\n if (this.curActive !== null) {\n this.$emit('change', active, this.tabs[active].title);\n }\n\n this.curActive = active;\n }\n },\n findAvailableTab: function findAvailableTab(active, reverse) {\n var diff = reverse ? -1 : 1;\n var index = active;\n\n while (index >= 0 && index < this.tabs.length) {\n if (!this.tabs[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(index) {\n var _this$tabs$index = this.tabs[index],\n title = _this$tabs$index.title,\n disabled = _this$tabs$index.disabled;\n\n if (disabled) {\n this.$emit('disabled', index, title);\n } else {\n this.setCurActive(index);\n this.$emit('click', index, title);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var tabs = this.$refs.tabs;\n\n if (!this.scrollable || !tabs || !tabs[this.curActive]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var scrollLeft = nav.scrollLeft,\n navWidth = nav.offsetWidth;\n var _tabs$this$curActive = tabs[this.curActive],\n offsetLeft = _tabs$this$curActive.offsetLeft,\n tabWidth = _tabs$this$curActive.offsetWidth;\n this.scrollTo(nav, scrollLeft, offsetLeft - (navWidth - tabWidth) / 2, immediate);\n },\n // animate the scrollLeft of nav\n scrollTo: function scrollTo(el, from, to, immediate) {\n if (immediate) {\n el.scrollLeft += to - from;\n return;\n }\n\n var count = 0;\n var frames = Math.round(this.duration * 1000 / 16);\n\n var animate = function animate() {\n el.scrollLeft += (to - from) / frames;\n /* istanbul ignore next */\n\n if (++count < frames) {\n raf(animate);\n }\n };\n\n animate();\n },\n // render title slot of child tab\n renderTitle: function renderTitle(el, index) {\n var _this3 = this;\n\n this.$nextTick(function () {\n var title = _this3.$refs.title[index];\n title.parentNode.replaceChild(el, title);\n });\n },\n getTabStyle: function getTabStyle(item, index) {\n var style = {};\n var color = this.color;\n var active = index === this.curActive;\n var isCard = this.type === 'card'; // theme color\n\n if (color) {\n if (!item.disabled && isCard && !active) {\n style.color = color;\n }\n\n if (!item.disabled && isCard && active) {\n style.backgroundColor = color;\n }\n\n if (isCard) {\n style.borderColor = color;\n }\n }\n\n var titleColor = active ? this.titleActiveColor : this.titleInactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n if (this.scrollable && this.ellipsis) {\n style.flexBasis = 88 / this.swipeThreshold + '%';\n }\n\n return style;\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var type = this.type,\n ellipsis = this.ellipsis,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.tabs.map(function (tab, index) {\n return h(\"div\", {\n \"ref\": \"tabs\",\n \"refInFor\": true,\n \"class\": tabBem({\n active: index === _this4.curActive,\n disabled: tab.disabled,\n complete: !ellipsis\n }),\n \"style\": _this4.getTabStyle(tab, index),\n \"on\": {\n \"click\": function click() {\n _this4.onClick(index);\n }\n }\n }, [h(\"span\", {\n \"ref\": \"title\",\n \"refInFor\": true,\n \"class\": {\n 'van-ellipsis': ellipsis\n }\n }, [tab.title])]);\n });\n return h(\"div\", {\n \"class\": bem([type])\n }, [h(\"div\", {\n \"ref\": \"wrap\",\n \"style\": this.wrapStyle,\n \"class\": [bem('wrap', {\n scrollable: scrollable\n }), {\n 'van-hairline--top-bottom': type === 'line'\n }]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"class\": bem('nav', [type]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), Nav, this.slots('nav-right')])]), h(\"div\", {\n \"ref\": \"content\",\n \"class\": bem('content', {\n animated: animated\n })\n }, [animated ? h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.trackStyle\n }, [this.slots()]) : this.slots()])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tabs/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Field from '../field';\nimport Button from '../button';\nimport Coupon from '../coupon';\n\nvar _use = use('coupon-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar EMPTY_IMAGE = 'https://img.yzcdn.cn/vant/coupon-empty.png';\nexport default sfc({\n model: {\n prop: 'code'\n },\n props: {\n code: String,\n coupons: Array,\n disabledCoupons: Array,\n closeButtonText: String,\n inputPlaceholder: String,\n exchangeButtonText: String,\n exchangeButtonLoading: Boolean,\n exchangeButtonDisabled: Boolean,\n exchangeMinLength: {\n type: Number,\n \"default\": 1\n },\n chosenCoupon: {\n type: Number,\n \"default\": -1\n },\n displayedCouponIndex: {\n type: Number,\n \"default\": -1\n },\n showExchangeBar: {\n type: Boolean,\n \"default\": true\n },\n showCloseButton: {\n type: Boolean,\n \"default\": true\n },\n currency: {\n type: String,\n \"default\": '¥'\n }\n },\n data: function data() {\n return {\n tab: 0,\n winHeight: window.innerHeight,\n currentCode: this.code || ''\n };\n },\n computed: {\n buttonDisabled: function buttonDisabled() {\n return !this.exchangeButtonLoading && (this.exchangeButtonDisabled || !this.currentCode || this.currentCode.length < this.exchangeMinLength);\n },\n title: function title() {\n return t('enable') + \" (\" + this.coupons.length + \")\";\n },\n disabledTitle: function disabledTitle() {\n return t('disabled') + \" (\" + this.disabledCoupons.length + \")\";\n },\n listStyle: function listStyle() {\n return {\n height: this.winHeight - (this.showExchangeBar ? 140 : 94) + 'px'\n };\n }\n },\n watch: {\n code: function code(_code) {\n this.currentCode = _code;\n },\n currentCode: function currentCode(code) {\n this.$emit('input', code);\n },\n displayedCouponIndex: function displayedCouponIndex(val) {\n this.scrollToShowCoupon(val);\n }\n },\n mounted: function mounted() {\n this.scrollToShowCoupon(this.displayedCouponIndex);\n },\n methods: {\n onClickExchangeButton: function onClickExchangeButton() {\n this.$emit('exchange', this.currentCode); // auto clear currentCode when not use vModel\n\n if (!this.code) {\n this.currentCode = '';\n }\n },\n // scroll to show specific coupon\n scrollToShowCoupon: function scrollToShowCoupon(index) {\n var _this = this;\n\n if (index === -1) {\n return;\n }\n\n this.$nextTick(function () {\n var _this$$refs = _this.$refs,\n card = _this$$refs.card,\n list = _this$$refs.list;\n /* istanbul ignore next */\n\n if (list && card && card[index]) {\n list.scrollTop = card[index].$el.offsetTop - 100;\n }\n });\n },\n renderEmpty: function renderEmpty() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('empty')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": EMPTY_IMAGE\n }\n }), h(\"p\", [t('empty')])]);\n },\n renderExchangeButton: function renderExchangeButton() {\n var h = this.$createElement;\n return h(Button, {\n \"attrs\": {\n \"size\": \"small\",\n \"type\": \"danger\",\n \"text\": this.exchangeButtonText || t('exchange'),\n \"loading\": this.exchangeButtonLoading,\n \"disabled\": this.buttonDisabled\n },\n \"class\": bem('exchange'),\n \"on\": {\n \"click\": this.onClickExchangeButton\n }\n });\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var ExchangeBar = this.showExchangeBar && h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"border\": false,\n \"placeholder\": this.inputPlaceholder || t('placeholder'),\n \"maxlength\": \"20\"\n },\n \"class\": bem('field'),\n \"scopedSlots\": {\n button: this.renderExchangeButton\n },\n \"model\": {\n value: _this2.currentCode,\n callback: function callback($$v) {\n _this2.currentCode = $$v;\n }\n }\n });\n\n var onChange = function onChange(index) {\n return function () {\n return _this2.$emit('change', index);\n };\n };\n\n var CouponTab = h(Tab, {\n \"attrs\": {\n \"title\": this.title\n }\n }, [h(\"div\", {\n \"class\": bem('list'),\n \"style\": this.listStyle\n }, [this.coupons.map(function (coupon, index) {\n return h(Coupon, {\n \"ref\": \"card\",\n \"key\": coupon.id,\n \"attrs\": {\n \"coupon\": coupon,\n \"currency\": _this2.currency,\n \"chosen\": index === _this2.chosenCoupon\n },\n \"nativeOn\": {\n \"click\": onChange(index)\n }\n });\n }), !this.coupons.length && this.renderEmpty()])]);\n var DisabledCouponTab = h(Tab, {\n \"attrs\": {\n \"title\": this.disabledTitle\n }\n }, [h(\"div\", {\n \"class\": bem('list'),\n \"style\": this.listStyle\n }, [this.disabledCoupons.map(function (coupon) {\n return h(Coupon, {\n \"attrs\": {\n \"disabled\": true,\n \"coupon\": coupon,\n \"currency\": _this2.currency\n },\n \"key\": coupon.id\n });\n }), !this.disabledCoupons.length && this.renderEmpty()])]);\n return h(\"div\", {\n \"class\": bem()\n }, [ExchangeBar, h(Tabs, {\n \"class\": bem('tab'),\n \"attrs\": {\n \"line-width\": 120\n },\n \"model\": {\n value: _this2.tab,\n callback: function callback($$v) {\n _this2.tab = $$v;\n }\n }\n }, [CouponTab, DisabledCouponTab]), h(Button, {\n \"directives\": [{\n name: \"show\",\n value: this.showCloseButton\n }],\n \"attrs\": {\n \"size\": \"large\",\n \"text\": this.closeButtonText || t('close')\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onChange(-1)\n }\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/coupon-list/index.js\n// module id = null\n// module chunks = ","export function isValidDate(date) {\n return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n}\nexport function padZero(val) {\n return (\"00\" + val).slice(-2);\n}\nexport function times(n, iteratee) {\n var index = -1;\n var result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\nexport function getTrueValue(formattedValue) {\n if (!formattedValue) return;\n\n while (isNaN(parseInt(formattedValue, 10))) {\n formattedValue = formattedValue.slice(1);\n }\n\n return parseInt(formattedValue, 10);\n}\nexport function getMonthEndDay(year, month) {\n return 32 - new Date(year, month - 1, 32).getDate();\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/datetime-picker/utils.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, range } from '../utils';\nimport Picker from '../picker';\nimport { pickerProps } from '../picker/shared';\nimport { times, padZero, isValidDate, getTrueValue, getMonthEndDay } from './utils';\n\nvar _use = use('datetime-picker'),\n sfc = _use[0],\n bem = _use[1];\n\nvar currentYear = new Date().getFullYear();\nexport default sfc({\n props: _extends({}, pickerProps, {\n value: null,\n minHour: Number,\n minMinute: Number,\n type: {\n type: String,\n \"default\": 'datetime'\n },\n showToolbar: {\n type: Boolean,\n \"default\": true\n },\n format: {\n type: String,\n \"default\": 'YYYY.MM.DD HH时 mm分'\n },\n formatter: {\n type: Function,\n \"default\": function _default(type, value) {\n return value;\n }\n },\n minDate: {\n type: Date,\n \"default\": function _default() {\n return new Date(currentYear - 10, 0, 1);\n },\n validator: isValidDate\n },\n maxDate: {\n type: Date,\n \"default\": function _default() {\n return new Date(currentYear + 10, 11, 31);\n },\n validator: isValidDate\n },\n maxHour: {\n type: Number,\n \"default\": 23\n },\n maxMinute: {\n type: Number,\n \"default\": 59\n }\n }),\n data: function data() {\n return {\n innerValue: this.correctValue(this.value)\n };\n },\n watch: {\n value: function value(val) {\n val = this.correctValue(val);\n var isEqual = this.type === 'time' ? val === this.innerValue : val.valueOf() === this.innerValue.valueOf();\n\n if (!isEqual) {\n this.innerValue = val;\n\n if (this.type === 'time') {\n this.updateColumnValue(val);\n }\n }\n },\n innerValue: function innerValue(val) {\n this.$emit('input', val);\n },\n columns: function columns() {\n this.updateColumnValue(this.innerValue);\n }\n },\n computed: {\n ranges: function ranges() {\n if (this.type === 'time') {\n return [{\n type: 'hour',\n range: [this.minHour, this.maxHour]\n }, {\n type: 'minute',\n range: [this.minMinute, this.maxMinute]\n }];\n }\n\n var _this$getBoundary = this.getBoundary('max', this.innerValue),\n maxYear = _this$getBoundary.maxYear,\n maxDate = _this$getBoundary.maxDate,\n maxMonth = _this$getBoundary.maxMonth,\n maxHour = _this$getBoundary.maxHour,\n maxMinute = _this$getBoundary.maxMinute;\n\n var _this$getBoundary2 = this.getBoundary('min', this.innerValue),\n minYear = _this$getBoundary2.minYear,\n minDate = _this$getBoundary2.minDate,\n minMonth = _this$getBoundary2.minMonth,\n minHour = _this$getBoundary2.minHour,\n minMinute = _this$getBoundary2.minMinute;\n\n var result = [{\n type: 'year',\n range: [minYear, maxYear]\n }, {\n type: 'month',\n range: [minMonth, maxMonth]\n }, {\n type: 'day',\n range: [minDate, maxDate]\n }, {\n type: 'hour',\n range: [minHour, maxHour]\n }, {\n type: 'minute',\n range: [minMinute, maxMinute]\n }];\n if (this.type === 'date') result.splice(3, 2);\n if (this.type === 'year-month') result.splice(2, 3);\n return result;\n },\n columns: function columns() {\n var _this = this;\n\n var results = this.ranges.map(function (_ref) {\n var type = _ref.type,\n rangeArr = _ref.range;\n var values = times(rangeArr[1] - rangeArr[0] + 1, function (index) {\n var value = rangeArr[0] + index;\n value = value < 10 ? \"0\" + value : \"\" + value;\n return _this.formatter(type, value);\n });\n return {\n values: values\n };\n });\n return results;\n }\n },\n mounted: function mounted() {\n this.updateColumnValue(this.innerValue);\n },\n methods: {\n correctValue: function correctValue(value) {\n // validate value\n var isDateType = this.type !== 'time';\n\n if (isDateType && !isValidDate(value)) {\n value = this.minDate;\n } else if (!value) {\n var minHour = this.minHour;\n value = (minHour > 10 ? minHour : '0' + minHour) + \":00\";\n } // time type\n\n\n if (!isDateType) {\n var _value$split = value.split(':'),\n hour = _value$split[0],\n minute = _value$split[1];\n\n hour = padZero(range(hour, this.minHour, this.maxHour));\n minute = padZero(range(minute, this.minMinute, this.maxMinute));\n return hour + \":\" + minute;\n } // date type\n\n\n value = Math.max(value, this.minDate.getTime());\n value = Math.min(value, this.maxDate.getTime());\n return new Date(value);\n },\n getBoundary: function getBoundary(type, value) {\n var _ref2;\n\n var boundary = this[type + \"Date\"];\n var year = boundary.getFullYear();\n var month = 1;\n var date = 1;\n var hour = 0;\n var minute = 0;\n\n if (type === 'max') {\n month = 12;\n date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);\n hour = 23;\n minute = 59;\n }\n\n if (value.getFullYear() === year) {\n month = boundary.getMonth() + 1;\n\n if (value.getMonth() + 1 === month) {\n date = boundary.getDate();\n\n if (value.getDate() === date) {\n hour = boundary.getHours();\n\n if (value.getHours() === hour) {\n minute = boundary.getMinutes();\n }\n }\n }\n }\n\n return _ref2 = {}, _ref2[type + \"Year\"] = year, _ref2[type + \"Month\"] = month, _ref2[type + \"Date\"] = date, _ref2[type + \"Hour\"] = hour, _ref2[type + \"Minute\"] = minute, _ref2;\n },\n onConfirm: function onConfirm() {\n this.$emit('confirm', this.innerValue);\n },\n onChange: function onChange(picker) {\n var _this2 = this;\n\n var value;\n\n if (this.type === 'time') {\n var indexes = picker.getIndexes();\n value = indexes[0] + this.minHour + \":\" + (indexes[1] + this.minMinute);\n } else {\n var values = picker.getValues();\n var year = getTrueValue(values[0]);\n var month = getTrueValue(values[1]);\n var maxDate = getMonthEndDay(year, month);\n var date = getTrueValue(values[2]);\n\n if (this.type === 'year-month') {\n date = 1;\n }\n\n date = date > maxDate ? maxDate : date;\n var hour = 0;\n var minute = 0;\n\n if (this.type === 'datetime') {\n hour = getTrueValue(values[3]);\n minute = getTrueValue(values[4]);\n }\n\n value = new Date(year, month - 1, date, hour, minute);\n }\n\n this.innerValue = this.correctValue(value);\n this.$nextTick(function () {\n _this2.$nextTick(function () {\n _this2.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue(value) {\n var _this3 = this;\n\n var values = [];\n var formatter = this.formatter;\n\n if (this.type === 'time') {\n var pair = value.split(':');\n values = [formatter('hour', pair[0]), formatter('minute', pair[1])];\n } else {\n values = [formatter('year', \"\" + value.getFullYear()), formatter('month', padZero(value.getMonth() + 1)), formatter('day', padZero(value.getDate()))];\n\n if (this.type === 'datetime') {\n values.push(formatter('hour', padZero(value.getHours())), formatter('minute', padZero(value.getMinutes())));\n }\n\n if (this.type === 'year-month') {\n values = values.slice(0, 2);\n }\n }\n\n this.$nextTick(function () {\n _this3.$refs.picker.setValues(values);\n });\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var props = {};\n Object.keys(pickerProps).forEach(function (key) {\n props[key] = _this4[key];\n });\n return h(Picker, {\n \"class\": bem(),\n \"ref\": \"picker\",\n \"attrs\": {\n \"columns\": this.columns\n },\n \"on\": {\n \"change\": this.onChange,\n \"confirm\": this.onConfirm,\n \"cancel\": function cancel() {\n _this4.$emit('cancel');\n }\n },\n \"props\": _extends({}, props)\n });\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/datetime-picker/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('goods-action'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsAction(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n })\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n}\n\nGoodsAction.props = {\n safeAreaInsetBottom: Boolean\n};\nexport default sfc(GoodsAction);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/goods-action/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Button from '../button';\nimport { emit, inherit } from '../utils/functional';\nimport { functionalRoute, routeProps } from '../utils/router'; // Types\n\nvar _use = use('goods-action-big-btn'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsActionBigBtn(h, props, slots, ctx) {\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n return h(Button, _mergeJSXProps([{\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"loading\": props.loading,\n \"disabled\": props.disabled,\n \"type\": props.primary ? 'danger' : 'warning'\n },\n \"class\": bem(),\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [slots[\"default\"] ? slots[\"default\"]() : props.text]);\n}\n\nGoodsActionBigBtn.props = _extends({}, routeProps, {\n text: String,\n primary: Boolean,\n loading: Boolean,\n disabled: Boolean\n});\nexport default sfc(GoodsActionBigBtn);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/goods-action-big-btn/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Icon from '../icon';\nimport { emit, inherit } from '../utils/functional';\nimport { functionalRoute, routeProps } from '../utils/router'; // Types\n\nvar _use = use('goods-action-mini-btn'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsActionMiniBtn(h, props, slots, ctx) {\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), 'van-hairline'],\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [h(Icon, {\n \"class\": [bem('icon'), props.iconClass],\n \"attrs\": {\n \"tag\": \"div\",\n \"info\": props.info,\n \"name\": props.icon\n }\n }), slots[\"default\"] ? slots[\"default\"]() : props.text]);\n}\n\nGoodsActionMiniBtn.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n info: [String, Number],\n iconClass: null\n});\nexport default sfc(GoodsActionMiniBtn);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/goods-action-mini-btn/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { on, off, preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _use = use('swipe'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n width: Number,\n height: Number,\n autoplay: Number,\n vertical: Boolean,\n initialSwipe: Number,\n indicatorColor: String,\n loop: {\n type: Boolean,\n \"default\": true\n },\n touchable: {\n type: Boolean,\n \"default\": true\n },\n showIndicators: {\n type: Boolean,\n \"default\": true\n },\n duration: {\n type: Number,\n \"default\": 500\n }\n },\n data: function data() {\n return {\n computedWidth: 0,\n computedHeight: 0,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swipes: [],\n swiping: false\n };\n },\n mounted: function mounted() {\n this.initialize();\n\n if (!this.$isServer) {\n on(window, 'resize', this.onResize, true);\n }\n },\n activated: function activated() {\n if (this.rendered) {\n this.initialize();\n }\n\n this.rendered = true;\n },\n destroyed: function destroyed() {\n this.clear();\n\n if (!this.$isServer) {\n off(window, 'resize', this.onResize, true);\n }\n },\n watch: {\n swipes: function swipes() {\n this.initialize();\n },\n initialSwipe: function initialSwipe() {\n this.initialize();\n },\n autoplay: function autoplay(_autoplay) {\n if (!_autoplay) {\n this.clear();\n } else {\n this.autoPlay();\n }\n }\n },\n computed: {\n count: function count() {\n return this.swipes.length;\n },\n delta: function delta() {\n return this.vertical ? this.deltaY : this.deltaX;\n },\n size: function size() {\n return this[this.vertical ? 'computedHeight' : 'computedWidth'];\n },\n trackSize: function trackSize() {\n return this.count * this.size;\n },\n activeIndicator: function activeIndicator() {\n return (this.active + this.count) % this.count;\n },\n isCorrectDirection: function isCorrectDirection() {\n var expect = this.vertical ? 'vertical' : 'horizontal';\n return this.direction === expect;\n },\n trackStyle: function trackStyle() {\n var _ref;\n\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n return _ref = {}, _ref[mainAxis] = this.trackSize + \"px\", _ref[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '', _ref.transitionDuration = (this.swiping ? 0 : this.duration) + \"ms\", _ref.transform = \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\", _ref;\n },\n indicatorStyle: function indicatorStyle() {\n return {\n backgroundColor: this.indicatorColor\n };\n }\n },\n methods: {\n // initialize swipe position\n initialize: function initialize(active) {\n if (active === void 0) {\n active = this.initialSwipe;\n }\n\n clearTimeout(this.timer);\n\n if (this.$el) {\n var rect = this.$el.getBoundingClientRect();\n this.computedWidth = this.width || rect.width;\n this.computedHeight = this.height || rect.height;\n }\n\n this.swiping = true;\n this.active = active;\n this.offset = this.count > 1 ? -this.size * this.active : 0;\n this.swipes.forEach(function (swipe) {\n swipe.offset = 0;\n });\n this.autoPlay();\n },\n onResize: function onResize() {\n this.initialize(this.activeIndicator);\n },\n onTouchStart: function onTouchStart(event) {\n if (!this.touchable) return;\n this.clear();\n this.swiping = true;\n this.touchStart(event);\n this.correctPosition();\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable || !this.swiping) return;\n this.touchMove(event);\n\n if (this.isCorrectDirection) {\n preventDefault(event, true);\n this.move({\n offset: Math.min(Math.max(this.delta, -this.size), this.size)\n });\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.touchable || !this.swiping) return;\n\n if (this.delta && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n this.move({\n pace: offset > 0 ? this.delta > 0 ? -1 : 1 : 0,\n emitChange: true\n });\n }\n\n this.swiping = false;\n this.autoPlay();\n },\n move: function move(_ref2) {\n var _ref2$pace = _ref2.pace,\n pace = _ref2$pace === void 0 ? 0 : _ref2$pace,\n _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n emitChange = _ref2.emitChange;\n var delta = this.delta,\n active = this.active,\n count = this.count,\n swipes = this.swipes,\n trackSize = this.trackSize;\n var atFirst = active === 0;\n var atLast = active === count - 1;\n var outOfBounds = !this.loop && (atFirst && (offset > 0 || pace < 0) || atLast && (offset < 0 || pace > 0));\n\n if (outOfBounds || count <= 1) {\n return;\n }\n\n if (swipes[0]) {\n swipes[0].offset = atLast && (delta < 0 || pace > 0) ? trackSize : 0;\n }\n\n if (swipes[count - 1]) {\n swipes[count - 1].offset = atFirst && (delta > 0 || pace < 0) ? -trackSize : 0;\n }\n\n if (pace && active + pace >= -1 && active + pace <= count) {\n this.active += pace;\n\n if (emitChange) {\n this.$emit('change', this.activeIndicator);\n }\n }\n\n this.offset = Math.round(offset - this.active * this.size);\n },\n swipeTo: function swipeTo(index) {\n var _this = this;\n\n this.swiping = true;\n this.resetTouchStatus();\n this.correctPosition();\n setTimeout(function () {\n _this.swiping = false;\n\n _this.move({\n pace: index % _this.count - _this.active,\n emitChange: true\n });\n }, 30);\n },\n correctPosition: function correctPosition() {\n if (this.active <= -1) {\n this.move({\n pace: this.count\n });\n }\n\n if (this.active >= this.count) {\n this.move({\n pace: -this.count\n });\n }\n },\n clear: function clear() {\n clearTimeout(this.timer);\n },\n autoPlay: function autoPlay() {\n var _this2 = this;\n\n var autoplay = this.autoplay;\n\n if (autoplay && this.count > 1) {\n this.clear();\n this.timer = setTimeout(function () {\n _this2.swiping = true;\n\n _this2.resetTouchStatus();\n\n _this2.correctPosition();\n\n setTimeout(function () {\n _this2.swiping = false;\n\n _this2.move({\n pace: 1,\n emitChange: true\n });\n\n _this2.autoPlay();\n }, 30);\n }, autoplay);\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var count = this.count,\n activeIndicator = this.activeIndicator;\n var Indicator = this.slots('indicator') || this.showIndicators && count > 1 && h(\"div\", {\n \"class\": bem('indicators', {\n vertical: this.vertical\n })\n }, [Array.apply(void 0, Array(count)).map(function (empty, index) {\n return h(\"i\", {\n \"class\": bem('indicator', {\n active: index === activeIndicator\n }),\n \"style\": index === activeIndicator ? _this3.indicatorStyle : null\n });\n })]);\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"style\": this.trackStyle,\n \"class\": bem('track'),\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [this.slots()]), Indicator]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/swipe/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\n\nvar _use = use('swipe-item'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n data: function data() {\n return {\n offset: 0\n };\n },\n beforeCreate: function beforeCreate() {\n this.$parent.swipes.push(this);\n },\n destroyed: function destroyed() {\n this.$parent.swipes.splice(this.$parent.swipes.indexOf(this), 1);\n },\n render: function render(h) {\n var _this$$parent = this.$parent,\n vertical = _this$$parent.vertical,\n computedWidth = _this$$parent.computedWidth,\n computedHeight = _this$$parent.computedHeight;\n var style = {\n width: computedWidth + 'px',\n height: vertical ? computedHeight + 'px' : '100%',\n transform: \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n return h(\"div\", {\n \"class\": bem(),\n \"style\": style,\n \"on\": _extends({}, this.$listeners)\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/swipe-item/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch';\nimport Swipe from '../swipe';\nimport SwipeItem from '../swipe-item';\n\nvar _use = use('image-preview'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getDistance(touches) {\n return Math.sqrt(Math.abs((touches[0].clientX - touches[1].clientX) * (touches[0].clientY - touches[1].clientY)));\n}\n\nexport default sfc({\n mixins: [PopupMixin, TouchMixin],\n props: {\n images: Array,\n className: null,\n lazyLoad: Boolean,\n asyncClose: Boolean,\n startPosition: Number,\n showIndicators: Boolean,\n loop: {\n type: Boolean,\n \"default\": true\n },\n overlay: {\n type: Boolean,\n \"default\": true\n },\n showIndex: {\n type: Boolean,\n \"default\": true\n },\n minZoom: {\n type: Number,\n \"default\": 1 / 3\n },\n maxZoom: {\n type: Number,\n \"default\": 3\n },\n overlayClass: {\n type: String,\n \"default\": 'van-image-preview__overlay'\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n active: 0\n };\n },\n computed: {\n imageStyle: function imageStyle() {\n var scale = this.scale;\n var style = {\n transition: this.zooming || this.moving ? '' : '.3s all'\n };\n\n if (scale !== 1) {\n style.transform = \"scale3d(\" + scale + \", \" + scale + \", 1) translate(\" + this.moveX / scale + \"px, \" + this.moveY / scale + \"px)\";\n }\n\n return style;\n }\n },\n watch: {\n value: function value() {\n this.active = this.startPosition;\n },\n startPosition: function startPosition(active) {\n this.active = active;\n }\n },\n methods: {\n onWrapperTouchStart: function onWrapperTouchStart() {\n this.touchStartTime = new Date();\n },\n onWrapperTouchEnd: function onWrapperTouchEnd(event) {\n preventDefault(event);\n var deltaTime = new Date() - this.touchStartTime;\n\n var _ref = this.$refs.swipe || {},\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY; // prevent long tap to close component\n\n\n if (deltaTime < 300 && offsetX < 10 && offsetY < 10) {\n var index = this.active;\n this.resetScale();\n this.$emit('close', {\n index: index,\n url: this.images[index]\n });\n\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n }\n },\n startMove: function startMove(event) {\n var image = event.currentTarget;\n var rect = image.getBoundingClientRect();\n var winWidth = window.innerWidth;\n var winHeight = window.innerHeight;\n this.touchStart(event);\n this.moving = true;\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.maxMoveX = Math.max(0, (rect.width - winWidth) / 2);\n this.maxMoveY = Math.max(0, (rect.height - winHeight) / 2);\n },\n startZoom: function startZoom(event) {\n this.moving = false;\n this.zooming = true;\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n },\n onTouchStart: function onTouchStart(event) {\n var touches = event.touches;\n\n var _ref2 = this.$refs.swipe || {},\n _ref2$offsetX = _ref2.offsetX,\n offsetX = _ref2$offsetX === void 0 ? 0 : _ref2$offsetX;\n\n if (touches.length === 1 && this.scale !== 1) {\n this.startMove(event);\n }\n /* istanbul ignore else */\n else if (touches.length === 2 && !offsetX) {\n this.startZoom(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n var touches = event.touches;\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\n this.touchMove(event);\n var moveX = this.deltaX + this.startMoveX;\n var moveY = this.deltaY + this.startMoveY;\n this.moveX = range(moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(moveY, -this.maxMoveY, this.maxMoveY);\n }\n\n if (this.zooming && touches.length === 2) {\n var distance = getDistance(touches);\n var scale = this.startScale * distance / this.startDistance;\n this.scale = range(scale, this.minZoom, this.maxZoom);\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n /* istanbul ignore else */\n if (this.moving || this.zooming) {\n var stopPropagation = true;\n\n if (this.moving && this.startMoveX === this.moveX && this.startMoveY === this.moveY) {\n stopPropagation = false;\n }\n\n if (!event.touches.length) {\n this.moving = false;\n this.zooming = false;\n this.startMoveX = 0;\n this.startMoveY = 0;\n this.startScale = 1;\n\n if (this.scale < 1) {\n this.resetScale();\n }\n }\n\n if (stopPropagation) {\n preventDefault(event, true);\n }\n }\n },\n onChange: function onChange(active) {\n this.resetScale();\n this.active = active;\n this.$emit('change', active);\n },\n resetScale: function resetScale() {\n this.scale = 1;\n this.moveX = 0;\n this.moveY = 0;\n }\n },\n render: function render(h) {\n var _this = this;\n\n if (!this.value) {\n return;\n }\n\n var active = this.active,\n images = this.images;\n var Index = this.showIndex && h(\"div\", {\n \"class\": bem('index')\n }, [this.slots('index') || active + 1 + \"/\" + images.length]);\n var Images = h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"loop\": this.loop,\n \"indicatorColor\": \"white\",\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators\n },\n \"on\": {\n \"change\": this.onChange\n }\n }, [images.map(function (image, index) {\n var props = {\n \"class\": bem('image'),\n style: index === active ? _this.imageStyle : null,\n on: {\n touchstart: _this.onTouchStart,\n touchmove: _this.onTouchMove,\n touchend: _this.onTouchEnd,\n touchcancel: _this.onTouchEnd\n }\n };\n return h(SwipeItem, [_this.lazyLoad ? h(\"img\", _mergeJSXProps([{\n \"directives\": [{\n name: \"lazy\",\n value: image\n }]\n }, props])) : h(\"img\", _mergeJSXProps2([{\n \"attrs\": {\n \"src\": image\n }\n }, props]))]);\n })]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", {\n \"class\": [bem(), this.className],\n \"on\": {\n \"touchstart\": this.onWrapperTouchStart,\n \"touchend\": this.onWrapperTouchEnd,\n \"touchcancel\": this.onWrapperTouchEnd\n }\n }, [Index, Images])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/image-preview/ImagePreview.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueImagePreview from './ImagePreview';\nimport { isServer } from '../utils';\nvar instance;\nvar defaultConfig = {\n images: [],\n loop: true,\n value: true,\n minZoom: 1 / 3,\n maxZoom: 3,\n className: '',\n lazyLoad: false,\n showIndex: true,\n asyncClose: false,\n startPosition: 0,\n showIndicators: false\n};\n\nvar initInstance = function initInstance() {\n instance = new (Vue.extend(VueImagePreview))({\n el: document.createElement('div')\n });\n document.body.appendChild(instance.$el);\n};\n\nvar ImagePreview = function ImagePreview(images, startPosition) {\n if (startPosition === void 0) {\n startPosition = 0;\n }\n\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n initInstance();\n }\n\n var options = Array.isArray(images) ? {\n images: images,\n startPosition: startPosition\n } : images;\n\n _extends(instance, defaultConfig, options);\n\n instance.$once('input', function (show) {\n instance.value = show;\n });\n\n if (options.onClose) {\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/image-preview/index.js\n// module id = null\n// module chunks = ","import Lazyload from 'vue-lazyload';\nexport default Lazyload;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/lazyload/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Loading from '../loading';\nimport { on, off } from '../utils/event';\nimport { getScrollTop, getElementTop, getVisibleHeight, getScrollEventTarget } from '../utils/scroll';\n\nvar _use = use('list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n model: {\n prop: 'loading'\n },\n props: {\n error: Boolean,\n loading: Boolean,\n finished: Boolean,\n errorText: String,\n loadingText: String,\n finishedText: String,\n immediateCheck: {\n type: Boolean,\n \"default\": true\n },\n offset: {\n type: Number,\n \"default\": 300\n },\n direction: {\n type: String,\n \"default\": 'down'\n }\n },\n mounted: function mounted() {\n this.scroller = getScrollEventTarget(this.$el);\n this.handler(true);\n\n if (this.immediateCheck) {\n this.$nextTick(this.check);\n }\n },\n destroyed: function destroyed() {\n this.handler(false);\n },\n activated: function activated() {\n this.handler(true);\n },\n deactivated: function deactivated() {\n this.handler(false);\n },\n watch: {\n loading: function loading() {\n this.$nextTick(this.check);\n },\n finished: function finished() {\n this.$nextTick(this.check);\n }\n },\n methods: {\n check: function check() {\n if (this.loading || this.finished || this.error) {\n return;\n }\n\n var el = this.$el;\n var scroller = this.scroller;\n var scrollerHeight = getVisibleHeight(scroller);\n /* istanbul ignore next */\n\n if (!scrollerHeight || window.getComputedStyle(el).display === 'none' || el.offsetParent === null) {\n return;\n }\n\n var offset = this.offset,\n direction = this.direction;\n\n function isReachEdge() {\n if (el === scroller) {\n var scrollTop = getScrollTop(el);\n\n if (direction === 'up') {\n return scrollTop <= offset;\n }\n\n var targetBottom = scrollTop + scrollerHeight;\n return scroller.scrollHeight - targetBottom <= offset;\n }\n\n if (direction === 'up') {\n return getScrollTop(scroller) - getElementTop(el) <= offset;\n }\n\n var elBottom = getElementTop(el) + getVisibleHeight(el) - getElementTop(scroller);\n return elBottom - scrollerHeight <= offset;\n }\n\n if (isReachEdge()) {\n this.$emit('input', true);\n this.$emit('load');\n }\n },\n clickErrorText: function clickErrorText() {\n this.$emit('update:error', false);\n this.$nextTick(this.check);\n },\n handler: function handler(bind) {\n /* istanbul ignore else */\n if (this.binded !== bind) {\n this.binded = bind;\n (bind ? on : off)(this.scroller, 'scroll', this.check);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.direction === 'down' && this.slots(), this.loading && h(\"div\", {\n \"class\": bem('loading'),\n \"key\": \"loading\"\n }, [this.slots('loading') || [h(Loading, {\n \"class\": bem('loading-icon')\n }), h(\"span\", {\n \"class\": bem('loading-text')\n }, [this.loadingText || t('loading')])]]), this.finished && this.finishedText && h(\"div\", {\n \"class\": bem('finished-text')\n }, [this.finishedText]), this.error && this.errorText && h(\"div\", {\n \"on\": {\n \"click\": this.clickErrorText\n },\n \"class\": bem('error-text')\n }, [this.errorText]), this.direction === 'up' && this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/list/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Icon from '../icon'; // Types\n\nvar _use = use('nav-bar'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction NavBar(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem({\n fixed: props.fixed\n }), {\n 'van-hairline--bottom': props.border\n }],\n \"style\": {\n zIndex: props.zIndex\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": ctx.listeners['click-left'] || noop\n }\n }, [slots.left ? slots.left() : [props.leftArrow && h(Icon, {\n \"class\": bem('arrow'),\n \"attrs\": {\n \"name\": \"arrow-left\"\n }\n }), props.leftText && h(\"span\", {\n \"class\": bem('text')\n }, [props.leftText])]]), h(\"div\", {\n \"class\": [bem('title'), 'van-ellipsis']\n }, [slots.title ? slots.title() : props.title]), h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": ctx.listeners['click-right'] || noop\n }\n }, [slots.right ? slots.right() : props.rightText && h(\"span\", {\n \"class\": bem('text')\n }, [props.rightText])])]);\n}\n\nNavBar.props = {\n title: String,\n fixed: Boolean,\n leftText: String,\n rightText: String,\n leftArrow: Boolean,\n border: {\n type: Boolean,\n \"default\": true\n },\n zIndex: {\n type: Number,\n \"default\": 1\n }\n};\nexport default sfc(NavBar);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/nav-bar/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Icon from '../icon';\n\nvar _use = use('notice-bar'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n text: String,\n mode: String,\n color: String,\n leftIcon: String,\n wrapable: Boolean,\n background: String,\n delay: {\n type: [String, Number],\n \"default\": 1\n },\n scrollable: {\n type: Boolean,\n \"default\": true\n },\n speed: {\n type: Number,\n \"default\": 50\n }\n },\n data: function data() {\n return {\n wrapWidth: 0,\n firstRound: true,\n duration: 0,\n offsetWidth: 0,\n showNoticeBar: true,\n animationClass: ''\n };\n },\n watch: {\n text: {\n handler: function handler() {\n var _this = this;\n\n this.$nextTick(function () {\n var _this$$refs = _this.$refs,\n wrap = _this$$refs.wrap,\n content = _this$$refs.content;\n\n if (!wrap || !content) {\n return;\n }\n\n var wrapWidth = wrap.getBoundingClientRect().width;\n var offsetWidth = content.getBoundingClientRect().width;\n\n if (_this.scrollable && offsetWidth > wrapWidth) {\n _this.wrapWidth = wrapWidth;\n _this.offsetWidth = offsetWidth;\n _this.duration = offsetWidth / _this.speed;\n _this.animationClass = bem('play');\n }\n });\n },\n immediate: true\n }\n },\n methods: {\n onClickIcon: function onClickIcon() {\n if (this.mode === 'closeable') {\n this.showNoticeBar = false;\n this.$emit('close');\n }\n },\n onAnimationEnd: function onAnimationEnd() {\n var _this2 = this;\n\n this.firstRound = false;\n this.$nextTick(function () {\n _this2.duration = (_this2.offsetWidth + _this2.wrapWidth) / _this2.speed;\n _this2.animationClass = bem('play--infinite');\n });\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var mode = this.mode;\n var iconName = mode === 'closeable' ? 'cross' : mode === 'link' ? 'arrow' : '';\n var barStyle = {\n color: this.color,\n background: this.background\n };\n var contentStyle = {\n paddingLeft: this.firstRound ? 0 : this.wrapWidth + 'px',\n animationDelay: (this.firstRound ? this.delay : 0) + 's',\n animationDuration: this.duration + 's'\n };\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.showNoticeBar\n }],\n \"class\": bem({\n withicon: mode,\n wrapable: this.wrapable\n }),\n \"style\": barStyle,\n \"on\": {\n \"click\": function click() {\n _this3.$emit('click');\n }\n }\n }, [this.leftIcon && h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": this.leftIcon\n }\n }), h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": bem('wrap')\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": [bem('content'), this.animationClass, {\n 'van-ellipsis': !this.scrollable && !this.wrapable\n }],\n \"style\": contentStyle,\n \"on\": {\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [this.slots() || this.text])]), iconName && h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": iconName\n },\n \"on\": {\n \"click\": this.onClickIcon\n }\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/notice-bar/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { RED, WHITE } from '../utils/color';\nimport { emit, inherit } from '../utils/functional';\nimport { PopupMixin } from '../mixins/popup';\nimport Popup from '../popup'; // Types\n\nvar _use = use('notify'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Notify(h, props, slots, ctx) {\n var style = {\n color: props.color,\n background: props.background\n };\n return h(Popup, _mergeJSXProps([{\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"top\",\n \"overlay\": false,\n \"lockScroll\": false\n },\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"input\": function input(value) {\n emit(ctx, 'input', value);\n }\n }\n }, inherit(ctx)]), [props.message]);\n}\n\nNotify.props = _extends({}, PopupMixin.props, {\n className: null,\n message: [String, Number],\n color: {\n type: String,\n \"default\": WHITE\n },\n background: {\n type: String,\n \"default\": RED\n },\n duration: {\n type: Number,\n \"default\": 3000\n }\n});\nexport default sfc(Notify);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/notify/Notify.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanNotify from './Notify';\nimport { RED, WHITE } from '../utils/color';\nimport { isObj, isServer } from '../utils';\nimport { mount } from '../utils/functional';\nvar timer;\nvar instance;\n\nfunction parseOptions(message) {\n return isObj(message) ? message : {\n message: message\n };\n}\n\nfunction Notify(options) {\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n instance = mount(VanNotify);\n }\n\n options = _extends({}, Notify.currentOptions, parseOptions(options));\n\n _extends(instance, options);\n\n clearTimeout(timer);\n\n if (options.duration && options.duration > 0) {\n timer = setTimeout(Notify.clear, options.duration);\n }\n\n return instance;\n}\n\nfunction defaultOptions() {\n return {\n value: true,\n message: '',\n color: WHITE,\n background: RED,\n duration: 3000,\n className: ''\n };\n}\n\nNotify.clear = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nNotify.currentOptions = defaultOptions();\n\nNotify.setDefaultOptions = function (options) {\n _extends(Notify.currentOptions, options);\n};\n\nNotify.resetDefaultOptions = function () {\n Notify.currentOptions = defaultOptions();\n};\n\nNotify.install = function () {\n Vue.use(VanNotify);\n};\n\nVue.prototype.$notify = Notify;\nexport default Notify;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/notify/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { preventDefault } from '../utils/event';\n\nvar _use = use('key'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n type: Array,\n text: [String, Number]\n },\n data: function data() {\n return {\n active: false\n };\n },\n computed: {\n className: function className() {\n var types = this.type.slice(0);\n this.active && types.push('active');\n return bem(types);\n }\n },\n methods: {\n onFocus: function onFocus() {\n this.active = true;\n this.$emit('press', this.text);\n },\n onBlur: function onBlur(event) {\n preventDefault(event, true);\n this.active = false;\n }\n },\n render: function render(h) {\n var onBlur = this.onBlur;\n return h(\"i\", {\n \"class\": ['van-hairline', this.className],\n \"on\": {\n \"touchstart\": this.onFocus,\n \"touchmove\": onBlur,\n \"touchend\": onBlur,\n \"touchcancel\": onBlur\n }\n }, [this.text]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/number-keyboard/Key.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { stopPropagation } from '../utils/event';\nimport Key from './Key';\n\nvar _use = use('number-keyboard'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar CLOSE_KEY_TYPE = ['blue', 'big'];\nvar DELETE_KEY_TYPE = ['delete', 'big', 'gray'];\nexport default sfc({\n props: {\n show: Boolean,\n title: String,\n closeButtonText: String,\n deleteButtonText: String,\n safeAreaInsetBottom: Boolean,\n theme: {\n type: String,\n \"default\": 'default'\n },\n extraKey: {\n type: String,\n \"default\": ''\n },\n zIndex: {\n type: Number,\n \"default\": 100\n },\n transition: {\n type: Boolean,\n \"default\": true\n },\n showDeleteKey: {\n type: Boolean,\n \"default\": true\n },\n hideOnClickOutside: {\n type: Boolean,\n \"default\": true\n }\n },\n mounted: function mounted() {\n this.handler(true);\n },\n destroyed: function destroyed() {\n this.handler(false);\n },\n activated: function activated() {\n this.handler(true);\n },\n deactivated: function deactivated() {\n this.handler(false);\n },\n watch: {\n show: function show() {\n if (!this.transition) {\n this.$emit(this.show ? 'show' : 'hide');\n }\n }\n },\n computed: {\n keys: function keys() {\n var keys = [];\n\n for (var i = 1; i <= 9; i++) {\n keys.push({\n text: i\n });\n }\n\n switch (this.theme) {\n case 'default':\n keys.push({\n text: this.extraKey,\n type: ['gray']\n }, {\n text: 0\n }, {\n text: this.deleteText,\n type: ['gray', 'delete']\n });\n break;\n\n case 'custom':\n keys.push({\n text: 0,\n type: ['middle']\n }, {\n text: this.extraKey\n });\n break;\n }\n\n return keys;\n },\n deleteText: function deleteText() {\n return this.deleteButtonText || t('delete');\n }\n },\n methods: {\n handler: function handler(action) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (action !== this.handlerStatus && this.hideOnClickOutside) {\n this.handlerStatus = action;\n document.body[(action ? 'add' : 'remove') + 'EventListener']('touchstart', this.onBlur);\n }\n },\n onBlur: function onBlur() {\n this.$emit('blur');\n },\n onClose: function onClose() {\n this.$emit('close');\n this.onBlur();\n },\n onAnimationEnd: function onAnimationEnd() {\n this.$emit(this.show ? 'show' : 'hide');\n },\n onPress: function onPress(text) {\n if (text === '') {\n return;\n }\n\n if (text === this.deleteText) {\n this.$emit('delete');\n } else if (text === this.closeButtonText) {\n this.onClose();\n } else {\n this.$emit('input', text);\n }\n }\n },\n render: function render(h) {\n var title = this.title,\n theme = this.theme,\n onPress = this.onPress,\n closeButtonText = this.closeButtonText;\n var titleLeftSlot = this.slots('title-left');\n var showTitleClose = closeButtonText && theme === 'default';\n var showTitle = title || showTitleClose || titleLeftSlot;\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition ? 'van-slide-up' : ''\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": bem([theme, {\n 'safe-area-inset-bottom': this.safeAreaInsetBottom\n }]),\n \"on\": {\n \"touchstart\": stopPropagation,\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [showTitle && h(\"div\", {\n \"class\": [bem('title'), 'van-hairline--top']\n }, [titleLeftSlot && h(\"span\", {\n \"class\": bem('title-left')\n }, [titleLeftSlot]), title && h(\"span\", [title]), showTitleClose && h(\"span\", {\n \"class\": bem('close'),\n \"on\": {\n \"click\": this.onClose\n }\n }, [closeButtonText])]), h(\"div\", {\n \"class\": bem('body')\n }, [this.keys.map(function (key) {\n return h(Key, {\n \"key\": key.text,\n \"attrs\": {\n \"text\": key.text,\n \"type\": key.type\n },\n \"on\": {\n \"press\": onPress\n }\n });\n })]), theme === 'custom' && h(\"div\", {\n \"class\": bem('sidebar')\n }, [h(Key, {\n \"attrs\": {\n \"text\": this.deleteText,\n \"type\": DELETE_KEY_TYPE\n },\n \"on\": {\n \"press\": onPress\n }\n }), h(Key, {\n \"attrs\": {\n \"text\": closeButtonText,\n \"type\": CLOSE_KEY_TYPE\n },\n \"on\": {\n \"press\": onPress\n }\n })])])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/number-keyboard/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('pagination'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction makePage(number, text, active) {\n return {\n number: number,\n text: text,\n active: active\n };\n}\n\nexport default sfc({\n props: {\n value: Number,\n prevText: String,\n nextText: String,\n pageCount: Number,\n totalItems: Number,\n forceEllipses: Boolean,\n mode: {\n type: String,\n \"default\": 'multi'\n },\n itemsPerPage: {\n type: Number,\n \"default\": 10\n },\n showPageSize: {\n type: Number,\n \"default\": 5\n }\n },\n computed: {\n count: function count() {\n var count = this.pageCount || Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(1, count);\n },\n pages: function pages() {\n var pages = [];\n var pageCount = this.count;\n\n if (this.mode !== 'multi') {\n return pages;\n } // Default page limits\n\n\n var startPage = 1;\n var endPage = pageCount;\n var isMaxSized = this.showPageSize !== undefined && this.showPageSize < pageCount; // recompute if showPageSize\n\n if (isMaxSized) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(this.value - Math.floor(this.showPageSize / 2), 1);\n endPage = startPage + this.showPageSize - 1; // Adjust if limit is exceeded\n\n if (endPage > pageCount) {\n endPage = pageCount;\n startPage = endPage - this.showPageSize + 1;\n }\n } // Add page number links\n\n\n for (var number = startPage; number <= endPage; number++) {\n var page = makePage(number, number, number === this.value);\n pages.push(page);\n } // Add links to move between page sets\n\n\n if (isMaxSized && this.showPageSize > 0 && this.forceEllipses) {\n if (startPage > 1) {\n var previousPageSet = makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < pageCount) {\n var nextPageSet = makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n },\n watch: {\n value: {\n handler: function handler(page) {\n this.select(page || this.value);\n },\n immediate: true\n }\n },\n methods: {\n select: function select(page, emitChange) {\n page = Math.min(this.count, Math.max(1, page));\n\n if (this.value !== page) {\n this.$emit('input', page);\n\n if (emitChange) {\n this.$emit('change', page);\n }\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var value = this.value;\n var simple = this.mode !== 'multi';\n\n var onSelect = function onSelect(value) {\n return function () {\n _this.select(value, true);\n };\n };\n\n return h(\"ul\", {\n \"class\": bem({\n simple: simple\n })\n }, [h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === 1\n }), bem('prev'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(value - 1)\n }\n }, [this.prevText || t('prev')]), this.pages.map(function (page) {\n return h(\"li\", {\n \"class\": [bem('item', {\n active: page.active\n }), bem('page'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(page.number)\n }\n }, [page.text]);\n }), simple && h(\"li\", {\n \"class\": bem('page-desc')\n }, [this.slots('pageDesc') || value + \"/\" + this.count]), h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === this.count\n }), bem('next'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(value + 1)\n }\n }, [this.nextText || t('next')])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/pagination/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Cell from '../cell';\nimport CellGroup from '../cell-group';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('panel'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Panel(h, props, slots, ctx) {\n var Content = function Content() {\n return [slots.header ? slots.header() : h(Cell, {\n \"attrs\": {\n \"icon\": props.icon,\n \"label\": props.desc,\n \"title\": props.title,\n \"value\": props.status,\n \"valueClass\": bem('header-value')\n },\n \"class\": bem('header')\n }), h(\"div\", {\n \"class\": bem('content')\n }, [slots[\"default\"] && slots[\"default\"]()]), slots.footer && h(\"div\", {\n \"class\": [bem('footer'), 'van-hairline--top']\n }, [slots.footer()])];\n };\n\n return h(CellGroup, _mergeJSXProps([{\n \"class\": bem(),\n \"scopedSlots\": {\n \"default\": Content\n }\n }, inherit(ctx, true)]));\n}\n\nPanel.props = {\n icon: String,\n desc: String,\n title: String,\n status: String\n};\nexport default sfc(Panel);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/panel/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Types\n\nvar _use = use('password-input'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction PasswordInput(h, props, slots, ctx) {\n var info = props.errorInfo || props.info;\n var Points = [];\n\n for (var i = 0; i < props.length; i++) {\n var _char = props.value[i];\n Points.push(h(\"li\", {\n \"class\": \"van-hairline\"\n }, [props.mask ? h(\"i\", {\n \"style\": {\n visibility: _char ? 'visible' : 'hidden'\n }\n }) : _char]));\n }\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"ul\", _mergeJSXProps([{\n \"class\": [bem('security'), 'van-hairline--surround'],\n \"on\": {\n \"touchstart\": function touchstart(event) {\n event.stopPropagation();\n emit(ctx, 'focus', event);\n }\n }\n }, inherit(ctx, true)]), [Points]), info && h(\"div\", {\n \"class\": bem(props.errorInfo ? 'error-info' : 'info')\n }, [info])]);\n}\n\nPasswordInput.props = {\n info: String,\n errorInfo: String,\n mask: {\n type: Boolean,\n \"default\": true\n },\n value: {\n type: String,\n \"default\": ''\n },\n length: {\n type: Number,\n \"default\": 6\n }\n};\nexport default sfc(PasswordInput);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/password-input/index.js\n// module id = null\n// module chunks = ","import { use, isDef } from '../utils';\nimport { BLUE, WHITE } from '../utils/color';\n\nvar _use = use('progress'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n inactive: Boolean,\n pivotText: String,\n pivotColor: String,\n percentage: {\n type: Number,\n required: true,\n validator: function validator(value) {\n return value >= 0 && value <= 100;\n }\n },\n showPivot: {\n type: Boolean,\n \"default\": true\n },\n color: {\n type: String,\n \"default\": BLUE\n },\n textColor: {\n type: String,\n \"default\": WHITE\n }\n },\n data: function data() {\n return {\n pivotWidth: 0,\n progressWidth: 0\n };\n },\n mounted: function mounted() {\n this.getWidth();\n },\n watch: {\n showPivot: function showPivot() {\n this.getWidth();\n },\n pivotText: function pivotText() {\n this.getWidth();\n }\n },\n methods: {\n getWidth: function getWidth() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.progressWidth = _this.$el.offsetWidth;\n _this.pivotWidth = _this.$refs.pivot ? _this.$refs.pivot.offsetWidth : 0;\n });\n }\n },\n render: function render(h) {\n var pivotText = this.pivotText,\n percentage = this.percentage;\n var text = isDef(pivotText) ? pivotText : percentage + '%';\n var showPivot = this.showPivot && text;\n var background = this.inactive ? '#cacaca' : this.color;\n var pivotStyle = {\n color: this.textColor,\n background: this.pivotColor || background\n };\n var portionStyle = {\n background: background,\n width: (this.progressWidth - this.pivotWidth) * percentage / 100 + 'px'\n };\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"span\", {\n \"class\": bem('portion', {\n 'with-pivot': showPivot\n }),\n \"style\": portionStyle\n }, [showPivot && h(\"span\", {\n \"ref\": \"pivot\",\n \"style\": pivotStyle,\n \"class\": bem('pivot')\n }, [text])])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/progress/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { getScrollTop, getScrollEventTarget } from '../utils/scroll';\nimport Loading from '../loading';\n\nvar _use = use('pull-refresh'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar TEXT_STATUS = ['pulling', 'loosing', 'success'];\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n disabled: Boolean,\n successText: String,\n pullingText: String,\n loosingText: String,\n loadingText: String,\n value: {\n type: Boolean,\n required: true\n },\n successDuration: {\n type: Number,\n \"default\": 500\n },\n animationDuration: {\n type: Number,\n \"default\": 300\n },\n headHeight: {\n type: Number,\n \"default\": 50\n }\n },\n data: function data() {\n return {\n status: 'normal',\n height: 0,\n duration: 0\n };\n },\n computed: {\n untouchable: function untouchable() {\n return this.status === 'loading' || this.status === 'success' || this.disabled;\n }\n },\n watch: {\n value: function value(loading) {\n var _this = this;\n\n this.duration = this.animationDuration;\n\n if (!loading && this.successText) {\n this.status = 'success';\n setTimeout(function () {\n _this.setStatus(0);\n }, this.successDuration);\n } else {\n this.setStatus(loading ? this.headHeight : 0, loading);\n }\n }\n },\n mounted: function mounted() {\n this.scrollEl = getScrollEventTarget(this.$el);\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (!this.untouchable && this.getCeiling()) {\n this.duration = 0;\n this.touchStart(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n if (this.untouchable) {\n return;\n }\n\n this.touchMove(event);\n\n if (!this.ceiling && this.getCeiling()) {\n this.duration = 0;\n this.startY = event.touches[0].clientY;\n this.deltaY = 0;\n }\n\n if (this.ceiling && this.deltaY >= 0) {\n if (this.direction === 'vertical') {\n this.setStatus(this.ease(this.deltaY));\n preventDefault(event);\n }\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.untouchable && this.ceiling && this.deltaY) {\n this.duration = this.animationDuration;\n\n if (this.status === 'loosing') {\n this.setStatus(this.headHeight, true);\n this.$emit('input', true);\n this.$emit('refresh');\n } else {\n this.setStatus(0);\n }\n }\n },\n getCeiling: function getCeiling() {\n this.ceiling = getScrollTop(this.scrollEl) === 0;\n return this.ceiling;\n },\n ease: function ease(height) {\n var headHeight = this.headHeight;\n return height < headHeight ? height : height < headHeight * 2 ? Math.round(headHeight + (height - headHeight) / 2) : Math.round(headHeight * 1.5 + (height - headHeight * 2) / 4);\n },\n setStatus: function setStatus(height, isLoading) {\n this.height = height;\n var status = isLoading ? 'loading' : height === 0 ? 'normal' : height < this.headHeight ? 'pulling' : 'loosing';\n\n if (status !== this.status) {\n this.status = status;\n }\n }\n },\n render: function render(h) {\n var status = this.status;\n var text = this[status + \"Text\"] || t(status);\n var style = {\n transition: this.duration + \"ms\",\n transform: this.height ? \"translate3d(0,\" + this.height + \"px, 0)\" : ''\n };\n var Status = this.slots(status) || [TEXT_STATUS.indexOf(status) !== -1 && h(\"div\", {\n \"class\": bem('text')\n }, [text]), status === 'loading' && h(\"div\", {\n \"class\": bem('loading')\n }, [h(Loading), h(\"span\", [text])])];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('track'),\n \"style\": style,\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [h(\"div\", {\n \"class\": bem('head')\n }, [Status]), this.slots()])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/pull-refresh/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n\n/* eslint-disable prefer-spread */\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/event';\nimport Icon from '../icon'; // Types\n\nvar _use = use('rate'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getRateStatus(value, index, allowHalf) {\n if (value >= index) {\n return 'full';\n }\n\n if (value + 0.5 >= index && allowHalf) {\n return 'half';\n }\n\n return 'void';\n}\n\nfunction Rate(h, props, slots, ctx) {\n var icon = props.icon,\n size = props.size,\n color = props.color,\n voidIcon = props.voidIcon,\n readonly = props.readonly,\n disabled = props.disabled,\n voidColor = props.voidColor,\n disabledColor = props.disabledColor;\n var list = [];\n\n for (var i = 1; i <= props.count; i++) {\n list.push(getRateStatus(props.value, i, props.allowHalf));\n }\n\n function onSelect(index) {\n if (!disabled && !readonly) {\n emit(ctx, 'input', index);\n emit(ctx, 'change', index);\n }\n }\n\n function onTouchMove(event) {\n if (readonly || disabled || !document.elementFromPoint) {\n return;\n }\n\n preventDefault(event);\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var target = document.elementFromPoint(clientX, clientY);\n\n if (target && target.dataset) {\n var score = target.dataset.score;\n /* istanbul ignore else */\n\n if (score) {\n onSelect(+score);\n }\n }\n }\n\n function renderStar(status, index) {\n var isFull = status === 'full';\n var isVoid = status === 'void';\n return h(\"div\", {\n \"key\": index,\n \"class\": bem('item')\n }, [h(Icon, {\n \"attrs\": {\n \"name\": isFull ? icon : voidIcon,\n \"size\": size + \"px\",\n \"data-score\": index + 1,\n \"color\": disabled ? disabledColor : isFull ? color : voidColor\n },\n \"class\": bem('icon'),\n \"on\": {\n \"click\": function click() {\n onSelect(index + 1);\n }\n }\n }), props.allowHalf && h(Icon, {\n \"attrs\": {\n \"name\": isVoid ? voidIcon : icon,\n \"size\": size + \"px\",\n \"data-score\": index + 0.5,\n \"color\": disabled ? disabledColor : isVoid ? voidColor : color\n },\n \"class\": bem('icon', 'half'),\n \"on\": {\n \"click\": function click() {\n onSelect(index + 0.5);\n }\n }\n })]);\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx), {\n \"on\": {\n \"touchmove\": onTouchMove\n }\n }]), [list.map(function (status, index) {\n return renderStar(status, index);\n })]);\n}\n\nRate.props = {\n value: Number,\n readonly: Boolean,\n disabled: Boolean,\n allowHalf: Boolean,\n size: {\n type: Number,\n \"default\": 20\n },\n icon: {\n type: String,\n \"default\": 'star'\n },\n voidIcon: {\n type: String,\n \"default\": 'star-o'\n },\n color: {\n type: String,\n \"default\": '#ffd21e'\n },\n voidColor: {\n type: String,\n \"default\": '#c7c7c7'\n },\n disabledColor: {\n type: String,\n \"default\": '#bdbdbd'\n },\n count: {\n type: Number,\n \"default\": 5\n }\n};\nexport default sfc(Rate);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/rate/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('row'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n type: String,\n align: String,\n justify: String,\n tag: {\n type: String,\n \"default\": 'div'\n },\n gutter: {\n type: [Number, String],\n \"default\": 0\n }\n },\n render: function render(h) {\n var _bem;\n\n var align = this.align,\n justify = this.justify;\n var flex = this.type === 'flex';\n var margin = \"-\" + Number(this.gutter) / 2 + \"px\";\n var style = this.gutter ? {\n marginLeft: margin,\n marginRight: margin\n } : {};\n return h(this.tag, {\n \"style\": style,\n \"class\": bem((_bem = {\n flex: flex\n }, _bem[\"align-\" + align] = flex && align, _bem[\"justify-\" + justify] = flex && justify, _bem))\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/row/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { inherit, emit } from '../utils/functional';\nimport { preventDefault } from '../utils/event';\nimport Field from '../field'; // Types\n\nvar _use = use('search'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction Search(h, props, slots, ctx) {\n var Label = function Label() {\n if (!slots.label && !props.label) {\n return null;\n }\n\n return h(\"div\", {\n \"class\": bem('label')\n }, [slots.label ? slots.label() : props.label]);\n };\n\n var Action = function Action() {\n if (!props.showAction) {\n return null;\n }\n\n var onCancel = function onCancel() {\n emit(ctx, 'input', '');\n emit(ctx, 'cancel');\n };\n\n return h(\"div\", {\n \"class\": bem('action')\n }, [slots.action ? slots.action() : h(\"div\", {\n \"on\": {\n \"click\": onCancel\n }\n }, [t('cancel')])]);\n };\n\n var fieldData = {\n attrs: ctx.data.attrs,\n on: _extends({}, ctx.listeners, {\n input: function input(value) {\n emit(ctx, 'input', value);\n },\n keypress: function keypress(event) {\n // press enter\n if (event.keyCode === 13) {\n preventDefault(event);\n emit(ctx, 'search', props.value);\n }\n\n emit(ctx, 'keypress', event);\n }\n })\n };\n var inheritData = inherit(ctx);\n delete inheritData.attrs;\n return h(\"div\", _mergeJSXProps2([{\n \"class\": bem({\n 'show-action': props.showAction\n }),\n \"style\": {\n background: props.background\n }\n }, inheritData]), [h(\"div\", {\n \"class\": bem('content', props.shape)\n }, [Label(), h(Field, _mergeJSXProps([{\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"search\",\n \"value\": props.value,\n \"border\": false,\n \"leftIcon\": \"search\"\n },\n \"scopedSlots\": {\n 'left-icon': slots['left-icon']\n }\n }, fieldData]))]), Action()]);\n}\n\nSearch.props = {\n value: String,\n label: String,\n showAction: Boolean,\n shape: {\n type: String,\n \"default\": 'square'\n },\n background: {\n type: String,\n \"default\": '#fff'\n }\n};\nexport default sfc(Search);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/search/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport Icon from '../../icon'; // Types\n\nvar _use = use('sku-header'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getSkuImg(sku, selectedSku) {\n var id = selectedSku.s1;\n\n if (id) {\n // skuImg 挂载在 skuTree 中 s1 上\n var treeItem = sku.tree.filter(function (item) {\n return item.k_s === 's1';\n })[0] || {};\n\n if (treeItem.v) {\n var matchedSku = treeItem.v.filter(function (skuValue) {\n return skuValue.id === id;\n })[0];\n\n if (matchedSku) {\n return matchedSku.imgUrl || matchedSku.img_url;\n }\n }\n }\n}\n\nfunction SkuHeader(h, props, slots, ctx) {\n var sku = props.sku,\n goods = props.goods,\n skuEventBus = props.skuEventBus,\n selectedSku = props.selectedSku;\n var goodsImg = getSkuImg(sku, selectedSku) || goods.picture;\n\n var previewImage = function previewImage() {\n skuEventBus.$emit('sku:previewImage', goodsImg);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), 'van-hairline--bottom']\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('img-wrap'),\n \"on\": {\n \"click\": previewImage\n }\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": goodsImg\n }\n })]), h(\"div\", {\n \"class\": bem('goods-info')\n }, [h(\"div\", {\n \"class\": \"van-sku__goods-name van-ellipsis\"\n }, [goods.title]), slots[\"default\"] && slots[\"default\"](), h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": \"van-sku__close-icon\",\n \"on\": {\n \"click\": function click() {\n skuEventBus.$emit('sku:close');\n }\n }\n })])]);\n}\n\nSkuHeader.props = {\n sku: Object,\n goods: Object,\n skuEventBus: Object,\n selectedSku: Object\n};\nexport default sfc(SkuHeader);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuHeader.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Types\n\nvar _use = use('sku-row'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SkuRow(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('title')\n }, [props.skuRow.k, \"\\uFF1A\"]), slots[\"default\"] && slots[\"default\"]()]);\n}\n\nSkuRow.props = {\n skuRow: Object\n};\nexport default sfc(SkuRow);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuRow.js\n// module id = null\n// module chunks = ","export var LIMIT_TYPE = {\n QUOTA_LIMIT: 0,\n STOCK_LIMIT: 1\n};\nexport var UNSELECTED_SKU_VALUE_ID = '';\nexport default {\n LIMIT_TYPE: LIMIT_TYPE,\n UNSELECTED_SKU_VALUE_ID: UNSELECTED_SKU_VALUE_ID\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/constants.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { UNSELECTED_SKU_VALUE_ID } from '../constants';\n/*\n normalize sku tree\n\n [\n {\n count: 2,\n k: \"品种\", // 规格名称 skuKeyName\n k_id: \"1200\", // skuKeyId\n k_s: \"s1\" // skuKeyStr\n v: [ // skuValues\n { // skuValue\n id: \"1201\", // skuValueId\n name: \"萌\" // 具体的规格值 skuValueName\n }, {\n id: \"973\",\n name: \"帅\"\n }\n ]\n },\n ...\n ]\n |\n v\n {\n s1: [{\n id: \"1201\",\n name: \"萌\"\n }, {\n id: \"973\",\n name: \"帅\"\n }],\n ...\n }\n */\n\nexport var normalizeSkuTree = function normalizeSkuTree(skuTree) {\n var normalizedTree = {};\n skuTree.forEach(function (treeItem) {\n normalizedTree[treeItem.k_s] = treeItem.v;\n });\n return normalizedTree;\n}; // 判断是否所有的sku都已经选中\n\nexport var isAllSelected = function isAllSelected(skuTree, selectedSku) {\n // 筛选selectedSku对象中key值不为空的值\n var selected = Object.keys(selectedSku).filter(function (skuKeyStr) {\n return selectedSku[skuKeyStr] !== UNSELECTED_SKU_VALUE_ID;\n });\n return skuTree.length === selected.length;\n}; // 根据已选择的 sku 获取 skuComb\n\nexport var getSkuComb = function getSkuComb(skuList, selectedSku) {\n var skuComb = skuList.filter(function (item) {\n return Object.keys(selectedSku).every(function (skuKeyStr) {\n return String(item[skuKeyStr]) === String(selectedSku[skuKeyStr]);\n });\n });\n return skuComb[0];\n}; // 获取已选择的sku名称\n\nexport var getSelectedSkuValues = function getSelectedSkuValues(skuTree, selectedSku) {\n var normalizedTree = normalizeSkuTree(skuTree);\n return Object.keys(selectedSku).reduce(function (selectedValues, skuKeyStr) {\n var skuValues = normalizedTree[skuKeyStr];\n var skuValueId = selectedSku[skuKeyStr];\n\n if (skuValueId !== UNSELECTED_SKU_VALUE_ID) {\n var skuValue = skuValues.filter(function (value) {\n return value.id === skuValueId;\n })[0];\n skuValue && selectedValues.push(skuValue);\n }\n\n return selectedValues;\n }, []);\n}; // 判断sku是否可选\n\nexport var isSkuChoosable = function isSkuChoosable(skuList, selectedSku, skuToChoose) {\n var _extends2;\n\n var key = skuToChoose.key,\n valueId = skuToChoose.valueId; // 先假设sku已选中,拼入已选中sku对象中\n\n var matchedSku = _extends({}, selectedSku, (_extends2 = {}, _extends2[key] = valueId, _extends2)); // 再判断剩余sku是否全部不可选,若不可选则当前sku不可选中\n\n\n var skusToCheck = Object.keys(matchedSku).filter(function (skuKey) {\n return matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID;\n });\n var filteredSku = skuList.filter(function (sku) {\n return skusToCheck.every(function (skuKey) {\n return String(matchedSku[skuKey]) === String(sku[skuKey]);\n });\n });\n var stock = filteredSku.reduce(function (total, sku) {\n total += sku.stock_num;\n return total;\n }, 0);\n return stock > 0;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/utils/skuHelper.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../../utils';\nimport { isSkuChoosable } from '../utils/skuHelper';\n\nvar _use = use('sku-row-item'),\n sfc = _use[0];\n\nexport default sfc({\n props: {\n skuList: Array,\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedSku: Object\n },\n computed: {\n choosable: function choosable() {\n return isSkuChoosable(this.skuList, this.selectedSku, {\n key: this.skuKeyStr,\n valueId: this.skuValue.id\n });\n }\n },\n methods: {\n onSelect: function onSelect() {\n if (this.choosable) {\n this.skuEventBus.$emit('sku:select', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr\n }));\n }\n }\n },\n render: function render(h) {\n var choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];\n return h(\"span\", {\n \"class\": ['van-sku-row__item', {\n 'van-sku-row__item--active': choosed,\n 'van-sku-row__item--disabled': !this.choosable\n }],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [this.skuValue.name]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuRowItem.js\n// module id = null\n// module chunks = ","import { use, isDef } from '../utils';\n\nvar _use = use('stepper'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: null,\n integer: Boolean,\n disabled: Boolean,\n inputWidth: String,\n asyncChange: Boolean,\n disableInput: Boolean,\n min: {\n type: [String, Number],\n \"default\": 1\n },\n max: {\n type: [String, Number],\n \"default\": Infinity\n },\n step: {\n type: [String, Number],\n \"default\": 1\n },\n defaultValue: {\n type: [String, Number],\n \"default\": 1\n }\n },\n data: function data() {\n var value = this.range(isDef(this.value) ? this.value : this.defaultValue);\n\n if (value !== +this.value) {\n this.$emit('input', value);\n }\n\n return {\n currentValue: value\n };\n },\n computed: {\n minusDisabled: function minusDisabled() {\n return this.disabled || this.currentValue <= this.min;\n },\n plusDisabled: function plusDisabled() {\n return this.disabled || this.currentValue >= this.max;\n }\n },\n watch: {\n value: function value(val) {\n if (val !== this.currentValue) {\n this.currentValue = this.format(val);\n }\n },\n currentValue: function currentValue(val) {\n this.$emit('input', val);\n this.$emit('change', val);\n }\n },\n methods: {\n // filter illegal characters\n format: function format(value) {\n value = String(value).replace(/[^0-9.-]/g, '');\n return value === '' ? 0 : this.integer ? Math.floor(value) : +value;\n },\n // limit value range\n range: function range(value) {\n return Math.max(Math.min(this.max, this.format(value)), this.min);\n },\n onInput: function onInput(event) {\n var value = event.target.value;\n var formatted = this.format(value);\n\n if (!this.asyncChange) {\n if (+value !== formatted) {\n event.target.value = formatted;\n }\n\n this.currentValue = formatted;\n } else {\n event.target.value = this.currentValue;\n this.$emit('input', formatted);\n this.$emit('change', formatted);\n }\n },\n onChange: function onChange(type) {\n if (this[type + \"Disabled\"]) {\n this.$emit('overlimit', type);\n return;\n }\n\n var diff = type === 'minus' ? -this.step : +this.step;\n var value = Math.round((this.currentValue + diff) * 100) / 100;\n\n if (!this.asyncChange) {\n this.currentValue = this.range(value);\n } else {\n this.$emit('input', value);\n this.$emit('change', value);\n }\n\n this.$emit(type);\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.currentValue = this.range(this.currentValue);\n this.$emit('blur', event); // fix edge case when input is empty and min is 0\n\n if (this.currentValue === 0) {\n event.target.value = this.currentValue;\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var onChange = function onChange(type) {\n return function () {\n _this.onChange(type);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"button\", {\n \"class\": bem('minus', {\n disabled: this.minusDisabled\n }),\n \"on\": {\n \"click\": onChange('minus')\n }\n }), h(\"input\", {\n \"attrs\": {\n \"type\": \"number\",\n \"disabled\": this.disabled || this.disableInput\n },\n \"class\": bem('input'),\n \"domProps\": {\n \"value\": this.currentValue\n },\n \"style\": {\n width: this.inputWidth\n },\n \"on\": {\n \"input\": this.onInput,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur\n }\n }), h(\"button\", {\n \"class\": bem('plus', {\n disabled: this.plusDisabled\n }),\n \"on\": {\n \"click\": onChange('plus')\n }\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/stepper/index.js\n// module id = null\n// module chunks = ","import { use } from '../../utils';\nimport Stepper from '../../stepper';\nimport { LIMIT_TYPE } from '../constants';\n\nvar _use = use('sku-stepper'),\n sfc = _use[0];\n\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT,\n STOCK_LIMIT = LIMIT_TYPE.STOCK_LIMIT;\nexport default sfc({\n props: {\n quota: Number,\n quotaUsed: Number,\n hideStock: Boolean,\n skuEventBus: Object,\n skuStockNum: Number,\n selectedSku: Object,\n selectedNum: Number,\n stepperTitle: String,\n hideQuotaText: Boolean,\n selectedSkuComb: Object,\n disableStepperInput: Boolean,\n customStepperConfig: Object\n },\n data: function data() {\n return {\n currentNum: this.selectedNum,\n // 购买限制类型: 限购/库存\n limitType: STOCK_LIMIT\n };\n },\n watch: {\n currentNum: function currentNum(num) {\n this.skuEventBus.$emit('sku:numChange', num);\n },\n stepperLimit: function stepperLimit(limit) {\n if (limit < this.currentNum) {\n this.currentNum = limit;\n }\n }\n },\n computed: {\n stock: function stock() {\n var stockNum = this.customStepperConfig.stockNum;\n\n if (stockNum !== undefined) {\n return stockNum;\n }\n\n if (this.selectedSkuComb) {\n return this.selectedSkuComb.stock_num;\n }\n\n return this.skuStockNum;\n },\n stockText: function stockText() {\n var stockFormatter = this.customStepperConfig.stockFormatter;\n if (stockFormatter) return stockFormatter(this.stock);\n return \"\\u5269\\u4F59\" + this.stock + \"\\u4EF6\";\n },\n quotaText: function quotaText() {\n var _this$customStepperCo = this.customStepperConfig,\n quotaText = _this$customStepperCo.quotaText,\n hideQuotaText = _this$customStepperCo.hideQuotaText;\n if (hideQuotaText) return '';\n var text = '';\n\n if (quotaText) {\n text = quotaText;\n } else if (this.quota > 0) {\n text = \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + this.quota + \"\\u4EF6\";\n }\n\n return text;\n },\n stepperLimit: function stepperLimit() {\n var quotaLimit = this.quota - this.quotaUsed;\n var limit; // 无限购时直接取库存,有限购时取限购数和库存数中小的那个\n\n if (this.quota > 0 && quotaLimit <= this.stock) {\n // 修正负的limit\n limit = quotaLimit < 0 ? 0 : quotaLimit;\n this.limitType = QUOTA_LIMIT;\n } else {\n limit = this.stock;\n this.limitType = STOCK_LIMIT;\n }\n\n return limit;\n }\n },\n methods: {\n setCurrentNum: function setCurrentNum(num) {\n this.currentNum = num;\n },\n onOverLimit: function onOverLimit(action) {\n this.skuEventBus.$emit('sku:overLimit', {\n action: action,\n limitType: this.limitType,\n quota: this.quota,\n quotaUsed: this.quotaUsed\n });\n },\n onChange: function onChange(currentValue) {\n var handleStepperChange = this.customStepperConfig.handleStepperChange;\n handleStepperChange && handleStepperChange(currentValue);\n this.$emit('change', currentValue);\n }\n },\n render: function render(h) {\n var _this = this;\n\n return h(\"div\", {\n \"class\": \"van-sku-stepper-stock\"\n }, [h(\"div\", {\n \"class\": \"van-sku-stepper-container\"\n }, [h(\"div\", {\n \"class\": \"van-sku__stepper-title\"\n }, [this.stepperTitle || '购买数量', \"\\uFF1A\"]), h(Stepper, {\n \"class\": \"van-sku__stepper\",\n \"attrs\": {\n \"max\": this.stepperLimit,\n \"disableInput\": this.disableStepperInput\n },\n \"on\": {\n \"overlimit\": this.onOverLimit,\n \"change\": this.onChange\n },\n \"model\": {\n value: _this.currentNum,\n callback: function callback($$v) {\n _this.currentNum = $$v;\n }\n }\n })]), !this.hideStock && h(\"div\", {\n \"class\": \"van-sku__stock\"\n }, [this.stockText]), !this.hideQuotaText && this.quotaText && h(\"div\", {\n \"class\": \"van-sku__quota\"\n }, [this.quotaText])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuStepper.js\n// module id = null\n// module chunks = ","/* eslint-disable */\nexport function isEmail(value) {\n var reg = /^((([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;\n return reg.test(value);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/validate/email.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\n\nvar _use = use('uploader'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n beforeRead: Function,\n afterRead: Function,\n accept: {\n type: String,\n \"default\": 'image/*'\n },\n resultType: {\n type: String,\n \"default\": 'dataUrl'\n },\n maxSize: {\n type: Number,\n \"default\": Number.MAX_VALUE\n }\n },\n computed: {\n detail: function detail() {\n return {\n name: this.$attrs.name || ''\n };\n }\n },\n methods: {\n onChange: function onChange(event) {\n var _this = this;\n\n var files = event.target.files;\n\n if (this.disabled || !files.length) {\n return;\n }\n\n files = files.length === 1 ? files[0] : [].slice.call(files, 0);\n\n if (!files || this.beforeRead && !this.beforeRead(files, this.detail)) {\n this.resetInput();\n return;\n }\n\n if (Array.isArray(files)) {\n Promise.all(files.map(this.readFile)).then(function (contents) {\n var oversize = false;\n var payload = files.map(function (file, index) {\n if (file.size > _this.maxSize) {\n oversize = true;\n }\n\n return {\n file: files[index],\n content: contents[index]\n };\n });\n\n _this.onAfterRead(payload, oversize);\n });\n } else {\n this.readFile(files).then(function (content) {\n _this.onAfterRead({\n file: files,\n content: content\n }, files.size > _this.maxSize);\n });\n }\n },\n readFile: function readFile(file) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function (event) {\n resolve(event.target.result);\n };\n\n if (_this2.resultType === 'dataUrl') {\n reader.readAsDataURL(file);\n } else if (_this2.resultType === 'text') {\n reader.readAsText(file);\n }\n });\n },\n onAfterRead: function onAfterRead(files, oversize) {\n if (oversize) {\n this.$emit('oversize', files);\n } else {\n this.afterRead && this.afterRead(files, this.detail);\n }\n\n this.resetInput();\n },\n resetInput: function resetInput() {\n if (this.$refs.input) {\n this.$refs.input.value = '';\n }\n }\n },\n render: function render(h) {\n var accept = this.accept,\n disabled = this.disabled;\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots(), h(\"input\", {\n \"attrs\": _extends({}, this.$attrs, {\n \"type\": \"file\",\n \"accept\": accept,\n \"disabled\": disabled\n }),\n \"ref\": \"input\",\n \"class\": bem('input'),\n \"on\": {\n \"change\": this.onChange\n }\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/uploader/index.js\n// module id = null\n// module chunks = ","import { use } from '../../utils';\nimport Icon from '../../icon';\nimport Loading from '../../loading';\nimport Uploader from '../../uploader';\n\nvar _use = use('sku-img-uploader'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: String,\n uploadImg: Function,\n maxSize: {\n type: Number,\n \"default\": 6\n }\n },\n data: function data() {\n return {\n // 正在上传的图片 base64\n paddingImg: ''\n };\n },\n computed: {\n imgList: function imgList() {\n return this.value && !this.paddingImg ? [this.value] : [];\n }\n },\n methods: {\n afterReadFile: function afterReadFile(file) {\n var _this = this;\n\n // 上传文件\n this.paddingImg = file.content;\n this.uploadImg(file.file, file.content).then(function (img) {\n _this.$emit('input', img);\n\n _this.$nextTick(function () {\n _this.paddingImg = '';\n });\n })[\"catch\"](function () {\n _this.paddingImg = '';\n });\n },\n onOversize: function onOversize() {\n this.$toast(\"\\u6700\\u5927\\u53EF\\u4E0A\\u4F20\\u56FE\\u7247\\u4E3A\" + this.maxSize + \"MB\\uFF0C\\u8BF7\\u5C1D\\u8BD5\\u538B\\u7F29\\u56FE\\u7247\\u5C3A\\u5BF8\");\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var imgList = this.imgList,\n paddingImg = this.paddingImg;\n var ImageList = (paddingImg || imgList.length > 0) && h(\"div\", {\n \"class\": \"van-clearfix\"\n }, [imgList.map(function (img) {\n return h(\"div\", {\n \"class\": bem('img')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": img\n }\n }), h(Icon, {\n \"attrs\": {\n \"name\": \"clear\"\n },\n \"class\": bem('delete'),\n \"on\": {\n \"click\": function click() {\n _this2.$emit('input', '');\n }\n }\n })]);\n }), paddingImg && h(\"div\", {\n \"class\": bem('img')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": paddingImg\n }\n }), h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n },\n \"class\": bem('uploading')\n })])]);\n return h(\"div\", {\n \"class\": bem()\n }, [h(Uploader, {\n \"attrs\": {\n \"disabled\": !!paddingImg,\n \"afterRead\": this.afterReadFile,\n \"maxSize\": this.maxSize * 1024 * 1024\n },\n \"on\": {\n \"oversize\": this.onOversize\n }\n }, [h(\"div\", {\n \"class\": bem('header')\n }, [paddingImg ? h(\"div\", [\"\\u6B63\\u5728\\u4E0A\\u4F20...\"]) : [h(Icon, {\n \"attrs\": {\n \"name\": \"photograph\"\n }\n }), h(\"span\", {\n \"class\": \"label\"\n }, [this.value ? '重拍' : '拍照', \" \\u6216 \"]), h(Icon, {\n \"attrs\": {\n \"name\": \"photo\"\n }\n }), h(\"span\", {\n \"class\": \"label\"\n }, [this.value ? '重新选择照片' : '选择照片'])]])]), ImageList]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuImgUploader.js\n// module id = null\n// module chunks = ","import { use } from '../../utils';\nimport Cell from '../../cell';\nimport CellGroup from '../../cell-group';\nimport Field from '../../field';\nimport { isEmail } from '../../utils/validate/email';\nimport { isNumber } from '../../utils/validate/number';\nimport SkuImgUploader from './SkuImgUploader';\n\nvar _use = use('sku-messages'),\n sfc = _use[0],\n bem = _use[1];\n\nvar PLACEHOLDER = {\n id_no: '输入身份证号码',\n text: '输入文本',\n tel: '输入数字',\n email: '输入邮箱',\n date: '点击选择日期',\n time: '点击选择时间',\n textarea: '点击填写段落文本',\n mobile: '输入手机号码'\n};\nexport default sfc({\n props: {\n messages: Array,\n messageConfig: Object,\n goodsId: [Number, String]\n },\n data: function data() {\n return {\n messageValues: this.resetMessageValues(this.messages)\n };\n },\n watch: {\n messages: function messages(val) {\n this.messageValues = this.resetMessageValues(val);\n }\n },\n methods: {\n resetMessageValues: function resetMessageValues(messages) {\n return (messages || []).map(function () {\n return {\n value: ''\n };\n });\n },\n getType: function getType(message) {\n if (+message.multiple === 1) {\n return 'textarea';\n }\n\n if (message.type === 'id_no') {\n return 'text';\n }\n\n return message.datetime > 0 ? 'datetime-local' : message.type;\n },\n getMessages: function getMessages() {\n var _this = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var value = item.value;\n\n if (_this.messages[index].datetime > 0) {\n value = value.replace(/T/g, ' ');\n }\n\n messages[\"message_\" + index] = value;\n });\n return messages;\n },\n getCartMessages: function getCartMessages() {\n var _this2 = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var value = item.value;\n var message = _this2.messages[index];\n\n if (message.datetime > 0) {\n value = value.replace(/T/g, ' ');\n }\n\n messages[message.name] = value;\n });\n return messages;\n },\n getPlaceholder: function getPlaceholder(message) {\n var type = +message.multiple === 1 ? 'textarea' : message.type;\n var map = this.messageConfig.placeholderMap || {};\n return map[type] || PLACEHOLDER[type];\n },\n validateMessages: function validateMessages() {\n var values = this.messageValues;\n\n for (var i = 0; i < values.length; i++) {\n var value = values[i].value;\n var message = this.messages[i];\n\n if (value === '') {\n // 必填字段的校验\n if (String(message.required) === '1') {\n // eslint-disable-line\n var textType = message.type === 'image' ? '请上传' : '请填写';\n return textType + message.name;\n }\n } else {\n if (message.type === 'tel' && !isNumber(value)) {\n return '请填写正确的数字格式留言';\n }\n\n if (message.type === 'mobile' && !/^\\d{6,20}$/.test(value)) {\n return '手机号长度为6-20位数字';\n }\n\n if (message.type === 'email' && !isEmail(value)) {\n return '请填写正确的邮箱';\n }\n\n if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {\n return '请填写正确的身份证号码';\n }\n }\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n return h(CellGroup, {\n \"class\": bem()\n }, [this.messages.map(function (message, index) {\n return message.type === 'image' ? h(Cell, {\n \"class\": bem('image-cell'),\n \"attrs\": {\n \"label\": \"仅限一张\",\n \"title\": message.name,\n \"required\": String(message.required) === '1'\n },\n \"key\": _this3.goodsId + \"-\" + index\n }, [h(SkuImgUploader, {\n \"attrs\": {\n \"uploadImg\": _this3.messageConfig.uploadImg,\n \"maxSize\": _this3.messageConfig.uploadMaxSize\n },\n \"model\": {\n value: _this3.messageValues[index].value,\n callback: function callback($$v) {\n _this3.messageValues[index].value = $$v;\n }\n }\n })]) : h(Field, {\n \"attrs\": {\n \"maxlength\": \"200\",\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": _this3.getPlaceholder(message),\n \"type\": _this3.getType(message)\n },\n \"key\": _this3.goodsId + \"-\" + index,\n \"model\": {\n value: _this3.messageValues[index].value,\n callback: function callback($$v) {\n _this3.messageValues[index].value = $$v;\n }\n }\n });\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuMessages.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport Button from '../../button'; // Types\n\nvar _use = use('sku-actions'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SkuActions(h, props, slots, ctx) {\n var emit = function emit(name) {\n return function () {\n props.skuEventBus.$emit(name);\n };\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [props.showAddCartBtn && h(Button, {\n \"attrs\": {\n \"bottomAction\": true,\n \"text\": \"加入购物车\"\n },\n \"on\": {\n \"click\": emit('sku:addCart')\n }\n }), h(Button, {\n \"attrs\": {\n \"type\": \"primary\",\n \"bottomAction\": true,\n \"text\": props.buyText || '立即购买'\n },\n \"on\": {\n \"click\": emit('sku:buy')\n }\n })]);\n}\n\nSkuActions.props = {\n buyText: String,\n skuEventBus: Object,\n showAddCartBtn: Boolean\n};\nexport default sfc(SkuActions);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/components/SkuActions.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/* eslint-disable camelcase */\nimport Vue from 'vue';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport ImagePreview from '../image-preview';\nimport SkuHeader from './components/SkuHeader';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuStepper from './components/SkuStepper';\nimport SkuMessages from './components/SkuMessages';\nimport SkuActions from './components/SkuActions';\nimport { use, isDef } from '../utils';\nimport { isAllSelected, isSkuChoosable, getSkuComb, getSelectedSkuValues } from './utils/skuHelper';\nimport { LIMIT_TYPE, UNSELECTED_SKU_VALUE_ID } from './constants';\n\nvar _use = use('sku'),\n sfc = _use[0];\n\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT;\nexport default sfc({\n props: {\n sku: Object,\n goods: Object,\n quota: Number,\n value: Boolean,\n buyText: String,\n quotaUsed: Number,\n goodsId: [Number, String],\n hideStock: Boolean,\n hideQuotaText: Boolean,\n stepperTitle: String,\n getContainer: Function,\n customSkuValidator: Function,\n closeOnClickOverlay: Boolean,\n disableStepperInput: Boolean,\n resetStepperOnHide: Boolean,\n resetSelectedSkuOnHide: Boolean,\n initialSku: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n showSoldoutSku: {\n type: Boolean,\n \"default\": true\n },\n showAddCartBtn: {\n type: Boolean,\n \"default\": true\n },\n bodyOffsetTop: {\n type: Number,\n \"default\": 200\n },\n messageConfig: {\n type: Object,\n \"default\": function _default() {\n return {\n placeholderMap: {},\n uploadImg: function uploadImg() {\n return Promise.resolve();\n },\n uploadMaxSize: 5\n };\n }\n },\n customStepperConfig: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n selectedSku: {},\n selectedNum: 1,\n show: this.value\n };\n },\n watch: {\n show: function show(val) {\n this.$emit('input', val);\n\n if (!val) {\n var selectedSkuValues = getSelectedSkuValues(this.sku.tree, this.selectedSku);\n this.$emit('sku-close', {\n selectedSkuValues: selectedSkuValues,\n selectedNum: this.selectedNum,\n selectedSkuComb: this.selectedSkuComb\n });\n\n if (this.resetStepperOnHide) {\n this.resetStepper();\n }\n\n if (this.resetSelectedSkuOnHide) {\n this.resetSelectedSku(this.skuTree);\n }\n }\n },\n value: function value(val) {\n this.show = val;\n },\n skuTree: function skuTree(val) {\n this.resetSelectedSku(val);\n }\n },\n computed: {\n skuGroupClass: function skuGroupClass() {\n return ['van-sku-group-container', 'van-hairline--bottom', {\n 'van-sku-group-container--hide-soldout': !this.showSoldoutSku\n }];\n },\n bodyStyle: function bodyStyle() {\n if (this.$isServer) {\n return;\n } // header高度82px, sku actions高度50px,如果改动了样式自己传下bodyOffsetTop调整下\n\n\n var maxHeight = window.innerHeight - this.bodyOffsetTop;\n return {\n maxHeight: maxHeight + 'px'\n };\n },\n isSkuCombSelected: function isSkuCombSelected() {\n return isAllSelected(this.sku.tree, this.selectedSku);\n },\n isSkuEmpty: function isSkuEmpty() {\n return Object.keys(this.sku).length === 0;\n },\n hasSku: function hasSku() {\n return !this.sku.none_sku;\n },\n selectedSkuComb: function selectedSkuComb() {\n if (!this.hasSku) {\n return {\n id: this.sku.collection_id,\n price: Math.round(this.sku.price * 100),\n stock_num: this.sku.stock_num\n };\n }\n\n if (this.isSkuCombSelected) {\n return getSkuComb(this.sku.list, this.selectedSku);\n }\n\n return null;\n },\n price: function price() {\n if (this.selectedSkuComb) {\n return (this.selectedSkuComb.price / 100).toFixed(2);\n } // sku.price是一个格式化好的价格区间\n\n\n return this.sku.price;\n },\n skuTree: function skuTree() {\n return this.sku.tree || [];\n },\n imageList: function imageList() {\n var imageList = [this.goods.picture];\n\n if (this.skuTree.length > 0) {\n var treeItem = this.skuTree.filter(function (item) {\n return item.k_s === 's1';\n })[0] || {};\n\n if (!treeItem.v) {\n return;\n }\n\n treeItem.v.forEach(function (vItem) {\n var img = vItem.imgUrl || vItem.img_url;\n\n if (img) {\n imageList.push(img);\n }\n });\n }\n\n return imageList;\n }\n },\n created: function created() {\n var skuEventBus = new Vue();\n this.skuEventBus = skuEventBus;\n skuEventBus.$on('sku:close', this.onClose);\n skuEventBus.$on('sku:select', this.onSelect);\n skuEventBus.$on('sku:numChange', this.onNumChange);\n skuEventBus.$on('sku:previewImage', this.onPreviewImage);\n skuEventBus.$on('sku:overLimit', this.onOverLimit);\n skuEventBus.$on('sku:addCart', this.onAddCart);\n skuEventBus.$on('sku:buy', this.onBuy);\n this.resetStepper();\n this.resetSelectedSku(this.skuTree); // 组件初始化后的钩子,抛出skuEventBus\n\n this.$emit('after-sku-create', skuEventBus);\n },\n methods: {\n resetStepper: function resetStepper() {\n var skuStepper = this.$refs.skuStepper;\n var selectedNum = this.initialSku.selectedNum;\n var num = isDef(selectedNum) ? selectedNum : 1;\n\n if (skuStepper) {\n skuStepper.setCurrentNum(num);\n } else {\n this.selectedNum = num;\n }\n },\n resetSelectedSku: function resetSelectedSku(skuTree) {\n var _this = this;\n\n this.selectedSku = {}; // 重置 selectedSku\n\n skuTree.forEach(function (item) {\n _this.selectedSku[item.k_s] = _this.initialSku[item.k_s] || UNSELECTED_SKU_VALUE_ID;\n }); // 只有一个 sku 规格值时默认选中\n\n skuTree.forEach(function (item) {\n var key = item.k_s;\n var valueId = item.v[0].id;\n\n if (item.v.length === 1 && isSkuChoosable(_this.sku.list, _this.selectedSku, {\n key: key,\n valueId: valueId\n })) {\n _this.selectedSku[key] = valueId;\n }\n });\n },\n getSkuMessages: function getSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getMessages() : {};\n },\n getSkuCartMessages: function getSkuCartMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getCartMessages() : {};\n },\n validateSkuMessages: function validateSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.validateMessages() : '';\n },\n validateSku: function validateSku() {\n if (this.selectedNum === 0) {\n return '商品已经无法购买啦';\n }\n\n if (this.isSkuCombSelected) {\n return this.validateSkuMessages();\n } // 自定义sku校验\n\n\n if (this.customSkuValidator) {\n var err = this.customSkuValidator(this);\n if (err) return err;\n }\n\n return '请先选择商品规格';\n },\n onClose: function onClose() {\n this.show = false;\n },\n onSelect: function onSelect(skuValue) {\n var _extends2, _extends3;\n\n // 点击已选中的sku时则取消选中\n this.selectedSku = this.selectedSku[skuValue.skuKeyStr] === skuValue.id ? _extends({}, this.selectedSku, (_extends2 = {}, _extends2[skuValue.skuKeyStr] = UNSELECTED_SKU_VALUE_ID, _extends2)) : _extends({}, this.selectedSku, (_extends3 = {}, _extends3[skuValue.skuKeyStr] = skuValue.id, _extends3));\n this.$emit('sku-selected', {\n skuValue: skuValue,\n selectedSku: this.selectedSku,\n selectedSkuComb: this.selectedSkuComb\n });\n },\n onNumChange: function onNumChange(num) {\n this.selectedNum = num;\n },\n onPreviewImage: function onPreviewImage(indexImage) {\n var _this2 = this;\n\n var index = this.imageList.findIndex(function (image) {\n return image === indexImage;\n });\n var cbParams = {\n index: index,\n imageList: this.imageList,\n indexImage: indexImage\n };\n this.$emit('preview-on', cbParams);\n ImagePreview({\n images: this.imageList,\n startPosition: index,\n onClose: function onClose() {\n _this2.$emit('preview-close', cbParams);\n }\n });\n },\n onOverLimit: function onOverLimit(data) {\n var action = data.action,\n limitType = data.limitType,\n quota = data.quota,\n quotaUsed = data.quotaUsed;\n var handleOverLimit = this.customStepperConfig.handleOverLimit;\n\n if (handleOverLimit) {\n handleOverLimit(data);\n return;\n }\n\n if (action === 'minus') {\n Toast('至少选择一件');\n } else if (action === 'plus') {\n if (limitType === QUOTA_LIMIT) {\n var msg = \"\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n if (quotaUsed > 0) msg += \"\\uFF0C\" + (\"\\u4F60\\u5DF2\\u8D2D\\u4E70\" + quotaUsed + \"\\u4EF6\");\n Toast(msg);\n } else {\n Toast('库存不足');\n }\n }\n },\n onAddCart: function onAddCart() {\n this.onBuyOrAddCart('add-cart');\n },\n onBuy: function onBuy() {\n this.onBuyOrAddCart('buy-clicked');\n },\n onBuyOrAddCart: function onBuyOrAddCart(type) {\n var error = this.validateSku();\n\n if (error) {\n Toast(error);\n } else {\n this.$emit(type, this.getSkuData());\n }\n },\n getSkuData: function getSkuData() {\n return {\n goodsId: this.goodsId,\n selectedNum: this.selectedNum,\n selectedSkuComb: this.selectedSkuComb,\n messages: this.getSkuMessages(),\n cartMessages: this.getSkuCartMessages()\n };\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n if (this.isSkuEmpty) {\n return;\n }\n\n var sku = this.sku,\n goods = this.goods,\n price = this.price,\n skuEventBus = this.skuEventBus,\n selectedSku = this.selectedSku,\n selectedNum = this.selectedNum,\n stepperTitle = this.stepperTitle,\n hideQuotaText = this.hideQuotaText,\n selectedSkuComb = this.selectedSkuComb;\n var slotsProps = {\n price: price,\n selectedNum: selectedNum,\n skuEventBus: skuEventBus,\n selectedSku: selectedSku,\n selectedSkuComb: selectedSkuComb\n };\n\n var slots = function slots(name) {\n return _this3.slots(name, slotsProps);\n };\n\n var Header = slots('sku-header') || h(SkuHeader, {\n \"attrs\": {\n \"sku\": sku,\n \"goods\": goods,\n \"skuEventBus\": skuEventBus,\n \"selectedSku\": selectedSku\n }\n }, [slots('sku-header-price') || h(\"div\", {\n \"class\": \"van-sku__goods-price\"\n }, [h(\"span\", {\n \"class\": \"van-sku__price-symbol\"\n }, [\"\\uFFE5\"]), h(\"span\", {\n \"class\": \"van-sku__price-num\"\n }, [price])])]);\n var Group = slots('sku-group') || this.hasSku && h(\"div\", {\n \"class\": this.skuGroupClass\n }, [this.skuTree.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n }\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowItem, {\n \"attrs\": {\n \"skuList\": sku.list,\n \"skuValue\": skuValue,\n \"selectedSku\": selectedSku,\n \"skuEventBus\": skuEventBus,\n \"skuKeyStr\": skuTreeItem.k_s\n }\n });\n })]);\n })]);\n var Stepper = slots('sku-stepper') || h(SkuStepper, {\n \"ref\": \"skuStepper\",\n \"attrs\": {\n \"quota\": this.quota,\n \"hideStock\": this.hideStock,\n \"quotaUsed\": this.quotaUsed,\n \"skuEventBus\": skuEventBus,\n \"selectedNum\": selectedNum,\n \"selectedSku\": selectedSku,\n \"stepperTitle\": stepperTitle,\n \"skuStockNum\": sku.stock_num,\n \"hideQuotaText\": hideQuotaText,\n \"selectedSkuComb\": selectedSkuComb,\n \"disableStepperInput\": this.disableStepperInput,\n \"customStepperConfig\": this.customStepperConfig\n },\n \"on\": {\n \"change\": function change(event) {\n _this3.$emit('stepper-change', event);\n }\n }\n });\n var Messages = slots('sku-messages') || h(SkuMessages, {\n \"ref\": \"skuMessages\",\n \"attrs\": {\n \"goodsId\": this.goodsId,\n \"messageConfig\": this.messageConfig,\n \"messages\": sku.messages\n }\n });\n var Actions = slots('sku-actions') || h(SkuActions, {\n \"attrs\": {\n \"buyText\": this.buyText,\n \"skuEventBus\": skuEventBus,\n \"showAddCartBtn\": this.showAddCartBtn\n }\n });\n return h(Popup, {\n \"attrs\": {\n \"position\": \"bottom\",\n \"getContainer\": this.getContainer,\n \"closeOnClickOverlay\": this.closeOnClickOverlay\n },\n \"class\": \"van-sku-container\",\n \"model\": {\n value: _this3.show,\n callback: function callback($$v) {\n _this3.show = $$v;\n }\n }\n }, [Header, h(\"div\", {\n \"class\": \"van-sku-body\",\n \"style\": this.bodyStyle\n }, [slots('sku-body-top'), Group, slots('extra-sku-group'), Stepper, Messages]), Actions]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/Sku.js\n// module id = null\n// module chunks = ","import Sku from './Sku';\nimport SkuActions from './components/SkuActions';\nimport SkuHeader from './components/SkuHeader';\nimport SkuMessages from './components/SkuMessages';\nimport SkuStepper from './components/SkuStepper';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport skuHelper from './utils/skuHelper';\nimport constants from './constants';\nSku.SkuActions = SkuActions;\nSku.SkuHeader = SkuHeader;\nSku.SkuMessages = SkuMessages;\nSku.SkuStepper = SkuStepper;\nSku.SkuRow = SkuRow;\nSku.SkuRowItem = SkuRowItem;\nSku.skuHelper = skuHelper;\nSku.skuConstants = constants;\nexport default Sku;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/sku/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\nimport { preventDefault } from '../utils/event';\n\nvar _use = use('slider'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n min: Number,\n value: Number,\n disabled: Boolean,\n vertical: Boolean,\n activeColor: String,\n inactiveColor: String,\n max: {\n type: Number,\n \"default\": 100\n },\n step: {\n type: Number,\n \"default\": 1\n },\n barHeight: {\n type: String,\n \"default\": '2px'\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) return;\n this.touchStart(event);\n this.startValue = this.format(this.value);\n },\n onTouchMove: function onTouchMove(event) {\n preventDefault(event, true);\n if (this.disabled) return;\n this.touchMove(event);\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? this.deltaY : this.deltaX;\n var total = this.vertical ? rect.height : rect.width;\n var diff = delta / total * 100;\n this.newValue = this.startValue + diff;\n this.updateValue(this.newValue);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.disabled) return;\n this.updateValue(this.newValue, true);\n },\n onClick: function onClick(event) {\n event.stopPropagation();\n if (this.disabled) return;\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? event.clientY - rect.top : event.clientX - rect.left;\n var total = this.vertical ? rect.height : rect.width;\n var value = delta / total * 100;\n this.updateValue(value, true);\n },\n updateValue: function updateValue(value, end) {\n value = this.format(value);\n this.$emit('input', value);\n\n if (end) {\n this.$emit('change', value);\n }\n },\n format: function format(value) {\n return Math.round(Math.max(this.min, Math.min(value, this.max)) / this.step) * this.step;\n }\n },\n render: function render(h) {\n var _barStyle;\n\n var vertical = this.vertical;\n var style = {\n background: this.inactiveColor\n };\n var mainAxis = vertical ? 'height' : 'width';\n var crossAxis = vertical ? 'width' : 'height';\n var barStyle = (_barStyle = {}, _barStyle[mainAxis] = this.format(this.value) + \"%\", _barStyle[crossAxis] = this.barHeight, _barStyle.background = this.activeColor, _barStyle);\n return h(\"div\", {\n \"style\": style,\n \"class\": bem({\n disabled: this.disabled,\n vertical: vertical\n }),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('bar'),\n \"style\": barStyle\n }, [h(\"div\", {\n \"class\": bem('button-wrapper'),\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [this.slots('button') || h(\"div\", {\n \"class\": bem('button')\n })])])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/slider/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport Icon from '../icon';\n\nvar _use = use('step'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n beforeCreate: function beforeCreate() {\n var steps = this.$parent.steps;\n var index = this.$parent.slots().indexOf(this.$vnode);\n steps.splice(index === -1 ? steps.length : index, 0, this);\n },\n beforeDestroy: function beforeDestroy() {\n var index = this.$parent.steps.indexOf(this);\n\n if (index > -1) {\n this.$parent.steps.splice(index, 1);\n }\n },\n computed: {\n status: function status() {\n var index = this.$parent.steps.indexOf(this);\n var active = this.$parent.active;\n\n if (index < active) {\n return 'finish';\n }\n\n if (index === active) {\n return 'process';\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var status = this.status;\n var _this$$parent = this.$parent,\n activeIcon = _this$$parent.activeIcon,\n activeColor = _this$$parent.activeColor,\n direction = _this$$parent.direction;\n var titleStyle = status === 'process' && {\n color: activeColor\n };\n return h(\"div\", {\n \"class\": ['van-hairline', bem([direction, (_ref = {}, _ref[status] = status, _ref)])]\n }, [h(\"div\", {\n \"class\": bem('title'),\n \"style\": titleStyle\n }, [this.slots()]), h(\"div\", {\n \"class\": bem('circle-container')\n }, [status !== 'process' ? h(\"i\", {\n \"class\": bem('circle')\n }) : this.slots('active-icon') || h(Icon, {\n \"attrs\": {\n \"name\": activeIcon\n },\n \"style\": {\n color: activeColor\n }\n })]), h(\"div\", {\n \"class\": bem('line')\n })]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/step/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\nimport { GREEN } from '../utils/color';\nimport Icon from '../icon';\n\nvar _use = use('steps'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n icon: String,\n title: String,\n active: Number,\n iconClass: String,\n description: String,\n direction: {\n type: String,\n \"default\": 'horizontal'\n },\n activeColor: {\n type: String,\n \"default\": GREEN\n },\n activeIcon: {\n type: String,\n \"default\": 'checked'\n }\n },\n data: function data() {\n return {\n steps: []\n };\n },\n render: function render(h) {\n var icon = this.icon,\n title = this.title,\n description = this.description,\n slots = this.slots;\n var StatusIcon = (slots('icon') || icon) && h(\"div\", {\n \"class\": bem('icon')\n }, [slots('icon') || h(Icon, {\n \"attrs\": {\n \"name\": icon\n },\n \"class\": this.iconClass\n })]);\n var StatusMessage = h(\"div\", {\n \"class\": bem('message')\n }, [h(\"div\", {\n \"class\": bem('title')\n }, [title]), h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [description])]);\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [(title || description) && h(\"div\", {\n \"class\": bem('status')\n }, [StatusIcon, StatusMessage, slots('message-extra')]), h(\"div\", {\n \"class\": bem('items', {\n alone: !title && !description\n })\n }, [slots()])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/steps/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Button from '../button'; // Types\n\nvar _use = use('submit-bar'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction SubmitBar(h, props, slots, ctx) {\n var tip = props.tip,\n price = props.price;\n var hasPrice = typeof price === 'number';\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n })\n }, inherit(ctx)]), [slots.top && slots.top(), (slots.tip || tip) && h(\"div\", {\n \"class\": bem('tip')\n }, [tip, slots.tip && slots.tip()]), h(\"div\", {\n \"class\": bem('bar')\n }, [slots[\"default\"] && slots[\"default\"](), h(\"div\", {\n \"class\": bem('text')\n }, [hasPrice && [h(\"span\", [props.label || t('label')]), h(\"span\", {\n \"class\": bem('price')\n }, [props.currency + \" \" + (price / 100).toFixed(props.decimalLength)])]]), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": props.buttonType,\n \"loading\": props.loading,\n \"disabled\": props.disabled,\n \"text\": props.loading ? '' : props.buttonText\n },\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'submit');\n }\n }\n })])]);\n}\n\nSubmitBar.props = {\n tip: String,\n label: String,\n loading: Boolean,\n disabled: Boolean,\n buttonText: String,\n safeAreaInsetBottom: Boolean,\n price: {\n type: Number,\n \"default\": null\n },\n decimalLength: {\n type: Number,\n \"default\": 2\n },\n currency: {\n type: String,\n \"default\": '¥'\n },\n buttonType: {\n type: String,\n \"default\": 'danger'\n }\n};\nexport default sfc(SubmitBar);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/submit-bar/index.js\n// module id = null\n// module chunks = ","import { on, off } from '../utils/event';\nexport var ClickOutsideMixin = function ClickOutsideMixin(config) {\n return {\n mounted: function mounted() {\n var _this = this;\n\n config.handler = function (event) {\n if (!_this.$el.contains(event.target)) {\n _this[config.method]();\n }\n };\n\n on(document, config.event, config.handler);\n },\n beforeDestroy: function beforeDestroy() {\n off(document, config.event, config.handler);\n }\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/mixins/click-outside.js\n// module id = null\n// module chunks = ","import { use, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _use = use('swipe-cell'),\n sfc = _use[0],\n bem = _use[1];\n\nvar THRESHOLD = 0.15;\nexport default sfc({\n mixins: [TouchMixin, ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClick'\n })],\n props: {\n onClose: Function,\n disabled: Boolean,\n leftWidth: Number,\n rightWidth: Number\n },\n data: function data() {\n return {\n offset: 0,\n dragging: false\n };\n },\n methods: {\n open: function open(position) {\n var offset = position === 'left' ? this.leftWidth : -this.rightWidth;\n this.swipeMove(offset);\n this.resetSwipeStatus();\n },\n close: function close() {\n this.offset = 0;\n },\n resetSwipeStatus: function resetSwipeStatus() {\n this.swiping = false;\n this.opened = true;\n },\n swipeMove: function swipeMove(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n this.offset = range(offset, -this.rightWidth, this.leftWidth);\n\n if (this.offset) {\n this.swiping = true;\n } else {\n this.opened = false;\n }\n },\n swipeLeaveTransition: function swipeLeaveTransition(direction) {\n var offset = this.offset,\n leftWidth = this.leftWidth,\n rightWidth = this.rightWidth;\n var threshold = this.opened ? 1 - THRESHOLD : THRESHOLD; // right\n\n if (direction === 'right' && -offset > rightWidth * threshold && rightWidth > 0) {\n this.open('right'); // left\n } else if (direction === 'left' && offset > leftWidth * threshold && leftWidth > 0) {\n this.open('left'); // reset\n } else {\n this.swipeMove(0);\n }\n },\n startDrag: function startDrag(event) {\n if (this.disabled) {\n return;\n }\n\n this.dragging = true;\n this.startOffset = this.offset;\n this.touchStart(event);\n },\n onDrag: function onDrag(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n preventDefault(event);\n this.swipeMove(this.deltaX + this.startOffset);\n }\n },\n endDrag: function endDrag() {\n if (this.disabled) {\n return;\n }\n\n this.dragging = false;\n\n if (this.swiping) {\n this.swipeLeaveTransition(this.offset > 0 ? 'left' : 'right');\n }\n },\n onClick: function onClick(position) {\n if (position === void 0) {\n position = 'outside';\n }\n\n this.$emit('click', position);\n\n if (!this.offset) {\n return;\n }\n\n if (this.onClose) {\n this.onClose(position, this);\n } else {\n this.swipeMove(0);\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var onClick = function onClick(position, stop) {\n return function (event) {\n if (stop) {\n event.stopPropagation();\n }\n\n _this.onClick(position);\n };\n };\n\n var wrapperStyle = {\n transform: \"translate3d(\" + this.offset + \"px, 0, 0)\",\n transition: this.dragging ? 'none' : '.6s cubic-bezier(0.18, 0.89, 0.32, 1)'\n };\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": onClick('cell'),\n \"touchstart\": this.startDrag,\n \"touchmove\": this.onDrag,\n \"touchend\": this.endDrag,\n \"touchcancel\": this.endDrag\n }\n }, [h(\"div\", {\n \"class\": bem('wrapper'),\n \"style\": wrapperStyle,\n \"on\": {\n \"transitionend\": function transitionend() {\n _this.swiping = false;\n }\n }\n }, [this.leftWidth ? h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": onClick('left', true)\n }\n }, [this.slots('left')]) : null, this.slots(), this.rightWidth ? h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": onClick('right', true)\n }\n }, [this.slots('right')]) : null])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/swipe-cell/index.js\n// module id = null\n// module chunks = ","import { use } from '../utils';\n\nvar _use = use('tabbar'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n data: function data() {\n return {\n items: []\n };\n },\n props: {\n value: Number,\n activeColor: String,\n safeAreaInsetBottom: Boolean,\n fixed: {\n type: Boolean,\n \"default\": true\n },\n zIndex: {\n type: Number,\n \"default\": 1\n }\n },\n watch: {\n items: function items() {\n this.setActiveItem();\n },\n value: function value() {\n this.setActiveItem();\n }\n },\n methods: {\n setActiveItem: function setActiveItem() {\n var _this = this;\n\n this.items.forEach(function (item, index) {\n item.active = index === _this.value;\n });\n },\n onChange: function onChange(active) {\n if (active !== this.value) {\n this.$emit('input', active);\n this.$emit('change', active);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": ['van-hairline--top-bottom', bem({\n fixed: this.fixed,\n 'safe-area-inset-bottom': this.safeAreaInsetBottom\n })]\n }, [this.slots()]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tabbar/index.js\n// module id = null\n// module chunks = ","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Icon from '../icon';\nimport Info from '../info';\nimport { route, routeProps } from '../utils/router';\n\nvar _use = use('tabbar-item'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: _extends({}, routeProps, {\n icon: String,\n dot: Boolean,\n info: [String, Number]\n }),\n data: function data() {\n return {\n active: false\n };\n },\n beforeCreate: function beforeCreate() {\n this.$parent.items.push(this);\n },\n destroyed: function destroyed() {\n this.$parent.items.splice(this.$parent.items.indexOf(this), 1);\n },\n methods: {\n onClick: function onClick(event) {\n this.$parent.onChange(this.$parent.items.indexOf(this));\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render(h) {\n var icon = this.icon,\n slots = this.slots,\n active = this.active;\n var style = active ? {\n color: this.$parent.activeColor\n } : null;\n return h(\"div\", {\n \"class\": bem({\n active: active\n }),\n \"style\": style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('icon', {\n dot: this.dot\n })\n }, [slots('icon', {\n active: active\n }) || icon && h(Icon, {\n \"attrs\": {\n \"name\": icon\n }\n }), h(Info, {\n \"attrs\": {\n \"info\": this.info\n }\n })]), h(\"div\", {\n \"class\": bem('text')\n }, [slots('default', {\n active: active\n })])]);\n }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tabbar-item/index.js\n// module id = null\n// module chunks = ","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon'; // Types\n\nvar _use = use('tree-select'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction TreeSelect(h, props, slots, ctx) {\n var height = props.height,\n items = props.items,\n mainActiveIndex = props.mainActiveIndex,\n activeId = props.activeId;\n var selectedItem = items[mainActiveIndex] || {};\n var subItems = selectedItem.children || [];\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(),\n \"style\": {\n height: height + \"px\"\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('nav')\n }, [items.map(function (item, index) {\n return h(\"div\", {\n \"key\": index,\n \"class\": ['van-ellipsis', bem('nitem', {\n active: mainActiveIndex === index,\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n emit(ctx, 'navclick', index);\n }\n }\n }\n }, [item.text]);\n })]), h(\"div\", {\n \"class\": bem('content')\n }, [subItems.map(function (item) {\n return h(\"div\", {\n \"key\": item.id,\n \"class\": ['van-ellipsis', bem('item', {\n active: activeId === item.id,\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n emit(ctx, 'itemclick', item);\n }\n }\n }\n }, [item.text, activeId === item.id && h(Icon, {\n \"attrs\": {\n \"name\": \"checked\",\n \"size\": \"16px\"\n },\n \"class\": bem('selected')\n })]);\n })])]);\n}\n\nTreeSelect.props = {\n items: Array,\n mainActiveIndex: Number,\n activeId: {\n type: [Number, String],\n \"default\": 0\n },\n height: {\n type: Number,\n \"default\": 300\n }\n};\nexport default sfc(TreeSelect);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/tree-select/index.js\n// module id = null\n// module chunks = ","/* eslint-disable no-underscore-dangle */\nimport { on, off } from '../utils/event';\nimport { getScrollTop, getElementTop, getVisibleHeight, getScrollEventTarget } from '../utils/scroll';\nvar CONTEXT = '@@Waterfall';\nvar OFFSET = 300; // 处理滚动函数\n\nfunction handleScrollEvent() {\n var element = this.el;\n var scrollEventTarget = this.scrollEventTarget; // 已被禁止的滚动处理\n\n if (this.disabled) return;\n var targetScrollTop = getScrollTop(scrollEventTarget);\n var targetVisibleHeight = getVisibleHeight(scrollEventTarget); // 滚动元素可视区域下边沿到滚动元素元素最顶上 距离\n\n var targetBottom = targetScrollTop + targetVisibleHeight; // 如果无元素高度,考虑为元素隐藏,直接返回\n\n if (!targetVisibleHeight) return; // 判断是否到了底\n\n var needLoadMoreToLower = false;\n\n if (element === scrollEventTarget) {\n needLoadMoreToLower = scrollEventTarget.scrollHeight - targetBottom < this.offset;\n } else {\n var elementBottom = getElementTop(element) - getElementTop(scrollEventTarget) + getVisibleHeight(element);\n needLoadMoreToLower = elementBottom - targetVisibleHeight < this.offset;\n }\n\n if (needLoadMoreToLower) {\n this.cb.lower && this.cb.lower({\n target: scrollEventTarget,\n top: targetScrollTop\n });\n } // 判断是否到了顶\n\n\n var needLoadMoreToUpper = false;\n\n if (element === scrollEventTarget) {\n needLoadMoreToUpper = targetScrollTop < this.offset;\n } else {\n var elementTop = getElementTop(element) - getElementTop(scrollEventTarget);\n needLoadMoreToUpper = elementTop + this.offset > 0;\n }\n\n if (needLoadMoreToUpper) {\n this.cb.upper && this.cb.upper({\n target: scrollEventTarget,\n top: targetScrollTop\n });\n }\n} // 绑定事件到元素上\n// 读取基本的控制变量\n\n\nfunction doBindEvent() {\n var _this = this;\n\n if (this.el[CONTEXT].binded) {\n return;\n }\n\n this.el[CONTEXT].binded = true;\n this.scrollEventListener = handleScrollEvent.bind(this);\n this.scrollEventTarget = getScrollEventTarget(this.el);\n var disabledExpr = this.el.getAttribute('waterfall-disabled');\n var disabled = false;\n\n if (disabledExpr) {\n this.vm.$watch(disabledExpr, function (value) {\n _this.disabled = value;\n\n _this.scrollEventListener();\n });\n disabled = Boolean(this.vm[disabledExpr]);\n }\n\n this.disabled = disabled;\n var offset = this.el.getAttribute('waterfall-offset');\n this.offset = Number(offset) || OFFSET;\n on(this.scrollEventTarget, 'scroll', this.scrollEventListener, true);\n this.scrollEventListener();\n} // 绑定事件\n\n\nfunction startBind(el) {\n var context = el[CONTEXT];\n context.vm.$nextTick(function () {\n doBindEvent.call(el[CONTEXT]);\n });\n} // 确认何时绑事件监听函数\n\n\nfunction doCheckStartBind(el) {\n var context = el[CONTEXT];\n\n if (context.vm._isMounted) {\n startBind(el);\n } else {\n context.vm.$on('hook:mounted', function () {\n startBind(el);\n });\n }\n}\n\nexport default function (type) {\n return {\n bind: function bind(el, binding, vnode) {\n if (!el[CONTEXT]) {\n el[CONTEXT] = {\n el: el,\n vm: vnode.context,\n cb: {}\n };\n }\n\n el[CONTEXT].cb[type] = binding.value;\n doCheckStartBind(el);\n },\n update: function update(el) {\n var context = el[CONTEXT];\n context.scrollEventListener && context.scrollEventListener();\n },\n unbind: function unbind(el) {\n var context = el[CONTEXT];\n\n if (context.scrollEventTarget) {\n off(context.scrollEventTarget, 'scroll', context.scrollEventListener);\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/waterfall/directive.js\n// module id = null\n// module chunks = ","import Waterfall from './directive';\n\nWaterfall.install = function (Vue) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Vant] Waterfall is deprecated, please use List component instread');\n }\n\n Vue.directive('WaterfallLower', Waterfall('lower'));\n Vue.directive('WaterfallUpper', Waterfall('upper'));\n};\n\nexport default Waterfall;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/waterfall/index.js\n// module id = null\n// module chunks = ","/* eslint-disable */\n// This file is auto gererated by build/build-entry.js\nimport Actionsheet from './actionsheet';\nimport AddressEdit from './address-edit';\nimport AddressList from './address-list';\nimport Area from './area';\nimport Badge from './badge';\nimport BadgeGroup from './badge-group';\nimport Button from './button';\nimport Card from './card';\nimport Cell from './cell';\nimport CellGroup from './cell-group';\nimport Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\nimport Circle from './circle';\nimport Col from './col';\nimport Collapse from './collapse';\nimport CollapseItem from './collapse-item';\nimport ContactCard from './contact-card';\nimport ContactEdit from './contact-edit';\nimport ContactList from './contact-list';\nimport Coupon from './coupon';\nimport CouponCell from './coupon-cell';\nimport CouponList from './coupon-list';\nimport DatetimePicker from './datetime-picker';\nimport Dialog from './dialog';\nimport Field from './field';\nimport GoodsAction from './goods-action';\nimport GoodsActionBigBtn from './goods-action-big-btn';\nimport GoodsActionMiniBtn from './goods-action-mini-btn';\nimport Icon from './icon';\nimport ImagePreview from './image-preview';\nimport Info from './info';\nimport Lazyload from './lazyload';\nimport List from './list';\nimport Loading from './loading';\nimport Locale from './locale';\nimport NavBar from './nav-bar';\nimport NoticeBar from './notice-bar';\nimport Notify from './notify';\nimport NumberKeyboard from './number-keyboard';\nimport Overlay from './overlay';\nimport Pagination from './pagination';\nimport Panel from './panel';\nimport PasswordInput from './password-input';\nimport Picker from './picker';\nimport Popup from './popup';\nimport Progress from './progress';\nimport PullRefresh from './pull-refresh';\nimport Radio from './radio';\nimport RadioGroup from './radio-group';\nimport Rate from './rate';\nimport Row from './row';\nimport Search from './search';\nimport Sku from './sku';\nimport Slider from './slider';\nimport Step from './step';\nimport Stepper from './stepper';\nimport Steps from './steps';\nimport SubmitBar from './submit-bar';\nimport Swipe from './swipe';\nimport SwipeCell from './swipe-cell';\nimport SwipeItem from './swipe-item';\nimport Switch from './switch';\nimport SwitchCell from './switch-cell';\nimport Tab from './tab';\nimport Tabbar from './tabbar';\nimport TabbarItem from './tabbar-item';\nimport Tabs from './tabs';\nimport Tag from './tag';\nimport Toast from './toast';\nimport TreeSelect from './tree-select';\nimport Uploader from './uploader';\nimport Waterfall from './waterfall';\nvar version = '1.6.28';\nvar components = [Actionsheet, AddressEdit, AddressList, Area, Badge, BadgeGroup, Button, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Field, GoodsAction, GoodsActionBigBtn, GoodsActionMiniBtn, Icon, ImagePreview, Info, List, Loading, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, Sku, Slider, Step, Stepper, Steps, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader];\n\nvar install = function install(Vue) {\n components.forEach(function (Component) {\n Vue.use(Component);\n });\n};\n/* istanbul ignore if */\n\n\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n}\n\nexport { install, version, Actionsheet, AddressEdit, AddressList, Area, Badge, BadgeGroup, Button, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Field, GoodsAction, GoodsActionBigBtn, GoodsActionMiniBtn, Icon, ImagePreview, Info, Lazyload, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, Sku, Slider, Step, Stepper, Steps, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader, Waterfall };\nexport default {\n install: install,\n version: version\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/index.js\n// module id = null\n// module chunks = ","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 9AUj\n// module chunks = 0","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer.js\n// module id = C7Lr\n// module chunks = 0","\n;(function(win, lib) {\n var doc = win.document;\n var docEl = doc.documentElement;\n var metaEl = doc.querySelector('meta[name=\"viewport\"]');\n var flexibleEl = doc.querySelector('meta[name=\"flexible\"]');\n var dpr = 0;\n var scale = 0;\n var tid;\n var flexible = lib.flexible || (lib.flexible = {});\n\n if (metaEl) {\n console.warn('将根据已有的meta标签来设置缩放比例');\n var match = metaEl.getAttribute('content').match(/initial\\-scale=([\\d\\.]+)/);\n if (match) {\n scale = parseFloat(match[1]);\n dpr = parseInt(1 / scale);\n }\n } else if (flexibleEl) {\n var content = flexibleEl.getAttribute('content');\n if (content) {\n var initialDpr = content.match(/initial\\-dpr=([\\d\\.]+)/);\n var maximumDpr = content.match(/maximum\\-dpr=([\\d\\.]+)/);\n if (initialDpr) {\n dpr = parseFloat(initialDpr[1]);\n scale = parseFloat((1 / dpr).toFixed(2));\n }\n if (maximumDpr) {\n dpr = parseFloat(maximumDpr[1]);\n scale = parseFloat((1 / dpr).toFixed(2));\n }\n }\n }\n\n if (!dpr && !scale) {\n var isAndroid = win.navigator.appVersion.match(/android/gi);\n var isIPhone = win.navigator.appVersion.match(/iphone/gi);\n var devicePixelRatio = win.devicePixelRatio;\n if (isIPhone) {\n // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案\n if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {\n dpr = 3;\n } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){\n dpr = 2;\n } else {\n dpr = 1;\n }\n } else {\n // 其他设备下,仍旧使用1倍的方案\n dpr = 1;\n }\n scale = 1 / dpr;\n }\n\n docEl.setAttribute('data-dpr', dpr);\n if (!metaEl) {\n metaEl = doc.createElement('meta');\n metaEl.setAttribute('name', 'viewport');\n metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');\n if (docEl.firstElementChild) {\n docEl.firstElementChild.appendChild(metaEl);\n } else {\n var wrap = doc.createElement('div');\n wrap.appendChild(metaEl);\n doc.write(wrap.innerHTML);\n }\n }\n\n function refreshRem(){\n var width = docEl.getBoundingClientRect().width;\n if (width / dpr > 540) {\n width = 540 * dpr;\n }\n var rem = width / 10;\n docEl.style.fontSize = rem + 'px';\n flexible.rem = win.rem = rem;\n }\n\n win.addEventListener('resize', function() {\n clearTimeout(tid);\n tid = setTimeout(refreshRem, 300);\n }, false);\n win.addEventListener('pageshow', function(e) {\n if (e.persisted) {\n clearTimeout(tid);\n tid = setTimeout(refreshRem, 300);\n }\n }, false);\n\n if (doc.readyState === 'complete') {\n doc.body.style.fontSize = 12 * dpr + 'px';\n } else {\n doc.addEventListener('DOMContentLoaded', function(e) {\n doc.body.style.fontSize = 12 * dpr + 'px';\n }, false);\n }\n\n\n refreshRem();\n\n flexible.dpr = win.dpr = dpr;\n flexible.refreshRem = refreshRem;\n flexible.rem2px = function(d) {\n var val = parseFloat(d) * this.rem;\n if (typeof d === 'string' && d.match(/rem$/)) {\n val += 'px';\n }\n return val;\n }\n flexible.px2rem = function(d) {\n var val = parseFloat(d) / this.rem;\n if (typeof d === 'string' && d.match(/px$/)) {\n val += 'rem';\n }\n return val;\n }\n\n})(window, window['lib'] || (window['lib'] = {}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lib-flexible@0.3.2@lib-flexible/flexible.js\n// module id = D0oh\n// module chunks = 0","/* eslint-disable no-use-before-define */\nimport { isDef, isObj } from '.';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction assignKey(to, from, key) {\n var val = from[key];\n\n if (!isDef(val)) {\n return;\n }\n\n if (!hasOwnProperty.call(to, key) || !isObj(val)) {\n to[key] = val;\n } else {\n to[key] = deepAssign(Object(to[key]), from[key]);\n }\n}\n\nexport function deepAssign(to, from) {\n Object.keys(from).forEach(function (key) {\n assignKey(to, from, key);\n });\n return to;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/deep-assign.js\n// module id = TExJ\n// module chunks = 0","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from './index';\nvar prev = Date.now();\n/* istanbul ignore next */\n\nfunction fallback(fn) {\n var curr = Date.now();\n var ms = Math.max(0, 16 - (curr - prev));\n var id = setTimeout(fn, ms);\n prev = curr + ms;\n return id;\n}\n/* istanbul ignore next */\n\n\nvar root = isServer ? global : window;\n/* istanbul ignore next */\n\nvar iRaf = root.requestAnimationFrame || fallback;\n/* istanbul ignore next */\n\nvar iCancel = root.cancelAnimationFrame || root.clearTimeout;\nexport function raf(fn) {\n return iRaf.call(root, fn);\n}\nexport function cancel(id) {\n iCancel.call(root, id);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vant@1.6.28@vant/es/utils/raf.js\n// module id = VsCf\n// module chunks = 0","\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.