UNPKG

shineout

Version:

Shein 前端组件库

144 lines (143 loc) 4.24 kB
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; };