2022-10-09 17:33:53 +08:00

350 lines
7.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// type StyleType = 'solid' | 'regular' | 'light' | 'thin' | 'duotone' | 'brands' | 'sharp';
export const FontAwesomeIconProps = {
/** icon name
* @link: https://fontawesome.com/icons
*/
name: {
type: String,
default: 'default',
// required: true,
},
/** icon 风格
* 不同风格对应不同的css, 使用时请加载相应的css
*/
mode: {
type: String,
default: 'solid',
validator(value: string) {
// The value must match one of these strings
return [
'solid',
'regular',
'light',
'thin',
'duotone',
'brands',
].includes(value);
},
},
/** icon sharp
* 对应sharp css
*/
sharp: {
type: Boolean,
default: false,
},
/**
* icon sizing
* @description 2xs-xs-sm-lg-xl-2xl 1-10x
*/
frameSize: {
type: String,
},
/**
* icon size
* @description 大小 单位 rpx
*/
size: {
type: [Number, String],
},
/**
* icon color
* @description 图标颜色
*/
color: {
type: String,
},
/**
* icon color
* @description 背景色
*/
bgColor: {
type: String,
},
/** icon rotate
* @description 旋转角度
*/
rotate: {
type: [Number, String],
default: 0,
},
/** icon rotateFlip
* @description 旋转-翻转
*/
rotateFlip: {
type: String,
validator(value: string) {
// The value must match one of these strings
return ['horizontal', 'vertical', 'both'].includes(value);
},
},
/**
* icon beat
* @description 缩放动画
*/
beat: {
type: Boolean,
default: false,
},
/**
* icon duration
* @description 动画持续时间(所有动画使用) s
*/
duration: {
type: [Number, String],
default: 1,
},
/**
* icon scale
* @description 动画比例(跳动动画使用)
*/
scale: {
type: [Number, String],
default: '1.25',
},
/**
* icon fade
* @description 淡入淡出动画
*/
fade: {
type: Boolean,
default: false,
},
/**
* icon opacity
* @description 透明度值 (淡入淡出动画使用)
*/
opacity: {
type: [Number, String],
default: '0.6',
},
/**
* icon bounce
* @description 弹跳动画
*/
bounce: {
type: Boolean,
default: false,
},
/**
* icon bounceConfig
* @description 弹跳动画属性设置
*/
bounceConfig: {
type: Object,
default: () => ({
// 设置图标在跳跃后着陆时的反弹量
rebound: '-0.125em',
// 设置图标弹跳时跳到的最大高度
height: '-0.5em',
// 设置图标开始反弹时的水平挤压
startScaleX: '1.1',
// 设置图标开始反弹时的垂直挤压
startScaleY: '0.9',
// 设置图标弹跳时的水平挤压
jumpScaleX: '0.9',
// 设置图标弹跳时的垂直挤压
jumpScaleY: '1.1',
// 设置图标弹跳后着陆时的水平挤压
landScaleX: '1.05',
// 设置图标弹跳后着陆时的垂直挤压
landScaleY: '0.95',
}),
},
/**
* icon flip
* @description 翻转动画
*/
flip: {
type: Boolean,
default: false,
},
/**
* icon flipConfig
* @description 翻转动画属性设置
*/
flipConfig: {
type: Object,
default: () => ({
// 设置旋转轴的 x 坐标0~1
x: '0',
// 设置旋转轴的 y 坐标0~1)
y: '1',
// 设置旋转轴的 z 坐标0~1)
z: '0',
// 设置翻转的旋转角度,正角表示顺时针旋转,负角表示逆时针旋转。
angle: '-180deg',
}),
},
/**
* icon shake
* @description 抖动动画
*/
shake: {
type: Boolean,
default: false,
},
/**
* icon spin
* @description 顺时针旋转动画
*/
spin: {
type: [Boolean, String],
default: false,
},
/**
* icon spinReverse
* @description 逆时针旋转动画
*/
spinReverse: {
type: Boolean,
default: false,
},
/**
* icon spinPulse
* @description 以8个节拍顺时针旋转动画
*/
spinPulse: {
type: Boolean,
default: false,
},
/**
* icon spinDelay
* @description 旋转动画延迟时间
* @link https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction
*/
spinDelay: {
type: String,
default: '0s',
},
/**
* icon spinIterationCount
* @description 旋转动画迭代次数
*/
spinIterationCount: {
type: [String, Number],
default: 'infinite',
},
/**
* icon spinTiming
* @description 旋转动画在帧中的进度
* @example linear(默认线性), ease-in,ease-out,ease-in-out,step-start,step-end, steps(4, jump-start),cubic-bezier(0.1, -0.6, 0.2, 0);
* @link https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-functionhttps://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function
*/
spinTiming: {
type: String,
default: 'linear',
},
/** icon border
* @description 边框
*/
border: {
type: Boolean,
default: false,
},
/**
* icon borderConfig
* @description 翻转动画属性设置
*/
borderConfig: {
type: Object,
default: () => ({
// 设置边框颜色
color: '#eee',
// 设置图标周围的填充
padding: '.04em .26em',
// 设置边框半径
radius: '.1em',
// 设置边框样式
// 可选值 solid(默认实线), dotted(点状边框),dashed(虚线),double(双线)
style: 'solid',
// 设置边框宽度
width: '.08em',
}),
},
/**
* icon float
* @description 浮动定位
* @example: left ,right
*/
float: {
type: String,
},
/** icon pullMargin
* @description 设置图标周围的边距
*/
pullMargin: {
type: String,
default: '.3em',
},
/** icon stack
* @description 堆叠
*/
stack: {
type: Boolean,
default: false,
},
/** icon stackX
* @description 堆叠层
* @example 1 (fa-stack-1x,以基本大小显示) 2(fa-stack-2x,以较大显示)
* */
stackX: {
type: [String, Number],
default: 1,
validator(value: number) {
// The value must match one of these strings
return ['1', '2'].includes(value.toString());
},
},
/** icon stackInverse
* @description 堆叠 图标反色
*/
stackInverse: {
type: Boolean,
default: false,
},
/** icon stackChild
* @description 堆叠子元素
*/
stackChild: {
type: Boolean,
default: false,
},
/** icon stackZIndex
* @description 堆叠子元素 层级
*/
stackZIndex: {
type: [String, Number],
default: 'auto',
},
/** icon stackChild
* @description 堆叠子元素图标反色
*/
stackInverseColor: {
type: String,
default: '#fff',
},
/** icon counter
* @description 角标计数
*/
counter: {
type: [String, Number, Boolean],
default: false,
},
/** icon counterMax
* @description 角标计数最大值
*/
counterMax: {
type: Number,
default: 99,
},
/** icon counterMax
* @description 角标计数背景色
*/
counterMgColor: {
type: String,
default: '#ff253a',
},
};