From 5cfc165f1db3f6e1f02afffd1c423e9ad11fcf06 Mon Sep 17 00:00:00 2001 From: nathan Date: Tue, 6 Aug 2024 11:52:22 -0600 Subject: [PATCH] Et2Number: Pad number with specific mask to full number of decimals --- api/js/etemplate/Et2Textbox/Et2Number.ts | 20 ++++++++++++++++++-- api/js/etemplate/Et2Textbox/Et2Textbox.ts | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/api/js/etemplate/Et2Textbox/Et2Number.ts b/api/js/etemplate/Et2Textbox/Et2Number.ts index b5d11335f0..84c8ab0398 100644 --- a/api/js/etemplate/Et2Textbox/Et2Number.ts +++ b/api/js/etemplate/Et2Textbox/Et2Number.ts @@ -240,7 +240,7 @@ export class Et2Number extends Et2Textbox get valueAsNumber() : number { - let formattedValue = this._mask?.unmaskedValue ?? this.value; + let formattedValue = (this.mask && this._mask?.value ? this.stripFormat(this._mask.value) : this._mask?.unmaskedValue) ?? this.value; if(typeof this.precision !== 'undefined') { formattedValue = parseFloat(parseFloat(formattedValue).toFixed(this.precision)); @@ -318,7 +318,23 @@ export class Et2Number extends Et2Textbox updateMaskValue() { this._mask.updateValue(); - this._mask.unmaskedValue = "" + this.value; + if(!this.mask) + { + // Number mask sometimes gets lost with different decimal characters + this._mask.unmaskedValue = ("" + this.value); + + // Fill decimals to precision + if(this.precision && ("" + this.value).includes(".")) + { + this._mask.unmaskedValue = this._mask.unmaskedValue.padEnd(("" + this.value).length + this.precision, "0"); + } + } + else if(this.precision && ("" + this.value).includes(".")) + { + // Fill decimals to precision + let v = formatNumber(this.value, this.decimalSeparator, this.thousandsSeparator); + this._mask.value = v.padEnd(v.length + this.precision, "0"); + } this._mask.updateValue(); } diff --git a/api/js/etemplate/Et2Textbox/Et2Textbox.ts b/api/js/etemplate/Et2Textbox/Et2Textbox.ts index 2add3f2433..a38d523d76 100644 --- a/api/js/etemplate/Et2Textbox/Et2Textbox.ts +++ b/api/js/etemplate/Et2Textbox/Et2Textbox.ts @@ -72,7 +72,7 @@ export class Et2Textbox extends Et2InputWidget(SlInput) onkeypress; private __validator : any; - private _mask : InputMask; + protected _mask : InputMask; protected _value : string = ""; inputMode = "text";