accept raw number input also for roadspeed/roadheight fields

This commit is contained in:
Martin Raifer
2023-05-26 19:34:32 +02:00
parent 2b64d70352
commit 53f77fb852
3 changed files with 14 additions and 5 deletions
+3 -2
View File
@@ -19,9 +19,11 @@ export {
uiFieldText as uiFieldIdentifier,
uiFieldText as uiFieldNumber,
uiFieldText as uiFieldTel,
uiFieldText as uiFieldUrl
uiFieldText as uiFieldUrl,
likelyRawNumberFormat
};
const likelyRawNumberFormat = /^-?(0\.\d*|\d*\.\d{0,2}(\d{4,})?|\d{4,}\.\d{3})$/;
export function uiFieldText(field, context) {
var dispatch = d3_dispatch('change');
@@ -36,7 +38,6 @@ export function uiFieldText(field, context) {
const formatFloat = localizer.floatFormatter(localizer.languageCode());
const parseLocaleFloat = localizer.floatParser(localizer.languageCode());
const countDecimalPlaces = localizer.decimalPlaceCounter(localizer.languageCode());
const likelyRawNumberFormat = /^-?(0\.\d*|\d*\.\d{0,2}(\d{4,})?|\d{4,}\.\d{3})$/;
if (field.type === 'tel') {
fileFetcher.get('phone_formats')
+7 -2
View File
@@ -5,6 +5,7 @@ import * as countryCoder from '@rapideditor/country-coder';
import { uiCombobox } from '../combobox';
import { t, localizer } from '../../core/localizer';
import { utilGetSetValue, utilNoAuto, utilRebind, utilTotalExtent } from '../../util';
import { likelyRawNumberFormat } from './input';
export function uiFieldRoadheight(field, context) {
@@ -132,9 +133,13 @@ export function uiFieldRoadheight(field, context) {
if (!primaryValue && !secondaryValue) {
tag[field.key] = undefined;
} else {
var rawPrimaryValue = parseLocaleFloat(primaryValue);
var rawPrimaryValue = likelyRawNumberFormat.test(primaryValue)
? parseFloat(primaryValue)
: parseLocaleFloat(primaryValue);
if (isNaN(rawPrimaryValue)) rawPrimaryValue = primaryValue;
var rawSecondaryValue = parseLocaleFloat(secondaryValue);
var rawSecondaryValue = likelyRawNumberFormat.test(secondaryValue)
? parseFloat(secondaryValue)
: parseLocaleFloat(secondaryValue);
if (isNaN(rawSecondaryValue)) rawSecondaryValue = secondaryValue;
if (isNaN(rawPrimaryValue) || isNaN(rawSecondaryValue) || !_isImperial) {
+4 -1
View File
@@ -5,6 +5,7 @@ import * as countryCoder from '@rapideditor/country-coder';
import { uiCombobox } from '../combobox';
import { t, localizer } from '../../core/localizer';
import { utilGetSetValue, utilNoAuto, utilRebind, utilTotalExtent } from '../../util';
import { likelyRawNumberFormat } from './input';
export function uiFieldRoadspeed(field, context) {
@@ -109,7 +110,9 @@ export function uiFieldRoadspeed(field, context) {
if (!value) {
tag[field.key] = undefined;
} else {
var rawValue = parseLocaleFloat(value);
var rawValue = likelyRawNumberFormat.test(value)
? parseFloat(value)
: parseLocaleFloat(value);
if (isNaN(rawValue)) rawValue = value;
if (isNaN(rawValue) || !_isImperial) {
tag[field.key] = context.cleanTagValue(rawValue);