{"version":3,"file":"validators-1ad299a6.js","sources":["../../src/@core/utils/index.ts","../../src/@core/utils/validators.ts"],"sourcesContent":["// 👉 IsEmpty\nexport const isEmpty = (value: unknown): boolean => {\n if (value === null || value === undefined || value === '')\n return true\n\n return !!(Array.isArray(value) && value.length === 0)\n}\n\n// 👉 IsNullOrUndefined\nexport const isNullOrUndefined = (value: unknown): value is undefined | null => {\n return value === null || value === undefined\n}\n\n// 👉 IsEmptyArray\nexport const isEmptyArray = (arr: unknown): boolean => {\n return Array.isArray(arr) && arr.length === 0\n}\n\n// 👉 IsObject\nexport const isObject = (obj: unknown): obj is Record =>\n obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj)\n\nexport const isToday = (date: Date) => {\n const today = new Date()\n\n return (\n /* eslint-disable operator-linebreak */\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n /* eslint-enable */\n )\n}\n","import { isEmpty, isEmptyArray, isNullOrUndefined } from './index'\n\n// 👉 Required Validator\nexport const requiredValidator = (value: unknown) => {\n if (isNullOrUndefined(value) || isEmptyArray(value) || value === false)\n return 'This field is required'\n\n return !!String(value).trim().length || 'This field is required'\n}\n\n// 👉 Email Validator\nexport const emailValidator = (value: unknown) => {\n if (isEmpty(value))\n return true\n\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n if (Array.isArray(value))\n return value.every(val => re.test(String(val))) || 'The Email field must be a valid email'\n\n return re.test(String(value)) || 'The Email field must be a valid email'\n}\n\n// 👉 Password Validator\nexport const passwordValidator = (password: string) => {\n const regExp = /(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/\n\n const validPassword = regExp.test(password)\n\n return (\n // eslint-disable-next-line operator-linebreak\n validPassword ||\n 'Field must contain at least one uppercase, lowercase, special character and digit with min 8 chars'\n )\n}\n\n// 👉 Confirm Password Validator\nexport const confirmedValidator = (value: string, target: string) =>\n\n value === target || 'The Confirm Password field confirmation does not match'\n\n// 👉 Between Validator\nexport const betweenValidator = (value: unknown, min: number, max: number) => {\n const valueAsNumber = Number(value)\n\n return (Number(min) <= valueAsNumber && Number(max) >= valueAsNumber) || `Enter number between ${min} and ${max}`\n}\n\n// 👉 Integer Validator\nexport const integerValidator = (value: unknown) => {\n if (isEmpty(value))\n return true\n\n if (Array.isArray(value))\n return value.every(val => /^-?[0-9]+$/.test(String(val))) || 'This field must be an integer'\n\n return /^-?[0-9]+$/.test(String(value)) || 'This field must be an integer'\n}\n\n// 👉 Regex Validator\nexport const regexValidator = (value: unknown, regex: RegExp | string): string | boolean => {\n if (isEmpty(value))\n return true\n\n let regeX = regex\n if (typeof regeX === 'string')\n regeX = new RegExp(regeX)\n\n if (Array.isArray(value))\n return value.every(val => regexValidator(val, regeX))\n\n return regeX.test(String(value)) || 'The Regex field format is invalid'\n}\n\n// 👉 Alpha Validator\nexport const alphaValidator = (value: unknown) => {\n if (isEmpty(value))\n return true\n\n return /^[A-Z]*$/i.test(String(value)) || 'The Alpha field may only contain alphabetic characters'\n}\n\n// 👉 URL Validator\nexport const urlValidator = (value: unknown) => {\n if (isEmpty(value))\n return true\n\n const re = /^(http[s]?:\\/\\/){0,1}(www\\.){0,1}[a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,5}[\\.]{0,1}/\n\n return re.test(String(value)) || 'URL is invalid'\n}\n\n// 👉 Length Validator\nexport const lengthValidator = (value: unknown, length: number) => {\n if (isEmpty(value))\n return true\n\n return String(value).length === length || `The Min Character field must be at least ${length} characters`\n}\n\n// 👉 Alpha-dash Validator\nexport const alphaDashValidator = (value: unknown) => {\n if (isEmpty(value))\n return true\n\n const valueAsString = String(value)\n\n return /^[0-9A-Z_-]*$/i.test(valueAsString) || 'All Character are not valid'\n}\n"],"names":["isEmpty","value","isNullOrUndefined","isEmptyArray","arr","requiredValidator","emailValidator","re","val","confirmedValidator","target"],"mappings":"sXACa,MAAAA,EAAWC,GAClBA,GAAU,MAA+BA,IAAU,GAC9C,GAEF,CAAC,EAAE,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,GAIxCC,EAAqBD,GACzBA,GAAU,KAINE,EAAgBC,GACpB,MAAM,QAAQA,CAAG,GAAKA,EAAI,SAAW,ECZjCC,EAAqBJ,GAC5BC,EAAkBD,CAAK,GAAKE,EAAaF,CAAK,GAAKA,IAAU,GACxD,yBAEF,CAAC,CAAC,OAAOA,CAAK,EAAE,OAAO,QAAU,yBAI7BK,EAAkBL,GAAmB,CAChD,GAAID,EAAQC,CAAK,EACR,MAAA,GAET,MAAMM,EAAK,0JAEP,OAAA,MAAM,QAAQN,CAAK,EACdA,EAAM,MAAaO,GAAAD,EAAG,KAAK,OAAOC,CAAG,CAAC,CAAC,GAAK,wCAE9CD,EAAG,KAAK,OAAON,CAAK,CAAC,GAAK,uCACnC,EAgBaQ,EAAqB,CAACR,EAAeS,IAEhDT,IAAUS,GAAU"}