(function(){"use strict";angular.module("app").directive("capitalizeInput",function(){return{require:"ngModel",link:function(n,t,i,r){var u=function(n){n===undefined&&(n="");var t=n.charAt(0).toUpperCase()+n.substring(1).toLowerCase();return t!==n&&(r.$setViewValue(t),r.$render()),t};r.$parsers.push(u)}}})})(),function(){"use strict";angular.module("app").directive("firstNameLastName",function(){return{require:"ngModel",link:function(n,t,i,r){r.$parsers.push(function(n){var i;n===undefined&&(n="");var u=n.replace(/[^0-9a-zA-ZäÄöÖåÅ\s-\.]/g,""),f=!0,t=u.split("");for(i=0;i<t.length;++i)i==0?t[0]=t[0].toUpperCase():t[i]==" "||t[i]=="-"?f=!1:f?t[i]=t[i].toLowerCase():f=!0;return u=t.join(""),u!==n&&(r.$setViewValue(u),r.$render()),u})}}})}(),function(){"use strict";angular.module("app").directive("focusWhen",function(){return{scope:{focusWhen:"="},link:function(n,t){n.$watch("focusWhen",function(n){n&&setTimeout(function(){t[0].focus()},0)})}}})}(),function(){"use strict";angular.module("app").directive("datepickerAddOffset",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$parsers.push(function(n){return n&&n.getTime?new Date(n.getTime()-n.getTimezoneOffset()*6e4):n})}}})}(),function(){"use strict";angular.module("app").directive("onlyNumbersLetters",function(){return{require:"ngModel",link:function(n,t,i,r){function u(n){var t=n.replace(/[^0-9a-zA-ZäÄöÖåÅ\s-\.\,@\:]/g,"");return t!==n&&(r.$setViewValue(t),r.$render()),t}r.$parsers.push(u)}}})}(),function(){"use strict";function n(){function i(i,r,u,f){f.$parsers.unshift(function(i){var r=n.test(i),u=t.test(i);return i!=null&&i!=""?f.$setValidity("email",r):(i==null||i=="")&&f.$setValidity("email",!0),f.$setValidity("pattern",u),i});f.$formatters.unshift(function(i){var r=n.test(i),u=t.test(i);return i!=null&&i!=""?f.$setValidity("email",r):(i==null||i=="")&&f.$setValidity("email",!0),f.$setValidity("pattern",u),i})}var n=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,t=/^[0-9A-Za-zÅåÄäÖö@/=\.\-+_]*$/;return{link:i,require:"ngModel",restrict:"A"}}angular.module("app").directive("validateEmail",n)}(),function(){"use strict";function n(){function n(n,t,i,r){r.$parsers.unshift(function(n){var t=IBAN.isValid(n);return r.$setValidity("iban",t),n});r.$formatters.unshift(function(n){var t=IBAN.isValid(n);return r.$setValidity("iban",t),n})}return{link:n,require:"ngModel",restrict:"A"}}angular.module("app").directive("validateIban",n)}(),function(){"use strict";function n(){function n(n,t,i,r){if(r){var u=i.validateNumberInRange.split(",").map(Number);r.$validators.validateNumberInRange=function(n){return n>=u[0]&&n<=u[1]}}}return{link:n,require:"ngModel",restrict:"A"}}angular.module("app").directive("validateNumberInRange",n)}(),function(){"use strict";function n(){function t(t,i,r,u){u.$parsers.unshift(function(t){var i=t!=null?n.test(t):!0;return u.$setValidity("number",i),t});u.$formatters.unshift(function(t){var i=t!=null?n.test(t):!0;return u.$setValidity("number",i),t})}var n=/^[0-9]*\,{0,1}[0-9]*$/;return{link:t,require:"ngModel",restrict:"A"}}angular.module("app").directive("validateNumber",n)}(),function(){"use strict";function n(){function i(i,r,u,f){u.$observe("gender",function(r){if(r){var u=n(i.model),e=t(i.model,i.gender);i.gender==="other"?f.$setValidity("hetusexother",!1):f.$setValidity("hetusexother",!0);f.$setValidity("hetu",u);f.$setValidity("hetusex",e)}});f.$parsers.unshift(function(r){var e=n(r),u;return f.$setValidity("hetu",e),i.gender&&(u=t(r,i.gender),f.$setValidity("hetusex",u)),r});f.$formatters.unshift(function(r){var e=n(r),u;return f.$setValidity("hetu",e),i.gender&&(u=t(r,i.gender),f.$setValidity("hetusex",u)),r})}function n(n){if(!n)return!1;return FinnishSSN.validate(n)}function t(n,t){if(t=r(t),!n||!t)return!1;var i=FinnishSSN.parse(n);return i.valid&&(t===i.sex||t==="other")}function r(n){return n=="Mies"||n=="Man"?"male":n=="Nainen"||n=="Kvinna"?"female":n=="Muu"||n=="Annan"?"other":n.toLowerCase()}return{link:i,require:"ngModel",scope:{model:"=ngModel",gender:"@?"}}}angular.module("app").directive("validateSsn",n)}()