foundation-sites
Version:
The most advanced responsive front-end framework in the world.
3 lines (2 loc) • 14.8 kB
JavaScript
((t,e)=>{"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery"],e):"object"==typeof exports?exports.__FOUNDATION_EXTERNAL__=e(require("./foundation.core"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.abide"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery))})(self,function(e,r){return a={"./js/foundation.abide.js":function(t,e,r){r.r(e),r.d(e,{Abide:function(){return i}});var e=r("jquery"),u=r.n(e),n=r("./foundation.core");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,(t=>(t=((t,e)=>{if("object"!=a(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0===r)return("string"===e?String:Number)(t);if("object"!=a(r=r.call(t,e||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")})(t,"string"),"symbol"==a(t)?t:t+""))(i.key),i)}}function s(t,e,r){e=d(e);var i=t,e=l()?Reflect.construct(e,r||[],d(t).constructor):e.apply(t,r);if(!e||"object"!=a(e)&&"function"!=typeof e){if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");if(void 0===(e=i))throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(l=function(){return!!t})()}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function c(t,e){return(c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}var i=(t=>{function r(){var t=this,e=r;if(t instanceof e)return s(this,r,arguments);throw new TypeError("Cannot call a class as a function")}var e,i=r;if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");return i.prototype=Object.create(t&&t.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,"prototype",{writable:!1}),t&&c(i,t),i=r,(t=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=u().extend(!0,{},r.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var r=this,t=(this.$inputs=u().merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]'),this.$element.find("[data-abide-error]"));this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return r.addA11yAttributes(u()(e))}),t.each(function(t,e){return r.addGlobalErrorA11yAttributes(u()(e))})),this._events()}},{key:"_events",value:function(){var e=this;this.$element.off(".abide").on("reset.zf.abide",function(){e.resetForm()}).on("submit.zf.abide",function(){return e.validateForm()}),this.$submits.off("click.zf.abide keydown.zf.abide").on("click.zf.abide keydown.zf.abide",function(t){t.key&&" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.formnovalidate=null!==t.target.getAttribute("formnovalidate"),e.$element.submit())}),"fieldChange"===this.options.validateOn&&this.$inputs.off("change.zf.abide").on("change.zf.abide",function(t){e.validateInput(u()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(u()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(u()(t.target))})}},{key:"_reflow",value:function(){this._init()}},{key:"_validationIsDisabled",value:function(){return!1===this.isEnabled||("boolean"==typeof this.formnovalidate?this.formnovalidate:!!this.$submits.length&&null!==this.$submits[0].getAttribute("formnovalidate"))}},{key:"enableValidation",value:function(){this.isEnabled=!0}},{key:"disableValidation",value:function(){this.isEnabled=!1}},{key:"requiredCheck",value:function(t){if(!t.attr("required"))return!0;var e=!0;switch(t[0].type){case"checkbox":e=t[0].checked;break;case"select":case"select-one":case"select-multiple":var r=t.find("option:selected");r.length&&r.val()||(e=!1);break;default:t.val()&&t.val().length||(e=!1)}return e}},{key:"findFormError",value:function(e,t){var r=this,i=e.length?e[0].id:"",a=e.siblings(this.options.formErrorSelector);return a.length||(a=e.parent().find(this.options.formErrorSelector)),i&&(a=a.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(a=a.not("[data-form-error-on]"),t.forEach(function(t){a=(a=a.add(e.siblings('[data-form-error-on="'.concat(t,'"]')))).add(r.$element.find('[data-form-error-for="'.concat(i,'"][data-form-error-on="').concat(t,'"]')))})),a}},{key:"findLabel",value:function(t){var e=t[0].id,e=this.$element.find('label[for="'.concat(e,'"]'));return e.length?e:t.closest("label")}},{key:"findRadioLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=r.length?r:u()(e).closest("label"))[0]});return u()(t)}},{key:"findCheckboxLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=r.length?r:u()(e).closest("label"))[0]});return u()(t)}},{key:"addErrorClasses",value:function(t,e){var r=this.findLabel(t),e=this.findFormError(t,e);r.length&&r.addClass(this.options.labelErrorClass),e.length&&e.addClass(this.options.formErrorClass),t.addClass(this.options.inputErrorClass).attr({"data-invalid":"","aria-invalid":!0}),e.filter(":visible").length&&this.addA11yErrorDescribe(t,e)}},{key:"addA11yAttributes",value:function(t){var e,r,i=this.findFormError(t),a=i.filter("label");i.length&&((e=i.filter(":visible").first()).length&&this.addA11yErrorDescribe(t,e),a.filter("[for]").length<a.length&&(void 0===(r=t.attr("id"))&&(r=(0,n.GetYoDigits)(6,"abide-input"),t.attr("id",r)),a.each(function(t,e){e=u()(e);void 0===e.attr("for")&&e.attr("for",r)})),i.each(function(t,e){e=u()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addA11yErrorDescribe",value:function(t,e){var r;"hidden"!==t.attr("type")&&void 0===t.attr("aria-describedby")&&(void 0===(r=e.attr("id"))&&(r=(0,n.GetYoDigits)(6,"abide-error"),e.attr("id",r)),t.attr("aria-describedby",r).data("abide-describedby",!0))}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),e=this.findRadioLabels(t),r=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),r.length&&r.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var t=this.$element.find(':checkbox[name="'.concat(t,'"]')),e=this.findCheckboxLabels(t),r=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),r.length&&r.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){var e,r;return"radio"===t[0].type?this.removeRadioErrorClasses(t.attr("name")):"checkbox"===t[0].type?this.removeCheckboxErrorClasses(t.attr("name")):(e=this.findLabel(t),r=this.findFormError(t),e.length&&e.removeClass(this.options.labelErrorClass),r.length&&r.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null}),void(t.data("abide-describedby")&&t.removeAttr("aria-describedby").removeData("abide-describedby")))}},{key:"validateInput",value:function(e){var r,i=this,t=this.requiredCheck(e),a=e.attr("data-validator"),n=[],o=!0;if(this._validationIsDisabled())return!0;if(e.is("[data-abide-ignore]")||e.is('[type="hidden"]')||e.is("[disabled]"))return!0;switch(e[0].type){case"radio":this.validateRadio(e.attr("name"))||n.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||n.push("required"),o=!1;break;case"select":case"select-one":case"select-multiple":t||n.push("required");break;default:t||n.push("required"),this.validateText(e)||n.push("pattern")}a&&(r=!!e.attr("required"),a.split(" ").forEach(function(t){i.options.validators[t](e,r,e.parent())||n.push(t)})),e.attr("data-equalto")&&!this.options.validators.equalTo(e)&&n.push("equalTo");var s,l,a=0===n.length,d=(a?"valid":"invalid")+".zf.abide";return a&&(s=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(l=this,s.each(function(){u()(this).val()&&l.validateInput(u()(this))})),o&&(this.removeErrorClasses(e),a||this.addErrorClasses(e,n)),e.trigger(d,[e]),a}},{key:"validateForm",value:function(){var t,r=this,e=[],i=this;if(this.initialized||(this.initialized=!0),this._validationIsDisabled())return!(this.formnovalidate=null);this.$inputs.each(function(){if("checkbox"===u()(this)[0].type){if(u()(this).attr("name")===t)return!0;t=u()(this).attr("name")}e.push(i.validateInput(u()(this)))});var a=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=u()(e);r.options.a11yAttributes&&r.addGlobalErrorA11yAttributes(e),e.css("display",a?"none":"block")}),this.$element.trigger((a?"formvalid":"forminvalid")+".zf.abide",[this.$element]),a}},{key:"validateText",value:function(t,e){e=e||t.attr("data-pattern")||t.attr("pattern")||t.attr("type");var r=t.val(),i=!0;return r.length&&(this.options.patterns.hasOwnProperty(e)?i=this.options.patterns[e].test(r):e!==t.attr("type")&&(i=new RegExp(e).test(r))),i}},{key:"validateRadio",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),r=!1,i=!1;return t.each(function(t,e){u()(e).attr("required")&&(i=!0)}),(r=i?r:!0)||t.each(function(t,e){u()(e).prop("checked")&&(r=!0)}),r}},{key:"validateCheckbox",value:function(t){var r=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,a=!1,n=1,o=0;return t.each(function(t,e){u()(e).attr("required")&&(a=!0)}),(i=a?i:!0)||(t.each(function(t,e){u()(e).prop("checked")&&o++,void 0!==u()(e).attr("data-min-required")&&(n=parseInt(u()(e).attr("data-min-required"),10))}),n<=o&&(i=!0)),!0!==this.initialized&&1<n||(t.each(function(t,e){i?r.removeErrorClasses(u()(e)):r.addErrorClasses(u()(e),["required"])}),i)}},{key:"matchValidation",value:function(e,t,r){var i=this;return r=!!r,-1===t.split(" ").map(function(t){return i.options.validators[t](e,r,e.parent())}).indexOf(!1)}},{key:"resetForm",value:function(){var t=this.$element,e=this.options;u()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),u()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),u()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),u()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),u()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),u()(":input:checkbox",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),t.trigger("formreset.zf.abide",[t])}},{key:"_destroy",value:function(){var t=this;this.$element.off(".abide").find("[data-abide-error]").css("display","none"),this.$inputs.off(".abide").each(function(){t.removeErrorClasses(u()(this))}),this.$submits.off(".abide")}}])&&o(i.prototype,t),e&&o(i,e),Object.defineProperty(i,"prototype",{writable:!1}),i})(n.Plugin);i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",a11yAttributes:!0,a11yErrorLevel:"assertive",liveValidate:!1,validateOnBlur:!1,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,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]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,website:{test:function(t){return i.defaults.patterns.domain.test(t)||i.defaults.patterns.url.test(t)}}},validators:{equalTo:function(t){return u()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},"./foundation.core":function(t){t.exports=e},jquery:function(t){t.exports=r}},n={},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s={},(i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})})(s),i.d(s,{Abide:function(){return o.Abide},Foundation:function(){return t.Foundation}}),t=i("./foundation.core"),o=i("./js/foundation.abide.js"),t.Foundation.plugin(o.Abide,"Abide"),s;function i(t){var e=n[t];return void 0!==e||(e=n[t]={exports:{}},a[t](e,e.exports,i)),e.exports}var a,n,t,o,s});
//# sourceMappingURL=foundation.abide.min.js.map