import util from "@idraw/util" ; const { isColorStr } = util . color ; function number ( value ) { return ( typeof value === 'number' && ( value > 0 || value <= 0 ) ) ; } function x ( value ) { return number ( value ) ; } function y ( value ) { return number ( value ) ; } function w ( value ) { return ( typeof value === 'number' && value >= 0 ) ; } function h ( value ) { return ( typeof value === 'number' && value >= 0 ) ; } function angle ( value ) { return ( typeof value === 'number' && value >= - 360 && value <= 360 ) ; } function borderWidth ( value ) { return w ( value ) ; } function borderRadius ( value ) { return number ( value ) && value >= 0 ; } function color ( value ) { return isColorStr ( value ) ; } function imageURL ( value ) { return ( typeof value === 'string' && /^(http:\/\/|https:\/\/|\.\/|\/)/ . test ( `${ value }` ) ) ; } function imageBase64 ( value ) { return ( typeof value === 'string' && /^(data:image\/)/ . test ( `${ value }` ) ) ; } function imageSrc ( value ) { return ( imageBase64 ( value ) || imageURL ( value ) ) ; } function svg ( value ) { return ( typeof value === 'string' && /^(<svg[\s]{1,}|<svg>)/i . test ( `${ value }` . trim ( ) ) && /<\/[\s]{0,}svg>$/i . test ( `${ value }` . trim ( ) ) ) ; } function html ( value ) { let result = false ; if ( typeof value === 'string' ) { let div = document . createElement ( 'div' ) ; div . innerHTML = value ; if ( div . children . length > 0 ) { result = true ; } div = null ; } return result ; } function text ( value ) { return typeof value === 'string' ; } function fontSize ( value ) { return number ( value ) && value > 0 ; } function lineHeight ( value ) { return number ( value ) && value > 0 ; } function strokeWidth ( value ) { return number ( value ) && value > 0 ; } function textAlign ( value ) { return [ 'center' , 'left' , 'right' ] . includes ( value ) ; } function fontFamily ( value ) { return typeof value === 'string' && value . length > 0 ; } function fontWeight ( value ) { return [ 'bold' ] . includes ( value ) ; } const is = { x , y , w , h , angle , number , borderWidth , borderRadius , color , imageSrc , imageURL , imageBase64 , svg , html , text , fontSize , lineHeight , textAlign , fontFamily , fontWeight , strokeWidth , } ; type TypeIs = { x : ( value : any ) => boolean ; y : ( value : any ) => boolean ; w : ( value : any ) => boolean ; h : ( value : any ) => boolean ; angle : ( value : any ) => boolean ; number : ( value : any ) => boolean ; borderWidth : ( value : any ) => boolean ; borderRadius : ( value : any ) => boolean ; color : ( value : any ) => boolean ; imageSrc : ( value : any ) => boolean ; imageURL : ( value : any ) => boolean ; imageBase64 : ( value : any ) => boolean ; svg : ( value : any ) => boolean ; html : ( value : any ) => boolean ; text : ( value : any ) => boolean ; fontSize : ( value : any ) => boolean ; fontWeight : ( value : any ) => boolean ; lineHeight : ( value : any ) => boolean ; textAlign : ( value : any ) => boolean ; fontFamily : ( value : any ) => boolean ; strokeWidth : ( value : any ) => boolean ; } ; export default is ; export { TypeIs , } ;