shineout
Version:
Shein 前端组件库
144 lines (143 loc) • 4.24 kB
TypeScript
import React, { ReactNode } from 'react';
import { ForceAdd, PartialKeys, RegularAttributes, StandardProps } from '../@types/common';
import { PopoverProps, PopoverPositionType } from '../Popover/Props';
import { PaginationProps } from '../Pagination/Props';
export declare type MovableType<U> = U & {
/**
* @en Is it possible to drag and drop to move
* @cn 是否可以拖拽移动
* @default false
*/
moveable?: boolean;
};
export declare type ResizableType<Props> = Props & {
/**
* @en Is it possible to drag the size
* @cn 是否可以拖动大小
* @default false
*/
resizable?: boolean | 'x' | 'y' | 'xy';
};
export declare type ConfigType<Props> = Props;
/** ------ inputBorder ------ * */
export interface InputBorderProps extends StandardProps {
/**
* @en Prompt information
* @cn 提示信息
*/
tip?: ReactNode;
/**
* @en The position where the validation info pop up, see [Popover](/components/Popover)
* @cn 校验信息弹出位置,参考 [Popover](/components/Popover)
* @override PopoverProps["position"]
*/
popover?: PopoverPositionType;
/**
* @en input width
* @cn 输入框宽度
*/
width?: string | number;
/**
* @inner 内部属性
*/
error?: Error;
/**
* @en Vilidate popup properties, specific properties refer to [Popover](/components/Popover)
* @cn 校验弹框接受的属性,具体属性参考 [Popover](/components/Popover)
* @type PopoverProps
*/
popoverProps?: PopoverProps;
/**
* @en only display border bottom
* @cn 是否只展示下边框
* @default false
*/
underline?: boolean;
/**
* @en Whether to automatically get the focus
* @cn 是否自动获得焦点
* @default false
*/
autoFocus?: boolean;
/**
* @en Whether to display border
* @cn 是否展示边框
* @default false
*/
border?: boolean;
/**
* @en disabled
* @cn 是否禁用
* @default false
*/
disabled?: boolean;
/**
* @en callback function for blur event
* @cn blur 事件回调函数
*/
onBlur?: React.FocusEventHandler;
/**
* @en callback function for blur focus
* @cn focus 事件回调函数
*/
onFocus?: React.FocusEventHandler;
/**
* @en size
* @cn 尺寸
* @default "default"
* @override union
*/
size?: RegularAttributes.Size;
}
export declare type GetInputBorderProps<Props extends {
onFocus?: any;
onBlur?: any;
}> = ForceAdd<Omit<PartialKeys<Props, 'onFocus' | 'onBlur'>, 'inputFocus'>, InputBorderProps>;
/** ------ delay ------ * */
export interface DelayProps {
/**
* @en User input triggers the onChange and to check interval, unit: ms.
* @cn 用户输入触发 onChange 和校验间隔时间,单位 毫秒。
* @default 400
*/
delay?: number;
value?: any;
onChange: (...args: any) => void;
}
export declare type GetDelayProps<Props> = ForceAdd<Omit<Props, 'forceChange' | 'cancelChange'>, DelayProps>;
/** ------ coin ------ * */
export interface CoinProps {
value?: number | string | null;
onChange?: any;
type?: string;
onFocus?: (e: any) => void;
onBlur?: (e: any) => void;
/**
* @inner 同原生属性
*/
onMouseDown?: React.MouseEventHandler;
/**
* @inner 同原生属性
*/
onMouseUp?: React.MouseEventHandler;
/**
* @en Show as thousands separator, valid only when type is 'number'
* @cn 以千位分隔符展示,仅当 type 为 number 时有效
* @default false
*/
coin?: boolean;
}
export declare type GetCoinProps<Props extends {
onFocus?: any;
onBlur?: any;
}> = ForceAdd<PartialKeys<Props, 'onFocus' | 'onBlur'>, CoinProps>;
/** ------ hidable ------ * */
export declare type GetHidableConsumerProps<Props> = Props;
/** ------ pagable ------ * */
export declare type GetPagableProps<Props> = Props & {
/**
* @en Show pagination See [Pagination](/components/Pagination) for details
* @cn 展示分页 详见 [Pagination](/components/Pagination)
*/
pagination?: PaginationProps;
};