@atlassian/aui
Version:
Atlassian User Interface Framework
91 lines (79 loc) • 2.81 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['./jquery', '../../js-vendor/jquery/jquery.tipsy'], factory);
} else if (typeof exports !== "undefined") {
factory(require('./jquery'), require('../../js-vendor/jquery/jquery.tipsy'));
} else {
var mod = {
exports: {}
};
factory(global.jquery, global.jquery);
global.tooltip = mod.exports;
}
})(this, function (_jquery) {
'use strict';
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function handleStringOption($self, options, stringOption) {
// Pass string values straight to tipsy
$self.tipsy(stringOption);
if (stringOption === 'destroy') {
if (options.live) {
(0, _jquery2.default)($self.context).off('.tipsy', $self.selector);
} else {
$self.unbind('.tipsy');
}
}
return $self;
}
function bindTooltip($self, options) {
$self.tipsy(options);
var hideOnClick = options && options.hideOnClick && (options.trigger === 'hover' || !options.trigger && $self.tipsy.defaults.trigger === 'hover');
if (hideOnClick) {
var onClick = function onClick() {
(0, _jquery2.default)(this).tipsy('hide');
};
if (options.live) {
(0, _jquery2.default)($self.context).on('click.tipsy', $self.selector, onClick);
} else {
$self.bind('click.tipsy', onClick);
}
}
return $self;
}
_jquery2.default.fn.tooltip = function (options) {
var allOptions = _jquery2.default.extend({}, _jquery2.default.fn.tooltip.defaults, options);
// Handle live option
if (allOptions.live) {
if (typeof options === 'string') {
handleStringOption(this, allOptions, options);
} else {
bindTooltip(this, allOptions);
}
return this;
}
// If not live, bind each object in the collection
return this.each(function () {
var $this = (0, _jquery2.default)(this);
if (typeof options === 'string') {
handleStringOption($this, allOptions, options);
} else {
bindTooltip($this, allOptions);
}
return $this;
});
};
_jquery2.default.fn.tooltip.defaults = {
opacity: 1.0,
offset: 1,
delayIn: 500,
hoverable: true,
hideOnClick: true,
aria: true
};
});
//# sourceMappingURL=tooltip.js.map