UNPKG

@aotearoan/neon

Version:

Neon is a lightweight design library of Vue 3 components with minimal dependencies.

3 lines (2 loc) 2.03 kB
"use strict";const o=require("vue"),b=require("../button/NeonButton.vue.cjs.js"),v=require("../../presentation/dropdown/NeonDropdown.vue.cjs.js"),p=require("../field-group/NeonFieldGroup.vue.cjs.js"),C=require("../input/NeonInput.vue.cjs.js"),y=require("../../layout/stack/NeonStack.vue.cjs.js"),c=require("../../../utils/common/number/NeonNumberUtils.cjs.js"),g=require("../../../model/common/size/NeonSize.cjs.js"),q=require("../../../model/common/color/NeonFunctionalColor.cjs.js"),V=o.defineComponent({name:"NeonSearchFilter",components:{NeonButton:b,NeonDropdown:v,NeonFieldGroup:p,NeonInput:C,NeonStack:y},props:{modelValue:{type:String,required:!0},searchCount:{type:Number,required:!0},label:{type:String,default:"Search"},placeholder:{type:String,default:"Search"},color:{type:String,default:()=>q.NeonFunctionalColor.HighContrast},size:{type:String,default:()=>g.NeonSize.Small},disabled:{type:Boolean,default:!1},editTitle:{type:String,default:"Edit"},clearTitle:{type:String,default:"Clear"},closeLabel:{type:String,default:"Close"},showLabel:{type:String,default:"Show {count} items | Show {count} item | Show {count} items"}},emits:["close","onSearch","update:modelValue"],setup(e,{emit:a}){const u=o.ref(!1),t=o.ref(e.modelValue),n=o.computed(()=>e.modelValue!==t.value),i=l=>{t.value=l,a("update:modelValue",t.value),r()},s=()=>{t.value=e.modelValue,u.value=!0},r=()=>{t.value=e.modelValue,u.value=!1},d=l=>{t.value=l,a("onSearch",t.value)},m=()=>{t.value!==""&&(t.value="",a("update:modelValue",t.value))},S=o.computed(()=>e.modelValue!==""?e.modelValue:e.label),h=o.computed(()=>{const f=e.showLabel.split("|").map(N=>N.trim())[e.searchCount>1?2:e.searchCount];return n.value?f.replace("{count}",c.NeonNumberUtils.formatNumber(e.searchCount)):e.closeLabel});return{open:u,search:t,computedLabel:S,computedShowLabel:h,isDirty:n,onOpen:s,onClose:r,onSearchChange:d,onSearchClear:m,updateSearch:i,formatNumber:c.NeonNumberUtils.formatNumber}}});module.exports=V; //# sourceMappingURL=NeonSearchFilter.cjs.js.map