2.5.63 • Published 1 year ago

@nemo.travel/search-widget v2.5.63

Weekly downloads
7
License
MIT
Repository
github
Last release
1 year ago

Установка виджета

Добавьте указанный ниже код на HTML страницу между тегами <body></body>.

<div id="root"></div>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,500,600,700&subset=cyrillic">
<link rel="stylesheet" href="https://cdn.nemo.travel/search-form/v2.5.22/flights.search.widget.min.css">
<script src="https://cdn.nemo.travel/search-form/v2.5.22/flights.search.widget.min.js"></script>
<script>
    // Полный список параметров перечислен в разделе "Конфигурация".
    FlightsSearchWidget.init({
        webskyURL: 'http://demo.websky.aero/gru',
        nemoURL: 'https://geodata.nemo.travel',
        rootElement: document.getElementById('root'),
        locale: 'ru'
    });
</script>

Пример инициализации виджета приведен в файлах /dist/websky.html и /dist/nemo.html.

P.S. Обратите внимание на номер версии виджета, указанный в ссылках на файлы: //cdn.nemo.travel/search-form/v2.5.22/flights.search.widget.min.css. Рекомендуется подключать файлы виджета с указанием конкретной версии. Полный список версий указан здесь.

Указав в ссылке в качестве версии слово .../latest/..., будут подключены файлы самой последней версии виджета.

Стилизация под внешний вид системы Nemo Travel

Для упрощения интеграции виджета с готовыми сайтами был разработан файл стилей https://cdn.nemo.travel/search-form/latest/nemo-flights.search.widget.min.css, подключив который, виджет принимает внешний вид системы Nemo Travel.

Сохранение данных в локальное хранилище браузера

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

Параметр disableCaching позволяет отключить сохранение данных. Чтобы включить работу с локальным хранилищем после инициализации виджета, необходимо вызвать глобальную функцию FlightsSearchWidget.enableCache().

Конфигурация

В метод init передается объект конфигурации виджета. Возможные параметры конфигурации:

