/*!
* ui-grid - v4.7.1 - 2019-02-06
* Copyright (c) 2019 ; License: MIT
*/
!function(){"use strict";var t=angular.module("ui.grid.validate",["ui.grid"]);t.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(i,c,t,n,r){var u={validatorFactories:{},setExternalFactoryFunction:function(t){u.externalFactoryFunction=t},clearExternalFactory:function(){delete u.externalFactoryFunction},getValidatorFromExternalFactory:function(t,r){return u.externalFactoryFunction(t,r).validatorFactory(r)},getMessageFromExternalFactory:function(t,r){return u.externalFactoryFunction(t,r).messageFunction(r)},setValidator:function(t,r,e){u.validatorFactories[t]={validatorFactory:r,messageFunction:e}},getValidator:function(t,r){if(u.externalFactoryFunction){var e=u.getValidatorFromExternalFactory(t,r);if(e)return e}if(!u.validatorFactories[t])throw"Invalid validator name: "+t;return u.validatorFactories[t].validatorFactory(r)},getMessage:function(t,r){if(u.externalFactoryFunction){var e=u.getMessageFromExternalFactory(t,r);if(e)return e}return u.validatorFactories[t].messageFunction(r)},isInvalid:function(t,r){return t["$$invalid"+r.name]},setInvalid:function(t,r){t["$$invalid"+r.name]=!0},setValid:function(t,r){delete t["$$invalid"+r.name]},setError:function(t,r,e){t["$$errors"+r.name]||(t["$$errors"+r.name]={}),t["$$errors"+r.name][e]=!0},clearError:function(t,r,e){t["$$errors"+r.name]&&e in t["$$errors"+r.name]&&delete t["$$errors"+r.name][e]},getErrorMessages:function(t,r){var e=[];return t["$$errors"+r.name]&&0!==Object.keys(t["$$errors"+r.name]).length&&Object.keys(t["$$errors"+r.name]).sort().forEach(function(t){e.push(u.getMessage(t,r.validators[t]))}),e},getFormattedErrors:function(t,r){var e="",a=u.getErrorMessages(t,r);if(a.length)return a.forEach(function(t){e+=t+"
"}),i.trustAsHtml("
"+n.getSafeText("validate.error")+"
"+e)},getTitleFormattedErrors:function(t,r){var e="",a=u.getErrorMessages(t,r);if(a.length)return a.forEach(function(t){e+=t+"\n"}),i.trustAsHtml(n.getSafeText("validate.error")+"\n"+e)},runValidators:function(t,r,i,n,o){if(i!==n){if(void 0===r.name||!r.name)throw new Error("colDef.name is required to perform validation");u.setValid(t,r);var e=function(r,e,a){return function(t){t||(u.setInvalid(r,e),u.setError(r,e,a),o&&o.api.validate.raise.validationFailed(r,e,i,n))}},a=[];for(var l in r.validators){u.clearError(t,r,l);var d=u.getValidator(l,r.validators[l]),s=c.when(d(n,i,t,r)).then(e(t,r,l));a.push(s)}return c.all(a)}},createDefaultValidators:function(){u.setValidator("minLength",function(e){return function(t,r){return null==r||""===r||r.length>=e}},function(t){return n.getSafeText("validate.minLength").replace("THRESHOLD",t)}),u.setValidator("maxLength",function(e){return function(t,r){return null==r||""===r||r.length<=e}},function(t){return n.getSafeText("validate.maxLength").replace("THRESHOLD",t)}),u.setValidator("required",function(e){return function(t,r){return!e||!(null==r||""===r)}},function(){return n.getSafeText("validate.required")})},initializeGrid:function(t,i){i.validate={isInvalid:u.isInvalid,getErrorMessages:u.getErrorMessages,getFormattedErrors:u.getFormattedErrors,getTitleFormattedErrors:u.getTitleFormattedErrors,runValidators:u.runValidators};var r={events:{validate:{validationFailed:function(t,r,e,a){}}},methods:{validate:{isInvalid:function(t,r){return i.validate.isInvalid(t,r)},getErrorMessages:function(t,r){return i.validate.getErrorMessages(t,r)},getFormattedErrors:function(t,r){return i.validate.getFormattedErrors(t,r)},getTitleFormattedErrors:function(t,r){return i.validate.getTitleFormattedErrors(t,r)}}}};i.api.registerEventsFromObject(r.events),i.api.registerMethodsFromObject(r.methods),i.edit&&i.api.edit.on.afterCellEdit(t,function(t,r,e,a){i.validate.runValidators(t,r,e,a,i)}),u.createDefaultValidators()}};return u}]),t.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(t,i){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(t,r,e,a){i.initializeGrid(t,a.grid)},post:function(t,r,e,a){}}}}}])}(),angular.module("ui.grid.validate").run(["$templateCache",function(t){"use strict";t.put("ui-grid/cellTitleValidator",'