refactor(empty): less to cssinjs (#6230)
* refactor(empty): less to cssinjs * chore: remove unuse code * fix: reactivity losepull/6236/head
parent
a205615af9
commit
fc0f0d8a96
|
@ -1,44 +1,73 @@
|
|||
import useConfigInject from '../config-provider/hooks/useConfigInject';
|
||||
import { useToken } from '../theme/internal';
|
||||
import { TinyColor } from '@ctrl/tinycolor';
|
||||
import type { CSSProperties } from 'vue';
|
||||
import { defineComponent, computed } from 'vue';
|
||||
|
||||
const Empty = () => {
|
||||
const { getPrefixCls } = useConfigInject('empty', {});
|
||||
const prefixCls = getPrefixCls('empty-img-default');
|
||||
const Empty = defineComponent({
|
||||
setup() {
|
||||
const [, token] = useToken();
|
||||
|
||||
return (
|
||||
<svg class={prefixCls} width="184" height="152" viewBox="0 0 184 152">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g transform="translate(24 31.67)">
|
||||
<ellipse class={`${prefixCls}-ellipse`} cx="67.797" cy="106.89" rx="67.797" ry="12.668" />
|
||||
const themeStyle = computed<CSSProperties>(() => {
|
||||
const bgColor = new TinyColor(token.value.colorBgBase);
|
||||
|
||||
// Dark Theme need more dark of this
|
||||
if (bgColor.toHsl().l < 0.5) {
|
||||
return {
|
||||
opacity: 0.65,
|
||||
};
|
||||
}
|
||||
return {};
|
||||
});
|
||||
|
||||
return () => (
|
||||
<svg
|
||||
style={themeStyle.value}
|
||||
width="184"
|
||||
height="152"
|
||||
viewBox="0 0 184 152"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g transform="translate(24 31.67)">
|
||||
<ellipse
|
||||
fill-opacity=".8"
|
||||
fill="#F5F5F7"
|
||||
cx="67.797"
|
||||
cy="106.89"
|
||||
rx="67.797"
|
||||
ry="12.668"
|
||||
/>
|
||||
<path
|
||||
d="M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"
|
||||
fill="#AEB8C2"
|
||||
/>
|
||||
<path
|
||||
d="M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z"
|
||||
fill="url(#linearGradient-1)"
|
||||
transform="translate(13.56)"
|
||||
/>
|
||||
<path
|
||||
d="M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"
|
||||
fill="#F5F5F7"
|
||||
/>
|
||||
<path
|
||||
d="M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"
|
||||
fill="#DCE0E6"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
class={`${prefixCls}-path-1`}
|
||||
d="M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"
|
||||
/>
|
||||
<path
|
||||
class={`${prefixCls}-path-2`}
|
||||
d="M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z"
|
||||
transform="translate(13.56)"
|
||||
/>
|
||||
<path
|
||||
class={`${prefixCls}-path-3`}
|
||||
d="M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"
|
||||
/>
|
||||
<path
|
||||
class={`${prefixCls}-path-4`}
|
||||
d="M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"
|
||||
d="M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"
|
||||
fill="#DCE0E6"
|
||||
/>
|
||||
<g transform="translate(149.65 15.383)" fill="#FFF">
|
||||
<ellipse cx="20.654" cy="3.167" rx="2.849" ry="2.815" />
|
||||
<path d="M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z" />
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
class={`${prefixCls}-path-5`}
|
||||
d="M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"
|
||||
/>
|
||||
<g class={`${prefixCls}-g`} transform="translate(149.65 15.383)">
|
||||
<ellipse cx="20.654" cy="3.167" rx="2.849" ry="2.815" />
|
||||
<path d="M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
);
|
||||
};
|
||||
</svg>
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
Empty.PRESENTED_IMAGE_DEFAULT = true;
|
||||
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
import type { CSSProperties, FunctionalComponent, PropType } from 'vue';
|
||||
import { defineComponent } from 'vue';
|
||||
import type { CSSProperties, PropType, ExtractPropTypes } from 'vue';
|
||||
import classNames from '../_util/classNames';
|
||||
import LocaleReceiver from '../locale-provider/LocaleReceiver';
|
||||
import DefaultEmptyImg from './empty';
|
||||
import SimpleEmptyImg from './simple';
|
||||
import { filterEmpty } from '../_util/props-util';
|
||||
import PropTypes from '../_util/vue-types';
|
||||
import type { VueNode } from '../_util/type';
|
||||
import { withInstall } from '../_util/type';
|
||||
import useConfigInject from '../config-provider/hooks/useConfigInject';
|
||||
|
||||
import useStyle from './style';
|
||||
|
||||
const defaultEmptyImg = <DefaultEmptyImg />;
|
||||
const simpleEmptyImg = <SimpleEmptyImg />;
|
||||
|
||||
|
@ -16,70 +18,73 @@ interface Locale {
|
|||
description?: string;
|
||||
}
|
||||
|
||||
export interface EmptyProps {
|
||||
prefixCls?: string;
|
||||
class?: any;
|
||||
style?: string | CSSProperties;
|
||||
imageStyle?: CSSProperties;
|
||||
image?: VueNode | null;
|
||||
description?: VueNode;
|
||||
}
|
||||
export const emptyProps = () => ({
|
||||
prefixCls: String,
|
||||
class: PropTypes.any,
|
||||
style: [String, Object] as PropType<string | CSSProperties>,
|
||||
imageStyle: Object as PropType<CSSProperties>,
|
||||
image: PropTypes.any,
|
||||
description: PropTypes.any,
|
||||
});
|
||||
|
||||
interface EmptyType extends FunctionalComponent<EmptyProps> {
|
||||
displayName: string;
|
||||
PRESENTED_IMAGE_DEFAULT: VueNode;
|
||||
PRESENTED_IMAGE_SIMPLE: VueNode;
|
||||
}
|
||||
export type EmptyProps = Partial<ExtractPropTypes<ReturnType<typeof emptyProps>>>;
|
||||
|
||||
const Empty: EmptyType = (props, { slots = {}, attrs }) => {
|
||||
const { direction, prefixCls: prefixClsRef } = useConfigInject('empty', props);
|
||||
const prefixCls = prefixClsRef.value;
|
||||
const Empty = defineComponent({
|
||||
name: 'AEmpty',
|
||||
inheritAttrs: false,
|
||||
props: emptyProps(),
|
||||
setup(props, { slots = {}, attrs }) {
|
||||
const { direction, prefixCls: prefixClsRef } = useConfigInject('empty', props);
|
||||
|
||||
const {
|
||||
image = defaultEmptyImg,
|
||||
description = slots.description?.() || undefined,
|
||||
imageStyle,
|
||||
class: className = '',
|
||||
...restProps
|
||||
} = { ...props, ...attrs };
|
||||
const [wrapSSR, hashId] = useStyle(prefixClsRef);
|
||||
|
||||
return (
|
||||
<LocaleReceiver
|
||||
componentName="Empty"
|
||||
children={(locale: Locale) => {
|
||||
const des = typeof description !== 'undefined' ? description : locale.description;
|
||||
const alt = typeof des === 'string' ? des : 'empty';
|
||||
let imageNode: EmptyProps['image'] = null;
|
||||
return () => {
|
||||
const prefixCls = prefixClsRef.value;
|
||||
const {
|
||||
image = defaultEmptyImg,
|
||||
description = slots.description?.() || undefined,
|
||||
imageStyle,
|
||||
class: className = '',
|
||||
...restProps
|
||||
} = { ...props, ...attrs };
|
||||
|
||||
if (typeof image === 'string') {
|
||||
imageNode = <img alt={alt} src={image} />;
|
||||
} else {
|
||||
imageNode = image;
|
||||
}
|
||||
return wrapSSR(
|
||||
<LocaleReceiver
|
||||
componentName="Empty"
|
||||
children={(locale: Locale) => {
|
||||
const des = typeof description !== 'undefined' ? description : locale.description;
|
||||
const alt = typeof des === 'string' ? des : 'empty';
|
||||
let imageNode: EmptyProps['image'] = null;
|
||||
|
||||
return (
|
||||
<div
|
||||
class={classNames(prefixCls, className, {
|
||||
[`${prefixCls}-normal`]: image === simpleEmptyImg,
|
||||
[`${prefixCls}-rtl`]: direction.value === 'rtl',
|
||||
})}
|
||||
{...restProps}
|
||||
>
|
||||
<div class={`${prefixCls}-image`} style={imageStyle}>
|
||||
{imageNode}
|
||||
</div>
|
||||
{des && <p class={`${prefixCls}-description`}>{des}</p>}
|
||||
{slots.default && (
|
||||
<div class={`${prefixCls}-footer`}>{filterEmpty(slots.default())}</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
if (typeof image === 'string') {
|
||||
imageNode = <img alt={alt} src={image} />;
|
||||
} else {
|
||||
imageNode = image;
|
||||
}
|
||||
|
||||
Empty.displayName = 'AEmpty';
|
||||
return (
|
||||
<div
|
||||
class={classNames(prefixCls, className, hashId.value, {
|
||||
[`${prefixCls}-normal`]: image === simpleEmptyImg,
|
||||
[`${prefixCls}-rtl`]: direction.value === 'rtl',
|
||||
})}
|
||||
{...restProps}
|
||||
>
|
||||
<div class={`${prefixCls}-image`} style={imageStyle}>
|
||||
{imageNode}
|
||||
</div>
|
||||
{des && <p class={`${prefixCls}-description`}>{des}</p>}
|
||||
{slots.default && (
|
||||
<div class={`${prefixCls}-footer`}>{filterEmpty(slots.default())}</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Empty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;
|
||||
Empty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;
|
||||
|
|
|
@ -1,25 +1,39 @@
|
|||
import useConfigInject from '../config-provider/hooks/useConfigInject';
|
||||
import { TinyColor } from '@ctrl/tinycolor';
|
||||
import { computed, defineComponent } from 'vue';
|
||||
import { useToken } from '../theme/internal';
|
||||
|
||||
const Simple = () => {
|
||||
const { getPrefixCls } = useConfigInject('empty', {});
|
||||
const prefixCls = getPrefixCls('empty-img-simple');
|
||||
const Simple = defineComponent({
|
||||
setup() {
|
||||
const [, token] = useToken();
|
||||
|
||||
return (
|
||||
<svg class={prefixCls} width="64" height="41" viewBox="0 0 64 41">
|
||||
<g transform="translate(0 1)" fill="none" fill-rule="evenodd">
|
||||
<ellipse class={`${prefixCls}-ellipse`} fill="#F5F5F5" cx="32" cy="33" rx="32" ry="7" />
|
||||
<g class={`${prefixCls}-g`} fill-rule="nonzero" stroke="#D9D9D9">
|
||||
<path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z" />
|
||||
<path
|
||||
d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z"
|
||||
fill="#FAFAFA"
|
||||
class={`${prefixCls}-path`}
|
||||
/>
|
||||
const color = computed(() => {
|
||||
const { colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer } = token.value;
|
||||
|
||||
return {
|
||||
borderColor: new TinyColor(colorFill).onBackground(colorBgContainer).toHexString(),
|
||||
shadowColor: new TinyColor(colorFillTertiary).onBackground(colorBgContainer).toHexString(),
|
||||
contentColor: new TinyColor(colorFillQuaternary)
|
||||
.onBackground(colorBgContainer)
|
||||
.toHexString(),
|
||||
};
|
||||
});
|
||||
|
||||
return () => (
|
||||
<svg width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 1)" fill="none" fill-rule="evenodd">
|
||||
<ellipse fill={color.value.shadowColor} cx="32" cy="33" rx="32" ry="7" />
|
||||
<g fill-rule="nonzero" stroke={color.value.borderColor}>
|
||||
<path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z" />
|
||||
<path
|
||||
d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z"
|
||||
fill={color.value.contentColor}
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
);
|
||||
};
|
||||
</svg>
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
Simple.PRESENTED_IMAGE_SIMPLE = true;
|
||||
export default Simple;
|
||||
|
|
|
@ -1,151 +0,0 @@
|
|||
@import '../../style/themes/index';
|
||||
@import '../../style/mixins/index';
|
||||
|
||||
@empty-prefix-cls: ~'@{ant-prefix}-empty';
|
||||
@empty-img-prefix-cls: ~'@{ant-prefix}-empty-img';
|
||||
|
||||
.@{empty-prefix-cls} {
|
||||
margin: 0 8px;
|
||||
font-size: @empty-font-size;
|
||||
line-height: @line-height-base;
|
||||
text-align: center;
|
||||
|
||||
&-image {
|
||||
height: 100px;
|
||||
margin-bottom: 8px;
|
||||
|
||||
img {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
svg {
|
||||
height: 100%;
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&-footer {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
// antd internal empty style
|
||||
&-normal {
|
||||
margin: 32px 0;
|
||||
color: @disabled-color;
|
||||
|
||||
.@{empty-prefix-cls}-image {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
&-small {
|
||||
margin: 8px 0;
|
||||
color: @disabled-color;
|
||||
|
||||
.@{empty-prefix-cls}-image {
|
||||
height: 35px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.@{empty-img-prefix-cls}-default {
|
||||
// not support the definition because the less variables have no meaning
|
||||
& when (@theme = dark) {
|
||||
&-ellipse {
|
||||
fill: @white;
|
||||
fill-opacity: 0.08;
|
||||
}
|
||||
|
||||
&-path {
|
||||
&-1 {
|
||||
fill: #262626;
|
||||
}
|
||||
|
||||
&-2 {
|
||||
fill: url('#linearGradient-1');
|
||||
}
|
||||
|
||||
&-3 {
|
||||
fill: #595959;
|
||||
}
|
||||
|
||||
&-4 {
|
||||
fill: #434343;
|
||||
}
|
||||
|
||||
&-5 {
|
||||
fill: #595959;
|
||||
}
|
||||
}
|
||||
|
||||
&-g {
|
||||
fill: #434343;
|
||||
}
|
||||
}
|
||||
& when not (@theme = dark) {
|
||||
&-ellipse {
|
||||
fill: #f5f5f5;
|
||||
fill-opacity: 0.8;
|
||||
}
|
||||
|
||||
&-path {
|
||||
&-1 {
|
||||
fill: #aeb8c2;
|
||||
}
|
||||
|
||||
&-2 {
|
||||
fill: url('#linearGradient-1');
|
||||
}
|
||||
|
||||
&-3 {
|
||||
fill: #f5f5f7;
|
||||
}
|
||||
|
||||
&-4 {
|
||||
fill: #dce0e6;
|
||||
}
|
||||
|
||||
&-5 {
|
||||
fill: #dce0e6;
|
||||
}
|
||||
}
|
||||
|
||||
&-g {
|
||||
fill: @white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.@{empty-img-prefix-cls}-simple {
|
||||
// not support the definition because the less variables have no meaning
|
||||
& when (@theme = dark) {
|
||||
&-ellipse {
|
||||
fill: @white;
|
||||
fill-opacity: 0.08;
|
||||
}
|
||||
|
||||
&-g {
|
||||
stroke: #434343;
|
||||
}
|
||||
|
||||
&-path {
|
||||
fill: #262626;
|
||||
stroke: #434343;
|
||||
}
|
||||
}
|
||||
& when not (@theme = dark) {
|
||||
&-ellipse {
|
||||
fill: #f5f5f5;
|
||||
}
|
||||
|
||||
&-g {
|
||||
stroke: #d9d9d9;
|
||||
}
|
||||
|
||||
&-path {
|
||||
fill: #fafafa;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@import './rtl';
|
|
@ -0,0 +1,80 @@
|
|||
import type { CSSObject } from '../../_util/cssinjs';
|
||||
import type { FullToken, GenerateStyle } from '../../theme/internal';
|
||||
import { genComponentStyleHook, mergeToken } from '../../theme/internal';
|
||||
|
||||
/** Component only token. Which will handle additional calculation of alias token */
|
||||
export interface ComponentToken {}
|
||||
|
||||
interface EmptyToken extends FullToken<'Empty'> {
|
||||
emptyImgCls: string;
|
||||
emptyImgHeight: number;
|
||||
emptyImgHeightSM: number;
|
||||
emptyImgHeightMD: number;
|
||||
}
|
||||
|
||||
// ============================== Shared ==============================
|
||||
const genSharedEmptyStyle: GenerateStyle<EmptyToken> = (token): CSSObject => {
|
||||
const { componentCls, margin, marginXS, marginXL, fontSize, lineHeight } = token;
|
||||
|
||||
return {
|
||||
[componentCls]: {
|
||||
marginInline: marginXS,
|
||||
fontSize,
|
||||
lineHeight,
|
||||
textAlign: 'center',
|
||||
|
||||
// 原来 &-image 没有父子结构,现在为了外层承担我们的hashId,改成父子结果
|
||||
[`${componentCls}-image`]: {
|
||||
height: token.emptyImgHeight,
|
||||
marginBottom: marginXS,
|
||||
opacity: token.opacityImage,
|
||||
|
||||
img: {
|
||||
height: '100%',
|
||||
},
|
||||
|
||||
svg: {
|
||||
height: '100%',
|
||||
margin: 'auto',
|
||||
},
|
||||
},
|
||||
|
||||
// 原来 &-footer 没有父子结构,现在为了外层承担我们的hashId,改成父子结果
|
||||
[`${componentCls}-footer`]: {
|
||||
marginTop: margin,
|
||||
},
|
||||
|
||||
'&-normal': {
|
||||
marginBlock: marginXL,
|
||||
color: token.colorTextDisabled,
|
||||
|
||||
[`${componentCls}-image`]: {
|
||||
height: token.emptyImgHeightMD,
|
||||
},
|
||||
},
|
||||
|
||||
'&-small': {
|
||||
marginBlock: marginXS,
|
||||
color: token.colorTextDisabled,
|
||||
|
||||
[`${componentCls}-image`]: {
|
||||
height: token.emptyImgHeightSM,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
// ============================== Export ==============================
|
||||
export default genComponentStyleHook('Empty', token => {
|
||||
const { componentCls, controlHeightLG } = token;
|
||||
|
||||
const emptyToken: EmptyToken = mergeToken<EmptyToken>(token, {
|
||||
emptyImgCls: `${componentCls}-img`,
|
||||
emptyImgHeight: controlHeightLG * 2.5,
|
||||
emptyImgHeightMD: controlHeightLG,
|
||||
emptyImgHeightSM: controlHeightLG * 0.875,
|
||||
});
|
||||
|
||||
return [genSharedEmptyStyle(emptyToken)];
|
||||
});
|
|
@ -1,2 +0,0 @@
|
|||
import '../../style/index.less';
|
||||
import './index.less';
|
|
@ -1,10 +0,0 @@
|
|||
@import '../../style/themes/index';
|
||||
@import '../../style/mixins/index';
|
||||
|
||||
@empty-prefix-cls: ~'@{ant-prefix}-empty';
|
||||
|
||||
.@{empty-prefix-cls} {
|
||||
&-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ import type { ComponentToken as ButtonComponentToken } from '../../button/style'
|
|||
import type { ComponentToken as DividerComponentToken } from '../../divider/style';
|
||||
import type { ComponentToken as DropdownComponentToken } from '../../dropdown/style';
|
||||
// import type { ComponentToken as DrawerComponentToken } from '../../drawer/style';
|
||||
// import type { ComponentToken as EmptyComponentToken } from '../../empty/style';
|
||||
import type { ComponentToken as EmptyComponentToken } from '../../empty/style';
|
||||
// import type { ComponentToken as ImageComponentToken } from '../../image/style';
|
||||
// import type { ComponentToken as InputNumberComponentToken } from '../../input-number/style';
|
||||
// import type { ComponentToken as LayoutComponentToken } from '../../layout/style';
|
||||
|
@ -69,7 +69,7 @@ export interface ComponentTokenMap {
|
|||
Divider?: DividerComponentToken;
|
||||
// Drawer?: DrawerComponentToken;
|
||||
Dropdown?: DropdownComponentToken;
|
||||
// Empty?: EmptyComponentToken;
|
||||
Empty?: EmptyComponentToken;
|
||||
// FloatButton?: FloatButtonComponentToken;
|
||||
Form?: {};
|
||||
Grid?: {};
|
||||
|
|
Loading…
Reference in New Issue