vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 1.23 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","sources":["../../../components/dropdown/hooks.ts"],"sourcesContent":["import { nextTick, onMounted, ref, watch } from 'vue'\n\nimport type { Ref } from 'vue'\n\nexport function useLabel(\n rawLabel: Ref<string | number | null>,\n element: Ref<HTMLElement | null | undefined>,\n) {\n const label = ref(rawLabel.value)\n\n function setLabel(value: string | number | null) {\n if (element.value) {\n label.value = value ?? element.value.textContent?.trim() ?? null\n } else {\n label.value = value\n }\n }\n\n watch(rawLabel, value => {\n setLabel(value)\n })\n\n onMounted(() => {\n nextTick(() => {\n setLabel(rawLabel.value)\n })\n })\n\n return label\n}\n"],"names":["useLabel","rawLabel","element","label","ref","setLabel","value","_a","watch","onMounted","nextTick"],"mappings":";AAIgB,SAAAA,EACdC,GACAC,GACA;AACM,QAAAC,IAAQC,EAAIH,EAAS,KAAK;AAEhC,WAASI,EAASC,GAA+B;;AAC/C,IAAIJ,EAAQ,QACVC,EAAM,QAAQG,OAASC,IAAAL,EAAQ,MAAM,gBAAd,gBAAAK,EAA2B,WAAU,OAE5DJ,EAAM,QAAQG;AAAA,EAChB;AAGF,SAAAE,EAAMP,GAAU,CAASK,MAAA;AACvB,IAAAD,EAASC,CAAK;AAAA,EAAA,CACf,GAEDG,EAAU,MAAM;AACd,IAAAC,EAAS,MAAM;AACb,MAAAL,EAASJ,EAAS,KAAK;AAAA,IAAA,CACxB;AAAA,EAAA,CACF,GAEME;AACT;"}