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
+9
View File
@@ -0,0 +1,9 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { IconComponentMap, IconMap, ResultInstance, ResultProps, ResultPropsPublic, resultProps } from "./src/result.js";
import { _default } from "./src/result.vue.js";
//#region ../../packages/components/result/index.d.ts
declare const ElResult: SFCWithInstall<typeof _default>;
//#endregion
export { ElResult, ElResult as default, IconComponentMap, IconMap, ResultInstance, ResultProps, ResultPropsPublic, resultProps };
+10
View File
@@ -0,0 +1,10 @@
import { withInstall } from "../../utils/vue/install.mjs";
import { IconComponentMap, IconMap, resultProps } from "./src/result.mjs";
import result_default from "./src/result2.mjs";
//#region ../../packages/components/result/index.ts
const ElResult = withInstall(result_default);
//#endregion
export { ElResult, ElResult as default, IconComponentMap, IconMap, resultProps };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["Result"],"sources":["../../../../../packages/components/result/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Result from './src/result.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElResult: SFCWithInstall<typeof Result> = withInstall(Result)\n\nexport default ElResult\n\nexport * from './src/result'\n"],"mappings":";;;;;AAKA,MAAa,WAA0C,YAAYA,eAAO"}
@@ -0,0 +1,43 @@
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { _default } from "./result.vue.js";
import { Component, ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/result/src/result.d.ts
declare const IconMap: {
readonly primary: "icon-primary";
readonly success: "icon-success";
readonly warning: "icon-warning";
readonly error: "icon-error";
readonly info: "icon-info";
};
declare const IconComponentMap: Record<(typeof IconMap)[keyof typeof IconMap], Component>;
interface ResultProps {
/**
* @description title of result
*/
title?: string;
/**
* @description sub title of result
*/
subTitle?: string;
/**
* @description icon type of result
*/
icon?: 'primary' | 'success' | 'warning' | 'info' | 'error';
}
/**
* @deprecated Removed after 3.0.0, Use `ResultProps` instead.
*/
declare const resultProps: {
readonly title: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly subTitle: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly icon: EpPropFinalized<StringConstructor, "error" | "info" | "primary" | "success" | "warning", unknown, "info", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `ResultProps` instead.
*/
type ResultPropsPublic = ExtractPublicPropTypes<typeof resultProps>;
type ResultInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { IconComponentMap, IconMap, ResultInstance, ResultProps, ResultPropsPublic, resultProps };
+46
View File
@@ -0,0 +1,46 @@
import { buildProps } from "../../../utils/vue/props/runtime.mjs";
import { CircleCheckFilled, CircleCloseFilled, InfoFilled, WarningFilled } from "@element-plus/icons-vue";
//#region ../../packages/components/result/src/result.ts
const IconMap = {
primary: "icon-primary",
success: "icon-success",
warning: "icon-warning",
error: "icon-error",
info: "icon-info"
};
const IconComponentMap = {
[IconMap.primary]: InfoFilled,
[IconMap.success]: CircleCheckFilled,
[IconMap.warning]: WarningFilled,
[IconMap.error]: CircleCloseFilled,
[IconMap.info]: InfoFilled
};
/**
* @deprecated Removed after 3.0.0, Use `ResultProps` instead.
*/
const resultProps = buildProps({
title: {
type: String,
default: ""
},
subTitle: {
type: String,
default: ""
},
icon: {
type: String,
values: [
"primary",
"success",
"warning",
"info",
"error"
],
default: "info"
}
});
//#endregion
export { IconComponentMap, IconMap, resultProps };
//# sourceMappingURL=result.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"result.mjs","names":[],"sources":["../../../../../../packages/components/result/src/result.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport {\n CircleCheckFilled,\n CircleCloseFilled,\n InfoFilled,\n WarningFilled,\n} from '@element-plus/icons-vue'\n\nimport type { Component, ExtractPublicPropTypes } from 'vue'\nimport type Result from './result.vue'\n\nexport const IconMap = {\n primary: 'icon-primary',\n success: 'icon-success',\n warning: 'icon-warning',\n error: 'icon-error',\n info: 'icon-info',\n} as const\n\nexport const IconComponentMap: Record<\n (typeof IconMap)[keyof typeof IconMap],\n Component\n> = {\n [IconMap.primary]: InfoFilled,\n [IconMap.success]: CircleCheckFilled,\n [IconMap.warning]: WarningFilled,\n [IconMap.error]: CircleCloseFilled,\n [IconMap.info]: InfoFilled,\n}\n\nexport interface ResultProps {\n /**\n * @description title of result\n */\n title?: string\n /**\n * @description sub title of result\n */\n subTitle?: string\n /**\n * @description icon type of result\n */\n icon?: 'primary' | 'success' | 'warning' | 'info' | 'error'\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ResultProps` instead.\n */\nexport const resultProps = buildProps({\n /**\n * @description title of result\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description sub title of result\n */\n subTitle: {\n type: String,\n default: '',\n },\n /**\n * @description icon type of result\n */\n icon: {\n type: String,\n values: ['primary', 'success', 'warning', 'info', 'error'],\n default: 'info',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `ResultProps` instead.\n */\nexport type ResultPropsPublic = ExtractPublicPropTypes<typeof resultProps>\n\nexport type ResultInstance = InstanceType<typeof Result> & unknown\n"],"mappings":";;;;AAWA,MAAa,UAAU;CACrB,SAAS;CACT,SAAS;CACT,SAAS;CACT,OAAO;CACP,MAAM;CACP;AAED,MAAa,mBAGT;EACD,QAAQ,UAAU;EAClB,QAAQ,UAAU;EAClB,QAAQ,UAAU;EAClB,QAAQ,QAAQ;EAChB,QAAQ,OAAO;CACjB;;;;AAoBD,MAAa,cAAc,WAAW;CAIpC,OAAO;EACL,MAAM;EACN,SAAS;EACV;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAM;EACN,QAAQ;GAAC;GAAW;GAAW;GAAW;GAAQ;GAAQ;EAC1D,SAAS;EACV;CACF,CAAU"}
@@ -0,0 +1,28 @@
import { ResultProps } from "./result.js";
import * as vue from "vue";
//#region ../../packages/components/result/src/result.vue.d.ts
declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {}, __VLS_12: {};
type __VLS_Slots = {} & {
icon?: (props: typeof __VLS_1) => any;
} & {
title?: (props: typeof __VLS_8) => any;
} & {
'sub-title'?: (props: typeof __VLS_10) => any;
} & {
extra?: (props: typeof __VLS_12) => any;
};
declare const __VLS_base: vue.DefineComponent<ResultProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<ResultProps> & Readonly<{}>, {
title: string;
icon: "primary" | "success" | "warning" | "info" | "error";
subTitle: 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,46 @@
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { IconComponentMap, IconMap, resultProps } from "./result.mjs";
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref } from "vue";
//#region ../../packages/components/result/src/result.vue?vue&type=script&setup=true&lang.ts
var result_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElResult",
__name: "result",
props: resultProps,
setup(__props) {
const props = __props;
const ns = useNamespace("result");
const resultIcon = computed(() => {
const icon = props.icon;
const iconClass = icon && IconMap[icon] ? IconMap[icon] : "icon-info";
return {
class: iconClass,
component: IconComponentMap[iconClass] || IconComponentMap["icon-info"]
};
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", { class: normalizeClass(unref(ns).b()) }, [
createElementVNode("div", { class: normalizeClass(unref(ns).e("icon")) }, [renderSlot(_ctx.$slots, "icon", {}, () => [resultIcon.value.component ? (openBlock(), createBlock(resolveDynamicComponent(resultIcon.value.component), {
key: 0,
class: normalizeClass(resultIcon.value.class)
}, null, 8, ["class"])) : createCommentVNode("v-if", true)])], 2),
__props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(ns).e("title"))
}, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("p", null, toDisplayString(__props.title), 1)])], 2)) : createCommentVNode("v-if", true),
__props.subTitle || _ctx.$slots["sub-title"] ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(unref(ns).e("subtitle"))
}, [renderSlot(_ctx.$slots, "sub-title", {}, () => [createElementVNode("p", null, toDisplayString(__props.subTitle), 1)])], 2)) : createCommentVNode("v-if", true),
_ctx.$slots.extra ? (openBlock(), createElementBlock("div", {
key: 2,
class: normalizeClass(unref(ns).e("extra"))
}, [renderSlot(_ctx.$slots, "extra")], 2)) : createCommentVNode("v-if", true)
], 2);
};
}
});
//#endregion
export { result_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=result.vue_vue_type_script_setup_true_lang.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"result.vue_vue_type_script_setup_true_lang.mjs","names":["$slots"],"sources":["../../../../../../packages/components/result/src/result.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('icon')\">\n <slot name=\"icon\">\n <component\n :is=\"resultIcon.component\"\n v-if=\"resultIcon.component\"\n :class=\"resultIcon.class\"\n />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" :class=\"ns.e('title')\">\n <slot name=\"title\">\n <p>{{ title }}</p>\n </slot>\n </div>\n <div v-if=\"subTitle || $slots['sub-title']\" :class=\"ns.e('subtitle')\">\n <slot name=\"sub-title\">\n <p>{{ subTitle }}</p>\n </slot>\n </div>\n <div v-if=\"$slots.extra\" :class=\"ns.e('extra')\">\n <slot name=\"extra\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { IconComponentMap, IconMap } from './result'\n\nimport type { ResultProps } from './result'\n\ndefineOptions({\n name: 'ElResult',\n})\n\nconst props = withDefaults(defineProps<ResultProps>(), {\n title: '',\n subTitle: '',\n icon: 'info',\n})\n\nconst ns = useNamespace('result')\n\nconst resultIcon = computed(() => {\n const icon = props.icon\n const iconClass = icon && IconMap[icon] ? IconMap[icon] : 'icon-info'\n const iconComponent =\n IconComponentMap[iconClass] || IconComponentMap['icon-info']\n\n return {\n class: iconClass,\n component: iconComponent,\n }\n})\n</script>\n"],"mappings":";;;;;;;;;;EAsCA,MAAM,QAAQ;EAMd,MAAM,KAAK,aAAa,SAAQ;EAEhC,MAAM,aAAa,eAAe;GAChC,MAAM,OAAO,MAAM;GACnB,MAAM,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ;AAI1D,UAAO;IACL,OAAO;IACP,WAJA,iBAAiB,cAAc,iBAAiB;IAKlD;IACD;;uBAvDC,mBAuBM,OAAA,EAvBA,OAAK,eAAE,MAAA,GAAE,CAAC,GAAC,CAAA;IACf,mBAQM,OAAA,EARA,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,OAAA,CAAA,KACf,WAMO,KAAA,QAAA,QAAA,EAAA,QAAA,CAHG,WAAA,MAAW,0BAFnB,YAIE,wBAHK,WAAA,MAAW,UAAS,EAAA;;KAExB,OAAK,eAAE,WAAA,MAAW,MAAK;;IAInB,QAAA,SAASA,KAAAA,OAAO,sBAA3B,mBAIM,OAAA;;KAJ6B,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,QAAA,CAAA;QAC5C,WAEO,KAAA,QAAA,SAAA,EAAA,QAAA,CADL,mBAAkB,KAAA,MAAA,gBAAZ,QAAA,MAAK,EAAA,EAAA;IAGJ,QAAA,YAAYA,KAAAA,OAAM,6BAA7B,mBAIM,OAAA;;KAJuC,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,WAAA,CAAA;QACtD,WAEO,KAAA,QAAA,aAAA,EAAA,QAAA,CADL,mBAAqB,KAAA,MAAA,gBAAf,QAAA,SAAQ,EAAA,EAAA;IAGPA,KAAAA,OAAO,sBAAlB,mBAEM,OAAA;;KAFoB,OAAK,eAAE,MAAA,GAAE,CAAC,EAAC,QAAA,CAAA;QACnC,WAAqB,KAAA,QAAA,QAAA"}
@@ -0,0 +1,8 @@
import result_vue_vue_type_script_setup_true_lang_default from "./result.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/result/src/result.vue
var result_default = result_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { result_default as default };
//# sourceMappingURL=result2.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"result2.mjs","names":[],"sources":["../../../../../../packages/components/result/src/result.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('icon')\">\n <slot name=\"icon\">\n <component\n :is=\"resultIcon.component\"\n v-if=\"resultIcon.component\"\n :class=\"resultIcon.class\"\n />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" :class=\"ns.e('title')\">\n <slot name=\"title\">\n <p>{{ title }}</p>\n </slot>\n </div>\n <div v-if=\"subTitle || $slots['sub-title']\" :class=\"ns.e('subtitle')\">\n <slot name=\"sub-title\">\n <p>{{ subTitle }}</p>\n </slot>\n </div>\n <div v-if=\"$slots.extra\" :class=\"ns.e('extra')\">\n <slot name=\"extra\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { IconComponentMap, IconMap } from './result'\n\nimport type { ResultProps } from './result'\n\ndefineOptions({\n name: 'ElResult',\n})\n\nconst props = withDefaults(defineProps<ResultProps>(), {\n title: '',\n subTitle: '',\n icon: 'info',\n})\n\nconst ns = useNamespace('result')\n\nconst resultIcon = computed(() => {\n const icon = props.icon\n const iconClass = icon && IconMap[icon] ? IconMap[icon] : 'icon-info'\n const iconComponent =\n IconComponentMap[iconClass] || IconComponentMap['icon-info']\n\n return {\n class: iconClass,\n component: iconComponent,\n }\n})\n</script>\n"],"mappings":""}
@@ -0,0 +1,2 @@
import "../../base/style/css.mjs";
import "element-plus/theme-chalk/el-result.css";
@@ -0,0 +1,2 @@
import "../../base/style/index.mjs";
import "element-plus/theme-chalk/src/result.scss";