## Modules

<dl>
<dt><a href="#module_Utility">Utility</a></dt>
<dd></dd>
<dt><a href="#module_String">String</a></dt>
<dd></dd>
<dt><a href="#module_Ajax">Ajax</a></dt>
<dd></dd>
<dt><a href="#module_Properties">Properties</a></dt>
<dd></dd>
<dt><a href="#module_CSS">CSS</a></dt>
<dd></dd>
<dt><a href="#module_Event">Event</a></dt>
<dd></dd>
<dt><a href="#module_ElementData">ElementData</a></dt>
<dd></dd>
<dt><a href="#module_Manipulation">Manipulation</a></dt>
<dd></dd>
<dt><a href="#module_Selection">Selection</a></dt>
<dd></dd>
<dt><a href="#module_ArrayLike">ArrayLike</a></dt>
<dd></dd>
<dt><a href="#module_Dimensions">Dimensions</a></dt>
<dd></dd>
<dt><a href="#module_Animation">Animation</a></dt>
<dd></dd>
<dt><a href="#module_Utility">Utility</a></dt>
<dd></dd>
</dl>

## Functions

<dl>
<dt><a href="#$">$(argument)</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd><p>jLights default export</p>
</dd>
</dl>

## Typedefs

<dl>
<dt><a href="#jLight">jLight</a> : <code>Object</code></dt>
<dd></dd>
<dt><a href="#defaultCallback">defaultCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#ajaxCompleteCallback">ajaxCompleteCallback</a> ⇒ <code>void</code></dt>
<dd></dd>
<dt><a href="#xhrCallback">xhrCallback</a> ⇒ <code>XMLHttpRequest</code></dt>
<dd></dd>
<dt><a href="#onStepCallback">onStepCallback</a> ⇒ <code>void</code></dt>
<dd></dd>
<dt><a href="#cssClassCallback">cssClassCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#toggleCssClassCallback">toggleCssClassCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#hasClassCallback">hasClassCallback</a> ⇒ <code>boolean</code></dt>
<dd></dd>
<dt><a href="#cssCallback">cssCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>string</code> | <code>CSSStyleDeclaration</code></dt>
<dd></dd>
<dt><a href="#visibilityCallback">visibilityCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#toggleVisibilityCallback">toggleVisibilityCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#eventCallback">eventCallback</a> : <code>function</code></dt>
<dd></dd>
<dt><a href="#onCallback">onCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#offCallback">offCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#delegateCallback">delegateCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#triggerCallback">triggerCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#propCallback">propCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>boolean</code></dt>
<dd></dd>
<dt><a href="#attrCallback">attrCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>Object.&lt;string, string&gt;</code> | <code>boolean</code></dt>
<dd></dd>
<dt><a href="#removeAttrCallback">removeAttrCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#iteratorCallback">iteratorCallback</a> ⇒ <code>void</code></dt>
<dd></dd>
<dt><a href="#valCallback">valCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>boolean</code> | <code>string</code></dt>
<dd></dd>
<dt><a href="#dataCallback">dataCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>*</code></dt>
<dd></dd>
<dt><a href="#cloneCallback">cloneCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#elementsCallback">elementsCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#removeCallback">removeCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>null</code></dt>
<dd></dd>
<dt><a href="#contentCallback">contentCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>string</code></dt>
<dd></dd>
<dt><a href="#indexElementCallback">indexElementCallback</a> ⇒ <code>HTMLElement</code> | <code>undefined</code></dt>
<dd></dd>
<dt><a href="#indexjLightCallback">indexjLightCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#selectorCallback">selectorCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#elementsBooleanCallback">elementsBooleanCallback</a> ⇒ <code>boolean</code></dt>
<dd></dd>
<dt><a href="#filterCallback">filterCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#outerIteratorCallback">outerIteratorCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#sliceCallback">sliceCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#spliceCallback">spliceCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#arrayLengthCallback">arrayLengthCallback</a> ⇒ <code>number</code></dt>
<dd></dd>
<dt><a href="#compareCallback">compareCallback</a> ⇒ <code>number</code></dt>
<dd></dd>
<dt><a href="#sortCallback">sortCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#reduceInnerCallback">reduceInnerCallback</a> ⇒ <code>*</code></dt>
<dd></dd>
<dt><a href="#reduceCallback">reduceCallback</a> ⇒ <code>*</code></dt>
<dd></dd>
<dt><a href="#mapInnerCallback">mapInnerCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>string</code> | <code>HTMLElement</code> | <code>HTMLCollection</code> | <code>NodeList</code></dt>
<dd></dd>
<dt><a href="#mapCallback">mapCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#multipleElementsCallback">multipleElementsCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#iteratorBooleanCallback">iteratorBooleanCallback</a> ⇒ <code>boolean</code></dt>
<dd></dd>
<dt><a href="#arrayBooleanCallback">arrayBooleanCallback</a> ⇒ <code>boolean</code></dt>
<dd></dd>
<dt><a href="#elementsNumberCallback">elementsNumberCallback</a> ⇒ <code>number</code></dt>
<dd></dd>
<dt><a href="#getOrSetValueCallback">getOrSetValueCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>number</code></dt>
<dd></dd>
<dt><a href="#dimensionCallback">dimensionCallback</a> ⇒ <code>number</code></dt>
<dd></dd>
<dt><a href="#outerDimensionCallback">outerDimensionCallback</a> ⇒ <code>number</code></dt>
<dd></dd>
<dt><a href="#offsetCallback">offsetCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>Object</code></dt>
<dd></dd>
<dt><a href="#animateCallback">animateCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#scrollToCallback">scrollToCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#animateOutCallback">animateOutCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#fadeCallback">fadeCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#slideCallback">slideCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#slideToggleCallback">slideToggleCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#isCallback">isCallback</a> ⇒ <code>boolean</code></dt>
<dd></dd>
<dt><a href="#inViewCallback">inViewCallback</a> ⇒ <code><a href="#jLight">jLight</a></code> | <code>boolean</code></dt>
<dd></dd>
<dt><a href="#delayCallback">delayCallback</a> ⇒ <code>Promise</code></dt>
<dd></dd>
<dt><a href="#whenCallback">whenCallback</a> ⇒ <code><a href="#jLight">jLight</a></code></dt>
<dd></dd>
<dt><a href="#stringCallback">stringCallback</a> ⇒ <code>string</code></dt>
<dd></dd>
<dt><a href="#stringObjectCallback">stringObjectCallback</a> ⇒ <code>Object.&lt;string, string&gt;</code></dt>
<dd></dd>
</dl>

<a name="module_Utility"></a>

## Utility

