export default (props:{ on?:(number)=>void, fractions:number, readOnly?:boolean, title?:string, explain?:any, explainstr?:string, unit?:string, onlefticon?:()=>void lefticon?:string, defaultValue?:string, righttext?:any }) => { var region = lang.region || "en-US" var rand = Math.random(); var update = (el) => { var amount = parseFloat(el.value.split(",").join("")); props.on ? props.on(amount) : null; document.getElementById("pricebox").innerText = amount.toLocaleString(region, { maximumFractionDigits: props.fractions, minimumFractionDigits: props.fractions }) } return <>
{props.title} {props.explain != undefined && !props.readOnly ? <>( { var el = document.getElementById("price" + rand) as HTMLInputElement; el.value = props.explain.toString() update(el) }}>{props.explainstr}: {props.explain.toLocaleString(region, { maximumFractionDigits: props.fractions, minimumFractionDigits: props.fractions })} {props.unit} ) : null}
{props.lefticon ? <> { props.onlefticon ? props.onlefticon() : null }} /> : null} { if ((!/[0-9]/.test(event.key)) && (!/\./.test(event.key))) { event.preventDefault(); } }} onKeyUp={(event) => { if (event.currentTarget.value.length > 0) { setTimeout(() => { update(event.target); }, 20); } }} />   {props.righttext} 
{lang.amount}: {!props.defaultValue ? (0).toLocaleString(lang.region) : parseFloat(props.defaultValue).toLocaleString(lang.region)} {props.unit} }