Конфигурация AutoNumeric представляет собой объект параметров, определяющий поведение форматирования числовых значений в полях ввода и при программной работе с экземплярами. При инициализации библиотеки каждый переданный параметр проходит этап нормализации и проверки, включающий сопоставление с допустимыми ключами, приведение типов и применение значений по умолчанию.
Основная задача валидации конфигурации заключается в обеспечении предсказуемого поведения экземпляра: любые некорректные, неизвестные или конфликтующие опции должны быть либо проигнорированы, либо заменены безопасными значениями, либо вызвать ошибку в зависимости от режима работы.
Конфигурация AutoNumeric строится как плоский объект ключ–значение, где каждый ключ соответствует конкретному аспекту форматирования:
Пример логической структуры:
{
digitGroupSeparator: ",",
decimalCharacter: ".",
decimalPlaces: 2,
minimumValue: "0",
maximumValue: "9999999",
modifyValueOnWheel: true
}
При этом внутренняя модель AutoNumeric не хранит конфигурацию «как есть». Перед использованием она проходит этап трансформации, где:
В момент создания экземпляра выполняется последовательность шагов:
Загрузка конфигурации по умолчанию Если пользователь не передал настройки, используется стандартный профиль.
Слияние с пользовательскими параметрами Переданные значения поверхностно накладываются на базовые.
Приведение типов Например:
"2" → 2"true" → trueПроверка допустимости ключей Все неизвестные параметры отбрасываются либо помечаются как некорректные.
Валидация зависимых опций Некоторые параметры имеют взаимные ограничения:
AutoNumeric использует внутренний список разрешённых опций. При передаче конфигурации выполняется сопоставление ключей:
Такой механизм защищает от ошибок при обновлении версии библиотеки, когда API конфигурации изменяется.
Некорректные значения могут возникать в нескольких формах:
Поведение при ошибках зависит от режима:
В строгом режиме любые нарушения конфигурации приводят к исключению или отказу инициализации экземпляра. Это используется в системах, где критична точность ввода.
В мягком режиме AutoNumeric:
Особое внимание уделяется параметрам диапазона:
Проверка выполняется на этапе инициализации и при каждом программном изменении конфигурации.
Логика проверки:
minimumValue > maximumValue, значения меняются
местами или приводятся к дефолтным;step) не согласуется с точностью, он
корректируется.Некоторые параметры влияют друг на друга и должны проверяться в связке:
Пример конфликтной конфигурации:
{
digitGroupSeparator: ".",
decimalCharacter: "."
}
Такая комбинация считается недопустимой и автоматически корректируется.
AutoNumeric поддерживает изменение параметров после инициализации. В этом случае повторно запускается процесс проверки:
Особое внимание уделяется случаям, когда изменение конфигурации влияет на уже введённые данные. Например, уменьшение количества знаков после запятой приводит к пересчёту отображаемого значения с округлением.
В диагностическом режиме библиотека может фиксировать:
Такая информация используется для отладки сложных форм ввода, особенно в финансовых и бухгалтерских интерфейсах.
Типичный сценарий логирования:
Для предотвращения некорректного состояния экземпляра применяются защитные механизмы:
Это исключает ситуацию, при которой внешнее изменение объекта конфигурации приводит к неожиданному поведению уже созданного экземпляра.
AutoNumeric поддерживает набор стандартных конфигураций. При их использовании выполняется дополнительная проверка:
Переопределённые значения всегда проходят ту же цепочку валидации, что и при полной инициализации, что обеспечивает единообразие поведения независимо от способа задания настроек.