Свойства экземпляра

Экземпляр AutoNumeric представляет собой объект-обёртку над DOM-элементом ввода, который инкапсулирует состояние форматирования, правила локали и текущее числовое значение в различных представлениях. Внутренние свойства экземпляра формируют основу всей работы библиотеки, поскольку именно через них реализуются синхронизация между отображаемым значением и «сырыми» данными, а также управление поведением форматирования в реальном времени.

domElement / node Одним из ключевых элементов экземпляра является ссылка на связанный DOM-элемент. Обычно это HTMLInputElement, над которым инициализирован AutoNumeric. Через это свойство библиотека осуществляет:

  • перехват пользовательского ввода;
  • обновление отображаемого значения;
  • управление курсором и выделением;
  • синхронизацию с внутренним состоянием.

В некоторых реализациях может встречаться абстракция node, но смысл остаётся одинаковым — связь с конкретным элементом интерфейса.

parentForm / form Если элемент находится внутри формы, экземпляр может хранить ссылку на родительский form-элемент. Это используется для корректной интеграции с отправкой данных и обработкой submit-событий, особенно когда требуется временно преобразовать форматированное значение в «сырое» число.

Состояние значения

rawValue / unformattedValue Внутреннее числовое значение без форматирования. Это основное представление данных, с которым работает логика вычислений. Оно:

  • хранится как число или строка (в зависимости от конфигурации);
  • не содержит разделителей тысяч;
  • не включает символы валюты или суффиксы;
  • используется при математических операциях и сериализации.

Именно это значение считается «истинным» с точки зрения модели данных.

formattedValue / formatted Строковое представление числа, отображаемое пользователю в input-поле. Оно формируется на основе настроек экземпляра:

  • разделителей групп;
  • десятичного символа;
  • префиксов и суффиксов;
  • правил округления.

Это значение всегда синхронизировано с rawValue, но может отличаться по форме представления.

previousValue Служебное свойство, фиксирующее предыдущее состояние значения. Используется для:

  • отката при невалидном вводе;
  • определения изменений;
  • оптимизации перерисовки DOM;
  • вычисления дельты изменения.

Конфигурационные свойства

settings / options Один из центральных объектов экземпляра, содержащий все активные настройки AutoNumeric. Внутри него находятся параметры:

  • форматирования чисел;
  • правила ограничения ввода;
  • поведение при потере фокуса;
  • допустимые диапазоны;
  • настройки локали.

Этот объект может быть:

  • иммутабельным (в зависимости от режима);
  • клонированным при инициализации;
  • частично переопределяемым через публичные методы.

defaultSettings Ссылка на базовый набор конфигурации библиотеки. Используется как эталон при создании новых экземпляров и при сбросе настроек.

decimalPlaces / precision Хранит текущее количество знаков после запятой, которое применяется к значению. Это свойство может:

  • быть фиксированным;
  • вычисляться динамически на основе настроек;
  • изменяться при изменении режима округления.

Состояние и флаги поведения

isInitialized Булево значение, отражающее факт полной инициализации экземпляра. После создания объекта и привязки к DOM-элементу этот флаг становится true. До завершения инициализации некоторые операции могут быть недоступны.

isFocused Отражает текущее состояние фокуса input-элемента. Используется для:

  • изменения поведения форматирования при вводе;
  • временного упрощения отображения;
  • управления курсором.

isDestroyed Служебный флаг, указывающий, что экземпляр был уничтожен и больше не должен использоваться. После установки этого значения любые операции над экземпляром считаются некорректными.

Свойства курсора и выделения

selectionStart / selectionEnd AutoNumeric часто синхронизирует позицию курсора с внутренним состоянием, поскольку форматирование может изменять длину строки. Эти свойства:

  • отражают текущую позицию ввода;
  • корректируются после каждого форматирования;
  • учитывают разделители и символы валют.

caretPosition Обобщённое состояние позиции каретки, используемое для восстановления положения курсора после перерисовки значения.

Свойства локализации

decimalCharacter Символ, используемый для разделения целой и дробной части числа (например, . или ,). Является частью активной конфигурации экземпляра.

digitGroupSeparator Символ или строка, используемая для разделения разрядов числа (например, пробел или запятая). Это свойство влияет только на отображение, не изменяя rawValue.

currencySymbol / currencySign Если экземпляр работает в режиме валюты, хранит символ валюты. Он может быть:

  • префиксом (до числа);
  • суффиксом (после числа);
  • динамически изменяемым в зависимости от настроек локали.

Свойства ограничения ввода

minimumValue / maximumValue Определяют допустимый диапазон значений. При вводе данные проверяются на соответствие этим границам. Нарушение диапазона может:

  • блокировать ввод;
  • автоматически корректировать значение;
  • вызывать откат к предыдущему состоянию.

allowDecimalPadding Определяет, следует ли автоматически дополнять дробную часть нулями до заданной точности.

leadingZeroAllowed Контролирует поведение при вводе чисел с ведущими нулями. При отключении такие нули удаляются автоматически.

Служебные внутренние свойства

history / undoStack Некоторые реализации AutoNumeric поддерживают стек изменений, позволяющий отслеживать последовательность ввода. Это используется для:

  • отмены последнего действия;
  • анализа изменений;
  • восстановления состояния.

eventsBound Флаг или структура, отражающая, какие DOM-события уже привязаны к элементу (input, keydown, blur, focus). Предотвращает повторную регистрацию обработчиков.

lastProcessedValue Служебное значение, фиксирующее последний обработанный ввод, что позволяет избегать повторного форматирования одного и того же состояния.

Связь с внешними данными

linkedField / relatedElements В некоторых сценариях экземпляр может быть связан с другими элементами формы. Это используется для:

  • синхронизации нескольких полей;
  • зеркального отображения значений;
  • вычисления зависимых значений.

originalValue Начальное значение, с которым был инициализирован экземпляр. Оно может использоваться при:

  • сбросе формы;
  • сравнении изменений;
  • восстановлении состояния после уничтожения экземпляра.

Метаданные экземпляра

id Уникальный идентификатор экземпляра, используемый для:

  • внутреннего реестра AutoNumeric;
  • поиска экземпляра по DOM-элементу;
  • управления множественными инстансами на странице.

version Версия библиотеки, с которой был создан экземпляр. Используется для совместимости при миграциях и обновлениях конфигурации.

creationTimestamp Временная метка создания экземпляра. Позволяет анализировать жизненный цикл объекта и отладку поведения в сложных интерфейсах.

Взаимосвязь свойств внутри экземпляра

Состояние экземпляра AutoNumeric представляет собой связанную систему, в которой изменение одного свойства автоматически влияет на другие. Например:

  • изменение rawValue приводит к пересчёту formattedValue;
  • обновление decimalCharacter требует перерасчёта отображения;
  • смена precision изменяет округление и формат вывода;
  • изменение фокуса (isFocused) влияет на стратегию отображения чисел.

Такая структура обеспечивает согласованность между вводом пользователя, визуальным представлением и внутренней числовой моделью данных, минимизируя рассинхронизацию состояния даже при интенсивных изменениях DOM.