diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000..9d60796
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+11
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 9c3e064..41bb949 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,16 @@
language: node_js
node_js:
-- '0.12'
+ - '0.12'
env:
global:
- - secure: "Cg+r3iiCOSrghMNfcvFaZBbK0ZLT9mbIlVEYr7cW7P/PjWr3hid51hkEzJcoHxbB/UAqWGh09IBmfmFh4XN9iySj8LyUeFqI/ner9JDQYSnm+dWtxU9TZgA8MRXL4k+/fRYWmUnwOJB211F+fsevfGuKCbqQcl0axBiI+xTsfpQ="
-install: 'npm install'
+ - secure: Cg+r3iiCOSrghMNfcvFaZBbK0ZLT9mbIlVEYr7cW7P/PjWr3hid51hkEzJcoHxbB/UAqWGh09IBmfmFh4XN9iySj8LyUeFqI/ner9JDQYSnm+dWtxU9TZgA8MRXL4k+/fRYWmUnwOJB211F+fsevfGuKCbqQcl0axBiI+xTsfpQ=
+install: npm install
after_success:
- - 'grunt deploy'
+ - npm run update && npm run deploy
+deploy:
+ provider: npm
+ email: 'npm@helzle.it'
+ api_key:
+ secure: Css6ttIy1gSqfeM78A00ZuBi0Ij7DZeGLsBemNMijXmQvWr7NtcuVdXwZGbVy4iCzdbcGdSeDPUeD/lPCVBJ0nU0dhpESl2/nTNC4BfMUCPOzaA24SIn6wb+c9nO9CeIf7yDQMejgaqlL0FJk39XE4mbZY0tLwKS0OTHa2AbYp4=
+ only:
+ tags: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40ea889..2ec0087 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,36 @@
# Changes
+## 2.2.0
+
+* FIX: Mainly a release to make npm load the latest version including changes from 2.1.3
+* FIX: Add docco as dependency to make grunt build task work properly
+* CHG: Updated some dependencies and removed bower
+
+## 2.1.3
+
+* FIX: Use own $ variable, make sure Jquery can be loaded. Patch by @dollars0427. Thanks!
+* FIX: Reference correct `main` file for ES6 imports. Patch by @teawithfruit. Thanks!
+* CHG: Removed window and document. Patch by @teawithfruit. Thanks!
+
+## 2.1.2
+
+* FIX: Resize and refresh events were not triggered correctly
+
+## 2.1.1
+
+* FIX: Layout on hidden containers couldn't be forced
+* FIX: Items were not rendered when ignoreActiveItems was set
+
+## 2.1.0
+
+* FIX: Simple example didn't work properly
+* FIX: Reduce flickering on loading
+* FIX: Only enable transition after wookmark has initialized
+* FIX: Defined dev only scripts in package.json
+* FIX: layout call didn't trigger item height recomputation
+* ADD: Add initialised state after first layout
+* CHG: Updated readme
+
## 2.0.1
* CHG: !!! We start to rename the plugin to `wookmark` instead of `wookmark-jquery`. Also the repository moved to https://github.com/germanysbestkeptsecret/Wookmark-jQuery.
diff --git a/FUNDING.yml b/FUNDING.yml
new file mode 100644
index 0000000..02b8798
--- /dev/null
+++ b/FUNDING.yml
@@ -0,0 +1,2 @@
+patreon: shelzle
+github: sebobo
diff --git a/README.md b/README.md
index 619d107..666fbdd 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,3 @@
-[](https://waffle.io/gbks/wookmark-jquery)
[](https://gitter.im/germanysbestkeptsecret/Wookmark-jQuery?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](http://wookmark.readthedocs.org/en/latest/)
[](https://travis-ci.org/germanysbestkeptsecret/Wookmark-jQuery)
@@ -17,9 +16,6 @@ by their respective owners and only included for showcasing plugin functionality
Do you like this project?
[Buy us a beer](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TSN2TDYNKZHF4)
-This project is kindly supported by
-[](https://www.browserstack.com)
-
How to make the examples work
=============================
@@ -56,6 +52,10 @@ Installation
bower install wookmark-jquery
+### Install with npm
+
+ npm install wookmark
+
### jQuery is optional and is used in some of the examples to simplify the code a bit
* [jQuery](http://www.jquery.com) - 1.5.3 or better
@@ -117,25 +117,44 @@ As example using a `flexibleWidth` of 40% will result in two columns with 10% sp
#### fillEmptySpace
-This creates placeholders at the bottom of each column to create an even layout. See `example-placeholder` on how to use it. These placeholders use the css class `wookmark-placeholder`. You can overwrite it in your own css to fit your needs.
+This creates placeholders at the bottom of each column to create an even layout. See `example-placeholder` on how to use it.
+These placeholders use the css class `wookmark-placeholder`. You can overwrite it in your own css to fit your needs.
#### ignoreInactiveItems
-When set to `false` inactive items will still be shown when filtered. This can be used to fade out filtered items. See the example-filter/fade.html example.
+When set to `false` inactive items will still be shown when filtered. This can be used to fade out filtered items.
+See the example-filter/fade.html example.
#### comparator
-You can use this option to provide a custom comparator function which the plugin will use to sort the tiles. See example-sort or example-stamp on how to use it.
+You can use this option to provide a custom comparator function which the plugin will use to sort the tiles.
+See example-sort or example-stamp on how to use it.
### Refresh trigger
-Elements which are hidden have cannot be laid out until they are visible. If you use wookmark on a hidden tab layout will not be immediately performed. When the tab is made visible you can manually refresh Wookmark using a trigger on your container.
+Elements which are hidden have cannot be laid out until they are visible.
+If you use wookmark on a hidden tab layout will not be immediately performed.
+When the tab is made visible you can manually refresh Wookmark using a trigger on your container.
wookmark.layout(true);
-
+
or
- $('#myElementContainer').trigger('refreshWookmark');
+ document.getElementById('container').dispatchEvent(new Event('refreshWookmark'));
+
+or with jQuery
+
+ $('#container').trigger('refreshWookmark');
+
+### Resize trigger
+
+A relayout happens then the viewport is resized, you can also trigger this manually via
+
+ window.dispatchEvent(new Event('resize'));
+
+or with jQuery
+
+ $(window).trigger('resize');
### Filter
diff --git a/bower.json b/bower.json
index 1bedad7..4269fd8 100644
--- a/bower.json
+++ b/bower.json
@@ -36,6 +36,5 @@
"name": "Sebastian Helzle",
"email": "sebastian@helzle.it"
}
- ],
- "main": "wookmark.js"
+ ]
}
diff --git a/css/main.css b/css/main.css
index 0d7fbb7..bd8e2e6 100644
--- a/css/main.css
+++ b/css/main.css
@@ -72,7 +72,7 @@ a {
*/
.tiles-wrap li {
display: block;
- opacity: 1;
+ opacity: 0;
text-align: center;
list-style-type: none;
background-color: #fff;
@@ -88,13 +88,17 @@ a {
-moz-border-radius: 2px;
border-radius: 2px;
}
-.tiles-wrap.animated li {
+.tiles-wrap.wookmark-initialised.animated li {
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
+.tiles-wrap.wookmark-initialised li {
+ opacity: 1;
+}
+
.tiles-wrap li.wookmark-inactive {
visibility: hidden;
opacity: 0;
diff --git a/doc/wookmark.html b/doc/wookmark.html
index 7fbcaf6..2383879 100644
--- a/doc/wookmark.html
+++ b/doc/wookmark.html
@@ -34,22 +34,24 @@
wookmark.js
Wookmark plugin
@name wookmark.js
@author Christoph Ono (chri@sto.ph or @gbks)
- @author Sebastian Helzle (sebastian@helzle.net or @sebobo)
- @version 2.0.1
- @date 06/16/2015
+ @author Sebastian Helzle (me@helzle.it or @sebobo)
+ @version 2.2.0
+ @date 11/24/2019
@category jQuery plugin
- @copyright (c) 2009-2015 Christoph Ono (www.wookmark.com)
+ @copyright (c) 2009-2019 Christoph Ono (www.wookmark.com)
@license Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
-(function (factory) {
+
+(function ($) {
+(function (factory) {
if (typeof define === 'function' && define.amd) {
- define(['window', 'document'], factory);
+ define(factory);
} else {
- factory(window, document);
+ factory();
}
-}(function (window, document) {
+}(function () {
@@ -77,23 +79,23 @@ Wookmark default options
var defaultOptions = {
- align: 'center',
- autoResize: true,
- comparator: null,
- direction: undefined,
- ignoreInactiveItems: true,
- inactiveClass: 'wookmark-inactive',
- itemSelector: undefined,
- itemWidth: 0,
- fillEmptySpace: false,
- flexibleWidth: 0,
- offset: 5,
- outerOffset: 0,
- onLayoutChanged: undefined,
- placeholderClass: 'wookmark-placeholder',
- possibleFilters: [],
- resizeDelay: 50,
- verticalOffset: undefined
+ align: 'center',
+ autoResize: true,
+ comparator: null,
+ direction: undefined,
+ ignoreInactiveItems: true,
+ inactiveClass: 'wookmark-inactive',
+ itemSelector: undefined,
+ itemWidth: 0,
+ fillEmptySpace: false,
+ flexibleWidth: 0,
+ offset: 5,
+ outerOffset: 0,
+ onLayoutChanged: undefined,
+ placeholderClass: 'wookmark-placeholder',
+ possibleFilters: [],
+ resizeDelay: 50,
+ verticalOffset: undefined
};
@@ -134,8 +136,8 @@ Helper functions
- function __bind(fn, me) {
- return function () {
+ function __bind(fn, me) {
+ return function () {
return fn.apply(me, arguments);
};
}
@@ -153,7 +155,7 @@ Helper functions
-
var executeNextFrame = window.requestAnimationFrame || function (callback) { callback(); };
+
var executeNextFrame = window.requestAnimationFrame || function (callback) { callback(); };
@@ -168,7 +170,7 @@
Helper functions
- function setCSS(el, properties) {
+ function setCSS(el, properties) {
var key;
for (key in properties) {
if (properties.hasOwnProperty(key)) {
@@ -193,12 +195,29 @@ Helper functions
-
function bulkUpdateCSS(data) {
- executeNextFrame(function () {
+ function bulkUpdateCSS(data, callback) {
+ executeNextFrame(function () {
var i, item;
for (i = 0; i < data.length; i++) {
item = data[i];
setCSS(item.el, item.css);
+ }
+
+
+
+
+
+
+
+
+
Run optional callback
+
+
+
+ if (typeof callback === 'function') {
+ executeNextFrame(callback);
}
});
}
@@ -206,35 +225,37 @@ Helper functions
-
+
Remove whitespace around filter names
- function cleanFilterName(filterName) {
+ function cleanFilterName(filterName) {
return filterName.replace(/^\s+|\s+$/g, '').toLowerCase();
}
-
+
Remove listener from an element (IE8 compatible)
- function removeEventListener(el, eventName, handler) {
- if (el.removeEventListener) {
+ function removeEventListener(el, eventName, handler) {
+ if (window.jQuery) {
+ $(el).off(eventName, handler);
+ } else if (el.removeEventListener) {
el.removeEventListener(eventName, handler);
} else {
el.detachEvent('on' + eventName, handler);
@@ -244,22 +265,25 @@ Helper functions
-
+
Add listener to an element (IE8 compatible)
- function addEventListener(el, eventName, handler) {
+ function addEventListener(el, eventName, handler) {
removeEventListener(el, eventName, handler);
- if (el.addEventListener) {
+
+ if (window.jQuery) {
+ $(el).on(eventName, handler);
+ } else if (el.addEventListener) {
el.addEventListener(eventName, handler);
} else {
- el.attachEvent('on' + eventName, function () {
+ el.attachEvent('on' + eventName, function () {
handler.call(el);
});
}
@@ -268,68 +292,68 @@ Helper functions
-
+
Checks if element el is not visible in the browser
- function isHidden(el) {
+ function isHidden(el) {
return el.offsetParent === null;
}
-
+
Returns the elements height without margin
- function getHeight(el) {
+ function getHeight(el) {
return el.offsetHeight;
}
-
+
Returns the elements width without margin
- function getWidth(el) {
+ function getWidth(el) {
return el.offsetWidth;
}
-
+
Return true if element has class
- function hasClass(el, className) {
+ function hasClass(el, className) {
if (el.classList) {
return el.classList.contains(className);
}
@@ -339,17 +363,17 @@ Helper functions
-
+
Add class to element (IE8+)
- function addClass(el, className) {
+ function addClass(el, className) {
if (el.classList) {
el.classList.add(className);
} else {
@@ -360,17 +384,17 @@ Helper functions
-
+
Remove class from element (IE8+)
- function removeClass(el, className) {
+ function removeClass(el, className) {
if (el.classList) {
el.classList.remove(className);
} else {
@@ -381,17 +405,17 @@ Helper functions
-
+
Get value of specified data attribute
- function getData(el, attr, isInt, prefix) {
+ function getData(el, attr, isInt, prefix) {
if (prefix === undefined) {
prefix = 'wookmark-';
}
@@ -405,17 +429,17 @@ Helper functions
-
+
Set value of specified data attribute
- function setData(el, attr, val, prefix) {
+ function setData(el, attr, val, prefix) {
if (prefix === undefined) {
prefix = 'wookmark-';
}
@@ -425,17 +449,17 @@ Helper functions
-
+
Remove duplicates from given array
- function removeDuplicates(items) {
+ function removeDuplicates(items) {
var temp = {}, result = [], x, i = items.length;
while (i--) {
x = getData(items[i], 'id', true);
@@ -450,51 +474,51 @@ Helper functions
-
+
Get the computed style from an element (IE 8 compatible)
- function getStyle(el, prop) {
+ function getStyle(el, prop) {
return window.getComputedStyle !== undefined ? window.getComputedStyle(el, null).getPropertyValue(prop) : el.currentStyle[prop];
}
-
+
- function indexOf(items, item) {
+ function indexOf(items, item) {
var len = items.length, i;
for (i = 0; i < len; i++) {
if (items[i] === item) {
return i;
}
}
- return -1;
+ return -1;
}
-
+
Main wookmark plugin class
@@ -503,16 +527,16 @@
Main wookmark plugin class
-
+
- function Wookmark(container, options) {
+ function Wookmark(container, options) {
options = options || {};
if (typeof container === 'string') {
@@ -522,18 +546,18 @@ Main wookmark plugin class
-
+
this.container = container;
- this.columns = this.containerWidth = this.resizeTimer = null;
+ this.columns = this.resizeTimer = null;
this.activeItemCount = 0;
this.placeholders = [];
this.itemHeightsInitialized = false;
@@ -543,11 +567,11 @@ Main wookmark plugin class
-
+
Bind instance methods
@@ -571,11 +595,11 @@
Main wookmark plugin class
-
+
Initialize children of the container
@@ -586,11 +610,11 @@
Main wookmark plugin class
-
+
Initial update and layout
@@ -602,11 +626,11 @@
Main wookmark plugin class
-
+
Collect filter classes after items have been initialized
@@ -617,11 +641,11 @@
Main wookmark plugin class
-
+
Listen to resize event of the browser if enabled
@@ -634,11 +658,11 @@
Main wookmark plugin class
-
+
Listen to external refresh event
@@ -650,26 +674,26 @@
Main wookmark plugin class
-
+
Get all valid children of the container object and store them
- Wookmark.prototype.initItems = function () {
+ Wookmark.prototype.initItems = function () {
-
+
By select all children of the container if no selector is specified
@@ -677,18 +701,18 @@
Main wookmark plugin class
if (this.itemSelector === undefined) {
var items = [], child, children = this.container.children,
- i = children.length;
+ i = children.length;
while (i--) {
child = children[i];
-
+
Skip comment nodes on IE8
@@ -699,11 +723,11 @@
Main wookmark plugin class
-
+
Show item
@@ -728,26 +752,26 @@
Main wookmark plugin class
-
+
Reload all filter classes from all items and cache them
- Wookmark.prototype.updateFilterClasses = function () {
+ Wookmark.prototype.updateFilterClasses = function () {
-
+
Collect filter data
@@ -763,11 +787,11 @@
Main wookmark plugin class
-
+
Read filter classes and globally store each filter class as object and the fitting items in the array
@@ -799,17 +823,17 @@
Main wookmark plugin class
-
+
Method for updating the plugins options
- Wookmark.prototype.updateOptions = function (options) {
+ Wookmark.prototype.updateOptions = function (options) {
var key;
this.itemHeightsDirty = true;
options = options || {};
@@ -817,11 +841,11 @@ Main wookmark plugin class
-
+
Overwrite non existing instance variables with the ones from options or the defaults
@@ -840,11 +864,11 @@
Main wookmark plugin class
-
+
Vertical offset uses a fallback to offset
@@ -855,11 +879,11 @@
Main wookmark plugin class
-
+
Update layout so changes apply
@@ -871,17 +895,17 @@
Main wookmark plugin class
-
+
This timer ensures that layout is not continuously called as window is being dragged.
- Wookmark.prototype.onResize = function () {
+ Wookmark.prototype.onResize = function () {
clearTimeout(this.resizeTimer);
this.itemHeightsDirty = this.flexibleWidth !== 0;
this.resizeTimer = setTimeout(this.layout, this.resizeDelay);
@@ -890,17 +914,17 @@ Main wookmark plugin class
-
+
Marks the items heights as dirty and does a relayout
- Wookmark.prototype.onRefresh = function () {
+ Wookmark.prototype.onRefresh = function () {
this.itemHeightsDirty = true;
this.layout();
};
@@ -908,11 +932,11 @@ Main wookmark plugin class
-
+
Filters the active items with the given string filters.
@param filters array of string
@@ -920,7 +944,7 @@
Main wookmark plugin class
- Wookmark.prototype.filter = function (filters, mode, dryRun) {
+ Wookmark.prototype.filter = function (filters, mode, dryRun) {
var activeFilters = [], activeFiltersLength, activeItems = [],
i, j, k, filter;
@@ -933,11 +957,11 @@ Main wookmark plugin class
-
+
Collect active filters
@@ -953,11 +977,11 @@
Main wookmark plugin class
-
+
Get items for active filters with the selected mode
@@ -969,11 +993,11 @@
Main wookmark plugin class
-
+
Set all items in all active filters active
@@ -989,11 +1013,11 @@
Main wookmark plugin class
-
+
Find shortest filter class
@@ -1008,11 +1032,11 @@
Main wookmark plugin class
-
+
Iterate over shortest filter and find elements in other filter classes
@@ -1032,11 +1056,11 @@
Main wookmark plugin class
-
+
Search for current item in each active filter class
@@ -1060,11 +1084,11 @@
Main wookmark plugin class
-
+
Remove duplicates from active items
@@ -1077,11 +1101,11 @@
Main wookmark plugin class
-
+
Hide inactive items
@@ -1090,7 +1114,7 @@
Main wookmark plugin class
if (!dryRun) {
i = this.items.length;
while (i--) {
- if (indexOf(activeItems, this.items[i]) === -1) {
+ if (indexOf(activeItems, this.items[i]) === -1) {
addClass(this.items[i], this.inactiveClass);
}
}
@@ -1100,11 +1124,11 @@ Main wookmark plugin class
-
+
Show all items if no filter is selected
@@ -1116,11 +1140,11 @@
Main wookmark plugin class
-
+
Show active items
@@ -1135,11 +1159,11 @@
Main wookmark plugin class
-
+
Unset columns and refresh grid for a full layout
@@ -1154,17 +1178,17 @@
Main wookmark plugin class
-
+
Creates or updates existing placeholders to create columns of even height
- Wookmark.prototype.refreshPlaceholders = function (columnWidth, sideOffset) {
+ Wookmark.prototype.refreshPlaceholders = function (columnWidth, sideOffset) {
var i,
containerHeight = getHeight(this.container),
columnsLength = this.columns.length,
@@ -1179,11 +1203,11 @@ Main wookmark plugin class
-
+
Add more placeholders if necessary
@@ -1203,11 +1227,11 @@
Main wookmark plugin class
-
+
Update each placeholder
@@ -1225,12 +1249,12 @@
Main wookmark plugin class
height =
Math.max(
0, containerHeight - top - innerOffset);
setCSS(placeholder, {
- position:
'absolute',
- display: height >
0 ?
'block' :
'none',
- left: (i * columnWidth + sideOffset) +
'px',
- top: top +
'px',
- width: (columnWidth - innerOffset) +
'px',
- height: height +
'px'
+
position:
'absolute',
+
display: height >
0 ?
'block' :
'none',
+
left: (i * columnWidth + sideOffset) +
'px',
+
top: top +
'px',
+
width: (columnWidth - innerOffset) +
'px',
+
height: height +
'px'
});
}
}
@@ -1239,17 +1263,17 @@
Main wookmark plugin class
-
+
Method the get active items which are not disabled and visible
- Wookmark.prototype.getActiveItems = function () {
+ Wookmark.prototype.getActiveItems = function () {
var inactiveClass = this.inactiveClass,
i,
result = [],
@@ -1263,6 +1287,8 @@ Main wookmark plugin class
result.push(item);
}
}
+ } else {
+ return items;
}
return result;
};
@@ -1270,17 +1296,17 @@ Main wookmark plugin class
-
+
Method to get the standard item width
- Wookmark.prototype.getItemWidth = function () {
+ Wookmark.prototype.getItemWidth = function () {
var itemWidth = this.itemWidth,
innerWidth = getWidth(this.container) - 2 * this.outerOffset,
flexibleWidth = this.flexibleWidth;
@@ -1292,17 +1318,17 @@ Main wookmark plugin class
if (this.items.length > 0 && (itemWidth === undefined || (itemWidth === 0 && !this.flexibleWidth))) {
itemWidth = getWidth(this.items[0]);
} else if (typeof itemWidth === 'string' && itemWidth.indexOf('%') >= 0) {
- itemWidth = parseFloat(this.itemWidth) / 100 * innerWidth;
+ itemWidth = parseFloat(itemWidth) / 100 * innerWidth;
}
-
+
Calculate flexible item width if option is set
@@ -1320,11 +1346,11 @@
Main wookmark plugin class
-
+
Find highest column count
@@ -1345,41 +1371,41 @@
Main wookmark plugin class
-
+
- Wookmark.prototype.layout = function (force, callback) {
+ Wookmark.prototype.layout = function (force, callback) {
-
+
Do nothing if container isn’t visible
- if (isHidden(this.container)) { return; }
+ if (!force && isHidden(this.container)) { return; }
-
+
Calculate basic layout parameters.
@@ -1390,28 +1416,27 @@
Main wookmark plugin class
containerWidth = getWidth(
this.container),
innerWidth = containerWidth -
2 *
this.outerOffset,
columns =
Math.floor((innerWidth +
this.offset) / columnWidth),
- offset =
0,
+ offset,
maxHeight =
0,
activeItems =
this.getActiveItems(),
activeItemsLength = activeItems.length,
- item,
- i = activeItemsLength;
+ item;
-
+
- if (this.itemHeightsDirty || !this.itemHeightsInitialized) {
- while (i--) {
+ if (force || this.itemHeightsDirty || !this.itemHeightsInitialized) {
+ for (var i = 0; i < activeItemsLength; i++) {
item = activeItems[i];
if (this.flexibleWidth) {
@@ -1419,11 +1444,11 @@ Main wookmark plugin class
-
+
Stretch items to fill calculated width
@@ -1440,11 +1465,11 @@
Main wookmark plugin class
-
+
Use less columns if there are to few items
@@ -1455,11 +1480,11 @@
Main wookmark plugin class
-
+
Calculate the offset based on the alignment of columns to the parent container
@@ -1473,11 +1498,11 @@
Main wookmark plugin class
-
+
Get direction for positioning
@@ -1488,11 +1513,11 @@
Main wookmark plugin class
-
+
If container and column count hasn’t changed, we can only update the columns.
@@ -1508,11 +1533,11 @@
Main wookmark plugin class
-
+
Set container height to height of the grid.
@@ -1523,11 +1548,11 @@
Main wookmark plugin class
-
+
Update placeholders
@@ -1544,11 +1569,11 @@
Main wookmark plugin class
-
+
Run optional callback
@@ -1562,47 +1587,47 @@
Main wookmark plugin class
-
+
Sort elements with configurable comparator
- Wookmark.prototype.sortElements = function (elements) {
+ Wookmark.prototype.sortElements = function (elements) {
return typeof this.comparator === 'function' ? elements.sort(this.comparator) : elements;
};
-
+
Perform a full layout update.
- Wookmark.prototype.layoutFull = function (columnWidth, columns, offset) {
+ Wookmark.prototype.layoutFull = function (columnWidth, columns, offset) {
var item, k = 0, i = 0, activeItems, activeItemCount, shortest = null, shortestIndex = null,
- sideOffset, heights = [], itemBulkCSS = [], leftAligned = this.align === 'left';
+ sideOffset, heights = [], itemBulkCSS = [], leftAligned = this.align === 'left', self = this;
this.columns = [];
-
+
Sort elements before layouting
@@ -1614,11 +1639,11 @@
Main wookmark plugin class
-
+
Prepare arrays to store height of columns and items.
@@ -1632,11 +1657,11 @@
Main wookmark plugin class
-
+
Loop over items.
@@ -1648,11 +1673,11 @@
Main wookmark plugin class
-
+
Find the shortest column.
@@ -1671,11 +1696,11 @@
Main wookmark plugin class
-
+
stick to left side if alignment is left and this is the first column
@@ -1689,21 +1714,21 @@
Main wookmark plugin class
-
+
itemBulkCSS[i] = {
- el: item,
- css: {
- position: 'absolute',
- top: shortest + 'px'
+ el: item,
+ css: {
+ position: 'absolute',
+ top: shortest + 'px'
}
};
itemBulkCSS[i].css[this.direction] = sideOffset + 'px';
@@ -1711,11 +1736,11 @@ Main wookmark plugin class
-
+
Update column height and store item in shortest column
@@ -1724,18 +1749,49 @@
Main wookmark plugin class
heights[shortestIndex] += getData(item, 'height', true) + this.verticalOffset;
this.columns[shortestIndex].push(item);
i++;
- }
+ }
+
+
+
+
+
+
+
+
+
Update all css in the next frame and mark container as initalised
- bulkUpdateCSS(itemBulkCSS);
+
+
+ bulkUpdateCSS(itemBulkCSS, function () {
-
+
+
Initialisation done
+
+
+
+ if (!hasClass(self.container, 'wookmark-initialised')) {
+ addClass(self.container, 'wookmark-initialised');
+ }
+ });
+
+
+
+
+
+
+
+
Return longest column
@@ -1747,18 +1803,18 @@
Main wookmark plugin class
-
+
This layout method only updates the vertical position of the
existing column assignments.
- Wookmark.prototype.layoutColumns = function (columnWidth, offset) {
+ Wookmark.prototype.layoutColumns = function (columnWidth, offset) {
var heights = [], itemBulkCSS = [], k = 0, j = 0,
i = this.columns.length, currentHeight,
column, item, sideOffset;
@@ -1773,9 +1829,9 @@ Main wookmark plugin class
item = column[k];
setData(item, 'top', currentHeight);
itemBulkCSS[j] = {
- el: item,
- css: {
- top: currentHeight + 'px'
+ el: item,
+ css: {
+ top: currentHeight + 'px'
}
};
itemBulkCSS[j].css[this.direction] = sideOffset + 'px';
@@ -1790,11 +1846,11 @@ Main wookmark plugin class
-
+
Return longest column
@@ -1806,17 +1862,17 @@
Main wookmark plugin class
-
+
Clear event listeners and time outs and the instance itself
- Wookmark.prototype.clear = function () {
+ Wookmark.prototype.clear = function () {
clearTimeout(this.resizeTimer);
var i = this.placeholders.length;
while (i--) {
@@ -1829,28 +1885,28 @@ Main wookmark plugin class
-
+
Register as jQuery plugin if jQuery is loaded
if (window.jQuery !== undefined) {
- jQuery.fn.wookmark = function (options) {
+ jQuery.fn.wookmark = function (options) {
var i = this.length;
-
+
Use first element if container is an jQuery object
@@ -1863,11 +1919,11 @@
Main wookmark plugin class
-
+
Call plugin multiple times if there are multiple elements selected
@@ -1882,11 +1938,11 @@
Main wookmark plugin class
-
+
Create a wookmark instance or update an existing one
@@ -1904,7 +1960,8 @@
Main wookmark plugin class
window.Wookmark = Wookmark;
return Wookmark;
-}));
+}));
+})(window.jQuery);
diff --git a/example/index.html b/example/index.html
index 4f0fd17..99e61c9 100644
--- a/example/index.html
+++ b/example/index.html
@@ -23,7 +23,7 @@
Wookmark Simple Example
- Resize the browser window or click a grid item to trigger layout updates.
+ Resize the browser window to trigger layout updates.
The example contains two grids to show that they both work on their own but are instantiated with a single call.
@@ -31,7 +31,7 @@ Wookmark Simple Example
-
+

1

2
@@ -52,7 +52,7 @@ Wookmark Simple Example
-
+

16

17

18
@@ -74,33 +74,22 @@ Wookmark Simple Example
-
-
-
diff --git a/package.json b/package.json
index f4405cc..be54aa7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wookmark",
- "version": "2.0.1",
+ "version": "2.2.0",
"repository": "https://github.com/germanysbestkeptsecret/Wookmark-jQuery.git",
"description": "Javascript plugin for laying out elements of varying heights in a column-based grid. It also contains support for filtering and sorting items. A lot of examples are included showing how to use all the available options.",
"keywords": [
@@ -8,6 +8,7 @@
"ui"
],
"license": "MIT",
+ "main": "wookmark.js",
"bugs": "https://github.com/germanysbestkeptsecret/Wookmark-jQuery/issues",
"homepage": "http://plugin.wookmark.com",
"author": "Christoph Ono ",
@@ -18,15 +19,17 @@
}
],
"devDependencies": {
- "bower": "~1.4.1",
- "grunt": "~0.4.5",
- "grunt-cli": "~0.1.13",
- "grunt-contrib-jshint": "~0.10.0",
- "grunt-contrib-uglify": "~0.5.1",
- "grunt-docco": "~0.3.3",
- "grunt-gh-pages": "~0.10.0"
+ "docco": "^0.8.0",
+ "eslint": "~2.7",
+ "grunt": "~0.4",
+ "grunt-cli": "~0.1",
+ "grunt-contrib-jshint": "~0.12",
+ "grunt-contrib-uglify": "~0.5",
+ "grunt-docco": "~0.3",
+ "grunt-gh-pages": "~0.10"
},
"scripts": {
- "postinstall": "node_modules/.bin/bower cache clean && node_modules/.bin/bower install && node_modules/.bin/grunt"
+ "build": "grunt",
+ "deploy": "grunt deploy"
}
}
diff --git a/wookmark.js b/wookmark.js
index 2602149..44452e7 100644
--- a/wookmark.js
+++ b/wookmark.js
@@ -2,22 +2,24 @@
Wookmark plugin
@name wookmark.js
@author Christoph Ono (chri@sto.ph or @gbks)
- @author Sebastian Helzle (sebastian@helzle.net or @sebobo)
- @version 2.0.1
- @date 06/16/2015
+ @author Sebastian Helzle (me@helzle.it or @sebobo)
+ @version 2.2.0
+ @date 11/24/2019
@category jQuery plugin
- @copyright (c) 2009-2015 Christoph Ono (www.wookmark.com)
+ @copyright (c) 2009-2019 Christoph Ono (www.wookmark.com)
@license Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
/*global define, window, jQuery*/
/*jslint plusplus: true, bitwise: true */
+
+(function ($) {
(function (factory) {
if (typeof define === 'function' && define.amd) {
- define(['window', 'document'], factory);
+ define(factory);
} else {
- factory(window, document);
+ factory();
}
-}(function (window, document) {
+}(function () {
// Wookmark default options
// ------------------------
@@ -68,13 +70,17 @@
// befor the browsers next animation frame.
// The parameter `data` has to be an array containing objects, each
// with the element and the desired css properties.
- function bulkUpdateCSS(data) {
+ function bulkUpdateCSS(data, callback) {
executeNextFrame(function () {
var i, item;
for (i = 0; i < data.length; i++) {
item = data[i];
setCSS(item.el, item.css);
}
+ // Run optional callback
+ if (typeof callback === 'function') {
+ executeNextFrame(callback);
+ }
});
}
@@ -85,7 +91,9 @@
// Remove listener from an element (IE8 compatible)
function removeEventListener(el, eventName, handler) {
- if (el.removeEventListener) {
+ if (window.jQuery) {
+ $(el).off(eventName, handler);
+ } else if (el.removeEventListener) {
el.removeEventListener(eventName, handler);
} else {
el.detachEvent('on' + eventName, handler);
@@ -95,7 +103,10 @@
// Add listener to an element (IE8 compatible)
function addEventListener(el, eventName, handler) {
removeEventListener(el, eventName, handler);
- if (el.addEventListener) {
+
+ if (window.jQuery) {
+ $(el).on(eventName, handler);
+ } else if (el.addEventListener) {
el.addEventListener(eventName, handler);
} else {
el.attachEvent('on' + eventName, function () {
@@ -206,7 +217,7 @@
// Instance variables.
this.container = container;
- this.columns = this.containerWidth = this.resizeTimer = null;
+ this.columns = this.resizeTimer = null;
this.activeItemCount = 0;
this.placeholders = [];
this.itemHeightsInitialized = false;
@@ -253,7 +264,7 @@
// By select all children of the container if no selector is specified
if (this.itemSelector === undefined) {
var items = [], child, children = this.container.children,
- i = children.length;
+ i = children.length;
while (i--) {
child = children[i];
// Skip comment nodes on IE8
@@ -507,6 +518,8 @@
result.push(item);
}
}
+ } else {
+ return items;
}
return result;
};
@@ -553,7 +566,7 @@
// Main layout method.
Wookmark.prototype.layout = function (force, callback) {
// Do nothing if container isn't visible
- if (isHidden(this.container)) { return; }
+ if (!force && isHidden(this.container)) { return; }
// Calculate basic layout parameters.
var calculatedItemWidth = this.getItemWidth(),
@@ -561,16 +574,15 @@
containerWidth = getWidth(this.container),
innerWidth = containerWidth - 2 * this.outerOffset,
columns = Math.floor((innerWidth + this.offset) / columnWidth),
- offset = 0,
+ offset,
maxHeight = 0,
activeItems = this.getActiveItems(),
activeItemsLength = activeItems.length,
- item,
- i = activeItemsLength;
+ item;
// Cache item heights
- if (this.itemHeightsDirty || !this.itemHeightsInitialized) {
- while (i--) {
+ if (force || this.itemHeightsDirty || !this.itemHeightsInitialized) {
+ for (var i = 0; i < activeItemsLength; i++) {
item = activeItems[i];
if (this.flexibleWidth) {
@@ -629,7 +641,7 @@
// Perform a full layout update.
Wookmark.prototype.layoutFull = function (columnWidth, columns, offset) {
var item, k = 0, i = 0, activeItems, activeItemCount, shortest = null, shortestIndex = null,
- sideOffset, heights = [], itemBulkCSS = [], leftAligned = this.align === 'left';
+ sideOffset, heights = [], itemBulkCSS = [], leftAligned = this.align === 'left', self = this;
this.columns = [];
@@ -680,7 +692,13 @@
i++;
}
- bulkUpdateCSS(itemBulkCSS);
+ // Update all css in the next frame and mark container as initalised
+ bulkUpdateCSS(itemBulkCSS, function () {
+ // Initialisation done
+ if (!hasClass(self.container, 'wookmark-initialised')) {
+ addClass(self.container, 'wookmark-initialised');
+ }
+ });
// Return longest column
return Math.max.apply(Math, heights);
@@ -762,3 +780,4 @@
window.Wookmark = Wookmark;
return Wookmark;
}));
+})(window.jQuery);
diff --git a/wookmark.min.js b/wookmark.min.js
index 2124237..7002243 100644
--- a/wookmark.min.js
+++ b/wookmark.min.js
@@ -3,10 +3,10 @@ wookmark plugin
@name wookmark.js
@author Christoph Ono (chri@sto.ph or @gbks)
@author Sebastian Helzle (sebastian@helzle.net or @sebobo)
-@version 2.0.1
-@date 06/16/2015
+@version 2.2.0
+@date 11/24/2019
@category jQuery plugin
-@copyright (c) 2009-2015 Christoph Ono (www.wookmark.com)
+@copyright (c) 2009-2019 Christoph Ono (www.wookmark.com)
@license Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
*/
-!function(a){"function"==typeof define&&define.amd?define(["window","document"],a):a(window,document)}(function(a,b){function c(a,b){return function(){return a.apply(b,arguments)}}function d(a,b){var c;for(c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])}function e(a){v(function(){var b,c;for(b=0;bc;c++)if(a[c]===b)return c;return-1}function t(d,e){e=e||{},"string"==typeof d&&(d=b.querySelector(d)),this.container=d,this.columns=this.containerWidth=this.resizeTimer=null,this.activeItemCount=0,this.placeholders=[],this.itemHeightsInitialized=!1,this.itemHeightsDirty=!1,this.elementTag="div",this.initItems=c(this.initItems,this),this.updateOptions=c(this.updateOptions,this),this.onResize=c(this.onResize,this),this.onRefresh=c(this.onRefresh,this),this.getItemWidth=c(this.getItemWidth,this),this.layout=c(this.layout,this),this.layoutFull=c(this.layoutFull,this),this.layoutColumns=c(this.layoutColumns,this),this.filter=c(this.filter,this),this.clear=c(this.clear,this),this.getActiveItems=c(this.getActiveItems,this),this.refreshPlaceholders=c(this.refreshPlaceholders,this),this.sortElements=c(this.sortElements,this),this.updateFilterClasses=c(this.updateFilterClasses,this),this.initItems(),this.container.style.display="block",this.updateOptions(e),this.updateFilterClasses(),this.autoResize&&h(a,"resize",this.onResize),h(this.container,"refreshWookmark",this.onRefresh)}var u={align:"center",autoResize:!0,comparator:null,direction:void 0,ignoreInactiveItems:!0,inactiveClass:"wookmark-inactive",itemSelector:void 0,itemWidth:0,fillEmptySpace:!1,flexibleWidth:0,offset:5,outerOffset:0,onLayoutChanged:void 0,placeholderClass:"wookmark-placeholder",possibleFilters:[],resizeDelay:50,verticalOffset:void 0},v=a.requestAnimationFrame||function(a){a()};return t.prototype.initItems=function(){if(void 0===this.itemSelector){for(var a,b=[],c=this.container.children,d=c.length;d--;)a=c[d],8!==a.nodeType&&(a.style.display="",p(a,"id",d),b.unshift(a));this.items=b}else this.items=this.container.querySelectorAll(this.itemSelector);this.items.length&&(this.elementTag=this.items[0].tagName),this.itemHeightsDirty=!0},t.prototype.updateFilterClasses=function(){for(var a,b,c,d,e,g=this.items.length,h={},i=this.possibleFilters,j=i.length;g--;)if(c=this.items[g],b=JSON.parse(o(c,"filter-class",!1,"")),b&&"object"==typeof b)for(a=b.length;a--;)d=f(b[a]),h.hasOwnProperty(d)||(h[d]=[]),h[d].push(c);for(;j--;)e=f(i[j]),h.hasOwnProperty(e)||(h[e]=[]);this.filterClasses=h},t.prototype.updateOptions=function(a){var b;this.itemHeightsDirty=!0,a=a||{};for(b in u)u.hasOwnProperty(b)&&(a.hasOwnProperty(b)?this[b]=a[b]:this.hasOwnProperty(b)||(this[b]=u[b]));this.verticalOffset=this.verticalOffset||this.offset,this.layout(!0)},t.prototype.onResize=function(){clearTimeout(this.resizeTimer),this.itemHeightsDirty=0!==this.flexibleWidth,this.resizeTimer=setTimeout(this.layout,this.resizeDelay)},t.prototype.onRefresh=function(){this.itemHeightsDirty=!0,this.layout()},t.prototype.filter=function(a,b,c){var d,e,g,h,i,j=[],k=[];if(a=a||[],b=b||"or",c=c||!1,a.length){for(e=0;e1&&(k=q(k)),!c)for(e=this.items.length;e--;)-1===s(k,this.items[e])&&m(this.items[e],this.inactiveClass)}else k=this.items;if(!c){for(e=k.length;e--;)n(k[e],this.inactiveClass);this.columns=null,this.layout()}return k},t.prototype.refreshPlaceholders=function(a,b){var c,e,f,g,h,i,k,l=j(this.container),m=this.columns.length,n="";if(this.placeholders.length<"+this.elementTag+' class="'+this.placeholderClass+'"/>';this.container.insertAdjacentHTML("beforeend",n),this.placeholders=this.container.querySelectorAll("."+this.placeholderClass)}for(g=this.offset+2*parseInt(r(this.placeholders[0],"border-left-width"),10)||0,g+=2*parseInt(r(this.placeholders[0],"padding-left"),10)||0,c=0;c=m||0===e.length?i.style.display="none":(h=e[e.length-1],k=o(h,"top",!0)+o(h,"height",!0)+this.verticalOffset,f=Math.max(0,l-k-g),d(i,{position:"absolute",display:f>0?"block":"none",left:c*a+b+"px",top:k+"px",width:a-g+"px",height:f+"px"}))},t.prototype.getActiveItems=function(){var a,b,c=this.inactiveClass,d=[],e=this.items;if(this.ignoreInactiveItems)for(a=0;a0&&(void 0===a||0===a&&!this.flexibleWidth)?a=k(this.items[0]):"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(this.itemWidth)/100*b),c){"function"==typeof c&&(c=c()),"string"==typeof c&&c.indexOf("%")>=0&&(c=parseFloat(c)/100*b);var d=b+this.offset,e=Math.floor(.5+d/(c+this.offset)),f=Math.floor(d/(a+this.offset)),g=Math.max(e,f),h=Math.min(c,Math.floor((b-(g-1)*this.offset)/g));a=Math.max(a,h)}return a},t.prototype.layout=function(a,b){if(!i(this.container)){var c,d=this.getItemWidth(),e=d+this.offset,f=k(this.container),g=f-2*this.outerOffset,h=Math.floor((g+this.offset)/e),j=0,l=0,m=this.getActiveItems(),n=m.length,o=n;if(this.itemHeightsDirty||!this.itemHeightsInitialized){for(;o--;)c=m[o],this.flexibleWidth&&(c.style.width=d+"px"),p(c,"height",c.offsetHeight);this.itemHeightsDirty=!1,this.itemHeightsInitialized=!0}h=Math.max(1,Math.min(h,n)),j=this.outerOffset,"center"===this.align&&(j+=Math.floor(.5+(g-(h*e-this.offset))>>1)),this.direction=this.direction||("right"===this.align?"right":"left"),l=a||null===this.columns||this.columns.length!==h||this.activeItemCount!==n?this.layoutFull(e,h,j):this.layoutColumns(e,j),this.activeItemCount=n,this.container.style.height=l+"px",this.fillEmptySpace&&this.refreshPlaceholders(e,j),void 0!==this.onLayoutChanged&&"function"==typeof this.onLayoutChanged&&this.onLayoutChanged(),"function"==typeof b&&b()}},t.prototype.sortElements=function(a){return"function"==typeof this.comparator?a.sort(this.comparator):a},t.prototype.layoutFull=function(a,b,c){var d,f,g,h,i=0,j=0,k=null,l=null,m=[],n=[],q="left"===this.align;for(this.columns=[],f=this.sortElements(this.getActiveItems()),g=f.length;m.lengthj;){for(d=f[j],k=m[0],l=0,i=0;b>i;i++)m[i]0||!q)&&(h+=l*a),n[j]={el:d,css:{position:"absolute",top:k+"px"}},n[j].css[this.direction]=h+"px",m[l]+=o(d,"height",!0)+this.verticalOffset,this.columns[l].push(d),j++}return e(n),Math.max.apply(Math,m)},t.prototype.layoutColumns=function(a,b){for(var c,d,f,g,h=[],i=[],j=0,k=0,l=this.columns.length;l--;){for(c=this.outerOffset,h.push(c),d=this.columns[l],g=l*a+b,j=0;j1)for(;b--;)$(this).eq(b).wookmark(a);else 1===b&&(this.wookmarkInstance?this.wookmarkInstance.updateOptions(a||{}):this.wookmarkInstance=new t(this[0],a||{}));return this}),a.Wookmark=t,t});
\ No newline at end of file
+!function(a){!function(a){"function"==typeof define&&define.amd?define(a):a()}(function(){function b(a,b){return function(){return a.apply(b,arguments)}}function c(a,b){var c;for(c in b)b.hasOwnProperty(c)&&(a.style[c]=b[c])}function d(a,b){u(function(){var d,e;for(d=0;d1&&(k=p(k)),!c)for(f=this.items.length;f--;)-1===r(k,this.items[f])&&l(this.items[f],this.inactiveClass)}else k=this.items;if(!c){for(f=k.length;f--;)m(k[f],this.inactiveClass);this.columns=null,this.layout()}return k},s.prototype.refreshPlaceholders=function(a,b){var d,e,f,g,h,j,k,l=i(this.container),m=this.columns.length,o="";if(this.placeholders.length<"+this.elementTag+' class="'+this.placeholderClass+'"/>';this.container.insertAdjacentHTML("beforeend",o),this.placeholders=this.container.querySelectorAll("."+this.placeholderClass)}for(g=this.offset+2*parseInt(q(this.placeholders[0],"border-left-width"),10)||0,g+=2*parseInt(q(this.placeholders[0],"padding-left"),10)||0,d=0;d=m||0===e.length?j.style.display="none":(h=e[e.length-1],k=n(h,"top",!0)+n(h,"height",!0)+this.verticalOffset,f=Math.max(0,l-k-g),c(j,{position:"absolute",display:f>0?"block":"none",left:d*a+b+"px",top:k+"px",width:a-g+"px",height:f+"px"}))},s.prototype.getActiveItems=function(){var a,b,c=this.inactiveClass,d=[],e=this.items;if(!this.ignoreInactiveItems)return e;for(a=0;a0&&(void 0===a||0===a&&!this.flexibleWidth)?a=j(this.items[0]):"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a)/100*b),c){"function"==typeof c&&(c=c()),"string"==typeof c&&c.indexOf("%")>=0&&(c=parseFloat(c)/100*b);var d=b+this.offset,e=Math.floor(.5+d/(c+this.offset)),f=Math.floor(d/(a+this.offset)),g=Math.max(e,f),h=Math.min(c,Math.floor((b-(g-1)*this.offset)/g));a=Math.max(a,h)}return a},s.prototype.layout=function(a,b){if(a||!h(this.container)){var c,d,e=this.getItemWidth(),f=e+this.offset,g=j(this.container),i=g-2*this.outerOffset,k=Math.floor((i+this.offset)/f),l=0,m=this.getActiveItems(),n=m.length;if(a||this.itemHeightsDirty||!this.itemHeightsInitialized){for(var p=0;p>1)),this.direction=this.direction||("right"===this.align?"right":"left"),l=a||null===this.columns||this.columns.length!==k||this.activeItemCount!==n?this.layoutFull(f,k,c):this.layoutColumns(f,c),this.activeItemCount=n,this.container.style.height=l+"px",this.fillEmptySpace&&this.refreshPlaceholders(f,c),void 0!==this.onLayoutChanged&&"function"==typeof this.onLayoutChanged&&this.onLayoutChanged(),"function"==typeof b&&b()}},s.prototype.sortElements=function(a){return"function"==typeof this.comparator?a.sort(this.comparator):a},s.prototype.layoutFull=function(a,b,c){var e,f,g,h,i=0,j=0,m=null,p=null,q=[],r=[],s="left"===this.align,t=this;for(this.columns=[],f=this.sortElements(this.getActiveItems()),g=f.length;q.length0||!s)&&(h+=p*a),r[j]={el:e,css:{position:"absolute",top:m+"px"}},r[j].css[this.direction]=h+"px",q[p]+=n(e,"height",!0)+this.verticalOffset,this.columns[p].push(e),j++}return d(r,function(){k(t.container,"wookmark-initialised")||l(t.container,"wookmark-initialised")}),Math.max.apply(Math,q)},s.prototype.layoutColumns=function(a,b){for(var c,e,f,g,h=[],i=[],j=0,k=0,l=this.columns.length;l--;){for(c=this.outerOffset,h.push(c),e=this.columns[l],g=l*a+b,j=0;j1)for(;c--;)a(this).eq(c).wookmark(b);else 1===c&&(this.wookmarkInstance?this.wookmarkInstance.updateOptions(b||{}):this.wookmarkInstance=new s(this[0],b||{}));return this}),window.Wookmark=s,s})}(window.jQuery);
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..42d55db
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1583 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+acorn-jsx@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-2.0.1.tgz#0edf9878a5866bca625f52955a1ed9e7d8c5117e"
+ integrity sha1-Dt+YeKWGa8piX1KVWh7Z59jFEX4=
+ dependencies:
+ acorn "^2.0.1"
+
+acorn@^2.0.1:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
+ integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=
+
+acorn@^3.0.4:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+ integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
+
+ajv-keywords@^1.0.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+ integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw=
+
+ajv@^4.7.0:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
+ dependencies:
+ co "^4.6.0"
+ json-stable-stringify "^1.0.1"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+ansi-escapes@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+ integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
+
+ansi-regex@^0.2.0, ansi-regex@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
+ integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-styles@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
+ integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+"argparse@~ 0.1.11":
+ version "0.1.16"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
+ integrity sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=
+ dependencies:
+ underscore "~1.7.0"
+ underscore.string "~2.4.0"
+
+async@0.2.9:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.2.9.tgz#df63060fbf3d33286a76aaf6d55a2986d9ff8619"
+ integrity sha1-32MGD789Myhqdqr21Vophtn/hhk=
+
+async@~0.1.22:
+ version "0.1.22"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
+ integrity sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+browserify-zlib@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
+ integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=
+ dependencies:
+ pako "~0.2.0"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+caller-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
+ dependencies:
+ callsites "^0.2.0"
+
+callsites@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+ integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+ integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chalk@^0.5.0, chalk@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
+ integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=
+ dependencies:
+ ansi-styles "^1.1.0"
+ escape-string-regexp "^1.0.0"
+ has-ansi "^0.1.0"
+ strip-ansi "^0.3.0"
+ supports-color "^0.2.0"
+
+chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+circular-json@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+ integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
+
+cli-cursor@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
+ dependencies:
+ restore-cursor "^1.0.1"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+
+cli@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
+ integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=
+ dependencies:
+ exit "0.1.2"
+ glob "^7.1.1"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+coffee-script@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4"
+ integrity sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=
+
+collections@~0.1.3:
+ version "0.1.24"
+ resolved "https://registry.yarnpkg.com/collections/-/collections-0.1.24.tgz#70f810c35784f3f3edfaa9cf262e64a50d9c908b"
+ integrity sha1-cPgQw1eE8/Pt+qnPJi5kpQ2ckIs=
+ dependencies:
+ weak-map "1.0.0"
+
+colors@~0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
+ integrity sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=
+
+"commander@>= 0.5.2":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c"
+ integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.4.1, concat-stream@^1.4.6:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+console-browserify@1.1.x:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
+ dependencies:
+ date-now "^0.1.4"
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+d@1, d@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
+ integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+ dependencies:
+ es5-ext "^0.10.50"
+ type "^1.0.1"
+
+date-now@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+ integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
+
+dateformat@1.0.2-1.2.3:
+ version "1.0.2-1.2.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9"
+ integrity sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=
+
+debug@^2.1.1:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+docco@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/docco/-/docco-0.8.0.tgz#ec71470fe52808f4dbba4fab71380dcdfe9f5396"
+ integrity sha512-QcWBDnnGaT+rgC0wqynznXv0/4hd6nAFdWNs2fN4FvkH2yAnCYVeRU7GIZXNCeUQ955Lufq+TmZcSXiBa1cGQQ==
+ dependencies:
+ commander ">= 0.5.2"
+ fs-extra ">= 0.6.0"
+ highlight.js ">= 8.0.x"
+ marked ">= 0.2.7"
+ underscore ">= 1.0.0"
+
+docco@~0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/docco/-/docco-0.6.3.tgz#c47b5823d79563d6fc3abd49f3de48986e5522ee"
+ integrity sha1-xHtYI9eVY9b8Or1J895ImG5VIu4=
+ dependencies:
+ commander ">= 0.5.2"
+ fs-extra ">= 0.6.0"
+ highlight.js ">= 8.0.x"
+ marked ">= 0.2.7"
+ underscore ">= 1.0.0"
+
+doctrine@^1.2.1:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+dom-serializer@0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+ integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
+
+domelementtype@1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+ integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+
+domelementtype@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
+ integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+
+domhandler@2.3:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
+ integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg=
+ dependencies:
+ domelementtype "1"
+
+domutils@1.5:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+entities@1.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
+ integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=
+
+entities@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
+ integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
+
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
+ version "0.10.53"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
+ integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
+ dependencies:
+ es6-iterator "~2.0.3"
+ es6-symbol "~3.1.3"
+ next-tick "~1.0.0"
+
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-symbol "3.1.1"
+ event-emitter "~0.3.5"
+
+es6-symbol@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+ integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
+ integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+ dependencies:
+ d "^1.0.1"
+ ext "^1.1.2"
+
+es6-weak-map@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.1"
+
+escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint@~2.7:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.7.0.tgz#b02ac247d13ec45ea5b44a3c383ddb6feda08b00"
+ integrity sha1-sCrCR9E+xF6ltEo8OD3bb+2giwA=
+ dependencies:
+ chalk "^1.1.3"
+ concat-stream "^1.4.6"
+ debug "^2.1.1"
+ doctrine "^1.2.1"
+ es6-map "^0.1.3"
+ escope "^3.6.0"
+ espree "3.1.3"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ file-entry-cache "^1.1.1"
+ glob "^7.0.3"
+ globals "^9.2.0"
+ ignore "^3.0.10"
+ imurmurhash "^0.1.4"
+ inquirer "^0.12.0"
+ is-my-json-valid "^2.10.0"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.5.1"
+ json-stable-stringify "^1.0.0"
+ lodash "^4.0.0"
+ mkdirp "^0.5.0"
+ optionator "^0.8.1"
+ path-is-absolute "^1.0.0"
+ path-is-inside "^1.0.1"
+ pluralize "^1.2.1"
+ progress "^1.1.8"
+ require-uncached "^1.0.2"
+ shelljs "^0.6.0"
+ strip-json-comments "~1.0.1"
+ table "^3.7.8"
+ text-table "~0.2.0"
+ user-home "^2.0.0"
+
+espree@3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.3.tgz#a77ca630986c19b74d95541b845298cd6faa228c"
+ integrity sha1-p3ymMJhsGbdNlVQbhFKYzW+qIow=
+ dependencies:
+ acorn "^3.0.4"
+ acorn-jsx "^2.0.1"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+"esprima@~ 1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad"
+ integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=
+
+esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
+ dependencies:
+ estraverse "^4.1.0"
+
+estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+eventemitter2@~0.4.13:
+ version "0.4.14"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
+ integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=
+
+exit-hook@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+ integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=
+
+exit@0.1.2, exit@0.1.x, exit@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+
+ext@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.2.0.tgz#8dd8d2dd21bcced3045be09621fa0cbf73908ba4"
+ integrity sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA==
+ dependencies:
+ type "^2.0.0"
+
+fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+figures@^1.0.1, figures@^1.3.5:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+file-entry-cache@^1.1.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8"
+ integrity sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=
+ dependencies:
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
+
+findup-sync@~0.1.0, findup-sync@~0.1.2:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683"
+ integrity sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=
+ dependencies:
+ glob "~3.2.9"
+ lodash "~2.4.1"
+
+flat-cache@^1.2.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
+ integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
+ dependencies:
+ circular-json "^0.3.1"
+ graceful-fs "^4.1.2"
+ rimraf "~2.6.2"
+ write "^0.2.1"
+
+"fs-extra@>= 0.6.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+generate-function@^2.0.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
+ integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
+ dependencies:
+ is-property "^1.0.2"
+
+generate-object-property@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
+ dependencies:
+ is-property "^1.0.0"
+
+getobject@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
+ integrity sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=
+
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.3:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@~3.1.21:
+ version "3.1.21"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
+ integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=
+ dependencies:
+ graceful-fs "~1.2.0"
+ inherits "1"
+ minimatch "~0.2.11"
+
+glob@~3.2.9:
+ version "3.2.11"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
+ integrity sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=
+ dependencies:
+ inherits "2"
+ minimatch "0.3"
+
+globals@^9.2.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+ integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
+
+graceful-fs@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.1.tgz#7fd6e0a4837c35d0cc15330294d9584a3898cf84"
+ integrity sha1-f9bgpIN8NdDMFTMClNlYSjiYz4Q=
+
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
+ integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+
+graceful-fs@~1.2.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
+ integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=
+
+grunt-cli@~0.1:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-0.1.13.tgz#e9ebc4047631f5012d922770c39378133cad10f4"
+ integrity sha1-6evEBHYx9QEtkidww5N4EzytEPQ=
+ dependencies:
+ findup-sync "~0.1.0"
+ nopt "~1.0.10"
+ resolve "~0.3.1"
+
+grunt-contrib-jshint@~0.12:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-0.12.0.tgz#f6b2f06fc715264837a7ab6c69a1ce1a689c2c29"
+ integrity sha1-9rLwb8cVJkg3p6tsaaHOGmicLCk=
+ dependencies:
+ hooker "^0.2.3"
+ jshint "~2.9.1"
+
+grunt-contrib-uglify@~0.5:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-0.5.1.tgz#15f0aa5e8e8ba421aea980879ee505bc712b6cde"
+ integrity sha1-FfCqXo6LpCGuqYCHnuUFvHErbN4=
+ dependencies:
+ chalk "^0.5.1"
+ lodash "^2.4.1"
+ maxmin "^0.2.0"
+ uglify-js "^2.4.0"
+
+grunt-docco@~0.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/grunt-docco/-/grunt-docco-0.3.3.tgz#f3cb67906c055fb9b001ecbb598115181fbbc91f"
+ integrity sha1-88tnkGwFX7mwAey7WYEVGB+7yR8=
+ dependencies:
+ docco "~0.6.3"
+
+grunt-gh-pages@~0.10:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/grunt-gh-pages/-/grunt-gh-pages-0.10.0.tgz#69f1fa787f8021b715d20347c5d470a953501910"
+ integrity sha1-afH6eH+AIbcV0gNHxdRwqVNQGRA=
+ dependencies:
+ async "0.2.9"
+ graceful-fs "2.0.1"
+ q "0.9.3"
+ q-io "1.6.5"
+ url-safe "^1.0.0"
+ wrench "1.5.1"
+
+grunt-legacy-log-utils@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz#c0706b9dd9064e116f36f23fe4e6b048672c0f7e"
+ integrity sha1-wHBrndkGThFvNvI/5OawSGcsD34=
+ dependencies:
+ colors "~0.6.2"
+ lodash "~2.4.1"
+ underscore.string "~2.3.3"
+
+grunt-legacy-log@~0.1.0:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz#ec29426e803021af59029f87d2f9cd7335a05531"
+ integrity sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=
+ dependencies:
+ colors "~0.6.2"
+ grunt-legacy-log-utils "~0.1.1"
+ hooker "~0.2.3"
+ lodash "~2.4.1"
+ underscore.string "~2.3.3"
+
+grunt-legacy-util@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz#93324884dbf7e37a9ff7c026dff451d94a9e554b"
+ integrity sha1-kzJIhNv343qf98Am3/RR2UqeVUs=
+ dependencies:
+ async "~0.1.22"
+ exit "~0.1.1"
+ getobject "~0.1.0"
+ hooker "~0.2.3"
+ lodash "~0.9.2"
+ underscore.string "~2.2.1"
+ which "~1.0.5"
+
+grunt@~0.4:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/grunt/-/grunt-0.4.5.tgz#56937cd5194324adff6d207631832a9d6ba4e7f0"
+ integrity sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=
+ dependencies:
+ async "~0.1.22"
+ coffee-script "~1.3.3"
+ colors "~0.6.2"
+ dateformat "1.0.2-1.2.3"
+ eventemitter2 "~0.4.13"
+ exit "~0.1.1"
+ findup-sync "~0.1.2"
+ getobject "~0.1.0"
+ glob "~3.1.21"
+ grunt-legacy-log "~0.1.0"
+ grunt-legacy-util "~0.2.0"
+ hooker "~0.2.3"
+ iconv-lite "~0.2.11"
+ js-yaml "~2.0.5"
+ lodash "~0.9.2"
+ minimatch "~0.2.12"
+ nopt "~1.0.10"
+ rimraf "~2.2.8"
+ underscore.string "~2.2.1"
+ which "~1.0.5"
+
+gzip-size@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-0.2.0.tgz#e3a2a191205fe56ee326f5c271435dfaecfb3e1c"
+ integrity sha1-46KhkSBf5W7jJvXCcUNd+uz7Phw=
+ dependencies:
+ browserify-zlib "^0.1.4"
+ concat-stream "^1.4.1"
+
+has-ansi@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
+ integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=
+ dependencies:
+ ansi-regex "^0.2.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+"highlight.js@>= 8.0.x":
+ version "9.16.2"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.16.2.tgz#68368d039ffe1c6211bcc07e483daf95de3e403e"
+ integrity sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw==
+
+hooker@^0.2.3, hooker@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
+ integrity sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=
+
+htmlparser2@3.8.x:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
+ integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg=
+ dependencies:
+ domelementtype "1"
+ domhandler "2.3"
+ domutils "1.5"
+ entities "1.0"
+ readable-stream "1.1"
+
+iconv-lite@~0.2.11:
+ version "0.2.11"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
+ integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
+
+ignore@^3.0.10:
+ version "3.3.10"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
+ integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=
+
+inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inquirer@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+ integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=
+ dependencies:
+ ansi-escapes "^1.1.0"
+ ansi-regex "^2.0.0"
+ chalk "^1.0.0"
+ cli-cursor "^1.0.1"
+ cli-width "^2.0.0"
+ figures "^1.3.5"
+ lodash "^4.3.0"
+ readline2 "^1.0.1"
+ run-async "^0.1.0"
+ rx-lite "^3.1.2"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.0"
+ through "^2.3.6"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-my-ip-valid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
+ integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==
+
+is-my-json-valid@^2.10.0:
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a"
+ integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==
+ dependencies:
+ generate-function "^2.0.0"
+ generate-object-property "^1.1.0"
+ is-my-ip-valid "^1.0.0"
+ jsonpointer "^4.0.0"
+ xtend "^4.0.0"
+
+is-property@^1.0.0, is-property@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+ integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+js-yaml@^3.5.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js-yaml@~2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-2.0.5.tgz#a25ae6509999e97df278c6719da11bd0687743a8"
+ integrity sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=
+ dependencies:
+ argparse "~ 0.1.11"
+ esprima "~ 1.0.2"
+
+jshint@~2.9.1:
+ version "2.9.7"
+ resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.7.tgz#038a3fa5c328fa3ab03ddfd85df88d3d87bedcbd"
+ integrity sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==
+ dependencies:
+ cli "~1.0.0"
+ console-browserify "1.1.x"
+ exit "0.1.x"
+ htmlparser2 "3.8.x"
+ lodash "~4.17.10"
+ minimatch "~3.0.2"
+ shelljs "0.3.x"
+ strip-json-comments "1.0.x"
+
+json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
+ dependencies:
+ jsonify "~0.0.0"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+
+jsonpointer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+ integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
+
+kind-of@^3.0.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+ integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lodash@^2.4.1, lodash@~2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
+ integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=
+
+lodash@^4.0.0, lodash@^4.3.0, lodash@~4.17.10:
+ version "4.17.15"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+
+lodash@~0.9.2:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-0.9.2.tgz#8f3499c5245d346d682e5b0d3b40767e09f1a92c"
+ integrity sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+ integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
+
+lru-cache@2:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
+ integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=
+
+"marked@>= 0.2.7":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e"
+ integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==
+
+maxmin@^0.2.0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-0.2.2.tgz#a36ced8cc22e3abcd108cfb797a3a4b40275593f"
+ integrity sha1-o2ztjMIuOrzRCM+3l6OktAJ1WT8=
+ dependencies:
+ chalk "^0.5.0"
+ figures "^1.0.1"
+ gzip-size "^0.2.0"
+ pretty-bytes "^0.1.0"
+
+mime@~1.2:
+ version "1.2.11"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
+ integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=
+
+mimeparse@~0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/mimeparse/-/mimeparse-0.1.4.tgz#dafb02752370fd226093ae3152c271af01ac254a"
+ integrity sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=
+
+minimatch@0.3:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
+ integrity sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=
+ dependencies:
+ lru-cache "2"
+ sigmund "~1.0.0"
+
+minimatch@^3.0.4, minimatch@~3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@~0.2.11, minimatch@~0.2.12:
+ version "0.2.14"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
+ integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=
+ dependencies:
+ lru-cache "2"
+ sigmund "~1.0.0"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
+
+mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ dependencies:
+ minimist "0.0.8"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+mute-stream@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+ integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=
+
+next-tick@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+ integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
+
+nopt@~1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+ integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
+ dependencies:
+ abbrev "1"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+onetime@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+ integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
+
+pako@~0.2.0:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+ integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-is-inside@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
+
+pluralize@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+ integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+pretty-bytes@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-0.1.2.tgz#cd90294d58a1ca4e8a5d0fb9c8225998881acf00"
+ integrity sha1-zZApTVihyk6KXQ+5yCJZmIgazwA=
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+progress@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+ integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
+
+q-io@1.6.5:
+ version "1.6.5"
+ resolved "https://registry.yarnpkg.com/q-io/-/q-io-1.6.5.tgz#335bb9b93cf7fc9337c0ec15fa2d21a65860195a"
+ integrity sha1-M1u5uTz3/JM3wOwV+i0hplhgGVo=
+ dependencies:
+ collections "~0.1.3"
+ mime "~1.2"
+ mimeparse "~0.1.4"
+ q "~0.9.1"
+ qs "~0.1.0"
+ url2 "~0.0.0"
+
+q@0.9.3:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/q/-/q-0.9.3.tgz#404eabbad0d031ed35fcb53f7c5bc06283b4e74c"
+ integrity sha1-QE6rutDQMe01/LU/fFvAYoO050w=
+
+q@~0.9.1:
+ version "0.9.7"
+ resolved "https://registry.yarnpkg.com/q/-/q-0.9.7.tgz#4de2e6cb3b29088c9e4cbc03bf9d42fb96ce2f75"
+ integrity sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=
+
+qs@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-0.1.0.tgz#9a0d2d70d01f63d3401ea4b050822601b462ee6b"
+ integrity sha1-mg0tcNAfY9NAHqSwUIImAbRi7ms=
+
+readable-stream@1.1:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
+ integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+readable-stream@^2.2.2:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readline2@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
+ integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ mute-stream "0.0.5"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+require-uncached@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
+ dependencies:
+ caller-path "^0.1.0"
+ resolve-from "^1.0.0"
+
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+ integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
+
+resolve@~0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4"
+ integrity sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=
+
+restore-cursor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=
+ dependencies:
+ exit-hook "^1.0.0"
+ onetime "^1.0.0"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@~2.2.8:
+ version "2.2.8"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
+ integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
+
+rimraf@~2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
+run-async@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+ integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=
+ dependencies:
+ once "^1.3.0"
+
+rx-lite@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+ integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+shelljs@0.3.x:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
+ integrity sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=
+
+shelljs@^0.6.0:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8"
+ integrity sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=
+
+sigmund@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
+ integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
+
+slice-ansi@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+ integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+
+source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
+ integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=
+ dependencies:
+ ansi-regex "^0.2.1"
+
+strip-ansi@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-json-comments@1.0.x, strip-json-comments@~1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
+ integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
+
+supports-color@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
+ integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+table@^3.7.8:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+ integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=
+ dependencies:
+ ajv "^4.7.0"
+ ajv-keywords "^1.0.0"
+ chalk "^1.1.1"
+ lodash "^4.0.0"
+ slice-ansi "0.0.4"
+ string-width "^2.0.0"
+
+text-table@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
+ integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
+
+type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
+ integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+uglify-js@^2.4.0:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+ integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
+
+underscore.string@~2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19"
+ integrity sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=
+
+underscore.string@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d"
+ integrity sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=
+
+underscore.string@~2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
+ integrity sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=
+
+"underscore@>= 1.0.0":
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
+ integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
+
+underscore@~1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
+ integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+url-safe@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/url-safe/-/url-safe-1.0.1.tgz#2d251a4b4d3111dca94f36446e63a994b4d28786"
+ integrity sha1-LSUaS00xEdypTzZEbmOplLTSh4Y=
+
+url2@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/url2/-/url2-0.0.0.tgz#4eaabd1d5c3ac90d62ab4485c998422865a04b1a"
+ integrity sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=
+
+user-home@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
+ integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8=
+ dependencies:
+ os-homedir "^1.0.0"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+weak-map@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37"
+ integrity sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=
+
+which@~1.0.5:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f"
+ integrity sha1-RgwdoPgQED0DIam2M6+eV15kSG8=
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+ integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
+
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+ integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+wrench@1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/wrench/-/wrench-1.5.1.tgz#3f7a519b0e409338723bb039b209a541176baa42"
+ integrity sha1-P3pRmw5AkzhyO7A5sgmlQRdrqkI=
+
+write@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
+ dependencies:
+ mkdirp "^0.5.1"
+
+xtend@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"