blob: 4a4e454c644933f2181f2bfda9128c2b0d0c1e8e [file] [log] [blame]
Andrew Geisslerba5e3f32018-05-24 10:58:00 -07001window.angular && (function(angular) {
2 'use strict';
Iftekharul Islamcd789502017-04-19 14:37:55 -05003
Andrew Geisslerba5e3f32018-05-24 10:58:00 -07004 angular
5 .module('app.common.directives')
6 .directive('toggleFlag', function($document) {
7 return {
8 restrict: 'A',
9 link: function(scope, element, attrs) {
Gunnar Millseedefd32018-02-28 17:02:34 -060010
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070011 function elementClick(e) {
12 e.stopPropagation();
13 }
Gunnar Millseedefd32018-02-28 17:02:34 -060014
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070015 function documentClick(e) {
16 scope[attrs.toggleFlag] = false;
17 scope.$apply();
18 }
Gunnar Millseedefd32018-02-28 17:02:34 -060019
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070020 element.on('click', elementClick);
21 $document.on('click', documentClick);
Gunnar Millseedefd32018-02-28 17:02:34 -060022
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070023 // remove event handlers when directive is destroyed
24 scope.$on('$destroy', function() {
25 element.off('click', elementClick);
26 $document.off('click', documentClick);
27 });
28 }
29 };
30 });
31})(window.angular);