(function(n,t,i,r){"use strict";function u(i,u,f,e,o,s,h,c){function v(n){l||(l=!0,e.all([y(n),p(n)]).then(function(t){l=!1;w(n,t[0])}))}function y(n){if(n.templateUrl)return o.get(n.templateUrl,{cache:f}).then(function(n){return n.data});if(n.template)return e.defer(n.template);throw Error("Specify either templateUrl or template");}function p(n){return n.onLoad?n.onLoad(n.data):e.defer()}function w(f,o){function tt(){var y=r.isFunction(f.onCancel)?f.onCancel:n.noop,w=r.isFunction(f.onClose)?f.onClose:n.noop,b=r.isFunction(f.onBeforeResult)?f.onBeforeResult:e.resolve,k=r.isFunction(f.onResult)?f.onResult:e.resolve,a;t("#"+d).length===0&&(o='<div id="'+d+'" class="'+nt(f)+'" role="dialog">'+o+"<\/div>",s=h.$new(),f.contentScope&&n.extend(s,f.contentScope),a=!1,n.extend(s,{data:f.data,save:function(){if(!a)return a=!0,b(s.data).then(k).then(l).catch(function(n){var t,r=n.data||{};t=r.message||n.statusText||n.message;i.error(t)}).finally(function(){a=!1})},cancel:function(){l();y()},close:function(){l();w()}}),v=u(o)(s),p=h.$watch(function(){return c.path()},function(){g||l();g=!1}))}function l(){r.isFunction(p)&&p();v.remove();b.remove();y.removeClass("modal-open");s.$destroy();t(window).off("keydown",w)}var v,y=n.element(document.body),b=n.element('<div class="modal-overlay"><\/div>'),k=n.element(f.container||y),d=f.id||"NamUsModal",s,p,g=!0,w;tt();o.length>0&&(k.append(b),k.append(v),y.addClass("modal-open"));w=f.escapeInvokesCancel&&r.isFunction(f.onCancel)?a(function(){l();f.onCancel()}):a(l);t(window).on("keydown",w)}function b(n){var t=!1;return r.forOwn(n,function(n){n.$error&&(t=!0)}),t}function k(n,t){var i,u,f;if(r.has(n,"data.validationErrors"))for(i=0;i<n.data.validationErrors.length;i++)u=n.data.validationErrors[i],r.has(t,u.fieldName)&&(f=r.get(t,u.fieldName),f.$error={serverValidation:!0,message:u.error})}function d(n){r.forOwn(n,function(n){n.$error=null})}function g(n){var t=!1;return r.forOwn(n,function(n){n.$error&&n.$error.disablePutPost===!0&&(t=!0)}),t}function a(n){return function(t){t.keyCode===27&&n()}}function nt(n){var t="namus-modal";return n.small&&(t+=" small-modal"),n.constant&&(t+=" constant-modal"),t}var l=!1;return{show:v,anyServerValidationErrors:b,setServerValidationErrors:k,clearServerValidationErrors:d,isPutPostDisabledByError:g}}n.module("app").factory("namusModal",["$log","$compile","$templateCache","$q","$http","$timeout","$rootScope","$location",u])})(angular,jQuery,Foundation,_),function(n){"use strict";function i(n,i,r,u){function f(t,i,f){function o(){return!!e.errorMessage}var e={itemName:i,canDelete:!0,message:"",errorMessage:"",showError:o};r.show({small:!0,templateUrl:u.confirmItemDeletionModal.toString(),data:e,onResult:function(i){return _.isNil(t)||!t.hrefDelete?f?f():void 0:n.delete(t.hrefDelete).then(function(){return t._deleted=!0,f?f():void 0}).catch(function(n){if(t._deleted=!1,n&&n.data){i.errorMessage=n.data.message;throw n;}})}})}function e(t,i,f){function o(){return!!e.errorMessage}var e={itemName:i,canDelete:!0,message:"",errorMessage:"",showError:o};r.show({small:!0,templateUrl:u.confirmDuplicateDeletionModal.toString(),data:e,onResult:function(i){return n.delete(t.hrefDelete).then(function(){return t._deleted=!0,f?f():void 0}).catch(function(n){if(t._deleted=!1,n&&n.data){i.errorMessage=n.data.message;throw n;}})}})}function o(i,f,e,o){var s={edit:!1,isPublic:!1,canBePublic:f,noteType:i,description:"",errors:{description:{}},clearError:t},h={Description:s.errors.description};r.show({small:!0,templateUrl:u.noteAddEditModal.toString(),data:s,onResult:function(t){return r.clearServerValidationErrors(h),n.post(o,t).then(function(n){e.push(n.data)}).catch(function(n){r.setServerValidationErrors(n,h);throw n;})}})}function s(f,e,o,s){var h={edit:!0,id:s.id,isPublic:s.isPublic,canBePublic:e,noteType:f,description:s.description,errors:{description:{}},clearError:t},c={Description:h.errors.description};r.show({small:!0,templateUrl:u.noteAddEditModal.toString(),data:h,onResult:function(t){return t.description!==s.description||t.isPublic!==s.isPublic?(r.clearServerValidationErrors(c),n.put(s.hrefUpdate,t).then(function(n){var t=_.findIndex(o,{id:s.id});o[t]=n.data}).catch(function(n){r.setServerValidationErrors(n,c);throw n;})):i.when({})}})}function h(n,t){var i={message:n};r.show({small:!0,templateUrl:u.confirmModal.toString(),data:i,onResult:function(){return t()}})}function c(n){r.show({small:!0,templateUrl:u.confirmLeavingNamUsModal.toString(),data:{},onResult:function(){return n()}})}return{openConfirmItemDeletionDialog:f,openConfirmDuplicateDeletionDialog:e,openAddNoteDialog:o,openEditNoteDialog:s,openConfirmDialog:h,openConfirmLeavingNamUsDialog:c}}function t(n){n.$error=null}n.module("app").factory("commonModalService",["$http","$q","namusModal","templateUrls",i])}(angular),function(n){function t(n){return n.modalContent.toString()||console.error("You must set the modalContent property in templateUrls"),{restrict:"E",replace:!1,transclude:{header:"?header",content:"content",footer:"?modalFooter"},templateUrl:n.modalContent.toString(),bindToController:{modalTitle:"&",save:"&",cancel:"&",errors:"@",disable:"@",message:"&"},controllerAs:"modal",controller:[function(){}],scope:{}}}n.module("app").directive("modalContent",["templateUrls",t])}(angular),function(n){"use strict";function t(n,t){function r(i){t.openConfirmLeavingNamUsDialog(function(){n.open(i,"_blank")})}var i=this;i.openTrainingEvents=r}n.module("app").controller("leavingNamUsController",["$window","commonModalService",t])}(angular)