From 597198692673c6cfa339ad8e980dc5d9ae8f013e Mon Sep 17 00:00:00 2001 From: Stefan Zerkalica Date: Mon, 25 Nov 2024 21:41:43 +0300 Subject: [PATCH] $mol_number removed format --- format/format.view.ts | 14 -------------- number/number.view.tree | 4 +--- number/number.view.ts | 32 ++++++-------------------------- 3 files changed, 7 insertions(+), 43 deletions(-) diff --git a/format/format.view.ts b/format/format.view.ts index ce4b4fb5fda..a61ba819fa5 100644 --- a/format/format.view.ts +++ b/format/format.view.ts @@ -33,22 +33,8 @@ namespace $.$$ { ++ to } - // Если по-сравнению с this.mask_prev в mask добавились/удалились не подчервивания слева от from - // То надо увеличить/уменьшить from и to, на кол-во добавленных/удаленных символов - const before = mask.slice(0, from).replace(/_/g, '').length - const before_prev = this.mask_prev.slice(0, from).replace(/_/g, '').length - let delta = before - before_prev - - from += delta - to += delta - - - this.mask_prev = mask - return [ from, to ] } - - protected mask_prev = '' @ $mol_mem value_changed( next?: string ) { diff --git a/number/number.view.tree b/number/number.view.tree index 3414d650959..7e5abd1b909 100644 --- a/number/number.view.tree +++ b/number/number.view.tree @@ -6,9 +6,7 @@ $mol_number $mol_view value? +NaN enabled true sub / - <= String $mol_format - allow <= allow <= allow_default \0123456789,.- - mask* <= mask* \ + <= String $mol_string - \ we don't want native number controls in mobile devices - \ https://stackoverflow.com/questions/3790935/can-i-hide-the-html5-number-input-s-spin-box type <= type \tel diff --git a/number/number.view.ts b/number/number.view.ts index 8e597c86a8c..5145004856b 100644 --- a/number/number.view.ts +++ b/number/number.view.ts @@ -55,20 +55,6 @@ namespace $.$$ { return val.toFixed( Math.ceil( fixed_number ) ) } } - - override allow() { - let next = this.allow_default() - - const precision = this.precision_view() - - // Точку в конце поставить нельзя, если precision_view целое число > 0 - if ( precision - Math.floor(precision) === 0 ) next = next.replace(/[.,]/g, '') - - // Минус нельзя ввести, если минимальное значение >=0 - if (this.value_min() >= 0) next = next.replace('-', '') - - return next - } @ $mol_mem override value_string( next? : string ): string { @@ -77,9 +63,14 @@ namespace $.$$ { const current = this.round( this.value_limited() ) if (next === undefined) return current + const precision = this.precision_view() + + // Точку в конце поставить нельзя, если precision_view целое число > 0 + if ( precision - Math.floor(precision) === 0 ) next = next.replace(/[.,]/g, '') + // Запятые меняем на точки, удаляем не-цифры и не-точки и лишние ноли в начале целой части. // Минус получится ввести только в начале. - next = (next.startsWith('-') ? '-' : '') + next = (this.value_min() >= 0 && next.startsWith('-') ? '-' : '') + next.replace(/,/g, '.').replace(/[^\d\.]/g, '').replace(/^0{2,}/, '0') let dot_pos = next.indexOf('.') @@ -108,17 +99,6 @@ namespace $.$$ { return this.round( this.value_limited(Number(next || Number.NaN)) ) } - override mask(val: string) { - const [_, minus, main = '', frac] = val.match(/(\-)?(\d+)(?:\.?(\d+))?/) ?? [] - - const prefix = (minus ? '_' : '') + format(main) - if (! frac) return prefix - - const suffix = format(frac).split('').reverse().join('') - - return prefix + '_' + suffix - } - @ $mol_mem override dec_enabled() : boolean { return this.enabled() && (