/** * 扫码组件的两种形态: * 1. 页面采集:监听全局键盘事件:addEventListenerKeyDown2Scan * 2. 输入框采集:监听onKeyDown事件 */ import React, { ReactNode } from 'react'; import './index.scss'; type AnonymousFunction = (...args: any[]) => any; export interface ScanProps { /** 默认值 */ defaultValue?: string | number; /** 默认展示输入框 */ defaultShowInput?: boolean; /** 组件文字 */ placeholder?: string; /** 扫码框大小 */ size?: 'large' | 'medium' | 'small'; /** 是否允许手输/复制粘贴条码 */ manual?: boolean; /** 是否可以通过空格键切换扫码框形态 */ hasToggle?: boolean; /** 是否处于禁用态,禁用态时Enter事件会失效 */ disabled?: boolean; /** 扫码/回车时触发函数 */ onEnter?: (value: string, isScan: boolean) => void; /** 输入框状态聚焦时触发事件 */ onFocus?: AnonymousFunction; /** 输入框状态失焦时触发事件 */ onBlur?: AnonymousFunction; /** 输入框状态值更改时触发事件 */ onChange?: AnonymousFunction; /** 组件状态变更时触发事件 */ onToggle?: (showInput: boolean) => void; className?: string; /** 自定义内联样式 */ style?: React.CSSProperties; prefix?: boolean | ReactNode; autoFocus?: boolean; value?: string | number; } declare function Scan({ defaultValue, defaultShowInput, placeholder, size, manual, hasToggle, disabled, onEnter, onFocus, onBlur, onChange, onToggle, className, prefix, autoFocus, value, ...props }: ScanProps): JSX.Element; declare namespace Scan { var addGlobalEnterEvent: (callback: (value: string) => void) => void; var removeGlobalEnterEvent: (callback: (value: string) => void) => void; } export default Scan;