В библиотеке AutoNumeric основная логика работы с валютными и числовыми значениями строится вокруг набора конфигураций, определяющих правила отображения, ввода и хранения чисел. Предустановленные валютные настройки представляют собой заранее подготовленные профили, которые задают типичные параметры локализации и финансового форматирования без необходимости ручного описания каждой детали.
Такие профили используются как базовый слой конфигурации, поверх которого могут накладываться пользовательские изменения. Это позволяет стандартизировать поведение полей ввода для распространённых валютных форматов и уменьшить вероятность ошибок при ручной настройке.
В AutoNumeric каждая конфигурация представляет собой объект, содержащий набор параметров:
Предустановленные конфигурации — это именованные наборы таких объектов, доступные через внутренний реестр библиотеки.
Механизм построен так, чтобы базовая конфигурация могла быть:
Object.assign или spread-оператор;Предустановленные настройки в AutoNumeric обычно делятся на несколько категорий, каждая из которых отражает распространённые стандарты финансового форматирования.
Характеризуется следующими особенностями:
$Пример визуального представления:
$1,234,567.89
Этот формат используется в США и Канаде и является одним из наиболее часто применяемых в веб-интерфейсах, ориентированных на международную аудиторию.
Отличается инверсией разделителей:
Пример:
1 234 567,89 €
Особенность данного профиля заключается в высокой вариативности, поскольку европейские страны используют разные соглашения. Поэтому предустановка часто выступает как базовая, требующая локальной адаптации.
Вариант, близкий к североамериканскому, но с некоторыми отличиями:
Пример:
£1,234,567.89
Используется в системах, где требуется абстрагирование от конкретной валюты:
Пример:
1,234,567.89 USD
Каждый предустановленный профиль представляет собой конфигурационный объект, который может включать десятки параметров. Типичная структура включает:
{
currencySymbol: '$',
currencySymbolPlacement: 'p', // prefix
decimalCharacter: '.',
digitGroupSeparator: ',',
decimalPlaces: 2,
minimumValue: '-999999999.99',
maximumValue: '999999999.99',
roundingMethod: 'S',
allowDecimalPadding: true,
negativePositiveSignPlacement: 'l'
}
Эти параметры определяют не только отображение, но и поведение ввода, включая допустимые символы и реакцию на пользовательские действия.
Предустановленные настройки не являются конечными значениями — они выступают в роли базового слоя конфигурации.
Расширение происходит через объединение объектов:
const euroBase = AutoNumeric.getPredefinedOptions().euro;
const customEuro = {
...euroBase,
currencySymbol: '€',
currencySymbolPlacement: 's',
digitGroupSeparator: ' ',
decimalCharacter: ','
};
При таком подходе сохраняется логика базового профиля, но изменяются только локальные особенности.
AutoNumeric позволяет применять предустановки непосредственно при создании экземпляра:
new AutoNumeric('#price', 'euro');
или с уточнением параметров:
new AutoNumeric('#price', {
...AutoNumeric.getPredefinedOptions().euro,
decimalPlaces: 3
});
Такой подход ускоряет настройку интерфейса и снижает вероятность несоответствий между различными полями ввода.
Библиотека хранит набор конфигураций в статическом объекте, доступ к которому осуществляется через API. Это позволяет:
Конфигурации загружаются в память при инициализации библиотеки и доступны без дополнительной инициализации.
Предустановленные валютные настройки тесно связаны с понятием локализации, но не тождественны ему. Локаль определяет:
Валютный профиль фокусируется исключительно на финансовом отображении.
Например, один и тот же валютный символ может использоваться в разных локалях с различными правилами группировки чисел.
Каждый профиль включает правила отображения отрицательных чисел. Возможные варианты:
-1,234.00-$1,234.00(1,234.00)Предустановки часто задают наиболее распространённый вариант для конкретного региона, но допускают переопределение.
Несмотря на универсальность, готовые профили имеют ограничения:
Поэтому предустановки рассматриваются как стартовая точка, а не как финальное решение.
AutoNumeric поддерживает изменение конфигурации в рантайме. Это означает, что предустановленный профиль может быть изменён без пересоздания инстанса:
autoNumericInstance.update({
digitGroupSeparator: ' ',
currencySymbol: '€'
});
При этом сохраняется текущее значение поля, но его визуальное представление перестраивается в соответствии с новыми правилами.
В сложных интерфейсах часто используется несколько предустановленных конфигураций одновременно:
Каждый профиль применяется к отдельным полям, что позволяет унифицировать поведение внутри каждого контекста, сохраняя различия между ними.
В крупных приложениях предустановленные валютные профили выполняют функцию стандартизации. Они:
Их использование особенно важно в системах, где числовые данные вводятся в большом количестве и подвергаются строгой валидации.