UNPKG

reka-ui

Version:

Vue port for Radix UI Primitives.

1 lines 3.03 kB
{"version":3,"file":"SelectValue.cjs","sources":["../../src/Select/SelectValue.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue } from '@/shared/types'\n\nexport interface SelectValueProps extends PrimitiveProps {\n /** The content that will be rendered inside the `SelectValue` when no `value` or `defaultValue` is set. */\n placeholder?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted } from 'vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nconst props = withDefaults(defineProps<SelectValueProps>(), {\n as: 'span',\n placeholder: '',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst rootContext = injectSelectRootContext()\n\nonMounted(() => {\n rootContext.valueElement = currentElement\n})\n\nconst selectedLabel = computed(() => {\n let list: string[] = []\n const options = Array.from(rootContext.optionsSet.value)\n const getOption = (value?: AcceptableValue) => options.find(option => option.value === value)\n if (Array.isArray(rootContext.modelValue.value)) {\n list = rootContext.modelValue.value.map(value => getOption(value)?.textContent ?? '')\n }\n else {\n list = [getOption(rootContext.modelValue.value)?.textContent ?? '']\n }\n return list.filter(Boolean)\n})\n\nconst slotText = computed(() => {\n return selectedLabel.value.length ? selectedLabel.value.join(', ') : props.placeholder\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :style=\"{ pointerEvents: 'none' }\"\n :data-placeholder=\"selectedLabel.length ? undefined : props.placeholder\"\n >\n <slot\n :selected-label=\"selectedLabel\"\n :model-value=\"rootContext.modelValue.value\"\n >\n {{ slotText }}\n </slot>\n </Primitive>\n</template>\n"],"names":["useForwardExpose","injectSelectRootContext","onMounted","computed"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIA,wCAAiB,EAAA;AAExD,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,YAAe,GAAA,cAAA;AAAA,KAC5B,CAAA;AAED,IAAM,MAAA,aAAA,GAAgBC,aAAS,MAAM;AACnC,MAAA,IAAI,OAAiB,EAAC;AACtB,MAAA,MAAM,OAAU,GAAA,KAAA,CAAM,IAAK,CAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AACvD,MAAM,MAAA,SAAA,GAAY,CAAC,KAA4B,KAAA,OAAA,CAAQ,KAAK,CAAU,MAAA,KAAA,MAAA,CAAO,UAAU,KAAK,CAAA;AAC5F,MAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,WAAY,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AAC/C,QAAO,IAAA,GAAA,WAAA,CAAY,WAAW,KAAM,CAAA,GAAA,CAAI,WAAS,SAAU,CAAA,KAAK,CAAG,EAAA,WAAA,IAAe,EAAE,CAAA;AAAA,OAEjF,MAAA;AACH,QAAA,IAAA,GAAO,CAAC,SAAU,CAAA,WAAA,CAAY,WAAW,KAAK,CAAA,EAAG,eAAe,EAAE,CAAA;AAAA;AAEpE,MAAO,OAAA,IAAA,CAAK,OAAO,OAAO,CAAA;AAAA,KAC3B,CAAA;AAED,IAAM,MAAA,QAAA,GAAWA,aAAS,MAAM;AAC9B,MAAO,OAAA,aAAA,CAAc,MAAM,MAAS,GAAA,aAAA,CAAc,MAAM,IAAK,CAAA,IAAI,IAAI,KAAM,CAAA,WAAA;AAAA,KAC5E,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}