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}
>
}