# Всплывающие подсказки

## Общая информация <a href="#general-information" id="general-information"></a>

Компонент всплывающих подсказок - это отличная альтернатива стандартным атрибутам title. Используйте атрибут <mark style="color:orange;">`data-tooltip`</mark> вместо стандартного *title*, для работы всплывающих подсказок.

Для направления отображаемой подсказки, используйте атрибут <mark style="color:orange;">`data-tooltip-direction`</mark>.\
В качестве значения можно передать одно из доступных значений: up, down, left, right.

Вы так же можете использовать альтернативный синтаксис объединив data-tooltip и\
data-tooltip-direction в один из следующих атрибутов: <mark style="color:orange;">`data-tooltip-up`</mark>,\ <mark style="color:orange;">`data-tooltip-down`</mark>, <mark style="color:orange;">`data-tooltip-left`</mark>, <mark style="color:orange;">`data-tooltip-right`</mark> соответственно.

```html
<a href="#" data-tooltip="Стандартная подсказка">По умолчанию</a> |
<a href="#" data-tooltip-left="Подсказка слева!">Слева</a> |
<a href="#" data-tooltip-up="Подсказка сверху!">Сверху</a> |
<a href="#" data-tooltip-down="Подсказка снизу!">Снизу</a> |
<a href="#" data-tooltip-right="Подсказка справа!">Справа</a> |
<a href="#" data-tooltip="Подсказка справа!" data-tooltip-direction="down">Справа</a>
```

{% embed url="<https://codepen.io/pipui/pen/gOjVQQN>" %}
Пример работы кода выше
{% endembed %}

## Javascript

По умолчанию подсказки инстализируются автоматически при наведении на соответствующий объект. Но вы можете произвести это действие и вручную, создав экземпляр класса <mark style="color:orange;">`PipUI.Tooltip`</mark>, который принимает 2 параметра:

1. Инициатор события (ссылка или объект)
2. Объект опций

### Инициализация подсказки <a href="#init" id="init"></a>

```html
<div id="tooltip-trigger">Tooltip!</div>

<script>
    let tooltip = new PipUI.Tooltip('#tooltip-trigger', {
        content: 'My tooltip message'
    })
</script>
```

### Опции <a href="#options" id="options"></a>

```
// Выводить в консоль отладку
debug: false

// Направление выводимой подсказки
direction: 'up'

// Содержимое подсказки. При инициализации через javascript можно использовать HTML
content: ''

// Шаблон подсказки
template: '<div class="tooltip"></div>'

// Класс, который присваивается подсказке при отображении и уберается при исчезании
showedClass: 'tooltip-active'

// Функция обратного вызова, которая срабатывает при появлении подсказки
showCallback: undefined

// Функция обратного вызова, которая срабатывает при исчезании подсказки
hideCallback: undefined

// Функция обратного вызова, которая срабатывает при обновлении подсказки
updateCallback: undefined

// Объект доступных направлений
directions: {...}
```

### Методы <a href="#methods" id="methods"></a>

```javascript
let tooltip = new PipUI.Dropdown();

tooltip.getID() // Вернет уникальный идентификатор подсказки

tooltip.setOptions(object) // Изменить опции подсказки. DOM не будет изменен
// до вызова метода tooltip.update()

tooltip.getOptions() // Получить опции подсказки

tooltip.update() // Отрендерит подсказку заново.
// По умолчанию производится при каждом появлении подсказки

tooltip.isOpen() // Отображена ли в текущий момент подсказка

tooltip.hide(callback) // Скрыть подсказку
// Параметр callback является приоритетной функцией обратного
// вызова при завершении скрытия, если она задана и через опции

tooltip.show(callback) // Отобразить подсказку
// Параметр callback является приоритетной функцией обратного
// вызова при завершении отображения, если она задана и через опции
```

### События

| Триггер              | Описание                                    | Инициатор |
| -------------------- | ------------------------------------------- | --------- |
| update-tooltip-pipui | Срабатывает при обновлении тултипа          | .tooltip  |
| show-tooltip-pipui   | Срабатывает при начале появления тултипа    | .tooltip  |
| hide-tooltip-pipui   | Срабатывает при начале исчезания тултипа    | .tooltip  |
| showed-tooltip-pipui | Срабатывает при окончании появления тултипа | .tooltip  |
| hided-tooltip-pipui  | Срабатывает при окончании исчезания тултипа | .tooltip  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://v2-0-0.pipui.ru/components/tooltip.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
