## Tooltip
**Kind**: global class
* [Tooltip](#Tooltip)
* [new Tooltip(reference, options)](#new_Tooltip_new)
* _instance_
* [.show()](#Tooltip+show)
* [.hide()](#Tooltip+hide)
* [.dispose()](#Tooltip+dispose)
* [.toggle()](#Tooltip+toggle)
* _static_
* [.PlacementFunction](#Tooltip.PlacementFunction) ⇒ String
* [.TitleFunction](#Tooltip.TitleFunction) ⇒ String
### new Tooltip(reference, options)
Create a new Tooltip.js instance
**Returns**: Object
- instance - The generated tooltip instance
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| reference | HTMLElement
| | The DOM node used as reference of the tooltip (it can be a jQuery element). |
| options | Object
| | |
| options.placement | String
| bottom
| Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)` |
| options.container | HTMLElement
\| String
\| false
| false
| Append the tooltip to a specific element. |
| options.delay | Number
\| Object
| 0
| Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type. If a number is supplied, delay is applied to both hide/show. Object structure is: `{ show: 500, hide: 100 }` |
| options.html | Boolean
| false
| Insert HTML into the tooltip. If false, the content will inserted with `innerText`. |
| options.placement | String
\| PlacementFunction
| 'top'
| One of the allowed placements, or a function returning one of them. |
| [options.template] | String
| '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
| Base HTML to used when creating the tooltip. The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`. `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow. The outermost wrapper element should have the `.tooltip` class. |
| options.title | String
\| HTMLElement
\| TitleFunction
| ''
| Default title value if `title` attribute isn't present. |
| [options.trigger] | String
| 'hover focus'
| How tooltip is triggered - click, hover, focus, manual. You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger. |
| options.boundariesElement | HTMLElement
| | The element used as boundaries for the tooltip. For more information refer to Popper.js' [boundariesElement docs](https://popper.js.org/popper-documentation.html) |
| options.offset | Number
\| String
| 0
| Offset of the tooltip relative to its reference. For more information refer to Popper.js' [offset docs](https://popper.js.org/popper-documentation.html) |
| options.popperOptions | Object
| {}
| Popper options, will be passed directly to popper instance. For more information refer to Popper.js' [options docs](https://popper.js.org/popper-documentation.html) |
### tooltip.show()
Reveals an element's tooltip. This is considered a "manual" triggering of the tooltip.
Tooltips with zero-length titles are never displayed.
**Kind**: instance method of [Tooltip
](#Tooltip)
### tooltip.hide()
Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.
**Kind**: instance method of [Tooltip
](#Tooltip)
### tooltip.dispose()
Hides and destroys an element’s tooltip.
**Kind**: instance method of [Tooltip
](#Tooltip)
### tooltip.toggle()
Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.
**Kind**: instance method of [Tooltip
](#Tooltip)
### Tooltip.PlacementFunction ⇒ String
Placement function, its context is the Tooltip instance.
**Kind**: static typedef of [Tooltip
](#Tooltip)
**Returns**: String
- placement - One of the allowed placement options.
| Param | Type | Description |
| --- | --- | --- |
| tooltip | HTMLElement
| tooltip DOM node. |
| reference | HTMLElement
| reference DOM node. |
### Tooltip.TitleFunction ⇒ String
Title function, its context is the Tooltip instance.
**Kind**: static typedef of [Tooltip
](#Tooltip)
**Returns**: String
- placement - The desired title.