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
@@ -0,0 +1,9 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { PopconfirmEmits, PopconfirmInstance, PopconfirmProps, PopconfirmPropsPublic, popconfirmEmits, popconfirmProps } from "./src/popconfirm.js";
import { _default } from "./src/popconfirm.vue.js";
//#region ../../packages/components/popconfirm/index.d.ts
declare const ElPopconfirm: SFCWithInstall<typeof _default>;
//#endregion
export { ElPopconfirm, ElPopconfirm as default, PopconfirmEmits, PopconfirmInstance, PopconfirmProps, PopconfirmPropsPublic, popconfirmEmits, popconfirmProps };
+14
View File
@@ -0,0 +1,14 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_install = require('../../utils/vue/install.js');
const require_popconfirm = require('./src/popconfirm.js');
const require_popconfirm$1 = require('./src/popconfirm2.js');
//#region ../../packages/components/popconfirm/index.ts
const ElPopconfirm = require_install.withInstall(require_popconfirm$1.default);
//#endregion
exports.ElPopconfirm = ElPopconfirm;
exports.default = ElPopconfirm;
exports.popconfirmEmits = require_popconfirm.popconfirmEmits;
exports.popconfirmProps = require_popconfirm.popconfirmProps;
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["withInstall","Popconfirm"],"sources":["../../../../../packages/components/popconfirm/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Popconfirm from './src/popconfirm.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElPopconfirm: SFCWithInstall<typeof Popconfirm> =\n withInstall(Popconfirm)\nexport default ElPopconfirm\n\nexport * from './src/popconfirm'\n"],"mappings":";;;;;;AAKA,MAAa,eACXA,4BAAYC,6BAAW"}
@@ -0,0 +1,127 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { PopperEffect } from "../../popper/src/popper.js";
import { Measurable } from "../../popper/src/constants.js";
import { ButtonType } from "../../button/src/button.js";
import "../../button/index.js";
import { ElTooltipTriggerProps } from "../../tooltip/src/trigger.js";
import { ElTooltipContentProps } from "../../tooltip/src/content.js";
import "../../tooltip/index.js";
import { _default } from "./popconfirm.vue.js";
import "../../../index.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/popconfirm/src/popconfirm.d.ts
interface PopconfirmProps {
/**
* @description Title
*/
title?: string;
/**
* @description Confirm button text
*/
confirmButtonText?: string;
/**
* @description Cancel button text
*/
cancelButtonText?: string;
/**
* @description Confirm button type
*/
confirmButtonType?: ButtonType;
/**
* @description Cancel button type
*/
cancelButtonType?: ButtonType;
/**
* @description Icon Component
*/
icon?: IconPropType;
/**
* @description Icon color
*/
iconColor?: string;
/**
* @description is hide Icon
*/
hideIcon?: boolean;
/**
* @description delay of disappear, in millisecond
*/
hideAfter?: number;
/**
* @description Tooltip theme, built-in theme: `dark` / `light`
*/
effect?: ElTooltipContentProps['effect'];
/**
* @description whether popconfirm is teleported to the body
*/
teleported?: ElTooltipContentProps['teleported'];
/**
* @description when popconfirm inactive and `persistent` is `false` , popconfirm will be destroyed
*/
persistent?: ElTooltipContentProps['persistent'];
/**
* @description popconfirm width, min width 150px
*/
width?: string | number;
/**
* @description Indicates whether virtual triggering is enabled
*/
virtualTriggering?: ElTooltipTriggerProps['virtualTriggering'];
/**
* @description Indicates the reference element to which the popper is attached
*/
virtualRef?: ElTooltipTriggerProps['virtualRef'];
}
/**
* @deprecated Removed after 3.0.0, Use `PopconfirmProps` instead.
*/
declare const popconfirmProps: {
readonly title: StringConstructor;
readonly confirmButtonText: StringConstructor;
readonly cancelButtonText: StringConstructor;
readonly confirmButtonType: EpPropFinalized<StringConstructor, "" | "default" | "info" | "primary" | "success" | "warning" | "text" | "danger", unknown, "primary", boolean>;
readonly cancelButtonType: EpPropFinalized<StringConstructor, "" | "default" | "info" | "primary" | "success" | "warning" | "text" | "danger", unknown, "text", boolean>;
readonly icon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown, () => vue.DefineComponent<{}, void, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
readonly iconColor: EpPropFinalized<StringConstructor, unknown, unknown, "#f90", boolean>;
readonly hideIcon: BooleanConstructor;
readonly hideAfter: EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
readonly effect: {
readonly default: "light";
readonly type: vue.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 persistent: BooleanConstructor;
readonly width: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 150, boolean>;
readonly virtualTriggering: BooleanConstructor;
readonly virtualRef: {
readonly type: vue.PropType<Measurable>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
declare const popconfirmEmits: {
/**
* @description triggers when click confirm button
*/
confirm: (e: MouseEvent) => boolean;
/**
* @description triggers when click cancel button
*/
cancel: (e: MouseEvent) => boolean;
};
type PopconfirmEmits = typeof popconfirmEmits;
/**
* @deprecated Removed after 3.0.0, Use `PopconfirmProps` instead.
*/
type PopconfirmPropsPublic = ExtractPublicPropTypes<typeof popconfirmProps>;
type PopconfirmInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { PopconfirmEmits, PopconfirmInstance, PopconfirmProps, PopconfirmPropsPublic, popconfirmEmits, popconfirmProps };
@@ -0,0 +1,62 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
const require_icon = require('../../../utils/vue/icon.js');
const require_content = require('../../tooltip/src/content.js');
const require_trigger = require('../../tooltip/src/trigger.js');
const require_button = require('../../button/src/button.js');
let _element_plus_icons_vue = require("@element-plus/icons-vue");
//#region ../../packages/components/popconfirm/src/popconfirm.ts
/**
* @deprecated Removed after 3.0.0, Use `PopconfirmProps` instead.
*/
const popconfirmProps = require_runtime$1.buildProps({
title: String,
confirmButtonText: String,
cancelButtonText: String,
confirmButtonType: {
type: String,
values: require_button.buttonTypes,
default: "primary"
},
cancelButtonType: {
type: String,
values: require_button.buttonTypes,
default: "text"
},
icon: {
type: require_icon.iconPropType,
default: () => _element_plus_icons_vue.QuestionFilled
},
iconColor: {
type: String,
default: "#f90"
},
hideIcon: Boolean,
hideAfter: {
type: Number,
default: 200
},
effect: {
...require_content.useTooltipContentProps.effect,
default: "light"
},
teleported: require_content.useTooltipContentProps.teleported,
persistent: require_content.useTooltipContentProps.persistent,
width: {
type: [String, Number],
default: 150
},
virtualTriggering: require_trigger.useTooltipTriggerProps.virtualTriggering,
virtualRef: require_trigger.useTooltipTriggerProps.virtualRef
});
const popconfirmEmits = {
confirm: (e) => e instanceof MouseEvent,
cancel: (e) => e instanceof MouseEvent
};
//#endregion
exports.popconfirmEmits = popconfirmEmits;
exports.popconfirmProps = popconfirmProps;
//# sourceMappingURL=popconfirm.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,47 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import "../../../utils/index.js";
import { PopperEffect, PopperInstance } from "../../popper/src/popper.js";
import { ButtonType } from "../../button/src/button.js";
import "../../button/index.js";
import { PopconfirmProps } from "./popconfirm.js";
import "../../../index.js";
import * as vue from "vue";
//#region ../../packages/components/popconfirm/src/popconfirm.vue.d.ts
declare var __VLS_23: {
confirm: (e: MouseEvent) => void;
cancel: (e: MouseEvent) => void;
}, __VLS_41: {};
type __VLS_Slots = {} & {
actions?: (props: typeof __VLS_23) => any;
} & {
reference?: (props: typeof __VLS_41) => any;
};
declare const __VLS_base: vue.DefineComponent<PopconfirmProps, {
popperRef: vue.ComputedRef<PopperInstance | undefined>;
hide: () => void;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
cancel: (e: MouseEvent) => void;
confirm: (e: MouseEvent) => void;
}, string, vue.PublicProps, Readonly<PopconfirmProps> & Readonly<{
onCancel?: ((e: MouseEvent) => any) | undefined;
onConfirm?: ((e: MouseEvent) => any) | undefined;
}>, {
teleported: boolean;
effect: PopperEffect;
icon: IconPropType;
hideAfter: number;
width: string | number;
confirmButtonType: ButtonType;
cancelButtonType: ButtonType;
iconColor: string;
}, {}, {}, {}, 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,123 @@
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_style = require('../../../utils/dom/style.js');
const require_index = require('../../../hooks/use-locale/index.js');
const require_index$1 = require('../../../hooks/use-namespace/index.js');
const require_index$2 = require('../../icon/index.js');
const require_index$3 = require('../../tooltip/index.js');
const require_index$4 = require('../../button/index.js');
const require_popconfirm = require('./popconfirm.js');
let vue = require("vue");
//#region ../../packages/components/popconfirm/src/popconfirm.vue?vue&type=script&setup=true&lang.ts
var popconfirm_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
name: "ElPopconfirm",
__name: "popconfirm",
props: require_popconfirm.popconfirmProps,
emits: require_popconfirm.popconfirmEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
const emit = __emit;
const { t } = require_index.useLocale();
const ns = require_index$1.useNamespace("popconfirm");
const tooltipRef = (0, vue.ref)();
const rootRef = (0, vue.ref)();
const popperRef = (0, vue.computed)(() => {
return (0, vue.unref)(tooltipRef)?.popperRef;
});
const showPopper = () => {
rootRef.value?.focus?.();
};
const hidePopper = () => {
tooltipRef.value?.onClose?.();
};
const style = (0, vue.computed)(() => {
return { width: require_style.addUnit(props.width) };
});
const confirm = (e) => {
emit("confirm", e);
hidePopper();
};
const cancel = (e) => {
emit("cancel", e);
hidePopper();
};
const finalConfirmButtonText = (0, vue.computed)(() => props.confirmButtonText || t("el.popconfirm.confirmButtonText"));
const finalCancelButtonText = (0, vue.computed)(() => props.cancelButtonText || t("el.popconfirm.cancelButtonText"));
__expose({
popperRef,
hide: hidePopper
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$3.ElTooltip), (0, vue.mergeProps)({
ref_key: "tooltipRef",
ref: tooltipRef,
trigger: "click",
effect: __props.effect
}, _ctx.$attrs, {
"virtual-triggering": __props.virtualTriggering,
"virtual-ref": __props.virtualRef,
"popper-class": `${(0, vue.unref)(ns).namespace.value}-popover`,
"popper-style": style.value,
teleported: __props.teleported,
"fallback-placements": [
"bottom",
"top",
"right",
"left"
],
"hide-after": __props.hideAfter,
persistent: __props.persistent,
loop: "",
onShow: showPopper
}), {
content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", {
ref_key: "rootRef",
ref: rootRef,
tabindex: "-1",
class: (0, vue.normalizeClass)((0, vue.unref)(ns).b())
}, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) }, [!__props.hideIcon && __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElIcon), {
key: 0,
class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")),
style: (0, vue.normalizeStyle)({ color: __props.iconColor })
}, {
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]),
_: 1
}, 8, ["class", "style"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)(__props.title), 1)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action")) }, [(0, vue.renderSlot)(_ctx.$slots, "actions", {
confirm,
cancel
}, () => [(0, vue.createVNode)((0, vue.unref)(require_index$4.ElButton), {
size: "small",
type: __props.cancelButtonType === "text" ? "" : __props.cancelButtonType,
text: __props.cancelButtonType === "text",
onClick: cancel
}, {
default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalCancelButtonText.value), 1)]),
_: 1
}, 8, ["type", "text"]), (0, vue.createVNode)((0, vue.unref)(require_index$4.ElButton), {
size: "small",
type: __props.confirmButtonType === "text" ? "" : __props.confirmButtonType,
text: __props.confirmButtonType === "text",
onClick: confirm
}, {
default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalConfirmButtonText.value), 1)]),
_: 1
}, 8, ["type", "text"])])], 2)], 2)]),
default: (0, vue.withCtx)(() => [_ctx.$slots.reference ? (0, vue.renderSlot)(_ctx.$slots, "reference", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]),
_: 3
}, 16, [
"effect",
"virtual-triggering",
"virtual-ref",
"popper-class",
"popper-style",
"teleported",
"hide-after",
"persistent"
]);
};
}
});
//#endregion
exports.default = popconfirm_vue_vue_type_script_setup_true_lang_default;
//# sourceMappingURL=popconfirm.vue_vue_type_script_setup_true_lang.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_popconfirm_vue_vue_type_script_setup_true_lang = require('./popconfirm.vue_vue_type_script_setup_true_lang.js');
//#region ../../packages/components/popconfirm/src/popconfirm.vue
var popconfirm_default = require_popconfirm_vue_vue_type_script_setup_true_lang.default;
//#endregion
exports.default = popconfirm_default;
//# sourceMappingURL=popconfirm2.js.map
@@ -0,0 +1 @@
{"version":3,"file":"popconfirm2.js","names":[],"sources":["../../../../../../packages/components/popconfirm/src/popconfirm.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n trigger=\"click\"\n :effect=\"effect\"\n v-bind=\"$attrs\"\n :virtual-triggering=\"virtualTriggering\"\n :virtual-ref=\"virtualRef\"\n :popper-class=\"`${ns.namespace.value}-popover`\"\n :popper-style=\"style\"\n :teleported=\"teleported\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :hide-after=\"hideAfter\"\n :persistent=\"persistent\"\n loop\n @show=\"showPopper\"\n >\n <template #content>\n <div ref=\"rootRef\" tabindex=\"-1\" :class=\"ns.b()\">\n <div :class=\"ns.e('main')\">\n <el-icon\n v-if=\"!hideIcon && icon\"\n :class=\"ns.e('icon')\"\n :style=\"{ color: iconColor }\"\n >\n <component :is=\"icon\" />\n </el-icon>\n {{ title }}\n </div>\n <div :class=\"ns.e('action')\">\n <slot name=\"actions\" :confirm=\"confirm\" :cancel=\"cancel\">\n <el-button\n size=\"small\"\n :type=\"cancelButtonType === 'text' ? '' : cancelButtonType\"\n :text=\"cancelButtonType === 'text'\"\n @click=\"cancel\"\n >\n {{ finalCancelButtonText }}\n </el-button>\n <el-button\n size=\"small\"\n :type=\"confirmButtonType === 'text' ? '' : confirmButtonType\"\n :text=\"confirmButtonType === 'text'\"\n @click=\"confirm\"\n >\n {{ finalConfirmButtonText }}\n </el-button>\n </slot>\n </div>\n </div>\n </template>\n <template v-if=\"$slots.reference\">\n <slot name=\"reference\" />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, unref } from 'vue'\nimport ElButton from '@element-plus/components/button'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { addUnit } from '@element-plus/utils'\nimport { QuestionFilled } from '@element-plus/icons-vue'\nimport { popconfirmEmits } from './popconfirm'\n\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { PopconfirmProps } from './popconfirm'\n\ndefineOptions({\n name: 'ElPopconfirm',\n})\n\nconst props = withDefaults(defineProps<PopconfirmProps>(), {\n confirmButtonType: 'primary',\n cancelButtonType: 'text',\n icon: () => QuestionFilled,\n iconColor: '#f90',\n hideAfter: 200,\n effect: 'light',\n teleported: true,\n width: 150,\n})\nconst emit = defineEmits(popconfirmEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('popconfirm')\nconst tooltipRef = ref<TooltipInstance>()\nconst rootRef = ref<HTMLElement>()\n\nconst popperRef = computed(() => {\n return unref(tooltipRef)?.popperRef\n})\n\nconst showPopper = () => {\n rootRef.value?.focus?.()\n}\n\nconst hidePopper = () => {\n tooltipRef.value?.onClose?.()\n}\n\nconst style = computed(() => {\n return {\n width: addUnit(props.width),\n }\n})\n\nconst confirm = (e: MouseEvent) => {\n emit('confirm', e)\n hidePopper()\n}\nconst cancel = (e: MouseEvent) => {\n emit('cancel', e)\n hidePopper()\n}\n\nconst finalConfirmButtonText = computed(\n () => props.confirmButtonText || t('el.popconfirm.confirmButtonText')\n)\nconst finalCancelButtonText = computed(\n () => props.cancelButtonText || t('el.popconfirm.cancelButtonText')\n)\n\ndefineExpose({\n popperRef,\n hide: hidePopper,\n})\n</script>\n"],"mappings":""}
@@ -0,0 +1,5 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require('../../button/style/css.js');
require('../../popover/style/css.js');
require("element-plus/theme-chalk/el-popconfirm.css");
@@ -0,0 +1,5 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/index.js');
require('../../button/style/index.js');
require('../../popover/style/index.js');
require("element-plus/theme-chalk/src/popconfirm.scss");