angular-dirty-check
Version:
Dirty form checker for AngularJS
1 lines • 2.12 kB
JavaScript
!function(){"use strict";angular.module("angularDirtyCheck",[])}(),function(){"use strict";angular.module("angularDirtyCheck").directive("dirtyCheck",["dirtyCheckService",function(t){function n(n,e,r,i){t.registerForm(i),n.$on("$destroy",function(){t.deregisterForm(i)})}return{require:"form",restrict:"A",link:n,scope:{}}}])}(),function(){"use strict";function t(){function t(t){e=t}function n(t,n,r,i){function o(t){l.push(t),1===l.length&&f()}function u(t){var n=l.indexOf(t);n!==-1&&l.splice(n,1),0===l.length&&g()}function c(){return l.some(function(t){return t.$dirty})}function a(){return n(function(n,r){var i=t.confirm(e);i?n():r()})}function s(t){if(c()){t.preventDefault();var n;n=$&&angular.isFunction($.show)?$.show():a(),n.then(function(){g(),r.navAway()})}}function h(){if(c())return e}function f(){d=r.subscribeStateChange(s),t.onbeforeunload=h}function g(){d(),t.onbeforeunload=null}var d,l=[],$=!!i.has("dirtyCheckDialog")&&i.get("dirtyCheckDialog");return{registerForm:o,deregisterForm:u}}var e="Changes you made may not be saved. Leave anyway?";return n.$inject=["$window","$q","dirtyCheckRouter","$injector"],{$get:n,setDirtyMessage:t}}angular.module("angularDirtyCheck").provider("dirtyCheckService",t)}(),function(){"use strict";function t(){function t(){if(n("ngRoute")&&(e.$inject=["$rootScope","$location"],r={subscribeStateChange:function(t){function n(n){this.toState=this.routingService.path(),t(n)}return this.$rootScope.$on("$routeChangeStart",n.bind(this))},navAway:function(){this.routingService.path(this.toState)}}),n("ui.router")&&(e.$inject=["$rootScope","$state"],r={subscribeStateChange:function(t){function n(n,e,r){this.toState=e,this.toParams=r,t(n)}return this.$rootScope.$on("$stateChangeStart",n.bind(this))},navAway:function(){this.routingService.go(this.toState,this.toParams)}}),!r)throw"Neither ngRoute nor ui.route module found"}function n(t){var n=!0;try{angular.module(t)}catch(t){n=!1}return n}function e(t,n){return r.$rootScope=t,r.routingService=n,r}var r;return t(),{$get:e}}angular.module("angularDirtyCheck").provider("dirtyCheckRouter",t),t.$inject=[]}();