element-plus
Version:
A Component Library for Vue 3
1 lines • 6.15 kB
Source Map (JSON)
{"version":3,"file":"tooltip2.mjs","sources":["../../../../../../packages/components/tooltip/src/tooltip.vue"],"sourcesContent":["<template>\n <el-popper ref=\"popperRef\">\n <el-tooltip-trigger\n :disabled=\"disabled\"\n :trigger=\"trigger\"\n :virtual-ref=\"virtualRef\"\n :virtual-triggering=\"virtualTriggering\"\n >\n <slot v-if=\"$slots.default\" />\n </el-tooltip-trigger>\n <el-tooltip-content\n :aria-label=\"ariaLabel\"\n :boundaries-padding=\"boundariesPadding\"\n :content=\"content\"\n :disabled=\"disabled\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :fallback-placements=\"fallbackPlacements\"\n :hide-after=\"hideAfter\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :persistent=\"persistent\"\n :popper-class=\"popperClass\"\n :popper-style=\"popperStyle\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :pure=\"pure\"\n :raw-content=\"rawContent\"\n :reference-el=\"referenceEl\"\n :show-after=\"compatShowAfter\"\n :strategy=\"strategy\"\n :teleported=\"teleported\"\n :transition=\"transition\"\n :z-index=\"zIndex\"\n >\n <slot name=\"content\">\n <span v-if=\"rawContent\" v-html=\"content\"></span>\n <span v-else>{{ content }}</span>\n </slot>\n <el-popper-arrow v-if=\"compatShowArrow\" :arrow-offset=\"arrowOffset\" />\n </el-tooltip-content>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n ref,\n provide,\n toRef,\n readonly,\n unref,\n} from 'vue'\nimport {\n ElPopper,\n ElPopperArrow,\n usePopperArrowProps,\n} from '@element-plus/components/popper'\n\nimport { debugWarn, isBoolean, isUndefined } from '@element-plus/utils'\nimport {\n usePopperContainer,\n useId,\n createModelToggleComposable,\n useDelayedToggle,\n} from '@element-plus/hooks'\nimport ElTooltipContent from './content.vue'\nimport ElTooltipTrigger from './trigger.vue'\nimport {\n useTooltipContentProps,\n useTooltipTriggerProps,\n useTooltipProps,\n} from './tooltip'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\n\nconst { useModelToggleProps, useModelToggle, useModelToggleEmits } =\n createModelToggleComposable('visible' as const)\n\nexport default defineComponent({\n name: 'ElTooltip',\n components: {\n ElPopper,\n ElPopperArrow,\n ElTooltipContent,\n ElTooltipTrigger,\n },\n props: {\n ...useModelToggleProps,\n ...useTooltipContentProps,\n ...useTooltipTriggerProps,\n ...usePopperArrowProps,\n ...useTooltipProps,\n },\n emits: [...useModelToggleEmits, 'show', 'hide'],\n setup(props, { emit }) {\n usePopperContainer()\n const compatShowAfter = computed(() => {\n if (!isUndefined(props.openDelay)) {\n debugWarn(\n 'ElTooltip',\n 'open-delay is about to be deprecated in the next major version, please use `show-after` instead'\n )\n }\n return props.openDelay || (props.showAfter as number)\n })\n const compatShowArrow = computed(() => {\n if (!isUndefined(props.visibleArrow)) {\n debugWarn(\n 'ElTooltip',\n '`visible-arrow` is about to be deprecated in the next major version, please use `show-arrow` instead'\n )\n }\n return isBoolean(props.visibleArrow)\n ? props.visibleArrow\n : props.showArrow\n })\n\n const id = useId()\n const popperRef = ref<InstanceType<typeof ElPopper> | null>(null)\n\n const updatePopper = () => {\n const popperComponent = unref(popperRef)\n if (popperComponent) {\n popperComponent.popperInstanceRef?.update()\n }\n }\n const open = ref(false)\n\n const { show, hide } = useModelToggle({\n indicator: open,\n })\n\n const { onOpen, onClose } = useDelayedToggle({\n showAfter: compatShowAfter,\n hideAfter: toRef(props, 'hideAfter'),\n open: show,\n close: hide,\n })\n\n const controlled = computed(() => isBoolean(props.visible))\n\n provide(TOOLTIP_INJECTION_KEY, {\n controlled,\n id,\n open: readonly(open),\n trigger: toRef(props, 'trigger'),\n onOpen,\n onClose,\n onToggle: () => {\n if (unref(open)) {\n onClose()\n } else {\n onOpen()\n }\n },\n onShow: () => {\n emit('show')\n },\n onHide: () => {\n emit('hide')\n },\n updatePopper,\n })\n\n return {\n compatShowAfter,\n compatShowArrow,\n popperRef,\n open,\n hide,\n updatePopper,\n onOpen,\n onClose,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA4EA,MAAM,EAAE,qBAAqB,gBAAgB,wBAC3C,4BAA4B;AAE9B,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,OACF;AAAA,OACA;AAAA,OACA;AAAA,OACA;AAAA,OACA;AAAA;AAAA,EAEL,OAAO,CAAC,GAAG,qBAAqB,QAAQ;AAAA,EACxC,MAAM,OAAO,EAAE,QAAQ;AACrB;AACA,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,CAAC,YAAY,MAAM,YAAY;AACjC,kBACE,aACA;AAAA;AAGJ,aAAO,MAAM,aAAc,MAAM;AAAA;AAEnC,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,CAAC,YAAY,MAAM,eAAe;AACpC,kBACE,aACA;AAAA;AAGJ,aAAO,UAAU,MAAM,gBACnB,MAAM,eACN,MAAM;AAAA;AAGZ,UAAM,KAAK;AACX,UAAM,YAAY,IAA0C;AAE5D,UAAM,eAAe,MAAM;AACzB,YAAM;AACN,2BAAqB;AACnB;AAAmC;AAAA;AAGvC;AAEA,UAAM,iBAAiB;AAAe;AACzB;AAGb;AAA6C;AAChC,MACX,WAAW;AAAa,MACxB;AAAM,MACN;AAAO;AAGT;AAEA;AAA+B;AAC7B,MACA;AAAA,MACA;AAAe,MACf,eAAe;AAAO,MACtB;AAAA,MACA;AAAA,MACA;AACE;AACE;AAAA;AAEA;AAAA;AAAA;AAAA;AAIF;AAAK;AAAA;AAGL;AAAK;AAAA;AAEP;AAGF;AAAO;AACL,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;;;;;;AApKmB;AAAA;AANA,iBACT;AAAA,QACT,cAAW;AAAA,QACX;AAAkB;;;AAEO,eAA1B;;;SAEF,GA8BqB;AAAA;AA7BG;AACrB,QACA;AAAgB,QAChB;AAAU,QACV;AAAQ,QACR;AAAW,QACX;AAAA,QACA;AAAqB,QACrB;AAAgB,QAChB;AAAc,QACd;AAAY,QACZ;AAAc,QACd,gBAAc;AAAA,QACd,gBAAW;AAAA,QACX,gBAAc;AAAA,QACd;AAAU,QACV;AAAA,QACA,eAAY;AAAE,QACd;AAAY,QACZ,cAAU;AAAA,QACV;AAAY,QACZ;AAAY,QACZ,YAAS;AAAA;;;AAKH;AAFiB;;AAAE;;;;;AAGe;;;;;;;;;;;;;;"}