# X-Class Module :

 JavaScript Development Kit that extends meta-class (Prototype) of Predefined and customized JS Class.


# Modules :

  X-Class is just a container for X-modules , which  are :

 1. **X-String** : extends String class.
 2. **X-Number** : extends Number class.
 3. **X-Array** : extends Array class.
 4. **X-Date** : extends Date class.
 5. **X-Boolean** : extends Boolean class.
 6. **X-Function** : extends Function class.
 7. **X-M** : extends Math class.
 8. **X-Global** : extends Global class.
 9. **X-Storage** : extends Storage class (SessionStorage & LocalStorage classes).
 10. **X-Conversion** : extends Conversion class.
 11. **X-Operators** : extends Operators class.
 12. **X-RegExp** : extends RegExp class.
 13. **X-Statements** : extends Statements class.
 14. **X-Object** : extends Object class.
 15. **X-Masfufa** : extends Masfufa class. (Masfufa= مصفوفة =Matrix)
 16. **X-HijriDate** : extends HijriDate class.

# Install ;

- Install all X-modules :

 ```bash
     npm install x-class
 ```
- Install one module

 ```bash
     npm install x-[NAME-of-Module]
    # npm install x-string
    # npm install x-date
    # ..... so on
 ```

# How to use  :

- Just call the famous NodeJS function `require` , even , without assigning it output to variable.

- If you want to profit static utils of XCLass , you must assign `require` call to output variable   
 ```js
          var JsDK=require('x-class');
          JsDK.overload(api.orm,'add');
          /**---- JsDK Overload
          * will create a method api.orm.add that forwards its call to other function, according to 2 things:
                 1. Number of arguments on calling.
                 2. type of arguments.
                 So , if you want to call :
                    - api.orm.add(1,2)=> you should declare "api.orm.add_1_number_number" function  
                    - api.orm.add("ab","cd",[3,45]) => you should declare "api.orm.add_3_string_string_object" function

            */
            JsDK.extends({a:1},{a:2,b:3}) // return : {a:1,b:3}

  ```

______________

# X-String  :

  X-String module extends `String` class & it added to String Class the following methods :

  | Method        | Arguments              | Output    | dependencies|
  | ------------- |:----------------------:|:---------:|------------:|
  | capitalize    | | ||
  | fileExtension    | || |
  | urlReady    | | ||
  | urlParams    | | ||
  | urlParsing    | | ||
  | toHHMMSS    | | ||
  | toFunction    | | ||
  | linkify    | | ||
  | passwordColor    || | |
  | passwordSecurity  |  | | |
  | passwordScore    | || |
  | toInstance    | | ||
  | toDate    | | ||
  | strRight    | | ||
  | strLeft    | | ||
  | strCenter    | | ||
  | noSpace    | | ||
  | noParenthesesInner    | | |  |
  | replaceAll    | | ||
  | reduceWhiteSpace    || | |
  | belongTo    | | ||
  | toInt    | | ||
  | toASCII    | | |||





# X-Number

* isOdd
* isEven
* `..`
* fromRoman
* toRoman

For more details see [X-Number documentation](https://github.com/abdennour/xnumber#readme)

# X-Array

TODO

# X-Date

TODO
# ....

_________

 `Note : Documentation & some modules are not published yet...coming soon`
