Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

dadata-suggestions

Форк библиотеки suggestions-jquery для автодополнения адресов, организаций, имен и других данных через API DaData.

Статус проекта

🚧 В разработке

Отличия от оригинальной библиотеки:

  • Полностью удалён jQuery.
  • Запросы отправляются через fetch, асинхронный API построен на промисах вместо Deferred.
  • Аргументы в событиях suggestions-* теперь в виде массива.
  • Типы TypeScript для опций, подсказок и методов.
  • Современный синтаксис и API браузера: нужны Chrome/Edge 98+, Firefox 97+, Safari 15.4+.
  • Упрощённый код и уменьшенный размер библиотеки.

Что удалено:

  • Реклама DaData(promo).
  • Работа без CORS.
  • Отложенная инициализация.
  • Методы disable/enable.
  • ФИАС.
  • Версия и заголовок(header) X-version.
  • scrollOnFocus.
  • Опция addon (индикатор загрузки и кнопка очистки).
  • Родительское поле в constraints в виде jQuery-коллекции.

Портированы тесты из оригинального репозитория, за исключением тестов, связанных с удалёнными функциями.

Ломающие изменения после 0.3.1

  • onSearchError(query, error) вместо onSearchError(query, xhr, textStatus, errorThrown). error — HttpError (с полем response, экспортируется из пакета), TypeError при сетевой ошибке или DOMException "TimeoutError".
  • Колбэки и события после ответа сервера и выбора подсказки (onSelect, suggestions-select, suggestions-fixdata и т.д.) вызываются асинхронно, даже при ответе из кэша.
  • select() возвращает Promise<void>, selectCurrentValue() — промис с индексом выбранной подсказки или -1, getSuggestions() — промис с подсказками или undefined.
  • Клавиши определяются по KeyboardEvent.key: программно созданные события должны задавать key, а не keyCode/which.
  • setOptions({ option: undefined }) сбрасывает опцию, а не игнорирует её.
  • setSuggestion() копирует подсказку через structuredClone: функции и DOM-узлы в data вызывают исключение.
  • Тип Options переписан: колбэки типизированы с this и аргументами, hint принимает строку или false, параметр типа — T extends string.

Исправленные ошибки после 0.3.1

  • dispose() и смена constraints снимают обработчики и отписывают поле от родителя.
  • Определённое местоположение сразу попадает в запросы после setOptions и в новые экземпляры.
  • Уход из поля во время обогащения больше не обрывает обогащение.
  • Ответ сервера с пустым телом не приводит к необработанной ошибке.

Оригинальная библиотека

Этот проект основан на suggestions-jquery от HFLabs.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages