UNPKG

outside-click-js

Version:
2 lines (1 loc) 1.11 kB
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).$outsideClick=n()}(this,function(){"use strict";var e="undefined"!=typeof window,n="undefined"!=typeof navigator,d=e&&("ontouchstart"in window||n&&0<navigator.msMaxTouchPoints)?["touchstart","click"]:["click"],u=function(e){return e},a=[];function o(e,n){return document.removeEventListener(e,n)}return{clickOutside:function(e){var t=e.el,n=e.events,r=e.handler,i=e.middleware,o=function(e){var n=e.el,t=e.events,r=e.handler,i=e.middleware;return{el:n,handler:r,events:t||d,middleware:i||u}}({el:t,events:n,handler:r,middleware:i});o.events.forEach(function(e){var n={event:e,el:t,handler:function(e){return function(e,n,t,r){if(n.target===e||e.contains(n.target))return;r(n,e)&&t(n,e)}(o.el,e,o.handler,o.middleware)}};a.push(n),function(e){var n=e.event,t=e.handler;setTimeout(function(){return document.addEventListener(n,t)},0)}(n)})},removeClickOutside:function(i){a.forEach(function(e){var n=e.event,t=e.el,r=e.handler;return i?i===t?o(n,r):void 0:o(n,r)})}}});