* [Utility](#module_Utility)
    * _static_
        * [.noop()](#module_Utility.noop) ⇒ <code>void</code>
        * [.uniqid()](#module_Utility.uniqid) ⇒ <code>string</code>
        * [.generateHash(string)](#module_Utility.generateHash) ⇒ <code>number</code>
        * [.isEmptyObject(object)](#module_Utility.isEmptyObject) ⇒ <code>boolean</code>
        * [.isSameObject(object1, object2)](#module_Utility.isSameObject) ⇒ <code>boolean</code>
        * [.preventEvent(event)](#module_Utility.preventEvent) ⇒ <code>void</code>
        * [.doEasing(duration, onStep, [callback])](#module_Utility.doEasing) ⇒ <code>void</code>
    * _inner_
        * [~is(propertyOrElements)](#module_Utility..is) ⇒ <code>boolean</code>
        * [~contains($elements)](#module_Utility..contains) ⇒ <code>boolean</code>
        * [~inView([offsetOrCallback], [callbackOrOptions])](#module_Utility..inView) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
        * [~delay([delay])](#module_Utility..delay) ⇒ <code>Promise</code>
        * [~when(condition, callback, [...args])](#module_Utility..when) ⇒ [<code>jLight</code>](#jLight)
        * [~serialize()](#module_Utility..serialize) ⇒ <code>string</code>
        * [~serializeJson()](#module_Utility..serializeJson) ⇒ <code>Object.&lt;string, string&gt;</code>

<a name="module_Utility.noop"></a>

### Utility.noop() ⇒ <code>void</code>
Provides an empty function.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  
<a name="module_Utility.uniqid"></a>

### Utility.uniqid() ⇒ <code>string</code>
Generates a semi-random string of length 9.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>string</code> - The generated string  
<a name="module_Utility.generateHash"></a>

### Utility.generateHash(string) ⇒ <code>number</code>
Generates a unique number hash from a string.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>number</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to hash |

<a name="module_Utility.isEmptyObject"></a>

### Utility.isEmptyObject(object) ⇒ <code>boolean</code>
Checks if an object is empty.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the object is empty  

| Param | Type | Description |
| --- | --- | --- |
| object | <code>object</code> | The object to check |

<a name="module_Utility.isSameObject"></a>

### Utility.isSameObject(object1, object2) ⇒ <code>boolean</code>
Checks if two objects are the same.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the objects are the same  

| Param | Type | Description |
| --- | --- | --- |
| object1 | <code>object</code> | The object to compare |
| object2 | <code>object</code> | The object to compare to |

<a name="module_Utility.preventEvent"></a>

### Utility.preventEvent(event) ⇒ <code>void</code>
Prevents the events default beheavior, propagation and immediate propagation

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| event | <code>Event</code> | The event to prevent |

<a name="module_Utility.doEasing"></a>

### Utility.doEasing(duration, onStep, [callback]) ⇒ <code>void</code>
Provides easing functionality using easeInOutCubic.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| duration | <code>number</code> | The duration over which to apply the easing |
| onStep | [<code>onStepCallback</code>](#onStepCallback) | The function to run at each easing step |
| [callback] | <code>function</code> | The function to run after the easing is complete |

<a name="module_Utility..is"></a>

### Utility~is(propertyOrElements) ⇒ <code>boolean</code>
Whether a property of an element of the collection is true
or if an element of the collection is part of another set.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the property is set on one of the collections elements or
at least on of the elements is contained in the supplied elements  

| Param | Type | Description |
| --- | --- | --- |
| propertyOrElements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The property or set to compare the collections elements to |

<a name="module_Utility..contains"></a>

### Utility~contains($elements) ⇒ <code>boolean</code>
Whether the collections elements contain at least one of elements.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="module_Utility..inView"></a>

### Utility~inView([offsetOrCallback], [callbackOrOptions]) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
Checks if the collections first element is in view or runs a function if that is the case.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> - jLight collection or whether the collections first element is in view  

| Param | Type | Description |
| --- | --- | --- |
| [offsetOrCallback] | <code>function</code> \| <code>Object</code> | The offset used for determining if the element is in view or the function to run each time that is the case |
| [callbackOrOptions] | <code>function</code> \| <code>Object</code> | The function to run each time the element is in view or a custom options object to define the functions behavior (defaults: { scrollTimer: 100, isInView: noop, onEnter: noop, onExit: noop }) |

<a name="module_Utility..delay"></a>

### Utility~delay([delay]) ⇒ <code>Promise</code>
Delays code execution.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>Promise</code> - The corresponding promise  

| Param | Type | Description |
| --- | --- | --- |
| [delay] | <code>number</code> | The duration to delay the code execution for |

<a name="module_Utility..when"></a>

### Utility~when(condition, callback, [...args]) ⇒ [<code>jLight</code>](#jLight)
Calls the supplied function with the supplied arguments if the given condition is met.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| condition | <code>boolean</code> \| <code>function</code> | The condition to check for. If a function is supplied its return value will be used for checking |
| callback | <code>string</code> \| <code>function</code> | The function to run when the condition is met. If a string is provided it should be a valid jLight function name |
| [...args] | <code>\*</code> | The arguments to supply to the given jLight function |

<a name="module_Utility..serialize"></a>

### Utility~serialize() ⇒ <code>string</code>
Serializes the collections elements values to a URL encoded string.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>string</code> - The resulting string  
<a name="module_Utility..serializeJson"></a>

### Utility~serializeJson() ⇒ <code>Object.&lt;string, string&gt;</code>
Serializes the collections elements values to a JSON object.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>Object.&lt;string, string&gt;</code> - The resulting JSON object  
<a name="module_String"></a>

## String

* [String](#module_String)
    * [.lcfirst(string)](#module_String.lcfirst) ⇒ <code>string</code>
    * [.ucfirst(string)](#module_String.ucfirst) ⇒ <code>string</code>
    * [.camelToKebab(string)](#module_String.camelToKebab) ⇒ <code>string</code>
    * [.camelToSnake(string)](#module_String.camelToSnake) ⇒ <code>string</code>
    * [.kebabToCamel(string)](#module_String.kebabToCamel) ⇒ <code>string</code>
    * [.kebabToSnake(string)](#module_String.kebabToSnake) ⇒ <code>string</code>
    * [.snakeToCamel(string)](#module_String.snakeToCamel) ⇒ <code>string</code>
    * [.snakeToKebab(string)](#module_String.snakeToKebab) ⇒ <code>string</code>

<a name="module_String.lcfirst"></a>

### String.lcfirst(string) ⇒ <code>string</code>
Converts the first character of a string to lowercase.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.ucfirst"></a>

### String.ucfirst(string) ⇒ <code>string</code>
Converts the first character of a string to uppercase.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.camelToKebab"></a>

### String.camelToKebab(string) ⇒ <code>string</code>
Converts a string from camel case to kebap case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.camelToSnake"></a>

### String.camelToSnake(string) ⇒ <code>string</code>
Converts a string from camel case to snake case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.kebabToCamel"></a>

### String.kebabToCamel(string) ⇒ <code>string</code>
Converts a string from kebap case to camel case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.kebabToSnake"></a>

### String.kebabToSnake(string) ⇒ <code>string</code>
Converts a string from kebap case to snake case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.snakeToCamel"></a>

### String.snakeToCamel(string) ⇒ <code>string</code>
Converts a string from snake case to camel case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_String.snakeToKebab"></a>

### String.snakeToKebab(string) ⇒ <code>string</code>
Converts a string from snake case to kebap case.

**Kind**: static method of [<code>String</code>](#module_String)  
**Returns**: <code>string</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to convert |

<a name="module_Ajax"></a>

## Ajax

* [Ajax](#module_Ajax)
    * [.ajax(opts)](#module_Ajax.ajax) ⇒ <code>XMLHttpRequest</code>
    * [.get(url, opts)](#module_Ajax.get) ⇒ <code>XMLHttpRequest</code>
    * [.post(url, opts)](#module_Ajax.post) ⇒ <code>XMLHttpRequest</code>

<a name="module_Ajax.ajax"></a>

### Ajax.ajax(opts) ⇒ <code>XMLHttpRequest</code>
Handles asynchronous HTTP requests.

**Kind**: static method of [<code>Ajax</code>](#module_Ajax)  
**Returns**: <code>XMLHttpRequest</code> - The corresponding XMLHttpRequest object  

| Param | Type | Description |
| --- | --- | --- |
| opts | <code>object</code> | The options for the request |
| [opts.url] | <code>string</code> | The url to send the request to |
| [opts.method] | <code>string</code> | The HTTP method to use |
| [opts.data] | <code>Object.&lt;string, \*&gt;</code> \| <code>string</code> | The data to send |
| [opts.headers] | <code>Object.&lt;string, string&gt;</code> | The headers to send |
| [opts.processData] | <code>boolean</code> | Whether to process the data or not |
| [opts.crossDomain] | <code>boolean</code> | Whether to send the request cross domain or not |
| [opts.async] | <code>boolean</code> | Whether to send the request asynchronously or not |
| [opts.contentType] | <code>string</code> \| <code>false</code> | The content type to use |
| [opts.username] | <code>string</code> \| <code>null</code> | The username to use for authentification |
| [opts.password] | <code>string</code> \| <code>null</code> | The password to use for authentification |
| [opts.done] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request was successful |
| [opts.fail] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request has failed |
| [opts.always] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run always |
| [opts.abort] | <code>function</code> | The callback to run if the request was aborted |
| [opts.xhr] | [<code>xhrCallback</code>](#xhrCallback) | The callback to modify the XMLHttpRequest object before sending |

<a name="module_Ajax.get"></a>

### Ajax.get(url, opts) ⇒ <code>XMLHttpRequest</code>
Handles asynchronous GET requests.

**Kind**: static method of [<code>Ajax</code>](#module_Ajax)  
**Returns**: <code>XMLHttpRequest</code> - The corresponding XMLHttpRequest object  

| Param | Type | Description |
| --- | --- | --- |
| url | <code>string</code> | The url for the request |
| opts | <code>object</code> | The options for the request |
| [opts.data] | <code>Object.&lt;string, \*&gt;</code> \| <code>string</code> | The data to send |
| [opts.headers] | <code>Object.&lt;string, string&gt;</code> | The headers to send |
| [opts.processData] | <code>boolean</code> | Whether to process the data or not |
| [opts.crossDomain] | <code>boolean</code> | Whether to send the request cross domain or not |
| [opts.async] | <code>boolean</code> | Whether to send the request asynchronously or not |
| [opts.contentType] | <code>string</code> \| <code>false</code> | The content type to use |
| [opts.username] | <code>string</code> \| <code>null</code> | The username to use for authentification |
| [opts.password] | <code>string</code> \| <code>null</code> | The password to use for authentification |
| [opts.done] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request was successful |
| [opts.fail] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request has failed |
| [opts.always] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run always |
| [opts.abort] | <code>function</code> | The callback to run if the request was aborted |
| [opts.xhr] | [<code>xhrCallback</code>](#xhrCallback) | The callback to modify the XMLHttpRequest object before sending |

<a name="module_Ajax.post"></a>

### Ajax.post(url, opts) ⇒ <code>XMLHttpRequest</code>
Handles asynchronous POST requests.

**Kind**: static method of [<code>Ajax</code>](#module_Ajax)  
**Returns**: <code>XMLHttpRequest</code> - The corresponding XMLHttpRequest object  

| Param | Type | Description |
| --- | --- | --- |
| url | <code>string</code> | The url for the request |
| opts | <code>object</code> | The options for the request |
| [opts.data] | <code>Object.&lt;string, \*&gt;</code> \| <code>string</code> | The data to send |
| [opts.headers] | <code>Object.&lt;string, string&gt;</code> | The headers to send |
| [opts.processData] | <code>boolean</code> | Whether to process the data or not |
| [opts.crossDomain] | <code>boolean</code> | Whether to send the request cross domain or not |
| [opts.async] | <code>boolean</code> | Whether to send the request asynchronously or not |
| [opts.contentType] | <code>string</code> \| <code>false</code> | The content type to use |
| [opts.username] | <code>string</code> \| <code>null</code> | The username to use for authentification |
| [opts.password] | <code>string</code> \| <code>null</code> | The password to use for authentification |
| [opts.done] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request was successful |
| [opts.fail] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run if the request has failed |
| [opts.always] | [<code>ajaxCompleteCallback</code>](#ajaxCompleteCallback) | The callback to run always |
| [opts.abort] | <code>function</code> | The callback to run if the request was aborted |
| [opts.xhr] | [<code>xhrCallback</code>](#xhrCallback) | The callback to modify the XMLHttpRequest object before sending |

<a name="module_Properties"></a>

## Properties

* [Properties](#module_Properties)
    * [~elements](#module_Properties..elements) : <code>Array.&lt;HTMLElement&gt;</code>
    * [~length](#module_Properties..length) : <code>number</code>
    * [~tagName](#module_Properties..tagName) : <code>string</code>

<a name="module_Properties..elements"></a>

### Properties~elements : <code>Array.&lt;HTMLElement&gt;</code>
The collections elements.

**Kind**: inner property of [<code>Properties</code>](#module_Properties)  
<a name="module_Properties..length"></a>

### Properties~length : <code>number</code>
The collections element count.

**Kind**: inner property of [<code>Properties</code>](#module_Properties)  
<a name="module_Properties..tagName"></a>

### Properties~tagName : <code>string</code>
The collections first elements tag name.

**Kind**: inner property of [<code>Properties</code>](#module_Properties)  
<a name="module_CSS"></a>

## CSS

* [CSS](#module_CSS)
    * [~addClass(cssClasses)](#module_CSS..addClass) ⇒ [<code>jLight</code>](#jLight)
    * [~removeClass(cssClasses)](#module_CSS..removeClass) ⇒ [<code>jLight</code>](#jLight)
    * [~toggleClass(cssClasses, [force])](#module_CSS..toggleClass) ⇒ [<code>jLight</code>](#jLight)
    * [~hasClass(cssClasses)](#module_CSS..hasClass) ⇒ <code>boolean</code>
    * [~css(property, [value])](#module_CSS..css) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>CSSStyleDeclaration</code>
    * [~show([type])](#module_CSS..show) ⇒ [<code>jLight</code>](#jLight)
    * [~hide()](#module_CSS..hide) ⇒ [<code>jLight</code>](#jLight)
    * [~toggle([type], [force])](#module_CSS..toggle) ⇒ [<code>jLight</code>](#jLight)

<a name="module_CSS..addClass"></a>

### CSS~addClass(cssClasses) ⇒ [<code>jLight</code>](#jLight)
Adds css classes to the collections elements.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to add |

<a name="module_CSS..removeClass"></a>

### CSS~removeClass(cssClasses) ⇒ [<code>jLight</code>](#jLight)
Removes css classes to the collections elements.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to remove |

<a name="module_CSS..toggleClass"></a>

### CSS~toggleClass(cssClasses, [force]) ⇒ [<code>jLight</code>](#jLight)
Toggles css classes of the collections elements.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to toggle |
| [force] | <code>boolean</code> | Force whether to add or remove classes |

<a name="module_CSS..hasClass"></a>

### CSS~hasClass(cssClasses) ⇒ <code>boolean</code>
Whether at least one of the collections elements has all of the provided classes.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: <code>boolean</code> - Whether at least one of the collections elements has all of the provided classes  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to check for |

<a name="module_CSS..css"></a>

### CSS~css(property, [value]) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>CSSStyleDeclaration</code>
Applies style rules to the collections elements, gets the current style rules or
gets the current value for a specific style property.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>CSSStyleDeclaration</code> - jLight collection, property value or elements CSSStyleDeclaration  

| Param | Type | Description |
| --- | --- | --- |
| property | <code>string</code> \| <code>Object.&lt;string, string&gt;</code> | The property name or the properties to set |
| [value] | <code>string</code> | The value to set the supplied property to |

<a name="module_CSS..show"></a>

### CSS~show([type]) ⇒ [<code>jLight</code>](#jLight)
Shows the collections elements.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |

<a name="module_CSS..hide"></a>

### CSS~hide() ⇒ [<code>jLight</code>](#jLight)
Hides the collections elements.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_CSS..toggle"></a>

### CSS~toggle([type], [force]) ⇒ [<code>jLight</code>](#jLight)
Toggles the collections elements visibility.

**Kind**: inner method of [<code>CSS</code>](#module_CSS)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [type] | <code>string</code> | The css display type to apply to the function (default: 'block') |
| [force] | <code>boolean</code> | Force whether to show or hide elements |

<a name="module_Event"></a>

## Event

* [Event](#module_Event)
    * [~on(eventNames, callbackOrSelector, [delegatedCallbackOrOptions], [options])](#module_Event..on) ⇒ [<code>jLight</code>](#jLight)
    * [~once(eventNames, callbackOrSelector, [delegatedCallbackOrOptions], [options])](#module_Event..once) ⇒ [<code>jLight</code>](#jLight)
    * [~off(eventNames, [callback])](#module_Event..off) ⇒ [<code>jLight</code>](#jLight)
    * ~~[~delegate(eventNames, callback)](#module_Event..delegate) ⇒ [<code>jLight</code>](#jLight)~~
    * ~~[~undelegate(eventNames, callback)](#module_Event..undelegate) ⇒ [<code>jLight</code>](#jLight)~~
    * [~trigger(eventNames, [jLightEventData])](#module_Event..trigger) ⇒ [<code>jLight</code>](#jLight)

<a name="module_Event..on"></a>

### Event~on(eventNames, callbackOrSelector, [delegatedCallbackOrOptions], [options]) ⇒ [<code>jLight</code>](#jLight)
Adds event handlers to elements.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callbackOrSelector | [<code>eventCallback</code>](#eventCallback) | The function to execute when the event occurs or a selector to delegate events to children of the current collections elements |
| [delegatedCallbackOrOptions] | [<code>eventCallback</code>](#eventCallback) \| <code>Object</code> | The callback to run when the event is delegated or the options to apply to the listener |
| [options] | <code>Object</code> | The options to apply to the listener |

<a name="module_Event..once"></a>

### Event~once(eventNames, callbackOrSelector, [delegatedCallbackOrOptions], [options]) ⇒ [<code>jLight</code>](#jLight)
Adds event handlers to elements fo one time execution.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callbackOrSelector | [<code>eventCallback</code>](#eventCallback) | The function to execute when the event occurs or a selector to delegate events to children of the current collections elements |
| [delegatedCallbackOrOptions] | [<code>eventCallback</code>](#eventCallback) \| <code>Object</code> | The callback to run when the event is delegated or the options to apply to the listener |
| [options] | <code>Object</code> | The options to apply to the listener |

<a name="module_Event..off"></a>

### Event~off(eventNames, [callback]) ⇒ [<code>jLight</code>](#jLight)
Removes event handlers from elements.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| [callback] | <code>function</code> | The function to remove from being executed when the event occurs |

<a name="module_Event..delegate"></a>

### ~~Event~delegate(eventNames, callback) ⇒ [<code>jLight</code>](#jLight)~~
***Deprecated***

[DEPRECATED] Delegates event handlers to elements.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callback | <code>function</code> | The function to execute when the event occurs |

<a name="module_Event..undelegate"></a>

### ~~Event~undelegate(eventNames, callback) ⇒ [<code>jLight</code>](#jLight)~~
***Deprecated***

[DEPRECATED] Undelegates event handlers from elements.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callback | <code>function</code> | The function to remove |

<a name="module_Event..trigger"></a>

### Event~trigger(eventNames, [jLightEventData]) ⇒ [<code>jLight</code>](#jLight)
Triggers events on the collections elements.

**Kind**: inner method of [<code>Event</code>](#module_Event)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| [jLightEventData] | <code>\*</code> | Custom data passed to the event |

<a name="module_ElementData"></a>

## ElementData

* [ElementData](#module_ElementData)
    * [~prop(property, [state])](#module_ElementData..prop) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
    * [~attr([attribute], [value])](#module_ElementData..attr) ⇒ [<code>jLight</code>](#jLight) \| <code>Object.&lt;string, string&gt;</code> \| <code>boolean</code>
    * [~removeAttr(attribute)](#module_ElementData..removeAttr) ⇒ [<code>jLight</code>](#jLight)
    * [~text([text])](#module_ElementData..text) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code>
    * [~html([html])](#module_ElementData..html) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code>
    * [~val([valueOrFunction])](#module_ElementData..val) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code> \| <code>string</code>
    * [~data([keyOrData], [value])](#module_ElementData..data) ⇒ [<code>jLight</code>](#jLight) \| <code>\*</code>

<a name="module_ElementData..prop"></a>

### ElementData~prop(property, [state]) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
Sets a property of the collections elements or gets its value.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> - jLight collection or if the property is set on at least one of the collections elements  

| Param | Type | Description |
| --- | --- | --- |
| property | <code>string</code> | The property to set or get |
| [state] | <code>boolean</code> | The state to set the property to |

<a name="module_ElementData..attr"></a>

### ElementData~attr([attribute], [value]) ⇒ [<code>jLight</code>](#jLight) \| <code>Object.&lt;string, string&gt;</code> \| <code>boolean</code>
Sets an attribute or attributes to the collections elements or gets its value or values.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>Object.&lt;string, string&gt;</code> \| <code>boolean</code> - jLight collection, the attributes value, an object of each attribute on the
collections elements or if the attribute whether present on at least one of
the collections elements  

| Param | Type | Description |
| --- | --- | --- |
| [attribute] | <code>string</code> \| <code>Object.&lt;string, \*&gt;</code> | The attribute or attributes to set or get |
| [value] | <code>\*</code> | The value to set the attribute to |

<a name="module_ElementData..removeAttr"></a>

### ElementData~removeAttr(attribute) ⇒ [<code>jLight</code>](#jLight)
Removes the supplied attributes from the collections elements.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| attribute | <code>string</code> \| <code>Array.&lt;string&gt;</code> | The attribute or attributes to remove |

<a name="module_ElementData..text"></a>

### ElementData~text([text]) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code>
Gets or sets the text content of the collections elements.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> - jLight collection or the text content  

| Param | Type | Description |
| --- | --- | --- |
| [text] | <code>string</code> | The text to supply to the function |

<a name="module_ElementData..html"></a>

### ElementData~html([html]) ⇒ [<code>jLight</code>](#jLight) \| <code>string</code>
Gets or sets the HTML content of the collections elements.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> - jLight collection or the html content  

| Param | Type | Description |
| --- | --- | --- |
| [html] | <code>string</code> | The html to supply to the function |

<a name="module_ElementData..val"></a>

### ElementData~val([valueOrFunction]) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code> \| <code>string</code>
Gets or sets the collections elements values.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> \| <code>string</code> - jLight collection or the value  

| Param | Type | Description |
| --- | --- | --- |
| [valueOrFunction] | <code>boolean</code> \| <code>null</code> \| <code>string</code> \| <code>Array.&lt;boolean&gt;</code> \| <code>function</code> \| [<code>iteratorCallback</code>](#iteratorCallback) | The value to set the collections elements value to. If a function is supplied its return value will be set as the value. If the jLight element is an HTMLSelectElement with the multiple attribute each option will be passed separately to the function. In that case an array of booleans can be used to set the selected options. |

<a name="module_ElementData..data"></a>

### ElementData~data([keyOrData], [value]) ⇒ [<code>jLight</code>](#jLight) \| <code>\*</code>
Gets or sets the jLight data of the collections elements.

**Kind**: inner method of [<code>ElementData</code>](#module_ElementData)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>\*</code> - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [keyOrData] | <code>string</code> \| <code>Object.&lt;string, \*&gt;</code> | The key of the data value to get or set or an object of data values to set. |
| [value] | <code>string</code> \| <code>Array.&lt;string&gt;</code> | The value to set the data at the supplied key to. |

<a name="module_Manipulation"></a>

## Manipulation

* [Manipulation](#module_Manipulation)
    * [~empty()](#module_Manipulation..empty) ⇒ [<code>jLight</code>](#jLight)
    * [~clone([deep])](#module_Manipulation..clone) ⇒ [<code>jLight</code>](#jLight)
    * [~add($elements)](#module_Manipulation..add) ⇒ [<code>jLight</code>](#jLight)
    * [~remove([$elements], [removeFromDom])](#module_Manipulation..remove) ⇒ [<code>jLight</code>](#jLight) \| <code>null</code>
    * [~prepend($elements)](#module_Manipulation..prepend) ⇒ [<code>jLight</code>](#jLight)
    * [~append($elements)](#module_Manipulation..append) ⇒ [<code>jLight</code>](#jLight)
    * [~prependTo($elements)](#module_Manipulation..prependTo) ⇒ [<code>jLight</code>](#jLight)
    * [~appendTo($elements)](#module_Manipulation..appendTo) ⇒ [<code>jLight</code>](#jLight)
    * [~insertBefore($elements)](#module_Manipulation..insertBefore) ⇒ [<code>jLight</code>](#jLight)
    * [~insertAfter($elements)](#module_Manipulation..insertAfter) ⇒ [<code>jLight</code>](#jLight)
    * [~before($elements)](#module_Manipulation..before) ⇒ [<code>jLight</code>](#jLight)
    * [~after($elements)](#module_Manipulation..after) ⇒ [<code>jLight</code>](#jLight)
    * [~wrap($elements)](#module_Manipulation..wrap) ⇒ [<code>jLight</code>](#jLight)

<a name="module_Manipulation..empty"></a>

### Manipulation~empty() ⇒ [<code>jLight</code>](#jLight)
Empties the collections elements HTML content.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Manipulation..clone"></a>

### Manipulation~clone([deep]) ⇒ [<code>jLight</code>](#jLight)
Clones the collection.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [deep] | <code>boolean</code> | Whether to apply deep cloning of the affected nodes (default: true) |

<a name="module_Manipulation..add"></a>

### Manipulation~add($elements) ⇒ [<code>jLight</code>](#jLight)
Adds elements to the collection.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..remove"></a>

### Manipulation~remove([$elements], [removeFromDom]) ⇒ [<code>jLight</code>](#jLight) \| <code>null</code>
Removes elements from the collection.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>null</code> - jLight collection or null  

| Param | Type | Description |
| --- | --- | --- |
| [$elements] | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to remove |
| [removeFromDom] | <code>boolean</code> | Whether the elements should also be removed from the DOM (default: true) |

<a name="module_Manipulation..prepend"></a>

### Manipulation~prepend($elements) ⇒ [<code>jLight</code>](#jLight)
Prepends elements to the collections elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..append"></a>

### Manipulation~append($elements) ⇒ [<code>jLight</code>](#jLight)
Appends elements to the collections elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..prependTo"></a>

### Manipulation~prependTo($elements) ⇒ [<code>jLight</code>](#jLight)
Prepends the collections elements to elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..appendTo"></a>

### Manipulation~appendTo($elements) ⇒ [<code>jLight</code>](#jLight)
Appends the collections elements to elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..insertBefore"></a>

### Manipulation~insertBefore($elements) ⇒ [<code>jLight</code>](#jLight)
Inserts the collections elements before elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..insertAfter"></a>

### Manipulation~insertAfter($elements) ⇒ [<code>jLight</code>](#jLight)
Inserts the collections elements after elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..before"></a>

### Manipulation~before($elements) ⇒ [<code>jLight</code>](#jLight)
Inserts elements before the collections elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..after"></a>

### Manipulation~after($elements) ⇒ [<code>jLight</code>](#jLight)
Inserts elements after the collections elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Manipulation..wrap"></a>

### Manipulation~wrap($elements) ⇒ [<code>jLight</code>](#jLight)
Wraps the collections elements in elements.

**Kind**: inner method of [<code>Manipulation</code>](#module_Manipulation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Selection"></a>

## Selection

* [Selection](#module_Selection)
    * [~get(index)](#module_Selection..get) ⇒ <code>HTMLElement</code> \| <code>undefined</code>
    * [~eq(index)](#module_Selection..eq) ⇒ [<code>jLight</code>](#jLight)
    * [~first()](#module_Selection..first) ⇒ [<code>jLight</code>](#jLight)
    * [~last()](#module_Selection..last) ⇒ [<code>jLight</code>](#jLight)
    * [~parent()](#module_Selection..parent) ⇒ [<code>jLight</code>](#jLight)
    * [~parents()](#module_Selection..parents) ⇒ [<code>jLight</code>](#jLight)
    * [~children()](#module_Selection..children) ⇒ [<code>jLight</code>](#jLight)
    * [~siblings()](#module_Selection..siblings) ⇒ [<code>jLight</code>](#jLight)
    * [~prev([selector])](#module_Selection..prev) ⇒ [<code>jLight</code>](#jLight)
    * [~next([selector])](#module_Selection..next) ⇒ [<code>jLight</code>](#jLight)
    * [~closest([selector])](#module_Selection..closest) ⇒ [<code>jLight</code>](#jLight)
    * [~not($elements)](#module_Selection..not) ⇒ [<code>jLight</code>](#jLight)
    * [~has($elements)](#module_Selection..has) ⇒ [<code>jLight</code>](#jLight)

<a name="module_Selection..get"></a>

### Selection~get(index) ⇒ <code>HTMLElement</code> \| <code>undefined</code>
Gets the element at the supplied index from the collection.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: <code>HTMLElement</code> \| <code>undefined</code> - The element or null  

| Param | Type | Description |
| --- | --- | --- |
| index | <code>number</code> | The index to supply to the function |

<a name="module_Selection..eq"></a>

### Selection~eq(index) ⇒ [<code>jLight</code>](#jLight)
Gets the jLight element at the supplied index from the collection.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| index | <code>number</code> | The index to supply to the function |

<a name="module_Selection..first"></a>

### Selection~first() ⇒ [<code>jLight</code>](#jLight)
Gets the first jLight element from the collection.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..last"></a>

### Selection~last() ⇒ [<code>jLight</code>](#jLight)
Gets the last jLight element from the collection.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..parent"></a>

### Selection~parent() ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections parent elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..parents"></a>

### Selection~parents() ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from all the collections parent elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..children"></a>

### Selection~children() ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections children elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..siblings"></a>

### Selection~siblings() ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections sibling elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Selection..prev"></a>

### Selection~prev([selector]) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections previous sibling elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [selector] | <code>string</code> | The selector to use for matching elements |

<a name="module_Selection..next"></a>

### Selection~next([selector]) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections next sibling elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [selector] | <code>string</code> | The selector to use for matching elements |

<a name="module_Selection..closest"></a>

### Selection~closest([selector]) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from all the collections parent elements matching the selector.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [selector] | <code>string</code> | The selector to use for matching elements |

<a name="module_Selection..not"></a>

### Selection~not($elements) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections elements which are not part of elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_Selection..has"></a>

### Selection~has($elements) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections elements which contain elements.

**Kind**: inner method of [<code>Selection</code>](#module_Selection)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="module_ArrayLike"></a>

## ArrayLike

* [ArrayLike](#module_ArrayLike)
    * [~filter(callbackOrSelector)](#module_ArrayLike..filter) ⇒ [<code>jLight</code>](#jLight)
    * [~forEach(callback)](#module_ArrayLike..forEach) ⇒ [<code>jLight</code>](#jLight)
    * ~~[~each(callback)](#module_ArrayLike..each) ⇒ [<code>jLight</code>](#jLight)~~
    * [~slice([start], [end])](#module_ArrayLike..slice) ⇒ [<code>jLight</code>](#jLight)
    * [~splice(start, [deleteCount])](#module_ArrayLike..splice) ⇒ [<code>jLight</code>](#jLight)
    * [~push(...args)](#module_ArrayLike..push) ⇒ <code>number</code>
    * [~pop()](#module_ArrayLike..pop) ⇒ [<code>jLight</code>](#jLight)
    * [~reverse()](#module_ArrayLike..reverse) ⇒ [<code>jLight</code>](#jLight)
    * [~shift()](#module_ArrayLike..shift) ⇒ [<code>jLight</code>](#jLight)
    * [~unshift(...args)](#module_ArrayLike..unshift) ⇒ <code>number</code>
    * [~sort(compareFunction)](#module_ArrayLike..sort) ⇒ [<code>jLight</code>](#jLight)
    * [~reduce(callback, [initialValue])](#module_ArrayLike..reduce) ⇒ <code>\*</code>
    * [~map(callback)](#module_ArrayLike..map) ⇒ [<code>jLight</code>](#jLight)
    * [~concat(...args)](#module_ArrayLike..concat) ⇒ [<code>jLight</code>](#jLight)
    * [~includes($elements)](#module_ArrayLike..includes) ⇒ <code>boolean</code>
    * [~some(callback)](#module_ArrayLike..some) ⇒ <code>boolean</code>
    * [~every(callback)](#module_ArrayLike..every) ⇒ <code>boolean</code>
    * [~indexOf($elements)](#module_ArrayLike..indexOf) ⇒ <code>number</code>
    * [~lastIndexOf($elements)](#module_ArrayLike..lastIndexOf) ⇒ <code>number</code>
    * [~find([selector])](#module_ArrayLike..find) ⇒ [<code>jLight</code>](#jLight)

<a name="module_ArrayLike..filter"></a>

### ArrayLike~filter(callbackOrSelector) ⇒ [<code>jLight</code>](#jLight)
Gets a filtered jLight collection based on the input.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callbackOrSelector | <code>string</code> \| [<code>iteratorCallback</code>](#iteratorCallback) | The selector to filter the collection by or a custom function to decide which elements to filter out |

<a name="module_ArrayLike..forEach"></a>

### ArrayLike~forEach(callback) ⇒ [<code>jLight</code>](#jLight)
Runs a function on each of the collections elements.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorCallback</code>](#iteratorCallback) | The function to apply to each element |

<a name="module_ArrayLike..each"></a>

### ~~ArrayLike~each(callback) ⇒ [<code>jLight</code>](#jLight)~~
***Deprecated***

[DEPRECATED] Runs a function on each of the collections elements.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorCallback</code>](#iteratorCallback) | The function to apply to each element |

<a name="module_ArrayLike..slice"></a>

### ArrayLike~slice([start], [end]) ⇒ [<code>jLight</code>](#jLight)
Slices the collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [start] | <code>number</code> | The index to start the slicing |
| [end] | <code>number</code> | The index to end the slicing |

<a name="module_ArrayLike..splice"></a>

### ArrayLike~splice(start, [deleteCount]) ⇒ [<code>jLight</code>](#jLight)
Splices the collection

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| start | <code>number</code> | The index to start the splicing |
| [deleteCount] | <code>number</code> | The count of elements to delete |

<a name="module_ArrayLike..push"></a>

### ArrayLike~push(...args) ⇒ <code>number</code>
Pushes elements to the collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>number</code> - The collections new length  

| Param | Type | Description |
| --- | --- | --- |
| ...args | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply to the function. |

<a name="module_ArrayLike..pop"></a>

### ArrayLike~pop() ⇒ [<code>jLight</code>](#jLight)
Pops the last element from the collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_ArrayLike..reverse"></a>

### ArrayLike~reverse() ⇒ [<code>jLight</code>](#jLight)
Reverses a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_ArrayLike..shift"></a>

### ArrayLike~shift() ⇒ [<code>jLight</code>](#jLight)
Shifts a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_ArrayLike..unshift"></a>

### ArrayLike~unshift(...args) ⇒ <code>number</code>
Unshifts a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>number</code> - The collections new length  

| Param | Type | Description |
| --- | --- | --- |
| ...args | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply to the function. |

<a name="module_ArrayLike..sort"></a>

### ArrayLike~sort(compareFunction) ⇒ [<code>jLight</code>](#jLight)
Sorts a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| compareFunction | [<code>compareCallback</code>](#compareCallback) | The function used for sorting |

<a name="module_ArrayLike..reduce"></a>

### ArrayLike~reduce(callback, [initialValue]) ⇒ <code>\*</code>
Reduces a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>\*</code> - The reduction result  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>reduceInnerCallback</code>](#reduceInnerCallback) | The function used for reduction |
| [initialValue] | <code>\*</code> | The initial value used for reduction |

<a name="module_ArrayLike..map"></a>

### ArrayLike~map(callback) ⇒ [<code>jLight</code>](#jLight)
Maps a collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>mapInnerCallback</code>](#mapInnerCallback) | The function used for mapping |

<a name="module_ArrayLike..concat"></a>

### ArrayLike~concat(...args) ⇒ [<code>jLight</code>](#jLight)
Concats a collection with other collections.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| ...args | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> \| <code>Array.&lt;(jLight\|string\|HTMLElement\|HTMLCollection\|NodeList)&gt;</code> | The elements to apply to the function. |

<a name="module_ArrayLike..includes"></a>

### ArrayLike~includes($elements) ⇒ <code>boolean</code>
Whether the collections elements include at least one of elements.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="module_ArrayLike..some"></a>

### ArrayLike~some(callback) ⇒ <code>boolean</code>
Whether at least one of the collections elements meets the conditon.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorBooleanCallback</code>](#iteratorBooleanCallback) | The elements to supply to the function |

<a name="module_ArrayLike..every"></a>

### ArrayLike~every(callback) ⇒ <code>boolean</code>
Whether every one of the collections elements meets the conditon.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorBooleanCallback</code>](#iteratorBooleanCallback) | The elements to supply to the function |

<a name="module_ArrayLike..indexOf"></a>

### ArrayLike~indexOf($elements) ⇒ <code>number</code>
Gets the given elements index inside the collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>number</code> - The resulting number  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="module_ArrayLike..lastIndexOf"></a>

### ArrayLike~lastIndexOf($elements) ⇒ <code>number</code>
Gets the given elements last index inside the collection.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: <code>number</code> - The resulting number  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="module_ArrayLike..find"></a>

### ArrayLike~find([selector]) ⇒ [<code>jLight</code>](#jLight)
Gets a jLight collection from the collections children elements matching the selector.

**Kind**: inner method of [<code>ArrayLike</code>](#module_ArrayLike)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [selector] | <code>string</code> | The selector to use for matching elements |

<a name="module_Dimensions"></a>

## Dimensions

* [Dimensions](#module_Dimensions)
    * [~width([width])](#module_Dimensions..width) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
    * [~height([height])](#module_Dimensions..height) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
    * [~innerWidth()](#module_Dimensions..innerWidth) ⇒ <code>number</code>
    * [~innerHeight()](#module_Dimensions..innerHeight) ⇒ <code>number</code>
    * [~outerWidth([includeMargins])](#module_Dimensions..outerWidth) ⇒ <code>number</code>
    * [~outerHeight([includeMargins])](#module_Dimensions..outerHeight) ⇒ <code>number</code>
    * [~scrollWidth()](#module_Dimensions..scrollWidth) ⇒ <code>number</code>
    * [~scrollHeight()](#module_Dimensions..scrollHeight) ⇒ <code>number</code>
    * [~scrollTop([value])](#module_Dimensions..scrollTop) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
    * [~scrollLeft([value])](#module_Dimensions..scrollLeft) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
    * [~offset([value], [relativeToViewport])](#module_Dimensions..offset) ⇒ [<code>jLight</code>](#jLight) \| <code>Object</code>

<a name="module_Dimensions..width"></a>

### Dimensions~width([width]) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
Gets or sets the width of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>number</code> - jLight collection or the width  

| Param | Type | Description |
| --- | --- | --- |
| [width] | <code>number</code> | The width to supply to the function |

<a name="module_Dimensions..height"></a>

### Dimensions~height([height]) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
Gets or sets the height of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>number</code> - jLight collection or the height  

| Param | Type | Description |
| --- | --- | --- |
| [height] | <code>number</code> | The height to supply to the function |

<a name="module_Dimensions..innerWidth"></a>

### Dimensions~innerWidth() ⇒ <code>number</code>
Gets the inner width of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  
<a name="module_Dimensions..innerHeight"></a>

### Dimensions~innerHeight() ⇒ <code>number</code>
Gets the inner height of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  
<a name="module_Dimensions..outerWidth"></a>

### Dimensions~outerWidth([includeMargins]) ⇒ <code>number</code>
Gets the outer width of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  

| Param | Type | Description |
| --- | --- | --- |
| [includeMargins] | <code>boolean</code> | Whether to include the elements margins (default: false) |

<a name="module_Dimensions..outerHeight"></a>

### Dimensions~outerHeight([includeMargins]) ⇒ <code>number</code>
Gets the outer height of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  

| Param | Type | Description |
| --- | --- | --- |
| [includeMargins] | <code>boolean</code> | Whether to include the elements margins (default: false) |

<a name="module_Dimensions..scrollWidth"></a>

### Dimensions~scrollWidth() ⇒ <code>number</code>
Gets the scroll width of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  
<a name="module_Dimensions..scrollHeight"></a>

### Dimensions~scrollHeight() ⇒ <code>number</code>
Gets the scroll height of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: <code>number</code> - The dimension value  
<a name="module_Dimensions..scrollTop"></a>

### Dimensions~scrollTop([value]) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
Gets or sets the scrollTop of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>number</code> - jLight collection or the value  

| Param | Type | Description |
| --- | --- | --- |
| [value] | <code>number</code> | The value to supply to the function |

<a name="module_Dimensions..scrollLeft"></a>

### Dimensions~scrollLeft([value]) ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
Gets or sets the scrollLeft of the collections elements.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>number</code> - jLight collection or the value  

| Param | Type | Description |
| --- | --- | --- |
| [value] | <code>number</code> | The value to supply to the function |

<a name="module_Dimensions..offset"></a>

### Dimensions~offset([value], [relativeToViewport]) ⇒ [<code>jLight</code>](#jLight) \| <code>Object</code>
Gets or sets the collections elements offset.

**Kind**: inner method of [<code>Dimensions</code>](#module_Dimensions)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>Object</code> - jLight collection or elements offset  

| Param | Type | Description |
| --- | --- | --- |
| [value] | <code>boolean</code> \| <code>Object</code> | The value to set the elements offset to or if the returned offset should be relative to the viewport |
| [relativeToViewport] | <code>boolean</code> | Whether the offset should be set relative to the viewport (default: false) |

<a name="module_Animation"></a>

## Animation

* [Animation](#module_Animation)
    * [~animate([properties], [duration], [callback], [easing])](#module_Animation..animate) ⇒ [<code>jLight</code>](#jLight)
    * [~scrollTo($elements, [duration], [offset], [callback])](#module_Animation..scrollTo) ⇒ [<code>jLight</code>](#jLight)
    * [~stop()](#module_Animation..stop) ⇒ [<code>jLight</code>](#jLight)
    * [~fadeIn([duration], [callback], [type], [easing])](#module_Animation..fadeIn) ⇒ [<code>jLight</code>](#jLight)
    * [~fadeOut([duration], [callback], [easing])](#module_Animation..fadeOut) ⇒ [<code>jLight</code>](#jLight)
    * [~fadeToggle([duration], [callback], [type], [easing])](#module_Animation..fadeToggle) ⇒ [<code>jLight</code>](#jLight)
    * [~slideDown([duration], [callback], [height], [type], [easing])](#module_Animation..slideDown) ⇒ [<code>jLight</code>](#jLight)
    * [~slideUp([duration], [callback], [easing])](#module_Animation..slideUp) ⇒ [<code>jLight</code>](#jLight)
    * [~slideToggle([duration], [callback], [height], [type], [easing], [force])](#module_Animation..slideToggle) ⇒ [<code>jLight</code>](#jLight)

<a name="module_Animation..animate"></a>

### Animation~animate([properties], [duration], [callback], [easing]) ⇒ [<code>jLight</code>](#jLight)
Animates the given properties to the given values on the collections elements.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [properties] | <code>Object.&lt;string, string&gt;</code> | The css properties and values to animate |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..scrollTo"></a>

### Animation~scrollTo($elements, [duration], [offset], [callback]) ⇒ [<code>jLight</code>](#jLight)
Scrolls the collections elements to elements.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to scroll the collections elements to |
| [duration] | <code>number</code> | The duration of the scroll animation in ms (default: 300) |
| [offset] | <code>Object</code> \| <code>Object</code> | The offset for the target position |
| [callback] | <code>function</code> | The function to run after the scrolling is complete |

<a name="module_Animation..stop"></a>

### Animation~stop() ⇒ [<code>jLight</code>](#jLight)
Stops all running animations on the collections elements.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="module_Animation..fadeIn"></a>

### Animation~fadeIn([duration], [callback], [type], [easing]) ⇒ [<code>jLight</code>](#jLight)
Fades the collections elements in.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..fadeOut"></a>

### Animation~fadeOut([duration], [callback], [easing]) ⇒ [<code>jLight</code>](#jLight)
Fades the collections elements out.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..fadeToggle"></a>

### Animation~fadeToggle([duration], [callback], [type], [easing]) ⇒ [<code>jLight</code>](#jLight)
Toggles the display state of the collections elements by fading.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..slideDown"></a>

### Animation~slideDown([duration], [callback], [height], [type], [easing]) ⇒ [<code>jLight</code>](#jLight)
Slides the collections elements down.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [height] | <code>string</code> | The css height value to end the sliding animation (default: 'auto') |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..slideUp"></a>

### Animation~slideUp([duration], [callback], [easing]) ⇒ [<code>jLight</code>](#jLight)
Slides the collections elements up.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="module_Animation..slideToggle"></a>

### Animation~slideToggle([duration], [callback], [height], [type], [easing], [force]) ⇒ [<code>jLight</code>](#jLight)
Toggles the display state of the collections elements by sliding.

**Kind**: inner method of [<code>Animation</code>](#module_Animation)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [height] | <code>string</code> | The css height value to end the sliding animation (default: 'auto') |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |
| [force] | <code>boolean</code> | Force whether to slide down or up |

<a name="module_Utility"></a>

## Utility

* [Utility](#module_Utility)
    * _static_
        * [.noop()](#module_Utility.noop) ⇒ <code>void</code>
        * [.uniqid()](#module_Utility.uniqid) ⇒ <code>string</code>
        * [.generateHash(string)](#module_Utility.generateHash) ⇒ <code>number</code>
        * [.isEmptyObject(object)](#module_Utility.isEmptyObject) ⇒ <code>boolean</code>
        * [.isSameObject(object1, object2)](#module_Utility.isSameObject) ⇒ <code>boolean</code>
        * [.preventEvent(event)](#module_Utility.preventEvent) ⇒ <code>void</code>
        * [.doEasing(duration, onStep, [callback])](#module_Utility.doEasing) ⇒ <code>void</code>
    * _inner_
        * [~is(propertyOrElements)](#module_Utility..is) ⇒ <code>boolean</code>
        * [~contains($elements)](#module_Utility..contains) ⇒ <code>boolean</code>
        * [~inView([offsetOrCallback], [callbackOrOptions])](#module_Utility..inView) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
        * [~delay([delay])](#module_Utility..delay) ⇒ <code>Promise</code>
        * [~when(condition, callback, [...args])](#module_Utility..when) ⇒ [<code>jLight</code>](#jLight)
        * [~serialize()](#module_Utility..serialize) ⇒ <code>string</code>
        * [~serializeJson()](#module_Utility..serializeJson) ⇒ <code>Object.&lt;string, string&gt;</code>

<a name="module_Utility.noop"></a>

### Utility.noop() ⇒ <code>void</code>
Provides an empty function.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  
<a name="module_Utility.uniqid"></a>

### Utility.uniqid() ⇒ <code>string</code>
Generates a semi-random string of length 9.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>string</code> - The generated string  
<a name="module_Utility.generateHash"></a>

### Utility.generateHash(string) ⇒ <code>number</code>
Generates a unique number hash from a string.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>number</code> - The converted string  

| Param | Type | Description |
| --- | --- | --- |
| string | <code>string</code> | The string to hash |

<a name="module_Utility.isEmptyObject"></a>

### Utility.isEmptyObject(object) ⇒ <code>boolean</code>
Checks if an object is empty.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the object is empty  

| Param | Type | Description |
| --- | --- | --- |
| object | <code>object</code> | The object to check |

<a name="module_Utility.isSameObject"></a>

### Utility.isSameObject(object1, object2) ⇒ <code>boolean</code>
Checks if two objects are the same.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the objects are the same  

| Param | Type | Description |
| --- | --- | --- |
| object1 | <code>object</code> | The object to compare |
| object2 | <code>object</code> | The object to compare to |

<a name="module_Utility.preventEvent"></a>

### Utility.preventEvent(event) ⇒ <code>void</code>
Prevents the events default beheavior, propagation and immediate propagation

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| event | <code>Event</code> | The event to prevent |

<a name="module_Utility.doEasing"></a>

### Utility.doEasing(duration, onStep, [callback]) ⇒ <code>void</code>
Provides easing functionality using easeInOutCubic.

**Kind**: static method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| duration | <code>number</code> | The duration over which to apply the easing |
| onStep | [<code>onStepCallback</code>](#onStepCallback) | The function to run at each easing step |
| [callback] | <code>function</code> | The function to run after the easing is complete |

<a name="module_Utility..is"></a>

### Utility~is(propertyOrElements) ⇒ <code>boolean</code>
Whether a property of an element of the collection is true
or if an element of the collection is part of another set.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the property is set on one of the collections elements or
at least on of the elements is contained in the supplied elements  

| Param | Type | Description |
| --- | --- | --- |
| propertyOrElements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The property or set to compare the collections elements to |

<a name="module_Utility..contains"></a>

### Utility~contains($elements) ⇒ <code>boolean</code>
Whether the collections elements contain at least one of elements.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| $elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="module_Utility..inView"></a>

### Utility~inView([offsetOrCallback], [callbackOrOptions]) ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
Checks if the collections first element is in view or runs a function if that is the case.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> - jLight collection or whether the collections first element is in view  

| Param | Type | Description |
| --- | --- | --- |
| [offsetOrCallback] | <code>function</code> \| <code>Object</code> | The offset used for determining if the element is in view or the function to run each time that is the case |
| [callbackOrOptions] | <code>function</code> \| <code>Object</code> | The function to run each time the element is in view or a custom options object to define the functions behavior (defaults: { scrollTimer: 100, isInView: noop, onEnter: noop, onExit: noop }) |

<a name="module_Utility..delay"></a>

### Utility~delay([delay]) ⇒ <code>Promise</code>
Delays code execution.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>Promise</code> - The corresponding promise  

| Param | Type | Description |
| --- | --- | --- |
| [delay] | <code>number</code> | The duration to delay the code execution for |

<a name="module_Utility..when"></a>

### Utility~when(condition, callback, [...args]) ⇒ [<code>jLight</code>](#jLight)
Calls the supplied function with the supplied arguments if the given condition is met.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| condition | <code>boolean</code> \| <code>function</code> | The condition to check for. If a function is supplied its return value will be used for checking |
| callback | <code>string</code> \| <code>function</code> | The function to run when the condition is met. If a string is provided it should be a valid jLight function name |
| [...args] | <code>\*</code> | The arguments to supply to the given jLight function |

<a name="module_Utility..serialize"></a>

### Utility~serialize() ⇒ <code>string</code>
Serializes the collections elements values to a URL encoded string.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>string</code> - The resulting string  
<a name="module_Utility..serializeJson"></a>

### Utility~serializeJson() ⇒ <code>Object.&lt;string, string&gt;</code>
Serializes the collections elements values to a JSON object.

**Kind**: inner method of [<code>Utility</code>](#module_Utility)  
**Returns**: <code>Object.&lt;string, string&gt;</code> - The resulting JSON object  
<a name="$"></a>

## $(argument) ⇒ [<code>jLight</code>](#jLight)
jLights default export

**Kind**: global function  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| argument | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>function</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> \| <code>document</code> \| <code>window</code> | The argument to initialize jLight on |

<a name="jLight"></a>

## jLight : <code>Object</code>
**Kind**: global typedef  
**Properties**

| Name | Type | Description |
| --- | --- | --- |
| elements | <code>Array.&lt;HTMLElement&gt;</code> | The collections elements. |
| length | <code>number</code> | The collections element count. |
| tagName | <code>string</code> | The collections first elements tag name. |
| addClass | [<code>cssClassCallback</code>](#cssClassCallback) | Adds css classes to the collections elements. |
| removeClass | [<code>cssClassCallback</code>](#cssClassCallback) | Removes css classes to the collections elements. |
| toggleClass | [<code>toggleCssClassCallback</code>](#toggleCssClassCallback) | Toggles css classes of the collections elements. |
| hasClass | [<code>hasClassCallback</code>](#hasClassCallback) | Whether at least one of the collections elements has all of the provided classes. |
| css | [<code>cssCallback</code>](#cssCallback) | Applies style rules to the collections elements, gets the current style rules or gets the current value for a specific style property. |
| show | [<code>visibilityCallback</code>](#visibilityCallback) | Shows the collections elements. |
| hide | [<code>defaultCallback</code>](#defaultCallback) | Hides the collections elements. |
| toggle | [<code>toggleVisibilityCallback</code>](#toggleVisibilityCallback) | Toggles the collections elements visibility. |
| on | [<code>onCallback</code>](#onCallback) | Adds event handlers to elements. |
| once | [<code>onCallback</code>](#onCallback) | Adds event handlers to elements fo one time execution. |
| off | [<code>offCallback</code>](#offCallback) | Removes event handlers from elements. |
| delegate | [<code>delegateCallback</code>](#delegateCallback) | [DEPRECATED] Delegates event handlers to elements. |
| undelegate | [<code>delegateCallback</code>](#delegateCallback) | [DEPRECATED] Undelegates event handlers from elements. |
| trigger | [<code>triggerCallback</code>](#triggerCallback) | Triggers events on the collections elements. |
| prop | [<code>propCallback</code>](#propCallback) | Sets a property of the collections elements or gets its value. |
| attr | [<code>attrCallback</code>](#attrCallback) | Sets an attribute or attributes to the collections elements or gets its value or values. |
| removeAttr | [<code>removeAttrCallback</code>](#removeAttrCallback) | Removes the supplied attributes from the collections elements. |
| text | [<code>contentCallback</code>](#contentCallback) | Gets or sets the text content of the collections elements. |
| html | [<code>contentCallback</code>](#contentCallback) | Gets or sets the HTML content of the collections elements. |
| val | [<code>valCallback</code>](#valCallback) | Gets or sets the collections elements values. |
| data | [<code>dataCallback</code>](#dataCallback) | Gets or sets the jLight data of the collections elements. |
| empty | [<code>defaultCallback</code>](#defaultCallback) | Empties the collections elements HTML content. |
| clone | [<code>cloneCallback</code>](#cloneCallback) | Clones the collection. |
| add | [<code>elementsCallback</code>](#elementsCallback) | Adds elements to the collection. |
| remove | [<code>removeCallback</code>](#removeCallback) | Removes elements from the collection. |
| prepend | [<code>elementsCallback</code>](#elementsCallback) | Prepends elements to the collections elements. |
| append | [<code>elementsCallback</code>](#elementsCallback) | Appends elements to the collections elements. |
| prependTo | [<code>elementsCallback</code>](#elementsCallback) | Prepends the collections elements to elements. |
| appendTo | [<code>elementsCallback</code>](#elementsCallback) | Appends the collections elements to elements. |
| insertBefore | [<code>elementsCallback</code>](#elementsCallback) | Inserts the collections elements before elements. |
| insertAfter | [<code>elementsCallback</code>](#elementsCallback) | Inserts the collections elements after elements. |
| before | [<code>elementsCallback</code>](#elementsCallback) | Inserts elements before the collections elements. |
| after | [<code>elementsCallback</code>](#elementsCallback) | Inserts elements after the collections elements. |
| wrap | [<code>elementsCallback</code>](#elementsCallback) | Wraps the collections elements in elements. |
| get | [<code>indexElementCallback</code>](#indexElementCallback) | Gets the element at the supplied index from the collection. |
| eq | [<code>indexjLightCallback</code>](#indexjLightCallback) | Gets the jLight element at the supplied index from the collection. |
| first | [<code>defaultCallback</code>](#defaultCallback) | Gets the first jLight element from the collection. |
| last | [<code>defaultCallback</code>](#defaultCallback) | Gets the last jLight element from the collection. |
| parent | [<code>defaultCallback</code>](#defaultCallback) | Gets a jLight collection from the collections parent elements. |
| parents | [<code>defaultCallback</code>](#defaultCallback) | Gets a jLight collection from all the collections parent elements. |
| children | [<code>defaultCallback</code>](#defaultCallback) | Gets a jLight collection from the collections children elements. |
| siblings | [<code>defaultCallback</code>](#defaultCallback) | Gets a jLight collection from the collections sibling elements. |
| prev | [<code>selectorCallback</code>](#selectorCallback) | Gets a jLight collection from the collections previous sibling elements. |
| next | [<code>selectorCallback</code>](#selectorCallback) | Gets a jLight collection from the collections next sibling elements. |
| closest | [<code>selectorCallback</code>](#selectorCallback) | Gets a jLight collection from all the collections parent elements matching the selector. |
| not | [<code>elementsCallback</code>](#elementsCallback) | Gets a jLight collection from the collections elements which are not part of elements. |
| has | [<code>elementsCallback</code>](#elementsCallback) | Gets a jLight collection from the collections elements which contain elements. |
| filter | [<code>filterCallback</code>](#filterCallback) | Gets a filtered jLight collection based on the input. |
| forEach | [<code>outerIteratorCallback</code>](#outerIteratorCallback) | Runs a function on each of the collections elements. |
| each | [<code>outerIteratorCallback</code>](#outerIteratorCallback) | [DEPRECATED] Runs a function on each of the collections elements. |
| slice | [<code>sliceCallback</code>](#sliceCallback) | Slices the collection. |
| splice | [<code>spliceCallback</code>](#spliceCallback) | Splices the collection. |
| push | [<code>arrayLengthCallback</code>](#arrayLengthCallback) | Pushes elements to the collection. |
| pop | [<code>defaultCallback</code>](#defaultCallback) | Pops the last element from the collection. |
| reverse | [<code>defaultCallback</code>](#defaultCallback) | Reverses a collection. |
| shift | [<code>defaultCallback</code>](#defaultCallback) | Shifts a collection. |
| unshift | [<code>arrayLengthCallback</code>](#arrayLengthCallback) | Unshifts a collection. |
| sort | [<code>sortCallback</code>](#sortCallback) | Sorts a collection. |
| reduce | [<code>reduceCallback</code>](#reduceCallback) | Reduces a collection. |
| map | [<code>mapCallback</code>](#mapCallback) | Maps a collection. |
| concat | [<code>multipleElementsCallback</code>](#multipleElementsCallback) | Concats a collection with other collections. |
| includes | [<code>elementsBooleanCallback</code>](#elementsBooleanCallback) | Whether the collections elements include at least one of elements. |
| some | [<code>arrayBooleanCallback</code>](#arrayBooleanCallback) | Whether at least one of the collections elements meets the conditon. |
| every | [<code>arrayBooleanCallback</code>](#arrayBooleanCallback) | Whether every one of the collections elements meets the conditon. |
| indexOf | [<code>elementsNumberCallback</code>](#elementsNumberCallback) | Gets the given elements index inside the collection. |
| lastIndexOf | [<code>elementsNumberCallback</code>](#elementsNumberCallback) | Gets the given elements last index inside the collection. |
| find | [<code>selectorCallback</code>](#selectorCallback) | Gets a jLight collection from the collections children elements matching the selector. |
| width | [<code>getOrSetValueCallback</code>](#getOrSetValueCallback) | Gets or sets the width of the collections elements. |
| height | [<code>getOrSetValueCallback</code>](#getOrSetValueCallback) | Gets or sets the height of the collections elements. |
| innerWidth | [<code>dimensionCallback</code>](#dimensionCallback) | Gets the inner width of the collections elements. |
| innerHeight | [<code>dimensionCallback</code>](#dimensionCallback) | Gets the inner height of the collections elements. |
| outerWidth | [<code>outerDimensionCallback</code>](#outerDimensionCallback) | Gets the outer width of the collections elements. |
| outerHeight | [<code>outerDimensionCallback</code>](#outerDimensionCallback) | Gets the outer height of the collections elements. |
| scrollWidth | [<code>dimensionCallback</code>](#dimensionCallback) | Gets the scroll width of the collections elements. |
| scrollHeight | [<code>dimensionCallback</code>](#dimensionCallback) | Gets the scroll height of the collections elements. |
| scrollTop | [<code>getOrSetValueCallback</code>](#getOrSetValueCallback) | Gets or sets the scrollTop of the collections elements. |
| scrollLeft | [<code>getOrSetValueCallback</code>](#getOrSetValueCallback) | Gets or sets the scrollLeft of the collections elements. |
| offset | [<code>offsetCallback</code>](#offsetCallback) | Gets or sets the collections elements offset. |
| animate | [<code>animateCallback</code>](#animateCallback) | Animates the given properties to the given values on the collections elements. |
| scrollTo | [<code>scrollToCallback</code>](#scrollToCallback) | Scrolls the collections elements to elements. |
| stop | [<code>defaultCallback</code>](#defaultCallback) | Stops all running animations on the collections elements. |
| fadeIn | [<code>fadeCallback</code>](#fadeCallback) | Fades the collections elements in. |
| fadeOut | [<code>animateOutCallback</code>](#animateOutCallback) | Fades the collections elements out. |
| fadeToggle | [<code>fadeCallback</code>](#fadeCallback) | Toggles the display state of the collections elements by fading. |
| slideDown | [<code>slideCallback</code>](#slideCallback) | Slides the collections elements down. |
| slideUp | [<code>animateOutCallback</code>](#animateOutCallback) | Slides the collections elements up. |
| slideToggle | [<code>slideToggleCallback</code>](#slideToggleCallback) | Toggles the display state of the collections elements by sliding. |
| is | [<code>isCallback</code>](#isCallback) | Whether a property of an element of the collection is true or if an element of the collection is part of another set. |
| contains | [<code>elementsBooleanCallback</code>](#elementsBooleanCallback) | Whether the collections elements contain at least one of elements. |
| inView | [<code>inViewCallback</code>](#inViewCallback) | Checks if the collections first element is in view or runs a function if that is the case. |
| delay | [<code>delayCallback</code>](#delayCallback) | Delays code execution. |
| when | [<code>whenCallback</code>](#whenCallback) | Calls the supplied function with the supplied arguments if the given condition is met. |
| serialize | [<code>stringCallback</code>](#stringCallback) | Serializes the collections elements values to a URL encoded string. |
| serializeJson | [<code>stringObjectCallback</code>](#stringObjectCallback) | Serializes the collections elements values to a JSON object. |

<a name="defaultCallback"></a>

## defaultCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  
<a name="ajaxCompleteCallback"></a>

## ajaxCompleteCallback ⇒ <code>void</code>
**Kind**: global typedef  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| [response] | <code>\*</code> | The requests response |
| [status] | <code>number</code> | The requests HTTP status code |
| [request] | <code>XMLHttpRequest</code> | The orginal XMLHttpRequest object |

<a name="xhrCallback"></a>

## xhrCallback ⇒ <code>XMLHttpRequest</code>
**Kind**: global typedef  
**Returns**: <code>XMLHttpRequest</code> - XMLHttpRequest  

| Param | Type | Description |
| --- | --- | --- |
| [request] | <code>XMLHttpRequest</code> | The orginal XMLHttpRequest object |

<a name="onStepCallback"></a>

## onStepCallback ⇒ <code>void</code>
**Kind**: global typedef  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| percent | <code>number</code> | The eased percentage of the current time over the duration |

<a name="cssClassCallback"></a>

## cssClassCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to supply to the function |

<a name="toggleCssClassCallback"></a>

## toggleCssClassCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to supply to the function |
| [force] | <code>boolean</code> | Force whether to add or remove classes |

<a name="hasClassCallback"></a>

## hasClassCallback ⇒ <code>boolean</code>
**Kind**: global typedef  
**Returns**: <code>boolean</code> - Whether at least one of the collections elements has all of the provided classes  

| Param | Type | Description |
| --- | --- | --- |
| cssClasses | <code>string</code> | Space sepearated classes to supply to the function |

<a name="cssCallback"></a>

## cssCallback ⇒ [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>CSSStyleDeclaration</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>CSSStyleDeclaration</code> - jLight collection, property value or elements CSSStyleDeclaration  

| Param | Type | Description |
| --- | --- | --- |
| property | <code>string</code> \| <code>Object.&lt;string, string&gt;</code> | The property name or the properties to set |
| [value] | <code>string</code> | The value to set the supplied property to |

<a name="visibilityCallback"></a>

## visibilityCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [type] | <code>string</code> | The css display type to apply to the function (default: 'block') |

<a name="toggleVisibilityCallback"></a>

## toggleVisibilityCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [type] | <code>string</code> | The css display type to apply to the function (default: 'block') |
| [force] | <code>boolean</code> | Force whether to show or hide elements |

<a name="eventCallback"></a>

## eventCallback : <code>function</code>
**Kind**: global typedef  

| Param | Type | Description |
| --- | --- | --- |
| [event] | <code>Event</code> | The dispatched event with jLight elements for the events currentTarget and target attached (event.$currentTarget and event.$target) |

<a name="onCallback"></a>

## onCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callbackOrSelector | [<code>eventCallback</code>](#eventCallback) | The function to execute when the event occurs or a selector to delegate events to children of the current collections elements |
| [delegatedCallbackOrOptions] | [<code>eventCallback</code>](#eventCallback) \| <code>Object</code> | The callback to run when the event is delegated or the options to apply to the listener |
| [options] | <code>Object</code> | The options to apply to the listener |

<a name="offCallback"></a>

## offCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| [callback] | <code>function</code> | The function to remove from being executed when the event occurs |

<a name="delegateCallback"></a>

## delegateCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| callback | <code>function</code> | The function to apply |

<a name="triggerCallback"></a>

## triggerCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| eventNames | <code>string</code> | Space separated list of event names |
| [jLightEventData] | <code>\*</code> | Custom data passed to the event |

<a name="propCallback"></a>

## propCallback ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> - jLight collection or if the property is set on at least one of the collections elements  

| Param | Type | Description |
| --- | --- | --- |
| property | <code>string</code> | The property to set or get |
| [state] | <code>boolean</code> | The state to set the property to |

<a name="attrCallback"></a>

## attrCallback ⇒ [<code>jLight</code>](#jLight) \| <code>Object.&lt;string, string&gt;</code> \| <code>boolean</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>Object.&lt;string, string&gt;</code> \| <code>boolean</code> - jLight collection, the attributes value, an object of each attribute on the
collections elements or if the attribute whether present on at least one of
the collections elements  

| Param | Type | Description |
| --- | --- | --- |
| [attribute] | <code>string</code> \| <code>Object.&lt;string, \*&gt;</code> | The attribute or attributes to set or get |
| [value] | <code>\*</code> | The value to set the attribute to |

<a name="removeAttrCallback"></a>

## removeAttrCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| attribute | <code>string</code> \| <code>Array.&lt;string&gt;</code> | The attribute or attributes to remove |

<a name="iteratorCallback"></a>

## iteratorCallback ⇒ <code>void</code>
**Kind**: global typedef  
**Returns**: <code>void</code> - void  

| Param | Type | Description |
| --- | --- | --- |
| [$element] | [<code>jLight</code>](#jLight) | The current jLight element |
| [index] | <code>number</code> | The current index |

<a name="valCallback"></a>

## valCallback ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code> \| <code>string</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> \| <code>string</code> - jLight collection or the value  

| Param | Type | Description |
| --- | --- | --- |
| [valueOrFunction] | <code>boolean</code> \| <code>null</code> \| <code>string</code> \| <code>Array.&lt;boolean&gt;</code> \| <code>function</code> \| [<code>iteratorCallback</code>](#iteratorCallback) | The value to set the collections elements value to. If a function is supplied its return value will be set as the value. If the jLight element is an HTMLSelectElement with the multiple attribute each option will be passed separately to the function. In that case an array of booleans can be used to set the selected options. |

<a name="dataCallback"></a>

## dataCallback ⇒ [<code>jLight</code>](#jLight) \| <code>\*</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>\*</code> - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [keyOrData] | <code>string</code> \| <code>Object.&lt;string, \*&gt;</code> | The key of the data value to get or set or an object of data values to set. |
| [value] | <code>string</code> \| <code>Array.&lt;string&gt;</code> | The value to set the data at the supplied key to. |

<a name="cloneCallback"></a>

## cloneCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [deep] | <code>boolean</code> | Whether to apply deep cloning of the affected nodes (default: true) |

<a name="elementsCallback"></a>

## elementsCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply the function to |

<a name="removeCallback"></a>

## removeCallback ⇒ [<code>jLight</code>](#jLight) \| <code>null</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>null</code> - jLight collection or null  

| Param | Type | Description |
| --- | --- | --- |
| [elements] | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to remove |
| [removeFromDom] | <code>boolean</code> | Whether the elements should also be removed from the DOM (default: true) |

<a name="contentCallback"></a>

## contentCallback ⇒ [<code>jLight</code>](#jLight) \| <code>string</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> - jLight collection or the text content  

| Param | Type | Description |
| --- | --- | --- |
| [content] | <code>string</code> | The content to supply to the function |

<a name="indexElementCallback"></a>

## indexElementCallback ⇒ <code>HTMLElement</code> \| <code>undefined</code>
**Kind**: global typedef  
**Returns**: <code>HTMLElement</code> \| <code>undefined</code> - The element or null  

| Param | Type | Description |
| --- | --- | --- |
| index | <code>number</code> | The index to supply to the function |

<a name="indexjLightCallback"></a>

## indexjLightCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| index | <code>number</code> | The index to supply to the function |

<a name="selectorCallback"></a>

## selectorCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [selector] | <code>string</code> | The selector to use for matching elements |

<a name="elementsBooleanCallback"></a>

## elementsBooleanCallback ⇒ <code>boolean</code>
**Kind**: global typedef  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="filterCallback"></a>

## filterCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callbackOrSelector | <code>string</code> \| [<code>iteratorCallback</code>](#iteratorCallback) | The selector to filter the collection by or a custom function to decide which elements to filter out |

<a name="outerIteratorCallback"></a>

## outerIteratorCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorCallback</code>](#iteratorCallback) | The function to apply to each element |

<a name="sliceCallback"></a>

## sliceCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [start] | <code>number</code> | The index to start the slicing |
| [end] | <code>number</code> | The index to end the slicing |

<a name="spliceCallback"></a>

## spliceCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| start | <code>number</code> | The index to start the splicing |
| [deleteCount] | <code>number</code> | The count of elements to delete |

<a name="arrayLengthCallback"></a>

## arrayLengthCallback ⇒ <code>number</code>
**Kind**: global typedef  
**Returns**: <code>number</code> - The collections new length  

| Param | Type | Description |
| --- | --- | --- |
| ...elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to apply to the function. |

<a name="compareCallback"></a>

## compareCallback ⇒ <code>number</code>
**Kind**: global typedef  
**Returns**: <code>number</code> - The value to determine which place the element to compare will take  

| Param | Type | Description |
| --- | --- | --- |
| $element1 | [<code>jLight</code>](#jLight) | The element to compare |
| $element2 | [<code>jLight</code>](#jLight) | The element to compare to |

<a name="sortCallback"></a>

## sortCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| compareFunction | [<code>compareCallback</code>](#compareCallback) | The function used for sorting |

<a name="reduceInnerCallback"></a>

## reduceInnerCallback ⇒ <code>\*</code>
**Kind**: global typedef  
**Returns**: <code>\*</code> - The current reduction result  

| Param | Type | Description |
| --- | --- | --- |
| accumulator | <code>\*</code> | The accumulated value |
| $element | [<code>jLight</code>](#jLight) | The current element |
| [index] | <code>number</code> | The current elements index |

<a name="reduceCallback"></a>

## reduceCallback ⇒ <code>\*</code>
**Kind**: global typedef  
**Returns**: <code>\*</code> - The reduction result  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>reduceInnerCallback</code>](#reduceInnerCallback) | The function used for reduction |
| [initialValue] | <code>\*</code> | The initial value used for reduction |

<a name="mapInnerCallback"></a>

## mapInnerCallback ⇒ [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> - The elements to map  

| Param | Type | Description |
| --- | --- | --- |
| [$element] | [<code>jLight</code>](#jLight) | The current element |
| [index] | <code>number</code> | The current elements index |

<a name="mapCallback"></a>

## mapCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>mapInnerCallback</code>](#mapInnerCallback) | The function used for mapping |

<a name="multipleElementsCallback"></a>

## multipleElementsCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| ...elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> \| <code>Array.&lt;(jLight\|string\|HTMLElement\|HTMLCollection\|NodeList)&gt;</code> | The elements to apply to the function. |

<a name="iteratorBooleanCallback"></a>

## iteratorBooleanCallback ⇒ <code>boolean</code>
**Kind**: global typedef  
**Returns**: <code>boolean</code> - Whether the condition is met  

| Param | Type | Description |
| --- | --- | --- |
| [$element] | [<code>jLight</code>](#jLight) | The current jLight element |
| [index] | <code>number</code> | The current index |

<a name="arrayBooleanCallback"></a>

## arrayBooleanCallback ⇒ <code>boolean</code>
**Kind**: global typedef  
**Returns**: <code>boolean</code> - If the conditon is met  

| Param | Type | Description |
| --- | --- | --- |
| callback | [<code>iteratorBooleanCallback</code>](#iteratorBooleanCallback) | The elements to supply to the function |

<a name="elementsNumberCallback"></a>

## elementsNumberCallback ⇒ <code>number</code>
**Kind**: global typedef  
**Returns**: <code>number</code> - The resulting number  

| Param | Type | Description |
| --- | --- | --- |
| elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to supply to the function |

<a name="getOrSetValueCallback"></a>

## getOrSetValueCallback ⇒ [<code>jLight</code>](#jLight) \| <code>number</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>number</code> - jLight collection or the value  

| Param | Type | Description |
| --- | --- | --- |
| [value] | <code>number</code> | The value to supply to the function |

<a name="dimensionCallback"></a>

## dimensionCallback ⇒ <code>number</code>
**Kind**: global typedef  
**Returns**: <code>number</code> - The dimension value  
<a name="outerDimensionCallback"></a>

## outerDimensionCallback ⇒ <code>number</code>
**Kind**: global typedef  
**Returns**: <code>number</code> - The dimension value  

| Param | Type | Description |
| --- | --- | --- |
| [includeMargins] | <code>boolean</code> | Whether to include the elements margins (default: false) |

<a name="offsetCallback"></a>

## offsetCallback ⇒ [<code>jLight</code>](#jLight) \| <code>Object</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>Object</code> - jLight collection or elements offset  

| Param | Type | Description |
| --- | --- | --- |
| [value] | <code>boolean</code> \| <code>Object</code> | The value to set the elements offset to or if the returned offset should be relative to the viewport |
| [relativeToViewport] | <code>boolean</code> | Whether the offset should be set relative to the viewport (default: false) |

<a name="animateCallback"></a>

## animateCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [properties] | <code>Object.&lt;string, string&gt;</code> | The css properties and values to animate |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="scrollToCallback"></a>

## scrollToCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| elements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The elements to scroll the collections elements to |
| [duration] | <code>number</code> | The duration of the scroll animation in ms (default: 300) |
| [offset] | <code>Object</code> \| <code>Object</code> | The offset for the target position |
| [callback] | <code>function</code> | The function to run after the scrolling is complete |

<a name="animateOutCallback"></a>

## animateOutCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="fadeCallback"></a>

## fadeCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="slideCallback"></a>

## slideCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [height] | <code>string</code> | The css height value to end the sliding animation (default: 'auto') |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |

<a name="slideToggleCallback"></a>

## slideToggleCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| [duration] | <code>number</code> | The duration for the animation in ms (default: 300) |
| [callback] | <code>function</code> | The function to run after the animation is complete (default: noop) |
| [height] | <code>string</code> | The css height value to end the sliding animation (default: 'auto') |
| [type] | <code>string</code> | The css display type to apply to the collections elements (default: 'block') |
| [easing] | <code>string</code> | Which type of css easing to use for the animation (default: 'ease') |
| [force] | <code>boolean</code> | Force whether to slide down or up |

<a name="isCallback"></a>

## isCallback ⇒ <code>boolean</code>
**Kind**: global typedef  
**Returns**: <code>boolean</code> - If the property is set on one of the collections elements or
at least on of the elements is contained in the supplied elements  

| Param | Type | Description |
| --- | --- | --- |
| propertyOrElements | [<code>jLight</code>](#jLight) \| <code>string</code> \| <code>HTMLElement</code> \| <code>HTMLCollection</code> \| <code>NodeList</code> | The property or set to compare the collections elements to |

<a name="inViewCallback"></a>

## inViewCallback ⇒ [<code>jLight</code>](#jLight) \| <code>boolean</code>
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) \| <code>boolean</code> - jLight collection or whether the collections first element is in view  

| Param | Type | Description |
| --- | --- | --- |
| [offsetOrCallback] | <code>function</code> \| <code>Object</code> | The offset used for determining if the element is in view or the function to run each time that is the case |
| [callbackOrOptions] | <code>function</code> \| <code>Object</code> | The function to run each time the element is in view or a custom options object to define the functions behavior (defaults: { scrollTimer: 100, isInView: noop, onEnter: noop, onExit: noop }) |

<a name="delayCallback"></a>

## delayCallback ⇒ <code>Promise</code>
**Kind**: global typedef  
**Returns**: <code>Promise</code> - The corresponding promise  

| Param | Type | Description |
| --- | --- | --- |
| [delay] | <code>number</code> | The duration to delay the code execution for |

<a name="whenCallback"></a>

## whenCallback ⇒ [<code>jLight</code>](#jLight)
**Kind**: global typedef  
**Returns**: [<code>jLight</code>](#jLight) - jLight collection  

| Param | Type | Description |
| --- | --- | --- |
| condition | <code>boolean</code> \| <code>function</code> | The condition to check for. If a function is supplied its return value will be used for checking |
| callback | <code>string</code> \| <code>function</code> | The function to run when the condition is met. If a string is provided it should be a valid jLight function name |
| [...args] | <code>\*</code> | The arguments to supply to the given jLight function |

<a name="stringCallback"></a>

## stringCallback ⇒ <code>string</code>
**Kind**: global typedef  
**Returns**: <code>string</code> - The resulting string  
<a name="stringObjectCallback"></a>

## stringObjectCallback ⇒ <code>Object.&lt;string, string&gt;</code>
**Kind**: global typedef  
**Returns**: <code>Object.&lt;string, string&gt;</code> - The resulting JSON object  
