From b8a06d442f10410fad5e74186395e5c4d0953abf Mon Sep 17 00:00:00 2001 From: NFORSHIFU234Dev || Shifu-Nfor Nyuiring-yoh Rhagninyui Date: Mon, 26 Aug 2024 01:29:44 +0100 Subject: [PATCH 1/2] Update --- package-lock.json | 119 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + 2 files changed, 119 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 684bc66..29fdb3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "nfsfu234-form-validation", - "version": "^2.4.4", + "version": "3.0.0-beta", "license": "MIT", "dependencies": { "autoprefixer": "^10.4.19", @@ -30,6 +30,7 @@ "file-loader": "^6.2.0", "jest": "^29.7.0", "mini-css-extract-plugin": "^2.7.6", + "rimraf": "^6.0.1", "style-loader": "^3.3.3", "terser-webpack-plugin": "^5.3.9", "ts-loader": "^9.5.1", @@ -9582,6 +9583,122 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", diff --git a/package.json b/package.json index 97afe07..af0f0fe 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "file-loader": "^6.2.0", "jest": "^29.7.0", "mini-css-extract-plugin": "^2.7.6", + "rimraf": "^6.0.1", "style-loader": "^3.3.3", "terser-webpack-plugin": "^5.3.9", "ts-loader": "^9.5.1", From ceef256c6c8d620fba5b3e797b75da532b9b0980 Mon Sep 17 00:00:00 2001 From: NFORSHIFU234Dev || Shifu-Nfor Nyuiring-yoh Rhagninyui Date: Thu, 29 Aug 2024 21:52:22 +0100 Subject: [PATCH 2/2] Fix rimraf not found issue by using npx --- .github/workflows/deploy.yml | 3 +++ dist/js/nfsfu234FormValidation.js | 2 +- dist/js/nfsfu234FormValidation.js.map | 2 +- package.json | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8f50816..2e7c411 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,6 +21,9 @@ jobs: - name: Install dependencies run: npm ci # Installs npm dependencies + - name: List installed modules (Optional Debug Step) + run: ls -la node_modules/.bin + - name: Run build run: npm run build # Runs the build script diff --git a/dist/js/nfsfu234FormValidation.js b/dist/js/nfsfu234FormValidation.js index d201395..943bf7d 100644 --- a/dist/js/nfsfu234FormValidation.js +++ b/dist/js/nfsfu234FormValidation.js @@ -1,4 +1,4 @@ -"use strict";function e(e,t,r,n,o,i,a){try{var s=e[i](a);var u=s.value}catch(e){r(e);return}if(s.done){t(u)}else{Promise.resolve(u).then(n,o)}}function t(t){return function(){var r=this,n=arguments;return new Promise(function(o,i){var a=t.apply(r,n);function s(t){e(a,o,i,s,u,"next",t)}function u(t){e(a,o,i,s,u,"throw",t)}s(undefined)})}}function r(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function n(e,t){for(var r=0;r0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;var o=t.form||void 0,i=t.customErrorMessages||null,s=t.errorType||"inline",u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=i&&i.checkbox&&i.checkbox!==""?i.checkbox:"You need to check this box";if(e.getAttribute("type")!=="checkbox")return!1;if(!u)return l&&!e.checked?(w(d),n.message=d,n.data=e,n):!0;if(!o)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist. 5765846846"),n;var f=[];return l&&!e.checked?(w(d),n.message=d,n.data=e,s==="inline"?C(e,d,3e3):s==="modal"&&(F(e,3e3),H(d,o)),n):!0};var n=Object.create;var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var m=function(e){return(typeof require==="undefined"?"undefined":a(require))<"u"?require:(typeof Proxy==="undefined"?"undefined":a(Proxy))<"u"?new Proxy(e,{get:function(e,t){return((typeof require==="undefined"?"undefined":a(require))<"u"?require:e)[t]}}):e}(function(e){if((typeof require==="undefined"?"undefined":a(require))<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=function(e,t){return function(){return t||e((t={exports:{}}).exports,t),t.exports}};var h=function(e,t,r,n){var o=true,i=false,s=undefined;if(t&&(typeof t==="undefined"?"undefined":a(t))=="object"||typeof t=="function")try{var f=function(){var o=v.value;!c.call(e,o)&&o!==r&&u(e,o,{get:function(){return t[o]},enumerable:!(n=l(t,o))||n.enumerable})};for(var m=d(t)[Symbol.iterator](),v;!(o=(v=m.next()).done);o=true)f()}catch(e){i=true;s=e}finally{try{if(!o&&m.return!=null){m.return()}}finally{if(i){throw s}}}return e};var g=function(e,t,r){return r=e!=null?n(f(e)):{},h(t||!e||!e.__esModule?u(r,"default",{value:e,enumerable:!0}):r,e)};var y=v(function(e,t){"use strict";(function(e,r){typeof define=="function"&&define.amd?define([],r):typeof m=="function"&&(typeof t==="undefined"?"undefined":a(t))=="object"&&t&&t.exports?t.exports=r():(e.dcodeIO=e.dcodeIO||{}).bcrypt=r()})(e,function(){"use strict";var e={},r=null;function n(e){if((typeof t==="undefined"?"undefined":a(t))<"u"&&t&&t.exports)try{return m("crypto").randomBytes(e)}catch(e){}try{var n;return(self.crypto||self.msCrypto).getRandomValues(n=new Uint32Array(e)),Array.prototype.slice.call(n)}catch(e){}if(!r)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return r(e)}var o=!1;try{n(1),o=!0}catch(e){}r=null,e.setRandomFallback=function(e){r=e},e.genSaltSync=function(e,t){if(e=e||y,typeof e!="number")throw Error("Illegal arguments: "+(typeof e==="undefined"?"undefined":a(e))+", "+(typeof t==="undefined"?"undefined":a(t)));e<4?e=4:e>31&&(e=31);var r=[];return r.push("$2a$"),e<10&&r.push("0"),r.push(e.toString()),r.push("$"),r.push(c(n(g),g)),r.join("")},e.genSalt=function(t,r,n){if(typeof r=="function"&&(n=r,r=void 0),typeof t=="function"&&(n=t,t=void 0),(typeof t==="undefined"?"undefined":a(t))>"u")t=y;else if(typeof t!="number")throw Error("illegal arguments: "+(typeof t==="undefined"?"undefined":a(t)));function o(r){s(function(){try{r(null,e.genSaltSync(t))}catch(e){r(e)}})}if(n){if(typeof n!="function")throw Error("Illegal callback: "+(typeof n==="undefined"?"undefined":a(n)));o(n)}else return new Promise(function(e,t){o(function(r,n){if(r){t(r);return}e(n)})})},e.hashSync=function(t,r){if((typeof r==="undefined"?"undefined":a(r))>"u"&&(r=y),typeof r=="number"&&(r=e.genSaltSync(r)),typeof t!="string"||typeof r!="string")throw Error("Illegal arguments: "+(typeof t==="undefined"?"undefined":a(t))+", "+(typeof r==="undefined"?"undefined":a(r)));return I(t,r)},e.hash=function(t,r,n,o){function i(n){typeof t=="string"&&typeof r=="number"?e.genSalt(r,function(e,r){I(t,r,n,o)}):typeof t=="string"&&typeof r=="string"?I(t,r,n,o):s(n.bind(this,Error("Illegal arguments: "+(typeof t==="undefined"?"undefined":a(t))+", "+(typeof r==="undefined"?"undefined":a(r)))))}if(n){if(typeof n!="function")throw Error("Illegal callback: "+(typeof n==="undefined"?"undefined":a(n)));i(n)}else return new Promise(function(e,t){i(function(r,n){if(r){t(r);return}e(n)})})};function i(e,t){for(var r=0,n=0,o=0,i=e.length;o=e.length?null:e.charCodeAt(r++)},function(e){t.push(e)}),t}var l="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),d=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],f=String.fromCharCode;function c(e,t){var r=0,n=[],o,i;if(t<=0||t>e.length)throw Error("Illegal len: "+t);for(;r>2&63]),o=(o&3)<<4,r>=t){n.push(l[o&63]);break}if(i=e[r++]&255,o|=i>>4&15,n.push(l[o&63]),o=(i&15)<<2,r>=t){n.push(l[o&63]);break}i=e[r++]&255,o|=i>>6&3,n.push(l[o&63]),n.push(l[i&63])}return n.join("")}function v(e,t){var r=0,n=e.length,o=0,i=[],a,s,u,l,c,m;if(t<=0)throw Error("Illegal len: "+t);for(;r>>0,c|=(s&48)>>4,i.push(f(c)),++o>=t||r>=n)||(m=e.charCodeAt(r++),u=m>>0,c|=(u&60)>>2,i.push(f(c)),++o>=t||r>=n)));)m=e.charCodeAt(r++),l=m>>0,c|=l,i.push(f(c)),++o;var v=[];for(r=0;r>6&31|192),t(r&63|128)):r<65536?(t(r>>12&15|224),t(r>>6&63|128),t(r&63|128)):(t(r>>18&7|240),t(r>>12&63|128),t(r>>6&63|128),t(r&63|128)),r=null},e.decodeUTF8=function(e,t){for(var r,n,o,i,a=function e(e){e=e.slice(0,e.indexOf(null));var t=Error(e.toString());throw t.name="TruncatedError",t.bytes=e,t};(r=e())!==null;)if(!(r&128))t(r);else if((r&224)===192)(n=e())===null&&a([r,n]),t((r&31)<<6|n&63);else if((r&240)===224)((n=e())===null||(o=e())===null)&&a([r,n,o]),t((r&15)<<12|(n&63)<<6|o&63);else if((r&248)===240)((n=e())===null||(o=e())===null||(i=e())===null)&&a([r,n,o,i]),t((r&7)<<18|(n&63)<<12|(o&63)<<6|i&63);else throw RangeError("Illegal starting byte: "+r)},e.UTF16toUTF8=function(e,t){for(var r,n=null;(r=n!==null?n:e())!==null;){if(r>=55296&&r<=57343&&(n=e())!==null&&n>=56320&&n<=57343){t((r-55296)*1024+n-56320+65536),n=null;continue}t(r)}n!==null&&t(n)},e.UTF8toUTF16=function(e,t){var r=null;for(typeof e=="number"&&(r=e,e=function e(){return null});r!==null||(r=e())!==null;)r<=65535?t(r):(r-=65536,t((r>>10)+55296),t(r%1024+56320)),r=null},e.encodeUTF16toUTF8=function(t,r){e.UTF16toUTF8(t,function(t){e.encodeUTF8(t,r)})},e.decodeUTF8toUTF16=function(t,r){e.decodeUTF8(t,function(t){e.UTF8toUTF16(t,r)})},e.calculateCodePoint=function(e){return e<128?1:e<2048?2:e<65536?3:4},e.calculateUTF8=function(t){for(var r,n=0;(r=t())!==null;)n+=e.calculateCodePoint(r);return n},e.calculateUTF16asUTF8=function(t){var r=0,n=0;return e.UTF16toUTF8(t,function(t){++r,n+=e.calculateCodePoint(t)}),[r,n]},e}();Date.now=Date.now||function(){return+new Date};var g=16,y=10,p=16,b=100,w=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],E=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],T=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892];function x(e,t,r,n){var o,i=e[t],a=e[t+1];return i^=r[0],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[1],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[2],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[3],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[4],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[5],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[6],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[7],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[8],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[9],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[10],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[11],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[12],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[13],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[14],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[15],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[16],e[t]=a^r[p+1],e[t+1]=i,e}function k(e,t){for(var r=0,n=0;r<4;++r)n=n<<8|e[t]&255,t=(t+1)%e.length;return{key:n,offp:t}}function M(e,t,r){for(var n=0,o=[0,0],i=t.length,a=r.length,s,u=0;u31)if(l=Error("Illegal number of rounds (4-31): "+r),n){s(n.bind(this,l));return}else throw l;if(t.length!==g)if(l=Error("Illegal salt length: "+t.length+" != "+g),n){s(n.bind(this,l));return}else throw l;r=1<>>0;var d,f,c=0,m;Int32Array?(d=new Int32Array(w),f=new Int32Array(E)):(d=w.slice(),f=E.slice()),A(t,e,d,f);function v(){if(o&&o(c/r),cb)););else{for(c=0;c<64;c++)for(m=0;m>1;m++)x(i,m<<1,d,f);var l=[];for(c=0;c>24&255)>>>0),l.push((i[c]>>16&255)>>>0),l.push((i[c]>>8&255)>>>0),l.push((i[c]&255)>>>0);if(n){n(null,l);return}else return l}n&&s(v)}if((typeof n==="undefined"?"undefined":a(n))<"u")v();else for(var h;;)if(a(h=v())<"u")return h||[]}function I(e,t,r,n){var o;if(typeof e!="string"||typeof t!="string")if(o=Error("Invalid string / salt: Not a string"),r){s(r.bind(this,o));return}else throw o;var i,l;if(t.charAt(0)!=="$"||t.charAt(1)!=="2")if(o=Error("Invalid salt version: "+t.substring(0,2)),r){s(r.bind(this,o));return}else throw o;if(t.charAt(2)==="$")i="\0",l=3;else{if(i=t.charAt(2),i!=="a"&&i!=="b"&&i!=="y"||t.charAt(3)!=="$")if(o=Error("Invalid salt revision: "+t.substring(2,4)),r){s(r.bind(this,o));return}else throw o;l=4}if(t.charAt(l+2)>"$")if(o=Error("Missing salt rounds"),r){s(r.bind(this,o));return}else throw o;var d=parseInt(t.substring(l,l+1),10)*10,f=parseInt(t.substring(l+1,l+2),10),m=d+f,h=t.substring(l+3,l+25);e+=i>="a"?"\0":"";var y=u(e),p=v(h,g);function b(e){var t=[];return t.push("$2"),i>="a"&&t.push(i),t.push("$"),m<10&&t.push("0"),t.push(m.toString()),t.push("$"),t.push(c(p,p.length)),t.push(c(e,T.length*4-1)),t.join("")}if((typeof r==="undefined"?"undefined":a(r))>"u")return b(L(y,p,m));L(y,p,m,function(e,t){e?r(e,null):r(null,b(t))},n)}return e.encodeBase64=c,e.decodeBase64=v,e})});var p=v(function(e,t){"use strict";t.exports=y()});var b={ERROR:"error",ERROR_1:"error_1",CONSOLE:"console",THROW:"throw",WARNING:"warning",INFO:"info"},w=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:b.CONSOLE;switch(t){case b.ERROR:console.error("Error:",e);break;case b.CONSOLE:console.error("Error:",e);break;case b.THROW:throw e;case b.WARNING:console.warn("Warning:",e);break;case b.INFO:console.log("Info:",e);break;default:throw console.error("Error:",e),e}};var E=function(e){return e.every(function(e){return e===!0})};var T=function(e){return typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":(typeof e==="undefined"?"undefined":a(e))>"u"?"undefined":e===null?"null":i(e,HTMLElement)?"HTML Element":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Array)?"array":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Object)?"object":typeof e=="function"?"function":null};var x=function(){return(typeof window==="undefined"?"undefined":a(window))>"u"?(w("This function only works in a broswer environment..."),!1):window.location.href},k=x;var M=function(){var e=t(function(e,t){var r,n,o,i,a,u;return s(this,function(s){switch(s.label){case 0:r={};s.label=1;case 1:s.trys.push([1,9,,10]);console.log("AJAX Loading....");return[4,fetch(e,t)];case 2:n=s.sent();if(!n.ok)return[3,4];console.log("AJAX Finished....");return[4,n.json()];case 3:return[2,s.sent()];case 4:if(n.status===404)throw r.code=(o=n.status)!==null&&o!==void 0?o:404,r.message="Resource Not Found",r.data={headers:n.headers,url:n.url,status:n.status,statusText:n.statusText,ok:n.ok},r;s.label=5;case 5:s.trys.push([5,7,,8]);return[4,n.json()];case 6:i=s.sent();if(T(i)==="object")r.code=n.status,r.message=i.message||n.statusText,r.data=i;else throw r.code=400,r.message="Response is not a valid JSON object 2.",r;return[2,r];case 7:a=s.sent();throw r.code=400,r.message="Response is not a valid JSON object. 1",r.data=null,r;case 8:return[3,10];case 9:u=s.sent();throw r.code=u.code||400,r.message=u.message||u.statusText||"An Error Occured",r.data=u.data||null,r;case 10:return[2]}})});return function t(t,r){return e.apply(this,arguments)}}(),A=function(e){var t={},r=e.RequestMethod||"GET",n=e.RequestHeader||{},o=e.RequestBodyIgnore||!1,i=e.RequestType||"json",a;if(["POST","PUT","DELETE","UPDATE"].includes(r)&&(a=e.RequestBody||"",a===""&&o!==!0))throw t.code=400,t.message='The body of this "'.concat(r,'" request you made is empty. If this was intentionional, then add the RequestBodyIgnore attribute and set it to true.'),t;return{method:r,headers:n,body:JSON.stringify(a)}},L=function(){var e=t(function(e){var t,r,n,o,i;return s(this,function(a){switch(a.label){case 0:t={};a.label=1;case 1:a.trys.push([1,3,,4]);r=e&&e.url?e.url:k(),n=A(e);return[4,M(r,n)];case 2:return[2,a.sent()];case 3:o=a.sent();throw t.code=o.code||400,t.message=o.message||"An Error Occured",t.data=(i=o.data)!==null&&i!==void 0?i:null,console.error("AJAX Failed: ",o.message),w(o.message,b.THROW),o;case 4:return[2]}})});return function t(t){return e.apply(this,arguments)}}(),I=L;var S=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3e3;e.focus(),e.classList.add("input-focus-error"),setTimeout(function(){e.classList.remove("input-focus-error")},t)},F=S;var j=function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3e3,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!e)return!1;F(e,r);var o=document.createElement("div");o.classList.add("js-inline-message"),o.innerHTML=t;var i=e.parentNode;if(!i)return!1;i.appendChild(o),n&&o.classList.add("text-success"),setTimeout(function(){i.removeChild(o)},r)},C=j;var q=function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:3e3,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1;var a;if(r!=""?a=document.getElementById(r):document.querySelectorAll("#js-errorMessageContainer").length>0?a=t.querySelector("#js-errorMessageContainer"):(a=document.createElement("div"),a.classList.add("js-errorMessageContainer"),a.setAttribute("id","js-errorMessageContainer"),t.appendChild(a)),!a)return!1;var s=document.createElement("div");s.classList.add("login-error-message-container","active");var u=document.createElement("div");u.classList.add("message","js-message"),u.innerHTML=e;var l=document.createElement("div");l.classList.add("icon","close","js-close"),l.innerHTML="",s.appendChild(u),s.appendChild(l),a.appendChild(s),o&&s.classList.add("success");var d=s.querySelector(".js-close");if(!d)return!1;d.addEventListener("click",function(){s&&s.parentNode&&s.parentNode.removeChild(s)}),setTimeout(function(){s&&s.parentNode&&s.parentNode.removeChild(s)},n),i&&console.error(e)},H=q;var R=function(e){var t=e.type,r=e.message,n=e.duration,o=e.element,a=e.success,s=a===void 0?!1:a;if(!i(o,HTMLElement))return console.error("The HTML Element you are trying to use is not found."),!1;if(o.style.position="relative",t==="inline")C(o,r,n,s);else if(t==="modal")H(r,o,"",n,s);else return console.error("The type of error display you specified is not supported."),!1;return!0},O=R;var P=function(e){var t={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),!1;if(!e)return t.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),t;var r=typeof e=="string"?document.getElementById(e):e;if(!r)return t.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),t;var n={},o=[];return r.querySelectorAll("input").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;if(e.type==="checkbox"&&(i=e.checked),e.type==="radio")if(e.checked)i=!0;else return;n[r]=i,o.push(!0)}),r.querySelectorAll("textarea").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;n[r]=i,o.push(!0)}),r.querySelectorAll("select").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;n[r]=i,o.push(!0)}),E(o)?n:!1},B=P;var U=function(e){return e.length},N=U;var $=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;var n={message:"",code:400};if(!e)return n.message="The input element you are trying to count and restrict is not found. Check your HTML code.",w(n.message),n;var o=t.maxLength&&parseInt(t.maxLength)&&t.maxLength>=1?t.maxLength:250,i=t.minLength&&parseInt(t.minLength)?t.minLength:0,a=!!(t.shouldButtonDisable&&t.shouldButtonDisable),s;if(t.form&&T(t.form)==="string"?document.getElementById(t.form):t.form&&T(t.form)==="HTML Element"?s=t.form:document.getElementById("nfsfu234_fv_form")?s=document.getElementById("nfsfu234_fv_form"):document.getElementById("jsForm")?s=document.getElementById("jsForm"):document.querySelector("form")?s=document.querySelector("form"):s=void 0,!s)return n.message="The form you are trying to validate does not exist.",w(n.message),n;e.addEventListener("input",function(){var t=N(e.value),u=!1,l;if(T(r)==="string"&&(l=document.getElementById(r)),l)l=l;else{var d=e.parentNode;if(d===null||d===void 0?void 0:d.querySelector(".js-counterContainer"))l=d.querySelector(".js-counterContainer");else{if(l=document.createElement("span"),l.classList.add("js-counterContainer"),!d)return!1;d.appendChild(l)}}return l?(t>o?(t=o,l.classList.remove("text-fail"),l.classList.add("text-success"),e.value=e.value.slice(0,o),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):t>=o?(e.value=e.value.slice(0,o),l.classList.remove("text-fail"),l.classList.add("text-success"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):t>=i&&i!==0?(l.classList.remove("text-fail"),l.classList.add("text-success"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):(l.classList.add("text-fail"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1})),l.innerHTML="".concat(t,"/").concat(o),u):(n.message="Counter Element Not Found",w(n.message),n)})},D=$;var G=function(e){return/^\d+$/.test(e)},_=G;var V={"dd/mm/yyyy":/^\d{1,2}\/\d{1,2}\/\d{4}$/,"yyyy-mm-dd":/^\d{4}-\d{2}-\d{2}$/,"mm/dd/yyyy":/^\d{1,2}\/\d{1,2}\/\d{4}$/,"mm.dd.yyyy":/^\d{1,2}\.\d{1,2}\.\d{4}$/,"yyyy/mm/dd":/^\d{4}\/\d{1,2}\/\d{1,2}$/,"yyyy.mm.dd":/^\d{4}\.\d{1,2}\.\d{1,2}$/,time:/^(0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$/,"24-hour":/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,month:/^(0?[1-9]|1[0-2])$/,day:/^(0?[1-9]|[1-2][0-9]|3[0-1])$/},Y=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"dd/mm/yyyy";var r=V[t.toLowerCase()];return r?r.test(e):(console.error("Invalid date format: ".concat(t)),!1)},J=Y;var Z=function(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)},X=Z;var z=function(e){return typeof e=="string"?/^(https?:\/\/)?(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(:\d{1,5})?(\/[^\s]*)?(\?.*)?$/.test(e):!1},W=z;var K=function(e){return typeof e=="number"&&(e=e.toString()),/^\d{5}(?:\d{1})?$/.test(e)},Q=K;var ee=e;var et=function(e,t,r){if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;var n;var o={message:"an error occured",type:"error",code:400},s=t.form||void 0,u=(n=(t.customErrorMessages||null).checkbox)!==null&&n!==void 0?n:"You need to choose a value.";if(!s)return o.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist. 5765846846"),o;var l=null;if((typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,HTMLInputElement))l=e.getAttribute("name");else if(typeof e=="string")l=e;else if(!e)return console.error("The radio element(s) to validate is(are) not found."),o.message="The radio element(s) to validate is(are) not found.",o;if(!l)return w("The radio element(s) to validate is(are) not found."),o.message="The radio element(s) to validate is(are) not found.",o;var d=document.querySelectorAll('input[type="radio"][name="'.concat(l,'"]')),f=!1,c=!1,m=t.errorType||"inline",v=[],h=null;return d.forEach(function(e){h=e,(e.required||e.classList.contains("js-required"))&&(f=!0,e.checked?v.push(!0):v.push(!1))}),E(v)?!0:(!!(t.ignoreError&&t.ignoreError===!0)||(m==="inline"?C(h,u,3e3):m==="modal"&&(F(h,3e3),H(u,s))),o.message="You need to choose a value.",o.data=h,o)},er=et;var en=function(e,t,r){var n={message:"",type:"error",data:null,code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return console.error("The input field you are trying to validate does not exist."),!1;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o;var i=t.error_type||t.errorType||"inline",s=t.customErrorMessages||[],u=(o=t.form)!==null&&o!==void 0?o:void 0,l=t.includeHTML!==!1,d=e.getAttribute("type"),f=e.value.trim(),c=e.required||e.classList.contains("js-required"),m;if(!l){var v,h;if(c&&f==="")m=(v=s[d])!==null&&v!==void 0?v:"This field is required.";else if(c&&d==="radio"){t.ignoreError=!0;var g=er(e,t);var y;g===!0?m="validated":m=(y=s[d])!==null&&y!==void 0?y:g.message}else if(c&&d==="checkbox"&&!ee(e,{form:u,customErrorMessages:s}))m=(h=s[d])!==null&&h!==void 0?h:"You need to check this box";else switch(d){case"email":var p;f!==""&&!X(f)&&(m=((p=s.email)===null||p===void 0?void 0:p.format)||"Invalid email format.");break;case"url":var b;f!==""&&!W(f)&&(m=((b=s.url)===null||b===void 0?void 0:b.format)||"Invalid URL format.");break;case"zipcode":var E;f!==""&&!Q(f)&&(m=((E=s.zipcode)===null||E===void 0?void 0:E.format)||"Invalid ZIP code format.");break;case"date":var x;f!==""&&!J(f)&&(m=((x=s.date)===null||x===void 0?void 0:x.format)||"Invalid date format.");break;case"tel":var k,M;f!==""&&!_(f)&&(m=((k=s.tel)===null||k===void 0?void 0:k.format)||((M=s.phone)===null||M===void 0?void 0:M.format)||"Invalid phone number.");break;case"phone":var A,L;f!==""&&!_(f)&&(m=((A=s.tel)===null||A===void 0?void 0:A.format)||((L=s.phone)===null||L===void 0?void 0:L.format)||"Invalid date format.");break;default:break}return m?(n.message=m,n.data=e,w(m),n):!0}if(!u)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n;var I,S;if(c&&f==="")m=(I=s[d])!==null&&I!==void 0?I:"This field is required.";else if(c&&d==="radio"){t.ignoreError=!0;var j=er(e,t);var q;j===!0?m="validated":m=(q=s[d])!==null&&q!==void 0?q:j.message}else if(c&&d==="checkbox"&&!ee(e,{form:u,customErrorMessages:s}))m=(S=s[d])!==null&&S!==void 0?S:"You need to check this box";else switch(d){case"email":var R;f!==""&&!X(f)&&(m=((R=s.email)===null||R===void 0?void 0:R.format)||"Invalid email format.");break;case"url":var O;f!==""&&!W(f)&&(m=((O=s.url)===null||O===void 0?void 0:O.format)||"Invalid URL format.");break;case"zipcode":var P;f!==""&&!Q(f)&&(m=((P=s.zipcode)===null||P===void 0?void 0:P.format)||"Invalid ZIP code format.");break;case"date":var B;f!==""&&!J(f)&&(m=((B=s.date)===null||B===void 0?void 0:B.format)||"Invalid date format.");break;case"tel":var U,N;f!==""&&!_(f)&&(m=((U=s.tel)===null||U===void 0?void 0:U.format)||((N=s.phone)===null||N===void 0?void 0:N.format)||"Invalid phone number.");break;case"phone":var $,D;f!==""&&!_(f)&&(m=(($=s.tel)===null||$===void 0?void 0:$.format)||((D=s.phone)===null||D===void 0?void 0:D.format)||"Invalid date format.");break;default:break}return m?(n.message=m,n.data=e,i==="inline"?C(e,m):(F(e),H(m,e)),w(m),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0)},eo=en;var ei=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{customErrorMessages:[],form:e};var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return n.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",r.push(n),r;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),w(n.message),r;var o=[],i=e.querySelectorAll("input");return i.length>0?i.forEach(function(n){t.form=t.form||e;var i=eo(n,t);if(i===!0)o.push(!0);else{var a={message:"",code:400,data:null};o.push(!1);var s=i.message;a.message=s,a.data=n,r.push(a)}}):o.push(!0),E(o)?!0:r},ea=ei;var es=function(e,t,r){var n={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return console.error("The select element to validate is not found."),!1;if(T(t)!=="object")return w("options are not provided"),!1;var o=t.error_type||t.errorType||"inline",i=t.customErrorMessages||[],s=t.form||void 0,u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=e.value.trim(),f=(i===null||i===void 0?void 0:i.select)||"You have to select an option.";return u?s?l&&!d?(w(f),n.message=f,n.data=e,o?C(e,f,3e3):(F(e,3e3),H(f,s)),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0):(n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n):l&&!d?(w(f),n.message=f,n.data=e,n):!0},eu=es;var el=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),!1;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),w(n.message),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=[],i=e.querySelectorAll("select");return i.length>0?i.forEach(function(n){var i,a;t.customErrorMessages=(i=t.customErrorMessages)!==null&&i!==void 0?i:[],t.form=(a=t.form)!==null&&a!==void 0?a:e;var s=eu(n,t);if(s===!0)o.push(!0);else{var u={message:"",code:400};o.push(!1);var l=s;u.message=l,u.data=n,r.push(u)}}):o.push(!0),E(o)?!0:r},ed=el;var ef=function(e,t,r){var n={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=t.error_type||t.errorType||"inline",i=t.customErrorMessages||[],s=t.form||void 0,u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=e.value.trim(),f=(i===null||i===void 0?void 0:i.textarea)||"Textarea cannot be left empty.";return u?s?l&&!d?(w(f),n.message=f,n.data=e,o==="inline"?C(e,f,3e3):(F(e,3e3),H(f,s)),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0):(n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n):l&&!d?(w(f),n.message=f,n.data=e,n):!0},ec=ef;var em=function(e,t,r){var n=[],o={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return o.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",n.push(o),n;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return o.message="The form you are trying to validate does not exist.",n.push(o),w(o.message),n;if(T(t)!=="object")return w("options are not provided"),o.message="options are not provided",o;var i=[],s=e.querySelectorAll("textarea");return s.length>0?s.forEach(function(r,o){var a={message:"",code:400};var s,u,l;t.customErrorMessages=(s=t.customErrorMessages)!==null&&s!==void 0?s:[],t.errorType=(u=t.errorType)!==null&&u!==void 0?u:"inline",t.form=(l=t.form)!==null&&l!==void 0?l:e;var d=ec(r,t);if(d===!0)i.push(!0);else{var f={message:"",code:400};i.push(!1);var c=d;f.message=c,f.data=r,n.push(f)}}):i.push(!0),E(i)?!0:n},ev=em;var eh=function(e,t,r){var n={message:"",data:null,code:400},o={};if(!e)return w("Form element not found."),n.message="Form element not found.",n;var i=[],a=ea(e,t),s=ev(e,t),u=ed(e,t);if(a===!0)i.push(!0);else{var l={code:400,message:""},d=a;l.message="Inputs Validation Failed",l.data=d,o.inputs=l,i.push(!1)}if(s===!0)i.push(!0);else{i.push(!1);var f={code:400,message:""},c=s;f.message="Textarea Validation Failed",f.data=c,o.textareas=f}if(u===!0)i.push(!0);else{i.push(!1);var m={code:400,message:""},v=u;m.message="Selects Validation Failed",m.data=v,o.selects=m}return E(i)?!0:{message:"Form Validation Error",data:o}},eg=eh;var ey=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return n.message="The form you are trying to validate does not exist. 5555 0000",n.data=e,r.push(n),w(n.message),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=[],i=e.querySelectorAll('input[type="checkbox"]');return i.length>0?i.forEach(function(n){var i,a;t.customErrorMessages=(i=t.customErrorMessages)!==null&&i!==void 0?i:[],t.form=(a=t.form)!==null&&a!==void 0?a:e;var s=ee(n,t);if(s===!0)o.push(!0);else{o.push(!1);var u={message:"",code:400};o.push(!1);var l=s;u.message=l,u.data=n,r.push(u)}}):o.push(!0),E(o)?!0:r},ep=ey;var eb=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),n.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",r.push(n),r;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=e.querySelectorAll('input[type="radio"]'),i=[];return o.forEach(function(e){var n={message:"",code:400},o=er(e,t);if(o===!0)i.push(!0);else{i.push(!1);var a=o.message;n.message=a,n.data=e,r.push(n)}}),E(i)?!0:r},ew=eb;var eE=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:20,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"";var i=/[A-Z]/,a=/[a-z]/,s=/[0-9]/;return e.lengthn?"Make sure the length of your password ranges from ".concat(r," - ").concat(n," characters"):i.test(e)?a.test(e)?s.test(e)?t&&!(typeof o=="string"?new RegExp(o):o).test(e)?"Your password needs to have one symbol e.g (!@#$%^&*())":!0:"Your password needs to have at least one number (0-9)":"Your password needs to have at least one lowercase (a-z)":"Your password needs to have at least 1 uppercase (A-Z)"},eT=eE;var ex=g(p()),ek=function(){var e=t(function(e){var t;return s(this,function(r){switch(r.label){case 0:return[4,ex.genSalt(10)];case 1:t=r.sent();return[4,ex.hash(e,t)];case 2:return[2,r.sent()]}})});return function t(t){return e.apply(this,arguments)}}(),eM=ek;var eA=function(){var e=t(function(){var e,t,r,n,o,i,a,u,l,d;var f=arguments;return s(this,function(s){switch(s.label){case 0:e=f.length>0&&f[0]!==void 0?f[0]:Math.floor(Math.random()*11)+8,t=f.length>1&&f[1]!==void 0?f[1]:!1;r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="abcdefghijklmnopqrstuvwxyz",o="0123456789",i="!@#$%^&*()",a="";(e<8||e>18)&&w("Password length must be between 8 and 18 characters.","error_1"),a+=r[Math.floor(Math.random()*r.length)],a+=i[Math.floor(Math.random()*i.length)],a+=o[Math.floor(Math.random()*o.length)];u=3;for(;u2&&i[2]!==void 0?i[2]:!1;a.label=1;case 1:a.trys.push([1,5,,6]);if(!r)return[3,3];return[4,eI.compare(e,t)];case 2:n=a.sent();return[3,4];case 3:n=e===t;a.label=4;case 4:return[2,n];case 5:o=a.sent();return[2,(console.error("Error comparing passwords: ",o),!1)];case 6:return[2]}})});return function t(t,r){return e.apply(this,arguments)}}(),eF=eS;var ej=function(e){return typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":(typeof e==="undefined"?"undefined":a(e))>"u"?"undefined":e===null?"null":i(e,HTMLElement)?"HTML Element":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Array)?"array":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Object)?"object":typeof e=="function"?"function":"null"},eC=ej;var eq=function(){return(typeof window==="undefined"?"undefined":a(window))>"u"?(console.error("You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work."),!1):!!navigator.onLine},eH=eq;var eR=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var n=null,o={message:"error",type:"error",code:400};if(eC(t)==="HTML Element")n=t;else if(typeof t=="string")n=document.getElementById(t);else if(t===null&&r){var a=typeof r=="string"?document.getElementById(r):r;(i(a,HTMLFormElement)||i(a,HTMLDivElement))&&(n=a.querySelector('button[type="submit"], input[type="submit"], #jsSubmit, input[type="search"], button'))}else return o.message="The button element specified is not found.",w(o.message),o;return n?n?(n.tagName.toLowerCase()==="input"?n.value=e:n.innerHTML=e,!0):(o.message="The button element specified is not found.",w(o.message),o):(o.message="The button element specified is not found.",w(o.message),o)},eO=eR;var eP=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;e||(e=k()),(typeof window==="undefined"?"undefined":a(window))<"u"?setTimeout(function(){window.location.href=e},t*1e3):console.log("Redirecting to: ".concat(e||"current page"," (Delayed: ").concat(t," seconds)"))},eB=eP;var eU=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work."),!1;var t=null;if(typeof e=="string"){if(t=document.getElementById(e),!t)return console.error('Form with ID "'.concat(e,'" not found.')),!1}else if(i(e,HTMLFormElement)||i(e,HTMLDivElement))t=e;else if(e===null)t=document.body;else return console.error("Invalid form parameter."),!1;return t.querySelectorAll("input, textarea, select").forEach(function(e){i(e,HTMLInputElement)?e.type==="radio"||e.type==="checkbox"?e.checked=!1:e.value="":i(e,HTMLTextAreaElement)?e.value="":i(e,HTMLSelectElement)&&(e.selectedIndex=0)}),!0},eN=eU;var e$=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var n=function e(e,n){t===null&&(t="show"),r===null&&(r="hide"),e==="password"&&t!==null?(n.innerHTML="",typeof t=="string"?n.innerHTML=t:T(t)==="HTML Element"?n.appendChild(t):n.innerHTML=t):e==="text"&&r!==null&&(n.innerHTML="",typeof r=="string"?n.innerHTML=r:T(r)==="HTML Element"?n.appendChild(r):n.innerHTML=t)};var o=document.querySelectorAll(".nfsfu234_fv_togglePassword")||document.querySelectorAll(".js-togglePassword")||void 0;if(!o)return w("No Toggle Password Button was found. Check your HTML Code","error_1"),!1;o.forEach(function(t){var r=e.type,o=e.nextElementSibling;n(r,o),t.addEventListener("click",function(){e.type=e.type==="password"?"text":"password";var t=e.type;o&&n(t,o)})})},eD=e$;var eG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var n=typeof t=="string"?document.getElementById(t):t;if(!n){console.error("Form element not found."),w("Form Element not found");return}var o=n.querySelectorAll('input[type="password"]'),i=e.show||null,a=e.hide||null;r?o.forEach(function(e){eD(e,i,a)}):o.length>0&&eD(o[0],i,a)},e_=eG;var eV=function(){function e(t,n){r(this,e);this.customErrorMessages={};if(console.log("NFSFU234FormValidation is loaded...."),(typeof window==="undefined"?"undefined":a(window))>"u")this.form=void 0;else{var o;t&&t.form&&(typeof t.form=="string"&&t.form!==""?o=document.getElementById(t.form):i(t.form,HTMLElement)&&(o=t.form)),o||(o=document.getElementById("jsForm")),o||(o=document.querySelector("form")),this.form=o}this.form&&i(this.form,HTMLElement)&&(this.form.hasAttribute("novalidate")||this.form.setAttribute("novalidate",""),this.form.addEventListener("submit",function(e){e.preventDefault()})),this.AJAXResult=null}o(e,[{key:"populateOptionsVariables",value:function e(e,t){var r=!1,n=null;if((typeof e==="undefined"?"undefined":a(e))=="object"&&e!==null)r=e.isAjax===!0||!1,n=e.ajaxOptions||null;else if(t){var o;r=((o=t.getAttribute("isAjax"))===null||o===void 0?void 0:o.trim())==="true"||!1;var i=t.getAttribute("action")||"",s=(t.getAttribute("method")||"GET").toUpperCase(),u={},l=/^nfsfu234_fv_reqheader_(.+)$/i;for(var d=0;d0?u:void 0,RequestBody:void 0}}return{isAjax:r,ajaxOptions:n}}},{key:"submit",value:function e(e,t){var r=this;this.form=this.form||void 0,this.customErrorMessages=this.customErrorMessages||{};var n=this.form,o=this.customErrorMessages,s=!1,u=null;var l;if(typeof e=="string"?(n=document.getElementById(e),o={form:n,customErrorMessages:[]}):i(e,HTMLFormElement)||i(e,HTMLDivElement)?(n=e,o={form:n,customErrorMessages:[]}):e&&(typeof e==="undefined"?"undefined":a(e))=="object"&&"form"in e&&(typeof e.form=="string"?n=document.getElementById(e.form):(i(e.form,HTMLFormElement)||HTMLDivElement)&&(n=e.form),o={form:n,customErrorMessages:(l=e.customErrorMessages)!==null&&l!==void 0?l:[]}),!n)return w("Form element not found."),!1;n.getAttribute("novalidate")!==null||n.setAttribute("novalidate",""),n.addEventListener("submit",function(e){e.preventDefault()});var d=this.populateOptionsVariables(e,n),f=d.isAjax,c=d.ajaxOptions;s=f,u=c;var m={message:"",type:""},v=eg(n,o);if(v===!0)m.message="success",m.type="success",m.data=null;else if((typeof v==="undefined"?"undefined":a(v))=="object"&&v!==null&&"message"in v){var h=v.message;m.message=typeof h=="string"||typeof h=="number"||typeof h=="boolean"?h:"Error",m.type="error",m.data=v}else m.message="Error",m.type="error";return m.message==="success"&&s&&u!==null?(u.RequestBody=B(n),I(u).then(function(e){var t=e.code||e.status;if(t>=300&&t<=500){var o={type:"modal",message:e.message,duration:3e3,element:n,success:!1};return m.message=e.message,m.type="error",m.code=t,m.data=e.data,r.displayError(o),console.error("THIS IS ERR_ ",e.message),m}else return console.log("Success"),e}).catch(function(e){return console.error("LOLK ",e),m})):typeof t=="function"?(t(m),!0):new Promise(function(e){e(m)})}},{key:"validate",value:function e(e,t){var r,n={};var o;if(typeof e=="string"?(r=document.getElementById(e),n={form:r,customErrorMessages:[]}):i(e,HTMLFormElement)||i(e,HTMLDivElement)?(r=e,n={form:r,customErrorMessages:[]}):e&&(typeof e==="undefined"?"undefined":a(e))=="object"&&"form"in e?(typeof e.form=="string"?r=document.getElementById(e.form):(i(e.form,HTMLFormElement)||i(e.form,HTMLDivElement))&&(r=e.form),n={form:r,customErrorMessages:(o=e.customErrorMessages)!==null&&o!==void 0?o:[]}):(r=this.form,n={form:r,customErrorMessages:[]}),!r)return w("Form element not found."),!1;r.getAttribute("novalidate")!==null||r.setAttribute("novalidate",""),r.addEventListener("submit",function(e){e.preventDefault()});var s={message:"",type:""},u=eg(r,n);if(u===!0)s.message="success",s.type="success",s.data=null;else if((typeof u==="undefined"?"undefined":a(u))=="object"&&u!==null&&"message"in u){var l=u.message;typeof l=="string"||typeof l=="number"||typeof l=="boolean"?s.message=l:s.message="Error",s.type="error",s.data=u}else s.message="Error",s.type="error";return typeof t=="function"?(t(s),!0):new Promise(function(e){e(s)})}},{key:"ajax",value:function e(e){return this.AJAXResult=I(e)}},{key:"getAJAXResponse",value:function e(){return this.AJAXResult?this.AJAXResult:!1}},{key:"getFormDetails",value:function e(e){return e||(e=this.form),B(e)}},{key:"loading",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return r!==null&&(r=typeof r=="string"?document.getElementById(r):r,r=(typeof r==="undefined"?"undefined":a(r))>"u"?this.form:r),eO(e,t,r)}},{key:"displayError",value:function e(e){O(e)}},{key:"isEmail",value:function e(e){return X(e)}},{key:"isURL",value:function e(e){return W(e)}},{key:"isNumber",value:function e(e){return eC(e)==="number"}},{key:"isZipCode",value:function e(e){return Q(e)}},{key:"isZip",value:function e(e){return Q(e)}},{key:"countString",value:function e(e){return N(e)}},{key:"generatePassword",value:function e(e,r){return t(function(){return s(this,function(t){switch(t.label){case 0:return[4,eL(e,r)];case 1:return[2,t.sent()]}})})()}},{key:"generateRandomPassword",value:function e(e,r){return t(function(){return s(this,function(t){switch(t.label){case 0:return[4,eL(e,r)];case 1:return[2,t.sent()]}})})()}},{key:"passwordStrength",value:function e(){}},{key:"getPasswordStrength",value:function e(){}},{key:"checkPassword",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:20,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"";return eT(e,n,t,r,o)}},{key:"verifyPassword",value:function e(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t(function(){var t;return s(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);return[4,eF(e,r,n)];case 1:return[2,o.sent()];case 2:t=o.sent();return[2,(console.error("Error verifying password: ",t),!1)];case 3:return[2]}})})()}},{key:"passwordMatch",value:function e(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t(function(){var t;return s(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);return[4,eF(e,r,n)];case 1:return[2,o.sent()];case 2:t=o.sent();return[2,(console.error("Error verifying password: ",t),!1)];case 3:return[2]}})})()}},{key:"hashPassword",value:function e(e){return t(function(){var t;return s(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,eM(e)];case 1:return[2,r.sent()];case 2:t=r.sent();return[2,(console.error("Error hashing password: ",t),!1)];case 3:return[2]}})})()}},{key:"togglePasswordVisibility",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return eD(e,t,r)}},{key:"togglePasswordVisibilityAll",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return e_(e,t,r)}},{key:"validateInput",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;var n={type:"error",code:400};if(typeof e=="string"&&(e=document.getElementById(e)),e){var o;t.form=(o=t.form)!==null&&o!==void 0?o:this.form;var i=eo(e,t,r);if(i===!0)return!0;n=i}else{var a=b;n.message="The Input Feild you are trying to validate is undefined.",w("The Input Feild you are trying to validate is undefined.")}if(eC(r)==="function"){var s=r(n)}return new Promise(function(e,t){e(n)})}},{key:"validateAllInput",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ea(e,t)}},{key:"validateRadio",value:function e(e,t){return er(e,t)}},{key:"validateAllRadio",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ew(e,t)}},{key:"validateCheckbox",value:function e(e,t){return ee(e,t)}},{key:"validateAllCheckbox",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ep(e,t)}},{key:"validateSelect",value:function e(e,t,r){var n;return t.form=(n=t.form)!==null&&n!==void 0?n:this.form,eu(e,t,r)}},{key:"validateAllSelect",value:function e(e,t){return ed(e,t)}},{key:"validateTextarea",value:function e(e,t){return ec(e,t)}},{key:"validateAllTextarea",value:function e(e,t){return ev(e,t)}},{key:"restrictInputWithCounter",value:function e(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D(e,t,r)}},{key:"containsOnlyIntegers",value:function e(e){return _(e)}},{key:"getPageURL",value:function e(){return k()}},{key:"redirect",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;e||(e=this.getPageURL()),eB(e,t)}},{key:"checkVariableType",value:function e(e){return eC(e)}},{key:"isOnline",value:function e(){return eH()}},{key:"reset",value:function e(e){var t;return e?t=e:t=this.form,eN(t)}}]);return e}();(typeof window==="undefined"?"undefined":a(window))<"u"&&(window.NFSFU234FormValidation=eV);var eY=eV})();/*! Bundled license information: +"use strict";function e(e,t,r,n,o,i,a){try{var s=e[i](a);var u=s.value}catch(e){r(e);return}if(s.done){t(u)}else{Promise.resolve(u).then(n,o)}}function t(t){return function(){var r=this,n=arguments;return new Promise(function(o,i){var a=t.apply(r,n);function s(t){e(a,o,i,s,u,"next",t)}function u(t){e(a,o,i,s,u,"throw",t)}s(undefined)})}}function r(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function n(e,t){for(var r=0;r0&&o[o.length-1])&&(i[0]===6||i[0]===2)){a=0;continue}if(i[0]===3&&(!o||i[1]>o[0]&&i[1]"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;var o=t.form||void 0,i=t.customErrorMessages||null,s=t.errorType||"inline",u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=i&&i.checkbox&&i.checkbox!==""?i.checkbox:"You need to check this box";if(e.getAttribute("type")!=="checkbox")return!1;if(!u)return l&&!e.checked?(w(d),n.message=d,n.data=e,n):!0;if(!o)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist. 5765846846"),n;var f=[];return l&&!e.checked?(w(d),n.message=d,n.data=e,s==="inline"?C(e,d,3e3):s==="modal"&&(F(e,3e3),H(d,o)),n):!0};var n=Object.create;var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var m=function(e){return(typeof require==="undefined"?"undefined":a(require))<"u"?require:(typeof Proxy==="undefined"?"undefined":a(Proxy))<"u"?new Proxy(e,{get:function(e,t){return((typeof require==="undefined"?"undefined":a(require))<"u"?require:e)[t]}}):e}(function(e){if((typeof require==="undefined"?"undefined":a(require))<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=function(e,t){return function(){return t||e((t={exports:{}}).exports,t),t.exports}};var h=function(e,t,r,n){var o=true,i=false,s=undefined;if(t&&(typeof t==="undefined"?"undefined":a(t))=="object"||typeof t=="function")try{var f=function(){var o=v.value;!c.call(e,o)&&o!==r&&u(e,o,{get:function(){return t[o]},enumerable:!(n=l(t,o))||n.enumerable})};for(var m=d(t)[Symbol.iterator](),v;!(o=(v=m.next()).done);o=true)f()}catch(e){i=true;s=e}finally{try{if(!o&&m.return!=null){m.return()}}finally{if(i){throw s}}}return e};var g=function(e,t,r){return r=e!=null?n(f(e)):{},h(t||!e||!e.__esModule?u(r,"default",{value:e,enumerable:!0}):r,e)};var y=v(function(e,t){"use strict";(function(e,r){typeof define=="function"&&define.amd?define([],r):typeof m=="function"&&(typeof t==="undefined"?"undefined":a(t))=="object"&&t&&t.exports?t.exports=r():(e.dcodeIO=e.dcodeIO||{}).bcrypt=r()})(e,function(){"use strict";var e={},r=null;function n(e){if((typeof t==="undefined"?"undefined":a(t))<"u"&&t&&t.exports)try{return m("crypto").randomBytes(e)}catch(e){}try{var n;return(self.crypto||self.msCrypto).getRandomValues(n=new Uint32Array(e)),Array.prototype.slice.call(n)}catch(e){}if(!r)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return r(e)}var o=!1;try{n(1),o=!0}catch(e){}r=null,e.setRandomFallback=function(e){r=e},e.genSaltSync=function(e,t){if(e=e||y,typeof e!="number")throw Error("Illegal arguments: "+(typeof e==="undefined"?"undefined":a(e))+", "+(typeof t==="undefined"?"undefined":a(t)));e<4?e=4:e>31&&(e=31);var r=[];return r.push("$2a$"),e<10&&r.push("0"),r.push(e.toString()),r.push("$"),r.push(c(n(g),g)),r.join("")},e.genSalt=function(t,r,n){if(typeof r=="function"&&(n=r,r=void 0),typeof t=="function"&&(n=t,t=void 0),(typeof t==="undefined"?"undefined":a(t))>"u")t=y;else if(typeof t!="number")throw Error("illegal arguments: "+(typeof t==="undefined"?"undefined":a(t)));function o(r){s(function(){try{r(null,e.genSaltSync(t))}catch(e){r(e)}})}if(n){if(typeof n!="function")throw Error("Illegal callback: "+(typeof n==="undefined"?"undefined":a(n)));o(n)}else return new Promise(function(e,t){o(function(r,n){if(r){t(r);return}e(n)})})},e.hashSync=function(t,r){if((typeof r==="undefined"?"undefined":a(r))>"u"&&(r=y),typeof r=="number"&&(r=e.genSaltSync(r)),typeof t!="string"||typeof r!="string")throw Error("Illegal arguments: "+(typeof t==="undefined"?"undefined":a(t))+", "+(typeof r==="undefined"?"undefined":a(r)));return I(t,r)},e.hash=function(t,r,n,o){function i(n){typeof t=="string"&&typeof r=="number"?e.genSalt(r,function(e,r){I(t,r,n,o)}):typeof t=="string"&&typeof r=="string"?I(t,r,n,o):s(n.bind(this,Error("Illegal arguments: "+(typeof t==="undefined"?"undefined":a(t))+", "+(typeof r==="undefined"?"undefined":a(r)))))}if(n){if(typeof n!="function")throw Error("Illegal callback: "+(typeof n==="undefined"?"undefined":a(n)));i(n)}else return new Promise(function(e,t){i(function(r,n){if(r){t(r);return}e(n)})})};function i(e,t){for(var r=0,n=0,o=0,i=e.length;o=e.length?null:e.charCodeAt(r++)},function(e){t.push(e)}),t}var l="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),d=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],f=String.fromCharCode;function c(e,t){var r=0,n=[],o,i;if(t<=0||t>e.length)throw Error("Illegal len: "+t);for(;r>2&63]),o=(o&3)<<4,r>=t){n.push(l[o&63]);break}if(i=e[r++]&255,o|=i>>4&15,n.push(l[o&63]),o=(i&15)<<2,r>=t){n.push(l[o&63]);break}i=e[r++]&255,o|=i>>6&3,n.push(l[o&63]),n.push(l[i&63])}return n.join("")}function v(e,t){var r=0,n=e.length,o=0,i=[],a,s,u,l,c,m;if(t<=0)throw Error("Illegal len: "+t);for(;r>>0,c|=(s&48)>>4,i.push(f(c)),++o>=t||r>=n)||(m=e.charCodeAt(r++),u=m>>0,c|=(u&60)>>2,i.push(f(c)),++o>=t||r>=n)));)m=e.charCodeAt(r++),l=m>>0,c|=l,i.push(f(c)),++o;var v=[];for(r=0;r>6&31|192),t(r&63|128)):r<65536?(t(r>>12&15|224),t(r>>6&63|128),t(r&63|128)):(t(r>>18&7|240),t(r>>12&63|128),t(r>>6&63|128),t(r&63|128)),r=null},e.decodeUTF8=function(e,t){for(var r,n,o,i,a=function e(e){e=e.slice(0,e.indexOf(null));var t=Error(e.toString());throw t.name="TruncatedError",t.bytes=e,t};(r=e())!==null;)if(!(r&128))t(r);else if((r&224)===192)(n=e())===null&&a([r,n]),t((r&31)<<6|n&63);else if((r&240)===224)((n=e())===null||(o=e())===null)&&a([r,n,o]),t((r&15)<<12|(n&63)<<6|o&63);else if((r&248)===240)((n=e())===null||(o=e())===null||(i=e())===null)&&a([r,n,o,i]),t((r&7)<<18|(n&63)<<12|(o&63)<<6|i&63);else throw RangeError("Illegal starting byte: "+r)},e.UTF16toUTF8=function(e,t){for(var r,n=null;(r=n!==null?n:e())!==null;){if(r>=55296&&r<=57343&&(n=e())!==null&&n>=56320&&n<=57343){t((r-55296)*1024+n-56320+65536),n=null;continue}t(r)}n!==null&&t(n)},e.UTF8toUTF16=function(e,t){var r=null;for(typeof e=="number"&&(r=e,e=function e(){return null});r!==null||(r=e())!==null;)r<=65535?t(r):(r-=65536,t((r>>10)+55296),t(r%1024+56320)),r=null},e.encodeUTF16toUTF8=function(t,r){e.UTF16toUTF8(t,function(t){e.encodeUTF8(t,r)})},e.decodeUTF8toUTF16=function(t,r){e.decodeUTF8(t,function(t){e.UTF8toUTF16(t,r)})},e.calculateCodePoint=function(e){return e<128?1:e<2048?2:e<65536?3:4},e.calculateUTF8=function(t){for(var r,n=0;(r=t())!==null;)n+=e.calculateCodePoint(r);return n},e.calculateUTF16asUTF8=function(t){var r=0,n=0;return e.UTF16toUTF8(t,function(t){++r,n+=e.calculateCodePoint(t)}),[r,n]},e}();Date.now=Date.now||function(){return+new Date};var g=16,y=10,p=16,b=100,w=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],E=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],T=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892];function x(e,t,r,n){var o,i=e[t],a=e[t+1];return i^=r[0],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[1],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[2],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[3],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[4],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[5],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[6],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[7],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[8],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[9],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[10],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[11],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[12],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[13],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[14],o=n[i>>>24],o+=n[256|i>>16&255],o^=n[512|i>>8&255],o+=n[768|i&255],a^=o^r[15],o=n[a>>>24],o+=n[256|a>>16&255],o^=n[512|a>>8&255],o+=n[768|a&255],i^=o^r[16],e[t]=a^r[p+1],e[t+1]=i,e}function k(e,t){for(var r=0,n=0;r<4;++r)n=n<<8|e[t]&255,t=(t+1)%e.length;return{key:n,offp:t}}function M(e,t,r){for(var n=0,o=[0,0],i=t.length,a=r.length,s,u=0;u31)if(l=Error("Illegal number of rounds (4-31): "+r),n){s(n.bind(this,l));return}else throw l;if(t.length!==g)if(l=Error("Illegal salt length: "+t.length+" != "+g),n){s(n.bind(this,l));return}else throw l;r=1<>>0;var d,f,c=0,m;Int32Array?(d=new Int32Array(w),f=new Int32Array(E)):(d=w.slice(),f=E.slice()),A(t,e,d,f);function v(){if(o&&o(c/r),cb)););else{for(c=0;c<64;c++)for(m=0;m>1;m++)x(i,m<<1,d,f);var l=[];for(c=0;c>24&255)>>>0),l.push((i[c]>>16&255)>>>0),l.push((i[c]>>8&255)>>>0),l.push((i[c]&255)>>>0);if(n){n(null,l);return}else return l}n&&s(v)}if((typeof n==="undefined"?"undefined":a(n))<"u")v();else for(var h;;)if(a(h=v())<"u")return h||[]}function I(e,t,r,n){var o;if(typeof e!="string"||typeof t!="string")if(o=Error("Invalid string / salt: Not a string"),r){s(r.bind(this,o));return}else throw o;var i,l;if(t.charAt(0)!=="$"||t.charAt(1)!=="2")if(o=Error("Invalid salt version: "+t.substring(0,2)),r){s(r.bind(this,o));return}else throw o;if(t.charAt(2)==="$")i="\0",l=3;else{if(i=t.charAt(2),i!=="a"&&i!=="b"&&i!=="y"||t.charAt(3)!=="$")if(o=Error("Invalid salt revision: "+t.substring(2,4)),r){s(r.bind(this,o));return}else throw o;l=4}if(t.charAt(l+2)>"$")if(o=Error("Missing salt rounds"),r){s(r.bind(this,o));return}else throw o;var d=parseInt(t.substring(l,l+1),10)*10,f=parseInt(t.substring(l+1,l+2),10),m=d+f,h=t.substring(l+3,l+25);e+=i>="a"?"\0":"";var y=u(e),p=v(h,g);function b(e){var t=[];return t.push("$2"),i>="a"&&t.push(i),t.push("$"),m<10&&t.push("0"),t.push(m.toString()),t.push("$"),t.push(c(p,p.length)),t.push(c(e,T.length*4-1)),t.join("")}if((typeof r==="undefined"?"undefined":a(r))>"u")return b(L(y,p,m));L(y,p,m,function(e,t){e?r(e,null):r(null,b(t))},n)}return e.encodeBase64=c,e.decodeBase64=v,e})});var p=v(function(e,t){"use strict";t.exports=y()});var b={ERROR:"error",ERROR_1:"error_1",CONSOLE:"console",THROW:"throw",WARNING:"warning",INFO:"info"},w=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:b.CONSOLE;switch(t){case b.ERROR:console.error("Error:",e);break;case b.CONSOLE:console.error("Error:",e);break;case b.THROW:throw e;case b.WARNING:console.warn("Warning:",e);break;case b.INFO:console.log("Info:",e);break;default:throw console.error("Error:",e),e}};var E=function(e){return e.every(function(e){return e===!0})};var T=function(e){return typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":(typeof e==="undefined"?"undefined":a(e))>"u"?"undefined":e===null?"null":i(e,HTMLElement)?"HTML Element":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Array)?"array":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Object)?"object":typeof e=="function"?"function":null};var x=function(){return(typeof window==="undefined"?"undefined":a(window))>"u"?(w("This function only works in a broswer environment..."),!1):window.location.href},k=x;var M=function(){var e=t(function(e,t){var r,n,o,i,a,u;return s(this,function(s){switch(s.label){case 0:r={};s.label=1;case 1:s.trys.push([1,9,,10]);console.log("AJAX Loading....");return[4,fetch(e,t)];case 2:n=s.sent();if(!n.ok)return[3,4];console.log("AJAX Finished....");return[4,n.json()];case 3:return[2,s.sent()];case 4:if(n.status===404)throw r.code=(o=n.status)!==null&&o!==void 0?o:404,r.message="Resource Not Found",r.data={headers:n.headers,url:n.url,status:n.status,statusText:n.statusText,ok:n.ok},r;s.label=5;case 5:s.trys.push([5,7,,8]);return[4,n.json()];case 6:i=s.sent();if(T(i)==="object")r.code=n.status,r.message=i.message||n.statusText,r.data=i;else throw r.code=400,r.message="Response is not a valid JSON object 2.",r;return[2,r];case 7:a=s.sent();throw r.code=400,r.message="Response is not a valid JSON object. 1",r.data=null,r;case 8:return[3,10];case 9:u=s.sent();throw r.code=u.code||400,r.message=u.message||u.statusText||"An Error Occured",r.data=u.data||null,r;case 10:return[2]}})});return function t(t,r){return e.apply(this,arguments)}}(),A=function(e){var t={},r=e.RequestMethod||"GET",n=e.RequestHeader||{},o=e.RequestBodyIgnore||!1,i=e.RequestType||"json",a;if(["POST","PUT","DELETE","UPDATE"].includes(r)&&(a=e.RequestBody||"",a===""&&o!==!0))throw t.code=400,t.message='The body of this "'.concat(r,'" request you made is empty. If this was intentionional, then add the RequestBodyIgnore attribute and set it to true.'),t;return{method:r,headers:n,body:JSON.stringify(a)}},L=function(){var e=t(function(e){var t,r,n,o,i;return s(this,function(a){switch(a.label){case 0:t={};a.label=1;case 1:a.trys.push([1,3,,4]);r=e&&e.url?e.url:k(),n=A(e);return[4,M(r,n)];case 2:return[2,a.sent()];case 3:o=a.sent();throw t.code=o.code||400,t.message=o.message||"An Error Occured",t.data=(i=o.data)!==null&&i!==void 0?i:null,console.error("AJAX Failed: ",o.message),w(o.message,b.THROW),o;case 4:return[2]}})});return function t(t){return e.apply(this,arguments)}}(),I=L;var S=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3e3;e.focus(),e.classList.add("input-focus-error"),setTimeout(function(){e.classList.remove("input-focus-error")},t)},F=S;var j=function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3e3,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!e)return!1;F(e,r);var o=document.createElement("div");o.classList.add("js-inline-message"),o.innerHTML=t;var i=e.parentNode;if(!i)return!1;i.appendChild(o),n&&o.classList.add("text-success"),setTimeout(function(){i.removeChild(o)},r)},C=j;var q=function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:3e3,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1;var a;if(r!=""?a=document.getElementById(r):document.querySelectorAll("#js-errorMessageContainer").length>0?a=t.querySelector("#js-errorMessageContainer"):(a=document.createElement("div"),a.classList.add("js-errorMessageContainer"),a.setAttribute("id","js-errorMessageContainer"),t.appendChild(a)),!a)return!1;var s=document.createElement("div");s.classList.add("login-error-message-container","active");var u=document.createElement("div");u.classList.add("message","js-message"),u.innerHTML=e;var l=document.createElement("div");l.classList.add("icon","close","js-close"),l.innerHTML="",s.appendChild(u),s.appendChild(l),a.appendChild(s),o&&s.classList.add("success");var d=s.querySelector(".js-close");if(!d)return!1;d.addEventListener("click",function(){s&&s.parentNode&&s.parentNode.removeChild(s)}),setTimeout(function(){s&&s.parentNode&&s.parentNode.removeChild(s)},n),i&&console.error(e)},H=q;var R=function(e){var t=e.type,r=e.message,n=e.duration,o=e.element,a=e.success,s=a===void 0?!1:a;if(!i(o,HTMLElement))return console.error("The HTML Element you are trying to use is not found."),!1;if(o.style.position="relative",t==="inline")C(o,r,n,s);else if(t==="modal")H(r,o,"",n,s);else return console.error("The type of error display you specified is not supported."),!1;return!0},O=R;var P=function(e){var t={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),!1;if(!e)return t.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),t;var r=typeof e=="string"?document.getElementById(e):e;if(!r)return t.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),t;var n={},o=[];return r.querySelectorAll("input").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;if(e.type==="checkbox"&&(i=e.checked),e.type==="radio")if(e.checked)i=!0;else return;n[r]=i,o.push(!0)}),r.querySelectorAll("textarea").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;n[r]=i,o.push(!0)}),r.querySelectorAll("select").forEach(function(e,t){var r=e.getAttribute("data-attr-name")||e.getAttribute("name")||t,i=e.value;n[r]=i,o.push(!0)}),E(o)?n:!1},B=P;var U=function(e){return e.length},N=U;var $=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;var n={message:"",code:400};if(!e)return n.message="The input element you are trying to count and restrict is not found. Check your HTML code.",w(n.message),n;var o=t.maxLength&&parseInt(t.maxLength)&&t.maxLength>=1?t.maxLength:250,i=t.minLength&&parseInt(t.minLength)?t.minLength:0,a=!!(t.shouldButtonDisable&&t.shouldButtonDisable),s;if(t.form&&T(t.form)==="string"?document.getElementById(t.form):t.form&&T(t.form)==="HTML Element"?s=t.form:document.getElementById("nfsfu234_fv_form")?s=document.getElementById("nfsfu234_fv_form"):document.getElementById("jsForm")?s=document.getElementById("jsForm"):document.querySelector("form")?s=document.querySelector("form"):s=void 0,!s)return n.message="The form you are trying to validate does not exist.",w(n.message),n;e.addEventListener("input",function(){var t=N(e.value),u=!1,l;if(T(r)==="string"&&(l=document.getElementById(r)),l)l=l;else{var d=e.parentNode;if(d===null||d===void 0?void 0:d.querySelector(".js-counterContainer"))l=d.querySelector(".js-counterContainer");else{if(l=document.createElement("span"),l.classList.add("js-counterContainer"),!d)return!1;d.appendChild(l)}}return l?(t>o?(t=o,l.classList.remove("text-fail"),l.classList.add("text-success"),e.value=e.value.slice(0,o),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):t>=o?(e.value=e.value.slice(0,o),l.classList.remove("text-fail"),l.classList.add("text-success"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):t>=i&&i!==0?(l.classList.remove("text-fail"),l.classList.add("text-success"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1}),u=!0):(l.classList.add("text-fail"),a&&s&&s.querySelectorAll("button").forEach(function(e){e.disabled=!1})),l.innerHTML="".concat(t,"/").concat(o),u):(n.message="Counter Element Not Found",w(n.message),n)})},D=$;var G=function(e){return/^\d+$/.test(e)},_=G;var V={"dd/mm/yyyy":/^\d{1,2}\/\d{1,2}\/\d{4}$/,"yyyy-mm-dd":/^\d{4}-\d{2}-\d{2}$/,"mm/dd/yyyy":/^\d{1,2}\/\d{1,2}\/\d{4}$/,"mm.dd.yyyy":/^\d{1,2}\.\d{1,2}\.\d{4}$/,"yyyy/mm/dd":/^\d{4}\/\d{1,2}\/\d{1,2}$/,"yyyy.mm.dd":/^\d{4}\.\d{1,2}\.\d{1,2}$/,time:/^(0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$/,"24-hour":/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,month:/^(0?[1-9]|1[0-2])$/,day:/^(0?[1-9]|[1-2][0-9]|3[0-1])$/},Y=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"dd/mm/yyyy";var r=V[t.toLowerCase()];return r?r.test(e):(console.error("Invalid date format: ".concat(t)),!1)},J=Y;var Z=function(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)},X=Z;var z=function(e){return typeof e=="string"?/^(https?:\/\/)?(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(:\d{1,5})?(\/[^\s]*)?(\?.*)?$/.test(e):!1},W=z;var K=function(e){return typeof e=="number"&&(e=e.toString()),/^\d{5}(?:\d{1})?$/.test(e)},Q=K;var ee=e;var et=function(e,t,r){if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;var n;var o={message:"an error occured",type:"error",code:400},s=t.form||void 0,u=(n=(t.customErrorMessages||null).checkbox)!==null&&n!==void 0?n:"You need to choose a value.";if(!s)return o.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist. 5765846846"),o;var l=null;if((typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,HTMLInputElement))l=e.getAttribute("name");else if(typeof e=="string")l=e;else if(!e)return console.error("The radio element(s) to validate is(are) not found."),o.message="The radio element(s) to validate is(are) not found.",o;if(!l)return w("The radio element(s) to validate is(are) not found."),o.message="The radio element(s) to validate is(are) not found.",o;var d=document.querySelectorAll('input[type="radio"][name="'.concat(l,'"]')),f=!1,c=!1,m=t.errorType||"inline",v=[],h=null;return d.forEach(function(e){h=e,(e.required||e.classList.contains("js-required"))&&(f=!0,e.checked?v.push(!0):v.push(!1))}),E(v)?!0:(!!(t.ignoreError&&t.ignoreError===!0)||(m==="inline"?C(h,u,3e3):m==="modal"&&(F(h,3e3),H(u,s))),o.message="You need to choose a value.",o.data=h,o)},er=et;var en=function(e,t,r){var n={message:"",type:"error",data:null,code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return console.error("The input field you are trying to validate does not exist."),!1;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o;var i=t.error_type||t.errorType||"inline",s=t.customErrorMessages||[],u=(o=t.form)!==null&&o!==void 0?o:void 0,l=t.includeHTML!==!1,d=e.getAttribute("type"),f=e.value.trim(),c=e.required||e.classList.contains("js-required"),m;if(!l){var v,h;if(c&&f==="")m=(v=s[d])!==null&&v!==void 0?v:"This field is required.";else if(c&&d==="radio"){t.ignoreError=!0;var g=er(e,t);var y;g===!0?m="validated":m=(y=s[d])!==null&&y!==void 0?y:g.message}else if(c&&d==="checkbox"&&!ee(e,{form:u,customErrorMessages:s}))m=(h=s[d])!==null&&h!==void 0?h:"You need to check this box";else switch(d){case"email":var p;f!==""&&!X(f)&&(m=((p=s.email)===null||p===void 0?void 0:p.format)||"Invalid email format.");break;case"url":var b;f!==""&&!W(f)&&(m=((b=s.url)===null||b===void 0?void 0:b.format)||"Invalid URL format.");break;case"zipcode":var E;f!==""&&!Q(f)&&(m=((E=s.zipcode)===null||E===void 0?void 0:E.format)||"Invalid ZIP code format.");break;case"date":var x;f!==""&&!J(f)&&(m=((x=s.date)===null||x===void 0?void 0:x.format)||"Invalid date format.");break;case"tel":var k,M;f!==""&&!_(f)&&(m=((k=s.tel)===null||k===void 0?void 0:k.format)||((M=s.phone)===null||M===void 0?void 0:M.format)||"Invalid phone number.");break;case"phone":var A,L;f!==""&&!_(f)&&(m=((A=s.tel)===null||A===void 0?void 0:A.format)||((L=s.phone)===null||L===void 0?void 0:L.format)||"Invalid date format.");break;default:break}return m?(n.message=m,n.data=e,w(m),n):!0}if(!u)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n;var I,S;if(c&&f==="")m=(I=s[d])!==null&&I!==void 0?I:"This field is required.";else if(c&&d==="radio"){t.ignoreError=!0;var j=er(e,t);var q;j===!0?m="validated":m=(q=s[d])!==null&&q!==void 0?q:j.message}else if(c&&d==="checkbox"&&!ee(e,{form:u,customErrorMessages:s}))m=(S=s[d])!==null&&S!==void 0?S:"You need to check this box";else switch(d){case"email":var R;f!==""&&!X(f)&&(m=((R=s.email)===null||R===void 0?void 0:R.format)||"Invalid email format.");break;case"url":var O;f!==""&&!W(f)&&(m=((O=s.url)===null||O===void 0?void 0:O.format)||"Invalid URL format.");break;case"zipcode":var P;f!==""&&!Q(f)&&(m=((P=s.zipcode)===null||P===void 0?void 0:P.format)||"Invalid ZIP code format.");break;case"date":var B;f!==""&&!J(f)&&(m=((B=s.date)===null||B===void 0?void 0:B.format)||"Invalid date format.");break;case"tel":var U,N;f!==""&&!_(f)&&(m=((U=s.tel)===null||U===void 0?void 0:U.format)||((N=s.phone)===null||N===void 0?void 0:N.format)||"Invalid phone number.");break;case"phone":var $,D;f!==""&&!_(f)&&(m=(($=s.tel)===null||$===void 0?void 0:$.format)||((D=s.phone)===null||D===void 0?void 0:D.format)||"Invalid date format.");break;default:break}return m?(n.message=m,n.data=e,i==="inline"?C(e,m):(F(e),H(m,e)),w(m),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0)},eo=en;var ei=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{customErrorMessages:[],form:e};var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return n.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",r.push(n),r;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),w(n.message),r;var o=[],i=e.querySelectorAll("input");return i.length>0?i.forEach(function(n){t.form=t.form||e;var i=eo(n,t);if(i===!0)o.push(!0);else{var a={message:"",code:400,data:null};o.push(!1);var s=i.message;a.message=s,a.data=n,r.push(a)}}):o.push(!0),E(o)?!0:r},ea=ei;var es=function(e,t,r){var n={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return console.error("The select element to validate is not found."),!1;if(T(t)!=="object")return w("options are not provided"),!1;var o=t.error_type||t.errorType||"inline",i=t.customErrorMessages||[],s=t.form||void 0,u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=e.value.trim(),f=(i===null||i===void 0?void 0:i.select)||"You have to select an option.";return u?s?l&&!d?(w(f),n.message=f,n.data=e,o?C(e,f,3e3):(F(e,3e3),H(f,s)),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0):(n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n):l&&!d?(w(f),n.message=f,n.data=e,n):!0},eu=es;var el=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),!1;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),w(n.message),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=[],i=e.querySelectorAll("select");return i.length>0?i.forEach(function(n){var i,a;t.customErrorMessages=(i=t.customErrorMessages)!==null&&i!==void 0?i:[],t.form=(a=t.form)!==null&&a!==void 0?a:e;var s=eu(n,t);if(s===!0)o.push(!0);else{var u={message:"",code:400};o.push(!1);var l=s;u.message=l,u.data=n,r.push(u)}}):o.push(!0),E(o)?!0:r},ed=el;var ef=function(e,t,r){var n={message:"",type:"error",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=t.error_type||t.errorType||"inline",i=t.customErrorMessages||[],s=t.form||void 0,u=t.includeHTML!==!1,l=e.hasAttribute("required")||e.classList.contains("js-required"),d=e.value.trim(),f=(i===null||i===void 0?void 0:i.textarea)||"Textarea cannot be left empty.";return u?s?l&&!d?(w(f),n.message=f,n.data=e,o==="inline"?C(e,f,3e3):(F(e,3e3),H(f,s)),n):(n.code=200,n.data=null,n.message="success",n.type="success",!0):(n.message="The form you are trying to validate does not exist.",w("The form you are trying to validate does not exist."),n):l&&!d?(w(f),n.message=f,n.data=e,n):!0},ec=ef;var em=function(e,t,r){var n=[],o={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return o.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",n.push(o),n;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return o.message="The form you are trying to validate does not exist.",n.push(o),w(o.message),n;if(T(t)!=="object")return w("options are not provided"),o.message="options are not provided",o;var i=[],s=e.querySelectorAll("textarea");return s.length>0?s.forEach(function(r,o){var a={message:"",code:400};var s,u,l;t.customErrorMessages=(s=t.customErrorMessages)!==null&&s!==void 0?s:[],t.errorType=(u=t.errorType)!==null&&u!==void 0?u:"inline",t.form=(l=t.form)!==null&&l!==void 0?l:e;var d=ec(r,t);if(d===!0)i.push(!0);else{var f={message:"",code:400};i.push(!1);var c=d;f.message=c,f.data=r,n.push(f)}}):i.push(!0),E(i)?!0:n},ev=em;var eh=function(e,t,r){var n={message:"",data:null,code:400},o={};if(!e)return w("Form element not found."),n.message="Form element not found.",n;var i=[],a=ea(e,t),s=ev(e,t),u=ed(e,t);if(a===!0)i.push(!0);else{var l={code:400,message:""},d=a;l.message="Inputs Validation Failed",l.data=d,o.inputs=l,i.push(!1)}if(s===!0)i.push(!0);else{i.push(!1);var f={code:400,message:""},c=s;f.message="Textarea Validation Failed",f.data=c,o.textareas=f}if(u===!0)i.push(!0);else{i.push(!1);var m={code:400,message:""},v=u;m.message="Selects Validation Failed",m.data=v,o.selects=m}return E(i)?!0:{message:"Form Validation Error",data:o}},eg=eh;var ey=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc."),w("To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.","big"),!1;if(!e)return n.message="The form you are trying to validate does not exist. 5555 0000",n.data=e,r.push(n),w(n.message),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=[],i=e.querySelectorAll('input[type="checkbox"]');return i.length>0?i.forEach(function(n){var i,a;t.customErrorMessages=(i=t.customErrorMessages)!==null&&i!==void 0?i:[],t.form=(a=t.form)!==null&&a!==void 0?a:e;var s=ee(n,t);if(s===!0)o.push(!0);else{o.push(!1);var u={message:"",code:400};o.push(!1);var l=s;u.message=l,u.data=n,r.push(u)}}):o.push(!0),E(o)?!0:r},ep=ey;var eb=function(e,t){var r=[],n={message:"",code:400};if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("To access this function, it must be executed in a browser environment."),n.message="To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.",r.push(n),r;if(typeof e=="string"&&(e=document.getElementById(e)),!e)return n.message="The form you are trying to validate does not exist.",r.push(n),r;if(T(t)!=="object")return w("options are not provided"),n.message="options are not provided",n;var o=e.querySelectorAll('input[type="radio"]'),i=[];return o.forEach(function(e){var n={message:"",code:400},o=er(e,t);if(o===!0)i.push(!0);else{i.push(!1);var a=o.message;n.message=a,n.data=e,r.push(n)}}),E(i)?!0:r},ew=eb;var eE=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:20,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"";var i=/[A-Z]/,a=/[a-z]/,s=/[0-9]/;return e.lengthn?"Make sure the length of your password ranges from ".concat(r," - ").concat(n," characters"):i.test(e)?a.test(e)?s.test(e)?t&&!(typeof o=="string"?new RegExp(o):o).test(e)?"Your password needs to have one symbol e.g (!@#$%^&*())":!0:"Your password needs to have at least one number (0-9)":"Your password needs to have at least one lowercase (a-z)":"Your password needs to have at least 1 uppercase (A-Z)"},eT=eE;var ex=g(p()),ek=function(){var e=t(function(e){var t;return s(this,function(r){switch(r.label){case 0:return[4,ex.genSalt(10)];case 1:t=r.sent();return[4,ex.hash(e,t)];case 2:return[2,r.sent()]}})});return function t(t){return e.apply(this,arguments)}}(),eM=ek;var eA=function(){var e=t(function(){var e,t,r,n,o,i,a,u,l,d;var f=arguments;return s(this,function(s){switch(s.label){case 0:e=f.length>0&&f[0]!==void 0?f[0]:Math.floor(Math.random()*11)+8,t=f.length>1&&f[1]!==void 0?f[1]:!1;r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="abcdefghijklmnopqrstuvwxyz",o="0123456789",i="!@#$%^&*()",a="";(e<8||e>18)&&w("Password length must be between 8 and 18 characters.","error_1"),a+=r[Math.floor(Math.random()*r.length)],a+=i[Math.floor(Math.random()*i.length)],a+=o[Math.floor(Math.random()*o.length)];u=3;for(;u2&&i[2]!==void 0?i[2]:!1;a.label=1;case 1:a.trys.push([1,5,,6]);if(!r)return[3,3];return[4,eI.compare(e,t)];case 2:n=a.sent();return[3,4];case 3:n=e===t;a.label=4;case 4:return[2,n];case 5:o=a.sent();return[2,(console.error("Error comparing passwords: ",o),!1)];case 6:return[2]}})});return function t(t,r){return e.apply(this,arguments)}}(),eF=eS;var ej=function(e){return typeof e=="string"?"string":typeof e=="number"?"number":typeof e=="boolean"?"boolean":(typeof e==="undefined"?"undefined":a(e))>"u"?"undefined":e===null?"null":i(e,HTMLElement)?"HTML Element":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Array)?"array":(typeof e==="undefined"?"undefined":a(e))=="object"&&i(e,Object)?"object":typeof e=="function"?"function":"null"},eC=ej;var eq=function(){return(typeof window==="undefined"?"undefined":a(window))>"u"?(console.error("You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work."),!1):!!navigator.onLine},eH=eq;var eR=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var n=null,o={message:"error",type:"error",code:400};if(eC(t)==="HTML Element")n=t;else if(typeof t=="string")n=document.getElementById(t);else if(t===null&&r){var a=typeof r=="string"?document.getElementById(r):r;(i(a,HTMLFormElement)||i(a,HTMLDivElement))&&(n=a.querySelector('button[type="submit"], input[type="submit"], #jsSubmit, input[type="search"], button'))}else return o.message="The button element specified is not found.",w(o.message),o;return n?n?(n.tagName.toLowerCase()==="input"?n.value=e:n.innerHTML=e,!0):(o.message="The button element specified is not found.",w(o.message),o):(o.message="The button element specified is not found.",w(o.message),o)},eO=eR;var eP=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;e||(e=k()),(typeof window==="undefined"?"undefined":a(window))<"u"?setTimeout(function(){window.location.href=e},t*1e3):console.log("Redirecting to: ".concat(e||"current page"," (Delayed: ").concat(t," seconds)"))},eB=eP;var eU=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if((typeof window==="undefined"?"undefined":a(window))>"u")return console.error("You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work."),!1;var t=null;if(typeof e=="string"){if(t=document.getElementById(e),!t)return console.error('Form with ID "'.concat(e,'" not found.')),!1}else if(i(e,HTMLFormElement)||i(e,HTMLDivElement))t=e;else if(e===null)t=document.body;else return console.error("Invalid form parameter."),!1;return t.querySelectorAll("input, textarea, select").forEach(function(e){i(e,HTMLInputElement)?e.type==="radio"||e.type==="checkbox"?e.checked=!1:e.value="":i(e,HTMLTextAreaElement)?e.value="":i(e,HTMLSelectElement)&&(e.selectedIndex=0)}),!0},eN=eU;var e$=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;var n=function e(e,n){t===null&&(t="show"),r===null&&(r="hide"),e==="password"&&t!==null?(n.innerHTML="",typeof t=="string"?n.innerHTML=t:T(t)==="HTML Element"?n.appendChild(t):n.innerHTML=t):e==="text"&&r!==null&&(n.innerHTML="",typeof r=="string"?n.innerHTML=r:T(r)==="HTML Element"?n.appendChild(r):n.innerHTML=t)};var o=document.querySelectorAll(".nfsfu234_fv_togglePassword")||document.querySelectorAll(".js-togglePassword")||void 0;if(!o)return w("No Toggle Password Button was found. Check your HTML Code","error_1"),!1;o.forEach(function(t){var r=e.type,o=e.nextElementSibling;n(r,o),t.addEventListener("click",function(){e.type=e.type==="password"?"text":"password";var t=e.type;o&&n(t,o)})})},eD=e$;var eG=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var n=typeof t=="string"?document.getElementById(t):t;if(!n){console.error("Form element not found."),w("Form Element not found");return}var o=n.querySelectorAll('input[type="password"]'),i=e.show||null,a=e.hide||null;r?o.forEach(function(e){eD(e,i,a)}):o.length>0&&eD(o[0],i,a)},e_=eG;var eV=/*#__PURE__*/function(){function e(t,n){r(this,e);this.customErrorMessages={};if(console.log("NFSFU234FormValidation is loaded...."),(typeof window==="undefined"?"undefined":a(window))>"u")this.form=void 0;else{var o;t&&t.form&&(typeof t.form=="string"&&t.form!==""?o=document.getElementById(t.form):i(t.form,HTMLElement)&&(o=t.form)),o||(o=document.getElementById("jsForm")),o||(o=document.querySelector("form")),this.form=o}this.form&&i(this.form,HTMLElement)&&(this.form.hasAttribute("novalidate")||this.form.setAttribute("novalidate",""),this.form.addEventListener("submit",function(e){e.preventDefault()})),this.AJAXResult=null}o(e,[{key:"populateOptionsVariables",value:function e(e,t){var r=!1,n=null;if((typeof e==="undefined"?"undefined":a(e))=="object"&&e!==null)r=e.isAjax===!0||!1,n=e.ajaxOptions||null;else if(t){var o;r=((o=t.getAttribute("isAjax"))===null||o===void 0?void 0:o.trim())==="true"||!1;var i=t.getAttribute("action")||"",s=(t.getAttribute("method")||"GET").toUpperCase(),u={},l=/^nfsfu234_fv_reqheader_(.+)$/i;for(var d=0;d0?u:void 0,RequestBody:void 0}}return{isAjax:r,ajaxOptions:n}}},{key:"submit",value:function e(e,t){var r=this;this.form=this.form||void 0,this.customErrorMessages=this.customErrorMessages||{};var n=this.form,o=this.customErrorMessages,s=!1,u=null;var l;if(typeof e=="string"?(n=document.getElementById(e),o={form:n,customErrorMessages:[]}):i(e,HTMLFormElement)||i(e,HTMLDivElement)?(n=e,o={form:n,customErrorMessages:[]}):e&&(typeof e==="undefined"?"undefined":a(e))=="object"&&"form"in e&&(typeof e.form=="string"?n=document.getElementById(e.form):(i(e.form,HTMLFormElement)||HTMLDivElement)&&(n=e.form),o={form:n,customErrorMessages:(l=e.customErrorMessages)!==null&&l!==void 0?l:[]}),!n)return w("Form element not found."),!1;n.getAttribute("novalidate")!==null||n.setAttribute("novalidate",""),n.addEventListener("submit",function(e){e.preventDefault()});var d=this.populateOptionsVariables(e,n),f=d.isAjax,c=d.ajaxOptions;s=f,u=c;var m={message:"",type:""},v=eg(n,o);if(v===!0)m.message="success",m.type="success",m.data=null;else if((typeof v==="undefined"?"undefined":a(v))=="object"&&v!==null&&"message"in v){var h=v.message;m.message=typeof h=="string"||typeof h=="number"||typeof h=="boolean"?h:"Error",m.type="error",m.data=v}else m.message="Error",m.type="error";return m.message==="success"&&s&&u!==null?(u.RequestBody=B(n),I(u).then(function(e){var t=e.code||e.status;if(t>=300&&t<=500){var o={type:"modal",message:e.message,duration:3e3,element:n,success:!1};return m.message=e.message,m.type="error",m.code=t,m.data=e.data,r.displayError(o),console.error("THIS IS ERR_ ",e.message),m}else return console.log("Success"),e}).catch(function(e){return console.error("LOLK ",e),m})):typeof t=="function"?(t(m),!0):new Promise(function(e){e(m)})}},{key:"validate",value:function e(e,t){var r,n={};var o;if(typeof e=="string"?(r=document.getElementById(e),n={form:r,customErrorMessages:[]}):i(e,HTMLFormElement)||i(e,HTMLDivElement)?(r=e,n={form:r,customErrorMessages:[]}):e&&(typeof e==="undefined"?"undefined":a(e))=="object"&&"form"in e?(typeof e.form=="string"?r=document.getElementById(e.form):(i(e.form,HTMLFormElement)||i(e.form,HTMLDivElement))&&(r=e.form),n={form:r,customErrorMessages:(o=e.customErrorMessages)!==null&&o!==void 0?o:[]}):(r=this.form,n={form:r,customErrorMessages:[]}),!r)return w("Form element not found."),!1;r.getAttribute("novalidate")!==null||r.setAttribute("novalidate",""),r.addEventListener("submit",function(e){e.preventDefault()});var s={message:"",type:""},u=eg(r,n);if(u===!0)s.message="success",s.type="success",s.data=null;else if((typeof u==="undefined"?"undefined":a(u))=="object"&&u!==null&&"message"in u){var l=u.message;typeof l=="string"||typeof l=="number"||typeof l=="boolean"?s.message=l:s.message="Error",s.type="error",s.data=u}else s.message="Error",s.type="error";return typeof t=="function"?(t(s),!0):new Promise(function(e){e(s)})}},{key:"ajax",value:function e(e){return this.AJAXResult=I(e)}},{key:"getAJAXResponse",value:function e(){return this.AJAXResult?this.AJAXResult:!1}},{key:"getFormDetails",value:function e(e){return e||(e=this.form),B(e)}},{key:"loading",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return r!==null&&(r=typeof r=="string"?document.getElementById(r):r,r=(typeof r==="undefined"?"undefined":a(r))>"u"?this.form:r),eO(e,t,r)}},{key:"displayError",value:function e(e){O(e)}},{key:"isEmail",value:function e(e){return X(e)}},{key:"isURL",value:function e(e){return W(e)}},{key:"isNumber",value:function e(e){return eC(e)==="number"}},{key:"isZipCode",value:function e(e){return Q(e)}},{key:"isZip",value:function e(e){return Q(e)}},{key:"countString",value:function e(e){return N(e)}},{key:"generatePassword",value:function e(e,r){return t(function(){return s(this,function(t){switch(t.label){case 0:return[4,eL(e,r)];case 1:return[2,t.sent()]}})})()}},{key:"generateRandomPassword",value:function e(e,r){return t(function(){return s(this,function(t){switch(t.label){case 0:return[4,eL(e,r)];case 1:return[2,t.sent()]}})})()}},{key:"passwordStrength",value:function e(){}},{key:"getPasswordStrength",value:function e(){}},{key:"checkPassword",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:20,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"";return eT(e,n,t,r,o)}},{key:"verifyPassword",value:function e(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t(function(){var t;return s(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);return[4,eF(e,r,n)];case 1:return[2,o.sent()];case 2:t=o.sent();return[2,(console.error("Error verifying password: ",t),!1)];case 3:return[2]}})})()}},{key:"passwordMatch",value:function e(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t(function(){var t;return s(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);return[4,eF(e,r,n)];case 1:return[2,o.sent()];case 2:t=o.sent();return[2,(console.error("Error verifying password: ",t),!1)];case 3:return[2]}})})()}},{key:"hashPassword",value:function e(e){return t(function(){var t;return s(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,eM(e)];case 1:return[2,r.sent()];case 2:t=r.sent();return[2,(console.error("Error hashing password: ",t),!1)];case 3:return[2]}})})()}},{key:"togglePasswordVisibility",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return eD(e,t,r)}},{key:"togglePasswordVisibilityAll",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return e_(e,t,r)}},{key:"validateInput",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;var n={type:"error",code:400};if(typeof e=="string"&&(e=document.getElementById(e)),e){var o;t.form=(o=t.form)!==null&&o!==void 0?o:this.form;var i=eo(e,t,r);if(i===!0)return!0;n=i}else{var a=b;n.message="The Input Feild you are trying to validate is undefined.",w("The Input Feild you are trying to validate is undefined.")}if(eC(r)==="function"){var s=r(n)}return new Promise(function(e,t){e(n)})}},{key:"validateAllInput",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ea(e,t)}},{key:"validateRadio",value:function e(e,t){return er(e,t)}},{key:"validateAllRadio",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ew(e,t)}},{key:"validateCheckbox",value:function e(e,t){return ee(e,t)}},{key:"validateAllCheckbox",value:function e(e,t){return e=e!==null&&e!==void 0?e:this.form,ep(e,t)}},{key:"validateSelect",value:function e(e,t,r){var n;return t.form=(n=t.form)!==null&&n!==void 0?n:this.form,eu(e,t,r)}},{key:"validateAllSelect",value:function e(e,t){return ed(e,t)}},{key:"validateTextarea",value:function e(e,t){return ec(e,t)}},{key:"validateAllTextarea",value:function e(e,t){return ev(e,t)}},{key:"restrictInputWithCounter",value:function e(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D(e,t,r)}},{key:"containsOnlyIntegers",value:function e(e){return _(e)}},{key:"getPageURL",value:function e(){return k()}},{key:"redirect",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;e||(e=this.getPageURL()),eB(e,t)}},{key:"checkVariableType",value:function e(e){return eC(e)}},{key:"isOnline",value:function e(){return eH()}},{key:"reset",value:function e(e){var t;return e?t=e:t=this.form,eN(t)}}]);return e}();(typeof window==="undefined"?"undefined":a(window))<"u"&&(window.NFSFU234FormValidation=eV);var eY=eV})();/*! Bundled license information: bcryptjs/dist/bcrypt.js: (** diff --git a/dist/js/nfsfu234FormValidation.js.map b/dist/js/nfsfu234FormValidation.js.map index 60e0700..7b9af2f 100644 --- a/dist/js/nfsfu234FormValidation.js.map +++ b/dist/js/nfsfu234FormValidation.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/ts/nfsfu234FormValidation.ts","../../src/ts/errorHandling/ExceptionHandler.ts","../../src/ts/utilities/index.ts","../../src/ts/utilities/getPageUrl.ts","../../src/ts/ajax/ajax.ts","../../src/ts/utilities/focusInputElement.ts","../../src/ts/errorHandling/displayErrorInline.ts","../../src/ts/errorHandling/displayErrorModal.ts","../../src/ts/errorHandling/displayError.ts","../../src/ts/formValidations/getFormDetails.ts","../../src/ts/utilities/countString.ts","../../src/ts/formValidations/restrictInputLengthWithCounter.ts","../../src/ts/utilities/containsOnlyIntegers.ts","../../src/ts/utilities/isDate.ts","../../src/ts/utilities/isEmail.ts","../../src/ts/utilities/isURL.ts","../../src/ts/utilities/isZIP.ts","../../src/ts/formValidations/validateCheckbox.ts","../../src/ts/formValidations/validateRadio.ts","../../src/ts/formValidations/validateInput.ts","../../src/ts/formValidations/validateAllnput.ts","../../src/ts/formValidations/validateSelect.ts","../../src/ts/formValidations/validateAllSelect.ts","../../src/ts/formValidations/validateTextarea.ts","../../src/ts/formValidations/validateAllTextarea.ts","../../src/ts/formValidations/validate.ts","../../src/ts/formValidations/validateAllCheckbox.ts","../../src/ts/formValidations/validateAllRadio.ts","../../src/ts/password-handling/checkPassword.ts","../../src/ts/password-handling/hashPassword.ts","../../src/ts/password-handling/generatePassword.ts","../../src/ts/password-handling/verifyPassword.ts","../../src/ts/utilities/checkVariableType.ts","../../src/ts/utilities/isOnline.ts","../../src/ts/utilities/loading.ts","../../src/ts/utilities/redirect.ts","../../src/ts/utilities/reset.ts","../../src/ts/utilities/togglePasswordVisibility.ts","../../src/ts/utilities/togglePasswordVisibilityAll.ts"],"names":["nfsfu234FormValidation_exports","__export","nfsfu234FormValidation_default","__toCommonJS","LogLevelInterface","ExceptionHandler","error","level","areAllElementsTrue","arr","element","checkVariableType","variable","getPageUrl","getPageUrl_default","makeAjaxRequest","url","options","individualResponseMessage","response","responseData","prepareAjaxOptions","AJAXOptions","method","headers","ignoreBodyMessage","type","body","ajax","ajax_default","focusInputElement","inputElement","duration","focusInputElement_default","displayErrorInline","inputField","message","isSuccess","errorMessageContainer","parentNode","displayErrorInline_default","displayErrorModal","form","errorContainerId","shouldLogToConsole","errorMessageParentContainer","errorMessageMessageContainer","errorMessageIconContainer","errorMessageContainerCloseBtn","displayErrorModal_default","displayError","details","success","displayError_default","getFormDetails","u_form","requestData","shouldContinue","input","index","attributeName","inputValue","textarea","textareaValue","select","selectValue","getFormDetails_default","countString","str","countString_default","restrictInputLengthWithCounter","counterContainer","maxLength","minLength","shouldButtonDisable","textLength","returnMessage","counterElement","button","restrictInputLengthWithCounter_default","containsOnlyIntegers","containsOnlyIntegers_default","formats","isDate","value","format","regex","isDate_default","isEmail","isEmail_default","isURL","isURL_default","isZIP","zipCode","isZIP_default","validateCheckbox","checkboxInputField","callback","customErrorMessage","errorType","includeHTML","isRequired","errorMessage","validateCheckbox_default","validateRadio","radioInputField","radioName","radioGroup","isAnyRadioChecked","radioInput","radio","validateRadio_default","validateInput","customErrorMessages","inputType","validateRadioResponse","validateInput_default","validateAllInput","failureReturnMessage","allInputsInForm","validateInputResponse","proccessedResponse","validateAllnput_default","validateSelect","selectField","isErrorInline","validateSelect_default","validateAllSelect","allSelectsInForm","validateSelectResponse","validateAllSelect_default","validateTextarea","textareaField","validateTextarea_default","validateAllTextarea","allTextareasInForm","validateAllTextareaResponse","validateAllTextarea_default","validateForm","errMsg","errMsgArray","isValidateAllInputs","isValidateAllTextareas","isValidateAllSelects","msg","resMsg","validate_default","validateAllCheckbox","allCheckboxesInForm","checkbox","validateAllCheckbox_default","validateAllRadio","allRadiosInForm","validateAllRadio_default","checkPassword","password","includeSymbolsCheck","userSymbolRegex","uppercaseRegex","lowercaseRegex","numbersRegex","checkPassword_default","bcrypt","hashPassword","salt","hashPassword_default","generatePassword","length","shouldHash","uppercaseLetters","lowercaseLetters","numbers","symbols","charactersAdded","randomCharType","hashedPassword","generatePassword_default","verifyPassword","stringPassword","isHashed","verifyPassword_default","checkVariableType_default","isOnline","isOnline_default","loading","submitBtn","btn","formElement","loading_default","redirect","delay","redirect_default","reset","targetForm","reset_default","togglePasswordVisibility","showIcon","hideIcon","allTogglePasswordsButton","updateIcon","iconContainer","toggleBtn","togglePasswordVisibility_default","togglePasswordVisibilityAll","icons","uform","toggleAll","allPasswordInputs","togglePasswordVisibilityAll_default","NFSFU234FormValidation","formDetails","e","isAjax","ajaxOptions","requestMethod","requestHeaders","i","attr","originalName","match","headerKey","userOptions","processedIsAjax","processedAjaxOptions","errMsgFromFunction","errMessageFromValidate","responseCode","errorDetails","resolve","email","number","string","validateResponse","errorLogLevel","reject"],"mappings":"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","sourcesContent":["'use strict';\r\n\r\nimport ajax from \"./ajax/ajax\";\r\nimport ErrorHandler from \"./errorHandling\";\r\nimport { ExceptionHandler, LogLevelInterface } from \"./errorHandling/ExceptionHandler\";\r\nimport displayError from \"./errorHandling/displayError\";\r\nimport submitForm from \"./formSubmission/submitHandler\";\r\nimport getFormDetails from \"./formValidations/getFormDetails\";\r\nimport restrictInputLengthWithCounter from \"./formValidations/restrictInputLengthWithCounter\";\r\nimport validateForm from \"./formValidations/validate\";\r\nimport validateAllCheckbox from \"./formValidations/validateAllCheckbox\";\r\nimport validateAllRadio from \"./formValidations/validateAllRadio\";\r\nimport validateAllSelect from \"./formValidations/validateAllSelect\";\r\nimport validateAllTextarea from \"./formValidations/validateAllTextarea\";\r\nimport validateAllInput from \"./formValidations/validateAllnput\";\r\nimport validateCheckbox from \"./formValidations/validateCheckbox\";\r\nimport validateInput from \"./formValidations/validateInput\";\r\nimport validateRadio from \"./formValidations/validateRadio\";\r\nimport validateSelect from \"./formValidations/validateSelect\";\r\nimport validateTextarea from \"./formValidations/validateTextarea\";\r\nimport ErrorMessageInterface from \"./interfaces/ErrorMessagesInterface\";\r\nimport checkPassword from \"./password-handling/checkPassword\";\r\nimport generatePassword from \"./password-handling/generatePassword\";\r\nimport hashPassword from \"./password-handling/hashPassword\";\r\nimport verifyPassword from \"./password-handling/verifyPassword\";\r\nimport checkVariableType from \"./utilities/checkVariableType\";\r\nimport checkType from \"./utilities/checkVariableType\";\r\nimport containsOnlyIntegers from \"./utilities/containsOnlyIntegers\";\r\nimport countString from \"./utilities/countString\";\r\nimport getPageUrl from \"./utilities/getPageUrl\";\r\nimport isEmail from \"./utilities/isEmail\";\r\nimport isOnline from \"./utilities/isOnline\";\r\nimport isURL from \"./utilities/isURL\";\r\nimport isZIP from \"./utilities/isZIP\";\r\nimport loading from \"./utilities/loading\";\r\nimport redirect from \"./utilities/redirect\";\r\nimport reset from \"./utilities/reset\";\r\nimport togglePasswordVisibility from \"./utilities/togglePasswordVisibility\";\r\nimport togglePasswordVisibilityAll from \"./utilities/togglePasswordVisibilityAll\";\r\n\r\n\r\n// src/interfaces/FormValidationOptions.ts\r\n\r\n \r\nclass NFSFU234FormValidation {\r\n // private attributes\r\n private AJAXResult: null | Promise;\r\n\r\n // public attributes\r\n public form: HTMLFormElement | HTMLDivElement | undefined;\r\n \r\n public customErrorMessages: { [key: string]: string } = {};\r\n\r\n constructor(formDetails?: any, AJAXOptions?: any) {\r\n console.log(\"NFSFU234FormValidation is loaded....\");\r\n \r\n if (typeof window === 'undefined') {\r\n this.form = undefined;\r\n } else {\r\n // Initial assignment of this.form\r\n let formElement: HTMLFormElement | HTMLDivElement | undefined = undefined;\r\n \r\n // Check if formDetails is provided and valid\r\n if (formDetails && formDetails['form']) {\r\n if (typeof formDetails['form'] === 'string' && formDetails['form'] !== '') {\r\n formElement = document.getElementById(formDetails['form']) as HTMLFormElement | HTMLDivElement | undefined;\r\n } else if (formDetails['form'] instanceof HTMLElement) {\r\n formElement = formDetails['form'] as HTMLFormElement | HTMLDivElement;\r\n }\r\n }\r\n \r\n // Fallback to default form selectors if formElement is not set\r\n if (!formElement) {\r\n formElement = document.getElementById('jsForm') as HTMLFormElement | HTMLDivElement | undefined;\r\n }\r\n if (!formElement) {\r\n formElement = document.querySelector('form') as HTMLFormElement | HTMLDivElement | undefined;\r\n }\r\n \r\n // Assign formElement to this.form\r\n this.form = formElement;\r\n }\r\n \r\n // If form is found and is an HTMLElement, add novalidate attribute and submit event listener\r\n if (this.form && this.form instanceof HTMLElement) {\r\n if (!this.form.hasAttribute('novalidate')) {\r\n this.form.setAttribute('novalidate', '');\r\n }\r\n \r\n this.form.addEventListener('submit', (e) => {\r\n e.preventDefault();\r\n });\r\n }\r\n \r\n this.AJAXResult = null; // Store the result of an AJAX call.\r\n }\r\n \r\n\r\n private populateOptionsVariables(options: any, formElement: HTMLFormElement | HTMLDivElement | undefined) {\r\n let isAjax = false;\r\n let ajaxOptions: null | {\r\n url: string,\r\n RequestMethod: \"GET\" | \"POST\" | \"PATCH\" | \"UPDATE\" | \"DELETE\",\r\n RequestHeader?: { [key: string]: string },\r\n RequestBody?: object | FormData | JSON\r\n } = null;\r\n\r\n if (typeof options === 'object' && options !== null) {\r\n isAjax = options.isAjax === true || false;\r\n ajaxOptions = options.ajaxOptions || null;\r\n } else if (formElement) {\r\n isAjax = formElement.getAttribute('isAjax')?.trim() === \"true\" || false;\r\n\r\n const url = formElement.getAttribute('action') || '';\r\n const requestMethod = (formElement.getAttribute('method') || 'GET').toUpperCase();\r\n\r\n const requestHeaders: { [key: string]: string } = {};\r\n const regex = /^nfsfu234_fv_reqheader_(.+)$/i;\r\n\r\n for (let i = 0; i < formElement.attributes.length; i++) {\r\n const attr = formElement.attributes[i];\r\n const originalName = attr.name;\r\n const attrName = attr.name.toLowerCase();\r\n const match = attrName.match(regex);\r\n\r\n if (match) {\r\n const headerKey = match[1];\r\n requestHeaders[headerKey] = attr.value;\r\n }\r\n }\r\n\r\n ajaxOptions = {\r\n url,\r\n RequestMethod: requestMethod as \"GET\" | \"POST\" | \"PATCH\" | \"UPDATE\" | \"DELETE\",\r\n RequestHeader: Object.keys(requestHeaders).length > 0 ? requestHeaders : undefined,\r\n RequestBody: undefined\r\n };\r\n }\r\n\r\n return { isAjax, ajaxOptions };\r\n }\r\n\r\n // public submit(userOptions?: HTMLFormElement | HTMLDivElement | string | { form: string | HTMLFormElement | HTMLDivElement, customErrorMessages?: { [key: string]: string } }, callback?: any): boolean | Promise {\r\n // this.form = this.form || undefined;\r\n // this.customErrorMessages = this.customErrorMessages || {};\r\n\r\n // let formElement: HTMLFormElement | HTMLDivElement | undefined = this.form;\r\n // let options: any = this.customErrorMessages;\r\n\r\n // let isAjax = false;\r\n // let ajaxOptions: null | {\r\n // url: string,\r\n // RequestMethod: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"UPDATE\" | \"DELETE\",\r\n // RequestHeader?: object,\r\n // RequestBody?: object | FormData | JSON | any\r\n // } = null;\r\n\r\n // if (typeof userOptions === 'string') {\r\n // formElement = document.getElementById(userOptions) as HTMLFormElement | HTMLDivElement | undefined;\r\n // options.form = formElement;\r\n // options.customErrorMessages = [];\r\n // } else if (userOptions instanceof HTMLFormElement || userOptions instanceof HTMLDivElement) {\r\n // formElement = userOptions;\r\n // options.form = userOptions;\r\n // options.customErrorMessages = [];\r\n // } else if (userOptions && typeof userOptions === 'object' && 'form' in userOptions) {\r\n // if (typeof userOptions.form === 'string') {\r\n // formElement = document.getElementById(userOptions.form) as HTMLFormElement | HTMLDivElement | undefined;\r\n // } else if (userOptions.form instanceof HTMLFormElement || userOptions.form instanceof HTMLDivElement) {\r\n // formElement = userOptions.form;\r\n // }\r\n // options.form = formElement;\r\n // options.customErrorMessages = userOptions.customErrorMessages ?? [];\r\n // } else {\r\n // formElement = this.form;\r\n // options.form = this.form;\r\n // options.customErrorMessages = [];\r\n // }\r\n\r\n // if (formElement) {\r\n // const doesNoValidateAttrExist = formElement.getAttribute('novalidate') ? true : false;\r\n\r\n // if (!doesNoValidateAttrExist) {\r\n // formElement.setAttribute('novalidate', '');\r\n // }\r\n\r\n // formElement.addEventListener('submit', (e) => {\r\n // e.preventDefault();\r\n // });\r\n\r\n // const { isAjax: processedIsAjax, ajaxOptions: processedAjaxOptions } = this.populateOptionsVariables(userOptions, formElement);\r\n\r\n // let errMsg: ErrorMessageInterface = { message: \"\", type: \"\" };\r\n // const errMsgFromFunction = validateForm(formElement, options);\r\n\r\n // if (errMsgFromFunction === true) {\r\n // errMsg.message = \"success\";\r\n // errMsg.type = \"success\";\r\n // errMsg.data = null;\r\n // } else if (typeof errMsgFromFunction === 'object') {\r\n // const errMessageFromValidate = errMsgFromFunction.message || null;\r\n // errMsg.message = errMessageFromValidate || \"Error\";\r\n // errMsg.data = errMsgFromFunction;\r\n // } else {\r\n // errMsg.message = \"Error\";\r\n // errMsg.type = \"error\";\r\n // }\r\n\r\n // isAjax = processedIsAjax;\r\n // ajaxOptions = processedAjaxOptions;\r\n\r\n // if (!ajaxOptions) {\r\n // return false;\r\n // }\r\n\r\n // ajaxOptions.RequestBody = getFormDetails(formElement);\r\n\r\n // if (errMsg.message === \"success\") {\r\n // if (isAjax && ajaxOptions !== null) {\r\n // return ajax(ajaxOptions).then(response => {\r\n // const responseCode = response.code || response.status;\r\n // if (responseCode >= 300 && responseCode <= 500) {\r\n // const errorDetails = {\r\n // type: 'modal',\r\n // message: response.message,\r\n // duration: 3000,\r\n // element: formElement,\r\n // success: false,\r\n // };\r\n\r\n // errMsg.message = response.message;\r\n // errMsg.type = \"error\";\r\n // errMsg.code = responseCode;\r\n // errMsg.data = response.data;\r\n\r\n // this.displayError(errorDetails);\r\n // console.error(\"THIS IS ERR_ \", response.message);\r\n\r\n // return errMsg;\r\n // } else {\r\n // console.log(\"Success\");\r\n // return response;\r\n // }\r\n // }).catch(error => {\r\n // console.error(\"LOLK \", error);\r\n // return errMsg;\r\n // });\r\n // }\r\n // }\r\n\r\n // if (typeof callback === 'function') {\r\n // const message = callback(errMsg);\r\n // return true;\r\n // }\r\n\r\n // return new Promise((resolve) => {\r\n // resolve(errMsg);\r\n // });\r\n // } else {\r\n // ExceptionHandler('Form element not found.');\r\n // return false;\r\n // }\r\n // }\r\n\r\n public submit(\r\n userOptions?: HTMLFormElement | HTMLDivElement | string | { form: string | HTMLFormElement | HTMLDivElement, customErrorMessages?: { [key: string]: string } }, \r\n callback?: any\r\n ): boolean | Promise {\r\n this.form = this.form || undefined;\r\n this.customErrorMessages = this.customErrorMessages || {};\r\n \r\n let formElement: HTMLFormElement | HTMLDivElement | undefined = this.form;\r\n let options: any = this.customErrorMessages;\r\n \r\n let isAjax = false;\r\n let ajaxOptions: null | {\r\n url: string,\r\n RequestMethod: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"UPDATE\" | \"DELETE\",\r\n RequestHeader?: object,\r\n RequestBody?: object | FormData | JSON | any\r\n } = null;\r\n \r\n // Handle userOptions to determine formElement and options\r\n if (typeof userOptions === 'string') {\r\n formElement = document.getElementById(userOptions) as HTMLFormElement | HTMLDivElement | undefined;\r\n options = { form: formElement, customErrorMessages: [] };\r\n } else if (userOptions instanceof HTMLFormElement || userOptions instanceof HTMLDivElement) {\r\n formElement = userOptions;\r\n options = { form: formElement, customErrorMessages: [] };\r\n } else if (userOptions && typeof userOptions === 'object' && 'form' in userOptions) {\r\n if (typeof userOptions.form === 'string') {\r\n formElement = document.getElementById(userOptions.form) as HTMLFormElement | HTMLDivElement | undefined;\r\n } else if (userOptions.form instanceof HTMLFormElement || HTMLDivElement) {\r\n formElement = userOptions.form;\r\n }\r\n options = { form: formElement, customErrorMessages: userOptions.customErrorMessages ?? [] };\r\n }\r\n \r\n // Ensure formElement is available\r\n if (!formElement) {\r\n ExceptionHandler('Form element not found.');\r\n return false;\r\n }\r\n \r\n // Handle form's novalidate attribute\r\n const doesNoValidateAttrExist = formElement.getAttribute('novalidate') !== null;\r\n if (!doesNoValidateAttrExist) {\r\n formElement.setAttribute('novalidate', '');\r\n }\r\n \r\n // Prevent default form submission\r\n formElement.addEventListener('submit', (e) => {\r\n e.preventDefault();\r\n });\r\n \r\n // Process options for Ajax submission\r\n const { isAjax: processedIsAjax, ajaxOptions: processedAjaxOptions } = this.populateOptionsVariables(userOptions, formElement);\r\n isAjax = processedIsAjax;\r\n ajaxOptions = processedAjaxOptions;\r\n \r\n // Validate form and determine the error message\r\n let errMsg: ErrorMessageInterface = { message: \"\", type: \"\" };\r\n const errMsgFromFunction = validateForm(formElement, options);\r\n \r\n if (errMsgFromFunction === true) {\r\n errMsg.message = \"success\";\r\n errMsg.type = \"success\";\r\n errMsg.data = null;\r\n } else if (typeof errMsgFromFunction === 'object' && errMsgFromFunction !== null && 'message' in errMsgFromFunction) {\r\n const errMessageFromValidate = errMsgFromFunction.message;\r\n errMsg.message = (typeof errMessageFromValidate === 'string' || typeof errMessageFromValidate === 'number' || typeof errMessageFromValidate === 'boolean')\r\n ? errMessageFromValidate \r\n : \"Error\";\r\n errMsg.type = \"error\";\r\n errMsg.data = errMsgFromFunction;\r\n } else {\r\n errMsg.message = \"Error\";\r\n errMsg.type = \"error\";\r\n }\r\n \r\n // Handle Ajax submission if applicable\r\n if (errMsg.message === \"success\" && isAjax && ajaxOptions !== null) {\r\n ajaxOptions.RequestBody = getFormDetails(formElement);\r\n return ajax(ajaxOptions)\r\n .then(response => {\r\n const responseCode = response.code || response.status;\r\n if (responseCode >= 300 && responseCode <= 500) {\r\n const errorDetails = {\r\n type: 'modal',\r\n message: response.message,\r\n duration: 3000,\r\n element: formElement,\r\n success: false,\r\n };\r\n \r\n errMsg.message = response.message;\r\n errMsg.type = \"error\";\r\n errMsg.code = responseCode;\r\n errMsg.data = response.data;\r\n \r\n this.displayError(errorDetails);\r\n console.error(\"THIS IS ERR_ \", response.message);\r\n \r\n return errMsg;\r\n } else {\r\n console.log(\"Success\");\r\n return response;\r\n }\r\n })\r\n .catch(error => {\r\n console.error(\"LOLK \", error);\r\n return errMsg;\r\n });\r\n }\r\n \r\n // Handle callback if provided\r\n if (typeof callback === 'function') {\r\n callback(errMsg);\r\n return true;\r\n }\r\n \r\n // Return a promise resolving to the error message\r\n return new Promise((resolve) => {\r\n resolve(errMsg);\r\n });\r\n }\r\n \r\n \r\n\r\n // public validate(userOptions?: HTMLFormElement | HTMLDivElement | string | { form: HTMLFormElement | HTMLDivElement | string; customErrorMessages?: any[] }, callback?: any): boolean | Promise {\r\n // let formElement: HTMLFormElement | HTMLDivElement | undefined;\r\n // let options: any = {}; // Initialize options as an empty object\r\n \r\n // if (typeof userOptions === 'string') {\r\n // formElement = document.getElementById(userOptions) as HTMLFormElement | HTMLDivElement | undefined;\r\n // options.form = formElement;\r\n // options.customErrorMessages = [];\r\n // } else if (userOptions instanceof HTMLFormElement || userOptions instanceof HTMLDivElement) {\r\n // formElement = userOptions;\r\n // options.form = userOptions;\r\n // options.customErrorMessages = [];\r\n // } else if (userOptions && typeof userOptions === 'object' && 'form' in userOptions) {\r\n // if (typeof userOptions.form === 'string') {\r\n // formElement = document.getElementById(userOptions.form) as HTMLFormElement | HTMLDivElement | undefined;\r\n // } else if (userOptions.form instanceof HTMLFormElement || userOptions.form instanceof HTMLDivElement) {\r\n // formElement = userOptions.form;\r\n // }\r\n // options.form = formElement;\r\n // options.customErrorMessages = userOptions.customErrorMessages ?? [];\r\n // } else {\r\n // formElement = this.form;\r\n // options.form = this.form;\r\n // options.customErrorMessages = [];\r\n // }\r\n \r\n // if (formElement) {\r\n // const doesNoValidateAttrExist = formElement.getAttribute('novalidate') ? true : false;\r\n \r\n // if (!doesNoValidateAttrExist) {\r\n // formElement.setAttribute('novalidate', '');\r\n // }\r\n \r\n // formElement.addEventListener('submit', (e) => {\r\n // e.preventDefault();\r\n // });\r\n \r\n // // Initialize errMsg with default values\r\n // let errMsg: ErrorMessageInterface = { message: \"\", type: \"\" };\r\n \r\n // // Validating the form here\r\n // const errMsgFromFunction = validateForm(formElement, options);\r\n \r\n // if (errMsgFromFunction === true) {\r\n // errMsg.message = \"success\";\r\n // errMsg.type = \"success\";\r\n // errMsg.data = null;\r\n // } else if (checkVariableType(errMsgFromFunction) === 'object') {\r\n // const errMessageFromValidate = errMsgFromFunction.message || null;\r\n // errMsg.message = errMessageFromValidate || \"Error\";\r\n // errMsg.type = \"error\";\r\n // errMsg.data = errMsgFromFunction;\r\n // } else {\r\n // errMsg.message = \"Error\";\r\n // errMsg.type = \"error\";\r\n // }\r\n \r\n // if (checkVariableType(callback) === 'function') {\r\n // callback(errMsg);\r\n // return true;\r\n // }\r\n \r\n // return new Promise((resolve, reject) => {\r\n // resolve(errMsg);\r\n // });\r\n // } else {\r\n // ExceptionHandler('Form element not found.');\r\n // return false;\r\n // }\r\n // }\r\n \r\n public validate(\r\n userOptions?: HTMLFormElement | HTMLDivElement | string | { form: HTMLFormElement | HTMLDivElement | string; customErrorMessages?: any[] }, \r\n callback?: any\r\n ): boolean | Promise {\r\n let formElement: HTMLFormElement | HTMLDivElement | undefined;\r\n let options: any = {}; // Initialize options as an empty object\r\n \r\n // Determine the form element and options based on userOptions\r\n if (typeof userOptions === 'string') {\r\n formElement = document.getElementById(userOptions) as HTMLFormElement | HTMLDivElement | undefined;\r\n options = { form: formElement, customErrorMessages: [] };\r\n } else if (userOptions instanceof HTMLFormElement || userOptions instanceof HTMLDivElement) {\r\n formElement = userOptions;\r\n options = { form: formElement, customErrorMessages: [] };\r\n } else if (userOptions && typeof userOptions === 'object' && 'form' in userOptions) {\r\n if (typeof userOptions.form === 'string') {\r\n formElement = document.getElementById(userOptions.form) as HTMLFormElement | HTMLDivElement | undefined;\r\n } else if (userOptions.form instanceof HTMLFormElement || userOptions.form instanceof HTMLDivElement) {\r\n formElement = userOptions.form;\r\n }\r\n options = { form: formElement, customErrorMessages: userOptions.customErrorMessages ?? [] };\r\n } else {\r\n formElement = this.form;\r\n options = { form: formElement, customErrorMessages: [] };\r\n }\r\n \r\n // Ensure form element exists\r\n if (!formElement) {\r\n ExceptionHandler('Form element not found.');\r\n return false;\r\n }\r\n \r\n // Handle form's novalidate attribute\r\n const doesNoValidateAttrExist = formElement.getAttribute('novalidate') !== null;\r\n if (!doesNoValidateAttrExist) {\r\n formElement.setAttribute('novalidate', '');\r\n }\r\n \r\n // Prevent default form submission\r\n formElement.addEventListener('submit', (e) => {\r\n e.preventDefault();\r\n });\r\n \r\n // Initialize errMsg with default values\r\n let errMsg: ErrorMessageInterface = { message: \"\", type: \"\" };\r\n \r\n // Validate the form using the provided function\r\n const errMsgFromFunction = validateForm(formElement, options);\r\n \r\n if (errMsgFromFunction === true) {\r\n errMsg.message = \"success\";\r\n errMsg.type = \"success\";\r\n errMsg.data = null;\r\n } else if (typeof errMsgFromFunction === 'object' && errMsgFromFunction !== null && 'message' in errMsgFromFunction) {\r\n const errMessageFromValidate = errMsgFromFunction.message;\r\n \r\n // Ensure the message is of the correct type before assignment\r\n if (typeof errMessageFromValidate === 'string' || typeof errMessageFromValidate === 'number' || typeof errMessageFromValidate === 'boolean') {\r\n errMsg.message = errMessageFromValidate;\r\n } else {\r\n errMsg.message = \"Error\"; // Fallback to a default message if the type doesn't match\r\n }\r\n \r\n errMsg.type = \"error\";\r\n errMsg.data = errMsgFromFunction;\r\n } else {\r\n errMsg.message = \"Error\";\r\n errMsg.type = \"error\";\r\n }\r\n \r\n // If a callback is provided, invoke it with errMsg\r\n if (typeof callback === 'function') {\r\n callback(errMsg);\r\n return true;\r\n }\r\n \r\n // Return a promise resolving to the error message\r\n return new Promise((resolve) => {\r\n resolve(errMsg);\r\n });\r\n }\r\n \r\n \r\n \r\n\r\n\r\n /**\r\n * ajax\r\n */\r\n public ajax(AJAXOptions: any) {\r\n \r\n // return this.AJAXResult = ajax(AJAXOptions);\r\n return this.AJAXResult = ajax(AJAXOptions);\r\n }\r\n\r\n /**\r\n * getAJAXResponse\r\n * \r\n * This function retrieves the AJAX response that was stored in the global variable `AJAXResult`.\r\n * It returns the AJAX response if available or false if no response is found.\r\n * \r\n * @returns {Promise|boolean} - Returns the AJAX response (a Promise) if available; otherwise, returns false.\r\n */\r\n getAJAXResponse(): Promise | boolean {\r\n if (this.AJAXResult) {\r\n // If `AJAXResult` contains a value (Promise), return the AJAX response\r\n return this.AJAXResult;\r\n } else {\r\n // If `AJAXResult` is empty (null or undefined), return false\r\n return false;\r\n }\r\n }\r\n \r\n getFormDetails(form: HTMLFormElement | HTMLDivElement | string)\r\n {\r\n\r\n if ( ! form )\r\n {\r\n form = this.form as HTMLDivElement;\r\n }\r\n \r\n // console.log(\"hkbik\", getFormDetails(form));\r\n \r\n\r\n return getFormDetails(form);\r\n }\r\n\r\n loading(message: string, submitBtn: string | HTMLElement | null = null, form: string | HTMLElement | null | undefined = null)\r\n {\r\n if (form !== null) {\r\n form = typeof form === 'string' ? document.getElementById(form) : form;\r\n form = typeof form === 'undefined' ? this.form : form;\r\n }\r\n\r\n // Call the loading function\r\n return loading(message, submitBtn, form);\r\n }\r\n\r\n displayError(details:any)\r\n {\r\n displayError(details);\r\n }\r\n \r\n isEmail(email: string): boolean\r\n {\r\n return isEmail(email);\r\n }\r\n\r\n isURL(url: string)\r\n {\r\n return isURL(url);\r\n }\r\n\r\n isNumber(number: string | number): boolean\r\n {\r\n return checkVariableType(number) === 'number';\r\n }\r\n\r\n isZipCode(zipCode: string | number): boolean\r\n {\r\n return isZIP(zipCode);\r\n }\r\n\r\n isZip(zipCode: string | number): boolean\r\n {\r\n return isZIP(zipCode);\r\n }\r\n\r\n countString(string: string): number\r\n {\r\n return countString(string);\r\n }\r\n\r\n async generatePassword(length?:number, shouldHash?: boolean )\r\n {\r\n return await generatePassword(length, shouldHash);\r\n }\r\n\r\n async generateRandomPassword(length:number, shouldHash:boolean )\r\n {\r\n return await generatePassword(length, shouldHash);\r\n }\r\n\r\n passwordStrength()\r\n {}\r\n\r\n getPasswordStrength()\r\n {}\r\n\r\n checkPassword( password: string, minLength: number = 8, maxLength: number = 20, includeSymbolsCheck: boolean = false, userSymbolRegex: RegExp | string = '')\r\n {\r\n return checkPassword( password, includeSymbolsCheck, minLength, maxLength, userSymbolRegex );\r\n }\r\n\r\n async verifyPassword(stringPassword: string, hashedPassword: string, isHashed: boolean = false): Promise\r\n {\r\n try {\r\n // Call verifyPassword and return its result\r\n return await verifyPassword(stringPassword, hashedPassword, isHashed);\r\n } catch (error) {\r\n console.error(\"Error verifying password: \", error); // Log an error if there's an issue\r\n return false; // Return false in case of an error\r\n }\r\n }\r\n\r\n async passwordMatch(stringPassword: string, hashedPassword: string, isHashed: boolean = false): Promise\r\n {\r\n try {\r\n // Call verifyPassword and return its result\r\n return await verifyPassword(stringPassword, hashedPassword, isHashed);\r\n } catch (error) {\r\n console.error(\"Error verifying password: \", error); // Log an error if there's an issue\r\n return false; // Return false in case of an error\r\n }\r\n }\r\n\r\n async hashPassword(password: string)\r\n {\r\n try {\r\n // Call hashPassword and return its result\r\n return await hashPassword(password);\r\n } catch (error) {\r\n console.error(\"Error hashing password: \", error); // Log an error if there's an issue\r\n return false; // Return false in case of an error\r\n }\r\n }\r\n\r\n togglePasswordVisibility(input: HTMLInputElement, showIcon: string | HTMLElement | null = null, hideIcon: string | HTMLElement | null = null)\r\n {\r\n return togglePasswordVisibility(input, showIcon, hideIcon);\r\n }\r\n\r\n togglePasswordVisibilityAll(icons: { \r\n show: string | HTMLElement | null, \r\n hide: string | HTMLElement | null \r\n } , uform: string | HTMLFormElement | HTMLDivElement | null = null, toggleAll: boolean = false)\r\n {\r\n return togglePasswordVisibilityAll(icons, uform, toggleAll);\r\n }\r\n\r\n validateInput(inputField: HTMLInputElement | string, options: any = {}, callback?: any)\r\n {\r\n let individualResponseMessage: ErrorMessageInterface | boolean = { type: 'error', code : 400 };\r\n\r\n if ( typeof inputField === 'string' )\r\n {\r\n inputField = document.getElementById(inputField) as HTMLInputElement\r\n }\r\n\r\n if ( ! inputField )\r\n {\r\n let errorLogLevel = LogLevelInterface;\r\n\r\n individualResponseMessage.message = \"The Input Feild you are trying to validate is undefined.\";\r\n\r\n // console.log(individualResponseMessage);\r\n \r\n ExceptionHandler(\"The Input Feild you are trying to validate is undefined.\");\r\n\r\n // return individualResponseMessage;\r\n } \r\n\r\n else\r\n {\r\n\r\n options.form = options.form ?? this.form\r\n\r\n const validateResponse: string | boolean | ErrorMessageInterface = validateInput(inputField, options, callback);\r\n\r\n if ( validateResponse === true )\r\n {\r\n return true;\r\n }\r\n\r\n individualResponseMessage = validateResponse as ErrorMessageInterface\r\n\r\n }\r\n\r\n // let errMsg = validateResponse.message;\r\n\r\n if (checkVariableType(callback) === 'function') {\r\n const message = callback(individualResponseMessage);\r\n // return true;\r\n }\r\n\r\n return new Promise((resolve, reject)=>{\r\n\r\n resolve(individualResponseMessage)\r\n\r\n });\r\n\r\n // return validateInput(inputField, options, callback);\r\n }\r\n\r\n validateAllInput(form: HTMLFormElement | HTMLDivElement | string, customErrorMessages: any)\r\n {\r\n\r\n form = form ?? this.form;\r\n return validateAllInput(form, customErrorMessages);\r\n }\r\n\r\n validateRadio(radioInputField: HTMLInputElement | string, customErrorMessage?: any)\r\n {\r\n return validateRadio(radioInputField, customErrorMessage);\r\n }\r\n\r\n validateAllRadio(form: HTMLFormElement | HTMLDivElement, customErrorMessage: any)\r\n {\r\n form = form ?? this.form;\r\n return validateAllRadio(form, customErrorMessage);\r\n }\r\n\r\n validateCheckbox( checkboxInputField: HTMLInputElement, options?: any )\r\n {\r\n return validateCheckbox(checkboxInputField, options);\r\n }\r\n\r\n validateAllCheckbox(form: HTMLFormElement | HTMLDivElement, options: any)\r\n {\r\n\r\n form = form ?? this.form;\r\n\r\n return validateAllCheckbox(form, options);\r\n }\r\n\r\n validateSelect( selectField: HTMLSelectElement, options:any, callback: any)\r\n {\r\n options.form = options.form ?? this.form\r\n\r\n return validateSelect(selectField, options, callback);\r\n }\r\n\r\n validateAllSelect(form: HTMLFormElement | HTMLDivElement, options: any)\r\n {\r\n return validateAllSelect(form, options);\r\n }\r\n\r\n validateTextarea(textareaField: HTMLTextAreaElement, options: any )\r\n {\r\n return validateTextarea(textareaField, options);\r\n }\r\n\r\n validateAllTextarea(form: HTMLFormElement | HTMLDivElement, options: any)\r\n {\r\n return validateAllTextarea(form, options);\r\n }\r\n\r\n\r\n restrictInputWithCounter(inputElement: HTMLInputElement | HTMLTextAreaElement, counterContainer: HTMLElement, options: any = {})\r\n {\r\n return restrictInputLengthWithCounter(inputElement, counterContainer, options);\r\n }\r\n\r\n public containsOnlyIntegers(str: string):boolean\r\n {\r\n return containsOnlyIntegers(str)\r\n }\r\n\r\n getPageURL()\r\n {\r\n return getPageUrl();\r\n }\r\n\r\n redirect(url: string | null | false | undefined = null, delay: number = 0)\r\n {\r\n\r\n if ( ! url )\r\n {\r\n url = this.getPageURL() as string;\r\n }\r\n\r\n redirect(url, delay);\r\n }\r\n\r\n checkVariableType(variable: any)\r\n {\r\n return checkVariableType(variable);\r\n }\r\n\r\n isOnline()\r\n {\r\n return isOnline();\r\n }\r\n\r\n reset(u_form: HTMLFormElement | HTMLDivElement | string): boolean\r\n {\r\n\r\n let form;\r\n\r\n if ( ! u_form )\r\n {\r\n form = this.form;\r\n }\r\n else\r\n {\r\n form = u_form\r\n }\r\n\r\n return reset(form);\r\n }\r\n\r\n \r\n\r\n}\r\n\r\nif (typeof window !== 'undefined') {\r\n // Make the library available globally\r\n (window as any).NFSFU234FormValidation = NFSFU234FormValidation;\r\n}\r\n\r\nexport default NFSFU234FormValidation","const LogLevelInterface = {\r\n ERROR: 'error',\r\n ERROR_1: 'error_1',\r\n CONSOLE: 'console',\r\n THROW: 'throw',\r\n WARNING: 'warning',\r\n INFO: 'info',\r\n };\r\n \r\nconst ExceptionHandler = (error: any, level: string = LogLevelInterface.CONSOLE) => {\r\n switch (level) {\r\n\r\n case LogLevelInterface.ERROR:\r\n // You can customize error handling here\r\n console.error('Error:', error);\r\n // throw error;\r\n // continue;\r\n break;\r\n \r\n case LogLevelInterface.CONSOLE:\r\n // You can customize error handling here\r\n console.error('Error:', error);\r\n break;\r\n\r\n case LogLevelInterface.THROW:\r\n throw error;\r\n\r\n case LogLevelInterface.WARNING:\r\n // You can customize warning handling here\r\n console.warn('Warning:', error);\r\n break;\r\n\r\n case LogLevelInterface.INFO:\r\n // You can customize info handling here\r\n console.log('Info:', error);\r\n break;\r\n\r\n default:\r\n // console.log(\"default\");\r\n \r\n // Default behavior is to treat as an error\r\n console.error('Error:', error);\r\n throw error;\r\n }\r\n };\r\n \r\n export { ExceptionHandler, LogLevelInterface };\r\n ","/**\r\n * Check if All Elements are True\r\n *\r\n * This function checks if all elements in the given array are equal to true.\r\n *\r\n * @param {Array} arr - The array to be checked.\r\n * @returns {boolean} Returns true if all elements in the array are equal to true, otherwise false.\r\n */\r\nexport const areAllElementsTrue = (arr: Array): boolean => {\r\n // Use the 'every' method to check if every element in the array is equal to true\r\n return arr.every(element => element === true);\r\n}\r\n\r\n/**\r\n * Count Length of Object\r\n *\r\n * This function calculates the number of properties (keys) in a given object.\r\n * @param {Object} object - The object for which the length is to be calculated.\r\n * @returns {number} Returns the number of properties (keys) in the object.\r\n */\r\nexport const countLengthOfObject = (object: object): number => {\r\n // Return the number of keys in the object using Object.keys() and calculating its length\r\n return Object.keys(object).length;\r\n}\r\n\r\n/**\r\n * Checks the data type of a variable and returns the corresponding type as a string.\r\n *\r\n * @param {*} variable - The variable to check the data type.\r\n * @returns {string} Returns the data type of the variable as a string.\r\n */\r\nexport const checkVariableType = (variable: any): string | null => {\r\n // Check if the variable is a string\r\n if (typeof variable === 'string') {\r\n return 'string';\r\n }\r\n // Check if the variable is a number\r\n else if (typeof variable === 'number') {\r\n return 'number';\r\n }\r\n // Check if the variable is a boolean\r\n else if (typeof variable === 'boolean') {\r\n return 'boolean';\r\n }\r\n // Check if the variable is undefined\r\n else if (typeof variable === 'undefined') {\r\n return 'undefined';\r\n }\r\n // Check if the variable is null\r\n else if (variable === null) {\r\n return 'null';\r\n }\r\n // Check if the variable is an HTMLElement (assumes that HTMLElement is defined in the environment)\r\n else if (variable instanceof HTMLElement) {\r\n return 'HTML Element';\r\n }\r\n // Check if the variable is an array\r\n else if (typeof variable === 'object' && variable instanceof Array) {\r\n return 'array';\r\n }\r\n // Check if the variable is an object\r\n else if (typeof variable === 'object' && variable instanceof Object) {\r\n return 'object';\r\n }\r\n // Check if the variable is a function\r\n else if (typeof variable === 'function') {\r\n return 'function';\r\n }\r\n // If none of the above conditions match, the data type is unknown\r\n else {\r\n return null;\r\n }\r\n}","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\n\r\nconst getPageUrl = ():string | boolean => {\r\n\r\n if ( typeof window === 'undefined' )\r\n {\r\n ExceptionHandler('This function only works in a broswer environment...');\r\n return false;\r\n }\r\n\r\n // Access the 'window' object and retrieve the current URL using 'window.location.href'.\r\n // This will return the complete URL, including the protocol (http/https), domain, port, path, and query parameters.\r\n return window.location.href;\r\n};\r\n\r\nexport default getPageUrl;","import { ExceptionHandler, LogLevelInterface } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { checkVariableType } from \"../utilities\";\r\nimport getPageUrl from \"../utilities/getPageUrl\";\r\n\r\nconst makeAjaxRequest = async (url:string, options:any) => {\r\n let individualResponseMessage: ErrorMessageInterface = {};\r\n try {\r\n console.log(\"AJAX Loading....\");\r\n\r\n\r\n let response = await fetch(url, options);\r\n\r\n // console.log(response);\r\n \r\n\r\n if (response.ok) {\r\n console.log(\"AJAX Finished....\");\r\n return await response.json();\r\n // try {\r\n // const responseData = await response.json();\r\n // console.log(responseData);\r\n \r\n // if (checkVariableType(responseData) === 'object') {\r\n // individualResponseMessage.code = response.status;\r\n // individualResponseMessage.message = responseData.message || response.statusText;\r\n // individualResponseMessage.data = responseData;\r\n // } else {\r\n // individualResponseMessage.code = 400;\r\n // individualResponseMessage.message = \"Response is not a valid JSON object.\";\r\n // throw individualResponseMessage;\r\n // }\r\n \r\n // return individualResponseMessage;\r\n // } catch (error) {\r\n // // console.error(error);\r\n \r\n // individualResponseMessage.code = 400;\r\n // individualResponseMessage.message = \"Response is not a valid JSON object.\";\r\n // individualResponseMessage.data = null;\r\n \r\n // throw individualResponseMessage;\r\n // }\r\n } else {\r\n\r\n if ( response.status === 404 )\r\n {\r\n individualResponseMessage.code = response.status ?? 404;\r\n individualResponseMessage.message = \"Resource Not Found\";\r\n individualResponseMessage.data = {\r\n headers: response.headers,\r\n url: response.url,\r\n status: response.status,\r\n statusText: response.statusText,\r\n ok: response.ok\r\n };\r\n throw individualResponseMessage;\r\n\r\n }\r\n\r\n // if (response.ok) {\r\n // console.log(\"AJAX Finished....\");\r\n // return await response.json();\r\n // } else {\r\n try {\r\n const responseData = await response.json();\r\n // console.log(responseData);\r\n \r\n if (checkVariableType(responseData) === 'object') {\r\n individualResponseMessage.code = response.status;\r\n individualResponseMessage.message = responseData.message || response.statusText;\r\n individualResponseMessage.data = responseData;\r\n } else {\r\n\r\n // if ( response.status === 404 )\r\n // {\r\n // individualResponseMessage.code = response.status;\r\n // individualResponseMessage.message = response.statusText;\r\n // individualResponseMessage.data = {\r\n // headers: response.headers,\r\n // url: response.url,\r\n // status: response.status,\r\n // statusText: response.statusText,\r\n // ok: response.ok\r\n // };\r\n // throw individualResponseMessage;\r\n \r\n // }\r\n\r\n individualResponseMessage.code = 400;\r\n individualResponseMessage.message = \"Response is not a valid JSON object 2.\";\r\n throw individualResponseMessage;\r\n }\r\n \r\n return individualResponseMessage;\r\n } catch (error: any) {\r\n // console.error(error);\r\n\r\n // if ( error.status === 404 )\r\n // {\r\n // individualResponseMessage.code = error.status;\r\n // individualResponseMessage.message = error.statusText;\r\n // individualResponseMessage.data = {\r\n // headers: error.headers,\r\n // url: error.url,\r\n // status: error.status,\r\n // statusText: error.statusText,\r\n // ok: error.ok\r\n // };\r\n // throw individualResponseMessage;\r\n \r\n // }\r\n \r\n individualResponseMessage.code = 400;\r\n individualResponseMessage.message = \"Response is not a valid JSON object. 1\";\r\n individualResponseMessage.data = null;\r\n \r\n throw individualResponseMessage;\r\n }\r\n // }\r\n \r\n\r\n // try {\r\n \r\n // response = await response.json();\r\n\r\n // console.log(response);\r\n \r\n \r\n // // throw new Error(\"AJAX Failed\");\r\n // // ExceptionHandler(\"AJAX FAILED\", \"error_1\")\r\n \r\n // individualResponseMessage.code = response.status\r\n // individualResponseMessage.message = response.message || response.statusText\r\n // individualResponseMessage.data = null\r\n \r\n // // console.log(individualResponseMessage);\r\n \r\n // // ExceptionHandler(individualResponseMessage)\r\n \r\n // // return individualResponseMessage\r\n // throw individualResponseMessage;\r\n \r\n\r\n // } catch (error) {\r\n \r\n // individualResponseMessage.code = 400\r\n // individualResponseMessage.message = \"Response is not a valid JSON object.\"\r\n // individualResponseMessage.data = null\r\n\r\n // throw individualResponseMessage;\r\n \r\n\r\n // }\r\n\r\n \r\n }\r\n\r\n } catch (error: any) {\r\n\r\n\r\n // if ( error.status === 404 )\r\n // {\r\n // individualResponseMessage.code = error.status;\r\n // individualResponseMessage.message = error.statusText;\r\n // individualResponseMessage.data = {\r\n // headers: error.headers,\r\n // url: error.url,\r\n // status: error.status,\r\n // statusText: error.statusText,\r\n // ok: error.ok\r\n // };\r\n // throw individualResponseMessage;\r\n\r\n // }\r\n\r\n // console.error(\"AJAX Error From Main Function:\", error.message);\r\n individualResponseMessage.code = error.code || 400;\r\n individualResponseMessage.message = error.message || error.statusText || \"An Error Occured\";\r\n individualResponseMessage.data = error.data || null;\r\n\r\n // console.log(individualResponseMessage);\r\n \r\n\r\n // throw individualResponseMessage;\r\n throw individualResponseMessage;\r\n }\r\n};\r\n\r\nconst prepareAjaxOptions = (AJAXOptions: any) => {\r\n let individualResponseMessage: ErrorMessageInterface = {};\r\n const method = AJAXOptions.RequestMethod || 'GET';\r\n const headers = AJAXOptions.RequestHeader || {};\r\n const ignoreBodyMessage = AJAXOptions.RequestBodyIgnore || false;\r\n const type = AJAXOptions.RequestType || 'json';\r\n\r\n let body;\r\n if (['POST', 'PUT', 'DELETE', 'UPDATE'].includes(method)) {\r\n body = AJAXOptions.RequestBody || '';\r\n\r\n if ( body === '' && ignoreBodyMessage !== true )\r\n {\r\n individualResponseMessage.code = 400\r\n individualResponseMessage.message = `The body of this \"${method}\" request you made is empty. If this was intentionional, then add the RequestBodyIgnore attribute and set it to true.`;\r\n throw individualResponseMessage;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n return {\r\n method,\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n};\r\n\r\nconst ajax = async (AJAXOptions: any) => {\r\n let individualResponseMessage: ErrorMessageInterface = {};\r\n try {\r\n const url = AJAXOptions && AJAXOptions.url ? AJAXOptions.url : getPageUrl();\r\n const options = prepareAjaxOptions(AJAXOptions);\r\n const responseData = await makeAjaxRequest(url, options);\r\n\r\n return responseData;\r\n } catch (error:any) {\r\n\r\n \r\n\r\n // console.error(\"AJAX Error From Main Function:\", error);\r\n individualResponseMessage.code = error.code || 400;\r\n individualResponseMessage.message = error.message || \"An Error Occured\";\r\n individualResponseMessage.data = error.data ?? null;\r\n\r\n // console.log(individualResponseMessage);\r\n\r\n // console.error(\"AJAX ERROR: \", error);\r\n console.error(\"AJAX Failed: \", error.message);\r\n\r\n ExceptionHandler(error.message, LogLevelInterface.THROW)\r\n\r\n // return individualResponseMessage;\r\n throw error;\r\n }\r\n};\r\n\r\nexport default ajax;\r\n","const focusInputElement = (inputElement: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, duration: number = 3000) => {\r\n\r\n // Set focus on the specified input element to bring it into focus.\r\n inputElement.focus();\r\n\r\n // Add the 'input-focus-error' CSS class to the input element to apply the temporary highlighting effect.\r\n inputElement.classList.add('input-focus-error');\r\n\r\n // After the specified duration, remove the 'input-focus-error' CSS class to revert the highlighting effect.\r\n setTimeout(() => {\r\n inputElement.classList.remove('input-focus-error');\r\n }, duration);\r\n\r\n};\r\n\r\nexport default focusInputElement;","import focusInputElement from \"../utilities/focusInputElement\";\r\n\r\n/**\r\n * displayErrorInline\r\n * \r\n * This function displays an error message inline next to an input field on a login page.\r\n * The error message is shown for a specified duration and can also be a success message.\r\n * \r\n * @param {HTMLElement} inputField - The input field element where the error message will be displayed.\r\n * @param {string} message - The error message to be displayed.\r\n * @param {number} duration - The duration (in milliseconds) for which the error message is visible inline. Default: 3000 ms.\r\n * @param {boolean} isSuccess - A flag indicating if the message is a success message (true) or an error message (false). Default: false.\r\n */\r\nconst displayErrorInline = (inputField: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, message: string, duration: number = 3000, isSuccess: boolean = false) => {\r\n\r\n if ( ! inputField )\r\n {\r\n return false;\r\n }\r\n\r\n // Focus on the input field and temporarily highlight it using the _focusInputElement function.\r\n focusInputElement(inputField, duration);\r\n\r\n // Create the inline error message container element.\r\n const errorMessageContainer = document.createElement('div');\r\n errorMessageContainer.classList.add('js-inline-message');\r\n\r\n // Set the error message content inside the container.\r\n errorMessageContainer.innerHTML = message;\r\n\r\n const parentNode = inputField.parentNode;\r\n\r\n if ( ! parentNode )\r\n {\r\n return false;\r\n }\r\n\r\n // Append the error message container to the parent of the input tag, placing it inline next to the input field.\r\n parentNode.appendChild(errorMessageContainer);\r\n\r\n // Add the 'text-success' class to the container if it's a success message, making it visually distinct.\r\n if (isSuccess) {\r\n \r\n errorMessageContainer.classList.add('text-success');\r\n }\r\n\r\n // After the specified duration, remove the error message container to hide the message.\r\n setTimeout(() => {\r\n parentNode.removeChild(errorMessageContainer);\r\n }, duration);\r\n}\r\n\r\nexport default displayErrorInline;","/**\r\n * displayErrorModal\r\n *\r\n * This function displays an error message in a modal-like container for a specified duration.\r\n * The error message can be customized to indicate success (green color) or failure (red color).\r\n * If a custom error container ID is provided, the error message is appended to that container;\r\n * otherwise, it creates a new container and appends it to the form.\r\n *\r\n * @param {string} message - The error message to display.\r\n * @param {HTMLElement} form - The form element to which the error message will be added.\r\n * @param {string} errorContainerId - Optional. The ID of the custom error container.\r\n * @param {number} duration - Optional. The duration (in milliseconds) for which the error message is visible. Default: 3000 ms.\r\n * @param {boolean} isSuccess - Optional. If true, the message is displayed as a success message (green color). Default: false.\r\n * @param {boolean} shouldLogToConsole - Optional. If true, the error message is logged to the console. Default: false.\r\n */\r\nconst displayErrorModal = (message: string, form: HTMLElement | HTMLDivElement, errorContainerId: string = '', duration: number = 3000, isSuccess: boolean = false, shouldLogToConsole: boolean = false) => {\r\n\r\n // Determine the error container based on the provided ID or create a new one if not available\r\n var errorMessageParentContainer;\r\n\r\n if (errorContainerId != '') {\r\n errorMessageParentContainer = document.getElementById(errorContainerId);\r\n } else if (document.querySelectorAll('#js-errorMessageContainer').length > 0) {\r\n errorMessageParentContainer = form.querySelector('#js-errorMessageContainer');\r\n } else {\r\n errorMessageParentContainer = document.createElement('div');\r\n errorMessageParentContainer.classList.add('js-errorMessageContainer');\r\n errorMessageParentContainer.setAttribute('id', 'js-errorMessageContainer');\r\n form.appendChild(errorMessageParentContainer);\r\n }\r\n\r\n if (! errorMessageParentContainer)\r\n {\r\n return false;\r\n }\r\n\r\n // Create the error message container and append it to the error container parent\r\n var errorMessageContainer = document.createElement('div');\r\n errorMessageContainer.classList.add('login-error-message-container', 'active');\r\n\r\n var errorMessageMessageContainer = document.createElement('div');\r\n errorMessageMessageContainer.classList.add('message', 'js-message');\r\n errorMessageMessageContainer.innerHTML = message;\r\n\r\n const errorMessageIconContainer = document.createElement('div');\r\n errorMessageIconContainer.classList.add('icon', 'close', 'js-close');\r\n errorMessageIconContainer.innerHTML = \"\";\r\n\r\n errorMessageContainer.appendChild(errorMessageMessageContainer);\r\n errorMessageContainer.appendChild(errorMessageIconContainer);\r\n\r\n errorMessageParentContainer.appendChild(errorMessageContainer);\r\n\r\n // Optionally, set the success class to display the message in green color\r\n if (isSuccess) {\r\n errorMessageContainer.classList.add('success');\r\n }\r\n\r\n // Listens to when the user clicks on the close button of an error message container\r\n const errorMessageContainerCloseBtn = errorMessageContainer.querySelector('.js-close');\r\n\r\n if (! errorMessageContainerCloseBtn)\r\n {\r\n return false;\r\n }\r\n\r\n errorMessageContainerCloseBtn.addEventListener('click', () => {\r\n if (errorMessageContainer && errorMessageContainer.parentNode) {\r\n errorMessageContainer.parentNode.removeChild(errorMessageContainer);\r\n }\r\n });\r\n\r\n // Set timeout to remove the error message container after the specified duration\r\n setTimeout(() => {\r\n if (errorMessageContainer && errorMessageContainer.parentNode) {\r\n errorMessageContainer.parentNode.removeChild(errorMessageContainer);\r\n }\r\n }, duration);\r\n\r\n // Optionally, log the error message to the console\r\n if (shouldLogToConsole) {\r\n console.error(message);\r\n }\r\n}\r\n\r\n\r\nexport default displayErrorModal;","import displayErrorInline from \"./displayErrorInline\";\r\nimport displayErrorModal from \"./displayErrorModal\";\r\n\r\n/**\r\n * Display an error message in the specified manner.\r\n *\r\n * @param {Object} details - The details of the error message.\r\n * @param {string} details.type - The type of error display (either 'inline' or 'modal').\r\n * @param {string} details.message - The error message to be displayed.\r\n * @param {number} details.duration - The duration for which the error message should be visible.\r\n * @param {HTMLElement} details.element - The HTML element to which the error message is associated.\r\n * @param {boolean} [details.success=false] - A flag indicating whether the operation was successful.\r\n * @returns {boolean} Returns true if the error message was displayed successfully, false otherwise.\r\n */\r\nconst displayError = (details: {\r\n type: string;\r\n message: string;\r\n duration: number;\r\n element: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\r\n success?: boolean;\r\n}): boolean => {\r\n // Destructure the details object\r\n const { type, message, duration, element, success = false } = details;\r\n\r\n // Check if the element is a valid HTML element\r\n if (!(element instanceof HTMLElement)) {\r\n console.error(\"The HTML Element you are trying to use is not found.\");\r\n return false;\r\n }\r\n\r\n // Set the 'position' property of 'element' to 'relative'\r\n element.style.position = 'relative';\r\n\r\n // Determine the type of error display and invoke the appropriate function\r\n if (type === 'inline') {\r\n displayErrorInline(element, message, duration, success);\r\n } else if (type === 'modal') {\r\n displayErrorModal(message, element, '', duration, success);\r\n } else {\r\n // Display an error message for unsupported error display types\r\n console.error(\"The type of error display you specified is not supported.\");\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\n\r\nexport default displayError;","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue } from \"../utilities\";\r\n\r\n/**\r\n * Retrieves data from the provided form element.\r\n * Collects data from input fields, textareas, and select elements with the specified attribute 'data-attr-name'.\r\n * The collected data is stored in an object with attribute names as keys and corresponding input values as values.\r\n * @param {HTMLFormElement | HTMLDivElement | string} u_form - The HTML form element or its ID from which to extract data.\r\n * @returns {Object | boolean} - Returns an object containing form data if successful, or false if the form is not valid or no data is found.\r\n */\r\nconst getFormDetails = (u_form: HTMLFormElement | HTMLDivElement | string): Record | boolean | ErrorMessageInterface => {\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", type: 'error', code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n return false;\r\n }\r\n \r\n\r\n // Check if the form element is provided\r\n if ( ! u_form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\")\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n // Resolve form element by ID if it's a string\r\n const form = typeof u_form === 'string' ? document.getElementById(u_form) : u_form;\r\n \r\n // Check if the form element is provided\r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\");\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n const requestData: Record = {}; // Initialize object to store form data\r\n const shouldContinue: boolean[] = []; // Track extraction process success\r\n\r\n // Extract data from input fields\r\n const allInputsInForm = form.querySelectorAll('input');\r\n allInputsInForm.forEach((input: HTMLInputElement, index: number) => {\r\n const attributeName = input.getAttribute('data-attr-name') || input.getAttribute('name') || index;\r\n let inputValue: string | boolean = input.value;\r\n\r\n // Handle checkbox inputs\r\n if (input.type === 'checkbox') {\r\n inputValue = input.checked;\r\n }\r\n\r\n // Handle radio inputs\r\n if (input.type === 'radio') {\r\n if (input.checked) {\r\n inputValue = true;\r\n } else {\r\n return; // Skip unchecked radio buttons\r\n }\r\n }\r\n\r\n requestData[attributeName] = inputValue; // Store input value in requestData\r\n shouldContinue.push(true);\r\n });\r\n\r\n // Extract data from textareas\r\n const allTextareasInForm = form.querySelectorAll('textarea');\r\n allTextareasInForm.forEach((textarea: HTMLTextAreaElement, index: number) => {\r\n const attributeName = textarea.getAttribute('data-attr-name') || textarea.getAttribute('name') || index;\r\n const textareaValue = textarea.value;\r\n\r\n requestData[attributeName] = textareaValue; // Store textarea value in requestData\r\n shouldContinue.push(true);\r\n });\r\n\r\n // Extract data from select elements\r\n const allSelectsInForm = form.querySelectorAll('select');\r\n allSelectsInForm.forEach((select: HTMLSelectElement, index: number) => {\r\n const attributeName = select.getAttribute('data-attr-name') || select.getAttribute('name') || index;\r\n const selectValue = select.value;\r\n\r\n requestData[attributeName] = selectValue; // Store select value in requestData\r\n shouldContinue.push(true);\r\n });\r\n\r\n // Check if all elements in the form extraction process were successful\r\n if (areAllElementsTrue(shouldContinue)) {\r\n return requestData; // Return the object containing the form data\r\n } else {\r\n return false; // Return false if any part of the form extraction process failed\r\n }\r\n};\r\n\r\nexport default getFormDetails;\r\n","const countString = (str: string): number => {\r\n return str.length;\r\n};\r\n\r\nexport default countString;","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { checkVariableType } from \"../utilities\";\r\nimport countString from \"../utilities/countString\";\r\n\r\n/**\r\n * Count input characters and restrict input while typing in a given input element.\r\n * @param {HTMLInputElement} inputElement - The HTML input element to count and restrict.\r\n * @param {HTMLElement} [counterContainer] - Optional container to display the character count. If not provided, it creates one automatically.\r\n * @param {Object} [options={}] - An object with the following optional properties:\r\n * - maxLength {number}: Maximum allowed characters (default: 250).\r\n * - minLength {number}: Minimum allowed characters (default: 0).\r\n * - shouldButtonDisable {boolean}: Flag to determine whether to disable buttons on reaching maxLength (default: false).\r\n * - formId {string}: The ID of the form element associated with the input.\r\n * @returns {boolean} Return true if the input meets the restrictions, otherwise false.\r\n */\r\nconst restrictInputLengthWithCounter = (inputElement: HTMLInputElement | HTMLTextAreaElement, options: any = {}, counterContainer?: HTMLElement | string): any => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n\r\n // Check if the input element exists.\r\n if (!inputElement) {\r\n // console.error(\"The input element you are trying to count and restrict is not found. Check your HTML code.\");\r\n individualResponseMessage.message = \"The input element you are trying to count and restrict is not found. Check your HTML code.\"\r\n ExceptionHandler(individualResponseMessage.message);\r\n return individualResponseMessage;\r\n }\r\n\r\n // Extract options or set default values.\r\n const maxLength = (options['maxLength'] && parseInt(options['maxLength']) && options['maxLength'] >= 1) ? options['maxLength'] : 250;\r\n const minLength = (options['minLength'] && parseInt(options['minLength'])) ? options['minLength'] : 0;\r\n const shouldButtonDisable = (options['shouldButtonDisable'] && options['shouldButtonDisable']) ? true : false;\r\n\r\n let form;\r\n\r\n if ( options.form && checkVariableType(options.form) === 'string' )\r\n {\r\n document.getElementById(options.form)\r\n }\r\n else if ( options.form && checkVariableType(options.form) === 'HTML Element' )\r\n {\r\n form = options.form\r\n }\r\n else\r\n {\r\n\r\n \r\n if ( document.getElementById(\"nfsfu234_fv_form\") )\r\n {\r\n form = document.getElementById(\"nfsfu234_fv_form\");\r\n }\r\n else if ( document.getElementById(\"jsForm\") )\r\n {\r\n form = document.getElementById(\"jsForm\");\r\n }\r\n else if ( document.querySelector(\"form\") )\r\n {\r\n form = document.querySelector(\"form\");\r\n }\r\n else\r\n {\r\n form = undefined\r\n }\r\n\r\n }\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(individualResponseMessage.message);\r\n return individualResponseMessage;\r\n }\r\n\r\n // Add an event listener to the input element for counting and restricting.\r\n inputElement.addEventListener('input', () => {\r\n // Count the number of characters in the input element.\r\n var textLength = countString(inputElement.value);\r\n var returnMessage = false;\r\n\r\n // Check if a counter container is provided or create one if not.\r\n var counterElement: any;\r\n\r\n if ( checkVariableType(counterContainer) === 'string' )\r\n {\r\n\r\n counterElement = document.getElementById(counterContainer as string)\r\n\r\n }\r\n\r\n if (!counterElement) {\r\n const parentNode = inputElement.parentNode;\r\n\r\n if ( parentNode?.querySelector(\".js-counterContainer\") )\r\n {\r\n counterElement = parentNode.querySelector(\".js-counterContainer\")\r\n }\r\n else\r\n {\r\n counterElement = document.createElement('span');\r\n counterElement.classList.add('js-counterContainer');\r\n if (! parentNode)\r\n {\r\n return false;\r\n }\r\n parentNode.appendChild(counterElement);\r\n }\r\n\r\n \r\n } else {\r\n counterElement = counterElement;\r\n }\r\n\r\n if ( ! counterElement )\r\n {\r\n individualResponseMessage.message = \"Counter Element Not Found\";\r\n ExceptionHandler(individualResponseMessage.message)\r\n return individualResponseMessage;\r\n }\r\n\r\n // Apply restrictions based on character count and options.\r\n if (textLength > maxLength) {\r\n textLength = maxLength;\r\n counterElement.classList.remove('text-fail');\r\n counterElement.classList.add('text-success');\r\n inputElement.value = inputElement.value.slice(0, maxLength);\r\n\r\n // Enable buttons in the associated form (if specified).\r\n if (shouldButtonDisable && form) {\r\n form.querySelectorAll('button').forEach((button: HTMLButtonElement) => {\r\n button.disabled = false;\r\n });\r\n }\r\n\r\n returnMessage = true;\r\n } else if (textLength >= maxLength) {\r\n inputElement.value = inputElement.value.slice(0, maxLength);\r\n counterElement.classList.remove('text-fail');\r\n counterElement.classList.add('text-success');\r\n\r\n // Enable buttons in the associated form (if specified).\r\n if (shouldButtonDisable && form) {\r\n form.querySelectorAll('button').forEach((button: HTMLButtonElement) => {\r\n button.disabled = false;\r\n });\r\n }\r\n\r\n returnMessage = true;\r\n } else if (textLength >= minLength && minLength !== 0) {\r\n counterElement.classList.remove('text-fail');\r\n counterElement.classList.add('text-success');\r\n\r\n // Enable buttons in the associated form (if specified).\r\n if (shouldButtonDisable && form) {\r\n form.querySelectorAll('button').forEach((button: HTMLButtonElement) => {\r\n button.disabled = false;\r\n });\r\n }\r\n\r\n returnMessage = true;\r\n } else {\r\n counterElement.classList.add('text-fail');\r\n\r\n // Enable buttons in the associated form (if specified).\r\n if (shouldButtonDisable && form) {\r\n form.querySelectorAll('button').forEach((button: HTMLButtonElement) => {\r\n button.disabled = false;\r\n });\r\n }\r\n }\r\n\r\n // Update the counter element with the current character count.\r\n counterElement.innerHTML = `${textLength}/${maxLength}`;\r\n\r\n return returnMessage;\r\n });\r\n\r\n};\r\n\r\nexport default restrictInputLengthWithCounter;","// Check if a string contains only integers.\r\nconst containsOnlyIntegers = (str: string | number): boolean => {\r\n return /^\\d+$/.test(str as string);\r\n};\r\n\r\nexport default containsOnlyIntegers;","interface DateFormat {\r\n [key: string]: RegExp;\r\n}\r\n\r\nconst formats: DateFormat = {\r\n \"dd/mm/yyyy\": /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\r\n \"yyyy-mm-dd\": /^\\d{4}-\\d{2}-\\d{2}$/,\r\n \"mm/dd/yyyy\": /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\r\n \"mm.dd.yyyy\": /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\r\n \"yyyy/mm/dd\": /^\\d{4}\\/\\d{1,2}\\/\\d{1,2}$/,\r\n \"yyyy.mm.dd\": /^\\d{4}\\.\\d{1,2}\\.\\d{1,2}$/,\r\n \"time\": /^(0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$/, // 12-hour format\r\n \"24-hour\": /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/, // 24-hour format\r\n \"month\": /^(0?[1-9]|1[0-2])$/, // Month only\r\n \"day\": /^(0?[1-9]|[1-2][0-9]|3[0-1])$/, // Day only\r\n // Add more formats as needed\r\n};\r\n\r\nconst isDate = (value: string, format: string = \"dd/mm/yyyy\"): boolean => {\r\n const regex = formats[format.toLowerCase()];\r\n if (!regex) {\r\n console.error(`Invalid date format: ${format}`);\r\n return false;\r\n }\r\n\r\n return regex.test(value);\r\n};\r\n\r\n// Example usage\r\n// console.log(isDate(\"31/12/2022\", \"dd/mm/yyyy\")); // true\r\n// console.log(isDate(\"12/31/2022\", \"mm/dd/yyyy\")); // true\r\n// console.log(isDate(\"2022-12-31\", \"yyyy-mm-dd\")); // true\r\n// console.log(isDate(\"12.31.2022\", \"mm.dd.yyyy\")); // true\r\n// console.log(isDate(\"2022/12/31\", \"yyyy/mm/dd\")); // true\r\n// console.log(isDate(\"2022.12.31\", \"yyyy.mm.dd\")); // true\r\n// console.log(isDate(\"12:30 PM\", \"time\")); // true\r\n// console.log(isDate(\"23:45\", \"24-hour\")); // true\r\n// console.log(isDate(\"5\", \"month\")); // true\r\n// console.log(isDate(\"15\", \"day\")); // true\r\n\r\n\r\nexport default isDate;\r\n","// Function to validate email format\r\nconst isEmail = (value: string): boolean => {\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return emailRegex.test(value);\r\n};\r\n\r\nexport default isEmail;","const isURL = (url:string) => {\r\n\r\n // Regular expression to check for 'http://' or 'https://' at the beginning\r\n // and support formats like https://www.domain.com/ or https://domain.com/ or https://www.domain.com/?param1=1¶m2=2\r\n const urlPattern = /^(https?:\\/\\/)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}(:\\d{1,5})?(\\/[^\\s]*)?(\\?.*)?$/;\r\n\r\n // If the input is a string, test it against the regular expression.\r\n return typeof url === 'string' ? urlPattern.test(url) : false;\r\n\r\n};\r\n\r\nexport default isURL;","/**\r\n * Checks if the provided value is a valid ZIP code.\r\n * @param {string | number} zipCode - The ZIP code to validate.\r\n * @returns {boolean} - Returns true if the ZIP code is valid, otherwise false.\r\n */\r\nconst isZIP = (zipCode: string | number): boolean => {\r\n // Convert zipCode to a string if it's a number\r\n if (typeof zipCode === 'number') {\r\n zipCode = zipCode.toString() as string;\r\n }\r\n\r\n // Regular expression to match ZIP codes with exactly 5 or 6 digits\r\n const zipCodeRegex = /^\\d{5}(?:\\d{1})?$/;\r\n return zipCodeRegex.test(zipCode);\r\n};\r\n\r\nexport default isZIP;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport displayErrorInline from \"../errorHandling/displayErrorInline\";\r\nimport displayErrorModal from \"../errorHandling/displayErrorModal\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport focusInputElement from \"../utilities/focusInputElement\";\r\n\r\n/**\r\n * Validates a checkbox input field.\r\n * @param {HTMLInputElement} checkboxInputField - The checkbox input field to validate.\r\n * @param {object} customErrorMessage - Custom error messages for checkbox validation.\r\n * @param {boolean} isErrorInline - Flag indicating whether to display the error message inline or in a modal.\r\n * @param {HTMLFormElement} form - The form element containing the checkbox input.\r\n * @returns {boolean} - Returns true if the checkbox input is valid or not required, otherwise false.\r\n */\r\nfunction validateCheckbox(\r\n checkboxInputField: HTMLInputElement,\r\n options: any,\r\n callback?: any\r\n): boolean | ErrorMessageInterface {\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", type: 'error', code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n\r\n const form: HTMLFormElement | HTMLDivElement | undefined = options.form || undefined;\r\n const customErrorMessage: any = options.customErrorMessages || null;\r\n const errorType: string = options.errorType || 'inline'\r\n const includeHTML = options.includeHTML === false ? false : true;\r\n\r\n\r\n const isRequired: boolean = checkboxInputField.hasAttribute('required') || checkboxInputField.classList.contains('js-required');\r\n\r\n const errorMessage: string = (customErrorMessage && customErrorMessage['checkbox'] && customErrorMessage['checkbox'] !== '') ?\r\n customErrorMessage['checkbox'] : 'You need to check this box';\r\n\r\n // Check if the input field is a checkbox\r\n if (checkboxInputField.getAttribute('type') !== 'checkbox') {\r\n return false; // Not a checkbox, return false\r\n }\r\n\r\n if ( ! includeHTML )\r\n {\r\n\r\n // Perform the validation for the select field\r\n if (isRequired && ! checkboxInputField.checked) {\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = checkboxInputField\r\n\r\n return individualResponseMessage; // Validation failed\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist. 5765846846\")\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n const shouldContinue: boolean[] = [];\r\n\r\n // If the checkbox is required and not checked\r\n if (isRequired && ! checkboxInputField.checked) {\r\n\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = checkboxInputField\r\n\r\n // Display the error message inline or in a modal based on the isErrorInline flag\r\n if (errorType === 'inline') {\r\n displayErrorInline(checkboxInputField, errorMessage, 3000);\r\n } else if (errorType === 'modal') {\r\n focusInputElement(checkboxInputField, 3000);\r\n displayErrorModal(errorMessage, form);\r\n }\r\n\r\n // shouldContinue.push(false); // Mark the validation as unsuccessful\r\n return individualResponseMessage; // Validation failed\r\n } else {\r\n // shouldContinue.push(true); // Mark the validation as successful\r\n return true; // Checkbox is valid or not required\r\n }\r\n\r\n}\r\n\r\nexport default validateCheckbox;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport displayErrorInline from \"../errorHandling/displayErrorInline\";\r\nimport displayErrorModal from \"../errorHandling/displayErrorModal\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport focusInputElement from \"../utilities/focusInputElement\";\r\n\r\n/**\r\n * Validates a single radio input or a group of radio inputs.\r\n * @param {HTMLInputElement | string} radioInputField - The radio input element or its name attribute.\r\n * @param {object} customErrorMessage - Custom error message for radio validation.\r\n * @returns {boolean} - Returns true if the radio input(s) are valid, otherwise false.\r\n */\r\nconst validateRadio = (\r\n radioInputField: HTMLInputElement | string, \r\n options: any,\r\n callback?: any\r\n): boolean | string | ErrorMessageInterface => {\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, it must be executed in a browser environment.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"an error occured\", type: 'error', code : 400 };\r\n\r\n const form: HTMLFormElement | HTMLDivElement | undefined = options.form || undefined;\r\n const customErrorMessages: any = options.customErrorMessages || null;\r\n let errorMessage = customErrorMessages['checkbox'] ?? 'You need to choose a value.';\r\n\r\n \r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist. 5765846846\")\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n let radioName: string | null = null;\r\n\r\n // Determine the radio group name\r\n if (typeof radioInputField === 'object' && radioInputField instanceof HTMLInputElement) {\r\n radioName = radioInputField.getAttribute('name');\r\n } else if (typeof radioInputField === 'string') {\r\n radioName = radioInputField;\r\n } else {\r\n\r\n // Check if the select field is valid and exists in the DOM\r\n if (!radioInputField) {\r\n console.error(\"The radio element(s) to validate is(are) not found.\");\r\n individualResponseMessage.message = \"The radio element(s) to validate is(are) not found.\";\r\n return individualResponseMessage;\r\n }\r\n\r\n }\r\n\r\n if ( ! radioName )\r\n {\r\n ExceptionHandler(\"The radio element(s) to validate is(are) not found.\");\r\n individualResponseMessage.message = \"The radio element(s) to validate is(are) not found.\";\r\n return individualResponseMessage;\r\n }\r\n\r\n // Get all radio inputs within the same group\r\n const radioGroup: NodeListOf = document.querySelectorAll(`input[type=\"radio\"][name=\"${radioName}\"]`);\r\n let isRequired: boolean = false;\r\n let isAnyRadioChecked: boolean = false;\r\n const errorType: string = options.errorType || 'inline'\r\n const shouldContinue: boolean[] = [];\r\n let radioInput: any = null;\r\n\r\n // Iterate over each radio input in the group\r\n radioGroup.forEach((radio: HTMLInputElement) => {\r\n\r\n radioInput = radio\r\n\r\n // Check if the radio input is required or has a class \"js-required\"\r\n if (radio.required || radio.classList.contains('js-required')) {\r\n\r\n isRequired = true;\r\n\r\n if (radio.checked) {\r\n\r\n // isAnyRadioChecked = true;\r\n shouldContinue.push(true);\r\n }\r\n else\r\n {\r\n\r\n shouldContinue.push(false);\r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n\r\n const ignoreError = options.ignoreError && options.ignoreError === true ? true : false;\r\n\r\n \r\n\r\n if ( ! ignoreError )\r\n {\r\n\r\n \r\n\r\n // Display the error message inline or in a modal based on the isErrorInline flag\r\n if (errorType === 'inline') {\r\n displayErrorInline(radioInput as HTMLInputElement, errorMessage, 3000);\r\n } else if (errorType === 'modal') {\r\n focusInputElement(radioInput as HTMLInputElement, 3000);\r\n displayErrorModal(errorMessage, form);\r\n }\r\n\r\n\r\n }\r\n\r\n individualResponseMessage.message = \"You need to choose a value.\";\r\n individualResponseMessage.data = radioInput\r\n\r\n // console.error(\"luytoyfouytvctrusatdf: \", individualResponseMessage);\r\n \r\n\r\n return individualResponseMessage;\r\n\r\n};\r\n\r\nexport default validateRadio;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport displayErrorInline from \"../errorHandling/displayErrorInline\";\r\nimport displayErrorModal from \"../errorHandling/displayErrorModal\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { checkVariableType } from \"../utilities\";\r\nimport containsOnlyIntegers from \"../utilities/containsOnlyIntegers\";\r\nimport focusInputElement from \"../utilities/focusInputElement\";\r\nimport isDate from \"../utilities/isDate\";\r\nimport isEmail from \"../utilities/isEmail\";\r\nimport isURL from \"../utilities/isURL\";\r\nimport isZIP from \"../utilities/isZIP\";\r\nimport validateCheckbox from \"./validateCheckbox\";\r\nimport validateRadio from \"./validateRadio\";\r\n\r\n/**\r\n * Validate an input field.\r\n * @param {HTMLInputElement} inputField - The input field to validate.\r\n * @param {Object} customErrorMessages - Custom error messages for form validation.\r\n * @returns {boolean} Returns true if the input field is valid, otherwise false.\r\n */\r\nconst validateInput = (\r\n inputField: HTMLInputElement, \r\n options: any,\r\n callback?: any\r\n): boolean | string | ErrorMessageInterface => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", type: 'error', data: null, code : 400 };\r\n\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n // let logLevel: \r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n \r\n // Check if the input field exists\r\n if (!inputField) {\r\n console.error(\"The input field you are trying to validate does not exist.\");\r\n return false;\r\n }\r\n\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n individualResponseMessage.message = \"options are not provided\"\r\n return individualResponseMessage;\r\n }\r\n\r\n // console.log(\"Input \", inputField);\r\n // console.log(\"OPtions \", options.errorType);\r\n // console.log(\"Form:\", options.form);\r\n \r\n\r\n \r\n \r\n\r\n const errorType: any = options.error_type || options.errorType || 'inline'; \r\n const customErrorMessages: any = options.customErrorMessages || [];\r\n const form: any = options.form ?? undefined;\r\n const includeHTML = options.includeHTML === false ? false : true;\r\n\r\n\r\n const inputType = inputField.getAttribute(\"type\") as string;\r\n const inputValue = inputField.value.trim();\r\n const isRequired = inputField.required || inputField.classList.contains('js-required');\r\n let errorMessage: string | undefined = undefined;\r\n\r\n\r\n if (! includeHTML)\r\n {\r\n\r\n // Check if the input field is required and its value is empty\r\n if (isRequired && inputValue === '') {\r\n errorMessage = customErrorMessages[inputType] ?? \"This field is required.\";\r\n }\r\n else if (isRequired && inputType === 'radio') {\r\n options.ignoreError = true;\r\n const validateRadioResponse = validateRadio(inputField, options);\r\n \r\n if ( validateRadioResponse === true )\r\n {\r\n errorMessage = 'validated'\r\n }\r\n else\r\n {\r\n errorMessage = customErrorMessages[inputType] ?? validateRadioResponse.message;\r\n }\r\n \r\n }\r\n else if (isRequired && inputType === 'checkbox' && !validateCheckbox(inputField, {form: form, customErrorMessages: customErrorMessages})) {\r\n errorMessage = customErrorMessages[inputType] ?? 'You need to check this box';\r\n }\r\n else {\r\n // Perform additional validation based on the input field type\r\n switch (inputType) {\r\n case 'email':\r\n if (inputValue !== '' && !isEmail(inputValue)) {\r\n errorMessage = customErrorMessages.email?.format || \"Invalid email format.\";\r\n }\r\n break;\r\n case 'url':\r\n if (inputValue !== '' && !isURL(inputValue)) {\r\n errorMessage = customErrorMessages.url?.format || \"Invalid URL format.\";\r\n }\r\n break;\r\n case 'zipcode':\r\n if (inputValue !== '' && !isZIP(inputValue)) {\r\n errorMessage = customErrorMessages.zipcode?.format || \"Invalid ZIP code format.\";\r\n }\r\n break;\r\n case 'date':\r\n if (inputValue !== '' && !isDate(inputValue)) {\r\n errorMessage = customErrorMessages.date?.format || \"Invalid date format.\";\r\n }\r\n break;\r\n case 'tel':\r\n if (inputValue !== '' && !containsOnlyIntegers(inputValue)) {\r\n errorMessage = customErrorMessages.tel?.format || customErrorMessages.phone?.format || \"Invalid phone number.\";\r\n }\r\n break;\r\n case 'phone':\r\n if (inputValue !== '' && !containsOnlyIntegers(inputValue)) {\r\n errorMessage = customErrorMessages.tel?.format || customErrorMessages.phone?.format || \"Invalid date format.\";\r\n }\r\n break;\r\n // case 'radio':\r\n // if (inputValue !== '' && !validateRadio(inputField, options)) {\r\n // errorMessage = customErrorMessages.radio?.format || \"Invalid radio button selection.\";\r\n // }\r\n // case 'checkbox':\r\n // if (inputValue !== '' && !validateCheckbox(inputField)) {\r\n // errorMessage = customErrorMessages.checkbox?.format || \"Invalid checkbox selection.\";\r\n // }\r\n\r\n default:\r\n // No additional validation for other input types\r\n break;\r\n }\r\n }\r\n\r\n // Display the error message if validation fails\r\n if (errorMessage) {\r\n \r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = inputField\r\n\r\n // if ( errorType === 'inline' )\r\n // {\r\n // displayErrorInline(inputField, errorMessage)\r\n \r\n // }\r\n // else\r\n // {\r\n // focusInputElement(inputField);\r\n // displayErrorModal(errorMessage, inputField)\r\n // }\r\n\r\n ExceptionHandler(errorMessage);\r\n return individualResponseMessage;\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\")\r\n // failureReturnMessage.push(individualResponseMessage)\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n \r\n\r\n // Get the input field type, value, and required status\r\n // const inputType = inputField.type;\r\n\r\n // console.log(\"inputValue: \", inputValue);\r\n \r\n \r\n // Check if the input field is required and its value is empty\r\n if (isRequired && inputValue === '') {\r\n errorMessage = customErrorMessages[inputType] ?? \"This field is required.\";\r\n }\r\n else if (isRequired && inputType === 'radio') {\r\n options.ignoreError = true;\r\n const validateRadioResponse = validateRadio(inputField, options);\r\n\r\n if ( validateRadioResponse === true )\r\n {\r\n errorMessage = 'validated'\r\n }\r\n else\r\n {\r\n errorMessage = customErrorMessages[inputType] ?? validateRadioResponse.message;\r\n }\r\n\r\n }\r\n else if (isRequired && inputType === 'checkbox' && !validateCheckbox(inputField, {form: form, customErrorMessages: customErrorMessages})) {\r\n errorMessage = customErrorMessages[inputType] ?? 'You need to check this box';\r\n }\r\n else {\r\n // Perform additional validation based on the input field type\r\n switch (inputType) {\r\n case 'email':\r\n if (inputValue !== '' && !isEmail(inputValue)) {\r\n errorMessage = customErrorMessages.email?.format || \"Invalid email format.\";\r\n }\r\n break;\r\n case 'url':\r\n if (inputValue !== '' && !isURL(inputValue)) {\r\n errorMessage = customErrorMessages.url?.format || \"Invalid URL format.\";\r\n }\r\n break;\r\n case 'zipcode':\r\n if (inputValue !== '' && !isZIP(inputValue)) {\r\n errorMessage = customErrorMessages.zipcode?.format || \"Invalid ZIP code format.\";\r\n }\r\n break;\r\n case 'date':\r\n if (inputValue !== '' && !isDate(inputValue)) {\r\n errorMessage = customErrorMessages.date?.format || \"Invalid date format.\";\r\n }\r\n break;\r\n case 'tel':\r\n if (inputValue !== '' && !containsOnlyIntegers(inputValue)) {\r\n errorMessage = customErrorMessages.tel?.format || customErrorMessages.phone?.format || \"Invalid phone number.\";\r\n }\r\n break;\r\n case 'phone':\r\n if (inputValue !== '' && !containsOnlyIntegers(inputValue)) {\r\n errorMessage = customErrorMessages.tel?.format || customErrorMessages.phone?.format || \"Invalid date format.\";\r\n }\r\n break;\r\n // case 'radio':\r\n // if (inputValue !== '' && !validateRadio(inputField, options)) {\r\n // errorMessage = customErrorMessages.radio?.format || \"Invalid radio button selection.\";\r\n // }\r\n // case 'checkbox':\r\n // if (inputValue !== '' && !validateCheckbox(inputField)) {\r\n // errorMessage = customErrorMessages.checkbox?.format || \"Invalid checkbox selection.\";\r\n // }\r\n\r\n // Add additional cases for other input types if needed\r\n default:\r\n // No additional validation for other input types\r\n break;\r\n }\r\n }\r\n\r\n\r\n // Display the error message if validation fails\r\n if (errorMessage) {\r\n \r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = inputField\r\n \r\n if ( errorType === 'inline' )\r\n {\r\n displayErrorInline(inputField, errorMessage)\r\n\r\n }\r\n else\r\n {\r\n focusInputElement(inputField);\r\n displayErrorModal(errorMessage, inputField)\r\n }\r\n\r\n ExceptionHandler(errorMessage);\r\n return individualResponseMessage;\r\n }\r\n\r\n individualResponseMessage.code = 200\r\n individualResponseMessage.data = null\r\n individualResponseMessage.message = \"success\"\r\n individualResponseMessage.type = \"success\"\r\n\r\n return true; // Input field is valid\r\n};\r\n\r\nexport default validateInput;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue } from \"../utilities\";\r\nimport validateInput from \"./validateInput\";\r\n\r\n/**\r\n * Validate all input fields within a form.\r\n * @param {HTMLFormElement | HTMLDivElement} form - The form element to validate.\r\n * @param {Object} customErrorMessages - Custom error messages for form validation.\r\n * @returns {boolean} Returns true if all input fields are valid, otherwise false.\r\n */\r\nconst validateAllInput = (form: HTMLFormElement | HTMLDivElement | string, options = {\r\n customErrorMessages: [],\r\n form\r\n}): ErrorMessageInterface[] | boolean => {\r\n\r\n const failureReturnMessage:ErrorMessageInterface[] = [];\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n \r\n individualResponseMessage.message = \"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"\r\n \r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n return failureReturnMessage;\r\n }\r\n\r\n // Check if the form parameter is a string (ID) and convert it to a form element if necessary\r\n if (typeof form === 'string') {\r\n form = document.getElementById(form) as HTMLFormElement | HTMLDivElement;\r\n }\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n failureReturnMessage.push(individualResponseMessage)\r\n ExceptionHandler(individualResponseMessage.message);\r\n return failureReturnMessage;\r\n }\r\n\r\n const shouldContinue: boolean[] = [];\r\n const allInputsInForm: NodeListOf = form.querySelectorAll('input');\r\n \r\n // If there are input fields in the form\r\n if (allInputsInForm.length > 0) {\r\n\r\n allInputsInForm.forEach((input: HTMLInputElement) => {\r\n\r\n options.form = options.form || form\r\n\r\n // Validate each input field using the validateInput function\r\n const validateInputResponse = validateInput(input, options)\r\n if (validateInputResponse === true) {\r\n shouldContinue.push(true);\r\n } else {\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 , data: null};\r\n\r\n shouldContinue.push(false);\r\n\r\n // console.log(validateInputResponse);\r\n \r\n\r\n let proccessedResponse: string = validateInputResponse.message as string;\r\n\r\n individualResponseMessage.message = proccessedResponse\r\n individualResponseMessage.data = input\r\n\r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n }\r\n });\r\n\r\n } else {\r\n // If there are no input fields in the form, consider it as valid\r\n shouldContinue.push(true);\r\n }\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n\r\n return failureReturnMessage;\r\n\r\n};\r\n\r\nexport default validateAllInput;\r\n","import { checkVariableType } from \"../utilities\";\r\nimport displayErrorInline from \"../errorHandling/displayErrorInline\";\r\nimport displayErrorModal from \"../errorHandling/displayErrorModal\";\r\nimport focusInputElement from \"../utilities/focusInputElement\";\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\n/**\r\n * Validates a select field.\r\n * @param {HTMLSelectElement} selectField - The select element to validate.\r\n * @param {object} customErrorMessage - Custom error message for select validation.\r\n * @param {HTMLElement} form - The form element associated with the select. Default is undefined.\r\n * @param {boolean} isErrorInline - Whether to display error inline or in a modal. Default is false.\r\n * @returns {boolean} - Returns true if validation succeeds, otherwise false.\r\n */\r\nconst validateSelect = (\r\n selectField: HTMLSelectElement,\r\n options: any,\r\n callback?: any\r\n): boolean | ErrorMessageInterface => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", type: 'error', code : 400 };\r\n\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n\r\n // Check if the select field is valid and exists in the DOM\r\n if (!selectField) {\r\n console.error(\"The select element to validate is not found.\");\r\n return false;\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n return false;\r\n }\r\n\r\n const isErrorInline: string = options.error_type || options.errorType || 'inline';\r\n const customErrorMessages: any = options.customErrorMessages || [];\r\n const form: HTMLFormElement | HTMLDivElement | undefined = options.form || undefined;\r\n const includeHTML = options.includeHTML === false ? false : true;\r\n\r\n // Determine if the select field is required based on the 'required' attribute\r\n const isRequired: boolean = selectField.hasAttribute('required') || selectField.classList.contains('js-required');\r\n\r\n // Check if the select field has a value selected\r\n const selectValue: string = selectField.value.trim();\r\n\r\n \r\n // Determine the error message for select validation\r\n let errorMessage: string = customErrorMessages?.select || \"You have to select an option.\";\r\n\r\n if ( ! includeHTML )\r\n {\r\n\r\n // Perform the validation for the select field\r\n if (isRequired && !selectValue) {\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = selectField\r\n\r\n return individualResponseMessage; // Validation failed\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\")\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n\r\n\r\n\r\n // Perform the validation for the select field\r\n if (isRequired && !selectValue) {\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = selectField\r\n\r\n // If the select field is required and no value is selected, show the error message\r\n if (isErrorInline) {\r\n displayErrorInline(selectField, errorMessage, 3000);\r\n } else {\r\n focusInputElement(selectField, 3000);\r\n displayErrorModal(errorMessage, form);\r\n }\r\n return individualResponseMessage; // Validation failed\r\n }\r\n\r\n individualResponseMessage.code = 200\r\n individualResponseMessage.data = null\r\n individualResponseMessage.message = \"success\"\r\n individualResponseMessage.type = \"success\"\r\n\r\n // Validation succeeded\r\n return true;\r\n};\r\n\r\nexport default validateSelect;\r\n","import validateSelect from \"./validateSelect\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\n\r\n/**\r\n * Validate all select fields within a form.\r\n * @param {HTMLFormElement | HTMLDivElement} form - The form element to validate.\r\n * @param {Object} customErrorMessage - Custom error messages for form validation.\r\n * @returns {boolean} Returns true if all select fields are valid or not required, otherwise false.\r\n */\r\nconst validateAllSelect = (form: HTMLFormElement | HTMLDivElement | string, options: any): boolean | ErrorMessageInterface | ErrorMessageInterface[] => {\r\n\r\n const failureReturnMessage:ErrorMessageInterface[] = [];\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n return false;\r\n }\r\n\r\n // Check if the form parameter is a string (ID) and convert it to a form element if necessary\r\n if (typeof form === 'string') {\r\n form = document.getElementById(form) as HTMLFormElement | HTMLDivElement;\r\n }\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n failureReturnMessage.push(individualResponseMessage)\r\n ExceptionHandler(individualResponseMessage.message);\r\n return failureReturnMessage;\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n individualResponseMessage.message = \"options are not provided\"\r\n return individualResponseMessage;\r\n }\r\n\r\n const shouldContinue: boolean[] = [];\r\n const allSelectsInForm: NodeListOf = form.querySelectorAll('select');\r\n\r\n // If there are select fields in the form\r\n if (allSelectsInForm.length > 0) {\r\n // Iterate through all select fields in the form\r\n allSelectsInForm.forEach((select: HTMLSelectElement) => {\r\n\r\n\r\n options.customErrorMessages = options.customErrorMessages ?? [],\r\n options.form = options.form ?? form\r\n\r\n const validateSelectResponse = validateSelect(select, options);\r\n\r\n if (validateSelectResponse === true) {\r\n shouldContinue.push(true); // Validation succeeded for this select field\r\n } else {\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n shouldContinue.push(false); // Validation failed for this select field\r\n let proccessedResponse: string = validateSelectResponse as string;\r\n\r\n individualResponseMessage.message = proccessedResponse\r\n individualResponseMessage.data = select\r\n\r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n }\r\n });\r\n } else {\r\n shouldContinue.push(true); // No select fields found in the form\r\n }\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n \r\n return failureReturnMessage; \r\n};\r\n\r\nexport default validateAllSelect;\r\n","import { checkVariableType } from \"../utilities\";\r\nimport displayErrorInline from \"../errorHandling/displayErrorInline\";\r\nimport displayErrorModal from \"../errorHandling/displayErrorModal\";\r\nimport focusInputElement from \"../utilities/focusInputElement\";\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\n\r\n/**\r\n * Validates a textarea field.\r\n * @param {HTMLTextAreaElement} textareaField - The textarea element to validate.\r\n * @param {object} customErrorMessage - Custom error message for textarea validation.\r\n * @param {boolean} isErrorInline - Whether to display error inline or in a modal. Default is false.\r\n * @param {HTMLElement} form - The form element associated with the textarea. Default is undefined.\r\n * @returns {boolean} - Returns true if validation succeeds, otherwise false.\r\n */\r\nconst validateTextarea = (\r\n textareaField: HTMLTextAreaElement,\r\n options: any,\r\n callback?: any\r\n): boolean | string | ErrorMessageInterface => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", type: 'error', code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, it must be executed in a browser environment.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n\r\n\r\n // Check if the textarea element is valid and exists in the DOM\r\n if ( ! textareaField )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\")\r\n // failureReturnMessage.push(individualResponseMessage)\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n\r\n individualResponseMessage.message = \"options are not provided\";\r\n\r\n return individualResponseMessage;\r\n }\r\n\r\n const isErrorInline: string = options.error_type || options.errorType || 'inline';\r\n const customErrorMessages: any = options.customErrorMessages || [];\r\n const form: HTMLFormElement | HTMLDivElement | undefined = options.form || undefined;\r\n const includeHTML = options.includeHTML === false ? false : true;\r\n\r\n // Determine if the textarea is required based on the 'required' attribute\r\n const isRequired: boolean = textareaField.hasAttribute('required') || textareaField.classList.contains('js-required');\r\n\r\n // Check if the textarea value is empty\r\n const textareaValue: string = textareaField.value.trim();\r\n\r\n // Determine the error message for textarea validation\r\n let errorMessage: string = customErrorMessages?.textarea || \"Textarea cannot be left empty.\";\r\n\r\n if ( ! includeHTML )\r\n {\r\n\r\n // Perform the validation for the select field\r\n if (isRequired && ! textareaValue) {\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = textareaField\r\n\r\n return individualResponseMessage; // Validation failed\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n if ( ! form )\r\n {\r\n\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n ExceptionHandler(\"The form you are trying to validate does not exist.\")\r\n // failureReturnMessage.push(individualResponseMessage)\r\n return individualResponseMessage;\r\n\r\n }\r\n\r\n // Perform the validation for the textarea\r\n if (isRequired && ! textareaValue) {\r\n\r\n ExceptionHandler(errorMessage)\r\n\r\n individualResponseMessage.message = errorMessage;\r\n individualResponseMessage.data = textareaField\r\n\r\n // If the textarea is required and has no value, show the error message\r\n if (isErrorInline === 'inline') {\r\n displayErrorInline(textareaField, errorMessage, 3000);\r\n } else {\r\n focusInputElement(textareaField, 3000);\r\n displayErrorModal(errorMessage, form);\r\n }\r\n\r\n\r\n return individualResponseMessage; // Validation failed\r\n }\r\n\r\n individualResponseMessage.code = 200\r\n individualResponseMessage.data = null\r\n individualResponseMessage.message = \"success\"\r\n individualResponseMessage.type = \"success\"\r\n\r\n // Validation succeeded\r\n return true;\r\n};\r\n\r\nexport default validateTextarea;\r\n","import validateTextarea from \"./validateTextarea\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\n\r\n/**\r\n * Validate all textarea fields within a form.\r\n * @param {HTMLFormElement | HTMLDivElement} form - The form element to validate.\r\n * @param {Object} customErrorMessage - Custom error messages for form validation.\r\n * @returns {boolean} Returns true if all textarea fields are valid or not required, otherwise false.\r\n */\r\nconst validateAllTextarea = (form: HTMLFormElement | HTMLDivElement | string, options: any, callback?: any): ErrorMessageInterface[] | ErrorMessageInterface | boolean => {\r\n const failureReturnMessage:ErrorMessageInterface[] = [];\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n individualResponseMessage.message = \"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"\r\n \r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n return failureReturnMessage;\r\n }\r\n\r\n // Check if the form parameter is a string (ID) and convert it to a form element if necessary\r\n if (typeof form === 'string') {\r\n form = document.getElementById(form) as HTMLFormElement | HTMLDivElement;\r\n }\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n failureReturnMessage.push(individualResponseMessage)\r\n ExceptionHandler(individualResponseMessage.message);\r\n return failureReturnMessage;\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n individualResponseMessage.message = \"options are not provided\"\r\n return individualResponseMessage;\r\n }\r\n\r\n const shouldContinue: boolean[] = [];\r\n const allTextareasInForm: NodeListOf = form.querySelectorAll('textarea');\r\n\r\n // If there are textarea fields in the form\r\n if (allTextareasInForm.length > 0) {\r\n\r\n // Iterate through all textarea fields in the form\r\n allTextareasInForm.forEach((textarea: HTMLTextAreaElement, index: number) => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n options.customErrorMessages = options.customErrorMessages ?? [] \r\n options.errorType = options.errorType ?? 'inline' \r\n options.form = options.form ?? form\r\n\r\n // Call the validateTextarea function for each textarea field\r\n const validateAllTextareaResponse = validateTextarea(textarea,options);\r\n if (validateAllTextareaResponse === true) {\r\n\r\n shouldContinue.push(true); // Validation succeeded for this textarea field\r\n \r\n } else {\r\n\r\n // console.log(validateAllTextareaResponse);\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n \r\n\r\n shouldContinue.push(false); // Validation failed for this textarea field\r\n\r\n let proccessedResponse: string = validateAllTextareaResponse as string;\r\n\r\n individualResponseMessage.message = proccessedResponse\r\n individualResponseMessage.data = textarea\r\n\r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n }\r\n\r\n });\r\n } else {\r\n shouldContinue.push(true); // No textarea fields found in the form\r\n }\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n\r\n // console.log(\"Error87451365: \",failureReturnMessage);\r\n \r\n return failureReturnMessage;\r\n};\r\n\r\nexport default validateAllTextarea;\r\n","// import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\n// import ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\n// import { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\n// import validateAllInput from \"./validateAllnput\";\r\n// import validateAllSelect from \"./validateAllSelect\";\r\n// import validateAllTextarea from \"./validateAllTextarea\";\r\n\r\n// /**\r\n// * Validate Form Inputs, Textareas, and Selects\r\n// * @param {HTMLFormElement} form - The form element to validate.\r\n// * @param {Object} customErrorMessages - Custom error messages for form validation (optional).\r\n// * @param {boolean} isErrorInline - Whether to display error messages inline or in a modal (optional).\r\n// * @returns {boolean} Returns true if form validation passes, otherwise false.\r\n// */\r\n// const validateForm = (form: HTMLFormElement | HTMLDivElement | null, options?: any, isErrorInline?: boolean): boolean | ErrorMessageInterface | ErrorMessageInterface[] => {\r\n\r\n// // Initialize errMsg with default values\r\n// let errMsg: ErrorMessageInterface = { message: \"\", data: null, code : 400 };\r\n// let errMsgArray: ErrorMessageInterface[] = [];\r\n\r\n// // Check if the form exists; if not, log an error to the console and return false\r\n// if (!form) {\r\n// ExceptionHandler(\"Form element not found.\");\r\n\r\n// errMsg.message = \"Form element not found.\";\r\n\r\n// return errMsg;\r\n// }\r\n\r\n\r\n// // if ( checkVariableType(options) !== 'object' )\r\n// // {\r\n// // ExceptionHandler(\"options are not provided\");\r\n// // errMsg.message = \"options are not provided\"\r\n// // errMsgArray.push(errMsg)\r\n// // return errMsgArray;\r\n// // }\r\n\r\n// // Initialize an array to track whether each validation check passes (true) or fails (false)\r\n// const shouldContinue: boolean[] = [];\r\n\r\n// // console.log(\"kytfdkftfln \", options);\r\n \r\n\r\n\r\n// const isValidateAllInputs = validateAllInput(form, options);\r\n// const isValidateAllTextareas = validateAllTextarea(form, options);\r\n// const isValidateAllSelects = validateAllSelect(form, options);\r\n\r\n// if (isValidateAllInputs === true) {\r\n// shouldContinue.push(true);\r\n// } else {\r\n\r\n// let msg:ErrorMessageInterface = {code: 400, message: \"\"};\r\n// let resMsg:ErrorMessageInterface[] = isValidateAllInputs as any;\r\n \r\n// msg.message = \"Inputs Validation Failed\";\r\n// msg.data = resMsg\r\n\r\n// errMsgArray.push(msg)\r\n\r\n// // console.log(\"I AM AN ERROR: \", msg);\r\n// errMsgArray['inputs'] = msg\r\n \r\n// shouldContinue.push(false);\r\n// }\r\n\r\n// if (isValidateAllTextareas === true) {\r\n// shouldContinue.push(true);\r\n// } else {\r\n// shouldContinue.push(false);\r\n// let msg:ErrorMessageInterface = {code: 400, message: \"\"};\r\n// let resMsg:ErrorMessageInterface[] = isValidateAllTextareas as any;\r\n \r\n// msg.message = \"Textarea Validation Failed\";\r\n// msg.data = resMsg\r\n\r\n// errMsgArray.push(msg)\r\n// errMsgArray['textareas'] = msg\r\n\r\n// }\r\n\r\n// if (isValidateAllSelects === true) {\r\n// shouldContinue.push(true);\r\n// } else {\r\n// shouldContinue.push(false);\r\n// let msg:ErrorMessageInterface = {code: 400, message: \"\"};\r\n// let resMsg:ErrorMessageInterface[] = isValidateAllSelects as any;\r\n \r\n// msg.message = \"Selects Validation Failed\";\r\n// msg.data = resMsg\r\n\r\n// errMsgArray.push(msg)\r\n\r\n// errMsgArray['selects'] = msg\r\n// }\r\n\r\n \r\n\r\n// // Check if all elements in the shouldContinue array are equal to true\r\n// const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n// if ( checkIfAllElementsAreTrue )\r\n// {\r\n// return true;\r\n// }\r\n\r\n// const mainResponse:ErrorMessageInterface = {message: \"Form Validation Error\", data: errMsgArray};\r\n\r\n\r\n\r\n// // console.log(\"MAIN RESPONSE: \", mainResponse);\r\n\r\n// return mainResponse;\r\n\r\n// };\r\n\r\n// export default validateForm;\r\n\r\n\r\n\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport validateAllInput from \"./validateAllnput\";\r\nimport validateAllSelect from \"./validateAllSelect\";\r\nimport validateAllTextarea from \"./validateAllTextarea\";\r\n\r\nconst validateForm = (\r\n form: HTMLFormElement | HTMLDivElement | null,\r\n options?: any,\r\n isErrorInline?: boolean\r\n): boolean | ErrorMessageInterface | { [key: string]: ErrorMessageInterface } => {\r\n\r\n let errMsg: ErrorMessageInterface = { message: \"\", data: null, code: 400 };\r\n let errMsgArray: { [key: string]: ErrorMessageInterface } = {};\r\n\r\n if (!form) {\r\n ExceptionHandler(\"Form element not found.\");\r\n errMsg.message = \"Form element not found.\";\r\n return errMsg;\r\n }\r\n\r\n const shouldContinue: boolean[] = [];\r\n\r\n const isValidateAllInputs = validateAllInput(form, options);\r\n const isValidateAllTextareas = validateAllTextarea(form, options);\r\n const isValidateAllSelects = validateAllSelect(form, options);\r\n\r\n if (isValidateAllInputs === true) {\r\n shouldContinue.push(true);\r\n } else {\r\n let msg: ErrorMessageInterface = { code: 400, message: \"\" };\r\n let resMsg: ErrorMessageInterface[] = isValidateAllInputs as any;\r\n\r\n msg.message = \"Inputs Validation Failed\";\r\n msg.data = resMsg;\r\n\r\n errMsgArray['inputs'] = msg;\r\n shouldContinue.push(false);\r\n }\r\n\r\n if (isValidateAllTextareas === true) {\r\n shouldContinue.push(true);\r\n } else {\r\n shouldContinue.push(false);\r\n let msg: ErrorMessageInterface = { code: 400, message: \"\" };\r\n let resMsg: ErrorMessageInterface[] = isValidateAllTextareas as any;\r\n\r\n msg.message = \"Textarea Validation Failed\";\r\n msg.data = resMsg;\r\n\r\n errMsgArray['textareas'] = msg;\r\n }\r\n\r\n if (isValidateAllSelects === true) {\r\n shouldContinue.push(true);\r\n } else {\r\n shouldContinue.push(false);\r\n let msg: ErrorMessageInterface = { code: 400, message: \"\" };\r\n let resMsg: ErrorMessageInterface[] = isValidateAllSelects as any;\r\n\r\n msg.message = \"Selects Validation Failed\";\r\n msg.data = resMsg;\r\n\r\n errMsgArray['selects'] = msg;\r\n }\r\n\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if (checkIfAllElementsAreTrue) {\r\n return true;\r\n }\r\n\r\n const mainResponse: ErrorMessageInterface = {\r\n message: \"Form Validation Error\",\r\n data: errMsgArray\r\n };\r\n\r\n return mainResponse;\r\n};\r\n\r\nexport default validateForm;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport validateCheckbox from \"./validateCheckbox\";\r\n\r\n/**\r\n * Validates all checkbox inputs within a form.\r\n * @param {HTMLFormElement} form - The form element containing the checkbox inputs.\r\n * @param {object} customErrorMessages - Custom error messages for checkbox validation.\r\n * @returns {boolean} - Returns true if all checkbox inputs are valid or not required, otherwise false.\r\n */\r\nconst validateAllCheckbox = (form: HTMLFormElement | HTMLDivElement, options: any): boolean | ErrorMessageInterface | ErrorMessageInterface[] => {\r\n\r\n const failureReturnMessage:ErrorMessageInterface[] = [];\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\");\r\n ExceptionHandler(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\", 'big')\r\n return false;\r\n }\r\n\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist. 5555 0000\";\r\n individualResponseMessage.data = form;\r\n failureReturnMessage.push(individualResponseMessage)\r\n ExceptionHandler(individualResponseMessage.message);\r\n return failureReturnMessage;\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n individualResponseMessage.message = \"options are not provided\"\r\n return individualResponseMessage;\r\n }\r\n\r\n // Array to track the validation results for each checkbox\r\n const shouldContinue: boolean[] = [];\r\n \r\n // Get all checkbox inputs within the form\r\n const allCheckboxesInForm: NodeListOf = form.querySelectorAll('input[type=\"checkbox\"]');\r\n\r\n if (allCheckboxesInForm.length > 0) {\r\n // Iterate over each checkbox input\r\n allCheckboxesInForm.forEach((checkbox: HTMLInputElement) => {\r\n\r\n options.customErrorMessages = options.customErrorMessages ?? [],\r\n options.form = options.form ?? form\r\n\r\n const validateInputResponse = validateCheckbox(checkbox, options);\r\n\r\n // Validate each checkbox input\r\n if (validateInputResponse === true) {\r\n shouldContinue.push(true); // Checkbox is valid or not required\r\n } else {\r\n shouldContinue.push(false); // Checkbox is required and not \r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n shouldContinue.push(false); // Validation failed for this select field\r\n let proccessedResponse: string = validateInputResponse as string;\r\n\r\n individualResponseMessage.message = proccessedResponse\r\n individualResponseMessage.data = checkbox\r\n\r\n failureReturnMessage.push(individualResponseMessage)\r\n }\r\n\r\n });\r\n } else {\r\n shouldContinue.push(true); // No checkboxes found, mark validation as successful\r\n }\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n\r\n // console.log(failureReturnMessage);\r\n\r\n return failureReturnMessage; \r\n\r\n};\r\n\r\nexport default validateAllCheckbox;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport { areAllElementsTrue, checkVariableType } from \"../utilities\";\r\nimport validateRadio from \"./validateRadio\";\r\n\r\n/**\r\n * Validates all radio inputs within a form.\r\n * @param {HTMLElement} form - The form element containing radio inputs to be validated.\r\n * @param {object} customErrorMessage - Custom error message for radio validation.\r\n * @returns {boolean} - Returns true if all radio inputs are valid, otherwise false.\r\n */\r\nconst validateAllRadio = (form: HTMLFormElement | HTMLDivElement | string, options: any): ErrorMessageInterface[] | ErrorMessageInterface | boolean => {\r\n\r\n const failureReturnMessage:ErrorMessageInterface[] = [];\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n // Check if running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\"To access this function, it must be executed in a browser environment.\");\r\n individualResponseMessage.message = \"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"\r\n \r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n return failureReturnMessage;\r\n // return false;\r\n }\r\n\r\n // Check if the form parameter is a string (ID) and convert it to a form element if necessary\r\n if (typeof form === 'string') {\r\n form = document.getElementById(form) as HTMLFormElement | HTMLDivElement;\r\n }\r\n\r\n // Check if the form element exists\r\n if (!form) {\r\n individualResponseMessage.message = \"The form you are trying to validate does not exist.\";\r\n failureReturnMessage.push(individualResponseMessage)\r\n return failureReturnMessage;\r\n }\r\n\r\n if ( checkVariableType(options) !== 'object' )\r\n {\r\n ExceptionHandler(\"options are not provided\");\r\n individualResponseMessage.message = \"options are not provided\"\r\n return individualResponseMessage;\r\n }\r\n\r\n // Get all radio inputs within the form\r\n const allRadiosInForm: NodeListOf = form.querySelectorAll('input[type=\"radio\"]');\r\n const shouldContinue: boolean[] = [];\r\n\r\n // Iterate through each radio input and validate\r\n allRadiosInForm.forEach((radio: HTMLInputElement) => {\r\n\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"\", code : 400 };\r\n\r\n const validateRadioResponse = validateRadio(radio, options);\r\n\r\n if ( validateRadioResponse === true ) {\r\n\r\n shouldContinue.push(true);\r\n\r\n } else {\r\n\r\n shouldContinue.push(false);\r\n\r\n let proccessedResponse: string = validateRadioResponse.message as string;\r\n\r\n individualResponseMessage.message = proccessedResponse\r\n individualResponseMessage.data = radio\r\n\r\n failureReturnMessage.push(individualResponseMessage)\r\n\r\n }\r\n\r\n });\r\n\r\n // Check if all validation results are the same (either all true or all false)\r\n const checkIfAllElementsAreTrue = areAllElementsTrue(shouldContinue);\r\n\r\n if ( checkIfAllElementsAreTrue )\r\n {\r\n return true;\r\n }\r\n \r\n // console.log(failureReturnMessage);\r\n \r\n return failureReturnMessage;\r\n};\r\n\r\nexport default validateAllRadio;\r\n","/**\r\n * Check if a given password meets specific criteria.\r\n * @param {string} password - The password to be checked.\r\n * @param {number} [minLength=8] - The minimum length required for the password (default: 8).\r\n * @param {number} [maxLength=20] - The maximum length allowed for the password (default: 20).\r\n * @param {boolean} [includeSymbolsCheck=false] - Flag to determine if symbols check is required (default: false).\r\n * @param {RegExp | string} [userSymbolRegex=''] - Custom regular expression or string representing symbols to check (default: '').\r\n * @returns {boolean | string} Returns true if the password meets the criteria; otherwise, returns an error message.\r\n */\r\nconst checkPassword = (\r\n password: string,\r\n includeSymbolsCheck: boolean = false,\r\n minLength: number = 8,\r\n maxLength: number = 20,\r\n userSymbolRegex: RegExp | string = ''\r\n): boolean | string => {\r\n // Regular expressions for checking uppercase, lowercase, and numeric characters.\r\n const uppercaseRegex = /[A-Z]/;\r\n const lowercaseRegex = /[a-z]/;\r\n const numbersRegex = /[0-9]/;\r\n\r\n // Check the length of the password.\r\n if (password.length < minLength || password.length > maxLength) {\r\n return `Make sure the length of your password ranges from ${minLength} - ${maxLength} characters`;\r\n }\r\n\r\n // Check if the password contains at least one uppercase letter.\r\n if (!uppercaseRegex.test(password)) {\r\n return \"Your password needs to have at least 1 uppercase (A-Z)\";\r\n }\r\n\r\n // Check if the password contains at least one lowercase letter.\r\n if (!lowercaseRegex.test(password)) {\r\n return \"Your password needs to have at least one lowercase (a-z)\";\r\n }\r\n\r\n // Check if the password contains at least one numeric character.\r\n if (!numbersRegex.test(password)) {\r\n return \"Your password needs to have at least one number (0-9)\";\r\n }\r\n\r\n // If symbols check is required, perform the check.\r\n if (includeSymbolsCheck) {\r\n // Define the regular expression for symbols or use the custom one provided by the user.\r\n const symbolRegex = typeof userSymbolRegex === 'string' ? new RegExp(userSymbolRegex) : userSymbolRegex;\r\n\r\n // Check if the password contains at least one symbol.\r\n if (!symbolRegex.test(password)) {\r\n return \"Your password needs to have one symbol e.g (!@#$%^&*())\";\r\n }\r\n }\r\n\r\n // If all checks pass, return true.\r\n return true;\r\n}\r\n\r\nexport default checkPassword;\r\n","import * as bcrypt from 'bcryptjs';\r\n\r\n\r\n/**\r\n * Hashes a password using bcrypt.\r\n * @param {string} password - The password to be hashed.\r\n * @returns {Promise} A promise that resolves to the hashed password.\r\n */\r\nconst hashPassword = async (password: string): Promise => {\r\n // Generate a unique salt for each password\r\n const salt = await bcrypt.genSalt(10);\r\n\r\n // Hash the password with the generated salt using bcrypt\r\n const hashedPassword = await bcrypt.hash(password, salt);\r\n\r\n return hashedPassword;\r\n};\r\n\r\nexport default hashPassword;\r\n","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport hashPassword from \"./hashPassword\";\r\n\r\n/**\r\n * Generates a random password.\r\n * @param {number} [length] - The length of the generated password. If not provided, a random length between 8 and 18 characters will be used.\r\n * @param {boolean} [shouldHash=false] - A flag indicating whether the generated password should be hashed. Default is false.\r\n * @returns {Promise} - A Promise that resolves to the generated password. If shouldHash is true, resolves to an array containing the plain password and the hashed password.\r\n */\r\nconst generatePassword = async (length: number = Math.floor(Math.random() * 11) + 8, shouldHash: boolean = false): Promise => {\r\n // The minimum length of the generated password.\r\n const minLength: number = 8;\r\n\r\n // The maximum length of the generated password.\r\n const maxLength: number = 18;\r\n\r\n // A string containing all uppercase letters.\r\n const uppercaseLetters: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n\r\n // A string containing all lowercase letters.\r\n const lowercaseLetters: string = \"abcdefghijklmnopqrstuvwxyz\";\r\n\r\n // A string containing all digits (numbers).\r\n const numbers: string = \"0123456789\";\r\n\r\n // A string containing all symbols.\r\n const symbols: string = \"!@#$%^&*()\";\r\n\r\n // The generated password.\r\n let password: string = \"\";\r\n\r\n // Validate the length parameter\r\n if (length < minLength || length > maxLength) {\r\n ExceptionHandler(\"Password length must be between 8 and 18 characters.\", 'error_1');\r\n }\r\n\r\n // Add at least one uppercase letter to the password.\r\n password += uppercaseLetters[Math.floor(Math.random() * uppercaseLetters.length)];\r\n\r\n // Add at least one symbol to the password.\r\n password += symbols[Math.floor(Math.random() * symbols.length)];\r\n\r\n // Add at least one number to the password.\r\n password += numbers[Math.floor(Math.random() * numbers.length)];\r\n\r\n // The number of characters already added to the password.\r\n let charactersAdded: number = 3;\r\n\r\n // Add remaining characters based on the provided length.\r\n while (charactersAdded < length) {\r\n // Choose a random character type: 0 for uppercase letter, 1 for lowercase letter, 2 for symbol, 3 for number.\r\n const randomCharType: number = Math.floor(Math.random() * 4);\r\n\r\n if (randomCharType === 0) {\r\n password += uppercaseLetters[Math.floor(Math.random() * uppercaseLetters.length)];\r\n } else if (randomCharType === 1) {\r\n password += lowercaseLetters[Math.floor(Math.random() * lowercaseLetters.length)];\r\n } else if (randomCharType === 2) {\r\n password += symbols[Math.floor(Math.random() * symbols.length)];\r\n } else {\r\n password += numbers[Math.floor(Math.random() * numbers.length)];\r\n }\r\n\r\n charactersAdded++;\r\n }\r\n\r\n // If shouldHash is true, hash the generated password\r\n if (shouldHash) {\r\n const hashedPassword = await hashPassword(password);\r\n return {0:password, 1:hashedPassword, password:password, hashedPassword:hashedPassword};\r\n }\r\n\r\n\r\n // Return the generated password.\r\n return password;\r\n};\r\n\r\nexport default generatePassword;\r\n","import * as bcrypt from 'bcryptjs';\r\n\r\n/**\r\n * Verify a password against a hashed password.\r\n * @param {string} stringPassword - The plain text password to verify.\r\n * @param {string} hashedPassword - The hashed password to compare against.\r\n * @param {boolean} [isHashed=false] - Indicates whether the provided password is already hashed. Default is false.\r\n * @returns {Promise} Returns a promise that resolves to true if the passwords match, false otherwise.\r\n */\r\nconst verifyPassword = async (stringPassword: string, hashedPassword: string, isHashed: boolean = false): Promise => {\r\n try {\r\n if (isHashed) {\r\n // Use bcrypt.compare to compare hashed passwords.\r\n const match = await bcrypt.compare(stringPassword, hashedPassword);\r\n return match; // Return the result of the comparison.\r\n } else {\r\n // Compare plain text passwords directly.\r\n return stringPassword === hashedPassword;\r\n }\r\n } catch (error) {\r\n console.error(\"Error comparing passwords: \", error); // Log an error if bcrypt.compare encounters an issue.\r\n return false; // Return false in case of an error.\r\n }\r\n};\r\n\r\nexport default verifyPassword;\r\n","/**\r\n * Checks the type of a variable and returns a string representation of the type.\r\n * If the type cannot be determined, returns 'unknown'.\r\n *\r\n * @param {*} variable - The variable whose type needs to be checked.\r\n * @returns {string} A string representing the type of the variable, or 'unknown'.\r\n */\r\nconst checkVariableType = (variable: any): string => {\r\n // Check if the variable is a string\r\n if (typeof variable === 'string') {\r\n return 'string';\r\n }\r\n // Check if the variable is a number\r\n else if (typeof variable === 'number') {\r\n return 'number';\r\n }\r\n // Check if the variable is a boolean\r\n else if (typeof variable === 'boolean') {\r\n return 'boolean';\r\n }\r\n // Check if the variable is undefined\r\n else if (typeof variable === 'undefined') {\r\n return 'undefined';\r\n }\r\n // Check if the variable is null\r\n else if (variable === null) {\r\n return 'null';\r\n }\r\n // Check if the variable is an HTMLElement (assumes that HTMLElement is defined in the environment)\r\n else if (variable instanceof HTMLElement) {\r\n return 'HTML Element';\r\n }\r\n // Check if the variable is an array\r\n else if (typeof variable === 'object' && variable instanceof Array) {\r\n return 'array';\r\n }\r\n // Check if the variable is an object\r\n else if (typeof variable === 'object' && variable instanceof Object) {\r\n return 'object';\r\n }\r\n // Check if the variable is a function\r\n else if (typeof variable === 'function') {\r\n return 'function';\r\n }\r\n // If none of the above conditions match, the data type is unknown\r\n else {\r\n return 'null';\r\n }\r\n}\r\n\r\nexport default checkVariableType;","const isOnline = (): boolean => {\r\n // Check if the code is running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\r\n \"You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work.\"\r\n );\r\n return false;\r\n }\r\n\r\n // Check if the browser reports that it is online\r\n if (navigator.onLine) {\r\n return true;\r\n }\r\n\r\n // Return false if the browser is not online\r\n return false;\r\n};\r\n\r\nexport default isOnline;","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport ErrorMessageInterface from \"../interfaces/ErrorMessagesInterface\";\r\nimport checkVariableType from \"../utilities/checkVariableType\";\r\n\r\n/**\r\n * Changes the content of a button or input element to a specified message while providing loading feedback.\r\n * @param {string} message - The message to set as the content of the button or input element.\r\n * @param {string | HTMLElement | null} submitBtn - The button or input element to update.\r\n * @param {string | HTMLElement | null} form - The HTML form element or its ID.\r\n * @returns {boolean} Returns true if the operation is successful, false if the button is not found.\r\n */\r\nconst loading = (message: string, submitBtn: string | HTMLElement | null = null, form: string | HTMLElement | null = null): boolean | ErrorMessageInterface => {\r\n let btn: HTMLElement | null = null; // Initialize btn to null\r\n let individualResponseMessage: ErrorMessageInterface = { message: \"error\", type: 'error', code : 400 };\r\n\r\n\r\n // Check the type of submitBtn and find the corresponding element\r\n if (checkVariableType(submitBtn) === 'HTML Element') {\r\n btn = submitBtn as HTMLElement;\r\n } else if (typeof submitBtn === 'string') {\r\n btn = document.getElementById(submitBtn);\r\n } else if (submitBtn === null && form) {\r\n // Attempt to find a suitable button element if submitBtn is null\r\n const formElement = typeof form === 'string' ? document.getElementById(form) : form;\r\n if (formElement instanceof HTMLFormElement || formElement instanceof HTMLDivElement) {\r\n btn = formElement.querySelector('button[type=\"submit\"], input[type=\"submit\"], #jsSubmit, input[type=\"search\"], button');\r\n }\r\n } else {\r\n // Handle the case where the button is not found\r\n // console.error(\"The button element specified is not found.\");\r\n individualResponseMessage.message = \"The button element specified is not found.\";\r\n ExceptionHandler(individualResponseMessage.message)\r\n return individualResponseMessage;\r\n }\r\n\r\n if (!btn) {\r\n individualResponseMessage.message = \"The button element specified is not found.\";\r\n ExceptionHandler(individualResponseMessage.message)\r\n return individualResponseMessage;\r\n }\r\n\r\n // Update the content of the button with the provided message\r\n if (btn) {\r\n if (btn.tagName.toLowerCase() === 'input') {\r\n (btn as HTMLInputElement).value = message;\r\n } else {\r\n btn.innerHTML = message;\r\n }\r\n return true;\r\n }\r\n\r\n individualResponseMessage.message = \"The button element specified is not found.\";\r\n ExceptionHandler(individualResponseMessage.message)\r\n return individualResponseMessage;\r\n};\r\n\r\nexport default loading;\r\n","import getPageUrl from \"./getPageUrl\";\r\n\r\n/**\r\n * Redirects the user to a specified URL, either immediately or after a specified delay.\r\n *\r\n * If the code is running in a browser environment, it uses window.location.href for redirection.\r\n * In a non-browser environment (e.g., Node.js console), it logs a message indicating the redirection.\r\n *\r\n * @param {string} [url=getPageUrl()] - An optional URL to which the user should be redirected.\r\n * Defaults to the current page's URL if not provided.\r\n * @param {number} [delay=0] - An optional parameter to delay redirection in seconds.\r\n */\r\nconst redirect = (url: string | null = null , delay: number = 0) => {\r\n\r\n\r\n if ( ! url )\r\n {\r\n url = getPageUrl() as string;\r\n }\r\n\r\n // Check if the code is running in a browser environment\r\n if (typeof window !== 'undefined') {\r\n // Redirect in a browser environment after the specified delay\r\n setTimeout(() => {\r\n window.location.href = url;\r\n }, delay * 1000); // Convert seconds to milliseconds\r\n } else {\r\n // Running in a non-browser environment (e.g., Node.js console)\r\n console.log(`Redirecting to: ${url || 'current page'} (Delayed: ${delay} seconds)`);\r\n }\r\n\r\n};\r\n\r\nexport default redirect;","const reset = (form: HTMLFormElement | HTMLDivElement | string | null = null): boolean => {\r\n // Check if the code is running in a browser environment\r\n if (typeof window === 'undefined') {\r\n console.error(\r\n \"You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work.\"\r\n );\r\n return false;\r\n }\r\n\r\n // Get the target form element\r\n let targetForm: HTMLElement | null = null;\r\n if (typeof form === 'string') {\r\n // If the form parameter is a string, assume it's an ID and try to find the element\r\n targetForm = document.getElementById(form);\r\n if (!targetForm) {\r\n console.error(`Form with ID \"${form}\" not found.`);\r\n return false;\r\n }\r\n } else if (form instanceof HTMLFormElement || form instanceof HTMLDivElement) {\r\n // If the form parameter is a valid HTMLFormElement or HTMLDivElement, use it directly\r\n targetForm = form;\r\n } else if (form === null) {\r\n // If no form parameter is provided, default to the document's body\r\n targetForm = document.body;\r\n } else {\r\n console.error(\"Invalid form parameter.\");\r\n return false;\r\n }\r\n\r\n // Select all form elements within the target form\r\n const allFormElements = targetForm.querySelectorAll('input, textarea, select');\r\n\r\n // Reset the values of input fields, textareas, and selected index of select elements\r\n allFormElements.forEach((element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => {\r\n if (element instanceof HTMLInputElement) {\r\n if (element.type === 'radio' || element.type === 'checkbox') {\r\n element.checked = false;\r\n } else {\r\n element.value = '';\r\n }\r\n } else if (element instanceof HTMLTextAreaElement) {\r\n element.value = '';\r\n } else if (element instanceof HTMLSelectElement) {\r\n element.selectedIndex = 0;\r\n }\r\n });\r\n\r\n return true;\r\n};\r\n\r\nexport default reset;\r\n","import { checkVariableType } from \".\";\r\nimport { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\n\r\n/**\r\n * Toggles the visibility of a password input and updates the corresponding visibility icon.\r\n * @param {HTMLElement} input - The password input element.\r\n * @param {Element} [showIcon=null] - Icon for showing the password.\r\n * @param {Element} [hideIcon=null] - Icon for hiding the password.\r\n * @returns {void}\r\n */\r\nconst togglePasswordVisibility = (input: HTMLInputElement, showIcon: string | HTMLElement | null = null, hideIcon: string | HTMLElement | null = null): boolean | any => {\r\n\r\n\r\n let allTogglePasswordsButton : any | undefined = document.querySelectorAll('.nfsfu234_fv_togglePassword') || document.querySelectorAll('.js-togglePassword') || undefined;\r\n \r\n // if ( allTogglePasswordsButton.length < 1 )\r\n // {\r\n\r\n // allTogglePasswordsButton = document.querySelectorAll('.js-togglePassword');\r\n\r\n // }\r\n \r\n // if ( allTogglePasswordsButton.length < 1 )\r\n // {\r\n\r\n // allTogglePasswordsButton = undefined;\r\n\r\n // }\r\n\r\n\r\n if ( ! allTogglePasswordsButton )\r\n {\r\n ExceptionHandler(\"No Toggle Password Button was found. Check your HTML Code\", 'error_1')\r\n return false;\r\n }\r\n\r\n function updateIcon(inputType:string, iconContainer:HTMLElement) {\r\n\r\n if (showIcon === null) {\r\n // iconContainer.appendChild(showIcon.cloneNode(true));\r\n\r\n // iconContainer.innerHTML = \"\"\r\n\r\n showIcon = \"show\"\r\n\r\n } \r\n \r\n if (hideIcon === null) {\r\n // iconContainer.appendChild(hideIcon.cloneNode(true));\r\n\r\n // iconContainer.innerHTML = \"\"\r\n\r\n hideIcon = \"hide\"\r\n\r\n }\r\n\r\n // Append the appropriate icon.\r\n if (inputType === 'password' && showIcon !== null) {\r\n // iconContainer.appendChild(showIcon.cloneNode(true));\r\n\r\n iconContainer.innerHTML = \"\"\r\n\r\n if ( typeof showIcon === \"string\" )\r\n {\r\n iconContainer.innerHTML = showIcon\r\n }\r\n else if ( checkVariableType(showIcon) === \"HTML Element\" )\r\n {\r\n iconContainer.appendChild(showIcon)\r\n }\r\n else\r\n {\r\n iconContainer.innerHTML = showIcon\r\n }\r\n\r\n } else if (inputType === 'text' && hideIcon !== null) {\r\n // iconContainer.appendChild(hideIcon.cloneNode(true));\r\n iconContainer.innerHTML = \"\"\r\n\r\n if ( typeof hideIcon === \"string\" )\r\n {\r\n iconContainer.innerHTML = hideIcon\r\n }\r\n else if ( checkVariableType(hideIcon) === \"HTML Element\" )\r\n {\r\n iconContainer.appendChild(hideIcon)\r\n }\r\n else\r\n {\r\n iconContainer.innerHTML = showIcon\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n allTogglePasswordsButton.forEach( (toggleBtn: HTMLElement) => {\r\n\r\n let inputType = input.type;\r\n const iconContainer: HTMLElement | null = input.nextElementSibling as HTMLElement;\r\n\r\n updateIcon(inputType, iconContainer)\r\n\r\n toggleBtn.addEventListener('click', ()=>{\r\n\r\n // Toggle the input type between 'password' and 'text'.\r\n input.type = input.type === 'password' ? 'text' : 'password';\r\n\r\n // Update the visibility icon based on the current input type.\r\n const inputType: string = input.type;\r\n if (iconContainer) {\r\n // Clear existing icon content.\r\n // iconContainer.textContent = '';\r\n\r\n updateIcon(inputType, iconContainer)\r\n\r\n }\r\n\r\n })\r\n\r\n } )\r\n\r\n\r\n\r\n};\r\n\r\n\r\nexport default togglePasswordVisibility;","import { ExceptionHandler } from \"../errorHandling/ExceptionHandler\";\r\nimport togglePasswordVisibility from \"./togglePasswordVisibility\";\r\n\r\n/**\r\n * Toggles the visibility of password inputs and updates corresponding visibility icons.\r\n * @param {object} [icons={}] - Object containing icons for showing and hiding the password.\r\n * @param {Element} [icons.show=null] - Icon for showing the password.\r\n * @param {Element} [icons.hide=null] - Icon for hiding the password.\r\n * @param {string | HTMLElement} [uform=null] - The form element or its ID.\r\n * @param {boolean} [toggleAll=false] - Flag indicating whether to toggle all password inputs.\r\n * @returns {void}\r\n */\r\nconst togglePasswordVisibilityAll = (icons: { show?: string | HTMLElement | null, hide?: string | HTMLElement | null } = {}, uform: string | HTMLFormElement | HTMLDivElement | null = null, toggleAll: boolean = false): void => {\r\n // Get the form element based on the provided ID or directly.\r\n const form: HTMLElement | null = typeof uform === 'string' ? document.getElementById(uform) : uform;\r\n\r\n if (!form) {\r\n console.error('Form element not found.');\r\n ExceptionHandler(\"Form Element not found\");\r\n return;\r\n }\r\n\r\n // Get all password inputs within the specified form.\r\n const allPasswordInputs: NodeListOf = form.querySelectorAll('input[type=\"password\"]');\r\n\r\n // Get the icon elements for showing and hiding the password.\r\n const showIcon: string | HTMLElement | null = icons.show || null;\r\n const hideIcon: string | HTMLElement | null = icons.hide || null;\r\n\r\n if (toggleAll) {\r\n // Toggle visibility for all password inputs.\r\n allPasswordInputs.forEach((input: HTMLInputElement) => {\r\n togglePasswordVisibility(input, showIcon, hideIcon);\r\n });\r\n } else {\r\n // Toggle visibility for the first password input.\r\n if (allPasswordInputs.length > 0) {\r\n togglePasswordVisibility(allPasswordInputs[0], showIcon, hideIcon);\r\n }\r\n }\r\n};\r\n\r\n\r\nexport default togglePasswordVisibilityAll;"]} \ No newline at end of file +{"version":3,"sources":["c:\\xampp\\htdocs\\@libraries\\NFSFU234FormValidation\\NFSFU234-FormValidation\\dist\\js\\nfsfu234FormValidation.global.js"],"names":["lr","r","e","n","t","message","type","code","window","console","error","E","f","form","l","customErrorMessages","b","errorType","m","includeHTML","x","hasAttribute","classList","contains","g","checkbox","getAttribute","checked","data","u","k","R","C","Be","Object","create","Te","defineProperty","Ve","getOwnPropertyDescriptor","Oe","getOwnPropertyNames","_e","getPrototypeOf","$e","prototype","hasOwnProperty","ie","require","Proxy","get","apply","arguments","Error","Le","exports","Ge","call","enumerable","ve","__esModule","value","ke","Re","N","define","amd","dcodeIO","bcrypt","c","randomBytes","i","self","crypto","msCrypto","getRandomValues","Uint32Array","Array","slice","setRandomFallback","genSaltSync","q","s","push","toString","w","join","genSalt","o","a","d","Promise","y","T","hashSync","fe","hash","bind","h","length","charCodeAt","compareSync","substr","compare","getRounds","parseInt","split","getSalt","substring","process","nextTick","setImmediate","setTimeout","M","encodeUTF16toUTF8","String","fromCharCode","p","L","v","I","D","MAX_CODEPOINT","encodeUTF8","decodeUTF8","indexOf","name","bytes","RangeError","UTF16toUTF8","UTF8toUTF16","decodeUTF8toUTF16","calculateCodePoint","calculateUTF8","calculateUTF16asUTF8","Date","now","ge","B","pe","ye","Ee","Z","V","key","offp","he","Se","Me","Int32Array","O","A","Y","charAt","encodeBase64","decodeBase64","ue","En","Ce","j","ERROR","ERROR_1","CONSOLE","THROW","WARNING","INFO","warn","log","F","every","H","HTMLElement","Ze","location","href","_","Ye","fetch","ok","json","status","headers","url","statusText","We","RequestMethod","RequestHeader","RequestBodyIgnore","RequestType","includes","RequestBody","method","body","JSON","stringify","Je","le","ze","focus","add","remove","Xe","document","createElement","innerHTML","parentNode","appendChild","removeChild","Ke","getElementById","querySelectorAll","querySelector","setAttribute","addEventListener","Qe","duration","element","success","style","position","He","er","forEach","ce","rr","X","tr","maxLength","minLength","shouldButtonDisable","disabled","Ie","nr","test","P","ar","time","month","day","or","toLowerCase","de","sr","W","fr","J","ir","$","U","cr","HTMLInputElement","required","ignoreError","S","dr","error_type","trim","email","format","zipcode","date","tel","phone","K","xr","Q","ur","select","ee","mr","re","br","textarea","te","gr","ne","pr","inputs","textareas","selects","xe","yr","we","Er","Ae","hr","RegExp","Fe","ae","Mr","oe","Tr","Math","floor","random","password","hashedPassword","me","De","Lr","be","vr","G","Hr","navigator","onLine","je","Ir","HTMLFormElement","HTMLDivElement","tagName","qe","wr","Ne","Ar","HTMLTextAreaElement","HTMLSelectElement","selectedIndex","Pe","Fr","nextElementSibling","z","Rr","show","hide","Ue","se","preventDefault","AJAXResult","populateOptionsVariables","isAjax","ajaxOptions","toUpperCase","attributes","match","keys","submit","then","displayError","catch","validate","ajax","getAJAXResponse","getFormDetails","loading","isEmail","isURL","isNumber","isZipCode","isZip","countString","generatePassword","generateRandomPassword","passwordStrength","getPasswordStrength","checkPassword","verifyPassword","passwordMatch","hashPassword","togglePasswordVisibility","togglePasswordVisibilityAll","validateInput","validateAllInput","validateRadio","validateAllRadio","validateCheckbox","validateAllCheckbox","validateSelect","validateAllSelect","validateTextarea","validateAllTextarea","restrictInputWithCounter","containsOnlyIntegers","getPageURL","redirect","checkVariableType","isOnline","reset","NFSFU234FormValidation","ya"],"mappings":"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WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,SAAS,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,WAAW,UAAU,WAAW,SAAS,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS,WAAW,SAAS,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,UAAU,SAAS,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,SAAS,WAAW,SAAS,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,SAAS,SAAS,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,SAAS,WAAW,UAAU,WAAW,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","sourcesContent":["\"use strict\";(()=>{var Be=Object.create;var Te=Object.defineProperty;var Ve=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var ie=(r=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(r,{get:(e,n)=>(typeof require<\"u\"?require:e)[n]}):r)(function(r){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+r+'\" is not supported')});var Le=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Ge=(r,e,n,t)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let f of Oe(e))!$e.call(r,f)&&f!==n&&Te(r,f,{get:()=>e[f],enumerable:!(t=Ve(e,f))||t.enumerable});return r};var ve=(r,e,n)=>(n=r!=null?Be(_e(r)):{},Ge(e||!r||!r.__esModule?Te(n,\"default\",{value:r,enumerable:!0}):n,r));var ke=Le((Re,N)=>{\"use strict\";(function(r,e){typeof define==\"function\"&&define.amd?define([],e):typeof ie==\"function\"&&typeof N==\"object\"&&N&&N.exports?N.exports=e():(r.dcodeIO=r.dcodeIO||{}).bcrypt=e()})(Re,function(){\"use strict\";var r={},e=null;function n(c){if(typeof N<\"u\"&&N&&N.exports)try{return ie(\"crypto\").randomBytes(c)}catch{}try{var i;return(self.crypto||self.msCrypto).getRandomValues(i=new Uint32Array(c)),Array.prototype.slice.call(i)}catch{}if(!e)throw Error(\"Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative\");return e(c)}var t=!1;try{n(1),t=!0}catch{}e=null,r.setRandomFallback=function(c){e=c},r.genSaltSync=function(c,i){if(c=c||q,typeof c!=\"number\")throw Error(\"Illegal arguments: \"+typeof c+\", \"+typeof i);c<4?c=4:c>31&&(c=31);var s=[];return s.push(\"$2a$\"),c<10&&s.push(\"0\"),s.push(c.toString()),s.push(\"$\"),s.push(u(n(w),w)),s.join(\"\")},r.genSalt=function(c,i,s){if(typeof i==\"function\"&&(s=i,i=void 0),typeof c==\"function\"&&(s=c,c=void 0),typeof c>\"u\")c=q;else if(typeof c!=\"number\")throw Error(\"illegal arguments: \"+typeof c);function o(a){l(function(){try{a(null,r.genSaltSync(c))}catch(d){a(d)}})}if(s){if(typeof s!=\"function\")throw Error(\"Illegal callback: \"+typeof s);o(s)}else return new Promise(function(a,d){o(function(y,T){if(y){d(y);return}a(T)})})},r.hashSync=function(c,i){if(typeof i>\"u\"&&(i=q),typeof i==\"number\"&&(i=r.genSaltSync(i)),typeof c!=\"string\"||typeof i!=\"string\")throw Error(\"Illegal arguments: \"+typeof c+\", \"+typeof i);return fe(c,i)},r.hash=function(c,i,s,o){function a(d){typeof c==\"string\"&&typeof i==\"number\"?r.genSalt(i,function(y,T){fe(c,T,d,o)}):typeof c==\"string\"&&typeof i==\"string\"?fe(c,i,d,o):l(d.bind(this,Error(\"Illegal arguments: \"+typeof c+\", \"+typeof i)))}if(s){if(typeof s!=\"function\")throw Error(\"Illegal callback: \"+typeof s);a(s)}else return new Promise(function(d,y){a(function(T,h){if(T){y(T);return}d(h)})})};function f(c,i){for(var s=0,o=0,a=0,d=c.length;a=c.length?null:c.charCodeAt(s++)},function(o){i.push(o)}),i}var m=\"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),x=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],g=String.fromCharCode;function u(c,i){var s=0,o=[],a,d;if(i<=0||i>c.length)throw Error(\"Illegal len: \"+i);for(;s>2&63]),a=(a&3)<<4,s>=i){o.push(m[a&63]);break}if(d=c[s++]&255,a|=d>>4&15,o.push(m[a&63]),a=(d&15)<<2,s>=i){o.push(m[a&63]);break}d=c[s++]&255,a|=d>>6&3,o.push(m[a&63]),o.push(m[d&63])}return o.join(\"\")}function p(c,i){var s=0,o=c.length,a=0,d=[],y,T,h,L,v,I;if(i<=0)throw Error(\"Illegal len: \"+i);for(;s>>0,v|=(T&48)>>4,d.push(g(v)),++a>=i||s>=o)||(I=c.charCodeAt(s++),h=I>>0,v|=(h&60)>>2,d.push(g(v)),++a>=i||s>=o)));)I=c.charCodeAt(s++),L=I>>0,v|=L,d.push(g(v)),++a;var D=[];for(s=0;s>6&31|192),s(o&63|128)):o<65536?(s(o>>12&15|224),s(o>>6&63|128),s(o&63|128)):(s(o>>18&7|240),s(o>>12&63|128),s(o>>6&63|128),s(o&63|128)),o=null},c.decodeUTF8=function(i,s){for(var o,a,d,y,T=function(h){h=h.slice(0,h.indexOf(null));var L=Error(h.toString());throw L.name=\"TruncatedError\",L.bytes=h,L};(o=i())!==null;)if(!(o&128))s(o);else if((o&224)===192)(a=i())===null&&T([o,a]),s((o&31)<<6|a&63);else if((o&240)===224)((a=i())===null||(d=i())===null)&&T([o,a,d]),s((o&15)<<12|(a&63)<<6|d&63);else if((o&248)===240)((a=i())===null||(d=i())===null||(y=i())===null)&&T([o,a,d,y]),s((o&7)<<18|(a&63)<<12|(d&63)<<6|y&63);else throw RangeError(\"Illegal starting byte: \"+o)},c.UTF16toUTF8=function(i,s){for(var o,a=null;(o=a!==null?a:i())!==null;){if(o>=55296&&o<=57343&&(a=i())!==null&&a>=56320&&a<=57343){s((o-55296)*1024+a-56320+65536),a=null;continue}s(o)}a!==null&&s(a)},c.UTF8toUTF16=function(i,s){var o=null;for(typeof i==\"number\"&&(o=i,i=function(){return null});o!==null||(o=i())!==null;)o<=65535?s(o):(o-=65536,s((o>>10)+55296),s(o%1024+56320)),o=null},c.encodeUTF16toUTF8=function(i,s){c.UTF16toUTF8(i,function(o){c.encodeUTF8(o,s)})},c.decodeUTF8toUTF16=function(i,s){c.decodeUTF8(i,function(o){c.UTF8toUTF16(o,s)})},c.calculateCodePoint=function(i){return i<128?1:i<2048?2:i<65536?3:4},c.calculateUTF8=function(i){for(var s,o=0;(s=i())!==null;)o+=c.calculateCodePoint(s);return o},c.calculateUTF16asUTF8=function(i){var s=0,o=0;return c.UTF16toUTF8(i,function(a){++s,o+=c.calculateCodePoint(a)}),[s,o]},c}();Date.now=Date.now||function(){return+new Date};var w=16,q=10,ge=16,B=100,pe=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],ye=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],Ee=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892];function Z(c,i,s,o){var a,d=c[i],y=c[i+1];return d^=s[0],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[1],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[2],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[3],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[4],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[5],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[6],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[7],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[8],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[9],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[10],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[11],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[12],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[13],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[14],a=o[d>>>24],a+=o[256|d>>16&255],a^=o[512|d>>8&255],a+=o[768|d&255],y^=a^s[15],a=o[y>>>24],a+=o[256|y>>16&255],a^=o[512|y>>8&255],a+=o[768|y&255],d^=a^s[16],c[i]=y^s[ge+1],c[i+1]=d,c}function V(c,i){for(var s=0,o=0;s<4;++s)o=o<<8|c[i]&255,i=(i+1)%c.length;return{key:o,offp:i}}function he(c,i,s){for(var o=0,a=[0,0],d=i.length,y=s.length,T,h=0;h31)if(T=Error(\"Illegal number of rounds (4-31): \"+s),o){l(o.bind(this,T));return}else throw T;if(i.length!==w)if(T=Error(\"Illegal salt length: \"+i.length+\" != \"+w),o){l(o.bind(this,T));return}else throw T;s=1<>>0;var h,L,v=0,I;Int32Array?(h=new Int32Array(pe),L=new Int32Array(ye)):(h=pe.slice(),L=ye.slice()),Se(i,c,h,L);function D(){if(a&&a(v/s),vB)););else{for(v=0;v<64;v++)for(I=0;I>1;I++)Z(d,I<<1,h,L);var A=[];for(v=0;v>24&255)>>>0),A.push((d[v]>>16&255)>>>0),A.push((d[v]>>8&255)>>>0),A.push((d[v]&255)>>>0);if(o){o(null,A);return}else return A}o&&l(D)}if(typeof o<\"u\")D();else for(var Y;;)if(typeof(Y=D())<\"u\")return Y||[]}function fe(c,i,s,o){var a;if(typeof c!=\"string\"||typeof i!=\"string\")if(a=Error(\"Invalid string / salt: Not a string\"),s){l(s.bind(this,a));return}else throw a;var d,y;if(i.charAt(0)!==\"$\"||i.charAt(1)!==\"2\")if(a=Error(\"Invalid salt version: \"+i.substring(0,2)),s){l(s.bind(this,a));return}else throw a;if(i.charAt(2)===\"$\")d=\"\\0\",y=3;else{if(d=i.charAt(2),d!==\"a\"&&d!==\"b\"&&d!==\"y\"||i.charAt(3)!==\"$\")if(a=Error(\"Invalid salt revision: \"+i.substring(2,4)),s){l(s.bind(this,a));return}else throw a;y=4}if(i.charAt(y+2)>\"$\")if(a=Error(\"Missing salt rounds\"),s){l(s.bind(this,a));return}else throw a;var T=parseInt(i.substring(y,y+1),10)*10,h=parseInt(i.substring(y+1,y+2),10),L=T+h,v=i.substring(y+3,y+25);c+=d>=\"a\"?\"\\0\":\"\";var I=b(c),D=p(v,w);function Y(O){var A=[];return A.push(\"$2\"),d>=\"a\"&&A.push(d),A.push(\"$\"),L<10&&A.push(\"0\"),A.push(L.toString()),A.push(\"$\"),A.push(u(D,D.length)),A.push(u(O,Ee.length*4-1)),A.join(\"\")}if(typeof s>\"u\")return Y(Me(I,D,L));Me(I,D,L,function(O,A){O?s(O,null):s(null,Y(A))},o)}return r.encodeBase64=u,r.decodeBase64=p,r})});var ue=Le((En,Ce)=>{\"use strict\";Ce.exports=ke()});var j={ERROR:\"error\",ERROR_1:\"error_1\",CONSOLE:\"console\",THROW:\"throw\",WARNING:\"warning\",INFO:\"info\"},E=(r,e=j.CONSOLE)=>{switch(e){case j.ERROR:console.error(\"Error:\",r);break;case j.CONSOLE:console.error(\"Error:\",r);break;case j.THROW:throw r;case j.WARNING:console.warn(\"Warning:\",r);break;case j.INFO:console.log(\"Info:\",r);break;default:throw console.error(\"Error:\",r),r}};var F=r=>r.every(e=>e===!0);var H=r=>typeof r==\"string\"?\"string\":typeof r==\"number\"?\"number\":typeof r==\"boolean\"?\"boolean\":typeof r>\"u\"?\"undefined\":r===null?\"null\":r instanceof HTMLElement?\"HTML Element\":typeof r==\"object\"&&r instanceof Array?\"array\":typeof r==\"object\"&&r instanceof Object?\"object\":typeof r==\"function\"?\"function\":null;var Ze=()=>typeof window>\"u\"?(E(\"This function only works in a broswer environment...\"),!1):window.location.href,_=Ze;var Ye=async(r,e)=>{let n={};try{console.log(\"AJAX Loading....\");let t=await fetch(r,e);if(t.ok)return console.log(\"AJAX Finished....\"),await t.json();if(t.status===404)throw n.code=t.status??404,n.message=\"Resource Not Found\",n.data={headers:t.headers,url:t.url,status:t.status,statusText:t.statusText,ok:t.ok},n;try{let f=await t.json();if(H(f)===\"object\")n.code=t.status,n.message=f.message||t.statusText,n.data=f;else throw n.code=400,n.message=\"Response is not a valid JSON object 2.\",n;return n}catch{throw n.code=400,n.message=\"Response is not a valid JSON object. 1\",n.data=null,n}}catch(t){throw n.code=t.code||400,n.message=t.message||t.statusText||\"An Error Occured\",n.data=t.data||null,n}},We=r=>{let e={},n=r.RequestMethod||\"GET\",t=r.RequestHeader||{},f=r.RequestBodyIgnore||!1,l=r.RequestType||\"json\",b;if([\"POST\",\"PUT\",\"DELETE\",\"UPDATE\"].includes(n)&&(b=r.RequestBody||\"\",b===\"\"&&f!==!0))throw e.code=400,e.message=`The body of this \"${n}\" request you made is empty. If this was intentionional, then add the RequestBodyIgnore attribute and set it to true.`,e;return{method:n,headers:t,body:JSON.stringify(b)}},Je=async r=>{let e={};try{let n=r&&r.url?r.url:_(),t=We(r);return await Ye(n,t)}catch(n){throw e.code=n.code||400,e.message=n.message||\"An Error Occured\",e.data=n.data??null,console.error(\"AJAX Failed: \",n.message),E(n.message,j.THROW),n}},le=Je;var ze=(r,e=3e3)=>{r.focus(),r.classList.add(\"input-focus-error\"),setTimeout(()=>{r.classList.remove(\"input-focus-error\")},e)},R=ze;var Xe=(r,e,n=3e3,t=!1)=>{if(!r)return!1;R(r,n);let f=document.createElement(\"div\");f.classList.add(\"js-inline-message\"),f.innerHTML=e;let l=r.parentNode;if(!l)return!1;l.appendChild(f),t&&f.classList.add(\"text-success\"),setTimeout(()=>{l.removeChild(f)},n)},k=Xe;var Ke=(r,e,n=\"\",t=3e3,f=!1,l=!1)=>{var b;if(n!=\"\"?b=document.getElementById(n):document.querySelectorAll(\"#js-errorMessageContainer\").length>0?b=e.querySelector(\"#js-errorMessageContainer\"):(b=document.createElement(\"div\"),b.classList.add(\"js-errorMessageContainer\"),b.setAttribute(\"id\",\"js-errorMessageContainer\"),e.appendChild(b)),!b)return!1;var m=document.createElement(\"div\");m.classList.add(\"login-error-message-container\",\"active\");var x=document.createElement(\"div\");x.classList.add(\"message\",\"js-message\"),x.innerHTML=r;let g=document.createElement(\"div\");g.classList.add(\"icon\",\"close\",\"js-close\"),g.innerHTML=\"\",m.appendChild(x),m.appendChild(g),b.appendChild(m),f&&m.classList.add(\"success\");let u=m.querySelector(\".js-close\");if(!u)return!1;u.addEventListener(\"click\",()=>{m&&m.parentNode&&m.parentNode.removeChild(m)}),setTimeout(()=>{m&&m.parentNode&&m.parentNode.removeChild(m)},t),l&&console.error(r)},C=Ke;var Qe=r=>{let{type:e,message:n,duration:t,element:f,success:l=!1}=r;if(!(f instanceof HTMLElement))return console.error(\"The HTML Element you are trying to use is not found.\"),!1;if(f.style.position=\"relative\",e===\"inline\")k(f,n,t,l);else if(e===\"modal\")C(n,f,\"\",t,l);else return console.error(\"The type of error display you specified is not supported.\"),!1;return!0},He=Qe;var er=r=>{let e={message:\"\",type:\"error\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),!1;if(!r)return e.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),e;let n=typeof r==\"string\"?document.getElementById(r):r;if(!n)return e.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),e;let t={},f=[];return n.querySelectorAll(\"input\").forEach((x,g)=>{let u=x.getAttribute(\"data-attr-name\")||x.getAttribute(\"name\")||g,p=x.value;if(x.type===\"checkbox\"&&(p=x.checked),x.type===\"radio\")if(x.checked)p=!0;else return;t[u]=p,f.push(!0)}),n.querySelectorAll(\"textarea\").forEach((x,g)=>{let u=x.getAttribute(\"data-attr-name\")||x.getAttribute(\"name\")||g,p=x.value;t[u]=p,f.push(!0)}),n.querySelectorAll(\"select\").forEach((x,g)=>{let u=x.getAttribute(\"data-attr-name\")||x.getAttribute(\"name\")||g,p=x.value;t[u]=p,f.push(!0)}),F(f)?t:!1},ce=er;var rr=r=>r.length,X=rr;var tr=(r,e={},n)=>{let t={message:\"\",code:400};if(!r)return t.message=\"The input element you are trying to count and restrict is not found. Check your HTML code.\",E(t.message),t;let f=e.maxLength&&parseInt(e.maxLength)&&e.maxLength>=1?e.maxLength:250,l=e.minLength&&parseInt(e.minLength)?e.minLength:0,b=!!(e.shouldButtonDisable&&e.shouldButtonDisable),m;if(e.form&&H(e.form)===\"string\"?document.getElementById(e.form):e.form&&H(e.form)===\"HTML Element\"?m=e.form:document.getElementById(\"nfsfu234_fv_form\")?m=document.getElementById(\"nfsfu234_fv_form\"):document.getElementById(\"jsForm\")?m=document.getElementById(\"jsForm\"):document.querySelector(\"form\")?m=document.querySelector(\"form\"):m=void 0,!m)return t.message=\"The form you are trying to validate does not exist.\",E(t.message),t;r.addEventListener(\"input\",()=>{var x=X(r.value),g=!1,u;if(H(n)===\"string\"&&(u=document.getElementById(n)),u)u=u;else{let p=r.parentNode;if(p?.querySelector(\".js-counterContainer\"))u=p.querySelector(\".js-counterContainer\");else{if(u=document.createElement(\"span\"),u.classList.add(\"js-counterContainer\"),!p)return!1;p.appendChild(u)}}return u?(x>f?(x=f,u.classList.remove(\"text-fail\"),u.classList.add(\"text-success\"),r.value=r.value.slice(0,f),b&&m&&m.querySelectorAll(\"button\").forEach(p=>{p.disabled=!1}),g=!0):x>=f?(r.value=r.value.slice(0,f),u.classList.remove(\"text-fail\"),u.classList.add(\"text-success\"),b&&m&&m.querySelectorAll(\"button\").forEach(p=>{p.disabled=!1}),g=!0):x>=l&&l!==0?(u.classList.remove(\"text-fail\"),u.classList.add(\"text-success\"),b&&m&&m.querySelectorAll(\"button\").forEach(p=>{p.disabled=!1}),g=!0):(u.classList.add(\"text-fail\"),b&&m&&m.querySelectorAll(\"button\").forEach(p=>{p.disabled=!1})),u.innerHTML=`${x}/${f}`,g):(t.message=\"Counter Element Not Found\",E(t.message),t)})},Ie=tr;var nr=r=>/^\\d+$/.test(r),P=nr;var ar={\"dd/mm/yyyy\":/^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\"yyyy-mm-dd\":/^\\d{4}-\\d{2}-\\d{2}$/,\"mm/dd/yyyy\":/^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\"mm.dd.yyyy\":/^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\"yyyy/mm/dd\":/^\\d{4}\\/\\d{1,2}\\/\\d{1,2}$/,\"yyyy.mm.dd\":/^\\d{4}\\.\\d{1,2}\\.\\d{1,2}$/,time:/^(0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$/,\"24-hour\":/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/,month:/^(0?[1-9]|1[0-2])$/,day:/^(0?[1-9]|[1-2][0-9]|3[0-1])$/},or=(r,e=\"dd/mm/yyyy\")=>{let n=ar[e.toLowerCase()];return n?n.test(r):(console.error(`Invalid date format: ${e}`),!1)},de=or;var sr=r=>/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(r),W=sr;var fr=r=>typeof r==\"string\"?/^(https?:\\/\\/)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}(:\\d{1,5})?(\\/[^\\s]*)?(\\?.*)?$/.test(r):!1,J=fr;var ir=r=>(typeof r==\"number\"&&(r=r.toString()),/^\\d{5}(?:\\d{1})?$/.test(r)),$=ir;function lr(r,e,n){let t={message:\"\",type:\"error\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;let f=e.form||void 0,l=e.customErrorMessages||null,b=e.errorType||\"inline\",m=e.includeHTML!==!1,x=r.hasAttribute(\"required\")||r.classList.contains(\"js-required\"),g=l&&l.checkbox&&l.checkbox!==\"\"?l.checkbox:\"You need to check this box\";if(r.getAttribute(\"type\")!==\"checkbox\")return!1;if(!m)return x&&!r.checked?(E(g),t.message=g,t.data=r,t):!0;if(!f)return t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist. 5765846846\"),t;let u=[];return x&&!r.checked?(E(g),t.message=g,t.data=r,b===\"inline\"?k(r,g,3e3):b===\"modal\"&&(R(r,3e3),C(g,f)),t):!0}var U=lr;var cr=(r,e,n)=>{if(typeof window>\"u\")return console.error(\"To access this function, it must be executed in a browser environment.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;let t={message:\"an error occured\",type:\"error\",code:400},f=e.form||void 0,b=(e.customErrorMessages||null).checkbox??\"You need to choose a value.\";if(!f)return t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist. 5765846846\"),t;let m=null;if(typeof r==\"object\"&&r instanceof HTMLInputElement)m=r.getAttribute(\"name\");else if(typeof r==\"string\")m=r;else if(!r)return console.error(\"The radio element(s) to validate is(are) not found.\"),t.message=\"The radio element(s) to validate is(are) not found.\",t;if(!m)return E(\"The radio element(s) to validate is(are) not found.\"),t.message=\"The radio element(s) to validate is(are) not found.\",t;let x=document.querySelectorAll(`input[type=\"radio\"][name=\"${m}\"]`),g=!1,u=!1,p=e.errorType||\"inline\",M=[],w=null;return x.forEach(B=>{w=B,(B.required||B.classList.contains(\"js-required\"))&&(g=!0,B.checked?M.push(!0):M.push(!1))}),F(M)?!0:(!!(e.ignoreError&&e.ignoreError===!0)||(p===\"inline\"?k(w,b,3e3):p===\"modal\"&&(R(w,3e3),C(b,f))),t.message=\"You need to choose a value.\",t.data=w,t)},S=cr;var dr=(r,e,n)=>{let t={message:\"\",type:\"error\",data:null,code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;if(!r)return console.error(\"The input field you are trying to validate does not exist.\"),!1;if(H(e)!==\"object\")return E(\"options are not provided\"),t.message=\"options are not provided\",t;let f=e.error_type||e.errorType||\"inline\",l=e.customErrorMessages||[],b=e.form??void 0,m=e.includeHTML!==!1,x=r.getAttribute(\"type\"),g=r.value.trim(),u=r.required||r.classList.contains(\"js-required\"),p;if(!m){if(u&&g===\"\")p=l[x]??\"This field is required.\";else if(u&&x===\"radio\"){e.ignoreError=!0;let M=S(r,e);M===!0?p=\"validated\":p=l[x]??M.message}else if(u&&x===\"checkbox\"&&!U(r,{form:b,customErrorMessages:l}))p=l[x]??\"You need to check this box\";else switch(x){case\"email\":g!==\"\"&&!W(g)&&(p=l.email?.format||\"Invalid email format.\");break;case\"url\":g!==\"\"&&!J(g)&&(p=l.url?.format||\"Invalid URL format.\");break;case\"zipcode\":g!==\"\"&&!$(g)&&(p=l.zipcode?.format||\"Invalid ZIP code format.\");break;case\"date\":g!==\"\"&&!de(g)&&(p=l.date?.format||\"Invalid date format.\");break;case\"tel\":g!==\"\"&&!P(g)&&(p=l.tel?.format||l.phone?.format||\"Invalid phone number.\");break;case\"phone\":g!==\"\"&&!P(g)&&(p=l.tel?.format||l.phone?.format||\"Invalid date format.\");break;default:break}return p?(t.message=p,t.data=r,E(p),t):!0}if(!b)return t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),t;if(u&&g===\"\")p=l[x]??\"This field is required.\";else if(u&&x===\"radio\"){e.ignoreError=!0;let M=S(r,e);M===!0?p=\"validated\":p=l[x]??M.message}else if(u&&x===\"checkbox\"&&!U(r,{form:b,customErrorMessages:l}))p=l[x]??\"You need to check this box\";else switch(x){case\"email\":g!==\"\"&&!W(g)&&(p=l.email?.format||\"Invalid email format.\");break;case\"url\":g!==\"\"&&!J(g)&&(p=l.url?.format||\"Invalid URL format.\");break;case\"zipcode\":g!==\"\"&&!$(g)&&(p=l.zipcode?.format||\"Invalid ZIP code format.\");break;case\"date\":g!==\"\"&&!de(g)&&(p=l.date?.format||\"Invalid date format.\");break;case\"tel\":g!==\"\"&&!P(g)&&(p=l.tel?.format||l.phone?.format||\"Invalid phone number.\");break;case\"phone\":g!==\"\"&&!P(g)&&(p=l.tel?.format||l.phone?.format||\"Invalid date format.\");break;default:break}return p?(t.message=p,t.data=r,f===\"inline\"?k(r,p):(R(r),C(p,r)),E(p),t):(t.code=200,t.data=null,t.message=\"success\",t.type=\"success\",!0)},K=dr;var xr=(r,e={customErrorMessages:[],form:r})=>{let n=[],t={message:\"\",code:400};if(typeof window>\"u\")return t.message=\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",n.push(t),n;if(typeof r==\"string\"&&(r=document.getElementById(r)),!r)return t.message=\"The form you are trying to validate does not exist.\",n.push(t),E(t.message),n;let f=[],l=r.querySelectorAll(\"input\");return l.length>0?l.forEach(m=>{e.form=e.form||r;let x=K(m,e);if(x===!0)f.push(!0);else{let g={message:\"\",code:400,data:null};f.push(!1);let u=x.message;g.message=u,g.data=m,n.push(g)}}):f.push(!0),F(f)?!0:n},Q=xr;var ur=(r,e,n)=>{let t={message:\"\",type:\"error\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;if(!r)return console.error(\"The select element to validate is not found.\"),!1;if(H(e)!==\"object\")return E(\"options are not provided\"),!1;let f=e.error_type||e.errorType||\"inline\",l=e.customErrorMessages||[],b=e.form||void 0,m=e.includeHTML!==!1,x=r.hasAttribute(\"required\")||r.classList.contains(\"js-required\"),g=r.value.trim(),u=l?.select||\"You have to select an option.\";return m?b?x&&!g?(E(u),t.message=u,t.data=r,f?k(r,u,3e3):(R(r,3e3),C(u,b)),t):(t.code=200,t.data=null,t.message=\"success\",t.type=\"success\",!0):(t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),t):x&&!g?(E(u),t.message=u,t.data=r,t):!0},ee=ur;var mr=(r,e)=>{let n=[],t={message:\"\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),!1;if(typeof r==\"string\"&&(r=document.getElementById(r)),!r)return t.message=\"The form you are trying to validate does not exist.\",n.push(t),E(t.message),n;if(H(e)!==\"object\")return E(\"options are not provided\"),t.message=\"options are not provided\",t;let f=[],l=r.querySelectorAll(\"select\");return l.length>0?l.forEach(m=>{e.customErrorMessages=e.customErrorMessages??[],e.form=e.form??r;let x=ee(m,e);if(x===!0)f.push(!0);else{let g={message:\"\",code:400};f.push(!1);let u=x;g.message=u,g.data=m,n.push(g)}}):f.push(!0),F(f)?!0:n},re=mr;var br=(r,e,n)=>{let t={message:\"\",type:\"error\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, it must be executed in a browser environment.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;if(!r)return t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),t;if(H(e)!==\"object\")return E(\"options are not provided\"),t.message=\"options are not provided\",t;let f=e.error_type||e.errorType||\"inline\",l=e.customErrorMessages||[],b=e.form||void 0,m=e.includeHTML!==!1,x=r.hasAttribute(\"required\")||r.classList.contains(\"js-required\"),g=r.value.trim(),u=l?.textarea||\"Textarea cannot be left empty.\";return m?b?x&&!g?(E(u),t.message=u,t.data=r,f===\"inline\"?k(r,u,3e3):(R(r,3e3),C(u,b)),t):(t.code=200,t.data=null,t.message=\"success\",t.type=\"success\",!0):(t.message=\"The form you are trying to validate does not exist.\",E(\"The form you are trying to validate does not exist.\"),t):x&&!g?(E(u),t.message=u,t.data=r,t):!0},te=br;var gr=(r,e,n)=>{let t=[],f={message:\"\",code:400};if(typeof window>\"u\")return f.message=\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",t.push(f),t;if(typeof r==\"string\"&&(r=document.getElementById(r)),!r)return f.message=\"The form you are trying to validate does not exist.\",t.push(f),E(f.message),t;if(H(e)!==\"object\")return E(\"options are not provided\"),f.message=\"options are not provided\",f;let l=[],b=r.querySelectorAll(\"textarea\");return b.length>0?b.forEach((x,g)=>{let u={message:\"\",code:400};e.customErrorMessages=e.customErrorMessages??[],e.errorType=e.errorType??\"inline\",e.form=e.form??r;let p=te(x,e);if(p===!0)l.push(!0);else{let M={message:\"\",code:400};l.push(!1);let w=p;M.message=w,M.data=x,t.push(M)}}):l.push(!0),F(l)?!0:t},ne=gr;var pr=(r,e,n)=>{let t={message:\"\",data:null,code:400},f={};if(!r)return E(\"Form element not found.\"),t.message=\"Form element not found.\",t;let l=[],b=Q(r,e),m=ne(r,e),x=re(r,e);if(b===!0)l.push(!0);else{let p={code:400,message:\"\"},M=b;p.message=\"Inputs Validation Failed\",p.data=M,f.inputs=p,l.push(!1)}if(m===!0)l.push(!0);else{l.push(!1);let p={code:400,message:\"\"},M=m;p.message=\"Textarea Validation Failed\",p.data=M,f.textareas=p}if(x===!0)l.push(!0);else{l.push(!1);let p={code:400,message:\"\"},M=x;p.message=\"Selects Validation Failed\",p.data=M,f.selects=p}return F(l)?!0:{message:\"Form Validation Error\",data:f}},xe=pr;var yr=(r,e)=>{let n=[],t={message:\"\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\"),E(\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",\"big\"),!1;if(!r)return t.message=\"The form you are trying to validate does not exist. 5555 0000\",t.data=r,n.push(t),E(t.message),n;if(H(e)!==\"object\")return E(\"options are not provided\"),t.message=\"options are not provided\",t;let f=[],l=r.querySelectorAll('input[type=\"checkbox\"]');return l.length>0?l.forEach(m=>{e.customErrorMessages=e.customErrorMessages??[],e.form=e.form??r;let x=U(m,e);if(x===!0)f.push(!0);else{f.push(!1);let g={message:\"\",code:400};f.push(!1);let u=x;g.message=u,g.data=m,n.push(g)}}):f.push(!0),F(f)?!0:n},we=yr;var Er=(r,e)=>{let n=[],t={message:\"\",code:400};if(typeof window>\"u\")return console.error(\"To access this function, it must be executed in a browser environment.\"),t.message=\"To access this function, you will need to execute it in a browser like Google Chrome, Safari, Firefox, Microsoft Edge, etc.\",n.push(t),n;if(typeof r==\"string\"&&(r=document.getElementById(r)),!r)return t.message=\"The form you are trying to validate does not exist.\",n.push(t),n;if(H(e)!==\"object\")return E(\"options are not provided\"),t.message=\"options are not provided\",t;let f=r.querySelectorAll('input[type=\"radio\"]'),l=[];return f.forEach(m=>{let x={message:\"\",code:400},g=S(m,e);if(g===!0)l.push(!0);else{l.push(!1);let u=g.message;x.message=u,x.data=m,n.push(x)}}),F(l)?!0:n},Ae=Er;var hr=(r,e=!1,n=8,t=20,f=\"\")=>{let l=/[A-Z]/,b=/[a-z]/,m=/[0-9]/;return r.lengtht?`Make sure the length of your password ranges from ${n} - ${t} characters`:l.test(r)?b.test(r)?m.test(r)?e&&!(typeof f==\"string\"?new RegExp(f):f).test(r)?\"Your password needs to have one symbol e.g (!@#$%^&*())\":!0:\"Your password needs to have at least one number (0-9)\":\"Your password needs to have at least one lowercase (a-z)\":\"Your password needs to have at least 1 uppercase (A-Z)\"},Fe=hr;var ae=ve(ue()),Mr=async r=>{let e=await ae.genSalt(10);return await ae.hash(r,e)},oe=Mr;var Tr=async(r=Math.floor(Math.random()*11)+8,e=!1)=>{let f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",l=\"abcdefghijklmnopqrstuvwxyz\",b=\"0123456789\",m=\"!@#$%^&*()\",x=\"\";(r<8||r>18)&&E(\"Password length must be between 8 and 18 characters.\",\"error_1\"),x+=f[Math.floor(Math.random()*f.length)],x+=m[Math.floor(Math.random()*m.length)],x+=b[Math.floor(Math.random()*b.length)];let g=3;for(;g{try{return n?await De.compare(r,e):r===e}catch(t){return console.error(\"Error comparing passwords: \",t),!1}},be=Lr;var vr=r=>typeof r==\"string\"?\"string\":typeof r==\"number\"?\"number\":typeof r==\"boolean\"?\"boolean\":typeof r>\"u\"?\"undefined\":r===null?\"null\":r instanceof HTMLElement?\"HTML Element\":typeof r==\"object\"&&r instanceof Array?\"array\":typeof r==\"object\"&&r instanceof Object?\"object\":typeof r==\"function\"?\"function\":\"null\",G=vr;var Hr=()=>typeof window>\"u\"?(console.error(\"You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work.\"),!1):!!navigator.onLine,je=Hr;var Ir=(r,e=null,n=null)=>{let t=null,f={message:\"error\",type:\"error\",code:400};if(G(e)===\"HTML Element\")t=e;else if(typeof e==\"string\")t=document.getElementById(e);else if(e===null&&n){let l=typeof n==\"string\"?document.getElementById(n):n;(l instanceof HTMLFormElement||l instanceof HTMLDivElement)&&(t=l.querySelector('button[type=\"submit\"], input[type=\"submit\"], #jsSubmit, input[type=\"search\"], button'))}else return f.message=\"The button element specified is not found.\",E(f.message),f;return t?t?(t.tagName.toLowerCase()===\"input\"?t.value=r:t.innerHTML=r,!0):(f.message=\"The button element specified is not found.\",E(f.message),f):(f.message=\"The button element specified is not found.\",E(f.message),f)},qe=Ir;var wr=(r=null,e=0)=>{r||(r=_()),typeof window<\"u\"?setTimeout(()=>{window.location.href=r},e*1e3):console.log(`Redirecting to: ${r||\"current page\"} (Delayed: ${e} seconds)`)},Ne=wr;var Ar=(r=null)=>{if(typeof window>\"u\")return console.error(\"You need to be in a browser environment like Google Chrome, Safari, Firefox, Microsoft Edge, etc. for this function to work.\"),!1;let e=null;if(typeof r==\"string\"){if(e=document.getElementById(r),!e)return console.error(`Form with ID \"${r}\" not found.`),!1}else if(r instanceof HTMLFormElement||r instanceof HTMLDivElement)e=r;else if(r===null)e=document.body;else return console.error(\"Invalid form parameter.\"),!1;return e.querySelectorAll(\"input, textarea, select\").forEach(t=>{t instanceof HTMLInputElement?t.type===\"radio\"||t.type===\"checkbox\"?t.checked=!1:t.value=\"\":t instanceof HTMLTextAreaElement?t.value=\"\":t instanceof HTMLSelectElement&&(t.selectedIndex=0)}),!0},Pe=Ar;var Fr=(r,e=null,n=null)=>{let t=document.querySelectorAll(\".nfsfu234_fv_togglePassword\")||document.querySelectorAll(\".js-togglePassword\")||void 0;if(!t)return E(\"No Toggle Password Button was found. Check your HTML Code\",\"error_1\"),!1;function f(l,b){e===null&&(e=\"show\"),n===null&&(n=\"hide\"),l===\"password\"&&e!==null?(b.innerHTML=\"\",typeof e==\"string\"?b.innerHTML=e:H(e)===\"HTML Element\"?b.appendChild(e):b.innerHTML=e):l===\"text\"&&n!==null&&(b.innerHTML=\"\",typeof n==\"string\"?b.innerHTML=n:H(n)===\"HTML Element\"?b.appendChild(n):b.innerHTML=e)}t.forEach(l=>{let b=r.type,m=r.nextElementSibling;f(b,m),l.addEventListener(\"click\",()=>{r.type=r.type===\"password\"?\"text\":\"password\";let x=r.type;m&&f(x,m)})})},z=Fr;var Rr=(r={},e=null,n=!1)=>{let t=typeof e==\"string\"?document.getElementById(e):e;if(!t){console.error(\"Form element not found.\"),E(\"Form Element not found\");return}let f=t.querySelectorAll('input[type=\"password\"]'),l=r.show||null,b=r.hide||null;n?f.forEach(m=>{z(m,l,b)}):f.length>0&&z(f[0],l,b)},Ue=Rr;var se=class{constructor(e,n){this.customErrorMessages={};if(console.log(\"NFSFU234FormValidation is loaded....\"),typeof window>\"u\")this.form=void 0;else{let t;e&&e.form&&(typeof e.form==\"string\"&&e.form!==\"\"?t=document.getElementById(e.form):e.form instanceof HTMLElement&&(t=e.form)),t||(t=document.getElementById(\"jsForm\")),t||(t=document.querySelector(\"form\")),this.form=t}this.form&&this.form instanceof HTMLElement&&(this.form.hasAttribute(\"novalidate\")||this.form.setAttribute(\"novalidate\",\"\"),this.form.addEventListener(\"submit\",t=>{t.preventDefault()})),this.AJAXResult=null}populateOptionsVariables(e,n){let t=!1,f=null;if(typeof e==\"object\"&&e!==null)t=e.isAjax===!0||!1,f=e.ajaxOptions||null;else if(n){t=n.getAttribute(\"isAjax\")?.trim()===\"true\"||!1;let l=n.getAttribute(\"action\")||\"\",b=(n.getAttribute(\"method\")||\"GET\").toUpperCase(),m={},x=/^nfsfu234_fv_reqheader_(.+)$/i;for(let g=0;g0?m:void 0,RequestBody:void 0}}return{isAjax:t,ajaxOptions:f}}submit(e,n){this.form=this.form||void 0,this.customErrorMessages=this.customErrorMessages||{};let t=this.form,f=this.customErrorMessages,l=!1,b=null;if(typeof e==\"string\"?(t=document.getElementById(e),f={form:t,customErrorMessages:[]}):e instanceof HTMLFormElement||e instanceof HTMLDivElement?(t=e,f={form:t,customErrorMessages:[]}):e&&typeof e==\"object\"&&\"form\"in e&&(typeof e.form==\"string\"?t=document.getElementById(e.form):(e.form instanceof HTMLFormElement||HTMLDivElement)&&(t=e.form),f={form:t,customErrorMessages:e.customErrorMessages??[]}),!t)return E(\"Form element not found.\"),!1;t.getAttribute(\"novalidate\")!==null||t.setAttribute(\"novalidate\",\"\"),t.addEventListener(\"submit\",M=>{M.preventDefault()});let{isAjax:x,ajaxOptions:g}=this.populateOptionsVariables(e,t);l=x,b=g;let u={message:\"\",type:\"\"},p=xe(t,f);if(p===!0)u.message=\"success\",u.type=\"success\",u.data=null;else if(typeof p==\"object\"&&p!==null&&\"message\"in p){let M=p.message;u.message=typeof M==\"string\"||typeof M==\"number\"||typeof M==\"boolean\"?M:\"Error\",u.type=\"error\",u.data=p}else u.message=\"Error\",u.type=\"error\";return u.message===\"success\"&&l&&b!==null?(b.RequestBody=ce(t),le(b).then(M=>{let w=M.code||M.status;if(w>=300&&w<=500){let q={type:\"modal\",message:M.message,duration:3e3,element:t,success:!1};return u.message=M.message,u.type=\"error\",u.code=w,u.data=M.data,this.displayError(q),console.error(\"THIS IS ERR_ \",M.message),u}else return console.log(\"Success\"),M}).catch(M=>(console.error(\"LOLK \",M),u))):typeof n==\"function\"?(n(u),!0):new Promise(M=>{M(u)})}validate(e,n){let t,f={};if(typeof e==\"string\"?(t=document.getElementById(e),f={form:t,customErrorMessages:[]}):e instanceof HTMLFormElement||e instanceof HTMLDivElement?(t=e,f={form:t,customErrorMessages:[]}):e&&typeof e==\"object\"&&\"form\"in e?(typeof e.form==\"string\"?t=document.getElementById(e.form):(e.form instanceof HTMLFormElement||e.form instanceof HTMLDivElement)&&(t=e.form),f={form:t,customErrorMessages:e.customErrorMessages??[]}):(t=this.form,f={form:t,customErrorMessages:[]}),!t)return E(\"Form element not found.\"),!1;t.getAttribute(\"novalidate\")!==null||t.setAttribute(\"novalidate\",\"\"),t.addEventListener(\"submit\",x=>{x.preventDefault()});let b={message:\"\",type:\"\"},m=xe(t,f);if(m===!0)b.message=\"success\",b.type=\"success\",b.data=null;else if(typeof m==\"object\"&&m!==null&&\"message\"in m){let x=m.message;typeof x==\"string\"||typeof x==\"number\"||typeof x==\"boolean\"?b.message=x:b.message=\"Error\",b.type=\"error\",b.data=m}else b.message=\"Error\",b.type=\"error\";return typeof n==\"function\"?(n(b),!0):new Promise(x=>{x(b)})}ajax(e){return this.AJAXResult=le(e)}getAJAXResponse(){return this.AJAXResult?this.AJAXResult:!1}getFormDetails(e){return e||(e=this.form),ce(e)}loading(e,n=null,t=null){return t!==null&&(t=typeof t==\"string\"?document.getElementById(t):t,t=typeof t>\"u\"?this.form:t),qe(e,n,t)}displayError(e){He(e)}isEmail(e){return W(e)}isURL(e){return J(e)}isNumber(e){return G(e)===\"number\"}isZipCode(e){return $(e)}isZip(e){return $(e)}countString(e){return X(e)}async generatePassword(e,n){return await me(e,n)}async generateRandomPassword(e,n){return await me(e,n)}passwordStrength(){}getPasswordStrength(){}checkPassword(e,n=8,t=20,f=!1,l=\"\"){return Fe(e,f,n,t,l)}async verifyPassword(e,n,t=!1){try{return await be(e,n,t)}catch(f){return console.error(\"Error verifying password: \",f),!1}}async passwordMatch(e,n,t=!1){try{return await be(e,n,t)}catch(f){return console.error(\"Error verifying password: \",f),!1}}async hashPassword(e){try{return await oe(e)}catch(n){return console.error(\"Error hashing password: \",n),!1}}togglePasswordVisibility(e,n=null,t=null){return z(e,n,t)}togglePasswordVisibilityAll(e,n=null,t=!1){return Ue(e,n,t)}validateInput(e,n={},t){let f={type:\"error\",code:400};if(typeof e==\"string\"&&(e=document.getElementById(e)),e){n.form=n.form??this.form;let l=K(e,n,t);if(l===!0)return!0;f=l}else{let l=j;f.message=\"The Input Feild you are trying to validate is undefined.\",E(\"The Input Feild you are trying to validate is undefined.\")}if(G(t)===\"function\"){let l=t(f)}return new Promise((l,b)=>{l(f)})}validateAllInput(e,n){return e=e??this.form,Q(e,n)}validateRadio(e,n){return S(e,n)}validateAllRadio(e,n){return e=e??this.form,Ae(e,n)}validateCheckbox(e,n){return U(e,n)}validateAllCheckbox(e,n){return e=e??this.form,we(e,n)}validateSelect(e,n,t){return n.form=n.form??this.form,ee(e,n,t)}validateAllSelect(e,n){return re(e,n)}validateTextarea(e,n){return te(e,n)}validateAllTextarea(e,n){return ne(e,n)}restrictInputWithCounter(e,n,t={}){return Ie(e,n,t)}containsOnlyIntegers(e){return P(e)}getPageURL(){return _()}redirect(e=null,n=0){e||(e=this.getPageURL()),Ne(e,n)}checkVariableType(e){return G(e)}isOnline(){return je()}reset(e){let n;return e?n=e:n=this.form,Pe(n)}};typeof window<\"u\"&&(window.NFSFU234FormValidation=se);var ya=se;})();\n/*! Bundled license information:\n\nbcryptjs/dist/bcrypt.js:\n (**\n * @license bcrypt.js (c) 2013 Daniel Wirtz \n * Released under the Apache License, Version 2.0\n * see: https://github.com/dcodeIO/bcrypt.js for details\n *)\n*/\n"]} \ No newline at end of file diff --git a/package.json b/package.json index af0f0fe..20be75c 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ } }, "scripts": { - "clean": "rimraf dist", + "clean": "npx rimraf dist", "build:js": "tsup", "build:css": "node build-css.cjs", "build:umd": "node build-umd.js",