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
+49
View File
@@ -0,0 +1,49 @@
import { EpPropFinalized, EpPropMergeType } from "../../utils/vue/props/types.js";
import "../../utils/index.js";
import { OverlayEmits, OverlayProps, OverlayPropsPublic, overlayEmits, overlayProps } from "./src/overlay.js";
import * as vue from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/overlay/index.d.ts
declare const ElOverlay: vue.DefineComponent<vue.ExtractPropTypes<{
readonly mask: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly customMaskEvent: BooleanConstructor;
readonly overlayClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>) | (((new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined) | (((new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
click: (evt: MouseEvent) => boolean;
}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
readonly mask: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly customMaskEvent: BooleanConstructor;
readonly overlayClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>) | (((new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined) | (((new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & Readonly<{
onClick?: ((evt: MouseEvent) => any) | undefined;
}>, {
readonly mask: EpPropMergeType<BooleanConstructor, unknown, unknown>;
readonly customMaskEvent: boolean;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
//#endregion
export { ElOverlay, ElOverlay as default, OverlayEmits, OverlayProps, OverlayPropsPublic, overlayEmits, overlayProps };
+12
View File
@@ -0,0 +1,12 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_overlay = require('./src/overlay.js');
//#region ../../packages/components/overlay/index.ts
const ElOverlay = require_overlay.default;
//#endregion
exports.ElOverlay = ElOverlay;
exports.default = ElOverlay;
exports.overlayEmits = require_overlay.overlayEmits;
exports.overlayProps = require_overlay.overlayProps;
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["Overlay"],"sources":["../../../../../packages/components/overlay/index.ts"],"sourcesContent":["import Overlay from './src/overlay'\n\nexport const ElOverlay = Overlay\nexport default ElOverlay\n\nexport * from './src/overlay'\n"],"mappings":";;;;AAEA,MAAa,YAAYA"}
@@ -0,0 +1,31 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import * as vue from "vue";
import { ExtractPropTypes, ExtractPublicPropTypes } from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/overlay/src/overlay.d.ts
declare const overlayProps: {
readonly mask: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly customMaskEvent: BooleanConstructor;
readonly overlayClass: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>) | (((new (...args: any[]) => string | string[] | Record<string, boolean>) | (() => string | string[] | Record<string, boolean>)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly zIndex: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined) | (((new (...args: any[]) => string | number) | (() => csstype.Property.ZIndex | undefined)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
type OverlayProps = ExtractPropTypes<typeof overlayProps>;
type OverlayPropsPublic = ExtractPublicPropTypes<typeof overlayProps>;
declare const overlayEmits: {
click: (evt: MouseEvent) => boolean;
};
type OverlayEmits = typeof overlayEmits;
//#endregion
export { OverlayEmits, OverlayProps, OverlayPropsPublic, overlayEmits, overlayProps };
@@ -0,0 +1,65 @@
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
const require_vnode = require('../../../utils/vue/vnode.js');
const require_index = require('../../../hooks/use-namespace/index.js');
const require_index$1 = require('../../../hooks/use-same-target/index.js');
let vue = require("vue");
//#region ../../packages/components/overlay/src/overlay.ts
const overlayProps = require_runtime$1.buildProps({
mask: {
type: Boolean,
default: true
},
customMaskEvent: Boolean,
overlayClass: { type: require_runtime$1.definePropType([
String,
Array,
Object
]) },
zIndex: { type: require_runtime$1.definePropType([String, Number]) }
});
const overlayEmits = { click: (evt) => evt instanceof MouseEvent };
const BLOCK = "overlay";
var overlay_default = (0, vue.defineComponent)({
name: "ElOverlay",
props: overlayProps,
emits: overlayEmits,
setup(props, { slots, emit }) {
const ns = require_index.useNamespace(BLOCK);
const onMaskClick = (e) => {
emit("click", e);
};
const { onClick, onMousedown, onMouseup } = require_index$1.useSameTarget(props.customMaskEvent ? void 0 : onMaskClick);
return () => {
return props.mask ? (0, vue.createVNode)("div", {
class: [ns.b(), props.overlayClass],
style: { zIndex: props.zIndex },
onClick,
onMousedown,
onMouseup
}, [(0, vue.renderSlot)(slots, "default")], require_vnode.PatchFlags.STYLE | require_vnode.PatchFlags.CLASS | require_vnode.PatchFlags.PROPS, [
"onClick",
"onMouseup",
"onMousedown"
]) : (0, vue.h)("div", {
class: props.overlayClass,
style: {
zIndex: props.zIndex,
position: "fixed",
top: "0px",
right: "0px",
bottom: "0px",
left: "0px"
}
}, [(0, vue.renderSlot)(slots, "default")]);
};
}
});
//#endregion
exports.default = overlay_default;
exports.overlayEmits = overlayEmits;
exports.overlayProps = overlayProps;
//# sourceMappingURL=overlay.js.map
@@ -0,0 +1 @@
{"version":3,"file":"overlay.js","names":["buildProps","definePropType","useNamespace","useSameTarget","PatchFlags"],"sources":["../../../../../../packages/components/overlay/src/overlay.ts"],"sourcesContent":["import { createVNode, defineComponent, h, renderSlot } from 'vue'\nimport { PatchFlags, buildProps, definePropType } from '@element-plus/utils'\nimport { useNamespace, useSameTarget } from '@element-plus/hooks'\n\nimport type {\n CSSProperties,\n ExtractPropTypes,\n ExtractPublicPropTypes,\n} from 'vue'\nimport type { ZIndexType } from '@element-plus/utils'\n\nexport const overlayProps = buildProps({\n mask: {\n type: Boolean,\n default: true,\n },\n customMaskEvent: Boolean,\n overlayClass: {\n type: definePropType<string | string[] | Record<string, boolean>>([\n String,\n Array,\n Object,\n ]),\n },\n zIndex: {\n type: definePropType<ZIndexType>([String, Number]),\n },\n} as const)\nexport type OverlayProps = ExtractPropTypes<typeof overlayProps>\nexport type OverlayPropsPublic = ExtractPublicPropTypes<typeof overlayProps>\n\nexport const overlayEmits = {\n click: (evt: MouseEvent) => evt instanceof MouseEvent,\n}\nexport type OverlayEmits = typeof overlayEmits\n\nconst BLOCK = 'overlay'\n\nexport default defineComponent({\n name: 'ElOverlay',\n\n props: overlayProps,\n emits: overlayEmits,\n\n setup(props, { slots, emit }) {\n // No reactivity on this prop because when its rendering with a global\n // component, this will be a constant flag.\n const ns = useNamespace(BLOCK)\n\n const onMaskClick = (e: MouseEvent) => {\n emit('click', e)\n }\n\n const { onClick, onMousedown, onMouseup } = useSameTarget(\n props.customMaskEvent ? undefined : onMaskClick\n )\n\n // init here\n return () => {\n // when the vnode meets the same structure but with different change trigger\n // it will not automatically update, thus we simply use h function to manage updating\n return props.mask\n ? createVNode(\n 'div',\n {\n class: [ns.b(), props.overlayClass],\n style: {\n zIndex: props.zIndex,\n },\n onClick,\n onMousedown,\n onMouseup,\n },\n [renderSlot(slots, 'default')],\n PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS,\n ['onClick', 'onMouseup', 'onMousedown']\n )\n : h(\n 'div',\n {\n class: props.overlayClass,\n style: {\n zIndex: props.zIndex,\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n } as CSSProperties,\n },\n [renderSlot(slots, 'default')]\n )\n }\n },\n})\n"],"mappings":";;;;;;;;;AAWA,MAAa,eAAeA,6BAAW;CACrC,MAAM;EACJ,MAAM;EACN,SAAS;EACV;CACD,iBAAiB;CACjB,cAAc,EACZ,MAAMC,iCAA4D;EAChE;EACA;EACA;EACD,CAAC,EACH;CACD,QAAQ,EACN,MAAMA,iCAA2B,CAAC,QAAQ,OAAO,CAAC,EACnD;CACF,CAAU;AAIX,MAAa,eAAe,EAC1B,QAAQ,QAAoB,eAAe,YAC5C;AAGD,MAAM,QAAQ;AAEd,+CAA+B;CAC7B,MAAM;CAEN,OAAO;CACP,OAAO;CAEP,MAAM,OAAO,EAAE,OAAO,QAAQ;EAG5B,MAAM,KAAKC,2BAAa,MAAM;EAE9B,MAAM,eAAe,MAAkB;AACrC,QAAK,SAAS,EAAE;;EAGlB,MAAM,EAAE,SAAS,aAAa,cAAcC,8BAC1C,MAAM,kBAAkB,SAAY,YACrC;AAGD,eAAa;AAGX,UAAO,MAAM,4BAEP,OACA;IACE,OAAO,CAAC,GAAG,GAAG,EAAE,MAAM,aAAa;IACnC,OAAO,EACL,QAAQ,MAAM,QACf;IACD;IACA;IACA;IACD,EACD,qBAAY,OAAO,UAAU,CAAC,EAC9BC,yBAAW,QAAQA,yBAAW,QAAQA,yBAAW,OACjD;IAAC;IAAW;IAAa;IAAc,CACxC,cAEC,OACA;IACE,OAAO,MAAM;IACb,OAAO;KACL,QAAQ,MAAM;KACd,UAAU;KACV,KAAK;KACL,OAAO;KACP,QAAQ;KACR,MAAM;KACP;IACF,EACD,qBAAY,OAAO,UAAU,CAAC,CAC/B;;;CAGV,CAAC"}
@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/css.js');
require("element-plus/theme-chalk/el-overlay.css");
@@ -0,0 +1,3 @@
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
require('../../base/style/index.js');
require("element-plus/theme-chalk/src/overlay.scss");