1window.angular && (function (angular) {
2    'use strict';
3
4    angular
5        .module('app.common.directives')
6        .directive('toggleFlag', function ($document) {
7            return {
8                restrict: 'A',
9                link: function (scope, element, attrs) {
10
11                    function elementClick(e) {
12                        e.stopPropagation();
13                    }
14
15                    function documentClick(e) {
16                        scope[attrs.toggleFlag] = false;
17                        scope.$apply();
18                    }
19
20                    element.on('click', elementClick);
21                    $document.on('click', documentClick);
22
23                    // 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);