В новых версиях AutoNumeric существенно переработан внутренний слой взаимодействия с DOM и событиями. Библиотека перешла к более строгому разделению ответственности между форматированием значения и управлением состоянием элемента ввода. Это позволило повысить предсказуемость поведения при работе в SPA-приложениях и при динамической перерисовке интерфейса.
Одним из ключевых улучшений стало более стабильное взаимодействие с современными фреймворками. AutoNumeric теперь лучше интегрируется с компонентной моделью, где DOM-элементы могут часто уничтожаться и пересоздаваться. Внутренние механизмы очистки состояния позволяют избежать утечек памяти при корректном использовании методов удаления экземпляра.
Особое внимание уделено синхронизации значения между представлением и моделью данных. В новых версиях реализован более строгий контроль над тем, когда именно происходит преобразование строки ввода в числовой формат и обратно, что критично для реактивных систем.
Конфигурационный слой AutoNumeric стал более гибким и модульным. Появилась возможность комбинировать пресеты и пользовательские настройки без риска непредсказуемого перекрытия параметров.
Ключевые изменения:
Теперь конфигурация может быть частично обновлена без полной переинициализации экземпляра. Это особенно важно в интерфейсах, где формат отображения может меняться в зависимости от контекста (например, переключение валют или режимов отображения).
Также добавлена поддержка более сложных сценариев конфигурирования через объектные фабрики, позволяющие генерировать настройки на основе внешних условий.
Система событий в AutoNumeric получила переработанный цикл обработки пользовательского ввода. Основное изменение связано с разделением низкоуровневых DOM-событий и логических событий библиотеки.
Добавлены дополнительные события, позволяющие точнее отслеживать состояние поля ввода:
Это позволяет строить более детализированную логику обработки данных, особенно в сложных формах с зависимыми полями.
Также переработан механизм подписки. Теперь обработчики могут быть привязаны с учетом контекста экземпляра, что снижает вероятность ошибок при работе с несколькими инстансами на одной странице.
Одним из значительных улучшений стала более гибкая система поддержки локалей. Форматирование чисел теперь отделено от жестко заданных региональных правил и может быть расширено пользовательскими наборами параметров.
Поддерживаются сценарии:
Особенно важным стало улучшение работы с дробными разделителями. В старых версиях могли возникать конфликты при смешанных вводах (например, когда пользователь вставляет значение из внешнего источника с другим форматом). В новых версиях добавлена более интеллектуальная нормализация входной строки до применения маски.
AutoNumeric получил ряд оптимизаций, направленных на сценарии массового применения на странице.
Среди ключевых изменений:
Особенно заметен прирост производительности при работе с таблицами, содержащими большое количество числовых полей. В таких случаях ранее наблюдались задержки при синхронном форматировании, теперь же обработка распределена более эффективно.
Также улучшена работа с requestAnimationFrame для минимизации блокировок UI при массовых обновлениях значений.
Расширен API управления экземплярами AutoNumeric. Появились дополнительные методы для более тонкой работы с состоянием поля.
Добавлены возможности:
Особое значение имеет возможность переключения режима работы между «визуальным» и «логическим» представлением. Это позволяет использовать AutoNumeric как промежуточный слой между пользовательским вводом и бизнес-логикой приложения.
Значительные изменения затронули обработку вставки значений из буфера обмена и внешних источников.
Теперь библиотека:
Добавлен более устойчивый механизм очистки входной строки, предотвращающий ошибки при вставке данных из Excel, CSV или сторонних API.
Также улучшена обработка частично некорректных данных: если входное значение содержит смешанные символы, библиотека пытается извлечь максимально корректную числовую часть без полного отклонения ввода.
Механизм масок ввода стал более гибким и детализированным. Теперь возможно задавать правила форматирования на уровне отдельных символов и позиций.
Поддерживаются:
Это открывает возможность реализации сложных сценариев, таких как финансовые формы с адаптивным отображением (например, переключение между целыми числами и дробными в зависимости от порогового значения).
AutoNumeric стал более устойчивым к особенностям современных сборщиков модулей. Добавлена корректная поддержка ESM-импорта, а также улучшена совместимость с tree-shaking.
Внутренняя структура кода переработана таким образом, чтобы минимизировать побочные эффекты при импорте. Это позволяет использовать библиотеку в проектах с агрессивной оптимизацией бандла без потери функциональности.
Также улучшена работа в средах с SSR, где DOM может отсутствовать на этапе выполнения кода. Добавлены проверки и безопасные режимы инициализации.
AutoNumeric получил расширенные возможности интеграции с внешними источниками данных. Теперь возможно более гибко связывать поле ввода с внешними моделями состояния.
Реализованы сценарии:
Особенно важно, что обновление внешнего значения может происходить без перезапуска форматирования, что снижает визуальные скачки интерфейса.
Система обработки ошибок ввода стала более предсказуемой. Вместо жесткого отклонения некорректных значений теперь используется многоступенчатая нормализация.
В процессе обработки выполняются шаги:
Это позволяет сохранять пользовательский ввод даже в случае частичных ошибок, что особенно важно в мобильных интерфейсах и при медленном вводе.
Архитектура расширений стала более формализованной. Добавлен более четкий контракт для подключения сторонних модулей.
Плагины могут:
Такая модель позволяет строить надстройки поверх AutoNumeric без изменения исходного кода библиотеки, сохраняя совместимость с обновлениями.