vuetify
Version:
Vue Material Component Framework
1 lines • 6.46 kB
Source Map (JSON)
{"version":3,"file":"VTooltip.mjs","names":["VOverlay","useProxiedModel","useScopeId","forwardRefs","computed","mergeProps","ref","genericComponent","getUid","omit","useRender","filterVOverlayProps","makeVOverlayProps","VTooltip","name","props","id","String","text","closeOnBack","location","locationStrategy","minWidth","offset","openOnClick","openOnHover","origin","scrim","scrollStrategy","transition","emits","value","setup","slots","isActive","scopeId","uid","overlay","split","length","activatorProps","overlayProps","activator","default","args"],"sources":["../../../src/components/VTooltip/VTooltip.tsx"],"sourcesContent":["// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, getUid, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\n\nexport const VTooltip = genericComponent<OverlaySlots>()({\n name: 'VTooltip',\n\n props: {\n id: String,\n text: String,\n\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end' as const,\n locationStrategy: 'connected' as const,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto' as const,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: false,\n }), [\n 'absolute',\n 'persistent',\n 'eager',\n ]),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-describedby': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-tooltip',\n ]}\n id={ id.value }\n { ...overlayProps }\n v-model={ isActive.value }\n transition={ transition.value }\n absolute\n location={ location.value }\n origin={ origin.value }\n persistent\n role=\"tooltip\"\n eager\n activatorProps={ activatorProps.value }\n _disableGlobalStack\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VTooltip = InstanceType<typeof VTooltip>\n"],"mappings":"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"}