UNPKG

angular-ui-bootstrap-4

Version:

Native AngularJS (Angular) directives for Bootstrap

126 lines (95 loc) 5.4 kB
A lightweight, extensible directive for fancy popover creation. The popover directive supports multiple placements, optional transition animation, and more. Like the Bootstrap jQuery plugin, the popover **requires** the tooltip module. __Note to mobile developers__: Please note that while popovers may work correctly on mobile devices (including tablets), we have made the decision to not officially support such a use-case because it does not make sense from a UX perspective. There are three versions of the popover: `uib-popover` and `uib-popover-template`, and `uib-popover-html`: * `uib-popover` - Takes text only and will escape any HTML provided for the popover body. * `uib-popover-html` <small class="badge">$</small> - Takes an expression that evaluates to an HTML string. Note that this HTML is not compiled. If compilation is required, please use the `uib-popover-template` attribute option instead. *The user is responsible for ensuring the content is safe to put into the DOM!* * `uib-popover-template` <small class="badge">$</small> - A URL representing the location of a template to use for the popover body. Note that the contents of this template need to be wrapped in a tag, e.g., `<div></div>`. ### uib-popover-* settings All these settings are available for the three types of popovers. * `popover-animation` <small class="badge">$</small> <small class="badge">C</small> _(Default: `true`, Config: `animation`)_ - Should it fade in and out? * `popover-append-to-body` <small class="badge">$</small> <small class="badge">C</small> _(Default: `false`, Config: `appendToBody`)_ - Should the popover be appended to '$body' instead of the parent element? * `popover-class` - Custom class to be applied to the popover. * `popover-enable` <small class="badge">$</small> _(Default: `true`)_ - Is it enabled? It will enable or disable the configured popover-trigger. * `popover-is-open` <i class="glyphicon glyphicon-eye-open"></i> _(Default: `false`)_ - Whether to show the popover. * `popover-placement` <small class="badge">C</small> _(Default: `top`, Config: `placement`)_ - Passing in 'auto' separated by a space before the placement will enable auto positioning, e.g: "auto bottom-left". The popover will attempt to position where it fits in the closest scrollable ancestor. Accepts: * `top` - popover on top, horizontally centered on host element. * `top-left` - popover on top, left edge aligned with host element left edge. * `top-right` - popover on top, right edge aligned with host element right edge. * `bottom` - popover on bottom, horizontally centered on host element. * `bottom-left` - popover on bottom, left edge aligned with host element left edge. * `bottom-right` - popover on bottom, right edge aligned with host element right edge. * `left` - popover on left, vertically centered on host element. * `left-top` - popover on left, top edge aligned with host element top edge. * `left-bottom` - popover on left, bottom edge aligned with host element bottom edge. * `right` - popover on right, vertically centered on host element. * `right-top` - popover on right, top edge aligned with host element top edge. * `right-bottom` - popover on right, bottom edge aligned with host element bottom edge. * `popover-popup-close-delay` <small class="badge">C</small> _(Default: `0`, Config: `popupCloseDelay`)_ - For how long should the popover remain open after the close trigger event? * `popover-popup-delay` <small class="badge">C</small> _(Default: `0`, Config: `popupDelay`)_ - Popup delay in milliseconds until it opens. * `popover-title` - A string to display as a fancy title. * `popover-trigger` <small class="badge">$</small> _(Default: `'click'`)_ - What should trigger a show of the popover? Supports a space separated list of event names, or objects (see below). **Note:** To configure the tooltips, you need to do it on `$uibTooltipProvider` (also see below). ### Triggers The following show triggers are supported out of the box, along with their provided hide triggers: - `mouseenter`: `mouseleave` - `click`: `click` - `outsideClick`: `outsideClick` - `focus`: `blur` - `none` The `outsideClick` trigger will cause the popover to toggle on click, and hide when anything else is clicked. For any non-supported value, the trigger will be used to both show and hide the popover. Using the 'none' trigger will disable the internal trigger(s), one can then use the `popover-is-open` attribute exclusively to show and hide the popover. ### $uibTooltipProvider Through the `$uibTooltipProvider`, you can change the way tooltips and popovers behave by default; the attributes above always take precedence. The following methods are available: * `setTriggers(obj)` _(Example: `{ 'openTrigger': 'closeTrigger' }`)_ - Extends the default trigger mappings mentioned above with mappings of your own. * `options(obj)` - Provide a set of defaults for certain tooltip and popover attributes. Currently supports the ones with the <small class="badge">C</small> badge. ### Known issues For Safari 7+ support, if you want to use **focus** `popover-trigger`, you need to use an anchor tag with a tab index. For example: ``` <a tabindex="0" uib-popover="Test" popover-trigger="focus" class="btn btn-secondary"> Click Me </a> ```