| Ryan Arnell | 84e7a93 | 2018-12-13 10:50:17 -0600 | [diff] [blame^] | 1 | window.angular && (function(angular) { | 
|  | 2 | 'use strict'; | 
|  | 3 |  | 
|  | 4 | angular.module('app.common.directives') | 
|  | 5 | .directive('clickOutside', function($document) { | 
|  | 6 | return { | 
|  | 7 | restrict: 'A', scope: {clickOutside: '&'}, | 
|  | 8 | link: function(scope, el, attr) { | 
|  | 9 | function clickEvent(e) { | 
|  | 10 | if (el !== e.target && !el[0].contains(e.target)) { | 
|  | 11 | scope.$apply(function() { | 
|  | 12 | scope.$eval(scope.clickOutside); | 
|  | 13 | }); | 
|  | 14 | } | 
|  | 15 | } | 
|  | 16 | $document.bind('click', clickEvent); | 
|  | 17 |  | 
|  | 18 | scope.$on('$destroy', function() { | 
|  | 19 | $document.unbind('click', clickEvent); | 
|  | 20 | }); | 
|  | 21 | } | 
|  | 22 | } | 
|  | 23 | }); | 
|  | 24 | })(window.angular); |