{"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;;;;"}