index-legacy-30f1c7ec.js 7.4 KB

1
  1. System.register(["./index-legacy-3b5d15b6.js","./index-legacy-7135aa8e.js"],(function(e,t){"use strict";var l,n,o,a,i,u,s,c,r,v,d,m,p,f,h,b,g,x,y,w,T,k,H,O,C,B,S,N,D,V,M,I,P;return{setters:[e=>{l=e.c,n=e.W,o=e.ab,a=e._,i=e.d,u=e.n,s=e.b4,c=e.aa,r=e.r,v=e.u,d=e.ac,m=e.X,p=e.aC,f=e.Y,h=e.a,b=e.p,g=e.H,x=e.a9,y=e.ad,w=e.b,T=e.t,k=e.m,H=e.e,O=e.bB,C=e.w,B=e.aQ,S=e.L,N=e.h,D=e.z,V=e.bC,M=e.k},e=>{I=e.T,P=e.a}],execute:function(){const[t,$,j]=l("picker"),z=e=>e.find((e=>!e.disabled))||e[0];function E(e,t){for(let l=t=a(t,0,e.length);l<e.length;l++)if(!e[l].disabled)return l;for(let l=t-1;l>=0;l--)if(!e[l].disabled)return l;return 0}const A=(e,t,l)=>void 0!==t&&!!e.find((e=>e[l.value]===t));function F(e,t,l){const n=e.findIndex((e=>e[l.value]===t));return e[E(e,n)]}const[L,Y]=l("picker-column"),Q=Symbol(L);var R=i({name:L,props:{value:u,fields:s(Object),options:c(),readonly:Boolean,allowHtml:Boolean,optionHeight:s(Number),swipeDuration:s(u),visibleOptionNum:s(u)},emits:["change","clickOption"],setup(e,{emit:t,slots:l}){let n,o,i,u,s;const c=r(),g=r(),x=r(0),y=r(0),w=v(),T=()=>e.options.length,k=()=>e.optionHeight*(+e.visibleOptionNum-1)/2,H=l=>{const o=E(e.options,l),a=-o*e.optionHeight,i=()=>{const l=e.options[o][e.fields.value];l!==e.value&&t("change",l)};n&&a!==x.value?s=i:i(),x.value=a},O=()=>e.readonly||!e.options.length,C=t=>a(Math.round(-t/e.optionHeight),0,T()-1),B=()=>{n=!1,y.value=0,s&&(s(),s=null)},S=e=>{if(!O()){if(w.start(e),n){const e=function(e){const{transform:t}=window.getComputedStyle(e),l=t.slice(7,t.length-1).split(", ")[5];return Number(l)}(g.value);x.value=Math.min(0,e-k())}y.value=0,o=x.value,i=Date.now(),u=o,s=null}},N=()=>{if(O())return;const t=x.value-u,l=Date.now()-i;if(l<300&&Math.abs(t)>15)return void((t,l)=>{const n=Math.abs(t/l);t=x.value+n/.003*(t<0?-1:1);const o=C(t);y.value=+e.swipeDuration,H(o)})(t,l);const o=C(x.value);y.value=200,H(o),setTimeout((()=>{n=!1}),0)},D=()=>{const o={height:`${e.optionHeight}px`};return e.options.map(((a,i)=>{const u=a[e.fields.text],{disabled:c}=a,r=a[e.fields.value],v={role:"button",style:o,tabindex:c?-1:0,class:[Y("item",{disabled:c,selected:r===e.value}),a.className],onClick:()=>(l=>{n||O()||(s=null,y.value=200,H(l),t("clickOption",e.options[l]))})(i)},d={class:"van-ellipsis",[e.allowHtml?"innerHTML":"textContent"]:u};return h("li",v,[l.option?l.option(a,i):h("div",d,null)])}))};return d(Q),m({stopMomentum:B}),p((()=>{const t=e.options.findIndex((t=>t[e.fields.value]===e.value)),l=-E(e.options,t)*e.optionHeight;x.value=l})),f("touchmove",(t=>{if(O())return;w.move(t),w.isVertical()&&(n=!0,b(t,!0)),x.value=a(o+w.deltaY.value,-T()*e.optionHeight,e.optionHeight);const l=Date.now();l-i>300&&(i=l,u=x.value)}),{target:c}),()=>h("div",{ref:c,class:Y(),onTouchstartPassive:S,onTouchend:N,onTouchcancel:N},[h("ul",{ref:g,style:{transform:`translate3d(0, ${x.value+k()}px, 0)`,transitionDuration:`${y.value}ms`,transitionProperty:y.value?"all":"none"},class:Y("wrapper"),onTransitionend:B},[D()])])}});const[U]=l("picker-toolbar"),W={title:String,cancelButtonText:String,confirmButtonText:String},X=["cancel","confirm","title","toolbar"],_=Object.keys(W);var q=i({name:U,props:W,emits:["confirm","cancel"],setup(e,{emit:t,slots:l}){const n=()=>t("cancel"),o=()=>t("confirm"),a=()=>{const t=e.cancelButtonText||j("cancel");return h("button",{type:"button",class:[$("cancel"),g],onClick:n},[l.cancel?l.cancel():t])},i=()=>{const t=e.confirmButtonText||j("confirm");return h("button",{type:"button",class:[$("confirm"),g],onClick:o},[l.confirm?l.confirm():t])};return()=>h("div",{class:$("toolbar")},[l.toolbar?l.toolbar():[a(),l.title?l.title():e.title?h("div",{class:[$("title"),"van-ellipsis"]},[e.title]):void 0,i()]])}});const[G,J]=l("picker-group"),K=Symbol(G),Z=o({tabs:c(),nextStepText:String},W);i({name:G,props:Z,emits:["confirm","cancel"],setup(e,{emit:t,slots:l}){const n=r(0),{children:o,linkChildren:a}=x(K);a();const i=()=>n.value<e.tabs.length-1&&e.nextStepText,u=()=>{i()?n.value++:t("confirm",o.map((e=>e.confirm())))},s=()=>t("cancel");return()=>{var t;const o=null==(t=l.default)?void 0:t.call(l),a=i()?e.nextStepText:e.confirmButtonText;return h("div",{class:J()},[h(q,{title:e.title,cancelButtonText:e.cancelButtonText,confirmButtonText:a,onConfirm:u,onCancel:s},y(l,X)),h(I,{active:n.value,"onUpdate:active":e=>n.value=e,class:J("tabs"),shrink:!0,animated:!0,lazyRender:!1},{default:()=>[e.tabs.map(((e,t)=>h(P,{title:e,titleClass:J("tab-title")},{default:()=>[null==o?void 0:o[t]]})))]})])}}});const ee=e("p",o({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:w(44),showToolbar:T,swipeDuration:w(1e3),visibleOptionNum:w(6)},W)),te=o({},ee,{columns:c(),modelValue:c(),toolbarPosition:k("top"),columnsFieldNames:Object});var le=i({name:t,props:te,emits:["confirm","cancel","change","clickOption","update:modelValue"],setup(e,{emit:t,slots:l}){const a=r(),i=r(e.modelValue.slice(0)),{parent:u}=d(K),{children:s,linkChildren:c}=x(Q);c();const v=H((()=>function(e){return o({text:"text",value:"value",children:"children"},e)}(e.columnsFieldNames))),p=H((()=>O(e.optionHeight))),g=H((()=>function(e,t){const l=e[0];if(l){if(Array.isArray(l))return"multiple";if(t.children in l)return"cascade"}return"default"}(e.columns,v.value))),w=H((()=>{const{columns:t}=e;switch(g.value){case"multiple":return t;case"cascade":return function(e,t,l){const o=[];let a={[t.children]:e},i=0;for(;a&&a[t.children];){const e=a[t.children],u=l.value[i];a=n(u)?F(e,u,t):void 0,!a&&e.length&&(a=F(e,z(e)[t.value],t)),i++,o.push(e)}return o}(t,v.value,i);default:return[t]}})),T=H((()=>w.value.some((e=>e.length)))),k=H((()=>w.value.map(((e,t)=>F(e,i.value[t],v.value))))),M=H((()=>w.value.map(((e,t)=>e.findIndex((e=>e[v.value.value]===i.value[t])))))),I=(e,t)=>{if(i.value[e]!==t){const l=i.value.slice(0);l[e]=t,i.value=l}},P=()=>({selectedValues:i.value.slice(0),selectedOptions:k.value,selectedIndexes:M.value}),j=()=>{s.forEach((e=>e.stopMomentum()));const e=P();return D((()=>{t("confirm",e)})),e},E=()=>t("cancel",P()),L=()=>w.value.map(((n,a)=>h(R,{value:i.value[a],fields:v.value,options:n,readonly:e.readonly,allowHtml:e.allowHtml,optionHeight:p.value,swipeDuration:e.swipeDuration,visibleOptionNum:e.visibleOptionNum,onChange:e=>((e,l)=>{I(l,e),"cascade"===g.value&&i.value.forEach(((e,t)=>{const l=w.value[t];A(l,e,v.value)||I(t,l.length?l[0][v.value.value]:void 0)})),D((()=>{t("change",o({columnIndex:l},P()))}))})(e,a),onClickOption:e=>((e,l)=>t("clickOption",o({columnIndex:l,currentOption:e},P())))(e,a)},{option:l.option}))),Y=e=>{if(T.value){const t={height:`${p.value}px`},l={backgroundSize:`100% ${(e-p.value)/2}px`};return[h("div",{class:$("mask"),style:l},null),h("div",{class:[V,$("frame")],style:t},null)]}},U=()=>{const t=p.value*+e.visibleOptionNum,l={height:`${t}px`};return h("div",{ref:a,class:$("columns"),style:l},[L(),Y(t)])},W=()=>{if(e.showToolbar&&!u)return h(q,N(y(e,_),{onConfirm:j,onCancel:E}),y(l,X))};let G;return C(w,(e=>{e.forEach(((e,t)=>{e.length&&!A(e,i.value[t],v.value)&&I(t,z(e)[v.value.value])}))}),{immediate:!0}),C((()=>e.modelValue),(e=>{B(e,i.value)||B(e,G)||(i.value=e.slice(0),G=e.slice(0))}),{deep:!0}),C(i,(l=>{B(l,e.modelValue)||(G=l.slice(0),t("update:modelValue",G))}),{immediate:!0}),f("touchmove",b,{target:a}),m({confirm:j,getSelectedOptions:()=>k.value}),()=>{var t,n;return h("div",{class:$()},["top"===e.toolbarPosition?W():null,e.loading?h(S,{class:$("loading")},null):null,null==(t=l["columns-top"])?void 0:t.call(l),U(),null==(n=l["columns-bottom"])?void 0:n.call(l),"bottom"===e.toolbarPosition?W():null])}}});e("P",M(le))}}}));