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 { PageHeaderEmits, PageHeaderInstance, PageHeaderProps, PageHeaderPropsPublic, pageHeaderEmits, pageHeaderProps } from "./src/page-header.js";
import { _default } from "./src/page-header.vue.js";
//#region ../../packages/components/page-header/index.d.ts
declare const ElPageHeader: SFCWithInstall<typeof _default>;
//#endregion
export { ElPageHeader, ElPageHeader as default, PageHeaderEmits, PageHeaderInstance, PageHeaderProps, PageHeaderPropsPublic, pageHeaderEmits, pageHeaderProps };
+10
View File
@@ -0,0 +1,10 @@
import { withInstall } from "../../utils/vue/install.mjs";
import { pageHeaderEmits, pageHeaderProps } from "./src/page-header.mjs";
import page_header_default from "./src/page-header2.mjs";
//#region ../../packages/components/page-header/index.ts
const ElPageHeader = withInstall(page_header_default);
//#endregion
export { ElPageHeader, ElPageHeader as default, pageHeaderEmits, pageHeaderProps };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["PageHeader"],"sources":["../../../../../packages/components/page-header/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport PageHeader from './src/page-header.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElPageHeader: SFCWithInstall<typeof PageHeader> =\n withInstall(PageHeader)\nexport default ElPageHeader\n\nexport * from './src/page-header'\n"],"mappings":";;;;;AAKA,MAAa,eACX,YAAYA,oBAAW"}
@@ -0,0 +1,41 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { _default } from "./page-header.vue.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/page-header/src/page-header.d.ts
interface PageHeaderProps {
/**
* @description icon component of page header
*/
icon?: IconPropType;
/**
* @description main title of page header
*/
title?: string;
/**
* @description content of page header
*/
content?: string;
}
/**
* @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead.
*/
declare const pageHeaderProps: {
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 title: StringConstructor;
readonly content: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead.
*/
type PageHeaderPropsPublic = ExtractPublicPropTypes<typeof pageHeaderProps>;
declare const pageHeaderEmits: {
back: () => boolean;
};
type PageHeaderEmits = typeof pageHeaderEmits;
type PageHeaderInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { PageHeaderEmits, PageHeaderInstance, PageHeaderProps, PageHeaderPropsPublic, pageHeaderEmits, pageHeaderProps };
@@ -0,0 +1,24 @@
import { buildProps } from "../../../utils/vue/props/runtime.mjs";
import { iconPropType } from "../../../utils/vue/icon.mjs";
import { Back } from "@element-plus/icons-vue";
//#region ../../packages/components/page-header/src/page-header.ts
/**
* @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead.
*/
const pageHeaderProps = buildProps({
icon: {
type: iconPropType,
default: () => Back
},
title: String,
content: {
type: String,
default: ""
}
});
const pageHeaderEmits = { back: () => true };
//#endregion
export { pageHeaderEmits, pageHeaderProps };
//# sourceMappingURL=page-header.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"page-header.mjs","names":[],"sources":["../../../../../../packages/components/page-header/src/page-header.ts"],"sourcesContent":["import { buildProps, iconPropType } from '@element-plus/utils'\nimport { Back } from '@element-plus/icons-vue'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { IconPropType } from '@element-plus/utils'\nimport type PageHeader from './page-header.vue'\n\nexport interface PageHeaderProps {\n /**\n * @description icon component of page header\n */\n icon?: IconPropType\n /**\n * @description main title of page header\n */\n title?: string\n /**\n * @description content of page header\n */\n content?: string\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead.\n */\nexport const pageHeaderProps = buildProps({\n /**\n * @description icon component of page header\n */\n icon: {\n type: iconPropType,\n default: () => Back,\n },\n /**\n * @description main title of page header\n */\n title: String,\n /**\n * @description content of page header\n */\n content: {\n type: String,\n default: '',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead.\n */\nexport type PageHeaderPropsPublic = ExtractPublicPropTypes<\n typeof pageHeaderProps\n>\n\nexport const pageHeaderEmits = {\n back: () => true,\n}\nexport type PageHeaderEmits = typeof pageHeaderEmits\n\nexport type PageHeaderInstance = InstanceType<typeof PageHeader> & unknown\n"],"mappings":";;;;;;;;AAyBA,MAAa,kBAAkB,WAAW;CAIxC,MAAM;EACJ,MAAM;EACN,eAAe;EAChB;CAID,OAAO;CAIP,SAAS;EACP,MAAM;EACN,SAAS;EACV;CACF,CAAU;AASX,MAAa,kBAAkB,EAC7B,YAAY,MACb"}
@@ -0,0 +1,37 @@
import { IconPropType } from "../../../utils/vue/icon.js";
import "../../../utils/index.js";
import { PageHeaderProps } from "./page-header.js";
import * as vue from "vue";
//#region ../../packages/components/page-header/src/page-header.vue.d.ts
declare var __VLS_1: {}, __VLS_3: {}, __VLS_16: {}, __VLS_23: {}, __VLS_25: {}, __VLS_27: {};
type __VLS_Slots = {} & {
breadcrumb?: (props: typeof __VLS_1) => any;
} & {
icon?: (props: typeof __VLS_3) => any;
} & {
title?: (props: typeof __VLS_16) => any;
} & {
content?: (props: typeof __VLS_23) => any;
} & {
extra?: (props: typeof __VLS_25) => any;
} & {
default?: (props: typeof __VLS_27) => any;
};
declare const __VLS_base: vue.DefineComponent<PageHeaderProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
back: () => void;
}, string, vue.PublicProps, Readonly<PageHeaderProps> & Readonly<{
onBack?: (() => any) | undefined;
}>, {
content: string;
icon: IconPropType;
}, {}, {}, {}, 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,66 @@
import { useLocale } from "../../../hooks/use-locale/index.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { ElIcon } from "../../icon/index.mjs";
import { ElDivider } from "../../divider/index.mjs";
import { pageHeaderEmits, pageHeaderProps } from "./page-header.mjs";
import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
//#region ../../packages/components/page-header/src/page-header.vue?vue&type=script&setup=true&lang.ts
const _hoisted_1 = ["aria-label"];
var page_header_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElPageHeader",
__name: "page-header",
props: pageHeaderProps,
emits: pageHeaderEmits,
setup(__props, { emit: __emit }) {
const emit = __emit;
const { t } = useLocale();
const ns = useNamespace("page-header");
function handleClick() {
emit("back");
}
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", { class: normalizeClass([
unref(ns).b(),
unref(ns).is("contentful", !!_ctx.$slots.default),
{
[unref(ns).m("has-breadcrumb")]: !!_ctx.$slots.breadcrumb,
[unref(ns).m("has-extra")]: !!_ctx.$slots.extra
}
]) }, [
_ctx.$slots.breadcrumb ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(ns).e("breadcrumb"))
}, [renderSlot(_ctx.$slots, "breadcrumb")], 2)) : createCommentVNode("v-if", true),
createElementVNode("div", { class: normalizeClass(unref(ns).e("header")) }, [createElementVNode("div", { class: normalizeClass(unref(ns).e("left")) }, [
createElementVNode("div", {
class: normalizeClass(unref(ns).e("back")),
role: "button",
tabindex: "0",
onClick: handleClick
}, [__props.icon || _ctx.$slots.icon ? (openBlock(), createElementBlock("div", {
key: 0,
"aria-label": __props.title || unref(t)("el.pageHeader.title"),
class: normalizeClass(unref(ns).e("icon"))
}, [renderSlot(_ctx.$slots, "icon", {}, () => [__props.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 0 }, {
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(__props.icon)))]),
_: 1
})) : createCommentVNode("v-if", true)])], 10, _hoisted_1)) : createCommentVNode("v-if", true), createElementVNode("div", { class: normalizeClass(unref(ns).e("title")) }, [renderSlot(_ctx.$slots, "title", {}, () => [createTextVNode(toDisplayString(__props.title || unref(t)("el.pageHeader.title")), 1)])], 2)], 2),
createVNode(unref(ElDivider), { direction: "vertical" }),
createElementVNode("div", { class: normalizeClass(unref(ns).e("content")) }, [renderSlot(_ctx.$slots, "content", {}, () => [createTextVNode(toDisplayString(__props.content), 1)])], 2)
], 2), _ctx.$slots.extra ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(ns).e("extra"))
}, [renderSlot(_ctx.$slots, "extra")], 2)) : createCommentVNode("v-if", true)], 2),
_ctx.$slots.default ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(unref(ns).e("main"))
}, [renderSlot(_ctx.$slots, "default")], 2)) : createCommentVNode("v-if", true)
], 2);
};
}
});
//#endregion
export { page_header_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=page-header.vue_vue_type_script_setup_true_lang.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"page-header.vue_vue_type_script_setup_true_lang.mjs","names":["$slots"],"sources":["../../../../../../packages/components/page-header/src/page-header.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.is('contentful', !!$slots.default),\n {\n [ns.m('has-breadcrumb')]: !!$slots.breadcrumb,\n [ns.m('has-extra')]: !!$slots.extra,\n },\n ]\"\n >\n <div v-if=\"$slots.breadcrumb\" :class=\"ns.e('breadcrumb')\">\n <slot name=\"breadcrumb\" />\n </div>\n <div :class=\"ns.e('header')\">\n <div :class=\"ns.e('left')\">\n <div\n :class=\"ns.e('back')\"\n role=\"button\"\n tabindex=\"0\"\n @click=\"handleClick\"\n >\n <div\n v-if=\"icon || $slots.icon\"\n :aria-label=\"title || t('el.pageHeader.title')\"\n :class=\"ns.e('icon')\"\n >\n <slot name=\"icon\">\n <el-icon v-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n </slot>\n </div>\n <div :class=\"ns.e('title')\">\n <slot name=\"title\">{{ title || t('el.pageHeader.title') }}</slot>\n </div>\n </div>\n <el-divider direction=\"vertical\" />\n <div :class=\"ns.e('content')\">\n <slot name=\"content\">{{ content }}</slot>\n </div>\n </div>\n\n <div v-if=\"$slots.extra\" :class=\"ns.e('extra')\">\n <slot name=\"extra\" />\n </div>\n </div>\n\n <div v-if=\"$slots.default\" :class=\"ns.e('main')\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ElDivider } from '@element-plus/components/divider'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { Back } from '@element-plus/icons-vue'\nimport { pageHeaderEmits } from './page-header'\n\nimport type { PageHeaderProps } from './page-header'\n\ndefineOptions({\n name: 'ElPageHeader',\n})\n\nwithDefaults(defineProps<PageHeaderProps>(), {\n icon: () => Back,\n content: '',\n})\nconst emit = defineEmits(pageHeaderEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('page-header')\n\nfunction handleClick() {\n emit('back')\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;EAuEA,MAAM,OAAO;EAEb,MAAM,EAAE,MAAM,WAAU;EACxB,MAAM,KAAK,aAAa,cAAa;EAErC,SAAS,cAAc;AACrB,QAAK,OAAM;;;uBA5EX,mBAkDM,OAAA,EAjDH,OAAK,eAAA;IAAU,MAAA,GAAE,CAAC,GAAC;IAAU,MAAA,GAAE,CAAC,GAAE,cAAA,CAAA,CAAiBA,KAAAA,OAAO,QAAO;;MAAoB,MAAA,GAAE,CAAC,EAAC,iBAAA,GAAA,CAAA,CAAuBA,KAAAA,OAAO;MAAqB,MAAA,GAAE,CAAC,EAAC,YAAA,GAAA,CAAA,CAAkBA,KAAAA,OAAO;;;IAS/JA,KAAAA,OAAO,2BAAlB,mBAEM,OAAA;;KAFyB,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,aAAA,CAAA;QACxC,WAA0B,KAAA,QAAA,aAAA;IAE5B,mBAgCM,OAAA,EAhCA,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,SAAA,CAAA,KACf,mBA0BM,OAAA,EA1BA,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,OAAA,CAAA;KACf,mBAoBM,OAAA;MAnBH,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,OAAA,CAAA;MACZ,MAAK;MACL,UAAS;MACR,SAAO;SAGA,QAAA,QAAQA,KAAAA,OAAO,qBADvB,mBAUM,OAAA;;MARH,cAAY,QAAA,SAAS,MAAA,EAAC,CAAA,sBAAA;MACtB,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,OAAA,CAAA;SAEZ,WAIO,KAAA,QAAA,QAAA,EAAA,QAAA,CAHU,QAAA,qBAAf,YAEU,MAAA,OAAA,EAAA,EAAA,KAAA,GAAA,EAAA;6BADgB,eAAxB,YAAwB,wBAAR,QAAA,KAAI,CAAA;;qGAI1B,mBAEM,OAAA,EAFA,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,QAAA,CAAA,KACf,WAAiE,KAAA,QAAA,SAAA,EAAA,QAAA,iCAA3C,QAAA,SAAS,MAAA,EAAC,CAAA,sBAAA,CAAA,EAAA,EAAA;KAGpC,YAAmC,MAAA,UAAA,EAAA,EAAvB,WAAU,YAAU,CAAA;KAChC,mBAEM,OAAA,EAFA,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,UAAA,CAAA,KACf,WAAyC,KAAA,QAAA,WAAA,EAAA,QAAA,iCAAjB,QAAA,QAAO,EAAA,EAAA;WAIxBA,KAAAA,OAAO,sBAAlB,mBAEM,OAAA;;KAFoB,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,QAAA,CAAA;QACnC,WAAqB,KAAA,QAAA,QAAA;IAIdA,KAAAA,OAAO,wBAAlB,mBAEM,OAAA;;KAFsB,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,OAAA,CAAA;QACrC,WAAQ,KAAA,QAAA,UAAA"}
@@ -0,0 +1,8 @@
import page_header_vue_vue_type_script_setup_true_lang_default from "./page-header.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/page-header/src/page-header.vue
var page_header_default = page_header_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { page_header_default as default };
//# sourceMappingURL=page-header2.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"page-header2.mjs","names":[],"sources":["../../../../../../packages/components/page-header/src/page-header.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.is('contentful', !!$slots.default),\n {\n [ns.m('has-breadcrumb')]: !!$slots.breadcrumb,\n [ns.m('has-extra')]: !!$slots.extra,\n },\n ]\"\n >\n <div v-if=\"$slots.breadcrumb\" :class=\"ns.e('breadcrumb')\">\n <slot name=\"breadcrumb\" />\n </div>\n <div :class=\"ns.e('header')\">\n <div :class=\"ns.e('left')\">\n <div\n :class=\"ns.e('back')\"\n role=\"button\"\n tabindex=\"0\"\n @click=\"handleClick\"\n >\n <div\n v-if=\"icon || $slots.icon\"\n :aria-label=\"title || t('el.pageHeader.title')\"\n :class=\"ns.e('icon')\"\n >\n <slot name=\"icon\">\n <el-icon v-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n </slot>\n </div>\n <div :class=\"ns.e('title')\">\n <slot name=\"title\">{{ title || t('el.pageHeader.title') }}</slot>\n </div>\n </div>\n <el-divider direction=\"vertical\" />\n <div :class=\"ns.e('content')\">\n <slot name=\"content\">{{ content }}</slot>\n </div>\n </div>\n\n <div v-if=\"$slots.extra\" :class=\"ns.e('extra')\">\n <slot name=\"extra\" />\n </div>\n </div>\n\n <div v-if=\"$slots.default\" :class=\"ns.e('main')\">\n <slot />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ElDivider } from '@element-plus/components/divider'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { Back } from '@element-plus/icons-vue'\nimport { pageHeaderEmits } from './page-header'\n\nimport type { PageHeaderProps } from './page-header'\n\ndefineOptions({\n name: 'ElPageHeader',\n})\n\nwithDefaults(defineProps<PageHeaderProps>(), {\n icon: () => Back,\n content: '',\n})\nconst emit = defineEmits(pageHeaderEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('page-header')\n\nfunction handleClick() {\n emit('back')\n}\n</script>\n"],"mappings":""}
@@ -0,0 +1,3 @@
import "../../base/style/css.mjs";
import "../../divider/style/css.mjs";
import "element-plus/theme-chalk/el-page-header.css";
@@ -0,0 +1,3 @@
import "../../base/style/index.mjs";
import "../../divider/style/index.mjs";
import "element-plus/theme-chalk/src/page-header.scss";