diff --git a/doc/Readme_CH.md b/doc/Readme_CH.md
deleted file mode 100644
index d4d895c..0000000
--- a/doc/Readme_CH.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# Eruda
-
-[](https://badge.fury.io/js/eruda)
-
-Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、显示性能指标、捕获XHR请求、显示本地存储和 Cookie 信息、浏览器特性检测等等。
-
-## 功能清单
-
-
-
-1. 按钮拖拽,面板透明度大小设置。
-
-2. Console面板:捕获Console日志,支持log、error、info、warn、dir、time/timeEnd、clear、count、assert、table;支持占位符,包括%c自定义样式输出;支持按日志类型及正则表达式过滤;支持快捷命令加载underscore、jQuery库;支持JavaScript脚本执行。
-
-3. Elements面板:查看标签内容及属性;查看应用在Dom上的样式;支持页面元素高亮;支持屏幕直接点击选取;查看Dom上绑定的各类事件。
-
-4. Network面板:图表显示页面加载速度;查看页面各资源请求时间(Android);捕获XHR请求,查看发送数据、返回头、返回内容等信息。
-
-5. Resources面板:查看并清除localStorage、sessionStorage及cookie;查看页面加载脚本及样式文件;查看页面加载图片。
-
-6. Sources面板:查看页面源码;格式化html,css,js代码及json数据。
-
-7. Info面板:输出URL及User Agent;支持自定义输出内容。
-
-8. Snippets面板:页面元素添加边框;加时间戳刷新页面;支持自定义代码片段。
-
-9. Features面板:浏览器常用特性检测;提供Can I use,Html5Test快捷访问。
-
-## 快速上手
-
-通过npm安装:
-
-```bash
-npm install eruda --save
-```
-
-在页面中加载脚本:
-
-```html
-
-
-```
-
-Js文件对于移动端来说略重(gzip后大概80kb)。建议通过url参数来控制是否加载调试器,比如:
-
-```javascript
-;(function () {
- var src = 'node_modules/eruda/eruda.min.js';
- if (!/eruda=true/.test(window.location) && localStorage.getItem('active-eruda') != 'true') return;
- document.write('');
- document.write('eruda.init();');
-})();
-```
-
-初始化时可以传入配置:
-* container: 用于插件初始化的Dom元素,如果不设置,默认创建div作为容器直接置于html根结点下面。
-* tool:指定要初始化哪些面板,默认加载所有。
-
-```javascript
-var el = document.createElement('div');
-document.body.appendChild(el);
-
-eruda.init({
- container: el,
- tool: ['console', 'elements']
-});
-```
-
-> 该工具支持自行编写插件,可参考[eruda-fps](https://github.com/liriliri/eruda-fps)。
-
-## Demo
-
-
-
-请扫描二维码或在手机上直接访问:[http://liriliri.github.io/eruda/](http://liriliri.github.io/eruda/)
-
-如果想在其它页面尝试,请在浏览器地址栏上输入以下代码。
-
-```javascript
-javascript:(function () { var script = document.createElement('script'); script.src="//liriliri.github.io/eruda/eruda.min.js"; document.body.appendChild(script); script.onload = function () { eruda.init() } })();
-```
diff --git a/doc/TOOL_API.md b/doc/TOOL_API.md
deleted file mode 100644
index 0de19bf..0000000
--- a/doc/TOOL_API.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# Tool Api
-
-Each default tool provided by eruda can be accessed by `eruda.get('Tool Name')`.
-
-## Console
-
-Display console logs. Implementation detail follows the [console api spec](https://github.com/DeveloperToolsWG/console-object/blob/master/api.md).
-
-### Config
-
-|Name |Type |Desc |
-|-------------------|-------|-------------------------------|
-|catchGlobalErr |boolean|Catch global errors |
-|overrideConsole |boolean|Override console |
-|displayExtraInfo |boolean|Display extra information |
-|displayUnenumerable|boolean|Display unenumerable properties|
-|displayGetterVal |boolean|Access getter value |
-|viewLogInSources |boolean|View log in sources panel |
-|displayIfErr |boolean|Auto display if error occurs |
-|maxLogNum |string |Max log number |
-
-```javascript
-var console = eruda.get('console');
-console.config.set('catchGlobalErr', true);
-```
-
-### log, error, info, warn, dir, time/timeEnd, clear, count, assert, table
-
-All these methods can be used in the same way as window.console object.
-
-```javascript
-var console = eruda.get('console');
-console.log('eruda is a console for %s.', 'mobile browsers');
-console.table([{test: 1}, {test: 2}, {test2: 3}], 'test');
-console.error(new Error('eruda'));
-```
-
-### filter
-
-Filter logs.
-
-|Name |Type |Desc |
-|------|----------------------|-------------|
-|filter|string regexp function|Custom filter|
-
-```javascript
-console.filter('all'); // String parameter. Log, warn, debug, error is also supported.
-console.filter(/^eruda/);
-console.filter(function (log)
-{
- return log.type === 'error';
-});
-```
-
-### html
-
-Log out html content.
-
-|Name|Type |Desc |
-|----|------|-----------|
-|html|string|Html string|
-
-```javascript
-console.html('Red');
-```
-
-## Elements
-
-## Network
-
-## Resources
-
-## Sources
-
-## Info
-
-Display special information, could be used for displaying user info to track
-user logs.
-
-By default, page url and browser user agent is shown.
-
-### clear
-
-Clear infos.
-
-### add
-
-Add info.
-
-|Name |Type |Desc |
-|-------|------|------------|
-|name |string|Info name |
-|content|string|Info content|
-
-```javascript
-info.add('title', 'content');
-```
-
-### remove
-
-Remove specified info.
-
-|Name|Type |Desc |
-|----|------|---------|
-|name|string|Info name|
-
-```javascript
-info.remove('title');
-```
-
-## Snippets
-
-Allow you to register small functions that can be triggered multiple times.
-
-### clear
-
-Clear Snippets.
-
-### add
-
-Add Snippet.
-
-|Name|Type |Desc |
-|----|--------|------------------------|
-|name|string |Snippet name |
-|fn |function|Function to be triggered|
-|desc|string |Snippet description |
-
-```javascript
-snippets.add('hello', function ()
-{
- console.log('Hello World!');
-}, 'Display hello on console');
-```
-
-### remove
-
-Remove specified snippet.
-
-|Name|Type |Desc |
-|----|------|-----------------|
-|name|string|Snippet to remove|
-
-```javascript
-snippets.remove('hello');
-```
-
-## Features
-
-Browser feature detections, thanks to
-[modernizr](https://github.com/Modernizr/Modernizr) project.
-
-Red means unsupported, otherwise ok. All buttons is linked directly to
-related materials in [Can I Use](http://caniuse.com/) website.
-
-## Settings
diff --git a/doc/Util_Api.md b/doc/Util_Api.md
deleted file mode 100644
index ad13f32..0000000
--- a/doc/Util_Api.md
+++ /dev/null
@@ -1,1347 +0,0 @@
-# Eruda Util Documentation
-
-## $
-
-jQuery like style dom manipulator. TODO
-
-```javascript
-var $btn = $('#btn');
-$btn.html('eustia');
-```
-
-## $attr
-
-Element attribute manipulation.
-
-Get the value of an attribute for the first element in the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|--------------------------------|
-|element|string array element|Elements to manipulate |
-|name |string |Attribute name |
-|return |string |Attribute value of first element|
-
-Set one or more attributes for the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|name |string |Attribute name |
-|value |string |Attribute value |
-
-|Name |Type |Desc |
-|----------|--------------------|--------------------------------------|
-|element |string array element|Elements to manipulate |
-|attributes|object |Object of attribute-value pairs to set|
-
-### remove
-
-Remove an attribute from each element in the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|name |string |Attribute name |
-
-```javascript
-$attr('#test', 'attr1', 'test');
-$attr('#test', 'attr1'); // -> test
-$attr.remove('#test', 'attr1');
-$attr('#test', {
- 'attr1': 'test',
- 'attr2': 'test'
-});
-```
-
-## $class
-
-Element class manipulations.
-
-### add
-
-Add the specified class(es) to each element in the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|names |string array |Classes to add |
-
-### has
-
-Determine whether any of the matched elements are assigned the given class.
-
-|Name |Type |Desc |
-|-------|--------------------|-------------------------------------|
-|element|string array element|Elements to manipulate |
-|name |string |Class name |
-|return |boolean |True if elements has given class name|
-
-### toggle
-
-Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the state argument.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|name |string |Class name to toggle |
-
-### remove
-
-Remove a single class, multiple classes, or all classes from each element in the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|names |string |Class names to remove |
-
-```javascript
-$class.add('#test', 'class1');
-$class.add('#test', ['class1', 'class2']);
-$class.has('#test', 'class1'); // -> true
-$class.remove('#test', 'class1');
-$class.has('#test', 'class1'); // -> false
-$class.toggle('#test', 'class1');
-$class.has('#test', 'class1'); // -> true
-```
-
-## $css
-
-Element css manipulation.
-
-Get the computed style properties for the first element in the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|--------------------------|
-|element|string array element|Elements to manipulate |
-|name |string |Property name |
-|return |string |Css value of first element|
-
-Set one or more CSS properties for the set of matched elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|name |string |Property name |
-|value |string |Css value |
-
-|Name |Type |Desc |
-|----------|--------------------|--------------------------------|
-|element |string array element|Elements to manipulate |
-|properties|object |Object of css-value pairs to set|
-
-```javascript
-$css('#test', {
- 'color': '#fff',
- 'background': 'black'
-});
-$css('#test', 'display', 'block');
-$css('#test', 'color'); // -> #fff
-```
-
-## $data
-
-Wrapper of $attr, adds data- prefix to keys.
-
-```javascript
-$data('#test', 'attr1', 'eustia');
-```
-
-## $event
-
-bind events to certain dom elements. TODO
-
-```javascript
-event.on('#test', 'click', function ()
-{
- // ...
-});
-```
-
-## $insert
-
-Insert html on different position.
-
-### before
-
-Insert content before elements.
-
-### after
-
-Insert content after elements.
-
-### prepend
-
-Insert content to the beginning of elements.
-
-### append
-
-Insert content to the end of elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to manipulate|
-|content|string |Html strings |
-
-```javascript
-//
-$insert.before('#test', 'eris
');
-// -> eris
-$insert.after('#test', 'eris
');
-// -> eris
-$insert.prepend('#test', 'eris
');
-// ->
-$insert.append('#test', 'eris
');
-// ->
-```
-
-## $offset
-
-Get the position of the element in document.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------------|
-|element|string array element|Elements to get offset|
-
-```javascript
-$offset('#test'); // -> {left: 0, top: 0, width: 0, height: 0}
-```
-
-## $property
-
-Element property html, text, val getter and setter.
-
-### html
-
-Get the HTML contents of the first element in the set of matched elements or
-set the HTML contents of every matched element.
-
-### text
-
-Get the combined text contents of each element in the set of matched
-elements, including their descendants, or set the text contents of the
-matched elements.
-
-### val
-
-Get the current value of the first element in the set of matched elements or
-set the value of every matched element.
-
-```javascript
-$property.html('#test', 'eris');
-$property.html('#test'); // -> eris
-```
-
-## $remove
-
-Remove the set of matched elements from the DOM.
-
-|Name |Type |Desc |
-|-------|--------------------|------------------|
-|element|string array element|Elements to delete|
-
-```javascript
-$remove('#test');
-```
-
-## $safeEls
-
-Convert value into an array, if it's a string, do querySelector.
-
-|Name |Type |Desc |
-|------|--------------------|-----------------|
-|value |element array string|Value to convert |
-|return|array |Array of elements|
-
-```javascript
-$safeEls('.test'); // -> Array of elements with test class
-```
-
-## $show
-
-Show elements.
-
-|Name |Type |Desc |
-|-------|--------------------|----------------|
-|element|string array element|Elements to show|
-
-```javascript
-$show('#test');
-```
-
-## Class
-
-Create JavaScript class.
-
-|Name |Type |Desc |
-|---------|--------|---------------------------------|
-|methods |object |Public methods |
-|[statics]|object |Static methods |
-|return |function|Function used to create instances|
-
-```javascript
-var People = Class({
- initialize: function (name, age)
- {
- this.name = name;
- this.age = age;
- },
- introduce: function ()
- {
- return 'I am ' + this.name + ', ' + this.age + ' years old.'.
- }
-});
-
-var Student = People.extend({
- initialize: function (name, age, school)
- {
- this.callSuper('initialize', name, age);
-
- this.school = school.
- },
- introduce: function ()
- {
- return this.callSuper('introduce') + '\n I study at ' + this.school + '.'.
- }
-}, {
- is: function (obj)
- {
- return obj instanceof Student;
- }
-});
-
-var a = new Student('allen', 17, 'Hogwarts');
-a.introduce(); // -> 'I am allen, 17 years old. \n I study at Hogwarts.'
-Student.is(a); // -> true
-```
-
-## Emitter
-
-Event emitter class which provides observer pattern.
-
-### on
-
-Bind event.
-
-### off
-
-Unbind event.
-
-### once
-
-Bind event that trigger once.
-
-|Name |Type |Desc |
-|--------|--------|--------------|
-|event |string |Event name |
-|listener|function|Event listener|
-
-### emit
-
-Emit event.
-
-|Name |Type |Desc |
-|-------|------|----------------------------|
-|event |string|Event name |
-|...args|* |Arguments passed to listener|
-
-### mixin
-
-[static] Mixin object class methods.
-
-|Name|Type |Desc |
-|----|------|---------------|
-|obj |object|Object to mixin|
-
-```javascript
-var event = new Emitter();
-event.on('test', function () { console.log('test') });
-event.emit('test'); // Logs out 'test'.
-Emitter.mixin({});
-```
-
-## Select
-
-Simple wrapper of querySelectorAll to make dom selection easier.
-
-### constructor
-
-|Name |Type |Desc |
-|--------|------|-------------------|
-|selector|string|Dom selector string|
-
-### find
-
-Get desdendants of current matched elements.
-
-|Name |Type |Desc |
-|--------|------|-------------------|
-|selector|string|Dom selector string|
-
-### each
-
-Iterate over matched elements.
-
-|Name|Type |Desc |
-|----|--------|------------------------------------|
-|fn |function|Function to execute for each element|
-
-```javascript
-var $test = new Select('#test');
-$test.find('.test').each(function (idx, element)
-{
- // Manipulate dom nodes
-});
-```
-
-## allKeys
-
-Retrieve all the names of object's own and inherited properties.
-
-|Name |Type |Desc |
-|------|------|---------------------------|
-|obj |object|Object to query |
-|return|array |Array of all property names|
-
-> Members of Object's prototype won't be retrieved.
-
-```javascript
-var obj = Object.create({zero: 0});
-obj.one = 1;
-allKeys(obj) // -> ['zero', 'one']
-```
-
-## before
-
-Create a function that invokes less than n times.
-
-|Name |Type |Desc |
-|------|--------|------------------------------------------------|
-|n |number |Number of calls at which fn is no longer invoked|
-|fn |function|Function to restrict |
-|return|function|New restricted function |
-
-Subsequent calls to the created function return the result of the last fn invocation.
-
-```javascript
-$(element).on('click', before(5, function() {}));
-// -> allow function to be call 4 times at last.
-```
-
-## camelCase
-
-Convert string to "camelCase".
-
-|Name |Type |Desc |
-|------|------|------------------|
-|str |string|String to convert |
-|return|string|Camel cased string|
-
-```javascript
-camelCase('foo-bar'); // -> fooBar
-camelCase('foo bar'); // -> fooBar
-camelCase('foo_bar'); // -> fooBar
-camelCase('foo.bar'); // -> fooBar
-```
-
-## contain
-
-Check if the value is present in the list.
-
-|Name |Type |Desc |
-|------|-------|------------------------------------|
-|array |array |Target list |
-|value |* |Value to check |
-|return|boolean|True if value is present in the list|
-
-```javascript
-contain([1, 2, 3], 1); // -> true
-```
-
-## cookie
-
-Simple api for handling browser cookies.
-
-### get
-
-Get cookie value.
-
-|Name |Type |Desc |
-|------|------|--------------------------|
-|key |string|Cookie key |
-|return|string|Corresponding cookie value|
-
-### set
-
-Set cookie value.
-
-|Name |Type |Desc |
-|---------|-------|--------------|
-|key |string |Cookie key |
-|val |string |Cookie value |
-|[options]|object |Cookie options|
-|return |exports|Module cookie |
-
-### remove
-
-Remove cookie value.
-
-|Name |Type |Desc |
-|---------|-------|--------------|
-|key |string |Cookie key |
-|[options]|object |Cookie options|
-|return |exports|Module cookie |
-
-```javascript
-cookie.set('a', '1', {path: '/'});
-cookie.get('a'); // -> '1'
-cookie.remove('a');
-```
-
-## createAssigner
-
-Used to create extend, extendOwn and defaults.
-
-|Name |Type |Desc |
-|--------|--------|------------------------------|
-|keysFn |function|Function to get object keys |
-|defaults|boolean |No override when set to true |
-|return |function|Result function, extend... |
-
-## defaults
-
-Fill in undefined properties in object with the first value present in the following list of defaults objects.
-
-|Name |Type |Desc |
-|------|------|------------------|
-|obj |object|Destination object|
-|*src |object|Sources objects |
-|return|object|Destination object|
-
-```javascript
-defaults({name: 'RedHood'}, {name: 'Unknown', age: 24}); // -> {name: 'RedHood', age: 24}
-```
-
-## delegate
-
-TODO
-
-## each
-
-Iterates over elements of collection and invokes iteratee for each element.
-
-|Name |Type |Desc |
-|--------|------------|------------------------------|
-|obj |object array|Collection to iterate over |
-|iteratee|function |Function invoked per iteration|
-|[ctx] |* |Function context |
-
-```javascript
-each({'a': 1, 'b': 2}, function (val, key) {});
-```
-
-## endWith
-
-Check if string ends with the given target string.
-
-|Name |Type |Desc |
-|------|-------|-------------------------------|
-|str |string |The string to search |
-|suffix|string |String suffix |
-|return|boolean|True if string ends with target|
-
-```javascript
-endWith('ab', 'b'); // -> true
-```
-
-## escape
-
-Escapes a string for insertion into HTML, replacing &, <, >, ", `, and ' characters.
-
-|Name |Type |Desc |
-|------|------|----------------|
-|str |string|String to escape|
-|return|string|Escaped string |
-
-```javascript
-escape('You & Me'); -> // -> 'You & Me'
-```
-
-## escapeRegExp
-
-Escape special chars to be used as literals in RegExp constructors.
-
-|Name |Type |Desc |
-|------|------|----------------|
-|str |string|String to escape|
-|return|string|Escaped string |
-
-```javascript
-escapeRegExp('[eris]'); // -> '\\[eris\\]'
-```
-
-## evalCss
-
-No documentation.
-
-## extend
-
-Copy all of the properties in the source objects over to the destination object.
-
-|Name |Type |Desc |
-|------|------|------------------|
-|obj |object|Destination object|
-|*src |object|Sources objects |
-|return|object|Destination object|
-
-```javascript
-extend({name: 'RedHood'}, {age: 24}); // -> {name: 'RedHood', age: 24}
-```
-
-## extendOwn
-
-Like extend, but only copies own properties over to the destination object.
-
-|Name |Type |Desc |
-|------|------|------------------|
-|obj |object|Destination object|
-|*src |object|Sources objects |
-|return|object|Destination object|
-
-```javascript
-extendOwn({name: 'RedHood'}, {age: 24}); // -> {name: 'RedHood', age: 24}
-```
-
-## filter
-
-Iterates over elements of collection, returning an array of all the values that pass a truth test.
-
-|Name |Type |Desc |
-|---------|--------|---------------------------------------|
-|obj |array |Collection to iterate over |
-|predicate|function|Function invoked per iteration |
-|[ctx] |* |Predicate context |
-|return |array |Array of all values that pass predicate|
-
-```javascript
-filter([1, 2, 3, 4, 5], function (val)
-{
- return val % 2 === 0;
-}); // -> [2, 4]
-```
-
-## get
-
-No documentation.
-
-## getFileName
-
-No documentation.
-
-## has
-
-Checks if key is a direct property.
-
-|Name |Type |Desc |
-|------|-------|--------------------------------|
-|obj |object |Object to query |
-|key |string |Path to check |
-|return|boolean|True if key is a direct property|
-
-```javascript
-has({one: 1}, 'one'); // -> true
-```
-
-## identity
-
-Return the first argument given.
-
-|Name |Type|Desc |
-|------|----|-----------|
-|val |* |Any value |
-|return|* |Given value|
-
-```javascript
-identity('a'); // -> 'a'
-```
-
-## idxOf
-
-Get the index at which the first occurrence of value. TODO
-
-|Name |Type |Desc |
-|-----------|------|--------------------|
-|arr |array |Array to search |
-|val |* |Value to search for |
-|[fromIdx=0]|number|Index to search from|
-
-```javascript
-idxOf([1, 2, 1, 2], 2, 2); // -> 3
-```
-
-## inherits
-
-Inherit the prototype methods from one constructor into another.
-
-|Name |Type |Desc |
-|----------|--------|-----------|
-|Class |function|Child Class|
-|SuperClass|function|Super Class|
-
-```javascript
-function People(name)
-{
- this._name = name;
-}
-People.prototype = {
- getName: function ()
- {
- return this._name;
- }
-};
-function Student(name)
-{
- this._name = name;
-}
-inherits(Student, People);
-var s = new Student('RedHood');
-s.getName(); // -> 'RedHood'
-```
-
-## isArgs
-
-Check if value is classified as an arguments object.
-
-|Name |Type |Desc |
-|------|-------|------------------------------------|
-|value |* |Value to check |
-|return|boolean|True if value is an arguments object|
-
-```javascript
-(function () {
- isArgs(arguments); // -> true
-})();
-```
-
-## isArr
-
-Check if value is an `Array` object.
-
-|Name |Type |Desc |
-|------|-------|----------------------------------|
-|val |* |The value to check |
-|return|boolean|True if value is an `Array` object|
-
-```javascript
-isArr([]); // -> true
-isArr({}); // -> false
-```
-
-## isArrLike
-
-Check if value is array-like.
-
-|Name |Type |Desc |
-|------|-------|---------------------------|
-|value |* |Value to check |
-|return|boolean|True if value is array like|
-
-> Function returns false.
-
-```javascript
-isArrLike('test'); // -> true
-isArrLike(document.body.children); // -> true;
-isArrLike([1, 2, 3]); // -> true
-```
-
-## isBool
-
-Check if value is a boolean primitive.
-
-|Name |Type |Desc |
-|------|-------|--------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is a boolean|
-
-```javascript
-isBool(true); // -> true
-isBool(false); // -> true
-isBool(1); // -> false
-```
-
-## isCrossOrig
-
-No documentation.
-
-## isEl
-
-Check if value is a DOM element.
-
-|Name |Type |Desc |
-|------|-------|------------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is a DOM element|
-
-```javascript
-isEl(document.body); // -> true
-```
-
-## isEmpty
-
-Check if value is an empty object or array.
-
-|Name |Type |Desc |
-|------|-------|----------------------|
-|val |* |Value to check |
-|return|boolean|True if value is empty|
-
-```javascript
-isEmpty([]); // -> true
-isEmpty({}); // -> true
-```
-
-## isErr
-
-Check if value is an error.
-
-|Name |Type |Desc |
-|------|-------|-------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is an error|
-
-```javascript
-isErr(new Error()); // -> true
-```
-
-## isErudaEl
-
-No documentation.
-
-## isFn
-
-Check if value is a function.
-
-|Name |Type |Desc |
-|------|-------|---------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is a function|
-
-Generator function is also classified as true.
-
-```javascript
-isFn(function() {}); // -> true
-isFn(function*() {}); // -> true
-```
-
-## isMatch
-
-Check if keys and values in src are contained in obj.
-
-|Name |Type |Desc |
-|------|-------|----------------------------------|
-|obj |object |Object to inspect |
-|src |object |Object of property values to match|
-|return|boolean|True if object is match |
-
-```javascript
-isMatch({a: 1, b: 2}, {a: 1}); // -> true
-```
-
-## isNull
-
-Check if value is an Null.
-
-|Name |Type |Desc |
-|------|-------|-----------------------|
-|value |* |Value to check |
-|return|boolean|True if value is an Null|
-
-```javascript
-isNull(null); // -> true
-```
-
-## isNum
-
-Checks if value is classified as a Number primitive or object.
-
-|Name |Type |Desc |
-|------|-------|-------------------------------------|
-|value |* |Value to check |
-|return|boolean|True if value is correctly classified|
-
-## isObj
-
-Check if value is the language type of Object.
-
-|Name |Type |Desc |
-|------|-------|--------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is an object|
-
-[Language Spec](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
-
-```javascript
-isObj({}); // -> true
-isObj([]); // -> true
-```
-
-## isRegExp
-
-Check if value is a regular expression.
-
-|Name |Type |Desc |
-|------|-------|-------------------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is a regular expression|
-
-```javascript
-isRegExp(/a/); // -> true
-```
-
-## isStr
-
-Check if value is a string primitive.
-
-|Name |Type |Desc |
-|------|-------|-----------------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is a string primitive|
-
-```javascript
-isStr('eris'); // -> true
-```
-
-## isUndef
-
-Check if value is undefined.
-
-|Name |Type |Desc |
-|------|-------|--------------------------|
-|val |* |Value to check |
-|return|boolean|True if value is undefined|
-
-```javascript
-isUndef(void 0); // -> true
-isUndef(null); // -> false
-```
-
-## kebabCase
-
-Convert string to "kebabCase".
-
-|Name |Type |Desc |
-|------|------|------------------|
-|str |string|String to convert |
-|return|string|Kebab cased string|
-
-```javascript
-kebabCase('fooBar'); // -> foo-bar
-kebabCase('foo bar'); // -> foo-bar
-kebabCase('foo_bar'); // -> foo-bar
-kebabCase('foo.bar'); // -> foo-bar
-```
-
-## keys
-
-Create an array of the own enumerable property names of object.
-
-|Name |Type |Desc |
-|------|------|-----------------------|
-|obj |object|Object to query |
-|return|array |Array of property names|
-
-## last
-
-Get the last element of array.
-
-|Name |Type |Desc |
-|------|-----|-------------------------|
-|arr |array|The array to query |
-|return|* |The last element of array|
-
-```javascript
-last([1, 2]); // -> 2
-```
-
-## loadJs
-
-Inject script tag into page with given src value. TODO
-
-## lpad
-
-Pad string on the left side if it's shorter than length.
-
-|Name |Type |Desc |
-|-------|------|----------------------|
-|str |string|String to pad |
-|len |number|Padding length |
-|[chars]|string|String used as padding|
-|return |string|Resulted string |
-
-```javascript
-lpad('a', 5); // -> ' a'
-lpad('a', 5, '-'); // -> '----a'
-lpad('abc', 3, '-'); // -> 'abc'
-lpad('abc', 5, 'ab'); // -> 'ababc'
-```
-
-## ltrim
-
-Remove chars or white-spaces from beginning of string.
-
-|Name |Type |Desc |
-|------|------------|------------------|
-|str |string |String to trim |
-|chars |string array|Characters to trim|
-|return|string |Trimmed string |
-
-```javascript
-ltrim(' abc '); // -> 'abc '
-ltrim('_abc_', '_'); // -> 'abc_'
-ltrim('_abc_', ['a', '_']); // -> 'bc_'
-```
-
-## map
-
-Create an array of values by running each element in collection through iteratee.
-
-|Name |Type |Desc |
-|--------|------------|------------------------------|
-|obj |array object|Collection to iterate over |
-|iteratee|function |Function invoked per iteration|
-|[ctx] |* |Function context |
-|return |array |New mapped array |
-
-```javascript
-map([4, 8], function (n) { return n * n; }); // -> [16, 64]
-```
-
-## matcher
-
-TODO
-
-## noop
-
-A no-operation function.
-
-```javascript
-noop(); // Does nothing
-```
-
-## now
-
-Gets the number of milliseconds that have elapsed since the Unix epoch.
-
-```javascript
-now(); // -> 1468826678701
-```
-
-## objToStr
-
-Alias of Object.prototype.toString.
-
-|Name |Type |Desc |
-|------|------|------------------------------------|
-|value |* |Source value |
-|return|string|String representation of given value|
-
-```javascript
-objToStr(5); // -> '[object Number]'
-```
-
-## once
-
-Create a function that invokes once.
-
-|Name |Type |Desc |
-|------|--------|-----------------------|
-|fn |function|Function to restrict |
-|return|function|New restricted function|
-
-```javascript
-function init() {};
-var initOnce = once(init);
-initOnce();
-initOnce(); // -> init is invoked once
-```
-
-## optimizeCb
-
-TODO
-
-## orientation
-
-No documentation.
-
-## partial
-
-Partially apply a function by filling in given arguments.
-
-|Name |Type |Desc |
-|--------|--------|----------------------------------------|
-|fn |function|Function to partially apply arguments to|
-|partials|...* |Arguments to be partially applied |
-|return |function|New partially applied function |
-
-```javascript
-var sub5 = partial(function (a, b) { return b - a }, 5);
-sub(20); // -> 15
-```
-
-## pxToNum
-
-No documentation.
-
-## repeat
-
-Repeat string n-times.
-
-|Name |Type |Desc |
-|------|------|----------------|
-|str |string|String to repeat|
-|n |number|Repeat times |
-|return|string|Repeated string |
-
-```javascript
-repeat('a', 3); // -> 'aaa'
-repeat('ab', 2); // -> 'abab'
-repeat('*', 0); // -> ''
-```
-
-## restArgs
-
-This accumulates the arguments passed into an array, after a given index.
-
-|Name |Type |Desc |
-|----------|--------|---------------------------------------|
-|function |function|Function that needs rest parameters |
-|startIndex|number |The start index to accumulates |
-|return |function|Generated function with rest parameters|
-
-```javascript
-var paramArr = _.restArgs(function (rest) { return rest });
-paramArr(1, 2, 3, 4); // -> [1, 2, 3, 4]
-```
-
-## rtrim
-
-Remove chars or white-spaces from end of string.
-
-|Name |Type |Desc |
-|------|------------|------------------|
-|str |string |String to trim |
-|chars |string array|Characters to trim|
-|return|string |Trimmed string |
-
-```javascript
-rtrim(' abc '); // -> ' abc'
-rtrim('_abc_', '_'); // -> '_abc'
-rtrim('_abc_', ['c', '_']); // -> '_ab'
-```
-
-## safeCb
-
-Create callback based on input value. TODO
-
-## slice
-
-Create slice of source array or array-like object.
-
-|Name |Type |Desc |
-|------------------|------|--------------------------|
-|array |array |Array to slice |
-|[start=0] |number|Start position |
-|[end=array.length]|number|End position, not included|
-
-```javascript
-slice([1, 2, 3, 4], 1, 2); // -> [2]
-```
-
-## some
-
-Check if predicate return truthy for any element.
-
-|Name |Type |Desc |
-|---------|------------|----------------------------------------------|
-|obj |array object|Collection to iterate over |
-|predicate|function |Function to invoked per iteration |
-|ctx |* |Predicate context |
-|return |boolean |True if any element passes the predicate check|
-
-```javascript
-some([2, 5], function (val)
-{
- return val % 2 === 0;
-}); // -> true
-```
-
-## splitCase
-
-Split different string case to an array.
-
-|Name |Type |Desc |
-|------|------|---------------|
-|str |string|String to split|
-|return|array |Result array |
-
-```javascript
-splitCase('foo-bar'); // -> ['foo', 'bar']
-splitCase('foo bar'); // -> ['foo', 'bar']
-splitCase('foo_bar'); // -> ['foo', 'bar']
-splitCase('foo.bar'); // -> ['foo', 'bar']
-splitCase('fooBar'); // -> ['foo', 'bar']
-splitCase('foo-Bar'); // -> ['foo', 'bar']
-```
-
-## startWith
-
-Check if string starts with the given target string.
-
-|Name |Type |Desc |
-|------|-------|---------------------------------|
-|str |string |String to search |
-|prefix|string |String prefix |
-|return|boolean|True if string starts with prefix|
-
-```javascript
-startWith('ab', 'a'); // -> true
-```
-
-## stripHtmlTag
-
-Strip html tags from a string.
-
-|Name |Type |Desc |
-|------|------|---------------|
-|str |string|String to strip|
-|return|string|Resulted string|
-
-```javascript
-stripHtmlTag('Hello
'); // -> 'Hello'
-```
-
-## toArr
-
-Convert value to an array.
-
-|Name |Type |Desc |
-|------|-----|----------------|
-|val |* |Value to convert|
-|return|array|Converted array |
-
-```javascript
-toArr({a: 1, b: 2}); // -> [{a: 1, b: 2}]
-toArr('abc'); // -> ['abc']
-toArr(1); // -> []
-toArr(null); // -> []
-```
-
-## toInt
-
-Convert value to an integer.
-
-|Name |Type |Desc |
-|------|------|-----------------|
-|val |* |Value to convert |
-|return|number|Converted integer|
-
-```javascript
-toInt(1.1); // -> 1
-```
-
-## toNum
-
-Convert value to a number.
-
-|Name |Type |Desc |
-|------|------|----------------|
-|val |* |Value to process|
-|return|number|Resulted number |
-
-```javascript
-toNum('5'); // -> 5
-```
-
-## toStr
-
-Convert value to a string.
-
-|Name |Type |Desc |
-|------|------|----------------|
-|val |* |Value to convert|
-|return|string|Resulted string |
-
-```javascript
-toStr(null); // -> ''
-toStr(1); // -> '1'
-toStr(false); // -> 'false'
-toStr([1, 2, 3]); // -> '1,2,3'
-```
-
-## trim
-
-Remove chars or white-spaces from beginning end of string.
-
-|Name |Type |Desc |
-|------|------------|------------------|
-|str |string |String to trim |
-|chars |string array|Characters to trim|
-|return|string |Trimmed string |
-
-```javascript
-trim(' abc '); // -> 'abc'
-trim('_abc_', '_'); // -> 'abc'
-trim('_abc_', ['a', 'c', '_']); // -> 'b'
-```
-
-## uniqId
-
-Generate a globally-unique id.
-
-|Name |Type |Desc |
-|------|------|------------------|
-|prefix|string|Id prefix |
-|return|string|Globally-unique id|
-
-```javascript
-uniqueId('eusita_'); // -> 'eustia_xxx'
-```
-
-## unique
-
-Create duplicate-free version of an array.
-
-|Name |Type |Desc |
-|---------|--------|-----------------------------|
-|arr |array |Array to inspect |
-|[compare]|function|Function for comparing values|
-|return |array |New duplicate free array |
-
-```javascript
-unique([1, 2, 3, 1]); // -> [1, 2, 3]
-```
-
-## upperFirst
-
-Convert the first character of string to upper case.
-
-|Name |Type |Desc |
-|------|------|-----------------|
-|str |string|String to convert|
-|return|string|Converted string |
-
-```javascript
-upperFirst('red'); // -> RED
-```
-
-## values
-
-Creates an array of the own enumerable property values of object.
-
-|Name |Type |Desc |
-|------|------|------------------------|
-|obj |object|Object to query |
-|return|array |Array of property values|
-
-```javascript
-values({one: 1, two: 2}); // -> [1, 2]
-```