Библиотека AutoNumeric использует набор предопределённых значений и перечислений, которые формируют единый контракт между различными частями системы: форматированием чисел, обработкой пользовательского ввода, управлением округлением и синхронизацией состояния инстанса. Константы выступают в роли стабильного слоя, исключающего необходимость работы с «магическими строками» и неявными значениями.
Внутри архитектуры выделяются несколько крупных категорий:
Каждая категория изолирует свою предметную область и используется как внутри ядра, так и при конфигурации экземпляра.
Форматирование является центральной частью AutoNumeric, поэтому соответствующие константы определяют базовые символы и правила отображения чисел.
Одними из ключевых значений выступают символы разделения:
Эти параметры не задаются произвольно в логике исполнения, а берутся из фиксированного набора допустимых значений, который гарантирует консистентность отображения вне зависимости от локали или пользовательских настроек.
Типовая модель включает:
decimalCharacter — символ дробной частиdigitGroupSeparator — разделитель тысячных группnegativeSignCharacter — символ отрицательного
значенияЭти значения используются на этапе:
AutoNumeric поддерживает отображение валютных и постфиксных символов через набор фиксированных параметров:
Перечисления позволяют задать поведение без ручной проверки строк:
Округление является одной из наиболее чувствительных частей числовой обработки, поэтому библиотека использует строгий набор режимов, задаваемых через перечисления.
Перечисление режимов определяет стратегию обработки дробной части:
Каждый режим задаёт детерминированное поведение при переполнении точности.
Режим округления применяется:
Перечисления исключают необходимость условных конструкций вида
if/else по строковым параметрам, заменяя их единым
внутренним API.
Система ввода AutoNumeric опирается на набор предопределённых значений, управляющих обработкой клавиатуры, вставки и удаления символов.
Существует классификация входных событий:
Каждая категория связана с внутренними константами, которые позволяют быстро определять тип действия без сложного анализа DOM-событий.
Вставка текста регулируется отдельным перечислением:
Такая модель позволяет стандартизировать поведение независимо от браузера.
Для унификации обработки клавиатуры AutoNumeric использует слой абстракции над keyCode и code значениями.
Перечисления делят клавиши на:
Каждая категория сопоставляется внутреннему идентификатору действия.
Вместо прямой работы с кодами клавиш используется модель действий:
Такой подход снижает зависимость от различий браузеров и клавиатурных раскладок.
Каждый экземпляр AutoNumeric проходит через набор состояний, которые определяются фиксированными константами.
Состояния используются для предотвращения конфликтов между пользовательским вводом и программными изменениями значения.
Переход между состояниями происходит строго по правилам:
Перечисления позволяют избежать неконсистентного поведения при параллельных операциях.
AutoNumeric использует событийную модель, в которой все события определены через фиксированные идентификаторы.
Каждое событие представлено как константа, а не строковый литерал, что обеспечивает:
Отдельно выделяются события, связанные с преобразованием данных:
Такая детализация позволяет внедрять промежуточную обработку без изменения ядра библиотеки.
Система валидации использует набор фиксированных кодов ошибок, которые описывают состояние входных данных.
Каждая ошибка кодируется через перечисление, что позволяет:
Ошибки не обрабатываются как исключения в классическом смысле во всех случаях. Часть из них превращается в состояния инстанса, что позволяет продолжать работу без прерывания пользовательского ввода.
Внутреннее ядро библиотеки содержит дополнительные константы, которые не относятся напрямую к пользовательской конфигурации.
Эти значения используются на этапе:
Все перечисления AutoNumeric объединяются в единую систему, которая обеспечивает:
Перечисления выступают не просто вспомогательным инструментом, а фундаментальным слоем, через который проходит вся цепочка обработки числового значения: от ввода до отображения и сериализации.