UNPKG

foundation-sites

Version:

The most advanced responsive front-end framework in the world.

3 lines (2 loc) 14.9 kB
!function(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.abide"]=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))}(window,function(r,i){return a={"./foundation.core":function(t,e){t.exports=r},"./js/entries/plugins/foundation.abide.js":function(t,e,r){"use strict";r.r(e);var i=r("./foundation.core");r.d(e,"Foundation",function(){return i.Foundation});var n=r("./js/foundation.abide.js");r.d(e,"Abide",function(){return n.Abide}),i.Foundation.plugin(n.Abide,"Abide")},"./js/foundation.abide.js":function(t,e,r){"use strict";r.r(e),r.d(e,"Abide",function(){return i});var e=r("jquery"),d=r.n(e),o=r("./foundation.core");function n(t){return(n="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 a(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,i.key,i)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(r){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=u(r);return function(t,e){{if(e&&("object"===n(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(n,o["Plugin"]);var t,e,r,i=l(n);function n(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),i.apply(this,arguments)}return t=n,(e=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=d.a.extend(!0,{},n.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var r=this;this.$inputs=d.a.merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]');var t=this.$element.find("[data-abide-error]");this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return r.addA11yAttributes(d()(e))}),t.each(function(t,e){return r.addGlobalErrorA11yAttributes(d()(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(d()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(d()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(d()(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:"",n=e.siblings(this.options.formErrorSelector);return n.length||(n=e.parent().find(this.options.formErrorSelector)),i&&(n=n.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(n=n.not("[data-form-error-on]"),t.forEach(function(t){n=(n=n.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,'"]')))})),n}},{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?d()(e).closest("label"):r)[0]});return d()(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?d()(e).closest("label"):r)[0]});return d()(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})}},{key:"addA11yAttributes",value:function(t){var e,r,i=this.findFormError(t),n=i.filter("label"),a=i.first();i.length&&(void 0===t.attr("aria-describedby")&&(void 0===(e=a.attr("id"))&&(e=Object(o.GetYoDigits)(6,"abide-error"),a.attr("id",e)),t.attr("aria-describedby",e)),n.filter("[for]").length<n.length&&(void 0===(r=t.attr("id"))&&(r=Object(o.GetYoDigits)(6,"abide-input"),t.attr("id",r)),n.each(function(t,e){e=d()(e);void 0===e.attr("for")&&e.attr("for",r)})),i.each(function(t,e){e=d()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var e=this.$element.find(':radio[name="'.concat(t,'"]')),r=this.findRadioLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var e=this.$element.find(':checkbox[name="'.concat(t,'"]')),r=this.findCheckboxLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){if("radio"===t[0].type)return this.removeRadioErrorClasses(t.attr("name"));if("checkbox"===t[0].type)return this.removeCheckboxErrorClasses(t.attr("name"));var 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})}},{key:"validateInput",value:function(e){var r,i=this,t=this.requiredCheck(e),n=e.attr("data-validator"),a=[],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"))||a.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||a.push("required"),o=!1;break;case"select":case"select-one":case"select-multiple":t||a.push("required");break;default:t||a.push("required"),this.validateText(e)||a.push("pattern")}n&&(r=!!e.attr("required"),n.split(" ").forEach(function(t){i.options.validators[t](e,r,e.parent())||a.push(t)})),e.attr("data-equalto")&&(this.options.validators.equalTo(e)||a.push("equalTo"));var s,l=0===a.length,u=(l?"valid":"invalid")+".zf.abide";return!l||(n=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(s=this,n.each(function(){d()(this).val()&&s.validateInput(d()(this))})),o&&(l?this.removeErrorClasses(e):this.addErrorClasses(e,a)),e.trigger(u,[e]),l}},{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"===d()(this)[0].type){if(d()(this).attr("name")===t)return!0;t=d()(this).attr("name")}e.push(i.validateInput(d()(this)))});var n=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=d()(e);r.options.a11yAttributes&&r.addGlobalErrorA11yAttributes(e),e.css("display",n?"none":"block")}),this.$element.trigger((n?"formvalid":"forminvalid")+".zf.abide",[this.$element]),n}},{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){d()(e).attr("required")&&(i=!0)}),(r=!i?!0:r)||t.each(function(t,e){d()(e).prop("checked")&&(r=!0)}),r}},{key:"validateCheckbox",value:function(t){var r=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,n=!1,a=1,o=0;return t.each(function(t,e){d()(e).attr("required")&&(n=!0)}),(i=!n?!0:i)||(t.each(function(t,e){d()(e).prop("checked")&&o++,void 0!==d()(e).attr("data-min-required")&&(a=parseInt(d()(e).attr("data-min-required"),10))}),a<=o&&(i=!0)),!0!==this.initialized&&1<a||(t.each(function(t,e){i?r.removeErrorClasses(d()(e)):r.addErrorClasses(d()(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;d()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),d()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),d()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),d()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),d()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),d()(":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(d()(this))}),this.$submits.off(".abide")}}])&&a(t.prototype,e),r&&a(t,r),n}();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 d()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},0:function(t,e,r){t.exports=r("./js/entries/plugins/foundation.abide.js")},jquery:function(t,e){t.exports=i}},o={},n.m=a,n.c=o,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0);function n(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return a[t].call(e.exports,e,e.exports,n),e.l=!0,e.exports}var a,o}); //# sourceMappingURL=foundation.abide.min.js.map