@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
1 lines • 1.69 kB
Source Map (JSON)
{"version":3,"file":"use-input-clearable.mjs","sources":["../../../../../../../packages/components/input/src/composables/use-input-clearable.ts"],"sourcesContent":["import { computed, getCurrentInstance } from 'vue'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport type { Ref } from 'vue'\nimport type { InputProps } from '../input'\n\nexport const useInputClearable = (\n props: InputProps,\n {\n hovering,\n focused,\n }: {\n hovering: Ref<boolean>\n focused: Ref<boolean>\n }\n) => {\n const { emit } = getCurrentInstance()!\n\n const clear = () => {\n if (props.disabled || props.loading) return\n\n emit(UPDATE_MODEL_EVENT, '')\n emit('change', '')\n emit('clear')\n emit('input', '')\n }\n\n const showClear = computed(\n () =>\n props.clearable &&\n !props.disabled &&\n !props.loading &&\n String(props.modelValue) &&\n (focused.value || hovering.value)\n )\n\n return {\n clear,\n showClear,\n }\n}\n"],"names":[],"mappings":";;;;AAKa,MAAA,iBAAA,GAAoB,CAC/B,KACA,EAAA;AAAA,EACE,QAAA;AAAA,EACA,OAAA;AACF,CAIG,KAAA;AACH,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,kBAAmB,EAAA,CAAA;AAEpC,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAI,IAAA,KAAA,CAAM,YAAY,KAAM,CAAA,OAAA;AAAS,MAAA,OAAA;AAErC,IAAA,IAAA,CAAK,oBAAoB,EAAE,CAAA,CAAA;AAC3B,IAAA,IAAA,CAAK,UAAU,EAAE,CAAA,CAAA;AACjB,IAAA,IAAA,CAAK,OAAO,CAAA,CAAA;AACZ,IAAA,IAAA,CAAK,SAAS,EAAE,CAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAA,MAAM,SAAY,GAAA,QAAA;AAAA,IAChB,MACE,KAAA,CAAM,SACN,IAAA,CAAC,MAAM,QACP,IAAA,CAAC,KAAM,CAAA,OAAA,IACP,OAAO,KAAM,CAAA,UAAU,CACtB,KAAA,OAAA,CAAQ,SAAS,QAAS,CAAA,KAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}