mirror of
https://github.com/PhaseII-eAmusement-Network/PhaseWeb3-Vue.git
synced 2026-07-16 08:27:41 -05:00
2 lines
3.2 KiB
JavaScript
2 lines
3.2 KiB
JavaScript
import{c as u,e as w,H as E,B as m,b as V,r as y,o as F,I as q,k as i,C as g,J as R,A as h,F as C,l as D,t as M,K,D as N,n as U}from"./index.185e5f3b.js";const A={__name:"FormControlIcon",props:{icon:{type:String,default:null},h:{type:String,default:null}},setup(e){return(v,n)=>(u(),w(E,{path:e.icon,w:"w-10",h:e.h,class:"absolute top-0 left-0 z-10 pointer-events-none text-gray-500 dark:text-slate-400"},null,8,["path","h"]))}},H={class:"relative"},I=["id","name"],L=["value"],z=["id","name","maxlength","minlength","min","max","placeholder","required"],T=["id","name","maxlength","minlength","min","max","inputmode","autocomplete","required","placeholder","type","pattern"],j={__name:"FormControl",props:{name:{type:String,default:null},id:{type:String,default:null},autocomplete:{type:String,default:null},maxlength:{type:Number,default:null},minlength:{type:Number,default:null},max:{type:String,default:null},min:{type:String,default:null},placeholder:{type:String,default:null},inputmode:{type:String,default:null},icon:{type:String,default:null},options:{type:Array,default:null},type:{type:String,default:"text"},pattern:{type:String,default:null},modelValue:{type:[String,Number,Boolean,Array,Object],default:""},required:Boolean,borderless:Boolean,transparent:Boolean,ctrlKFocus:Boolean},emits:["update:modelValue","setRef"],setup(e,{emit:v}){const n=e,r=v,o=m({get:()=>n.modelValue,set:a=>{r("update:modelValue",a)}}),c=m(()=>{const a=["px-3 py-2 max-w-full focus:ring focus:outline-none border-blue-700 dark:border-blue-900 rounded w-full","dark:placeholder-gray-400",d.value==="textarea"?"h-24":"h-12",n.borderless?"border-0":"border",n.transparent?"bg-transparent":"bg-white dark:bg-slate-800"];return n.icon&&a.push("pl-10"),a}),d=m(()=>n.options?"select":n.type),B=m(()=>n.type==="textarea"?"h-full":"h-12"),f=V(),p=y(null),x=y(null),s=y(null);if(F(()=>{p.value?r("setRef",p.value):x.value?r("setRef",x.value):r("setRef",s.value)}),n.ctrlKFocus){const a=l=>{l.ctrlKey&&l.key==="k"?(l.preventDefault(),s.value.focus()):l.key==="Escape"&&s.value.blur()};F(()=>{f.isFieldFocusRegistered||(window.addEventListener("keydown",a),f.isFieldFocusRegistered=!0)}),q(()=>{window.removeEventListener("keydown",a),f.isFieldFocusRegistered=!1})}return(a,l)=>(u(),i("div",H,[d.value==="select"?g((u(),i("select",{key:0,id:e.id,"onUpdate:modelValue":l[0]||(l[0]=t=>o.value=t),name:e.name,class:h(c.value)},[(u(!0),i(C,null,D(e.options,t=>{var b,k,S;return u(),i("option",{key:(b=t.id)!=null?b:t,value:(k=t.id)!=null?k:t},M((S=t.label)!=null?S:t),9,L)}),128))],10,I)),[[R,o.value]]):d.value==="textarea"?g((u(),i("textarea",{key:1,id:e.id,"onUpdate:modelValue":l[1]||(l[1]=t=>o.value=t),class:h(c.value),name:e.name,maxlength:e.maxlength,minlength:e.minlength,min:e.min,max:e.max,placeholder:e.placeholder,required:e.required},null,10,z)),[[K,o.value]]):g((u(),i("input",{key:2,id:e.id,ref_key:"inputEl",ref:s,"onUpdate:modelValue":l[2]||(l[2]=t=>o.value=t),name:e.name,maxlength:e.maxlength,minlength:e.minlength,min:e.min,max:e.max,inputmode:e.inputmode,autocomplete:e.autocomplete,required:e.required,placeholder:e.placeholder,type:d.value,class:h(c.value),pattern:e.pattern},null,10,T)),[[N,o.value]]),e.icon?(u(),w(A,{key:3,icon:e.icon,h:B.value},null,8,["icon","h"])):U("",!0)]))}};export{j as _};
|