1 |
- import{aW as M,by as ye,bz as P,bA as X,d as D,bB as Y,bC as _,bD as $,l as B,bE as Oe,bF as ce,bG as te,bH as He,bI as ne,f as c,bJ as ue,bK as ae,bL as de,bM as q,bN as G,bO as me,bP as fe,e as O,bQ as pe,w as E,bR as z,bS as he,bT as Pe,at as J,bU as we,aZ as be,bV as Ee,bW as Me,c as De,bX as oe,bY as Ae}from"./index-6cc5c31a.js";import{T as Le,c as Ne,u as Re}from"./index-c5c742af.js";const[Ve,y,le]=M("picker"),ve=e=>e.find(n=>!n.disabled)||e[0];function Ie(e,n){const t=e[0];if(t){if(Array.isArray(t))return"multiple";if(n.children in t)return"cascade"}return"default"}function Z(e,n){n=X(n,0,e.length);for(let t=n;t<e.length;t++)if(!e[t].disabled)return t;for(let t=n-1;t>=0;t--)if(!e[t].disabled)return t;return 0}const ie=(e,n,t)=>n!==void 0&&!!e.find(i=>i[t.value]===n);function ee(e,n,t){const i=e.findIndex(b=>b[t.value]===n),l=Z(e,i);return e[l]}function _e(e,n,t){const i=[];let l={[n.children]:e},b=0;for(;l&&l[n.children];){const u=l[n.children],v=t.value[b];if(l=ye(v)?ee(u,v,n):void 0,!l&&u.length){const r=ve(u)[n.value];l=ee(u,r,n)}b++,i.push(u)}return i}function Fe(e){const{transform:n}=window.getComputedStyle(e),t=n.slice(7,n.length-1).split(", ")[5];return Number(t)}function Ge(e){return P({text:"text",value:"value",children:"children"},e)}const se=200,re=300,$e=15,[ge,j]=M("picker-column"),Te=Symbol(ge);var Ke=D({name:ge,props:{value:Y,fields:_(Object),options:$(),readonly:Boolean,allowHtml:Boolean,optionHeight:_(Number),swipeDuration:_(Y),visibleOptionNum:_(Y)},emits:["change","clickOption"],setup(e,{emit:n,slots:t}){let i,l,b,u,v;const r=B(),T=B(),h=B(0),g=B(0),S=Oe(),m=()=>e.options.length,x=()=>e.optionHeight*(+e.visibleOptionNum-1)/2,C=s=>{const f=Z(e.options,s),a=-f*e.optionHeight,o=()=>{const d=e.options[f][e.fields.value];d!==e.value&&n("change",d)};i&&a!==h.value?v=o:o(),h.value=a},k=()=>e.readonly||!e.options.length,H=s=>{i||k()||(v=null,g.value=se,C(s),n("clickOption",e.options[s]))},A=s=>X(Math.round(-s/e.optionHeight),0,m()-1),L=(s,f)=>{const a=Math.abs(s/f);s=h.value+a/.003*(s<0?-1:1);const o=A(s);g.value=+e.swipeDuration,C(o)},N=()=>{i=!1,g.value=0,v&&(v(),v=null)},U=s=>{if(!k()){if(S.start(s),i){const f=Fe(T.value);h.value=Math.min(0,f-x())}g.value=0,l=h.value,b=Date.now(),u=l,v=null}},W=s=>{if(k())return;S.move(s),S.isVertical()&&(i=!0,ue(s,!0)),h.value=X(l+S.deltaY.value,-(m()*e.optionHeight),e.optionHeight);const f=Date.now();f-b>re&&(b=f,u=h.value)},R=()=>{if(k())return;const s=h.value-u,f=Date.now()-b;if(f<re&&Math.abs(s)>$e){L(s,f);return}const o=A(h.value);g.value=se,C(o),setTimeout(()=>{i=!1},0)},V=()=>{const s={height:`${e.optionHeight}px`};return e.options.map((f,a)=>{const o=f[e.fields.text],{disabled:d}=f,I=f[e.fields.value],w={role:"button",style:s,tabindex:d?-1:0,class:[j("item",{disabled:d,selected:I===e.value}),f.className],onClick:()=>H(a)},Be={class:"van-ellipsis",[e.allowHtml?"innerHTML":"textContent"]:o};return c("li",w,[t.option?t.option(f,a):c("div",Be,null)])})};return ce(Te),te({stopMomentum:N}),He(()=>{const s=e.options.findIndex(o=>o[e.fields.value]===e.value),a=-Z(e.options,s)*e.optionHeight;h.value=a}),ne("touchmove",W,{target:r}),()=>c("div",{ref:r,class:j(),onTouchstartPassive:U,onTouchend:R,onTouchcancel:R},[c("ul",{ref:T,style:{transform:`translate3d(0, ${h.value+x()}px, 0)`,transitionDuration:`${g.value}ms`,transitionProperty:g.value?"all":"none"},class:j("wrapper"),onTransitionend:N},[V()])])}});const[Ue]=M("picker-toolbar"),K={title:String,cancelButtonText:String,confirmButtonText:String},Ce=["cancel","confirm","title","toolbar"],We=Object.keys(K);var ke=D({name:Ue,props:K,emits:["confirm","cancel"],setup(e,{emit:n,slots:t}){const i=()=>{if(t.title)return t.title();if(e.title)return c("div",{class:[y("title"),"van-ellipsis"]},[e.title])},l=()=>n("cancel"),b=()=>n("confirm"),u=()=>{const r=e.cancelButtonText||le("cancel");return c("button",{type:"button",class:[y("cancel"),ae],onClick:l},[t.cancel?t.cancel():r])},v=()=>{const r=e.confirmButtonText||le("confirm");return c("button",{type:"button",class:[y("confirm"),ae],onClick:b},[t.confirm?t.confirm():r])};return()=>c("div",{class:y("toolbar")},[t.toolbar?t.toolbar():[u(),i(),v()]])}});const[Se,Q]=M("picker-group"),xe=Symbol(Se),Ye=P({tabs:$(),nextStepText:String},K);D({name:Se,props:Ye,emits:["confirm","cancel"],setup(e,{emit:n,slots:t}){const i=B(0),{children:l,linkChildren:b}=de(xe);b();const u=()=>i.value<e.tabs.length-1&&e.nextStepText,v=()=>{u()?i.value++:n("confirm",l.map(T=>T.confirm()))},r=()=>n("cancel");return()=>{var T;const h=(T=t.default)==null?void 0:T.call(t),g=u()?e.nextStepText:e.confirmButtonText;return c("div",{class:Q()},[c(ke,{title:e.title,cancelButtonText:e.cancelButtonText,confirmButtonText:g,onConfirm:v,onCancel:r},q(t,Ce)),c(Le,{active:i.value,"onUpdate:active":S=>i.value=S,class:Q("tabs"),shrink:!0,animated:!0,lazyRender:!1},{default:()=>[e.tabs.map((S,m)=>c(Ne,{title:S,titleClass:Q("tab-title")},{default:()=>[h==null?void 0:h[m]]}))]})])}}});const ze=P({loading:Boolean,readonly:Boolean,allowHtml:Boolean,optionHeight:G(44),showToolbar:me,swipeDuration:G(1e3),visibleOptionNum:G(6)},K),je=P({},ze,{columns:$(),modelValue:$(),toolbarPosition:fe("top"),columnsFieldNames:Object});var Qe=D({name:Ve,props:je,emits:["confirm","cancel","change","clickOption","update:modelValue"],setup(e,{emit:n,slots:t}){const i=B(),l=B(e.modelValue.slice(0)),{parent:b}=ce(xe),{children:u,linkChildren:v}=de(Te);v();const r=O(()=>Ge(e.columnsFieldNames)),T=O(()=>pe(e.optionHeight)),h=O(()=>Ie(e.columns,r.value)),g=O(()=>{const{columns:a}=e;switch(h.value){case"multiple":return a;case"cascade":return _e(a,r.value,l);default:return[a]}}),S=O(()=>g.value.some(a=>a.length)),m=O(()=>g.value.map((a,o)=>ee(a,l.value[o],r.value))),x=O(()=>g.value.map((a,o)=>a.findIndex(d=>d[r.value.value]===l.value[o]))),C=(a,o)=>{if(l.value[a]!==o){const d=l.value.slice(0);d[a]=o,l.value=d}},k=()=>({selectedValues:l.value.slice(0),selectedOptions:m.value,selectedIndexes:x.value}),H=(a,o)=>{C(o,a),h.value==="cascade"&&l.value.forEach((d,I)=>{const w=g.value[I];ie(w,d,r.value)||C(I,w.length?w[0][r.value.value]:void 0)}),J(()=>{n("change",P({columnIndex:o},k()))})},A=(a,o)=>n("clickOption",P({columnIndex:o,currentOption:a},k())),L=()=>{u.forEach(o=>o.stopMomentum());const a=k();return J(()=>{n("confirm",a)}),a},N=()=>n("cancel",k()),U=()=>g.value.map((a,o)=>c(Ke,{value:l.value[o],fields:r.value,options:a,readonly:e.readonly,allowHtml:e.allowHtml,optionHeight:T.value,swipeDuration:e.swipeDuration,visibleOptionNum:e.visibleOptionNum,onChange:d=>H(d,o),onClickOption:d=>A(d,o)},{option:t.option})),W=a=>{if(S.value){const o={height:`${T.value}px`},d={backgroundSize:`100% ${(a-T.value)/2}px`};return[c("div",{class:y("mask"),style:d},null),c("div",{class:[we,y("frame")],style:o},null)]}},R=()=>{const a=T.value*+e.visibleOptionNum,o={height:`${a}px`};return c("div",{ref:i,class:y("columns"),style:o},[U(),W(a)])},V=()=>{if(e.showToolbar&&!b)return c(ke,Pe(q(e,We),{onConfirm:L,onCancel:N}),q(t,Ce))};E(g,a=>{a.forEach((o,d)=>{o.length&&!ie(o,l.value[d],r.value)&&C(d,ve(o)[r.value.value])})},{immediate:!0});let s;return E(()=>e.modelValue,a=>{!z(a,l.value)&&!z(a,s)&&(l.value=a.slice(0),s=a.slice(0))},{deep:!0}),E(l,a=>{z(a,e.modelValue)||(s=a.slice(0),n("update:modelValue",s))},{immediate:!0}),ne("touchmove",ue,{target:i}),te({confirm:L,getSelectedOptions:()=>m.value}),()=>{var a,o;return c("div",{class:y()},[e.toolbarPosition==="top"?V():null,e.loading?c(he,{class:y("loading")},null):null,(a=t["columns-top"])==null?void 0:a.call(t),R(),(o=t["columns-bottom"])==null?void 0:o.call(t),e.toolbarPosition==="bottom"?V():null])}}});const nt=be(Qe),[Xe,p,qe]=M("list"),Je={error:Boolean,offset:G(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:fe("down"),loadingText:String,finishedText:String,immediateCheck:me};var Ze=D({name:Xe,props:Je,emits:["load","update:error","update:loading"],setup(e,{emit:n,slots:t}){const i=B(e.loading),l=B(),b=B(),u=Re(),v=Ee(l),r=()=>{J(()=>{if(i.value||e.finished||e.disabled||e.error||(u==null?void 0:u.value)===!1)return;const{direction:m}=e,x=+e.offset,C=oe(v);if(!C.height||Ae(l))return;let k=!1;const H=oe(b);m==="up"?k=C.top-H.top<=x:k=H.bottom-C.bottom<=x,k&&(i.value=!0,n("update:loading",!0),n("load"))})},T=()=>{if(e.finished){const m=t.finished?t.finished():e.finishedText;if(m)return c("div",{class:p("finished-text")},[m])}},h=()=>{n("update:error",!1),r()},g=()=>{if(e.error){const m=t.error?t.error():e.errorText;if(m)return c("div",{role:"button",class:p("error-text"),tabindex:0,onClick:h},[m])}},S=()=>{if(i.value&&!e.finished&&!e.disabled)return c("div",{class:p("loading")},[t.loading?t.loading():c(he,{class:p("loading-icon")},{default:()=>[e.loadingText||qe("loading")]})])};return E(()=>[e.loading,e.finished,e.error],r),u&&E(u,m=>{m&&r()}),Me(()=>{i.value=e.loading}),De(()=>{e.immediateCheck&&r()}),te({check:r}),ne("scroll",r,{target:v,passive:!0}),()=>{var m;const x=(m=t.default)==null?void 0:m.call(t),C=c("div",{ref:b,class:p("placeholder")},null);return c("div",{ref:l,role:"feed",class:p(),"aria-busy":i.value},[e.direction==="down"?x:C,S(),T(),g(),e.direction==="up"?x:C])}}});const at=be(Ze),F={"Acoustic Grand Piano":"大钢琴","Bright Acoustic Piano":"明亮的钢琴","Electric Grand Piano":"电钢琴","Rhodes Piano":"柔和的电钢琴","Chorused Piano":"加合唱效果的电钢琴",Harpsichord:"羽管键琴",Clavichord:"科拉维科特琴",Celesta:"钢片琴",Glockenspiel:"钢片琴","Music box":"八音盒",Vibraphone:"颤音琴",Marimba:"马林巴",Xylophone:"木琴","Tubular Bells":"管钟",Dulcimer:"大扬琴","Hammond Organ":"击杆风琴","Percussive Organ":"打击式风琴","Rock Organ":"摇滚风琴","Church Organ":"教堂风琴","Reed Organ":"簧管风琴",Accordian:"手风琴",Harmonica:"口琴","Tango Accordian":"探戈手风琴","Acoustic Guitar":"钢弦吉他","Electric Guitar":"闷音电吉他","Overdriven Guitar":"加驱动效果的电吉他","Distortion Guitar":"加失真效果的电吉他","Guitar Harmonics":"吉他和音","Acoustic Bass":"大贝司","Electric Bass":"电贝司","Fretless Bass":"无品贝司","Slap Bass":"掌击","Synth Bass":"电子合成",Violin:"小提琴",Viola:"中提琴",Cello:"大提琴",Contrabass:"低音大提琴","Tremolo Strings":"弦乐群颤音音色","Pizzicato Strings":"弦乐群拨弦音色","Orchestral Harp":"竖琴",Timpani:"定音鼓","String Ensemble":"弦乐合奏音色","Synth Strings":"合成弦乐合奏音色","Choir Aahs":"人声合唱","Voice Oohs":"人声","Synth Voice":"合成人声","Orchestra Hit":"管弦乐敲击齐奏",Trumpet:"小号",Trombone:"长号",Tuba:"大号","Muted Trumpet":"加弱音器小号","French Horn":"法国号","Brass Section":"铜管组","Synth Brass":"合成铜管音色","Soprano Sax":"高音萨克斯管","Alto Sax":"中音萨克斯管","Tenor Sax":"次中音萨克斯管","Baritone Sax":"低音萨克斯管",Oboe:"双簧管","English Horn":"英国管",Bassoon:"巴松",Clarinet:"单簧管","Soprano Saxophone":"高音萨克斯管","Alto Saxophone":"中音萨克斯管","Tenor Saxophone":"次中音萨克斯管","Baritone Saxophone":"低音萨克斯管",Piccolo:"短笛",Flute:"长笛",Recorder:"竖笛","Soprano Recorder":"高音竖笛","Pan Flute":"排箫","Bottle Blow":"瓶木管",Whistle:"口哨声",Ocarina:"陶笛",Lead:"合成主音","Lead lead":"合成主音","Pad age":"合成音色",Pad:"合成音色",FX:"合成效果 科幻",Sitar:"西塔尔",Banjo:"班卓琴",Shamisen:"三昧线",Koto:"十三弦筝",Kalimba:"卡林巴",Bagpipe:"风笛",Fiddle:"民族提琴",Shanai:"山奈","Tinkle Bell":"叮当铃",Agogos:"阿戈戈铃","Steel Drums":"钢鼓","Taiko Drum":"太鼓","Melodic Toms":"嗵嗵鼓","Synth Drums":"合成鼓","Reverse Cymbals":"反向镲","Agogo Bells":"阿戈戈铃","Taiko Drums":"太鼓",Bongos:"邦戈鼓","Bongo Bell":"邦戈铃",Congas:"康加鼓",Guiro:"刮壶","Guitar Fret Noise":"吉他换把杂音","Breath Noise":"呼吸声",Seashore:"海浪声","Bird Tweet":"鸟鸣","Telephone Ring":"电话铃",Helicopter:"直升机",Applause:"鼓掌声",Gunshot:"枪声","Acoustic Bass Drum":"大鼓","Bass Drum":"大鼓","Side Drum":"小鼓鼓边","Acoustic Snare":"小鼓","Hand Claps":"拍手","Electric Snare":"小鼓","Low Floor Tom":"低音嗵鼓","Closed Hi-Hat":"闭合踩镲","High Floor Tom":"高音落地嗵鼓","Pedal Hi-Hat":"脚踏踩镲","Low Tom":"低音嗵鼓","Open Hi-Hat":"开音踩镲","Low-Mid Tom":"中低音嗵鼓","Hi Mid Tom":"高音鼓","Crash Cymbals":"对镲","High Tom":"高音嗵鼓","Ride Cymbals":"叮叮镲","Chinese Cymbals":"中国镲","Ride Bell":"圆铃",Tambourine:"铃鼓","Splash Cymbal":"溅音镲",Cowbell:"牛铃","Crash Cymbal":"强音钹","Vibra-Slap":"颤音器","Ride Cymbal":"打点钹","Hi Bongo":"高音邦戈鼓","Low Bongo":"低音邦戈鼓","Mute Hi Conga":"弱音高音康加鼓","Open Hi Conga":"强音高音康加鼓","Low Conga":"低音康加鼓","High Timbale":"高音天巴鼓","Low Timbale":"低音天巴鼓","High Agogo":"高音阿戈戈铃","Low Agogo":"低音阿戈戈铃",Cabasa:"卡巴萨",Maracas:"沙锤","Short Whistle":"短口哨","Long Whistle":"长口哨","Short Guiro":"短刮壶","Long Guiro":"长刮壶",Claves:"响棒","Hi Wood Block":"高音木鱼","Low Wood Block":"低音木鱼","Mute Triangle":"弱音三角铁","Open Triangle":"强音三角铁","Drum Set":"架子鼓","Hulusi flute":"葫芦丝",Melodica:"口风琴",Nai:"口风琴","Snare Drum":"小军鼓",Cymbal:"镲",Cymbals:"镲","Horn in F":"圆号",Triangle:"三角铁",Vibrato:"颤音琴","Suspend Cymbals":"吊镲","Suspended Cymbals":"吊镲","Tom-Toms":"嗵嗵鼓",Bell:"铃铛",Bells:"铃铛","Alto Clarinet":"中音单簧管","Bass Clarinet":"低音单簧管",Cornet:"短号",Euphonium:"上低音号","crash cymbals":"对镲",Castanets:"响板",Shaker:"沙锤","Mark tree":"音树",Chimes:"管钟","Mark Tree":"音树","Tom-toms":"嗵嗵鼓","Hi-Hat":"踩镲","Sleigh Bells":"雪橇铃",Flexatone:"弹音器","Brake drum":"闸鼓",Gong:"锣","concert tom":"音乐会嗵嗵鼓","brake drum":"车轮鼓","finger cymbal":"指钹","ride cymbal":"叮叮镲","Concert Toms":"音乐会嗵嗵鼓",Vibraslap:"弹音器","Wood Blocks":"木鱼","Temple Blocks":"木鱼","Wood Block":"木鱼","Field Drum":"军鼓","Quad-Toms":"筒鼓",Quads:"筒鼓","Drums set":"架子鼓","High Bongo":"邦戈",Timbales:"天巴鼓"},ot=(e="")=>{if(e=e.toLocaleLowerCase().replace(/ /g,""),!e)return"";for(let n in F)if(n.toLocaleLowerCase().replace(/ /g,"").includes(e))return F[n];for(let n in F){const t=n.toLocaleLowerCase().replace(/ /g,"");if(e.includes(t))return F[n]}return""},lt=(e,n)=>{let t=0;switch(e){case"长笛":t=1;break;case"单簧管":t=2;break;case"中音单簧管":t=3;break;case"低音单簧管":t=4;break;case"高音萨克斯风":t=5;break;case"中音萨克斯风":t=6;break;case"次中音萨克斯风":t=7;break;case"低音萨克斯风":t=8;break;case"小号":t=9;break;case"长号":t=10;break;case"圆号":t=11;break;case"大号":t=12;break;case"上低音号":t=13;break;default:t=n+14;break}return t};export{at as L,nt as P,ot as g,lt as s};
|