blob: 008097c3ff5c14da7547819582f3f063f4e0afce [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) {
Andrew Geisslerd27bb132018-05-24 11:07:27 -07009 function elementClick(e) {
10 e.stopPropagation();
11 }
12
13 function documentClick(e) {
14 scope[attrs.toggleFlag] = false;
15 scope.$apply();
16 }
17
18 element.on('click', elementClick);
19 $document.on('click', documentClick);
20
21 // remove event handlers when directive is destroyed
22 scope.$on('$destroy', function() {
23 element.off('click', elementClick);
24 $document.off('click', documentClick);
25 });
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070026 }
Andrew Geisslerd27bb132018-05-24 11:07:27 -070027 };
28 });
Andrew Geisslerba5e3f32018-05-24 10:58:00 -070029})(window.angular);