12 |
- "use strict";(self["webpackChunkbyte_sailing_mobile"]=self["webpackChunkbyte_sailing_mobile"]||[]).push([[6984],{76196:function(){},36565:function(){},71744:function(){},22666:function(){},73156:function(e,t,n){n.d(t,{ZP:function(){return Q},d4:function(){return A}});var l=n(73396),o=n(44870),i=n(12220),a=n(5323),u=n(96048),c=n(25322),s=n(47936),r=(n(57658),n(610)),m=n(16491);const[v,d,p]=(0,r["do"])("picker"),f=e=>e.find((e=>!e.disabled))||e[0];function h(e,t){const n=e[0];if(n){if(Array.isArray(n))return"multiple";if(t.children in n)return"cascade"}return"default"}function b(e,t){t=(0,u.uZ)(t,0,e.length);for(let n=t;n<e.length;n++)if(!e[n].disabled)return n;for(let n=t-1;n>=0;n--)if(!e[n].disabled)return n;return 0}const g=(e,t,n)=>void 0!==t&&!!e.find((e=>e[n.value]===t));function x(e,t,n){const l=e.findIndex((e=>e[n.value]===t)),o=b(e,l);return e[o]}function H(e,t,n){const l=[];let o={[t.children]:e},i=0;while(o&&o[t.children]){const e=o[t.children],a=n.value[i];if(o=(0,m.Xq)(a)?x(e,a,t):void 0,!o&&e.length){const n=f(e)[t.value];o=x(e,n,t)}i++,l.push(e)}return l}function O(e){const{transform:t}=window.getComputedStyle(e),n=t.slice(7,t.length-1).split(", ")[5];return Number(n)}function k(e){return(0,i.l7)({text:"text",value:"value",children:"children"},e)}var w=n(253),y=n(3444),C=n(12229),W=n(65261);const T=200,S=300,B=15,[F,N]=(0,r["do"])("picker-column"),P=Symbol(F);var $=(0,l.aZ)({name:F,props:{value:a.Or,fields:(0,a.ir)(Object),options:(0,a.Ce)(),readonly:Boolean,allowHtml:Boolean,optionHeight:(0,a.ir)(Number),swipeDuration:(0,a.ir)(a.Or),visibleOptionNum:(0,a.ir)(a.Or)},emits:["change","clickOption"],setup(e,{emit:t,slots:n}){let i,a,c,r,m;const v=(0,o.iH)(),d=(0,o.iH)(),p=(0,o.iH)(0),f=(0,o.iH)(0),h=(0,W.o)(),g=()=>e.options.length,x=()=>e.optionHeight*(+e.visibleOptionNum-1)/2,H=n=>{const l=b(e.options,n),o=-l*e.optionHeight,a=()=>{const n=e.options[l][e.fields.value];n!==e.value&&t("change",n)};i&&o!==p.value?m=a:a(),p.value=o},k=()=>e.readonly||!e.options.length,C=n=>{i||k()||(m=null,f.value=T,H(n),t("clickOption",e.options[n]))},F=t=>(0,u.uZ)(Math.round(-t/e.optionHeight),0,g()-1),$=(t,n)=>{const l=Math.abs(t/n);t=p.value+l/.003*(t<0?-1:1);const o=F(t);f.value=+e.swipeDuration,H(o)},D=()=>{i=!1,f.value=0,m&&(m(),m=null)},I=e=>{if(!k()){if(h.start(e),i){const e=O(d.value);p.value=Math.min(0,e-x())}f.value=0,a=p.value,c=Date.now(),r=a,m=null}},Z=t=>{if(k())return;h.move(t),h.isVertical()&&(i=!0,(0,s.PF)(t,!0)),p.value=(0,u.uZ)(a+h.deltaY.value,-g()*e.optionHeight,e.optionHeight);const n=Date.now();n-c>S&&(c=n,r=p.value)},V=()=>{if(k())return;const e=p.value-r,t=Date.now()-c,n=t<S&&Math.abs(e)>B;if(n)return void $(e,t);const l=F(p.value);f.value=T,H(l),setTimeout((()=>{i=!1}),0)},M=()=>{const t={height:`${e.optionHeight}px`};return e.options.map(((o,i)=>{const a=o[e.fields.text],{disabled:u}=o,c=o[e.fields.value],s={role:"button",style:t,tabindex:u?-1:0,class:[N("item",{disabled:u,selected:c===e.value}),o.className],onClick:()=>C(i)},r={class:"van-ellipsis",[e.allowHtml?"innerHTML":"textContent"]:a};return(0,l.Wm)("li",s,[n.option?n.option(o,i):(0,l.Wm)("div",r,null)])}))};return(0,w.NB)(P),(0,y.F)({stopMomentum:D}),(0,l.m0)((()=>{const t=e.options.findIndex((t=>t[e.fields.value]===e.value)),n=b(e.options,t),l=-n*e.optionHeight;p.value=l})),(0,w.OR)("touchmove",Z,{target:v}),()=>(0,l.Wm)("div",{ref:v,class:N(),onTouchstartPassive:I,onTouchend:V,onTouchcancel:V},[(0,l.Wm)("ul",{ref:d,style:{transform:`translate3d(0, ${p.value+x()}px, 0)`,transitionDuration:`${f.value}ms`,transitionProperty:f.value?"all":"none"},class:N("wrapper"),onTransitionend:D},[M()])])}});const[D]=(0,r["do"])("picker-toolbar"),I={title:String,cancelButtonText:String,confirmButtonText:String},Z=["cancel","confirm","title","toolbar"],V=Object.keys(I);var M=(0,l.aZ)({name:D,props:I,emits:["confirm","cancel"],setup(e,{emit:t,slots:n}){const o=()=>n.title?n.title():e.title?(0,l.Wm)("div",{class:[d("title"),"van-ellipsis"]},[e.title]):void 0,i=()=>t("cancel"),a=()=>t("confirm"),u=()=>{const t=e.cancelButtonText||p("cancel");return(0,l.Wm)("button",{type:"button",class:[d("cancel"),c.e9],onClick:i},[n.cancel?n.cancel():t])},s=()=>{const t=e.confirmButtonText||p("confirm");return(0,l.Wm)("button",{type:"button",class:[d("confirm"),c.e9],onClick:a},[n.confirm?n.confirm():t])};return()=>(0,l.Wm)("div",{class:d("toolbar")},[n.toolbar?n.toolbar():[u(),o(),s()]])}}),Y=n(38876),E=n(12727);const[j,_]=(0,r["do"])("picker-group"),R=Symbol(j),z=(0,i.l7)({tabs:(0,a.Ce)(),nextStepText:String},I);(0,l.aZ)({name:j,props:z,emits:["confirm","cancel"],setup(e,{emit:t,slots:n}){const a=(0,o.iH)(0),{children:u,linkChildren:c}=(0,w.$E)(R);c();const s=()=>a.value<e.tabs.length-1&&e.nextStepText,r=()=>{s()?a.value++:t("confirm",u.map((e=>e.confirm())))},m=()=>t("cancel");return()=>{var t;const o=null==(t=n.default)?void 0:t.call(n),u=s()?e.nextStepText:e.confirmButtonText;return(0,l.Wm)("div",{class:_()},[(0,l.Wm)(M,{title:e.title,cancelButtonText:e.cancelButtonText,confirmButtonText:u,onConfirm:r,onCancel:m},(0,i.ei)(n,Z)),(0,l.Wm)(E.mQ,{active:a.value,"onUpdate:active":e=>a.value=e,class:_("tabs"),shrink:!0,animated:!0,lazyRender:!1},{default:()=>[e.tabs.map(((e,t)=>(0,l.Wm)(Y.OK,{title:e,titleClass:_("tab-title")},{default:()=>[null==o?void 0:o[t]]})))]})])}}});const A=(0,i.l7)({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:(0,a.SI)(44),showToolbar:a.J5,swipeDuration:(0,a.SI)(1e3),visibleOptionNum:(0,a.SI)(6)},I),L=(0,i.l7)({},A,{columns:(0,a.Ce)(),modelValue:(0,a.Ce)(),toolbarPosition:(0,a.SQ)("top"),columnsFieldNames:Object});var Q=(0,l.aZ)({name:v,props:L,emits:["confirm","cancel","change","clickOption","update:modelValue"],setup(e,{emit:t,slots:n}){const a=(0,o.iH)(),r=(0,o.iH)(e.modelValue.slice(0)),{parent:m}=(0,w.NB)(R),{children:v,linkChildren:p}=(0,w.$E)(P);p();const b=(0,l.Fl)((()=>k(e.columnsFieldNames))),O=(0,l.Fl)((()=>(0,u.LU)(e.optionHeight))),W=(0,l.Fl)((()=>h(e.columns,b.value))),T=(0,l.Fl)((()=>{const{columns:t}=e;switch(W.value){case"multiple":return t;case"cascade":return H(t,b.value,r);default:return[t]}})),S=(0,l.Fl)((()=>T.value.some((e=>e.length)))),B=(0,l.Fl)((()=>T.value.map(((e,t)=>x(e,r.value[t],b.value))))),F=(0,l.Fl)((()=>T.value.map(((e,t)=>e.findIndex((e=>e[b.value.value]===r.value[t])))))),N=(e,t)=>{if(r.value[e]!==t){const n=r.value.slice(0);n[e]=t,r.value=n}},D=()=>({selectedValues:r.value.slice(0),selectedOptions:B.value,selectedIndexes:F.value}),I=(e,n)=>{N(n,e),"cascade"===W.value&&r.value.forEach(((e,t)=>{const n=T.value[t];g(n,e,b.value)||N(t,n.length?n[0][b.value.value]:void 0)})),(0,l.Y3)((()=>{t("change",(0,i.l7)({columnIndex:n},D()))}))},Y=(e,n)=>t("clickOption",(0,i.l7)({columnIndex:n,currentOption:e},D())),E=()=>{v.forEach((e=>e.stopMomentum()));const e=D();return(0,l.Y3)((()=>{t("confirm",e)})),e},j=()=>t("cancel",D()),_=()=>T.value.map(((t,o)=>(0,l.Wm)($,{value:r.value[o],fields:b.value,options:t,readonly:e.readonly,allowHtml:e.allowHtml,optionHeight:O.value,swipeDuration:e.swipeDuration,visibleOptionNum:e.visibleOptionNum,onChange:e=>I(e,o),onClickOption:e=>Y(e,o)},{option:n.option}))),z=e=>{if(S.value){const t={height:`${O.value}px`},n={backgroundSize:`100% ${(e-O.value)/2}px`};return[(0,l.Wm)("div",{class:d("mask"),style:n},null),(0,l.Wm)("div",{class:[c.pj,d("frame")],style:t},null)]}},A=()=>{const t=O.value*+e.visibleOptionNum,n={height:`${t}px`};return(0,l.Wm)("div",{ref:a,class:d("columns"),style:n},[_(),z(t)])},L=()=>{if(e.showToolbar&&!m)return(0,l.Wm)(M,(0,l.dG)((0,i.ei)(e,V),{onConfirm:E,onCancel:j}),(0,i.ei)(n,Z))};let Q;(0,l.YP)(T,(e=>{e.forEach(((e,t)=>{e.length&&!g(e,r.value[t],b.value)&&N(t,f(e)[b.value.value])}))}),{immediate:!0}),(0,l.YP)((()=>e.modelValue),(e=>{(0,i.$c)(e,r.value)||(0,i.$c)(e,Q)||(r.value=e.slice(0),Q=e.slice(0))}),{deep:!0}),(0,l.YP)(r,(n=>{(0,i.$c)(n,e.modelValue)||(Q=n.slice(0),t("update:modelValue",Q))}),{immediate:!0}),(0,w.OR)("touchmove",s.PF,{target:a});const U=()=>B.value;return(0,y.F)({confirm:E,getSelectedOptions:U}),()=>{var t,o;return(0,l.Wm)("div",{class:d()},["top"===e.toolbarPosition?L():null,e.loading?(0,l.Wm)(C.gb,{class:d("loading")},null):null,null==(t=n["columns-top"])?void 0:t.call(n),A(),null==(o=n["columns-bottom"])?void 0:o.call(n),"bottom"===e.toolbarPosition?L():null])}}})},79264:function(e,t,n){n.d(t,{cW:function(){return i}});var l=n(11404),o=n(73156);const i=(0,l.n)(o.ZP)},52196:function(e,t,n){n(31958),n(20368),n(62939),n(51771),n(89137),n(1088),n(25338),n(51564),n(36565),n(71744)},35708:function(e,t,n){n(31958),n(20368),n(56742),n(76196),n(22666)}}]);
- //# sourceMappingURL=6984.2b7f43da.js.map
|