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
+10
View File
@@ -0,0 +1,10 @@
import { SFCWithInstall } from "../../utils/vue/typescript.js";
import "../../utils/index.js";
import { Space, SpaceInstance, SpaceProps, SpacePropsPublic, spaceProps } from "./src/space.js";
import { SpaceItemInstance, SpaceItemProps, SpaceItemPropsPublic, spaceItemProps } from "./src/item.js";
import { useSpace } from "./src/use-space.js";
//#region ../../packages/components/space/index.d.ts
declare const ElSpace: SFCWithInstall<typeof Space>;
//#endregion
export { ElSpace, ElSpace as default, SpaceInstance, SpaceItemInstance, SpaceItemProps, SpaceItemPropsPublic, SpaceProps, SpacePropsPublic, spaceItemProps, spaceProps, useSpace };
+11
View File
@@ -0,0 +1,11 @@
import { withInstall } from "../../utils/vue/install.mjs";
import { spaceItemProps } from "./src/item.mjs";
import { useSpace } from "./src/use-space.mjs";
import Space, { spaceProps } from "./src/space.mjs";
//#region ../../packages/components/space/index.ts
const ElSpace = withInstall(Space);
//#endregion
export { ElSpace, ElSpace as default, spaceItemProps, spaceProps, useSpace };
//# sourceMappingURL=index.mjs.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../packages/components/space/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport Space from './src/space'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElSpace: SFCWithInstall<typeof Space> = withInstall(Space)\nexport default ElSpace\n\nexport * from './src/space'\nexport * from './src/item'\nexport * from './src/use-space'\n"],"mappings":";;;;;;AAKA,MAAa,UAAwC,YAAY,MAAM"}
+34
View File
@@ -0,0 +1,34 @@
import * as vue from "vue";
import { ExtractPropTypes, ExtractPublicPropTypes } from "vue";
//#region ../../packages/components/space/src/item.d.ts
declare const spaceItemProps: {
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
type SpaceItemProps = ExtractPropTypes<typeof spaceItemProps>;
type SpaceItemPropsPublic = ExtractPublicPropTypes<typeof spaceItemProps>;
declare const SpaceItem: vue.DefineComponent<ExtractPropTypes<{
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<ExtractPropTypes<{
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
type SpaceItemInstance = InstanceType<typeof SpaceItem> & unknown;
//#endregion
export { SpaceItemInstance, SpaceItemProps, SpaceItemPropsPublic, spaceItemProps };
+19
View File
@@ -0,0 +1,19 @@
import { buildProps } from "../../../utils/vue/props/runtime.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { computed, defineComponent, h, renderSlot } from "vue";
//#region ../../packages/components/space/src/item.ts
const spaceItemProps = buildProps({ prefixCls: { type: String } });
const SpaceItem = defineComponent({
name: "ElSpaceItem",
props: spaceItemProps,
setup(props, { slots }) {
const ns = useNamespace("space");
const classes = computed(() => `${props.prefixCls || ns.b()}__item`);
return () => h("div", { class: classes.value }, renderSlot(slots, "default"));
}
});
//#endregion
export { SpaceItem as default, spaceItemProps };
//# sourceMappingURL=item.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"item.mjs","names":[],"sources":["../../../../../../packages/components/space/src/item.ts"],"sourcesContent":["import { computed, defineComponent, h, renderSlot } from 'vue'\nimport { buildProps } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue'\n\nexport const spaceItemProps = buildProps({\n prefixCls: {\n type: String,\n },\n} as const)\nexport type SpaceItemProps = ExtractPropTypes<typeof spaceItemProps>\nexport type SpaceItemPropsPublic = ExtractPublicPropTypes<typeof spaceItemProps>\n\nconst SpaceItem = defineComponent({\n name: 'ElSpaceItem',\n\n props: spaceItemProps,\n\n setup(props, { slots }) {\n const ns = useNamespace('space')\n\n const classes = computed(() => `${props.prefixCls || ns.b()}__item`)\n\n return () =>\n h('div', { class: classes.value }, renderSlot(slots, 'default'))\n },\n})\nexport type SpaceItemInstance = InstanceType<typeof SpaceItem> & unknown\n\nexport default SpaceItem\n"],"mappings":";;;;;AAMA,MAAa,iBAAiB,WAAW,EACvC,WAAW,EACT,MAAM,QACP,EACF,CAAU;AAIX,MAAM,YAAY,gBAAgB;CAChC,MAAM;CAEN,OAAO;CAEP,MAAM,OAAO,EAAE,SAAS;EACtB,MAAM,KAAK,aAAa,QAAQ;EAEhC,MAAM,UAAU,eAAe,GAAG,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ;AAEpE,eACE,EAAE,OAAO,EAAE,OAAO,QAAQ,OAAO,EAAE,WAAW,OAAO,UAAU,CAAC;;CAErE,CAAC"}
+100
View File
@@ -0,0 +1,100 @@
import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
import { Arrayable } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import * as vue from "vue";
import { ExtractPropTypes, ExtractPublicPropTypes, StyleValue, VNode, VNodeChild } from "vue";
import * as csstype from "csstype";
//#region ../../packages/components/space/src/space.d.ts
declare const spaceProps: {
readonly direction: EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "horizontal", boolean>;
readonly class: EpPropFinalized<(new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>) | (((new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>)) | null)[], unknown, unknown, "", boolean>;
readonly style: EpPropFinalized<(new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, "", boolean>;
readonly alignment: EpPropFinalized<(new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined) | (((new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined)) | null)[], unknown, unknown, "center", boolean>;
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly spacer: EpPropFinalized<(new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild) | (((new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild)) | null)[], unknown, string | number | VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, null, boolean>;
readonly wrap: BooleanConstructor;
readonly fill: BooleanConstructor;
readonly fillRatio: EpPropFinalized<NumberConstructor, unknown, unknown, 100, boolean>;
readonly size: {
readonly type: vue.PropType<EpPropMergeType<readonly [StringConstructor, ArrayConstructor, NumberConstructor], "" | "default" | "small" | "large", number | [number, number]>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
};
type SpaceProps = ExtractPropTypes<typeof spaceProps>;
type SpacePropsPublic = ExtractPublicPropTypes<typeof spaceProps>;
declare const Space: vue.DefineComponent<ExtractPropTypes<{
readonly direction: EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "horizontal", boolean>;
readonly class: EpPropFinalized<(new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>) | (((new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>)) | null)[], unknown, unknown, "", boolean>;
readonly style: EpPropFinalized<(new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, "", boolean>;
readonly alignment: EpPropFinalized<(new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined) | (((new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined)) | null)[], unknown, unknown, "center", boolean>;
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly spacer: EpPropFinalized<(new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild) | (((new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild)) | null)[], unknown, string | number | VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, null, boolean>;
readonly wrap: BooleanConstructor;
readonly fill: BooleanConstructor;
readonly fillRatio: EpPropFinalized<NumberConstructor, unknown, unknown, 100, boolean>;
readonly size: {
readonly type: vue.PropType<EpPropMergeType<readonly [StringConstructor, ArrayConstructor, NumberConstructor], "" | "default" | "small" | "large", number | [number, number]>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>, () => string | VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}> | {
[name: string]: unknown;
$stable?: boolean;
} | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<ExtractPropTypes<{
readonly direction: EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "horizontal", boolean>;
readonly class: EpPropFinalized<(new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>) | (((new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>)) | null)[], unknown, unknown, "", boolean>;
readonly style: EpPropFinalized<(new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, "", boolean>;
readonly alignment: EpPropFinalized<(new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined) | (((new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined)) | null)[], unknown, unknown, "center", boolean>;
readonly prefixCls: {
readonly type: vue.PropType<string>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
readonly spacer: EpPropFinalized<(new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild) | (((new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild)) | null)[], unknown, string | number | VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, null, boolean>;
readonly wrap: BooleanConstructor;
readonly fill: BooleanConstructor;
readonly fillRatio: EpPropFinalized<NumberConstructor, unknown, unknown, 100, boolean>;
readonly size: {
readonly type: vue.PropType<EpPropMergeType<readonly [StringConstructor, ArrayConstructor, NumberConstructor], "" | "default" | "small" | "large", number | [number, number]>>;
readonly required: false;
readonly validator: ((val: unknown) => boolean) | undefined;
__epPropKey: true;
};
}>> & Readonly<{}>, {
readonly fill: boolean;
readonly style: StyleValue;
readonly wrap: boolean;
readonly direction: EpPropMergeType<StringConstructor, "horizontal" | "vertical", unknown>;
readonly class: EpPropMergeType<(new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>) | (((new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>)) | null)[], unknown, unknown>;
readonly alignment: EpPropMergeType<(new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined) | (((new (...args: any[]) => string) | (() => csstype.Property.AlignItems | undefined)) | null)[], unknown, unknown>;
readonly spacer: EpPropMergeType<(new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild) | (((new (...args: any[]) => VNodeChild & {}) | (() => VNodeChild)) | null)[], unknown, string | number | VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>>;
readonly fillRatio: number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
type SpaceInstance = InstanceType<typeof Space> & unknown;
//#endregion
export { Space, SpaceInstance, SpaceProps, SpacePropsPublic, spaceProps };
+120
View File
@@ -0,0 +1,120 @@
import { componentSizes } from "../../../constants/size.mjs";
import { isArray, isNumber, isString } from "../../../utils/types.mjs";
import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs";
import { PatchFlags, isFragment, isValidElementNode } from "../../../utils/vue/vnode.mjs";
import SpaceItem from "./item.mjs";
import { useSpace } from "./use-space.mjs";
import { Comment, createTextVNode, createVNode, defineComponent, isVNode, renderSlot } from "vue";
//#region ../../packages/components/space/src/space.ts
const spaceProps = buildProps({
direction: {
type: String,
values: ["horizontal", "vertical"],
default: "horizontal"
},
class: {
type: definePropType([
String,
Object,
Array
]),
default: ""
},
style: {
type: definePropType([
String,
Array,
Object
]),
default: ""
},
alignment: {
type: definePropType(String),
default: "center"
},
prefixCls: { type: String },
spacer: {
type: definePropType([
Object,
String,
Number,
Array
]),
default: null,
validator: (val) => isVNode(val) || isNumber(val) || isString(val)
},
wrap: Boolean,
fill: Boolean,
fillRatio: {
type: Number,
default: 100
},
size: {
type: [
String,
Array,
Number
],
values: componentSizes,
validator: (val) => {
return isNumber(val) || isArray(val) && val.length === 2 && val.every(isNumber);
}
}
});
const Space = defineComponent({
name: "ElSpace",
props: spaceProps,
setup(props, { slots }) {
const { classes, containerStyle, itemStyle } = useSpace(props);
function extractChildren(children, parentKey = "", extractedChildren = []) {
const { prefixCls } = props;
children.forEach((child, loopKey) => {
if (isFragment(child)) {
if (isArray(child.children)) child.children.forEach((nested, key) => {
if (isFragment(nested) && isArray(nested.children)) extractChildren(nested.children, `${parentKey + key}-`, extractedChildren);
else if (isVNode(nested) && nested?.type === Comment) extractedChildren.push(nested);
else extractedChildren.push(createVNode(SpaceItem, {
style: itemStyle.value,
prefixCls,
key: `nested-${parentKey + key}`
}, { default: () => [nested] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"]));
});
} else if (isValidElementNode(child)) extractedChildren.push(createVNode(SpaceItem, {
style: itemStyle.value,
prefixCls,
key: `LoopKey${parentKey + loopKey}`
}, { default: () => [child] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"]));
});
return extractedChildren;
}
return () => {
const { spacer, direction } = props;
const children = renderSlot(slots, "default", { key: 0 }, () => []);
if ((children.children ?? []).length === 0) return null;
if (isArray(children.children)) {
let extractedChildren = extractChildren(children.children);
if (spacer) {
const len = extractedChildren.length - 1;
extractedChildren = extractedChildren.reduce((acc, child, idx) => {
const children = [...acc, child];
if (idx !== len) children.push(createVNode("span", {
style: [itemStyle.value, direction === "vertical" ? "width: 100%" : null],
key: idx
}, [isVNode(spacer) ? spacer : createTextVNode(spacer, PatchFlags.TEXT)], PatchFlags.STYLE));
return children;
}, []);
}
return createVNode("div", {
class: classes.value,
style: containerStyle.value
}, extractedChildren, PatchFlags.STYLE | PatchFlags.CLASS);
}
return children.children;
};
}
});
//#endregion
export { Space as default, spaceProps };
//# sourceMappingURL=space.mjs.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,15 @@
import { EpPropMergeType } from "../../../utils/vue/props/types.js";
import { Arrayable } from "../../../utils/typescript.js";
import "../../../utils/index.js";
import { SpaceProps } from "./space.js";
import * as vue from "vue";
import { StyleValue } from "vue";
//#region ../../packages/components/space/src/use-space.d.ts
declare function useSpace(props: SpaceProps): {
classes: vue.ComputedRef<EpPropMergeType<(new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>) | (((new (...args: any[]) => string | Record<string, boolean> | (string | Record<string, boolean>)[]) | (() => Arrayable<string | Record<string, boolean>>)) | null)[], unknown, unknown>[]>;
containerStyle: vue.ComputedRef<StyleValue>;
itemStyle: vue.ComputedRef<StyleValue>;
};
//#endregion
export { useSpace };
@@ -0,0 +1,66 @@
import { isArray, isNumber } from "../../../utils/types.mjs";
import { useNamespace } from "../../../hooks/use-namespace/index.mjs";
import { computed, ref, watchEffect } from "vue";
//#region ../../packages/components/space/src/use-space.ts
const SIZE_MAP = {
small: 8,
default: 12,
large: 16
};
function useSpace(props) {
const ns = useNamespace("space");
const classes = computed(() => [
ns.b(),
ns.m(props.direction),
props.class
]);
const horizontalSize = ref(0);
const verticalSize = ref(0);
const containerStyle = computed(() => {
return [
props.wrap || props.fill ? { flexWrap: "wrap" } : {},
{ alignItems: props.alignment },
{
rowGap: `${verticalSize.value}px`,
columnGap: `${horizontalSize.value}px`
},
props.style
];
});
const itemStyle = computed(() => {
return props.fill ? {
flexGrow: 1,
minWidth: `${props.fillRatio}%`
} : {};
});
watchEffect(() => {
const { size = "small", wrap, direction: dir, fill } = props;
if (isArray(size)) {
const [h = 0, v = 0] = size;
horizontalSize.value = h;
verticalSize.value = v;
} else {
let val;
if (isNumber(size)) val = size;
else val = SIZE_MAP[size || "small"] || SIZE_MAP.small;
if ((wrap || fill) && dir === "horizontal") horizontalSize.value = verticalSize.value = val;
else if (dir === "horizontal") {
horizontalSize.value = val;
verticalSize.value = 0;
} else {
verticalSize.value = val;
horizontalSize.value = 0;
}
}
});
return {
classes,
containerStyle,
itemStyle
};
}
//#endregion
export { useSpace };
//# sourceMappingURL=use-space.mjs.map
@@ -0,0 +1 @@
{"version":3,"file":"use-space.mjs","names":[],"sources":["../../../../../../packages/components/space/src/use-space.ts"],"sourcesContent":["import { computed, ref, watchEffect } from 'vue'\nimport { isArray, isNumber } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { SpaceProps } from './space'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst SIZE_MAP = {\n small: 8,\n default: 12,\n large: 16,\n} as const\n\nexport function useSpace(props: SpaceProps) {\n const ns = useNamespace('space')\n\n const classes = computed(() => [ns.b(), ns.m(props.direction), props.class])\n\n const horizontalSize = ref(0)\n const verticalSize = ref(0)\n\n const containerStyle = computed<StyleValue>(() => {\n const wrapKls: CSSProperties =\n props.wrap || props.fill ? { flexWrap: 'wrap' } : {}\n const alignment: CSSProperties = {\n alignItems: props.alignment,\n }\n const gap: CSSProperties = {\n rowGap: `${verticalSize.value}px`,\n columnGap: `${horizontalSize.value}px`,\n }\n return [wrapKls, alignment, gap, props.style]\n })\n\n const itemStyle = computed<StyleValue>(() => {\n return props.fill ? { flexGrow: 1, minWidth: `${props.fillRatio}%` } : {}\n })\n\n watchEffect(() => {\n const { size = 'small', wrap, direction: dir, fill } = props\n\n // when the specified size have been given\n if (isArray(size)) {\n const [h = 0, v = 0] = size\n horizontalSize.value = h\n verticalSize.value = v\n } else {\n let val: number\n if (isNumber(size)) {\n val = size\n } else {\n val = SIZE_MAP[size || 'small'] || SIZE_MAP.small\n }\n\n if ((wrap || fill) && dir === 'horizontal') {\n horizontalSize.value = verticalSize.value = val\n } else {\n if (dir === 'horizontal') {\n horizontalSize.value = val\n verticalSize.value = 0\n } else {\n verticalSize.value = val\n horizontalSize.value = 0\n }\n }\n }\n })\n\n return {\n classes,\n containerStyle,\n itemStyle,\n }\n}\n"],"mappings":";;;;;AAOA,MAAM,WAAW;CACf,OAAO;CACP,SAAS;CACT,OAAO;CACR;AAED,SAAgB,SAAS,OAAmB;CAC1C,MAAM,KAAK,aAAa,QAAQ;CAEhC,MAAM,UAAU,eAAe;EAAC,GAAG,GAAG;EAAE,GAAG,EAAE,MAAM,UAAU;EAAE,MAAM;EAAM,CAAC;CAE5E,MAAM,iBAAiB,IAAI,EAAE;CAC7B,MAAM,eAAe,IAAI,EAAE;CAE3B,MAAM,iBAAiB,eAA2B;AAUhD,SAAO;GARL,MAAM,QAAQ,MAAM,OAAO,EAAE,UAAU,QAAQ,GAAG,EAAE;GACrB,EAC/B,YAAY,MAAM,WACnB;GAC0B;IACzB,QAAQ,GAAG,aAAa,MAAM;IAC9B,WAAW,GAAG,eAAe,MAAM;IACpC;GACgC,MAAM;GAAM;GAC7C;CAEF,MAAM,YAAY,eAA2B;AAC3C,SAAO,MAAM,OAAO;GAAE,UAAU;GAAG,UAAU,GAAG,MAAM,UAAU;GAAI,GAAG,EAAE;GACzE;AAEF,mBAAkB;EAChB,MAAM,EAAE,OAAO,SAAS,MAAM,WAAW,KAAK,SAAS;AAGvD,MAAI,QAAQ,KAAK,EAAE;GACjB,MAAM,CAAC,IAAI,GAAG,IAAI,KAAK;AACvB,kBAAe,QAAQ;AACvB,gBAAa,QAAQ;SAChB;GACL,IAAI;AACJ,OAAI,SAAS,KAAK,CAChB,OAAM;OAEN,OAAM,SAAS,QAAQ,YAAY,SAAS;AAG9C,QAAK,QAAQ,SAAS,QAAQ,aAC5B,gBAAe,QAAQ,aAAa,QAAQ;YAExC,QAAQ,cAAc;AACxB,mBAAe,QAAQ;AACvB,iBAAa,QAAQ;UAChB;AACL,iBAAa,QAAQ;AACrB,mBAAe,QAAQ;;;GAI7B;AAEF,QAAO;EACL;EACA;EACA;EACD"}
+2
View File
@@ -0,0 +1,2 @@
import "../../base/style/css.mjs";
import "element-plus/theme-chalk/el-space.css";
@@ -0,0 +1,2 @@
import "../../base/style/index.mjs";
import "element-plus/theme-chalk/src/space.scss";