Skip to content

Commit

Permalink
$mol_number fix input
Browse files Browse the repository at this point in the history
  • Loading branch information
zerkalica committed Nov 20, 2024
1 parent 5c7d576 commit 96dc266
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions number/number.view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@ namespace $.$$ {
*/
export class $mol_number extends $.$mol_number {

value_limited( next? : any ) : number {
value_limited( next? : string | number ) : number {
if ( next === undefined ) return this.value()
if ( next === '' ) return this.value( Number.NaN )

const min = this.value_min()
const max = this.value_max()

const val = Number( next )

if( val < min ) return this.value( min )
Expand All @@ -28,23 +27,36 @@ namespace $.$$ {
override event_inc( next? : Event ) {
this.value_limited( ( this.value_limited() || 0 ) + this.precision_change() )
}

override value_string( next? : string ) {
const next_num = this.value_limited( next )

const precisionView = this.precision_view()
value_normalized(next?: string) {
const next_num = this.value_limited( next )
if (Number.isNaN(next_num)) return ''
const precision_view = this.precision_view()

if( next_num === 0 ) return '0'
if( !next_num ) return ''

if( precisionView >= 1 ) {
return ( next_num / precisionView ).toFixed()
if( precision_view >= 1 ) {
return ( next_num / precision_view ).toFixed()
} else {
const fixedNumber = Math.log10( 1 / precisionView )
return next_num.toFixed( Math.ceil( fixedNumber ) )
const fixed_number = Math.log10( 1 / precision_view )
return next_num.toFixed( Math.ceil( fixed_number ) )
}
}

@ $mol_mem
override value_string( next? : string ) {
const current = this.value_normalized()

if ( next !== undefined) {
const normalized = this.value_normalized( next )
if (normalized) return normalized
}

return next ?? current

}

@ $mol_mem
override dec_enabled() : boolean {
return this.enabled() && (
Expand Down

0 comments on commit 96dc266

Please sign in to comment.