diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..a4cfe69
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,13 @@
+# These are supported funding model platforms
+
+# github: Ali-Eldeba # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: alieldeba # Replace with a single Patreon username
+open_collective: alieldeba # Replace with a single Open Collective username
+# ko_fi: # Replace with a single Ko-fi username
+# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+# liberapay: # Replace with a single Liberapay username
+# issuehunt: # Replace with a single IssueHunt username
+# otechie: # Replace with a single Otechie username
+# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
+# custom: [https://www.buymeacoffee.com/alieldeba] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/.gitignore b/.gitignore
index 6a60a8e..1122c7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,7 @@ ehthumbs_vista.db
*.msi
*.msix
*.msm
-*.msp
\ No newline at end of file
+*.msp
+
+# Small Unimportant files
+futureFunctions.txt
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
index 23727dd..4436283 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
MIT License
Copyright (c) 2022 Functionalty.js
-Copyright (c) 2022 Ali-Eldeba
+Copyright (c) 2022 alieldeba
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index c411747..af5204a 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,14 @@
-#
Functionality.js (beta) 🔥
+
+
+# Functionality.js
-
+
-
+
-
+
## About ✍️
@@ -19,10 +21,16 @@
- So To Get Started Using Functionalty.js Library,
You Have To Install It By npm
- ```cmd
+ ```sh
npm install functionality.js
```
-- Or You Can Install it By CDN In Your HTML File
+- Or You Can Install it By yarn In Your HTML File
+
+ ```sh
+ yarn add functionality.js
+ ```
+
+- Or Even You Can Get it By CDN
```html
@@ -48,16 +56,8 @@
- By The Beginning You Have To Import Library After Installation,
You Can Import Unminified Version
-- This is a Guid to how to import in HTML
-
```html
-
- ```
-
-- Or You Can Import Minified Version (recommended)
-
- ```html
-
+ import functionality from "functionality.js";
```
- Since You Have Downloaded And Imported The Library You Can Use It As Following ...
@@ -68,41 +68,32 @@
- You Can Visit Functionalty.js Site From Here
- Or This is A Quick Start From Here
-# Here Is What We Are Working On 🤞
-
-1. Adding Logo
-2. ✔️ Converting Library Into TypeScript
-3. ✔️ Making File Supported By All Of Search Engines
-4. ✔️ Making File Compressed
-5. ✔️ Making File Light Weight
-6. ✔️ Testing The Library
-7. ✔️ Handling Function Errors
-8. Making A Documentation Website
-9. Adding Dark And White Theme In Website
-10. ✔️ Adding New Functions
-11. ✔️ Making npm Package For Installation
-12. ✔️ Making a CDN Importing
-
# Feel Free To Contribute To This Repositry 🤝
## To Get Started Contributing ☕
- First Clone The Repository
- ```cmd
- git clone https://github.com/Ali-Eldeba/functionality.js.git
+ ```sh
+ git clone https://github.com/alieldeba/functionality.js.git
```
- Then Install Packages (node_modules)
- ```cmd
+ ```sh
npm install
```
- Run Website In Your Locahost Server With Live Reload
- ```cmd
- npm start
+ ```sh
+ npm run dev
+ ```
+
+- Run the Build
+
+ ```sh
+ npm run build-npm
```
- Feel Free To Add What You Want!
diff --git a/dist/functionality.min.js b/dist/functionality.min.js
index 65f1c9d..52a74c3 100644
--- a/dist/functionality.min.js
+++ b/dist/functionality.min.js
@@ -1 +1 @@
-const x=function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function t(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerpolicy&&(n.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?n.credentials="include":o.crossorigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(o){if(o.ep)return;o.ep=!0;const n=t(o);fetch(o.href,n)}};x();function u(e){if(!Array.isArray(e)||e.some(r=>typeof r!="number"))throw new TypeError("Expected an array of numbers but got "+(Array.isArray(e)?"array":typeof e));return e.reduce((r,t)=>r+t,0)}function f(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return e?e.charAt(0).toUpperCase()+e.slice(1):""}function s(e,r){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return e.filter(t=>t!=r)}function c(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return[...Array(e+1).keys()].filter(r=>e%r===0)}function y(e=0,r){return typeof e!="number"&&!r?0:!r&&typeof+e=="number"?e:isNaN(+e)||isNaN(+r)?0:Math.floor((+e+ +r)/2)}function d(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e%2==0}function h(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e%2!=0}function p(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);for(let r=2,t=Math.sqrt(e);r<=t;r++)if(e%r===0)return!1;return!0}function g(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return Math.max(...e)}function m(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return Math.min(...e)}function w(){return Math.random()>=.5}function M(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return e[Math.floor(Math.random()*e.length)]}function S(){return`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`}function E(e,r){if(typeof e!="number"||typeof r!="number")throw new TypeError("Expected numbers but got "+typeof e+" and "+typeof r);return Math.floor(Math.random()*(r-e+1)+e)}function G(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);e.filter(function(r,t){return[...new Set(e)]})}function k(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return!e||typeof e!="string"?"":e.split("").reverse().join("")}function A(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);if(e==0)return 0;if(e<10&&e>-10)return e;const r=+(e>10?e:e*-1).toString().split("").reverse().join("");return e>10?r:r*-1}function B(e){if(!Array.isArray(e))throw new TypeError("Expected an array");return e.sort((r,t)=>.5-Math.random())}function L(e=5){if(typeof e!="number")throw new TypeError("Expected numbers but got "+typeof e);for(var r="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=t.length,o=0;o0;)t+=Math.pow(e%10,2),e=Math.floor(e/10);e=t}return e===1}function P(){const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%^&*()_-+={[}]|\\:;\"'<,>.?/~`!";let r="";for(let t=0;t<12;t++)r+=e[Math.floor(Math.random()*e.length)];return r}const l={sumOfArray:u,capitalize:f,filterArray:s,getFactors:c,getMid:y,isEven:d,isOdd:h,isPrime:p,isPalindrome:b,maxArray:g,minArray:m,randomBoolean:w,randomElementFrom:M,randomHex:S,randomNumber:E,removeDuplicate:G,reverseString:k,reverseNumber:A,shuffle:B,randomString:L,randomColor:D,randomHsl:v,isHappyNumber:T,randomPassword:P};window.functionality=l;function b(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return e.toString()==l.reverseString(e.toString())}const O={sumOfArray:u,capitalize:f,filterArray:s,getFactors:c,getMid:y,isEven:d,isOdd:h,isPrime:p,isPalindrome:b,maxArray:g,minArray:m,randomBoolean:w,randomElementFrom:M,randomHex:S,randomNumber:E,removeDuplicate:G,reverseString:k,reverseNumber:A,shuffle:B,randomString:L,randomColor:D,randomHsl:v,isHappyNumber:T,randomPassword:P};window.functionality=O;console.log(l.reverseNumber(123));
+const U=function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const o of n)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function t(n){const o={};return n.integrity&&(o.integrity=n.integrity),n.referrerpolicy&&(o.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?o.credentials="include":n.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(n){if(n.ep)return;n.ep=!0;const o=t(n);fetch(n.href,o)}};U();function l(e){if(!Array.isArray(e)||e.some(r=>typeof r!="number"))throw new TypeError("Expected an array of numbers but got "+(Array.isArray(e)?"array":typeof e));return e.reduce((r,t)=>r+t,0)}function c(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return e?e.charAt(0).toUpperCase()+e.slice(1):""}function s(e,r){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return e.filter(t=>t!=r)}function p(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return[...Array(e+1).keys()].filter(r=>e%r===0)}function y(e=0,r){return typeof e!="number"&&!r?0:!r&&typeof+e=="number"?e:isNaN(+e)||isNaN(+r)?0:Math.floor((+e+ +r)/2)}function h(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e%2==0}function d(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e%2!=0}function g(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);for(let r=2,t=Math.sqrt(e);r<=t;r++)if(e%r===0)return!1;return!0}function m(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return Math.max(...e)}function w(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return Math.min(...e)}function M(){return Math.random()>=.5}function E(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);return e[Math.floor(Math.random()*e.length)]}function S(){return`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,"0")}`}function b(e,r){if(typeof e!="number"||typeof r!="number")throw new TypeError("Expected numbers but got "+typeof e+" and "+typeof r);return Math.floor(Math.random()*(r-e+1)+e)}function k(e){if(!Array.isArray(e))throw new TypeError("Expected an array but got "+typeof e);e.filter(function(r,t){return[...new Set(e)]})}function B(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return!e||typeof e!="string"?"":e.split("").reverse().join("")}function G(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);if(e==0)return 0;if(e<10&&e>-10)return e;const r=+(e>10?e:e*-1).toString().split("").reverse().join("");return e>10?r:r*-1}function T(e){return e.toString().replace(new RegExp("\\B(?.5-Math.random())}function A(e=5){if(typeof e!="number")throw new TypeError("Expected numbers but got "+typeof e);for(var r="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=t.length,n=0;n0;)t+=Math.pow(e%10,2),e=Math.floor(e/10);e=t}return e===1}function P(){const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%^&*()_-+={[}]|\\:;\"'<,>.?/~`!";let r="";for(let t=0;t<12;t++)r+=e[Math.floor(Math.random()*e.length)];return r}function C(e,r,t){return"#"+((1<<24)+(e<<16)+(r<<8)+t).toString(16).slice(1)}function O(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(r,t,i,n)=>"#"+t+t+i+i+n+n).substring(1).match(/.{2}/g).map(r=>parseInt(r,16))}function R(e,r,t){e/=255,r/=255,t/=255;var i=Math.max(e,r,t),n=Math.min(e,r,t),o,a,f=(i+n)/2;if(i==n)o=a=0;else{var u=i-n;switch(a=f>.5?u/(2-i-n):u/(i+n),i){case e:o=(r-t)/u+(r(a+e/30)%12,n=r*Math.min(t,1-t),o=a=>t-n*Math.max(-1,Math.min(i(a)-3,Math.min(9-i(a),1)));return[Math.trunc(255*o(0)),Math.trunc(255*o(8)),Math.trunc(255*o(4))]}function W(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return e.replace(/\s+/g," ")}function q(){return navigator.userAgent.split(" ")[navigator.userAgent.split(" ").length-1]}function F(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12}function Y(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12*4}function H(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12*4*7}function $(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12*7*4*24}function I(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12*7*4*24*60}function V(e){if(typeof e!="number")throw new TypeError("Expected a number but got "+typeof e);return e*12*7*4*24*60*60}function _(e){var r=new Date,t=r.getFullYear();return t-e}function j(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return document.querySelector(e)}const K={sumOfArray:l,capitalize:c,filterArray:s,getFactors:p,getMid:y,isEven:h,isOdd:d,isPrime:g,isPalindrome:z,maxArray:m,minArray:w,randomBoolean:M,randomElementFrom:E,randomHex:S,randomNumber:b,addCommas:T,removeDuplicate:k,reverseString:B,reverseNumber:G,shuffle:v,randomString:A,randomColor:D,randomHsl:x,isHappyNumber:L,randomPassword:P,rgbToHex:C,hexToRgb:O,rgbToHsl:R,hslToRgb:N,removeInnerSpace:W,getBrowser:q,getMonths:F,getWeeks:Y,getDays:H,getHours:$,getSeconds:V,getMinutes:I,getBirthDay:_,select:j};window.functionality=K;function z(e){if(typeof e!="string")throw new TypeError("Expected a string but got "+typeof e);return e.toString()==K.reverseString(e.toString())}function J(e){var r=new Date,t=r.getFullYear();return t-e}const Q={sumOfArray:l,capitalize:c,filterArray:s,getFactors:p,getMid:y,isEven:h,isOdd:d,isPrime:g,isPalindrome:z,maxArray:m,minArray:w,randomBoolean:M,randomElementFrom:E,randomHex:S,randomNumber:b,addCommas:T,removeDuplicate:k,reverseString:B,reverseNumber:G,shuffle:v,randomString:A,randomColor:D,randomHsl:x,isHappyNumber:L,randomPassword:P,rgbToHex:C,hexToRgb:O,rgbToHsl:R,hslToRgb:N,removeInnerSpace:W,getBrowser:q,getMonths:F,getWeeks:Y,getDays:H,getHours:$,getMinutes:I,getSeconds:V,getBirthday:J,select:j};window.functionality=Q;
diff --git a/dist/index.html b/dist/index.html
index 411e5d0..19fbc02 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1,13 +1,24 @@
-
-
- Title
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+ functionality.js
+
+
+
+
+ Thanks for contributing to functionality.js Library ❤🙏
+
+
+
+