UNPKG

@atlassian/aui

Version:

Atlassian User Interface Framework

84 lines (74 loc) 2.71 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(['./jquery', './internal/amdify', './internal/skate'], factory); } else if (typeof exports !== "undefined") { factory(require('./jquery'), require('./internal/amdify'), require('./internal/skate')); } else { var mod = { exports: {} }; factory(global.jquery, global.amdify, global.skate); global.trigger = mod.exports; } })(this, function (_jquery, _amdify, _skate) { 'use strict'; var _jquery2 = _interopRequireDefault(_jquery); var _amdify2 = _interopRequireDefault(_amdify); var _skate2 = _interopRequireDefault(_skate); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function isNestedAnchor(trigger, target) { var $closestAnchor = (0, _jquery2.default)(target).closest('a[href]', trigger); return !!$closestAnchor.length && $closestAnchor[0] !== trigger; } function findControlled(trigger) { return document.getElementById(trigger.getAttribute('aria-controls')); } function triggerMessage(trigger, e) { if (trigger.isEnabled()) { var component = findControlled(trigger); if (component && component.message) { component.message(e); } } } (0, _skate2.default)('data-aui-trigger', { type: _skate2.default.type.ATTRIBUTE, events: { click: function click(trigger, e) { if (!isNestedAnchor(trigger, e.target)) { triggerMessage(trigger, e); e.preventDefault(); } }, mouseenter: function mouseenter(trigger, e) { triggerMessage(trigger, e); }, mouseleave: function mouseleave(trigger, e) { triggerMessage(trigger, e); }, focus: function focus(trigger, e) { triggerMessage(trigger, e); }, blur: function blur(trigger, e) { triggerMessage(trigger, e); } }, prototype: { disable: function disable() { this.setAttribute('aria-disabled', 'true'); }, enable: function enable() { this.setAttribute('aria-disabled', 'false'); }, isEnabled: function isEnabled() { return this.getAttribute('aria-disabled') !== 'true'; } } }); (0, _amdify2.default)('aui/trigger'); }); //# sourceMappingURL=trigger.js.map