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
+14
View File
@@ -0,0 +1,14 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { SkeletonInstance, SkeletonProps, SkeletonPropsPublic, skeletonProps } from "./src/skeleton.js";
import { _default } from "./src/skeleton.vue.js";
import { SkeletonItemInstance, SkeletonItemProps, SkeletonItemPropsPublic, skeletonItemProps } from "./src/skeleton-item.js";
import { _default as _default$1 } from "./src/skeleton-item.vue.js";
//#region ../../packages/components/skeleton/index.d.ts
declare const ElSkeleton: SFCWithInstall<typeof _default> & {
SkeletonItem: typeof _default$1;
};
declare const ElSkeletonItem: SFCWithInstall<typeof _default$1>;
//#endregion
export { ElSkeleton, ElSkeleton as default, ElSkeletonItem, SkeletonInstance, SkeletonItemInstance, SkeletonItemProps, SkeletonItemPropsPublic, SkeletonProps, SkeletonPropsPublic, skeletonItemProps, skeletonProps };
+13
View File
@@ -0,0 +1,13 @@
import { withInstall, withNoopInstall } from "../../utils/vue/install.mjs";
import { skeletonProps } from "./src/skeleton.mjs";
import { skeletonItemProps } from "./src/skeleton-item.mjs";
import skeleton_item_default from "./src/skeleton-item2.mjs";
import skeleton_default from "./src/skeleton2.mjs";
//#region ../../packages/components/skeleton/index.ts
const ElSkeleton = withInstall(skeleton_default, { SkeletonItem: skeleton_item_default });
const ElSkeletonItem = withNoopInstall(skeleton_item_default);
//#endregion
export { ElSkeleton, ElSkeleton as default, ElSkeletonItem, skeletonItemProps, skeletonProps };
//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["Skeleton","SkeletonItem"],"sources":["../../../../../packages/components/skeleton/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Skeleton from './src/skeleton.vue'\nimport SkeletonItem from './src/skeleton-item.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElSkeleton: SFCWithInstall<typeof Skeleton> & {\n SkeletonItem: typeof SkeletonItem\n} = withInstall(Skeleton, {\n SkeletonItem,\n})\nexport const ElSkeletonItem: SFCWithInstall<typeof SkeletonItem> =\n withNoopInstall(SkeletonItem)\nexport default ElSkeleton\n\nexport * from './src/skeleton'\nexport * from './src/skeleton-item'\n"],"mappings":";;;;;;;AAMA,MAAa,aAET,YAAYA,kBAAU,EACxB,qCACD,CAAC;AACF,MAAa,iBACX,gBAAgBC,sBAAa"}
@@ -0,0 +1,25 @@
import { EpPropFinalized } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { _default } from "./skeleton-item.vue.js";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/skeleton/src/skeleton-item.d.ts
interface SkeletonItemProps {
/**
* @description the current rendering skeleton type
*/
variant?: 'circle' | 'rect' | 'h1' | 'h3' | 'text' | 'caption' | 'p' | 'image' | 'button';
}
/**
* @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.
*/
declare const skeletonItemProps: {
readonly variant: EpPropFinalized<StringConstructor, "text" | "button" | "circle" | "caption" | "image" | "h1" | "h3" | "p" | "rect", unknown, "text", boolean>;
};
/**
* @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.
*/
type SkeletonItemPropsPublic = ExtractPublicPropTypes<typeof skeletonItemProps>;
type SkeletonItemInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { SkeletonItemInstance, SkeletonItemProps, SkeletonItemPropsPublic, skeletonItemProps };
@@ -0,0 +1,25 @@
import { buildProps } from "../../../utils/vue/props/runtime.mjs";
//#region ../../packages/components/skeleton/src/skeleton-item.ts
/**
* @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.
*/
const skeletonItemProps = buildProps({ variant: {
type: String,
values: [
"circle",
"rect",
"h1",
"h3",
"text",
"caption",
"p",
"image",
"button"
],
default: "text"
} });
//#endregion
export { skeletonItemProps };
//# sourceMappingURL=skeleton-item.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton-item.mjs","names":[],"sources":["../../../../../../packages/components/skeleton/src/skeleton-item.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type SkeletonItem from './skeleton-item.vue'\nimport type { ExtractPublicPropTypes } from 'vue'\n\nexport interface SkeletonItemProps {\n /**\n * @description the current rendering skeleton type\n */\n variant?:\n | 'circle'\n | 'rect'\n | 'h1'\n | 'h3'\n | 'text'\n | 'caption'\n | 'p'\n | 'image'\n | 'button'\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.\n */\nexport const skeletonItemProps = buildProps({\n /**\n * @description the current rendering skeleton type\n */\n variant: {\n type: String,\n values: [\n 'circle',\n 'rect',\n 'h1',\n 'h3',\n 'text',\n 'caption',\n 'p',\n 'image',\n 'button',\n ],\n default: 'text',\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead.\n */\nexport type SkeletonItemPropsPublic = ExtractPublicPropTypes<\n typeof skeletonItemProps\n>\n\nexport type SkeletonItemInstance = InstanceType<typeof SkeletonItem> & unknown\n"],"mappings":";;;;;;AAwBA,MAAa,oBAAoB,WAAW,EAI1C,SAAS;CACP,MAAM;CACN,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,SAAS;CACV,EACF,CAAU"}
@@ -0,0 +1,10 @@
import { SkeletonItemProps } from "./skeleton-item.js";
import * as vue from "vue";
//#region ../../packages/components/skeleton/src/skeleton-item.vue.d.ts
declare const __VLS_export: vue.DefineComponent<SkeletonItemProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<SkeletonItemProps> & Readonly<{}>, {
variant: "circle" | "rect" | "h1" | "h3" | "text" | "caption" | "p" | "image" | "button";
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
declare const _default: typeof __VLS_export;
//#endregion
export { _default };
@@ -0,0 +1,21 @@
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { skeletonItemProps } from "./skeleton-item.mjs";
import { PictureFilled } from "@element-plus/icons-vue";
import { createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeClass, openBlock, unref } from "vue";
//#region ../../packages/components/skeleton/src/skeleton-item.vue?vue&type=script&setup=true&lang.ts
var skeleton_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElSkeletonItem",
__name: "skeleton-item",
props: skeletonItemProps,
setup(__props) {
const ns = useNamespace("skeleton");
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", { class: normalizeClass([unref(ns).e("item"), unref(ns).e(__props.variant)]) }, [__props.variant === "image" ? (openBlock(), createBlock(unref(PictureFilled), { key: 0 })) : createCommentVNode("v-if", true)], 2);
};
}
});
//#endregion
export { skeleton_item_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=skeleton-item.vue_vue_type_script_setup_true_lang.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton-item.vue_vue_type_script_setup_true_lang.mjs","names":[],"sources":["../../../../../../packages/components/skeleton/src/skeleton-item.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.e('item'), ns.e(variant)]\">\n <picture-filled v-if=\"variant === 'image'\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { PictureFilled } from '@element-plus/icons-vue'\n\nimport type { SkeletonItemProps } from './skeleton-item.ts'\n\ndefineOptions({\n name: 'ElSkeletonItem',\n})\nwithDefaults(defineProps<SkeletonItemProps>(), {\n variant: 'text',\n})\nconst ns = useNamespace('skeleton')\n</script>\n"],"mappings":";;;;;;;;;;;EAkBA,MAAM,KAAK,aAAa,WAAU;;uBAjBhC,mBAEM,OAAA,EAFA,OAAK,eAAA,CAAG,MAAA,GAAE,CAAC,EAAC,OAAA,EAAU,MAAA,GAAE,CAAC,EAAE,QAAA,QAAO,CAAA,CAAA,KAChB,QAAA,YAAO,wBAA7B,YAA6C,MAAA,cAAA,EAAA,EAAA,KAAA,GAAA,CAAA"}
@@ -0,0 +1,8 @@
import skeleton_item_vue_vue_type_script_setup_true_lang_default from "./skeleton-item.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/skeleton/src/skeleton-item.vue
var skeleton_item_default = skeleton_item_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { skeleton_item_default as default };
//# sourceMappingURL=skeleton-item2.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton-item2.mjs","names":[],"sources":["../../../../../../packages/components/skeleton/src/skeleton-item.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.e('item'), ns.e(variant)]\">\n <picture-filled v-if=\"variant === 'image'\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { PictureFilled } from '@element-plus/icons-vue'\n\nimport type { SkeletonItemProps } from './skeleton-item.ts'\n\ndefineOptions({\n name: 'ElSkeletonItem',\n})\nwithDefaults(defineProps<SkeletonItemProps>(), {\n variant: 'text',\n})\nconst ns = useNamespace('skeleton')\n</script>\n"],"mappings":""}
@@ -0,0 +1,61 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import "../../../utils/index.js";
import { ThrottleType } from "../../../hooks/use-throttle-render/index.js";
import "../../../hooks/index.js";
import { _default } from "./skeleton.vue.js";
import * as vue from "vue";
import { ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/skeleton/src/skeleton.d.ts
interface SkeletonProps {
/**
* @description whether showing the animation
*/
animated?: boolean;
/**
* @description how many fake items to render to the DOM
*/
count?: number;
/**
* @description numbers of the row, only useful when no template slot were given
*/
rows?: number;
/**
* @description whether showing the real DOM
*/
loading?: boolean;
/**
* @description rendering delay in milliseconds
*/
throttle?: ThrottleType;
}
/**
* @deprecated Removed after 3.0.0, Use `SkeletonProps` instead.
*/
declare const skeletonProps: {
readonly animated: BooleanConstructor;
readonly count: EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
readonly rows: EpPropFinalized<NumberConstructor, unknown, unknown, 3, boolean>;
readonly loading: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly throttle: {
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => number | {
leading?: number;
trailing?: number;
initVal?: boolean;
}) | (() => ThrottleType) | (((new (...args: any[]) => number | {
leading?: number;
trailing?: number;
initVal?: boolean;
}) | (() => ThrottleType)) | null)[], unknown, unknown>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
/**
* @deprecated Removed after 3.0.0, Use `SkeletonProps` instead.
*/
type SkeletonPropsPublic = ExtractPublicPropTypes<typeof skeletonProps>;
type SkeletonInstance = InstanceType<typeof _default> & unknown;
//#endregion
export { SkeletonInstance, SkeletonProps, SkeletonPropsPublic, skeletonProps };
@@ -0,0 +1,26 @@
import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs";
//#region ../../packages/components/skeleton/src/skeleton.ts
/**
* @deprecated Removed after 3.0.0, Use `SkeletonProps` instead.
*/
const skeletonProps = buildProps({
animated: Boolean,
count: {
type: Number,
default: 1
},
rows: {
type: Number,
default: 3
},
loading: {
type: Boolean,
default: true
},
throttle: { type: definePropType([Number, Object]) }
});
//#endregion
export { skeletonProps };
//# sourceMappingURL=skeleton.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton.mjs","names":[],"sources":["../../../../../../packages/components/skeleton/src/skeleton.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\n\nimport type Skeleton from './skeleton.vue'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { ThrottleType } from '@element-plus/hooks'\n\nexport interface SkeletonProps {\n /**\n * @description whether showing the animation\n */\n animated?: boolean\n /**\n * @description how many fake items to render to the DOM\n */\n count?: number\n /**\n * @description numbers of the row, only useful when no template slot were given\n */\n rows?: number\n /**\n * @description whether showing the real DOM\n */\n loading?: boolean\n /**\n * @description rendering delay in milliseconds\n */\n throttle?: ThrottleType\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `SkeletonProps` instead.\n */\nexport const skeletonProps = buildProps({\n /**\n * @description whether showing the animation\n */\n animated: Boolean,\n /**\n * @description how many fake items to render to the DOM\n */\n count: {\n type: Number,\n default: 1,\n },\n /**\n * @description numbers of the row, only useful when no template slot were given\n */\n rows: {\n type: Number,\n default: 3,\n },\n /**\n * @description whether showing the real DOM\n */\n loading: {\n type: Boolean,\n default: true,\n },\n /**\n * @description rendering delay in milliseconds\n */\n throttle: {\n type: definePropType<ThrottleType>([Number, Object]),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `SkeletonProps` instead.\n */\nexport type SkeletonPropsPublic = ExtractPublicPropTypes<typeof skeletonProps>\n\nexport type SkeletonInstance = InstanceType<typeof Skeleton> & unknown\n"],"mappings":";;;;;;AAgCA,MAAa,gBAAgB,WAAW;CAItC,UAAU;CAIV,OAAO;EACL,MAAM;EACN,SAAS;EACV;CAID,MAAM;EACJ,MAAM;EACN,SAAS;EACV;CAID,SAAS;EACP,MAAM;EACN,SAAS;EACV;CAID,UAAU,EACR,MAAM,eAA6B,CAAC,QAAQ,OAAO,CAAC,EACrD;CACF,CAAU"}
@@ -0,0 +1,28 @@
import { SkeletonProps } from "./skeleton.js";
import * as vue from "vue";
//#region ../../packages/components/skeleton/src/skeleton.vue.d.ts
declare var __VLS_1: {
key: number;
}, __VLS_13: {};
type __VLS_Slots = {} & {
template?: (props: typeof __VLS_1) => any;
} & {
default?: (props: typeof __VLS_13) => any;
};
declare const __VLS_base: vue.DefineComponent<SkeletonProps, {
/** @description loading state */uiLoading: vue.Ref<boolean, boolean>;
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {
rows: number;
loading: boolean;
count: 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,39 @@
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { useThrottleRender } from "../../../hooks/use-throttle-render/index.mjs";
import { skeletonProps } from "./skeleton.mjs";
import skeleton_item_default from "./skeleton-item2.mjs";
import { Fragment, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, mergeProps, normalizeClass, normalizeProps, openBlock, renderList, renderSlot, toRef, unref } from "vue";
//#region ../../packages/components/skeleton/src/skeleton.vue?vue&type=script&setup=true&lang.ts
var skeleton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
name: "ElSkeleton",
__name: "skeleton",
props: skeletonProps,
setup(__props, { expose: __expose }) {
const props = __props;
const ns = useNamespace("skeleton");
const uiLoading = useThrottleRender(toRef(props, "loading"), props.throttle);
__expose({ uiLoading });
return (_ctx, _cache) => {
return unref(uiLoading) ? (openBlock(), createElementBlock("div", mergeProps({
key: 0,
class: [unref(ns).b(), unref(ns).is("animated", __props.animated)]
}, _ctx.$attrs), [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.count, (i) => {
return openBlock(), createElementBlock(Fragment, { key: i }, [unref(uiLoading) ? renderSlot(_ctx.$slots, "template", { key: i }, () => [createVNode(skeleton_item_default, {
class: normalizeClass(unref(ns).is("first")),
variant: "p"
}, null, 8, ["class"]), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.rows, (item) => {
return openBlock(), createBlock(skeleton_item_default, {
key: item,
class: normalizeClass([unref(ns).e("paragraph"), unref(ns).is("last", item === __props.rows && __props.rows > 1)]),
variant: "p"
}, null, 8, ["class"]);
}), 128))]) : createCommentVNode("v-if", true)], 64);
}), 128))], 16)) : renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)));
};
}
});
//#endregion
export { skeleton_vue_vue_type_script_setup_true_lang_default as default };
//# sourceMappingURL=skeleton.vue_vue_type_script_setup_true_lang.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton.vue_vue_type_script_setup_true_lang.mjs","names":["$attrs"],"sources":["../../../../../../packages/components/skeleton/src/skeleton.vue"],"sourcesContent":["<template>\n <template v-if=\"uiLoading\">\n <div :class=\"[ns.b(), ns.is('animated', animated)]\" v-bind=\"$attrs\">\n <template v-for=\"i in count\" :key=\"i\">\n <slot v-if=\"uiLoading\" :key=\"i\" name=\"template\">\n <el-skeleton-item :class=\"ns.is('first')\" variant=\"p\" />\n <el-skeleton-item\n v-for=\"item in rows\"\n :key=\"item\"\n :class=\"[\n ns.e('paragraph'),\n ns.is('last', item === rows && rows > 1),\n ]\"\n variant=\"p\"\n />\n </slot>\n </template>\n </div>\n </template>\n <template v-else>\n <slot v-bind=\"$attrs\" />\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { toRef } from 'vue'\nimport { useNamespace, useThrottleRender } from '@element-plus/hooks'\nimport ElSkeletonItem from './skeleton-item.vue'\n\nimport type { SkeletonProps } from './skeleton.ts'\n\ndefineOptions({\n name: 'ElSkeleton',\n})\nconst props = withDefaults(defineProps<SkeletonProps>(), {\n loading: true,\n count: 1,\n rows: 3,\n})\n\nconst ns = useNamespace('skeleton')\nconst uiLoading = useThrottleRender(toRef(props, 'loading'), props.throttle)\n\ndefineExpose({\n /** @description loading state */\n uiLoading,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;EAkCA,MAAM,QAAQ;EAMd,MAAM,KAAK,aAAa,WAAU;EAClC,MAAM,YAAY,kBAAkB,MAAM,OAAO,UAAU,EAAE,MAAM,SAAQ;AAE3E,WAAa,EAEX,WACD,CAAA;;UA7CiB,MAAA,UAAS,iBACvB,mBAeM,OAfN,WAeM;;IAfA,OAAK,CAAG,MAAA,GAAE,CAAC,GAAC,EAAI,MAAA,GAAE,CAAC,GAAE,YAAa,QAAA,SAAQ,CAAA;MAAYA,KAAAA,OAAM,EAAA,mBAChE,mBAaW,UAAA,MAAA,WAbW,QAAA,QAAL,MAAC;4DAAiB,GAAC,EAAA,CACtB,MAAA,UAAS,GAArB,WAWO,KAAA,QAAA,YAAA,EAXiB,KAAK,GAAC,QAWvB,CAVL,YAAwD,uBAAA;KAArC,OAAK,eAAE,MAAA,GAAE,CAAC,GAAE,QAAA,CAAA;KAAW,SAAQ;8CAClD,mBAQE,UAAA,MAAA,WAPe,QAAA,OAAR,SAAI;yBADb,YAQE,uBAAA;MANC,KAAK;MACL,OAAK,eAAA,CAAkB,MAAA,GAAE,CAAC,EAAC,YAAA,EAA6B,MAAA,GAAE,CAAC,GAAE,QAAS,SAAS,QAAA,QAAQ,QAAA,OAAI,EAAA;MAI5F,SAAQ;;;sBAOhB,WAAwB,KAAA,QAAA,WAAA,eAAA,WAAA,EAAA,KAAA,GAAA,EAAVA,KAAAA,OAAM,CAAA,CAAA"}
@@ -0,0 +1,8 @@
import skeleton_vue_vue_type_script_setup_true_lang_default from "./skeleton.vue_vue_type_script_setup_true_lang.mjs";
//#region ../../packages/components/skeleton/src/skeleton.vue
var skeleton_default = skeleton_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { skeleton_default as default };
//# sourceMappingURL=skeleton2.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"skeleton2.mjs","names":[],"sources":["../../../../../../packages/components/skeleton/src/skeleton.vue"],"sourcesContent":["<template>\n <template v-if=\"uiLoading\">\n <div :class=\"[ns.b(), ns.is('animated', animated)]\" v-bind=\"$attrs\">\n <template v-for=\"i in count\" :key=\"i\">\n <slot v-if=\"uiLoading\" :key=\"i\" name=\"template\">\n <el-skeleton-item :class=\"ns.is('first')\" variant=\"p\" />\n <el-skeleton-item\n v-for=\"item in rows\"\n :key=\"item\"\n :class=\"[\n ns.e('paragraph'),\n ns.is('last', item === rows && rows > 1),\n ]\"\n variant=\"p\"\n />\n </slot>\n </template>\n </div>\n </template>\n <template v-else>\n <slot v-bind=\"$attrs\" />\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { toRef } from 'vue'\nimport { useNamespace, useThrottleRender } from '@element-plus/hooks'\nimport ElSkeletonItem from './skeleton-item.vue'\n\nimport type { SkeletonProps } from './skeleton.ts'\n\ndefineOptions({\n name: 'ElSkeleton',\n})\nconst props = withDefaults(defineProps<SkeletonProps>(), {\n loading: true,\n count: 1,\n rows: 3,\n})\n\nconst ns = useNamespace('skeleton')\nconst uiLoading = useThrottleRender(toRef(props, 'loading'), props.throttle)\n\ndefineExpose({\n /** @description loading state */\n uiLoading,\n})\n</script>\n"],"mappings":""}
@@ -0,0 +1,3 @@
import "../../base/style/css.mjs";
import "../../skeleton-item/style/css.mjs";
import "element-plus/theme-chalk/el-skeleton.css";
@@ -0,0 +1,3 @@
import "../../base/style/index.mjs";
import "../../skeleton-item/style/index.mjs";
import "element-plus/theme-chalk/src/skeleton.scss";