bettertend/frontend/dist/assets/FPSelect-j7n_x8eB.js

2 lines
3.0 KiB
JavaScript

import{_ as V,r as k,c as m,a as l,j as i,b as n,k as C,t as u,a3 as M,af as B,aR as F,g as o}from"./index-QAlcqU00.js";const N={class:"atlas-select-group"},L=["for"],T={key:0,class:"text-error-500 ml-1"},j={class:"relative"},w=["id","value","disabled"],z={value:"",disabled:""},P=["value"],q={key:1,class:"mt-1 text-sm text-error-600"},A={key:2,class:"mt-1 text-sm text-gray-500"},I={__name:"FPSelect",props:{modelValue:{type:[String,Number,null],default:null},label:{type:String,default:""},placeholder:{type:String,default:""},options:{type:Array,default:()=>[]},optionValue:{type:String,default:"value"},optionLabel:{type:String,default:"title"},variant:{type:String,default:"outlined",validator:t=>["outlined","filled","underlined"].includes(t)},size:{type:String,default:"md",validator:t=>["sm","md","lg"].includes(t)},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},errorMessage:{type:String,default:""},helpText:{type:String,default:""},rules:{type:Array,default:()=>[]}},emits:["update:modelValue","blur","focus","change"],setup(t,{emit:y}){const r=t,d=y,f=k(!1),g=m(()=>`atlas-select-${Math.random().toString(36).substr(2,9)}`),p=m(()=>{const e=["block w-full rounded transition-colors duration-200 appearance-none","focus:outline-none focus:ring-2 focus:ring-offset-0"],s={sm:["px-3 py-1.5 text-sm"],md:["px-3 py-2 text-sm"],lg:["px-4 py-3 text-base"]},a={outlined:["border",r.errorMessage?"border-error-300 focus:border-error-500 focus:ring-error-500":"border-gray-300 focus:border-primary-500 focus:ring-primary-500","bg-white"],filled:["border-0 bg-gray-100",r.errorMessage?"focus:ring-error-500":"focus:ring-primary-500"],underlined:["border-0 border-b-2 bg-transparent rounded-none",r.errorMessage?"border-error-300 focus:border-error-500":"border-gray-300 focus:border-primary-500"]},c=[];return r.disabled&&c.push("bg-gray-50","text-gray-500","cursor-not-allowed"),c.push("pr-10"),[...e,...s[r.size],...a[r.variant],...c].flat()}),b=e=>typeof e=="object"&&e!==null?e[r.optionValue]:e,v=e=>typeof e=="object"&&e!==null?e[r.optionLabel]:e,h=e=>{const s=e.target.value,a=s===""?null:isNaN(s)?s:Number(s);d("update:modelValue",a),d("change",a)},x=e=>{f.value=!0,d("focus",e)},S=e=>{f.value=!1,d("blur",e),r.rules.length>0};return(e,s)=>(o(),l("div",N,[t.label?(o(),l("label",{key:0,for:g.value,class:"block text-sm font-medium text-gray-700 mb-1"},[C(u(t.label)+" ",1),t.required?(o(),l("span",T,"*")):i("",!0)],8,L)):i("",!0),n("div",j,[n("select",M({id:g.value,value:t.modelValue,disabled:t.disabled,class:p.value},e.$attrs,{onChange:h,onBlur:S,onFocus:x}),[n("option",z,u(t.placeholder||"Select an option"),1),(o(!0),l(B,null,F(t.options,a=>(o(),l("option",{key:b(a),value:b(a)},u(v(a)),9,P))),128))],16,w),s[0]||(s[0]=n("div",{class:"absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none"},[n("span",{class:"text-gray-400 text-sm"},"▼")],-1))]),t.errorMessage?(o(),l("div",q,u(t.errorMessage),1)):i("",!0),t.helpText&&!t.errorMessage?(o(),l("div",A,u(t.helpText),1)):i("",!0)]))}},_=V(I,[["__scopeId","data-v-dfd92765"]]);export{_ as F};