Название параметраОбязательный параметрТип значенияЗначение по умолчаниюОписание
nemoURLдаstring-URL системы бронирования Nemo.travel
rootElementдаHTMLElement-DOM-элемент в который будет встраиваться виджет
webskyURLда (в режиме WEBSKY)string-URL системы бронирования Websky
fallbackNemoURL-string-Запасной URL системы бронирования Nemo.travel
airportsBlackList-arraynullПозволяет убрать из автокомплита определенные аэропорты или города. Пример: [ 'MOW', 'LED' ]
arrivalSuggestions-object{}Карта ближайших аэропортов, где ключ - строка в формате XXX-YYY (XXX и YYY соответственно IATA коды пункта вылета и пункта прилета), значение - объект ArrivalSuggestionItem(#объект-arrivalsuggestionitem. Ближайший аэропорт указывается относительно пункта прилета YYY
autoFocusArrivalAirport-booleanfalseАвтоматически фокусироваться на поле выбора аэропорта прилета, после выбора аэропорта вылета.
autoFocusReturnDate-booleanfalseАвтоматически фокусироваться на поле выбора обратной даты, после выбора даты вылета.
citiesOnly-boolfalse(Только для режима WEBSKY) Позволяет не отображать аэропорты внутри города
customAirportNames-objectnullОбъект, позволяющий использовать свои собственные названия для определенных аэропортов. Пример объекта: { 'LHR': { 'ru': 'Лондон', 'en': 'London' } }.
customTranslations-objectnullОбъект, позволяющий использовать свои собственные метки перевода. Пример объекта: { 'ru': { 'search': 'Запустить поиск' }, 'en': { 'search': 'Run search' } }. Исходные метки, используемые виджетом, находятся в JSON-файлах в папке src/i18n/....
defaultArrivalAirport-string или objectnullТрехбуквенный IATA-код аэропорта или города, или объект Airport, который будет выбран по умолчанию в качестве аэропорта прилета.
defaultDepartureAirport-string или objectnullТрехбуквенный IATA-код аэропорта или города, или объект Airport, который будет выбран по умолчанию в качестве аэропорта вылета.
defaultDepartureDate-stringnullДата вылета "туда" в строковом формате (YYYY-MM-DD).
defaultReturnDate-stringnullДата вылета "обратно" в строковом формате (YYYY-MM-DD).
defaultPassengers-object{ ADT: 1 }Предуставленное кол-во пассажиров
defaultServiceClass-stringEconomyКласс обслуживания (Economy или Business) по-умолчанию
directOnly-boolfalseИскать только прямые рейсы
disableCaching-boolfalseЗапрещает сохранение данных формы в локальное хранилище пользователя
disableUnavailableDates-boolfalseЗапрещает на календаре выбор дат на которые отсутствуют доступные рейсы
enableCoupon-booleanfalseДобавляет поле У меня есть купон на скидку (только для WEBSKY)
highlightAvailableDates-booleanfalseАктивирует в календаре подсветку дат, на которые есть доступные рейсы
isAWP-booleanfalseАктивируйте этот параметр, если в вашем NEMO - проекте используется Avia Widget Pro
locale-string"en"Язык интерфейса. Поддерживаются языки: русский (ru), английский (en), немецкий (de), итальянский (it), нидерландский (nl), румынский (ro), казахский (kk), узбекский (uz), украинский (ua или uk)
maxPassengersCount-number6Максимальное количество пассажиров доступное для выбора
mode-string"NEMO"Название системы бронирования, с которой предстоит работать (NEMO или WEBSKY)
openNewTab-booleanfalseОткрывать страницу результатов поиска в новом окне
readOnlyAutocomplete-booleanfalseЗапретить ввод текста в поля автокомплита аэропортов (только если указан параметр routingGrid, или включен режим Websky)
routingGrid-stringnullДвухбуквенный IATA-код авиакомпании. Если указан, автокомплит аэропортов переключается в режим поиска по маршрутной сетке авиакомпании. Также, при клике в поле автокомплита, отображаются все возможные пункты назначений авиакомпании
useNearestAirport-booleanfalseВыбирать в качестве пункта вылета ближайший аэропорт, полученный на основе IP-адреса пользователя (только если не указан параметр defaultDepartureAirport)
verticalForm-booleanfalseОтображать ли принудительно вертикальную форму поиска, вместо горизонтальной
vicinityDatesMode-boolfalseИскать перелеты в заданной границе дат
vicinityDays-integer3Количество дней для "Искать ±3 дня" (только для NEMO при включенной настройке vicinityDatesMode)
utm-object{}Объект для передачи UTM-меток. Пример: { utm_source: 'some_source', utm_campaign: 'some_promo_campaign' } (только для NEMO)

Веб-аналитика

Ниже приведена таблица событий, которые вызываются при каждом действии пользователя на форме поиска. Данный функционал можно использовать для аналитики действий пользователя с помощью инструментов Яндекс.Метрика или Google Analytics.

Подписаться на событие можно с помощью функции addEventListener:

    document.addEventListener('analytics.searchForm.search.validationError', function(event) {
    	ga('send', {
            hitType: 'event',
            eventCategory: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_КАТЕГОРИИ_X',
            eventAction: 'ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ_ДЕЙСТВИЯ_X',
            eventLabel: event.detail
        });
    });
Название событияПараметрыОписание
analytics.searchForm.search-Запуск поиска (форма заполнена корректно)
analytics.searchForm.tripType.valuedetail: OW или RT или CRВыбор типа маршрута
analytics.searchForm.directFlights.activedetail: true или falseОпция "Прямые рейсы"
analytics.searchForm.serviceClass.valuedetail: Economy или BusinessКласс обслуживания
analytics.searchForm.vicinityDates.activedetail: true или falseОпция "+/- 3 дня"
analytics.searchForm.search.validationErrordetail: stringПопытка запуска поиска с некорректно заполненной формой. В параметре detail будет передан код ошибки

Объект Airport

Название параметраОбязательный параметрТип значенияОписание
IATAдаstringТрехбуквенный IATA-код аэропорта или города
nameдаstringНазвание города или аэропорта
nameEnдаstringНазвание города или аэропорта на английском языке
country-objectОбъект Country
countryCode-stringДвухбуквенный код страны
isCity-boolЯвляется ли IATA объект городом

Объект Country

Название параметраОбязательный параметрТип значенияОписание
codeдаstringДвухбуквенный код страны
nameдаstringНазвание страны
nameEnдаstringНазвание страны на английском языке

Объект ArrivalSuggestionItem

Название параметраОбязательный параметрТип значенияОписание
suggestionдаstringIATA код предлагаемого аэропорта
distanceдаnumberРасстояние от выбранного аэропорта до предлагаемого в км
2.5.62

1 year ago

2.5.63

1 year ago

2.5.61

4 years ago

2.5.60

4 years ago

2.5.59

4 years ago

2.5.58

4 years ago

2.5.57

4 years ago

2.5.56

4 years ago

2.5.55

4 years ago

2.5.54

5 years ago

2.5.53

5 years ago

2.5.52

5 years ago

2.5.51

5 years ago

2.5.50

5 years ago

2.5.49

5 years ago

2.5.48

5 years ago

2.5.47

5 years ago

2.5.46

5 years ago

2.5.45

5 years ago

2.5.44

5 years ago

2.5.42

5 years ago

2.5.40

5 years ago

2.5.39

5 years ago

2.5.38

5 years ago

2.5.37

5 years ago

2.5.36

6 years ago

2.5.35

6 years ago

2.5.34

6 years ago

2.5.33

6 years ago

2.5.32

6 years ago

2.5.31

6 years ago

2.5.30

6 years ago

2.5.29

6 years ago

2.5.28

6 years ago

2.5.27

6 years ago

2.5.26

6 years ago

2.5.25

6 years ago

2.5.24

6 years ago

2.5.23

6 years ago

2.5.22

6 years ago

2.5.21

6 years ago

2.5.20

6 years ago

2.5.19

6 years ago

2.5.18

6 years ago

2.5.16

6 years ago

2.5.15

6 years ago

2.5.14

6 years ago

2.5.13

6 years ago

2.5.12

6 years ago

2.5.11

6 years ago

2.5.10

6 years ago

2.5.9

6 years ago

2.5.8

6 years ago

2.5.7

6 years ago

2.5.6

6 years ago

2.5.5

6 years ago

2.5.4

6 years ago

2.5.3

6 years ago

2.5.2

6 years ago

2.5.1

6 years ago

2.5.0

6 years ago

2.4.36

6 years ago

2.4.35

6 years ago

2.4.34

6 years ago

2.4.32

6 years ago

2.4.31

6 years ago

2.4.30

6 years ago

2.4.29

6 years ago

2.4.28

6 years ago

2.4.27

6 years ago

2.4.26

6 years ago

2.4.25

6 years ago

2.4.22

6 years ago

2.4.21

6 years ago

2.4.20

6 years ago

2.4.19

6 years ago

2.4.18

6 years ago

2.4.17

6 years ago

2.4.16

6 years ago

2.4.15

6 years ago

2.4.14

6 years ago

2.4.13

6 years ago

2.4.12

6 years ago

2.4.11

6 years ago

2.4.10

6 years ago

2.4.9

6 years ago

2.4.8

6 years ago

2.4.7

6 years ago

2.4.6

6 years ago

2.4.5

6 years ago

2.4.4

6 years ago

2.4.3

6 years ago

2.4.2

6 years ago

2.4.1

6 years ago

2.3.13

6 years ago

2.3.12

6 years ago

2.3.11

6 years ago

2.3.10

6 years ago

2.3.9

6 years ago

2.3.8

6 years ago

2.3.7

6 years ago

2.3.6

6 years ago

2.3.5

6 years ago

2.3.4

6 years ago

2.3.3

6 years ago

2.3.2

6 years ago

2.3.1

6 years ago

2.3.0

6 years ago

2.2.13

6 years ago

2.2.11

6 years ago

2.2.9

6 years ago

2.2.8

6 years ago

2.2.7

6 years ago

2.2.6

6 years ago

2.2.5

6 years ago

2.2.3

6 years ago

2.2.2

6 years ago

2.2.1

6 years ago

2.2.0

6 years ago

2.1.0

6 years ago

2.0.4

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

1.5.4

6 years ago

1.5.3

6 years ago

1.5.1

6 years ago

1.4.0

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

7 years ago

0.8.3

7 years ago

0.8.2

7 years ago

0.8.1

7 years ago

0.8.0

7 years ago

0.7.11

7 years ago

0.7.10

7 years ago

0.7.9

7 years ago

0.7.8

7 years ago

0.7.7

7 years ago

0.7.6

7 years ago

0.7.5

7 years ago

0.7.4

7 years ago

0.7.3

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.6.0

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago