feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { PopoverEmits, PopoverInstance, PopoverProps, PopoverPropsPublic, popoverEmits, popoverProps, popoverPropsDefaults } from "./src/popover.js";
import { _default } from "./src/popover.vue.js";
import { _default as _default$1 } from "./src/directive.js";
//#region ../../packages/components/popover/index.d.ts
declare const ElPopoverDirective: SFCWithInstall<typeof _default$1>;
declare const ElPopover: SFCWithInstall<typeof _default> & {
directive: typeof ElPopoverDirective;
};
//#endregion
export { ElPopover, ElPopover as default, ElPopoverDirective, PopoverEmits, PopoverInstance, PopoverProps, PopoverPropsPublic, popoverEmits, popoverProps, popoverPropsDefaults };
+12
View File
@@ -0,0 +1,12 @@
import { withInstall, withInstallDirective } from "../../utils/vue/install.mjs";
import { popoverEmits, popoverProps, popoverPropsDefaults } from "./src/popover.mjs";
import popover_default from "./src/popover2.mjs";
import directive_default, { VPopover } from "./src/directive.mjs";
//#region ../../packages/components/popover/index.ts
const ElPopoverDirective = withInstallDirective(directive_default, VPopover);
const ElPopover = withInstall(popover_default, { directive: ElPopoverDirective });
//#endregion
export { ElPopover, ElPopover as default, ElPopoverDirective, popoverEmits, popoverProps, popoverPropsDefaults };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["PopoverDirective","Popover"],"sources":["../../../../../packages/components/popover/index.ts"],"sourcesContent":["import { withInstall, withInstallDirective } from '@element-plus/utils'\nimport Popover from './src/popover.vue'\nimport PopoverDirective, { VPopover } from './src/directive'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElPopoverDirective: SFCWithInstall<typeof PopoverDirective> =\n withInstallDirective(PopoverDirective, VPopover)\n\nexport const ElPopover: SFCWithInstall<typeof Popover> & {\n directive: typeof ElPopoverDirective\n} = withInstall(Popover, {\n directive: ElPopoverDirective,\n})\nexport default ElPopover\n\nexport * from './src/popover'\n"],"mappings":";;;;;;AAMA,MAAa,qBACX,qBAAqBA,mBAAkB,SAAS;AAElD,MAAa,YAET,YAAYC,iBAAS,EACvB,WAAW,oBACZ,CAAC"}
@@ -0,0 +1,6 @@
import { ObjectDirective } from "vue";
//#region ../../packages/components/popover/src/directive.d.ts
declare const _default: ObjectDirective;
//#endregion
export { _default };
@@ -0,0 +1,18 @@
//#region ../../packages/components/popover/src/directive.ts
const attachEvents = (el, binding) => {
const popover = (binding.arg || binding.value)?.popperRef;
if (popover) popover.triggerRef = el;
};
var directive_default = {
mounted(el, binding) {
attachEvents(el, binding);
},
updated(el, binding) {
attachEvents(el, binding);
}
};
const VPopover = "popover";
//#endregion
export { VPopover, directive_default as default };
//# sourceMappingURL=directive.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"directive.mjs","names":[],"sources":["../../../../../../packages/components/popover/src/directive.ts"],"sourcesContent":["import type { DirectiveBinding, ObjectDirective } from 'vue'\nimport type { PopoverInstance } from './popover'\n\nconst attachEvents = (el: HTMLElement, binding: DirectiveBinding) => {\n const popperComponent: PopoverInstance = binding.arg || binding.value\n const popover = popperComponent?.popperRef\n if (popover) {\n popover.triggerRef = el\n }\n}\n\nexport default {\n mounted(el, binding) {\n attachEvents(el, binding)\n },\n updated(el, binding) {\n attachEvents(el, binding)\n },\n} as ObjectDirective\n\nexport const VPopover = 'popover'\n"],"mappings":";AAGA,MAAM,gBAAgB,IAAiB,YAA8B;CAEnE,MAAM,WADmC,QAAQ,OAAO,QAAQ,QAC/B;AACjC,KAAI,QACF,SAAQ,aAAa;;AAIzB,wBAAe;CACb,QAAQ,IAAI,SAAS;AACnB,eAAa,IAAI,QAAQ;;CAE3B,QAAQ,IAAI,SAAS;AACnB,eAAa,IAAI,QAAQ;;CAE5B;AAED,MAAa,WAAW"}
@@ -0,0 +1,307 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import { Arrayable } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import { TooltipTriggerType, UseTooltipTriggerProps } from "../../tooltip/src/trigger.js";
import { ElTooltipContentProps } from "../../tooltip/src/content.js";
import "../../tooltip/index.js";
import { _default } from "./popover.vue.js";
import { Placement as Placement$1 } from "../../popper/index.js";
import * as vue from "vue";
import { ExtractPublicPropTypes, PropType } from "vue";
import { Options } from "@popperjs/core";
//#region ../../packages/components/popover/src/popover.d.ts
interface PopoverProps {
/**
* @description how the popover is triggered, not valid in controlled mode
*/
trigger?: UseTooltipTriggerProps['trigger'];
/**
* @description When you click the mouse to focus on the trigger element, you can define a set of keyboard codes to control the display of popover through the keyboard, not valid in controlled mode
*/
triggerKeys?: UseTooltipTriggerProps['triggerKeys'];
/**
* @description popover placement
*/
placement?: Placement$1;
/**
* @description whether Popover is disabled
*/
disabled?: UseTooltipTriggerProps['disabled'];
/**
* @description whether popover is visible
*/
visible?: ElTooltipContentProps['visible'];
/**
* @description popover transition animation
*/
transition?: ElTooltipContentProps['transition'];
/**
* @description parameters for [popper.js](https://popper.js.org/docs/v2/)
*/
popperOptions?: Partial<Options>;
/**
* @description [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of Popover
*/
tabindex?: string | number;
/**
* @description popover content, can be replaced with a default `slot`
*/
content?: ElTooltipContentProps['content'];
/**
* @description custom style for popover
*/
popperStyle?: ElTooltipContentProps['popperStyle'];
/**
* @description custom class name for popover
*/
popperClass?: ElTooltipContentProps['popperClass'];
/**
* @description whether the mouse can enter the popover
*/
enterable?: ElTooltipContentProps['enterable'];
/**
* @description Tooltip theme, built-in theme: `dark` / `light`
*/
effect?: ElTooltipContentProps['effect'];
/**
* @description whether popover dropdown is teleported to the body
*/
teleported?: ElTooltipContentProps['teleported'];
/**
* @description which select dropdown appends to
*/
appendTo?: ElTooltipContentProps['appendTo'];
/**
* @description popover title
*/
title?: string;
/**
* @description popover width
*/
width?: string | number;
/**
* @description popover offset
*/
offset?: number;
/**
* @description delay of appearance, in millisecond, not valid in controlled mode
*/
showAfter?: number;
/**
* @description delay of disappear, in millisecond, not valid in controlled mode
*/
hideAfter?: number;
/**
* @description timeout in milliseconds to hide tooltip, not valid in controlled mode
*/
autoClose?: number;
/**
* @description whether a tooltip arrow is displayed or not. For more info, please refer to [ElPopper](https://github.com/element-plus/element-plus/tree/dev/packages/components/popper)
*/
showArrow?: boolean;
/**
* @description when popover inactive and `persistent` is `false` , popover will be destroyed
*/
persistent?: boolean;
/**
* @description update:visible event handler
*/
'onUpdate:visible'?: (visible: boolean) => void;
}
/**
* @deprecated Removed after 3.0.0, Use `PopoverProps` instead.
*/
declare const popoverProps: {
readonly trigger: EpPropFinalized<(new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | TooltipTriggerType[]) | (() => Arrayable<TooltipTriggerType>) | (((new (...args: any[]) => "click" | "contextmenu" | "focus" | "hover" | TooltipTriggerType[]) | (() => Arrayable<TooltipTriggerType>)) | null)[], unknown, unknown, "hover", boolean>;
readonly triggerKeys: EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | (((new (...args: any[]) => string[]) | (() => string[])) | null)[], unknown, unknown, () => string[], boolean>;
readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1)) | null)[], unknown, unknown, "bottom", boolean>;
readonly disabled: BooleanConstructor;
readonly visible: EpPropFinalized<(new (...args: any[]) => boolean) | (() => boolean | null) | (((new (...args: any[]) => boolean) | (() => boolean | null)) | null)[], unknown, unknown, null, boolean>;
readonly transition: StringConstructor;
readonly popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
readonly content: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly popperStyle: {
readonly type: PropType<EpPropMergeType<(new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | vue.StyleValue[]) | (() => vue.StyleValue)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly popperClass: {
readonly type: PropType<EpPropMergeType<(new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | (string | {
[x: string]: boolean;
} | any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly enterable: {
readonly default: true;
readonly type: PropType<EpPropMergeType<BooleanConstructor, unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly effect: {
readonly default: "light";
readonly type: PropType<EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
readonly __epPropKey: true;
};
readonly teleported: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly appendTo: {
readonly type: PropType<EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>) | (((new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly title: StringConstructor;
readonly width: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 150, boolean>;
readonly offset: EpPropFinalized<NumberConstructor, unknown, unknown, undefined, boolean>;
readonly showAfter: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly hideAfter: EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
readonly autoClose: EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
readonly showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly persistent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly 'onUpdate:visible': {
readonly type: PropType<(visible: boolean) => void>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
/**
* @deprecated Removed after 3.0.0, Use `PopoverProps` instead.
*/
type PopoverPropsPublic = ExtractPublicPropTypes<typeof popoverProps>;
declare const popoverEmits: {
'update:visible': (value: boolean) => boolean;
'before-enter': () => boolean;
'before-leave': () => boolean;
'after-enter': () => boolean;
'after-leave': () => boolean;
};
type PopoverEmits = typeof popoverEmits;
type PopoverInstance = InstanceType<typeof _default> & unknown;
/**
* @description default values for PopoverProps
*/
declare const popoverPropsDefaults: {
readonly trigger: "hover";
readonly triggerKeys: () => string[];
readonly placement: "bottom";
readonly visible: null;
readonly popperOptions: () => {};
readonly tabindex: 0;
readonly content: "";
readonly popperStyle: undefined;
readonly enterable: true;
readonly effect: "light";
readonly teleported: true;
readonly width: 150;
readonly offset: undefined;
readonly showAfter: 0;
readonly hideAfter: 200;
readonly autoClose: 0;
readonly showArrow: true;
readonly persistent: true;
};
//#endregion
export { PopoverEmits, PopoverInstance, PopoverProps, PopoverPropsPublic, popoverEmits, popoverProps, popoverPropsDefaults };
@@ -0,0 +1,102 @@
import { EVENT_CODE } from "../../../constants/aria.mjs";
import { isBoolean } from "../../../utils/types.mjs";
import { buildProps } from "../../../utils/vue/props/runtime.mjs";
import { useTooltipContentProps } from "../../tooltip/src/content.mjs";
import { useTooltipTriggerProps } from "../../tooltip/src/trigger.mjs";
import { dropdownProps } from "../../dropdown/src/dropdown.mjs";
//#region ../../packages/components/popover/src/popover.ts
/**
* @deprecated Removed after 3.0.0, Use `PopoverProps` instead.
*/
const popoverProps = buildProps({
trigger: useTooltipTriggerProps.trigger,
triggerKeys: useTooltipTriggerProps.triggerKeys,
placement: dropdownProps.placement,
disabled: useTooltipTriggerProps.disabled,
visible: useTooltipContentProps.visible,
transition: useTooltipContentProps.transition,
popperOptions: dropdownProps.popperOptions,
tabindex: dropdownProps.tabindex,
content: useTooltipContentProps.content,
popperStyle: useTooltipContentProps.popperStyle,
popperClass: useTooltipContentProps.popperClass,
enterable: {
...useTooltipContentProps.enterable,
default: true
},
effect: {
...useTooltipContentProps.effect,
default: "light"
},
teleported: useTooltipContentProps.teleported,
appendTo: useTooltipContentProps.appendTo,
title: String,
width: {
type: [String, Number],
default: 150
},
offset: {
type: Number,
default: void 0
},
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
},
showArrow: {
type: Boolean,
default: true
},
persistent: {
type: Boolean,
default: true
},
"onUpdate:visible": { type: Function }
});
const popoverEmits = {
"update:visible": (value) => isBoolean(value),
"before-enter": () => true,
"before-leave": () => true,
"after-enter": () => true,
"after-leave": () => true
};
/**
* @description default values for PopoverProps
*/
const popoverPropsDefaults = {
trigger: "hover",
triggerKeys: () => [
EVENT_CODE.enter,
EVENT_CODE.numpadEnter,
EVENT_CODE.space
],
placement: "bottom",
visible: null,
popperOptions: () => ({}),
tabindex: 0,
content: "",
popperStyle: void 0,
enterable: true,
effect: "light",
teleported: true,
width: 150,
offset: void 0,
showAfter: 0,
hideAfter: 200,
autoClose: 0,
showArrow: true,
persistent: true
};
//#endregion
export { popoverEmits, popoverProps, popoverPropsDefaults };
//# sourceMappingURL=popover.mjs.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,63 @@
import { Arrayable } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import { PopperEffect, PopperInstance } from "../../popper/src/popper.js";
import { TooltipTriggerType } from "../../tooltip/src/trigger.js";
import "../../tooltip/index.js";
import { PopoverProps } from "./popover.js";
import "../../../index.js";
import { Options, Placement } from "../../popper/index.js";
import * as vue from "vue";
//#region ../../packages/components/popover/src/popover.vue.d.ts
declare var __VLS_15: {}, __VLS_18: {
hide: () => void;
};
type __VLS_Slots = {} & {
reference?: (props: typeof __VLS_15) => any;
} & {
default?: (props: typeof __VLS_18) => any;
};
declare const __VLS_base: vue.DefineComponent<PopoverProps, {
/** @description popper ref */popperRef: vue.ComputedRef<PopperInstance | undefined>; /** @description hide popover */
hide: () => void;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
"update:visible": (value: boolean) => void;
"before-enter": () => void;
"before-leave": () => void;
"after-enter": () => void;
"after-leave": () => void;
}, string, vue.PublicProps, Readonly<PopoverProps> & Readonly<{
"onUpdate:visible"?: ((value: boolean) => any) | undefined;
"onBefore-enter"?: (() => any) | undefined;
"onBefore-leave"?: (() => any) | undefined;
"onAfter-enter"?: (() => any) | undefined;
"onAfter-leave"?: (() => any) | undefined;
}>, {
offset: number;
teleported: boolean;
effect: PopperEffect;
tabindex: string | number;
visible: boolean | null;
content: string;
enterable: boolean;
popperStyle: string | false | vue.CSSProperties | vue.StyleValue[] | null;
placement: Placement;
popperOptions: Partial<Options>;
showArrow: boolean;
persistent: boolean;
showAfter: number;
hideAfter: number;
autoClose: number;
trigger: Arrayable<TooltipTriggerType>;
triggerKeys: string[];
width: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};
//#endregion
export { _default };
@@ -0,0 +1,131 @@
import { addUnit } from "../../../utils/dom/style.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { ElTooltip } from "../../tooltip/index.mjs";
import { popoverEmits, popoverProps } from "./popover.mjs";
import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderSlot, toDisplayString, unref, withCtx } from "vue";
//#region ../../packages/components/popover/src/popover.vue?vue&type=script&setup=true&lang.ts
const updateEventKeyRaw = `onUpdate:visible`;
var popover_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElPopover",
__name: "popover",
props: popoverProps,
emits: popoverEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
const onUpdateVisible = computed(() => {
return props[updateEventKeyRaw];
});
const ns = useNamespace("popover");
const tooltipRef = ref();
const popperRef = computed(() => {
return unref(tooltipRef)?.popperRef;
});
const style = computed(() => {
return [{ width: addUnit(props.width) }, props.popperStyle];
});
const kls = computed(() => {
return [
ns.b(),
props.popperClass,
{ [ns.m("plain")]: !!props.content }
];
});
const gpuAcceleration = computed(() => {
return props.transition === `${ns.namespace.value}-fade-in-linear`;
});
const hide = () => {
tooltipRef.value?.hide();
};
const beforeEnter = () => {
emit("before-enter");
};
const beforeLeave = () => {
emit("before-leave");
};
const afterEnter = () => {
emit("after-enter");
};
const afterLeave = () => {
emit("update:visible", false);
emit("after-leave");
};
__expose({
popperRef,
hide
});
return (_ctx, _cache) => {
return openBlock(), createBlock(unref(ElTooltip), mergeProps({
ref_key: "tooltipRef",
ref: tooltipRef
}, _ctx.$attrs, {
trigger: __props.trigger,
"trigger-keys": __props.triggerKeys,
placement: __props.placement,
disabled: __props.disabled,
visible: __props.visible,
transition: __props.transition,
"popper-options": __props.popperOptions,
tabindex: __props.tabindex,
content: __props.content,
offset: __props.offset,
"show-after": __props.showAfter,
"hide-after": __props.hideAfter,
"auto-close": __props.autoClose,
"show-arrow": __props.showArrow,
"aria-label": __props.title,
effect: __props.effect,
enterable: __props.enterable,
"popper-class": kls.value,
"popper-style": style.value,
teleported: __props.teleported,
"append-to": __props.appendTo,
persistent: __props.persistent,
"gpu-acceleration": gpuAcceleration.value,
"onUpdate:visible": onUpdateVisible.value,
onBeforeShow: beforeEnter,
onBeforeHide: beforeLeave,
onShow: afterEnter,
onHide: afterLeave
}), {
content: withCtx(() => [__props.title ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(ns).e("title")),
role: "title"
}, toDisplayString(__props.title), 3)) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default", { hide }, () => [createTextVNode(toDisplayString(__props.content), 1)])]),
default: withCtx(() => [_ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)]),
_: 3
}, 16, [
"trigger",
"trigger-keys",
"placement",
"disabled",
"visible",
"transition",
"popper-options",
"tabindex",
"content",
"offset",
"show-after",
"hide-after",
"auto-close",
"show-arrow",
"aria-label",
"effect",
"enterable",
"popper-class",
"popper-style",
"teleported",
"append-to",
"persistent",
"gpu-acceleration",
"onUpdate:visible"
]);
};
}
});
//#endregion
export { popover_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=popover.vue_vue_type_script_setup_true_lang.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"popover.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs","$slots"],"sources":["../../../../../../packages/components/popover/src/popover.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n v-bind=\"$attrs\"\n :trigger=\"trigger\"\n :trigger-keys=\"triggerKeys\"\n :placement=\"placement\"\n :disabled=\"disabled\"\n :visible=\"visible\"\n :transition=\"transition\"\n :popper-options=\"popperOptions\"\n :tabindex=\"tabindex\"\n :content=\"content\"\n :offset=\"offset\"\n :show-after=\"showAfter\"\n :hide-after=\"hideAfter\"\n :auto-close=\"autoClose\"\n :show-arrow=\"showArrow\"\n :aria-label=\"title\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :popper-class=\"kls\"\n :popper-style=\"style\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :persistent=\"persistent\"\n :gpu-acceleration=\"gpuAcceleration\"\n @update:visible=\"onUpdateVisible\"\n @before-show=\"beforeEnter\"\n @before-hide=\"beforeLeave\"\n @show=\"afterEnter\"\n @hide=\"afterLeave\"\n >\n <template v-if=\"$slots.reference\">\n <slot name=\"reference\" />\n </template>\n\n <template #content>\n <div v-if=\"title\" :class=\"ns.e('title')\" role=\"title\">\n {{ title }}\n </div>\n <slot :hide=\"hide\">\n {{ content }}\n </slot>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, unref } from 'vue'\nimport { ElTooltip } from '@element-plus/components/tooltip'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { popoverEmits, popoverPropsDefaults } from './popover'\n\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { PopoverProps } from './popover'\n\ndefineOptions({\n name: 'ElPopover',\n})\n\nconst props = withDefaults(defineProps<PopoverProps>(), popoverPropsDefaults)\nconst emit = defineEmits(popoverEmits)\n\nconst updateEventKeyRaw = `onUpdate:visible` as const\n\nconst onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw]\n})\n\nconst ns = useNamespace('popover')\nconst tooltipRef = ref<TooltipInstance>()\nconst popperRef = computed(() => {\n return unref(tooltipRef)?.popperRef\n})\n\nconst style = computed(() => {\n return [\n {\n width: addUnit(props.width),\n },\n props.popperStyle!,\n ]\n})\n\nconst kls = computed(() => {\n return [ns.b(), props.popperClass!, { [ns.m('plain')]: !!props.content }]\n})\n\nconst gpuAcceleration = computed(() => {\n return props.transition === `${ns.namespace.value}-fade-in-linear`\n})\n\nconst hide = () => {\n tooltipRef.value?.hide()\n}\n\nconst beforeEnter = () => {\n emit('before-enter')\n}\nconst beforeLeave = () => {\n emit('before-leave')\n}\n\nconst afterEnter = () => {\n emit('after-enter')\n}\n\nconst afterLeave = () => {\n emit('update:visible', false)\n emit('after-leave')\n}\n\ndefineExpose({\n /** @description popper ref */\n popperRef,\n /** @description hide popover */\n hide,\n})\n</script>\n"],"mappings":";;;;;;;AAiEA,MAAM,oBAAoB;;;;;;;EAH1B,MAAM,QAAQ;EACd,MAAM,OAAO;EAIb,MAAM,kBAAkB,eAAe;AACrC,UAAO,MAAM;IACd;EAED,MAAM,KAAK,aAAa,UAAS;EACjC,MAAM,aAAa,KAAqB;EACxC,MAAM,YAAY,eAAe;AAC/B,UAAO,MAAM,WAAW,EAAE;IAC3B;EAED,MAAM,QAAQ,eAAe;AAC3B,UAAO,CACL,EACE,OAAO,QAAQ,MAAM,MAAM,EAC5B,EACD,MAAM,YACR;IACD;EAED,MAAM,MAAM,eAAe;AACzB,UAAO;IAAC,GAAG,GAAG;IAAE,MAAM;IAAc,GAAG,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,MAAM,SAAS;IAAA;IACzE;EAED,MAAM,kBAAkB,eAAe;AACrC,UAAO,MAAM,eAAe,GAAG,GAAG,UAAU,MAAM;IACnD;EAED,MAAM,aAAa;AACjB,cAAW,OAAO,MAAK;;EAGzB,MAAM,oBAAoB;AACxB,QAAK,eAAc;;EAErB,MAAM,oBAAoB;AACxB,QAAK,eAAc;;EAGrB,MAAM,mBAAmB;AACvB,QAAK,cAAa;;EAGpB,MAAM,mBAAmB;AACvB,QAAK,kBAAkB,MAAK;AAC5B,QAAK,cAAa;;AAGpB,WAAa;GAEX;GAEA;GACD,CAAA;;uBAtHC,YA4Ca,MAAA,UAAA,EA5Cb,WA4Ca;aA3CP;IAAJ,KAAI;MACIA,KAAAA,QAAM;IACb,SAAS,QAAA;IACT,gBAAc,QAAA;IACd,WAAW,QAAA;IACX,UAAU,QAAA;IACV,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,kBAAgB,QAAA;IAChB,UAAU,QAAA;IACV,SAAS,QAAA;IACT,QAAQ,QAAA;IACR,cAAY,QAAA;IACZ,cAAY,QAAA;IACZ,cAAY,QAAA;IACZ,cAAY,QAAA;IACZ,cAAY,QAAA;IACZ,QAAQ,QAAA;IACR,WAAW,QAAA;IACX,gBAAc,IAAA;IACd,gBAAc,MAAA;IACd,YAAY,QAAA;IACZ,aAAW,QAAA;IACX,YAAY,QAAA;IACZ,oBAAkB,gBAAA;IAClB,oBAAgB,gBAAA;IAChB,cAAa;IACb,cAAa;IACb,QAAM;IACN,QAAM;;IAMI,SAAO,cAGV,CAFK,QAAA,sBAAX,mBAEM,OAAA;;KAFa,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,QAAA,CAAA;KAAW,MAAK;uBACzC,QAAA,MAAK,EAAA,EAAA,sCAEV,WAEO,KAAA,QAAA,WAAA,EAFM,MAAI,QAEV,iCADF,QAAA,QAAO,EAAA,EAAA;2BAPH,CAFKC,KAAAA,OAAO,YACrB,WAAyB,KAAA,QAAA,aAAA,EAAA,KAAA,GAAA,CAAA"}
@@ -0,0 +1,8 @@
import popover_vue_vue_type_script_setup_true_lang_default from "./popover.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/popover/src/popover.vue
var popover_default = popover_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { popover_default as default };
//# sourceMappingURL=popover2.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"popover2.mjs","names":[],"sources":["../../../../../../packages/components/popover/src/popover.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n v-bind=\"$attrs\"\n :trigger=\"trigger\"\n :trigger-keys=\"triggerKeys\"\n :placement=\"placement\"\n :disabled=\"disabled\"\n :visible=\"visible\"\n :transition=\"transition\"\n :popper-options=\"popperOptions\"\n :tabindex=\"tabindex\"\n :content=\"content\"\n :offset=\"offset\"\n :show-after=\"showAfter\"\n :hide-after=\"hideAfter\"\n :auto-close=\"autoClose\"\n :show-arrow=\"showArrow\"\n :aria-label=\"title\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :popper-class=\"kls\"\n :popper-style=\"style\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :persistent=\"persistent\"\n :gpu-acceleration=\"gpuAcceleration\"\n @update:visible=\"onUpdateVisible\"\n @before-show=\"beforeEnter\"\n @before-hide=\"beforeLeave\"\n @show=\"afterEnter\"\n @hide=\"afterLeave\"\n >\n <template v-if=\"$slots.reference\">\n <slot name=\"reference\" />\n </template>\n\n <template #content>\n <div v-if=\"title\" :class=\"ns.e('title')\" role=\"title\">\n {{ title }}\n </div>\n <slot :hide=\"hide\">\n {{ content }}\n </slot>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, unref } from 'vue'\nimport { ElTooltip } from '@element-plus/components/tooltip'\nimport { addUnit } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { popoverEmits, popoverPropsDefaults } from './popover'\n\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { PopoverProps } from './popover'\n\ndefineOptions({\n name: 'ElPopover',\n})\n\nconst props = withDefaults(defineProps<PopoverProps>(), popoverPropsDefaults)\nconst emit = defineEmits(popoverEmits)\n\nconst updateEventKeyRaw = `onUpdate:visible` as const\n\nconst onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw]\n})\n\nconst ns = useNamespace('popover')\nconst tooltipRef = ref<TooltipInstance>()\nconst popperRef = computed(() => {\n return unref(tooltipRef)?.popperRef\n})\n\nconst style = computed(() => {\n return [\n {\n width: addUnit(props.width),\n },\n props.popperStyle!,\n ]\n})\n\nconst kls = computed(() => {\n return [ns.b(), props.popperClass!, { [ns.m('plain')]: !!props.content }]\n})\n\nconst gpuAcceleration = computed(() => {\n return props.transition === `${ns.namespace.value}-fade-in-linear`\n})\n\nconst hide = () => {\n tooltipRef.value?.hide()\n}\n\nconst beforeEnter = () => {\n emit('before-enter')\n}\nconst beforeLeave = () => {\n emit('before-leave')\n}\n\nconst afterEnter = () => {\n emit('after-enter')\n}\n\nconst afterLeave = () => {\n emit('update:visible', false)\n emit('after-leave')\n}\n\ndefineExpose({\n /** @description popper ref */\n popperRef,\n /** @description hide popover */\n hide,\n})\n</script>\n"],"mappings":""}
@@ -0,0 +1,3 @@
import "../../base/style/css.mjs";
import "../../popper/style/css.mjs";
import "element-plus/theme-chalk/el-popover.css";
@@ -0,0 +1,3 @@
import "../../base/style/index.mjs";
import "../../popper/style/index.mjs";
import "element-plus/theme-chalk/src/popover.scss";