text: /*! enforcer v1.2.3 | (c) 2021 Warren Galyen | MIT License | http://github.com/bell-lab-apps/enforcer */
  !(function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof exports?module.exports=t(e):e.Enforcer=t(e)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(n){"use strict";function s(e,t){Array.prototype.forEach.call(e,t)}function u(e,t,r){"function"==typeof n.CustomEvent&&(r=new CustomEvent(t,{bubbles:!0,detail:r||{}}),e.dispatchEvent(r))}function c(e,t){return{missingValue:(function(e){if(!e.hasAttributes("required"))return!1;if("checkbox"===e.type)return!e.checked;var t=e.value.length;return(t="radio"===e.type?Array.prototype.filter.call(e.form.querySelectorAll('[name="'+p(e.name)+'"]'),(function(e){return e.checked})).length:t)<1})(e),patternMismatch:(n=t,!(!(t=(t=(r=e).getAttribute("pattern"))?new RegExp(t):n.patterns[r.type])||!r.value||r.value.length<1)&&!r.value.match(t)),outOfRange:(function(e){if(!e.value||e.value.length<1)return!1;var t=e.getAttribute("max"),r=e.getAttribute("min"),e=parseFloat(e.value);return t&&t<e?"over":!!(r&&e<r)&&"under"})(e),wrongLength:(function(e){if(!e.value||e.value.length<1)return!1;var t=e.getAttribute("maxlength"),r=e.getAttribute("minlength"),e=e.value.length;return t&&t<e?"over":!!(r&&e<r)&&"under"})(e)};var r,n}function l(e,t,r){var n=e.name||e.id;return!n&&r&&(n=t.fieldPrefix+Math.floor(999*Math.random()),e.is=n),n}function f(e,t){var r=n=("checkbox"===(n="radio"===(n=e).type&&n.name?(r=n.form.querySelectorAll('[name="'+p(n.name)+'"]'))[r.length-1]:n).type||"radio"===n.type)&&(n.closest("label")||n.form.querySelector('[for="'+n.id+'"]'))||n,n=document.createElement("div");return n.className=t.errorClass,n.id=t.errorPrefix+l(e,t,!0),r.parentNode.insertBefore(n,t.messageAfterField?r.nextSibling:r),n}function m(e,t,r){e.classList.add(r.fieldClass),e.setAttribute("aria-describedby",t.id)}function d(e,t,r){var n,a,o=e.form.querySelector("#"+p(r.errorPrefix+l(e,r)))||f(e,r),i=(function(e,t,r){var n,a=r.messages;if(t.missingValue)return a.missingValue[e.type]||a.missingValue.default;if(t.outOfRange)return a.outOfRange[t.outOfRange].replace("{max}",e.getAttribute("max")).replace("{min}",e.getAttribute("min")).replace("{length}",e.value.length);if(t.wrongLength)return a.wrongLength[t.wrongLength].replace("{maxLength}",e.getAttribute("maxlength")).replace("{minLength}",e.getAttribute("minlength")).replace("{length}",e.value.length);if(t.patternMismatch){var o=e.getAttribute(r.messageCustom);return o?o:a.patternMismatch[e.type]||a.patternMismatch.default}for(n in r.customValidations)if(r.customValidations.hasOwnProperty(n)&&t[n]&&a[n])return a[n];return a.fallback})(e,t,r);o.textContent="function"==typeof i?i(e,r):i,n=o,a=r,"radio"===(o=e).type&&o.name&&Array.prototype.forEach.call(document.querySelectorAll('[name="'+o.name+'"]'),(function(e){m(e,n,a)})),m(o,n,a),r.emitEvents&&u(e,"enforcerShowError",{errors:t})}function a(e,t){e.classList.remove(t.fieldClass),e.removeAttribute("aria-describedby")}function h(e,t){var r,n;(n=e.form.querySelector("#"+p(t.errorPrefix+l(e,t))))&&(n.parentNode.removeChild(n),r=t,"radio"===(n=e).type&&n.name?Array.prototype.forEach.call(document.querySelectorAll('[name="'+n.name+'"]'),(function(e){a(e,r)})):a(n,r),t.emitEvents&&u(e,"enforcerRemoveError"))}var x={fieldClass:"error",errorClass:"error-message",fieldPrefix:"enforcer-field_",errorPrefix:"enforcer-error_",patterns:{email:/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*(\.\w{2,})+$/,url:/^(?:(?:https?|HTTPS?|ftp|FTP):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)(?:\.(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)*(?:\.(?:[a-zA-Z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/,number:/^(?:[-+]?[0-9]*[.,]?[0-9]+)$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))/,time:/^(?:(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]))$/,month:/^(?:(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])))$/},customValidations:{},messageAfterField:!0,messageCustom:"data-enforcer-message",messages:{missingValue:{checkbox:"This field is required.",radio:"Please select a value.",select:"Please select a value.","select-multiple":"Please select at least one value.",default:"Please fill out this field."},patternMismatch:{email:"Please enter a valid email address.",url:"Please enter a URL.",number:"Please enter a number",color:"Please match the following format: #rrggbb",date:"Please use the YYYY-MM-DD format",time:"Please use the 24-hour time format. Ex. 23:00",month:"Please use the YYYY-MM format",default:"Please match the requested format."},outOfRange:{over:"Please select a value that is no more than {max}.",under:"Please select a value that is no less than {min}."},wrongLength:{over:"Please shorten this text to no more than {maxLength} characters. You are currently using {length} characters.",under:"Please lengthen this text to {minLength} characters or more. You are currently using {length} characters."},fallback:"There was an error with this field."},disableSubmit:!1,emitEvents:!0},g=function(){var r={};return s(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;"[object Object]"===Object.prototype.toString.call(e[t])?r[t]=g(r[t],e[t]):r[t]=e[t]}})),r},p=function(e){for(var t,r=String(e),n=r.length,a=-1,o="",i=r.charCodeAt(0);++a<n;){if(0===(t=r.charCodeAt(a)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?o+="\\"+t.toString(16)+" ":o+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?r.charAt(a):"\\"+r.charAt(a)}return o};return function(r,e){var o,n={};n.validate=function(e,t){if(!e.disabled&&!e.readOnly&&"file"!==e.type&&"reset"!==e.type&&"submit"!==e.type&&"button"!==e.type){var r,n,a=g(o,t||{}),t=(t=c(r=e,n=a),{valid:!(function(e){for(var t in e)if(e[t])return!0;return!1})(t=(function(e,t,r,n){for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a](e,n));return t})(r,t,n.customValidations,n)),errors:t});if(!t.valid)return d(e,t.errors,a),t;h(e,a)}};function a(e){e.target.form&&e.target.form.matches(r)&&n.validate(e.target)}function i(e){var t;e.target.form&&e.target.form.matches(r)&&(t=e.target,(t="radio"===e.target.type?e.target.form.querySelector('[name="'+p(e.target.name)+'"]'):t).classList.contains(o.fieldClass)&&n.validate(e.target))}function l(e){if(e.target.matches(r)){e.preventDefault();var t=Array.prototype.filter.call(e.target.elements,(function(e){e=n.validate(e);return e&&!e.valid}));if(0<t.length)return t[0].focus(),void u(e.target,"enforcerFormInvalid",{errors:t});o.disableSubmit||e.target.submit(),o.emitEvents&&u(e.target,"enforcerFormValid")}}n.destroy=function(){var t,e;document.removeEventListener("blur",a,!0),document.removeEventListener("input",i,!1),document.removeEventListener("click",i,!1),document.removeEventListener("submit",l,!1),e=r,t=o,s(document.querySelectorAll(e),(function(e){s(e.querySelectorAll("input, select, textarea"),(function(e){h(e,t)}))})),e=r,s(document.querySelectorAll(p(e)),(function(e){e.removeAttribute("novalidate")})),o.emitEvents&&u(document,"enforcerDestroyed",{settings:o}),o=null};var t;return o=g(x,e||{}),t=r,s(document.querySelectorAll(p(t)),(function(e){e.setAttribute("novalidate",!0)})),document.addEventListener("blur",a,!0),document.addEventListener("input",i,!1),document.addEventListener("click",i,!1),document.addEventListener("submit",l,!1),o.emitEvents&&u(document,"enforcerInitialized",{settings:o}),n}})),"document"in self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||(function(e){"use strict";if("Element"in e){var t="classList",r="prototype",n=e.Element[r],a=Object,o=String[r].trim||function(){return this.replace(/^\s+|\s+$/g,"")},i=Array[r].indexOf||function(e){for(var t=0,r=this.length;t<r;t++)if(t in this&&this[t]===e)return t;return-1},l=function(e,t){this.name=e,this.code=DOMException[e],this.message=t},s=function(e,t){if(""===t)throw new l("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(t))throw new l("INVALID_CHARACTER_ERR","String contains an invalid character");return i.call(e,t)},u=function(e){for(var t=o.call(e.getAttribute("class")||""),r=t?t.split(/\s+/):[],n=0,a=r.length;n<a;n++)this.push(r[n]);this._updateClassName=function(){e.setAttribute("class",this.toString())}},c=u[r]=[],e=function(){return new u(this)};if(l[r]=Error[r],c.item=function(e){return this[e]||null},c.contains=function(e){return-1!==s(this,e+="")},c.add=function(){for(var e,t=arguments,r=0,n=t.length,a=!1;-1===s(this,e=t[r]+"")&&(this.push(e),a=!0),++r<n;);a&&this._updateClassName()},c.remove=function(){var e,t,r=arguments,n=0,a=r.length,o=!1;do{for(t=s(this,e=r[n]+"");-1!==t;)this.splice(t,1),o=!0,t=s(this,e)}while(++n<a);o&&this._updateClassName()},c.toggle=function(e,t){var r=this.contains(e+=""),n=r?!0!==t&&"remove":!1!==t&&"add";return n&&this[n](e),!0===t||!1===t?t:!r},c.toString=function(){return this.join(" ")},a.defineProperty){c={get:e,enumerable:!0,configurable:!0};try{a.defineProperty(n,t,c)}catch(e){void 0!==e.number&&-2146823252!==e.number||(c.enumerable=!1,a.defineProperty(n,t,c))}}else a[r].__defineGetter__&&n.__defineGetter__(t,e)}})(self),(function(){"use strict";var e,r,t=document.createElement("_");t.classList.add("c1","c2"),t.classList.contains("c2")||((e=function(e){var n=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(e){for(var t=arguments.length,r=0;r<t;r++)n.call(this,arguments[r])}})("add"),e("remove")),t.classList.toggle("c3",!1),t.classList.contains("c3")&&(r=DOMTokenList.prototype.toggle,DOMTokenList.prototype.toggle=function(e,t){return 1 in arguments&&!this.contains(e)==!t?t:r.call(this,e)}),t=null})()),Element.prototype.closest||(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest=function(e){var t=this;if(!document.documentElement.contains(this))return null;do{if(t.matches(e))return t}while(null!==(t=t.parentElement));return null}),(function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r}"function"!=typeof window.CustomEvent&&(e.prototype=window.Event.prototype,window.CustomEvent=e)})(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);