blob: 0869af35d3796b1f230058c68dc99ee519e422c2 [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 Geisslerd27bb132018-05-24 11:07:27 -07004 angular.module('app.common.directives')
5 .directive('toggleFlag', function($document) {
6 return {
7 restrict: 'A',
8 link: function(scope, element, attrs) {
Gunnar Millseedefd32018-02-28 17:02:34 -06009
Andrew Geisslerd27bb132018-05-24 11:07:27 -070010 function elementClick(e) {
11 e.stopPropagation();
12 }
13
14 function documentClick(e) {
15 scope[attrs.toggleFlag] = false;
16 scope.$apply();
17 }
18
19 element.on('click', elementClick);
20 $document.on('click', documentClick);
21
22 // remove event handlers when directive is destroyed
23 scope.$on('$destroy', function() {
24 element.off('click', elementClick);
25 $document.off('click', documentClick);
26 });
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070027 }
Andrew Geisslerd27bb132018-05-24 11:07:27 -070028 };
29 });
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070030})(window.angular);