import classnames from 'classnames' ; import { fontSizeStrategy , getMark , hasMark } from './FontSizeUtils' ; import ( './FontSizeInput.css' ) ; interface FontSizeInputProperties { value ? : any ; onChange ? : any ; changeState ? : any ; className ? : string ; style ? : any ; initialFontSize ? : any ; } const FontSizeInput = ( { value , className , style , changeState , initialFontSize } ) => { let fontSizeDefault = initialFontSize ; if ( hasMark ( value ) ) { fontSizeDefault = getMark ( value ) . data . get ( 'fontSize' ) ; } return ( < input onChange = { ( { target : { value : fontSizeValue } } ) => { if ( Number ( fontSizeValue ) <= 0 ) fontSizeValue = '1' ; const fontSize = fontSizeValue || '1' ; const fontSizeState = fontSizeStrategy ( { change : value . change ( ) , fontSize , changeState } ) . value ; changeState ( { fontSize , value : fontSizeState } ) ; } } onFocus = { e => e . target . select ( ) } className = { classnames ( 'slate-font-size-plugin-input' , className ) } style = { style } type = "number" value = { fontSizeDefault } min = "1" / > ) ; } ; export default FontSizeInput ;