octaform
Version:
Octaform is designed to help developers easily validate forms, being completely agnostic to the framework.
7 lines • 10.5 kB
JavaScript
/**
* @license octaform v1.6.0
* https://github.com/octaform/octaform
* Copyright (c) 2018-2020, Octaform
* Released under the MIT License.
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Octaform",[],t):"object"==typeof exports?exports.Octaform=t():e.Octaform=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"validator",(function(){return _})),r.d(t,"validate",(function(){return F})),r.d(t,"version",(function(){return I}));var n={PARAMS:/\{(.*?)\}/g,BRACES:/\{|\}/g,ERROR:/#\{(.*?)\}/g};function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=e.paramType;return r?r(t):t},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/\.\.\.\{(.*?)\}/g.exec(e)},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=/^(\w+):(\w+)$/g.exec(e);return r?o({},r[1],a(t[r[1]],r[2])):o({},e,!0)},u={is:function(e){return e&&Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},isString:function(e){return e&&"String"===u.is(e)},isObject:function(e){return"Object"===u.is(e)},isNumber:function(e){return"Number"===u.is(e)},isFunction:function(e){return"Function"===u.is(e)},isBoolean:function(e){return"Boolean"===u.is(e)},isArray:function(e){return e&&Array.isArray(e)},isElement:function(e){var t=u.is(e);return/HTML(.*)Element|NodeList/g.test(t)}},l=u,s=function(e,t,r){return function(e){var t=/\[[0-9]+\]/g;return e.match(t)&&(e=e.replace(t,(function(e){return".".concat(e.substring(1,e.length-1))}))),e.split(".")}(t).reduce((function(e,t){return e&&t in e?e[t]:void 0}),e)||r},f={message:{error:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];var a=e.match(n.ERROR)||[],i=l.isObject(r[0]);return a.reduce((function(e,t,n){var o="";i?o=r[0][t.replace(/#{(.*?)}/g,"$1")]:o=r[n];return e.replace(t,o)}),e)},validation:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,r=e.match(n.PARAMS),o=i(e);if(o&&o.length){var a=t.join(o[1]||", ");e=e.replace(o[0],a)}return r?r.reduce((function(e,r){var o=r.replace(n.BRACES,""),a=t||"";return a?(l.isArray(t)?a=t[o]:l.isObject(t)&&(a=s(t,o,r)),e.replace(r,a)):e}),e):e}}},d={addMethod:"".concat("https://github.com/octaform/octaform","#octaformvalidatoradd"),allSchema:"".concat("https://github.com/octaform/octaform","#octaformvalidateschema"),paramType:"".concat("https://github.com/octaform/octaform","#octaformvalidatoradd"),fieldName:"".concat("https://github.com/octaform/octaform","#field-name-required")},p={validations:{},messages:{fields:{},core:{CORE:{msg:"The #{validation} validation has no message set, please check out ".concat(d.addMethod),field:"The #{field} field was not found, please check out ".concat(d.fieldName),add:"The .add method has an invalid parameter, please check out ".concat(d.addMethod),undefined:"The #{validation} validation method is not set, please check out ".concat(d.addMethod),entry:"Invalid #{rule} entry point format, please check out ".concat(d.allSchema),paramType:"The #{fieldName} field has an invalid type parameter in #{validation} validation, expected #{paramType}, please check out ".concat(d.paramType)}}.CORE,validator:{}}};var m={getAll:function(){return p.messages},set:function(e,t){p.messages.validator[e]=t},setCustomFieldMsg:function(e,t){var r,n,o;p.messages.fields=Object.assign(p.messages.fields,!!Object.keys(t).length&&(o=t,(n=e)in(r={})?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,r))}},g={set:function(e){for(var t,r=m.getAll(),n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];var i=(t=f.message).error.apply(t,[r.core[e]].concat(o));throw new Error(i)}},v={getAll:function(){return p.validations},set:function(e,t){p.validations[e]=t},add:function(e){l.isArray(e)||l.isObject(e)?(l.isObject(e)?[e]:e).forEach((function(e){var t=e.name,r=e.message,n=e.paramType,o=e.fn,a=l.isString(t)&&l.isFunction(o)&&l.isString(r);a&&n&&(o.paramType=n),a&&r&&(m.set(t,r),v.set(t,o)),r||g.set("msg",t),a||g.set("add")})):g.set("add",e)}};function b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var i,c=e[Symbol.iterator]();!(n=(i=c.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}p.validations={add:v.add};var h={apply:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={field:e.selector||"",messages:[],rules:{}};return r.field&&Object.entries(e.rules||{}).forEach((function(n){var o=b(n,2),a=o[0],i=o[1],c=t[a];if(c){if(c.paramType&&l.is(i)!==c.paramType.name&&g.set("paramType",{validation:a,paramType:c.paramType.name,fieldName:r.field}),!c(e.value,e.element,i)&&(e.rules.required||e.value)){var u=(e.messages.fields[e.selector]||{})[a]||e.messages.validator[a],s=f.message.validation(u,i);r.messages.push(s),r.rules[a]=s}}else g.set("undefined",a)})),r}},O=function(e){var t=document.getElementsByName(e),r=document.getElementsByClassName(e),n=document.getElementById(e),o=document.querySelectorAll(e),a=t&&t.length&&t||r&&r.length&&r||n&&[n]||o&&o.length&&o||[];return Array.from(a)};function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){w(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function w(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var A=function(e){var t=e.ref,r=e.rules,n=void 0===r?{}:r,o=e.messages,a=void 0===o?{}:o,i=e.value;return P(P(P(P({},t&&{ref:t}),n&&{rules:n}),a&&{messages:a}),i&&{value:i})},S=function(e,t){var r=c(e,t);return A({messages:{},rules:r})},E=function(e){return A(e)};function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?T(Object(r),!0).forEach((function(t){x(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function x(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.reduce((function(e,r){var n=c(r,t);return M(M({},e),n)}),{})};function D(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function R(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?D(Object(r),!0).forEach((function(t){N(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var C={getAll:v.getAll,apply:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[],r=C.getAll();return Object.keys(e).forEach((function(n){var o=e[n],a=R(R({},l.isString(o)&&S(o,r)),l.isObject(o)&&E(o));if(Object.keys(a).length){var i=a.ref?[a.ref]:O(n);m.setCustomFieldMsg(n,a.messages),i.length||g.set("field",n);var c=a.value||i.length&&i[0].value||"",u={rules:l.isArray(a.rules)&&k(a.rules,r)||l.isObject(a.rules)&&a.rules||{},messages:m.getAll(),selector:n,element:i,value:c},s=h.apply(u,r);s.messages.length&&t.push(s)}else o&&g.set("entry",n)})),C.isValid=!t.length,t}},B=C,_=B.getAll(),F=B.apply,I="1.6.0";t.default={validator:_,validate:F,version:I}}]).default}));