From 37586ac361688e63f84d81a094b6232866bb06ba Mon Sep 17 00:00:00 2001 From: Carlos Garcia Date: Tue, 4 Feb 2020 09:38:22 +0000 Subject: [PATCH] Included dist in the repo so we can refer to the package via git --- .gitignore | 2 +- dist/Autowhatever.js | 441 ++++ dist/Item.js | 139 ++ dist/ItemsList.js | 129 ++ dist/SectionTitle.js | 75 + dist/compareObjects.js | 62 + dist/index.js | 3 + dist/standalone/autowhatever.js | 2224 +++++++++++++++++++ dist/standalone/autowhatever.min.js | 1 + package-lock.json | 3063 +++++++++++++++++++++++---- 10 files changed, 5736 insertions(+), 403 deletions(-) create mode 100644 dist/Autowhatever.js create mode 100644 dist/Item.js create mode 100644 dist/ItemsList.js create mode 100644 dist/SectionTitle.js create mode 100644 dist/compareObjects.js create mode 100644 dist/index.js create mode 100644 dist/standalone/autowhatever.js create mode 100644 dist/standalone/autowhatever.min.js diff --git a/.gitignore b/.gitignore index eed51fd..074ed59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ node_modules -dist +!dist demo/dist npm-debug.log yarn.lock diff --git a/dist/Autowhatever.js b/dist/Autowhatever.js new file mode 100644 index 0000000..f1258e0 --- /dev/null +++ b/dist/Autowhatever.js @@ -0,0 +1,441 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _sectionIterator = require('section-iterator'); + +var _sectionIterator2 = _interopRequireDefault(_sectionIterator); + +var _reactThemeable = require('react-themeable'); + +var _reactThemeable2 = _interopRequireDefault(_reactThemeable); + +var _SectionTitle = require('./SectionTitle'); + +var _SectionTitle2 = _interopRequireDefault(_SectionTitle); + +var _ItemsList = require('./ItemsList'); + +var _ItemsList2 = _interopRequireDefault(_ItemsList); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var emptyObject = {}; +var defaultRenderInputComponent = function defaultRenderInputComponent(props) { + return _react2.default.createElement('input', props); +}; +var defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) { + var containerProps = _ref.containerProps, + children = _ref.children; + return _react2.default.createElement( + 'div', + containerProps, + children + ); +}; +var defaultTheme = { + container: 'react-autowhatever__container', + containerOpen: 'react-autowhatever__container--open', + input: 'react-autowhatever__input', + inputOpen: 'react-autowhatever__input--open', + inputFocused: 'react-autowhatever__input--focused', + itemsContainer: 'react-autowhatever__items-container', + itemsContainerOpen: 'react-autowhatever__items-container--open', + itemsList: 'react-autowhatever__items-list', + item: 'react-autowhatever__item', + itemFirst: 'react-autowhatever__item--first', + itemHighlighted: 'react-autowhatever__item--highlighted', + sectionContainer: 'react-autowhatever__section-container', + sectionContainerFirst: 'react-autowhatever__section-container--first', + sectionTitle: 'react-autowhatever__section-title' +}; + +var Autowhatever = function (_Component) { + _inherits(Autowhatever, _Component); + + function Autowhatever(props) { + _classCallCheck(this, Autowhatever); + + var _this = _possibleConstructorReturn(this, (Autowhatever.__proto__ || Object.getPrototypeOf(Autowhatever)).call(this, props)); + + _this.storeInputReference = function (input) { + if (input !== null) { + _this.input = input; + } + }; + + _this.storeItemsContainerReference = function (itemsContainer) { + if (itemsContainer !== null) { + _this.itemsContainer = itemsContainer; + } + }; + + _this.onHighlightedItemChange = function (highlightedItem) { + _this.highlightedItem = highlightedItem; + }; + + _this.getItemId = function (sectionIndex, itemIndex) { + if (itemIndex === null) { + return null; + } + + var id = _this.props.id; + + var section = sectionIndex === null ? '' : 'section-' + sectionIndex; + + return 'react-autowhatever-' + id + '-' + section + '-item-' + itemIndex; + }; + + _this.onFocus = function (event) { + var inputProps = _this.props.inputProps; + + + _this.setState({ + isInputFocused: true + }); + + inputProps.onFocus && inputProps.onFocus(event); + }; + + _this.onBlur = function (event) { + var inputProps = _this.props.inputProps; + + + _this.setState({ + isInputFocused: false + }); + + inputProps.onBlur && inputProps.onBlur(event); + }; + + _this.onKeyDown = function (event) { + var _this$props = _this.props, + inputProps = _this$props.inputProps, + highlightedSectionIndex = _this$props.highlightedSectionIndex, + highlightedItemIndex = _this$props.highlightedItemIndex; + + + switch (event.key) { + case 'ArrowDown': + case 'ArrowUp': + { + var nextPrev = event.key === 'ArrowDown' ? 'next' : 'prev'; + + var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]), + _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2), + newHighlightedSectionIndex = _this$sectionIterator2[0], + newHighlightedItemIndex = _this$sectionIterator2[1]; + + inputProps.onKeyDown(event, { newHighlightedSectionIndex: newHighlightedSectionIndex, newHighlightedItemIndex: newHighlightedItemIndex }); + break; + } + + default: + inputProps.onKeyDown(event, { highlightedSectionIndex: highlightedSectionIndex, highlightedItemIndex: highlightedItemIndex }); + } + }; + + _this.highlightedItem = null; + + _this.state = { + isInputFocused: false + }; + + _this.setSectionsItems(props); + _this.setSectionIterator(props); + _this.setTheme(props); + return _this; + } + + _createClass(Autowhatever, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.ensureHighlightedItemIsVisible(); + } + + // eslint-disable-next-line camelcase, react/sort-comp + + }, { + key: 'UNSAFE_componentWillReceiveProps', + value: function UNSAFE_componentWillReceiveProps(nextProps) { + if (nextProps.items !== this.props.items) { + this.setSectionsItems(nextProps); + } + + if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) { + this.setSectionIterator(nextProps); + } + + if (nextProps.theme !== this.props.theme) { + this.setTheme(nextProps); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.ensureHighlightedItemIsVisible(); + } + }, { + key: 'setSectionsItems', + value: function setSectionsItems(props) { + if (props.multiSection) { + this.sectionsItems = props.items.map(function (section) { + return props.getSectionItems(section); + }); + this.sectionsLengths = this.sectionsItems.map(function (items) { + return items.length; + }); + this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) { + return itemsCount === 0; + }); + } + } + }, { + key: 'setSectionIterator', + value: function setSectionIterator(props) { + this.sectionIterator = (0, _sectionIterator2.default)({ + multiSection: props.multiSection, + data: props.multiSection ? this.sectionsLengths : props.items.length + }); + } + }, { + key: 'setTheme', + value: function setTheme(props) { + this.theme = (0, _reactThemeable2.default)(props.theme); + } + }, { + key: 'renderSections', + value: function renderSections() { + var _this2 = this; + + if (this.allSectionsAreEmpty) { + return null; + } + + var theme = this.theme; + var _props = this.props, + id = _props.id, + items = _props.items, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + renderSectionTitle = _props.renderSectionTitle, + highlightedSectionIndex = _props.highlightedSectionIndex, + highlightedItemIndex = _props.highlightedItemIndex, + itemProps = _props.itemProps; + + + return items.map(function (section, sectionIndex) { + var keyPrefix = 'react-autowhatever-' + id + '-'; + var sectionKeyPrefix = keyPrefix + 'section-' + sectionIndex + '-'; + var isFirstSection = sectionIndex === 0; + + // `key` is provided by theme() + /* eslint-disable react/jsx-key */ + return _react2.default.createElement( + 'div', + theme(sectionKeyPrefix + 'container', 'sectionContainer', isFirstSection && 'sectionContainerFirst'), + _react2.default.createElement(_SectionTitle2.default, { + section: section, + renderSectionTitle: renderSectionTitle, + theme: theme, + sectionKeyPrefix: sectionKeyPrefix + }), + _react2.default.createElement(_ItemsList2.default, { + items: _this2.sectionsItems[sectionIndex], + itemProps: itemProps, + renderItem: renderItem, + renderItemData: renderItemData, + sectionIndex: sectionIndex, + highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null, + onHighlightedItemChange: _this2.onHighlightedItemChange, + getItemId: _this2.getItemId, + theme: theme, + keyPrefix: keyPrefix, + ref: _this2.storeItemsListReference + }) + ); + /* eslint-enable react/jsx-key */ + }); + } + }, { + key: 'renderItems', + value: function renderItems() { + var items = this.props.items; + + + if (items.length === 0) { + return null; + } + + var theme = this.theme; + var _props2 = this.props, + id = _props2.id, + renderItem = _props2.renderItem, + renderItemData = _props2.renderItemData, + highlightedSectionIndex = _props2.highlightedSectionIndex, + highlightedItemIndex = _props2.highlightedItemIndex, + itemProps = _props2.itemProps; + + + return _react2.default.createElement(_ItemsList2.default, { + items: items, + itemProps: itemProps, + renderItem: renderItem, + renderItemData: renderItemData, + highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null, + onHighlightedItemChange: this.onHighlightedItemChange, + getItemId: this.getItemId, + theme: theme, + keyPrefix: 'react-autowhatever-' + id + '-' + }); + } + }, { + key: 'ensureHighlightedItemIsVisible', + value: function ensureHighlightedItemIsVisible() { + var highlightedItem = this.highlightedItem; + + + if (!highlightedItem) { + return; + } + + var itemsContainer = this.itemsContainer; + + var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop; + + var scrollTop = itemsContainer.scrollTop; // Top of the visible area + + if (itemOffsetRelativeToContainer < scrollTop) { + // Item is off the top of the visible area + scrollTop = itemOffsetRelativeToContainer; + } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) { + // Item is off the bottom of the visible area + scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight; + } + + if (scrollTop !== itemsContainer.scrollTop) { + itemsContainer.scrollTop = scrollTop; + } + } + }, { + key: 'render', + value: function render() { + var theme = this.theme; + var _props3 = this.props, + id = _props3.id, + multiSection = _props3.multiSection, + renderInputComponent = _props3.renderInputComponent, + renderItemsContainer = _props3.renderItemsContainer, + highlightedSectionIndex = _props3.highlightedSectionIndex, + highlightedItemIndex = _props3.highlightedItemIndex; + var isInputFocused = this.state.isInputFocused; + + var renderedItems = multiSection ? this.renderSections() : this.renderItems(); + var isOpen = renderedItems !== null; + var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex); + var itemsContainerId = 'react-autowhatever-' + id; + var containerProps = _extends({ + role: 'combobox', + 'aria-haspopup': 'listbox', + 'aria-owns': itemsContainerId, + 'aria-expanded': isOpen + }, theme('react-autowhatever-' + id + '-container', 'container', isOpen && 'containerOpen'), this.props.containerProps); + var inputComponent = renderInputComponent(_extends({ + type: 'text', + value: '', + autoComplete: 'off', + 'aria-autocomplete': 'list', + 'aria-controls': itemsContainerId, + 'aria-activedescendant': ariaActivedescendant + }, theme('react-autowhatever-' + id + '-input', 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), this.props.inputProps, { + onFocus: this.onFocus, + onBlur: this.onBlur, + onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown, + ref: this.storeInputReference + })); + var itemsContainer = renderItemsContainer({ + containerProps: _extends({ + id: itemsContainerId, + role: 'listbox' + }, theme('react-autowhatever-' + id + '-items-container', 'itemsContainer', isOpen && 'itemsContainerOpen'), { + ref: this.storeItemsContainerReference + }), + children: renderedItems + }); + + return _react2.default.createElement( + 'div', + containerProps, + inputComponent, + itemsContainer + ); + } + }]); + + return Autowhatever; +}(_react.Component); + +Autowhatever.propTypes = { + id: _propTypes2.default.string, // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids. + multiSection: _propTypes2.default.bool, // Indicates whether a multi section layout should be rendered. + renderInputComponent: _propTypes2.default.func, // When specified, it is used to render the input element. + renderItemsContainer: _propTypes2.default.func, // Renders the items container. + items: _propTypes2.default.array.isRequired, // Array of items or sections to render. + renderItem: _propTypes2.default.func, // This function renders a single item. + renderItemData: _propTypes2.default.object, // Arbitrary data that will be passed to renderItem() + renderSectionTitle: _propTypes2.default.func, // This function gets a section and renders its title. + getSectionItems: _propTypes2.default.func, // This function gets a section and returns its items, which will be passed into `renderItem` for rendering. + containerProps: _propTypes2.default.object, // Arbitrary container props + inputProps: _propTypes2.default.object, // Arbitrary input props + itemProps: _propTypes2.default.oneOfType([// Arbitrary item props + _propTypes2.default.object, _propTypes2.default.func]), + highlightedSectionIndex: _propTypes2.default.number, // Section index of the highlighted item + highlightedItemIndex: _propTypes2.default.number, // Highlighted item index (within a section) + theme: _propTypes2.default.oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable + _propTypes2.default.object, _propTypes2.default.array]) +}; +Autowhatever.defaultProps = { + id: '1', + multiSection: false, + renderInputComponent: defaultRenderInputComponent, + renderItemsContainer: defaultRenderItemsContainer, + renderItem: function renderItem() { + throw new Error('`renderItem` must be provided'); + }, + renderItemData: emptyObject, + renderSectionTitle: function renderSectionTitle() { + throw new Error('`renderSectionTitle` must be provided'); + }, + getSectionItems: function getSectionItems() { + throw new Error('`getSectionItems` must be provided'); + }, + containerProps: emptyObject, + inputProps: emptyObject, + itemProps: emptyObject, + highlightedSectionIndex: null, + highlightedItemIndex: null, + theme: defaultTheme +}; +exports.default = Autowhatever; \ No newline at end of file diff --git a/dist/Item.js b/dist/Item.js new file mode 100644 index 0000000..21266fc --- /dev/null +++ b/dist/Item.js @@ -0,0 +1,139 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _compareObjects = require('./compareObjects'); + +var _compareObjects2 = _interopRequireDefault(_compareObjects); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Item = function (_Component) { + _inherits(Item, _Component); + + function Item() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Item); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Item.__proto__ || Object.getPrototypeOf(Item)).call.apply(_ref, [this].concat(args))), _this), _this.storeItemReference = function (item) { + if (item !== null) { + _this.item = item; + } + }, _this.onMouseEnter = function (event) { + var _this$props = _this.props, + sectionIndex = _this$props.sectionIndex, + itemIndex = _this$props.itemIndex; + + + _this.props.onMouseEnter(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onMouseLeave = function (event) { + var _this$props2 = _this.props, + sectionIndex = _this$props2.sectionIndex, + itemIndex = _this$props2.itemIndex; + + + _this.props.onMouseLeave(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onMouseDown = function (event) { + var _this$props3 = _this.props, + sectionIndex = _this$props3.sectionIndex, + itemIndex = _this$props3.itemIndex; + + + _this.props.onMouseDown(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onClick = function (event) { + var _this$props4 = _this.props, + sectionIndex = _this$props4.sectionIndex, + itemIndex = _this$props4.itemIndex; + + + _this.props.onClick(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Item, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props, ['renderItemData']); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + isHighlighted = _props.isHighlighted, + item = _props.item, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + restProps = _objectWithoutProperties(_props, ['isHighlighted', 'item', 'renderItem', 'renderItemData']); + + delete restProps.sectionIndex; + delete restProps.itemIndex; + + if (typeof restProps.onMouseEnter === 'function') { + restProps.onMouseEnter = this.onMouseEnter; + } + + if (typeof restProps.onMouseLeave === 'function') { + restProps.onMouseLeave = this.onMouseLeave; + } + + if (typeof restProps.onMouseDown === 'function') { + restProps.onMouseDown = this.onMouseDown; + } + + if (typeof restProps.onClick === 'function') { + restProps.onClick = this.onClick; + } + + return _react2.default.createElement( + 'li', + _extends({ role: 'option' }, restProps, { ref: this.storeItemReference }), + renderItem(item, _extends({ isHighlighted: isHighlighted }, renderItemData)) + ); + } + }]); + + return Item; +}(_react.Component); + +Item.propTypes = { + sectionIndex: _propTypes2.default.number, + isHighlighted: _propTypes2.default.bool.isRequired, + itemIndex: _propTypes2.default.number.isRequired, + item: _propTypes2.default.any.isRequired, + renderItem: _propTypes2.default.func.isRequired, + renderItemData: _propTypes2.default.object.isRequired, + onMouseEnter: _propTypes2.default.func, + onMouseLeave: _propTypes2.default.func, + onMouseDown: _propTypes2.default.func, + onClick: _propTypes2.default.func +}; +exports.default = Item; \ No newline at end of file diff --git a/dist/ItemsList.js b/dist/ItemsList.js new file mode 100644 index 0000000..1815eee --- /dev/null +++ b/dist/ItemsList.js @@ -0,0 +1,129 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _Item = require('./Item'); + +var _Item2 = _interopRequireDefault(_Item); + +var _compareObjects = require('./compareObjects'); + +var _compareObjects2 = _interopRequireDefault(_compareObjects); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ItemsList = function (_Component) { + _inherits(ItemsList, _Component); + + function ItemsList() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, ItemsList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ItemsList.__proto__ || Object.getPrototypeOf(ItemsList)).call.apply(_ref, [this].concat(args))), _this), _this.storeHighlightedItemReference = function (highlightedItem) { + _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(ItemsList, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props, ['itemProps']); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + items = _props.items, + itemProps = _props.itemProps, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + sectionIndex = _props.sectionIndex, + highlightedItemIndex = _props.highlightedItemIndex, + getItemId = _props.getItemId, + theme = _props.theme, + keyPrefix = _props.keyPrefix; + + var sectionPrefix = sectionIndex === null ? keyPrefix : keyPrefix + 'section-' + sectionIndex + '-'; + var isItemPropsFunction = typeof itemProps === 'function'; + + return _react2.default.createElement( + 'ul', + _extends({ role: 'listbox' }, theme(sectionPrefix + 'items-list', 'itemsList')), + items.map(function (item, itemIndex) { + var isFirst = itemIndex === 0; + var isHighlighted = itemIndex === highlightedItemIndex; + var itemKey = sectionPrefix + 'item-' + itemIndex; + var itemPropsObj = isItemPropsFunction ? itemProps({ sectionIndex: sectionIndex, itemIndex: itemIndex }) : itemProps; + var allItemProps = _extends({ + id: getItemId(sectionIndex, itemIndex), + 'aria-selected': isHighlighted + }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), itemPropsObj); + + if (isHighlighted) { + allItemProps.ref = _this2.storeHighlightedItemReference; + } + + // `key` is provided by theme() + /* eslint-disable react/jsx-key */ + return _react2.default.createElement(_Item2.default, _extends({}, allItemProps, { + sectionIndex: sectionIndex, + isHighlighted: isHighlighted, + itemIndex: itemIndex, + item: item, + renderItem: renderItem, + renderItemData: renderItemData + })); + /* eslint-enable react/jsx-key */ + }) + ); + } + }]); + + return ItemsList; +}(_react.Component); + +ItemsList.propTypes = { + items: _propTypes2.default.array.isRequired, + itemProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + renderItem: _propTypes2.default.func.isRequired, + renderItemData: _propTypes2.default.object.isRequired, + sectionIndex: _propTypes2.default.number, + highlightedItemIndex: _propTypes2.default.number, + onHighlightedItemChange: _propTypes2.default.func.isRequired, + getItemId: _propTypes2.default.func.isRequired, + theme: _propTypes2.default.func.isRequired, + keyPrefix: _propTypes2.default.string.isRequired +}; +ItemsList.defaultProps = { + sectionIndex: null +}; +exports.default = ItemsList; \ No newline at end of file diff --git a/dist/SectionTitle.js b/dist/SectionTitle.js new file mode 100644 index 0000000..f83309b --- /dev/null +++ b/dist/SectionTitle.js @@ -0,0 +1,75 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _compareObjects = require('./compareObjects'); + +var _compareObjects2 = _interopRequireDefault(_compareObjects); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SectionTitle = function (_Component) { + _inherits(SectionTitle, _Component); + + function SectionTitle() { + _classCallCheck(this, SectionTitle); + + return _possibleConstructorReturn(this, (SectionTitle.__proto__ || Object.getPrototypeOf(SectionTitle)).apply(this, arguments)); + } + + _createClass(SectionTitle, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + section = _props.section, + renderSectionTitle = _props.renderSectionTitle, + theme = _props.theme, + sectionKeyPrefix = _props.sectionKeyPrefix; + + var sectionTitle = renderSectionTitle(section); + + if (!sectionTitle) { + return null; + } + + return _react2.default.createElement( + 'div', + theme(sectionKeyPrefix + 'title', 'sectionTitle'), + sectionTitle + ); + } + }]); + + return SectionTitle; +}(_react.Component); + +SectionTitle.propTypes = { + section: _propTypes2.default.any.isRequired, + renderSectionTitle: _propTypes2.default.func.isRequired, + theme: _propTypes2.default.func.isRequired, + sectionKeyPrefix: _propTypes2.default.string.isRequired +}; +exports.default = SectionTitle; \ No newline at end of file diff --git a/dist/compareObjects.js b/dist/compareObjects.js new file mode 100644 index 0000000..9c29706 --- /dev/null +++ b/dist/compareObjects.js @@ -0,0 +1,62 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.default = compareObjects; +function compareObjects(objA, objB) { + var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + + if (objA === objB) { + return false; + } + + var aKeys = Object.keys(objA); + var bKeys = Object.keys(objB); + + if (aKeys.length !== bKeys.length) { + return true; + } + + var keysMap = {}; + var i = void 0, + len = void 0; + + for (i = 0, len = keys.length; i < len; i++) { + keysMap[keys[i]] = true; + } + + for (i = 0, len = aKeys.length; i < len; i++) { + var key = aKeys[i]; + var aValue = objA[key]; + var bValue = objB[key]; + + if (aValue === bValue) { + continue; + } + + if (!keysMap[key] || aValue === null || bValue === null || (typeof aValue === 'undefined' ? 'undefined' : _typeof(aValue)) !== 'object' || (typeof bValue === 'undefined' ? 'undefined' : _typeof(bValue)) !== 'object') { + return true; + } + + var aValueKeys = Object.keys(aValue); + var bValueKeys = Object.keys(bValue); + + if (aValueKeys.length !== bValueKeys.length) { + return true; + } + + for (var n = 0, length = aValueKeys.length; n < length; n++) { + var aValueKey = aValueKeys[n]; + + if (aValue[aValueKey] !== bValue[aValueKey]) { + return true; + } + } + } + + return false; +} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..843618c --- /dev/null +++ b/dist/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./Autowhatever').default; \ No newline at end of file diff --git a/dist/standalone/autowhatever.js b/dist/standalone/autowhatever.js new file mode 100644 index 0000000..b77c814 --- /dev/null +++ b/dist/standalone/autowhatever.js @@ -0,0 +1,2224 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("React")); + else if(typeof define === 'function' && define.amd) + define(["React"], factory); + else if(typeof exports === 'object') + exports["Autowhatever"] = factory(require("React")); + else + root["Autowhatever"] = factory(root["React"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + module.exports = __webpack_require__(1).default; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _sectionIterator = __webpack_require__(12); + + var _sectionIterator2 = _interopRequireDefault(_sectionIterator); + + var _reactThemeable = __webpack_require__(13); + + var _reactThemeable2 = _interopRequireDefault(_reactThemeable); + + var _SectionTitle = __webpack_require__(15); + + var _SectionTitle2 = _interopRequireDefault(_SectionTitle); + + var _ItemsList = __webpack_require__(17); + + var _ItemsList2 = _interopRequireDefault(_ItemsList); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var emptyObject = {}; + var defaultRenderInputComponent = function defaultRenderInputComponent(props) { + return _react2.default.createElement('input', props); + }; + var defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) { + var containerProps = _ref.containerProps, + children = _ref.children; + return _react2.default.createElement( + 'div', + containerProps, + children + ); + }; + var defaultTheme = { + container: 'react-autowhatever__container', + containerOpen: 'react-autowhatever__container--open', + input: 'react-autowhatever__input', + inputOpen: 'react-autowhatever__input--open', + inputFocused: 'react-autowhatever__input--focused', + itemsContainer: 'react-autowhatever__items-container', + itemsContainerOpen: 'react-autowhatever__items-container--open', + itemsList: 'react-autowhatever__items-list', + item: 'react-autowhatever__item', + itemFirst: 'react-autowhatever__item--first', + itemHighlighted: 'react-autowhatever__item--highlighted', + sectionContainer: 'react-autowhatever__section-container', + sectionContainerFirst: 'react-autowhatever__section-container--first', + sectionTitle: 'react-autowhatever__section-title' + }; + + var Autowhatever = function (_Component) { + _inherits(Autowhatever, _Component); + + function Autowhatever(props) { + _classCallCheck(this, Autowhatever); + + var _this = _possibleConstructorReturn(this, (Autowhatever.__proto__ || Object.getPrototypeOf(Autowhatever)).call(this, props)); + + _this.storeInputReference = function (input) { + if (input !== null) { + _this.input = input; + } + }; + + _this.storeItemsContainerReference = function (itemsContainer) { + if (itemsContainer !== null) { + _this.itemsContainer = itemsContainer; + } + }; + + _this.onHighlightedItemChange = function (highlightedItem) { + _this.highlightedItem = highlightedItem; + }; + + _this.getItemId = function (sectionIndex, itemIndex) { + if (itemIndex === null) { + return null; + } + + var id = _this.props.id; + + var section = sectionIndex === null ? '' : 'section-' + sectionIndex; + + return 'react-autowhatever-' + id + '-' + section + '-item-' + itemIndex; + }; + + _this.onFocus = function (event) { + var inputProps = _this.props.inputProps; + + + _this.setState({ + isInputFocused: true + }); + + inputProps.onFocus && inputProps.onFocus(event); + }; + + _this.onBlur = function (event) { + var inputProps = _this.props.inputProps; + + + _this.setState({ + isInputFocused: false + }); + + inputProps.onBlur && inputProps.onBlur(event); + }; + + _this.onKeyDown = function (event) { + var _this$props = _this.props, + inputProps = _this$props.inputProps, + highlightedSectionIndex = _this$props.highlightedSectionIndex, + highlightedItemIndex = _this$props.highlightedItemIndex; + + + switch (event.key) { + case 'ArrowDown': + case 'ArrowUp': + { + var nextPrev = event.key === 'ArrowDown' ? 'next' : 'prev'; + + var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]), + _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2), + newHighlightedSectionIndex = _this$sectionIterator2[0], + newHighlightedItemIndex = _this$sectionIterator2[1]; + + inputProps.onKeyDown(event, { newHighlightedSectionIndex: newHighlightedSectionIndex, newHighlightedItemIndex: newHighlightedItemIndex }); + break; + } + + default: + inputProps.onKeyDown(event, { highlightedSectionIndex: highlightedSectionIndex, highlightedItemIndex: highlightedItemIndex }); + } + }; + + _this.highlightedItem = null; + + _this.state = { + isInputFocused: false + }; + + _this.setSectionsItems(props); + _this.setSectionIterator(props); + _this.setTheme(props); + return _this; + } + + _createClass(Autowhatever, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.ensureHighlightedItemIsVisible(); + } + + // eslint-disable-next-line camelcase, react/sort-comp + + }, { + key: 'UNSAFE_componentWillReceiveProps', + value: function UNSAFE_componentWillReceiveProps(nextProps) { + if (nextProps.items !== this.props.items) { + this.setSectionsItems(nextProps); + } + + if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) { + this.setSectionIterator(nextProps); + } + + if (nextProps.theme !== this.props.theme) { + this.setTheme(nextProps); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.ensureHighlightedItemIsVisible(); + } + }, { + key: 'setSectionsItems', + value: function setSectionsItems(props) { + if (props.multiSection) { + this.sectionsItems = props.items.map(function (section) { + return props.getSectionItems(section); + }); + this.sectionsLengths = this.sectionsItems.map(function (items) { + return items.length; + }); + this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) { + return itemsCount === 0; + }); + } + } + }, { + key: 'setSectionIterator', + value: function setSectionIterator(props) { + this.sectionIterator = (0, _sectionIterator2.default)({ + multiSection: props.multiSection, + data: props.multiSection ? this.sectionsLengths : props.items.length + }); + } + }, { + key: 'setTheme', + value: function setTheme(props) { + this.theme = (0, _reactThemeable2.default)(props.theme); + } + }, { + key: 'renderSections', + value: function renderSections() { + var _this2 = this; + + if (this.allSectionsAreEmpty) { + return null; + } + + var theme = this.theme; + var _props = this.props, + id = _props.id, + items = _props.items, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + renderSectionTitle = _props.renderSectionTitle, + highlightedSectionIndex = _props.highlightedSectionIndex, + highlightedItemIndex = _props.highlightedItemIndex, + itemProps = _props.itemProps; + + + return items.map(function (section, sectionIndex) { + var keyPrefix = 'react-autowhatever-' + id + '-'; + var sectionKeyPrefix = keyPrefix + 'section-' + sectionIndex + '-'; + var isFirstSection = sectionIndex === 0; + + // `key` is provided by theme() + /* eslint-disable react/jsx-key */ + return _react2.default.createElement( + 'div', + theme(sectionKeyPrefix + 'container', 'sectionContainer', isFirstSection && 'sectionContainerFirst'), + _react2.default.createElement(_SectionTitle2.default, { + section: section, + renderSectionTitle: renderSectionTitle, + theme: theme, + sectionKeyPrefix: sectionKeyPrefix + }), + _react2.default.createElement(_ItemsList2.default, { + items: _this2.sectionsItems[sectionIndex], + itemProps: itemProps, + renderItem: renderItem, + renderItemData: renderItemData, + sectionIndex: sectionIndex, + highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null, + onHighlightedItemChange: _this2.onHighlightedItemChange, + getItemId: _this2.getItemId, + theme: theme, + keyPrefix: keyPrefix, + ref: _this2.storeItemsListReference + }) + ); + /* eslint-enable react/jsx-key */ + }); + } + }, { + key: 'renderItems', + value: function renderItems() { + var items = this.props.items; + + + if (items.length === 0) { + return null; + } + + var theme = this.theme; + var _props2 = this.props, + id = _props2.id, + renderItem = _props2.renderItem, + renderItemData = _props2.renderItemData, + highlightedSectionIndex = _props2.highlightedSectionIndex, + highlightedItemIndex = _props2.highlightedItemIndex, + itemProps = _props2.itemProps; + + + return _react2.default.createElement(_ItemsList2.default, { + items: items, + itemProps: itemProps, + renderItem: renderItem, + renderItemData: renderItemData, + highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null, + onHighlightedItemChange: this.onHighlightedItemChange, + getItemId: this.getItemId, + theme: theme, + keyPrefix: 'react-autowhatever-' + id + '-' + }); + } + }, { + key: 'ensureHighlightedItemIsVisible', + value: function ensureHighlightedItemIsVisible() { + var highlightedItem = this.highlightedItem; + + + if (!highlightedItem) { + return; + } + + var itemsContainer = this.itemsContainer; + + var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop; + + var scrollTop = itemsContainer.scrollTop; // Top of the visible area + + if (itemOffsetRelativeToContainer < scrollTop) { + // Item is off the top of the visible area + scrollTop = itemOffsetRelativeToContainer; + } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) { + // Item is off the bottom of the visible area + scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight; + } + + if (scrollTop !== itemsContainer.scrollTop) { + itemsContainer.scrollTop = scrollTop; + } + } + }, { + key: 'render', + value: function render() { + var theme = this.theme; + var _props3 = this.props, + id = _props3.id, + multiSection = _props3.multiSection, + renderInputComponent = _props3.renderInputComponent, + renderItemsContainer = _props3.renderItemsContainer, + highlightedSectionIndex = _props3.highlightedSectionIndex, + highlightedItemIndex = _props3.highlightedItemIndex; + var isInputFocused = this.state.isInputFocused; + + var renderedItems = multiSection ? this.renderSections() : this.renderItems(); + var isOpen = renderedItems !== null; + var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex); + var itemsContainerId = 'react-autowhatever-' + id; + var containerProps = _extends({ + role: 'combobox', + 'aria-haspopup': 'listbox', + 'aria-owns': itemsContainerId, + 'aria-expanded': isOpen + }, theme('react-autowhatever-' + id + '-container', 'container', isOpen && 'containerOpen'), this.props.containerProps); + var inputComponent = renderInputComponent(_extends({ + type: 'text', + value: '', + autoComplete: 'off', + 'aria-autocomplete': 'list', + 'aria-controls': itemsContainerId, + 'aria-activedescendant': ariaActivedescendant + }, theme('react-autowhatever-' + id + '-input', 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), this.props.inputProps, { + onFocus: this.onFocus, + onBlur: this.onBlur, + onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown, + ref: this.storeInputReference + })); + var itemsContainer = renderItemsContainer({ + containerProps: _extends({ + id: itemsContainerId, + role: 'listbox' + }, theme('react-autowhatever-' + id + '-items-container', 'itemsContainer', isOpen && 'itemsContainerOpen'), { + ref: this.storeItemsContainerReference + }), + children: renderedItems + }); + + return _react2.default.createElement( + 'div', + containerProps, + inputComponent, + itemsContainer + ); + } + }]); + + return Autowhatever; + }(_react.Component); + + Autowhatever.propTypes = { + id: _propTypes2.default.string, // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids. + multiSection: _propTypes2.default.bool, // Indicates whether a multi section layout should be rendered. + renderInputComponent: _propTypes2.default.func, // When specified, it is used to render the input element. + renderItemsContainer: _propTypes2.default.func, // Renders the items container. + items: _propTypes2.default.array.isRequired, // Array of items or sections to render. + renderItem: _propTypes2.default.func, // This function renders a single item. + renderItemData: _propTypes2.default.object, // Arbitrary data that will be passed to renderItem() + renderSectionTitle: _propTypes2.default.func, // This function gets a section and renders its title. + getSectionItems: _propTypes2.default.func, // This function gets a section and returns its items, which will be passed into `renderItem` for rendering. + containerProps: _propTypes2.default.object, // Arbitrary container props + inputProps: _propTypes2.default.object, // Arbitrary input props + itemProps: _propTypes2.default.oneOfType([// Arbitrary item props + _propTypes2.default.object, _propTypes2.default.func]), + highlightedSectionIndex: _propTypes2.default.number, // Section index of the highlighted item + highlightedItemIndex: _propTypes2.default.number, // Highlighted item index (within a section) + theme: _propTypes2.default.oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable + _propTypes2.default.object, _propTypes2.default.array]) + }; + Autowhatever.defaultProps = { + id: '1', + multiSection: false, + renderInputComponent: defaultRenderInputComponent, + renderItemsContainer: defaultRenderItemsContainer, + renderItem: function renderItem() { + throw new Error('`renderItem` must be provided'); + }, + renderItemData: emptyObject, + renderSectionTitle: function renderSectionTitle() { + throw new Error('`renderSectionTitle` must be provided'); + }, + getSectionItems: function getSectionItems() { + throw new Error('`getSectionItems` must be provided'); + }, + containerProps: emptyObject, + inputProps: emptyObject, + itemProps: emptyObject, + highlightedSectionIndex: null, + highlightedItemIndex: null, + theme: defaultTheme + }; + exports.default = Autowhatever; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_2__; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + if (process.env.NODE_ENV !== 'production') { + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + var isValidElement = function(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; + }; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(5)(isValidElement, throwOnDirectAccess); + } else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(11)(); + } + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + + process.listeners = function (name) { return [] } + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(6); + var invariant = __webpack_require__(7); + var warning = __webpack_require__(8); + + var ReactPropTypesSecret = __webpack_require__(9); + var checkPropTypes = __webpack_require__(10); + + module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + warning( + false, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + + 'received %s at index %s.', + getPostfixForTypeWarning(checker), + i + ); + return emptyFunction.thatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + + "use strict"; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * + */ + + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } + + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + var emptyFunction = function emptyFunction() {}; + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; + }; + + module.exports = emptyFunction; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + + var validateFormat = function validateFormat(format) {}; + + if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; + } + + function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + } + + module.exports = invariant; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(6); + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = emptyFunction; + + if (process.env.NODE_ENV !== 'production') { + (function () { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + })(); + } + + module.exports = warning; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + module.exports = ReactPropTypesSecret; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + if (process.env.NODE_ENV !== 'production') { + var invariant = __webpack_require__(7); + var warning = __webpack_require__(8); + var ReactPropTypesSecret = __webpack_require__(9); + var loggedTypeFailures = {}; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } + } + + module.exports = checkPropTypes; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(6); + var invariant = __webpack_require__(7); + var ReactPropTypesSecret = __webpack_require__(9); + + module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + + "use strict"; + + var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + + module.exports = function (_ref) { + var data = _ref.data; + var multiSection = _ref.multiSection; + + function nextNonEmptySectionIndex(sectionIndex) { + if (sectionIndex === null) { + sectionIndex = 0; + } else { + sectionIndex++; + } + + while (sectionIndex < data.length && data[sectionIndex] === 0) { + sectionIndex++; + } + + return sectionIndex === data.length ? null : sectionIndex; + } + + function prevNonEmptySectionIndex(sectionIndex) { + if (sectionIndex === null) { + sectionIndex = data.length - 1; + } else { + sectionIndex--; + } + + while (sectionIndex >= 0 && data[sectionIndex] === 0) { + sectionIndex--; + } + + return sectionIndex === -1 ? null : sectionIndex; + } + + function next(position) { + var _position = _slicedToArray(position, 2); + + var sectionIndex = _position[0]; + var itemIndex = _position[1]; + + + if (multiSection) { + if (itemIndex === null || itemIndex === data[sectionIndex] - 1) { + sectionIndex = nextNonEmptySectionIndex(sectionIndex); + + if (sectionIndex === null) { + return [null, null]; + } + + return [sectionIndex, 0]; + } + + return [sectionIndex, itemIndex + 1]; + } + + if (data === 0 || itemIndex === data - 1) { + return [null, null]; + } + + if (itemIndex === null) { + return [null, 0]; + } + + return [null, itemIndex + 1]; + } + + function prev(position) { + var _position2 = _slicedToArray(position, 2); + + var sectionIndex = _position2[0]; + var itemIndex = _position2[1]; + + + if (multiSection) { + if (itemIndex === null || itemIndex === 0) { + sectionIndex = prevNonEmptySectionIndex(sectionIndex); + + if (sectionIndex === null) { + return [null, null]; + } + + return [sectionIndex, data[sectionIndex] - 1]; + } + + return [sectionIndex, itemIndex - 1]; + } + + if (data === 0 || itemIndex === 0) { + return [null, null]; + } + + if (itemIndex === null) { + return [null, data - 1]; + } + + return [null, itemIndex - 1]; + } + + function isLast(position) { + return next(position)[1] === null; + } + + return { + next: next, + prev: prev, + isLast: isLast + }; + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })(); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } + + var _objectAssign = __webpack_require__(14); + + var _objectAssign2 = _interopRequireDefault(_objectAssign); + + var truthy = function truthy(x) { + return x; + }; + + exports['default'] = function (input) { + var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null]; + + var _ref2 = _slicedToArray(_ref, 2); + + var theme = _ref2[0]; + var classNameDecorator = _ref2[1]; + + return function (key) { + for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + names[_key - 1] = arguments[_key]; + } + + var styles = names.map(function (name) { + return theme[name]; + }).filter(truthy); + + return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) }; + }; + }; + + module.exports = exports['default']; + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + + 'use strict'; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function ToObject(val) { + if (val == null) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function ownEnumerableKeys(obj) { + var keys = Object.getOwnPropertyNames(obj); + + if (Object.getOwnPropertySymbols) { + keys = keys.concat(Object.getOwnPropertySymbols(obj)); + } + + return keys.filter(function (key) { + return propIsEnumerable.call(obj, key); + }); + } + + module.exports = Object.assign || function (target, source) { + var from; + var keys; + var to = ToObject(target); + + for (var s = 1; s < arguments.length; s++) { + from = arguments[s]; + keys = ownEnumerableKeys(Object(from)); + + for (var i = 0; i < keys.length; i++) { + to[keys[i]] = from[keys[i]]; + } + } + + return to; + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _compareObjects = __webpack_require__(16); + + var _compareObjects2 = _interopRequireDefault(_compareObjects); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var SectionTitle = function (_Component) { + _inherits(SectionTitle, _Component); + + function SectionTitle() { + _classCallCheck(this, SectionTitle); + + return _possibleConstructorReturn(this, (SectionTitle.__proto__ || Object.getPrototypeOf(SectionTitle)).apply(this, arguments)); + } + + _createClass(SectionTitle, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + section = _props.section, + renderSectionTitle = _props.renderSectionTitle, + theme = _props.theme, + sectionKeyPrefix = _props.sectionKeyPrefix; + + var sectionTitle = renderSectionTitle(section); + + if (!sectionTitle) { + return null; + } + + return _react2.default.createElement( + 'div', + theme(sectionKeyPrefix + 'title', 'sectionTitle'), + sectionTitle + ); + } + }]); + + return SectionTitle; + }(_react.Component); + + SectionTitle.propTypes = { + section: _propTypes2.default.any.isRequired, + renderSectionTitle: _propTypes2.default.func.isRequired, + theme: _propTypes2.default.func.isRequired, + sectionKeyPrefix: _propTypes2.default.string.isRequired + }; + exports.default = SectionTitle; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + exports.default = compareObjects; + function compareObjects(objA, objB) { + var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + + if (objA === objB) { + return false; + } + + var aKeys = Object.keys(objA); + var bKeys = Object.keys(objB); + + if (aKeys.length !== bKeys.length) { + return true; + } + + var keysMap = {}; + var i = void 0, + len = void 0; + + for (i = 0, len = keys.length; i < len; i++) { + keysMap[keys[i]] = true; + } + + for (i = 0, len = aKeys.length; i < len; i++) { + var key = aKeys[i]; + var aValue = objA[key]; + var bValue = objB[key]; + + if (aValue === bValue) { + continue; + } + + if (!keysMap[key] || aValue === null || bValue === null || (typeof aValue === 'undefined' ? 'undefined' : _typeof(aValue)) !== 'object' || (typeof bValue === 'undefined' ? 'undefined' : _typeof(bValue)) !== 'object') { + return true; + } + + var aValueKeys = Object.keys(aValue); + var bValueKeys = Object.keys(bValue); + + if (aValueKeys.length !== bValueKeys.length) { + return true; + } + + for (var n = 0, length = aValueKeys.length; n < length; n++) { + var aValueKey = aValueKeys[n]; + + if (aValue[aValueKey] !== bValue[aValueKey]) { + return true; + } + } + } + + return false; + } + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _Item = __webpack_require__(18); + + var _Item2 = _interopRequireDefault(_Item); + + var _compareObjects = __webpack_require__(16); + + var _compareObjects2 = _interopRequireDefault(_compareObjects); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var ItemsList = function (_Component) { + _inherits(ItemsList, _Component); + + function ItemsList() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, ItemsList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ItemsList.__proto__ || Object.getPrototypeOf(ItemsList)).call.apply(_ref, [this].concat(args))), _this), _this.storeHighlightedItemReference = function (highlightedItem) { + _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(ItemsList, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props, ['itemProps']); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + items = _props.items, + itemProps = _props.itemProps, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + sectionIndex = _props.sectionIndex, + highlightedItemIndex = _props.highlightedItemIndex, + getItemId = _props.getItemId, + theme = _props.theme, + keyPrefix = _props.keyPrefix; + + var sectionPrefix = sectionIndex === null ? keyPrefix : keyPrefix + 'section-' + sectionIndex + '-'; + var isItemPropsFunction = typeof itemProps === 'function'; + + return _react2.default.createElement( + 'ul', + _extends({ role: 'listbox' }, theme(sectionPrefix + 'items-list', 'itemsList')), + items.map(function (item, itemIndex) { + var isFirst = itemIndex === 0; + var isHighlighted = itemIndex === highlightedItemIndex; + var itemKey = sectionPrefix + 'item-' + itemIndex; + var itemPropsObj = isItemPropsFunction ? itemProps({ sectionIndex: sectionIndex, itemIndex: itemIndex }) : itemProps; + var allItemProps = _extends({ + id: getItemId(sectionIndex, itemIndex), + 'aria-selected': isHighlighted + }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), itemPropsObj); + + if (isHighlighted) { + allItemProps.ref = _this2.storeHighlightedItemReference; + } + + // `key` is provided by theme() + /* eslint-disable react/jsx-key */ + return _react2.default.createElement(_Item2.default, _extends({}, allItemProps, { + sectionIndex: sectionIndex, + isHighlighted: isHighlighted, + itemIndex: itemIndex, + item: item, + renderItem: renderItem, + renderItemData: renderItemData + })); + /* eslint-enable react/jsx-key */ + }) + ); + } + }]); + + return ItemsList; + }(_react.Component); + + ItemsList.propTypes = { + items: _propTypes2.default.array.isRequired, + itemProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]), + renderItem: _propTypes2.default.func.isRequired, + renderItemData: _propTypes2.default.object.isRequired, + sectionIndex: _propTypes2.default.number, + highlightedItemIndex: _propTypes2.default.number, + onHighlightedItemChange: _propTypes2.default.func.isRequired, + getItemId: _propTypes2.default.func.isRequired, + theme: _propTypes2.default.func.isRequired, + keyPrefix: _propTypes2.default.string.isRequired + }; + ItemsList.defaultProps = { + sectionIndex: null + }; + exports.default = ItemsList; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _propTypes = __webpack_require__(3); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _compareObjects = __webpack_require__(16); + + var _compareObjects2 = _interopRequireDefault(_compareObjects); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var Item = function (_Component) { + _inherits(Item, _Component); + + function Item() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Item); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Item.__proto__ || Object.getPrototypeOf(Item)).call.apply(_ref, [this].concat(args))), _this), _this.storeItemReference = function (item) { + if (item !== null) { + _this.item = item; + } + }, _this.onMouseEnter = function (event) { + var _this$props = _this.props, + sectionIndex = _this$props.sectionIndex, + itemIndex = _this$props.itemIndex; + + + _this.props.onMouseEnter(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onMouseLeave = function (event) { + var _this$props2 = _this.props, + sectionIndex = _this$props2.sectionIndex, + itemIndex = _this$props2.itemIndex; + + + _this.props.onMouseLeave(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onMouseDown = function (event) { + var _this$props3 = _this.props, + sectionIndex = _this$props3.sectionIndex, + itemIndex = _this$props3.itemIndex; + + + _this.props.onMouseDown(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _this.onClick = function (event) { + var _this$props4 = _this.props, + sectionIndex = _this$props4.sectionIndex, + itemIndex = _this$props4.itemIndex; + + + _this.props.onClick(event, { sectionIndex: sectionIndex, itemIndex: itemIndex }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Item, [{ + key: 'shouldComponentUpdate', + value: function shouldComponentUpdate(nextProps) { + return (0, _compareObjects2.default)(nextProps, this.props, ['renderItemData']); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + isHighlighted = _props.isHighlighted, + item = _props.item, + renderItem = _props.renderItem, + renderItemData = _props.renderItemData, + restProps = _objectWithoutProperties(_props, ['isHighlighted', 'item', 'renderItem', 'renderItemData']); + + delete restProps.sectionIndex; + delete restProps.itemIndex; + + if (typeof restProps.onMouseEnter === 'function') { + restProps.onMouseEnter = this.onMouseEnter; + } + + if (typeof restProps.onMouseLeave === 'function') { + restProps.onMouseLeave = this.onMouseLeave; + } + + if (typeof restProps.onMouseDown === 'function') { + restProps.onMouseDown = this.onMouseDown; + } + + if (typeof restProps.onClick === 'function') { + restProps.onClick = this.onClick; + } + + return _react2.default.createElement( + 'li', + _extends({ role: 'option' }, restProps, { ref: this.storeItemReference }), + renderItem(item, _extends({ isHighlighted: isHighlighted }, renderItemData)) + ); + } + }]); + + return Item; + }(_react.Component); + + Item.propTypes = { + sectionIndex: _propTypes2.default.number, + isHighlighted: _propTypes2.default.bool.isRequired, + itemIndex: _propTypes2.default.number.isRequired, + item: _propTypes2.default.any.isRequired, + renderItem: _propTypes2.default.func.isRequired, + renderItemData: _propTypes2.default.object.isRequired, + onMouseEnter: _propTypes2.default.func, + onMouseLeave: _propTypes2.default.func, + onMouseDown: _propTypes2.default.func, + onClick: _propTypes2.default.func + }; + exports.default = Item; + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/dist/standalone/autowhatever.min.js b/dist/standalone/autowhatever.min.js new file mode 100644 index 0000000..fa46f7c --- /dev/null +++ b/dist/standalone/autowhatever.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React")):"function"==typeof define&&define.amd?define(["React"],t):"object"==typeof exports?exports.Autowhatever=t(require("React")):e.Autowhatever=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";e.exports=n(1).default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;tr+t.offsetHeight&&(r=n+e.offsetHeight-t.offsetHeight),r!==t.scrollTop&&(t.scrollTop=r)}}},{key:"render",value:function(){var e=this.theme,t=this.props,n=t.id,r=t.multiSection,o=t.renderInputComponent,i=t.renderItemsContainer,u=t.highlightedSectionIndex,s=t.highlightedItemIndex,l=this.state.isInputFocused,c=r?this.renderSections():this.renderItems(),p=null!==c,d=this.getItemId(u,s),h="react-autowhatever-"+n,m=a({role:"combobox","aria-haspopup":"listbox","aria-owns":h,"aria-expanded":p},e("react-autowhatever-"+n+"-container","container",p&&"containerOpen"),this.props.containerProps),y=o(a({type:"text",value:"",autoComplete:"off","aria-autocomplete":"list","aria-controls":h,"aria-activedescendant":d},e("react-autowhatever-"+n+"-input","input",p&&"inputOpen",l&&"inputFocused"),this.props.inputProps,{onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.props.inputProps.onKeyDown&&this.onKeyDown,ref:this.storeInputReference})),v=i({containerProps:a({id:h,role:"listbox"},e("react-autowhatever-"+n+"-items-container","itemsContainer",p&&"itemsContainerOpen"),{ref:this.storeItemsContainerReference}),children:c});return f.default.createElement("div",m,y,v)}}]),t}(c.Component);P.propTypes={id:d.default.string,multiSection:d.default.bool,renderInputComponent:d.default.func,renderItemsContainer:d.default.func,items:d.default.array.isRequired,renderItem:d.default.func,renderItemData:d.default.object,renderSectionTitle:d.default.func,getSectionItems:d.default.func,containerProps:d.default.object,inputProps:d.default.object,itemProps:d.default.oneOfType([d.default.object,d.default.func]),highlightedSectionIndex:d.default.number,highlightedItemIndex:d.default.number,theme:d.default.oneOfType([d.default.object,d.default.array])},P.defaultProps={id:"1",multiSection:!1,renderInputComponent:x,renderItemsContainer:O,renderItem:function(){throw new Error("`renderItem` must be provided")},renderItemData:_,renderSectionTitle:function(){throw new Error("`renderSectionTitle` must be provided")},getSectionItems:function(){throw new Error("`getSectionItems` must be provided")},containerProps:_,inputProps:_,itemProps:_,highlightedSectionIndex:null,highlightedItemIndex:null,theme:j},t.default=P},function(t,n){t.exports=e},function(e,t,n){e.exports=n(4)()},function(e,t,n){"use strict";var r=n(5),o=n(6),i=n(7);e.exports=function(){function e(e,t,n,r,u,a){a!==i&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,i,u,a,s){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,u,a,s],f=0;l=new Error(t.replace(/%s/g,function(){return c[f++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=r},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n},function(e,t){"use strict";var n=function(){function e(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e.exports=function(e){function t(e){for(null===e?e=0:e++;e=0&&0===a[e];)e--;return e===-1?null:e}function o(e){var r=n(e,2),o=r[0],i=r[1];return s?null===i||i===a[o]-1?(o=t(o),null===o?[null,null]:[o,0]):[o,i+1]:0===a||i===a-1?[null,null]:null===i?[null,0]:[null,i+1]}function i(e){var t=n(e,2),o=t[0],i=t[1];return s?null===i||0===i?(o=r(o),null===o?[null,null]:[o,a[o]-1]):[o,i-1]:0===a||0===i?[null,null]:null===i?[null,a-1]:[null,i-1]}function u(e){return null===o(e)[1]}var a=e.data,s=e.multiSection;return{next:o,prev:i,isLast:u}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?t-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:[];if(e===t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!0;var u={},a=void 0,s=void 0;for(a=0,s=n.length;a=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t= 1.0.0" + } }, "commondir": { "version": "1.0.1", @@ -1083,19 +1668,33 @@ "version": "2.0.10", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", - "dev": true + "dev": true, + "requires": { + "mime-db": ">= 1.27.0 < 2" + } }, "compression": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", "dev": true, + "requires": { + "accepts": "~1.3.3", + "bytes": "2.3.0", + "compressible": "~2.0.8", + "debug": "~2.2.0", + "on-headers": "~1.0.1", + "vary": "~1.1.0" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -1115,7 +1714,12 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } }, "connect-history-api-fallback": { "version": "1.3.0", @@ -1127,7 +1731,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true + "dev": true, + "requires": { + "date-now": "^0.1.4" + } }, "constants-browserify": { "version": "1.0.0", @@ -1187,6 +1794,15 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.1.3.tgz", "integrity": "sha1-lSdx6w3dwcs/ovb75RpSLpOz7go=", "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -1200,19 +1816,33 @@ "version": "15.5.3", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.3.tgz", "integrity": "sha1-+w98rnkznpoXnhlO9Gbvo5I4IP4=", - "dev": true + "dev": true, + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true + "dev": true, + "requires": { + "boom": "2.x.x" + } }, "crypto-browserify": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", - "dev": true + "dev": true, + "requires": { + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } }, "css-color-names": { "version": "0.0.4", @@ -1225,12 +1855,33 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz", "integrity": "sha1-bPNXkZLONV6LONX0Ldeh8uyJjQ8=", "dev": true, + "requires": { + "babel-code-frame": "^6.11.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": ">=2.6.1 <4", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.0.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.0.0", + "postcss-modules-local-by-default": "^1.0.1", + "postcss-modules-scope": "^1.0.0", + "postcss-modules-values": "^1.1.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^0.1.7" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } } } }, @@ -1239,12 +1890,22 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, "dependencies": { "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } } } }, @@ -1258,13 +1919,51 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } }, "csso": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } }, "cssom": { "version": "0.3.2", @@ -1276,19 +1975,28 @@ "version": "0.2.37", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true + "dev": true, + "requires": { + "cssom": "0.3.x" + } }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true + "dev": true, + "requires": { + "es5-ext": "^0.10.9" + } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1308,7 +2016,10 @@ "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "decamelize": { "version": "1.2.0", @@ -1321,6 +2032,9 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, + "requires": { + "type-detect": "0.1.1" + }, "dependencies": { "type-detect": { "version": "0.1.1", @@ -1340,7 +2054,11 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true + "dev": true, + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } }, "defined": { "version": "1.0.0", @@ -1352,7 +2070,16 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } }, "delayed-stream": { "version": "1.0.0", @@ -1376,7 +2103,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true + "dev": true, + "requires": { + "repeating": "^2.0.0" + } }, "diacritic": { "version": "0.0.2", @@ -1394,7 +2124,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", - "dev": true + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } }, "domain-browser": { "version": "1.1.7", @@ -1407,7 +2141,10 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } }, "ee-first": { "version": "1.1.1", @@ -1436,13 +2173,21 @@ "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } }, "enhanced-resolve": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, "dependencies": { "memory-fs": { "version": "0.2.0", @@ -1456,61 +2201,112 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true + "dev": true, + "requires": { + "prr": "~0.0.0" + } }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } }, "es-abstract": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", - "dev": true + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.0", + "is-callable": "^1.1.3", + "is-regex": "^1.0.3" + } }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } }, "es5-ext": { "version": "0.10.23", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=", - "dev": true + "dev": true, + "requires": { + "es6-iterator": "2", + "es6-symbol": "~3.1" + } }, "es6-iterator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "dev": true + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" + } }, "es6-map": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true + "dev": true, + "requires": { + "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": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } }, "es6-weak-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } }, "escape-html": { "version": "1.0.3", @@ -1529,6 +2325,13 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" + }, "dependencies": { "estraverse": { "version": "1.9.3", @@ -1541,7 +2344,10 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, - "optional": true + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } } } }, @@ -1549,19 +2355,65 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } }, "eslint": { "version": "3.19.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", "dev": true, + "requires": { + "babel-code-frame": "^6.16.0", + "chalk": "^1.1.3", + "concat-stream": "^1.5.2", + "debug": "^2.1.1", + "doctrine": "^2.0.0", + "escope": "^3.6.0", + "espree": "^3.4.0", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "glob": "^7.0.3", + "globals": "^9.14.0", + "ignore": "^3.2.0", + "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", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.7.5", + "strip-bom": "^3.0.0", + "strip-json-comments": "~2.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" + }, "dependencies": { "user-home": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } } } }, @@ -1570,12 +2422,23 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz", "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=", "dev": true, + "requires": { + "array.prototype.find": "^2.0.1", + "doctrine": "^1.2.2", + "has": "^1.0.1", + "jsx-ast-utils": "^1.3.4", + "object.assign": "^4.0.4" + }, "dependencies": { "doctrine": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } } } }, @@ -1583,7 +2446,11 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", - "dev": true + "dev": true, + "requires": { + "acorn": "^5.0.1", + "acorn-jsx": "^3.0.0" + } }, "esprima": { "version": "2.7.3", @@ -1595,13 +2462,20 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "dev": true + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } }, "esrecurse": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", "dev": true, + "requires": { + "estraverse": "~4.1.0", + "object-assign": "^4.0.1" + }, "dependencies": { "estraverse": { "version": "4.1.1", @@ -1633,7 +2507,11 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } }, "eventemitter3": { "version": "1.2.0", @@ -1651,7 +2529,10 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true + "dev": true, + "requires": { + "original": ">=0.0.5" + } }, "exit-hook": { "version": "1.1.1", @@ -1663,25 +2544,64 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } }, "express": { "version": "4.15.3", "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", "dev": true, + "requires": { + "accepts": "~1.3.3", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "~1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.7", + "depd": "~1.1.0", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "finalhandler": "~1.0.3", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "~1.1.4", + "qs": "6.4.0", + "range-parser": "~1.2.0", + "send": "0.15.3", + "serve-static": "1.12.3", + "setprototypeof": "1.0.3", + "statuses": "~1.3.1", + "type-is": "~1.6.15", + "utils-merge": "1.0.0", + "vary": "~1.1.1" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -1695,13 +2615,21 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } }, "extract-text-webpack-plugin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz", "integrity": "sha1-yVvzy6rEnclvHcbgclSfu2VMzSw=", - "dev": true + "dev": true, + "requires": { + "async": "^1.5.0", + "loader-utils": "^0.2.3", + "webpack-sources": "^0.1.0" + } }, "extsprintf": { "version": "1.0.2", @@ -1725,24 +2653,44 @@ "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } }, "fbjs": { "version": "0.8.12", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", - "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=" + "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" + } }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } }, "file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } }, "filename-regex": { "version": "2.0.1", @@ -1754,19 +2702,38 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } }, "finalhandler": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", "dev": true, + "requires": { + "debug": "2.6.7", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.1", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, @@ -1774,19 +2741,34 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } }, "flat-cache": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", - "dev": true + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } }, "flatten": { "version": "1.0.2", @@ -1804,7 +2786,10 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true + "dev": true, + "requires": { + "for-in": "^1.0.1" + } }, "foreach": { "version": "2.0.5", @@ -1822,13 +2807,21 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } }, "formatio": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", - "dev": true + "dev": true, + "requires": { + "samsam": "~1.1" + } }, "forwarded": { "version": "0.1.0", @@ -1860,6 +2853,10 @@ "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", "dev": true, "optional": true, + "requires": { + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.29" + }, "dependencies": { "abbrev": { "version": "1.1.0", @@ -1870,7 +2867,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ansi-styles": { "version": "2.2.1", @@ -1888,7 +2886,11 @@ "version": "1.1.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + } }, "asn1": { "version": "0.2.3", @@ -1923,33 +2925,51 @@ "balanced-match": { "version": "0.4.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "bcrypt-pbkdf": { "version": "1.0.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } }, "block-stream": { "version": "0.0.9", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "inherits": "~2.0.0" + } }, "boom": { "version": "2.10.1", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } }, "brace-expansion": { "version": "1.1.6", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } }, "buffer-shims": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "caseless": { "version": "0.11.0", @@ -1961,50 +2981,74 @@ "version": "1.1.3", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "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" + } }, "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "combined-stream": { "version": "1.0.5", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "~1.0.0" + } }, "commander": { "version": "2.9.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "cryptiles": { "version": "2.0.5", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "2.x.x" + } }, "dashdash": { "version": "1.14.1", "bundled": true, "dev": true, "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2018,7 +3062,10 @@ "version": "2.2.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "ms": "0.7.1" + } }, "deep-extend": { "version": "0.4.1", @@ -2029,7 +3076,8 @@ "delayed-stream": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", @@ -2041,7 +3089,10 @@ "version": "0.1.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } }, "escape-string-regexp": { "version": "1.0.5", @@ -2058,7 +3109,8 @@ "extsprintf": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -2070,29 +3122,57 @@ "version": "2.1.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } }, "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "fstream": { "version": "1.0.10", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } }, "fstream-ignore": { "version": "1.0.5", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + } }, "gauge": { "version": "2.7.3", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } }, "generate-function": { "version": "2.0.0", @@ -2104,13 +3184,19 @@ "version": "1.2.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "is-property": "^1.0.0" + } }, "getpass": { "version": "0.1.6", "bundled": true, "dev": true, "optional": true, + "requires": { + "assert-plus": "^1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2123,12 +3209,22 @@ "glob": { "version": "7.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } }, "graceful-fs": { "version": "4.1.11", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "graceful-readlink": { "version": "1.0.1", @@ -2140,13 +3236,22 @@ "version": "2.0.6", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } }, "has-ansi": { "version": "2.0.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } }, "has-unicode": { "version": "2.0.1", @@ -2158,28 +3263,46 @@ "version": "3.1.3", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } }, "hoek": { "version": "2.16.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "http-signature": { "version": "1.1.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.4", @@ -2190,13 +3313,23 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-my-json-valid": { "version": "2.15.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } }, "is-property": { "version": "1.0.2", @@ -2213,7 +3346,8 @@ "isarray": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "isstream": { "version": "0.1.2", @@ -2225,7 +3359,10 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } }, "jsbn": { "version": "0.1.1", @@ -2255,32 +3392,51 @@ "version": "1.3.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + } }, "mime-db": { "version": "1.26.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "mime-types": { "version": "2.1.14", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "mime-db": "~1.26.0" + } }, "minimatch": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.0.0" + } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } }, "ms": { "version": "0.7.1", @@ -2292,24 +3448,45 @@ "version": "0.6.33", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "npmlog": "^4.0.1", + "rc": "~1.1.6", + "request": "^2.79.0", + "rimraf": "~2.5.4", + "semver": "~5.3.0", + "tar": "~2.2.1", + "tar-pack": "~3.3.0" + } }, "nopt": { "version": "3.0.6", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "abbrev": "1" + } }, "npmlog": { "version": "4.0.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.1", + "set-blocking": "~2.0.0" + } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "oauth-sign": { "version": "0.8.2", @@ -2326,12 +3503,17 @@ "once": { "version": "1.4.0", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } }, "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "pinkie": { "version": "2.0.4", @@ -2343,12 +3525,16 @@ "version": "2.0.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "pinkie": "^2.0.0" + } }, "process-nextick-args": { "version": "1.0.7", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "punycode": { "version": "1.4.1", @@ -2367,6 +3553,12 @@ "bundled": true, "dev": true, "optional": true, + "requires": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -2380,18 +3572,53 @@ "version": "2.2.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } }, "request": { "version": "2.79.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } }, "rimraf": { "version": "2.5.4", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } }, "semver": { "version": "5.3.0", @@ -2415,13 +3642,27 @@ "version": "1.0.9", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "hoek": "2.x.x" + } }, "sshpk": { "version": "1.10.2", "bundled": true, "dev": true, "optional": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2431,15 +3672,22 @@ } } }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - }, "string-width": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true, + "optional": true }, "stringstream": { "version": "0.0.5", @@ -2450,7 +3698,11 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } }, "strip-json-comments": { "version": "2.0.1", @@ -2467,25 +3719,53 @@ "tar": { "version": "2.2.1", "bundled": true, - "dev": true + "dev": true, + "optional": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } }, "tar-pack": { "version": "3.3.0", "bundled": true, "dev": true, "optional": true, + "requires": { + "debug": "~2.2.0", + "fstream": "~1.0.10", + "fstream-ignore": "~1.0.5", + "once": "~1.3.3", + "readable-stream": "~2.1.4", + "rimraf": "~2.5.1", + "tar": "~2.2.1", + "uid-number": "~0.0.6" + }, "dependencies": { "once": { "version": "1.3.3", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "wrappy": "1" + } }, "readable-stream": { "version": "2.1.5", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } } } }, @@ -2493,7 +3773,10 @@ "version": "2.3.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "punycode": "^1.4.1" + } }, "tunnel-agent": { "version": "0.4.3", @@ -2516,7 +3799,8 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "uuid": { "version": "3.0.1", @@ -2528,18 +3812,25 @@ "version": "1.3.6", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } }, "wide-align": { "version": "1.1.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "string-width": "^1.0.1" + } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "xtend": { "version": "4.0.1", @@ -2565,13 +3856,19 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true + "dev": true, + "requires": { + "is-property": "^1.0.0" + } }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2585,19 +3882,34 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "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-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } }, "globals": { "version": "9.18.0", @@ -2609,7 +3921,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } }, "graceful-fs": { "version": "4.1.11", @@ -2639,19 +3959,29 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true + "dev": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true + "dev": true, + "requires": { + "function-bind": "^1.0.2" + } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } }, "has-flag": { "version": "1.0.0", @@ -2663,7 +3993,13 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } }, "hoek": { "version": "2.16.3", @@ -2681,7 +4017,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } }, "html-comment-regex": { "version": "1.1.1", @@ -2693,25 +4033,44 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", - "dev": true + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } }, "http-errors": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", - "dev": true + "dev": true, + "requires": { + "depd": "1.1.0", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } }, "http-proxy": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true + "dev": true, + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" + } }, "http-proxy-middleware": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" + }, "dependencies": { "is-extglob": { "version": "2.1.1", @@ -2723,7 +4082,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } } } }, @@ -2731,7 +4093,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, "https-browserify": { "version": "0.0.1", @@ -2755,12 +4122,20 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, + "requires": { + "postcss": "^6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } } } }, @@ -2805,7 +4180,11 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, "inherits": { "version": "2.0.3", @@ -2817,7 +4196,22 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "dev": true + "dev": true, + "requires": { + "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" + } }, "interpret": { "version": "1.0.3", @@ -2829,7 +4223,10 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } }, "ipaddr.js": { "version": "1.3.0", @@ -2853,7 +4250,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } }, "is-buffer": { "version": "1.1.5", @@ -2889,7 +4289,10 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } }, "is-extendable": { "version": "0.1.1", @@ -2907,31 +4310,49 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } }, "is-my-json-valid": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "dev": true + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } }, "is-path-cwd": { "version": "1.0.0", @@ -2943,13 +4364,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } }, "is-path-inside": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } }, "is-plain-obj": { "version": "1.1.0", @@ -2979,13 +4406,19 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true + "dev": true, + "requires": { + "has": "^1.0.1" + } }, "is-resolvable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "dev": true + "dev": true, + "requires": { + "tryit": "^1.0.1" + } }, "is-stream": { "version": "1.1.0", @@ -2996,7 +4429,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } }, "is-symbol": { "version": "1.0.1", @@ -3020,7 +4456,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true + "dev": true, + "requires": { + "isarray": "1.0.0" + } }, "isolated-scroll": { "version": "0.1.0", @@ -3031,7 +4470,11 @@ "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } }, "isstream": { "version": "0.1.2", @@ -3054,7 +4497,11 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } }, "jsbn": { "version": "0.1.1", @@ -3068,6 +4515,27 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "dev": true, + "requires": { + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" + }, "dependencies": { "acorn": { "version": "4.0.13", @@ -3093,7 +4561,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", @@ -3130,6 +4601,12 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3149,7 +4626,10 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } }, "lazy-cache": { "version": "1.0.4", @@ -3161,25 +4641,48 @@ "version": "2.7.2", "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz", "integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=", - "dev": true + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.72.0", + "source-map": "^0.5.3" + } }, "less-loader": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-2.2.3.tgz", "integrity": "sha1-ttj4E5yEk98J2ZKpOgBzSwj4RSg=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "^0.2.5" + } }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } }, "loader-utils": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } }, "lodash": { "version": "4.17.4", @@ -3197,7 +4700,11 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } }, "lodash._basecopy": { "version": "3.0.1", @@ -3233,7 +4740,12 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true + "dev": true, + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" + } }, "lodash.isarguments": { "version": "3.1.0", @@ -3251,7 +4763,12 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } }, "lodash.memoize": { "version": "4.1.2", @@ -3280,7 +4797,10 @@ "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "^3.0.0" + } }, "macaddress": { "version": "0.2.8", @@ -3304,7 +4824,11 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", - "dev": true + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } }, "merge-descriptors": { "version": "1.0.1", @@ -3322,7 +4846,22 @@ "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } }, "mime": { "version": "1.3.6", @@ -3340,13 +4879,19 @@ "version": "2.1.15", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true + "dev": true, + "requires": { + "mime-db": "~1.27.0" + } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } }, "minimist": { "version": "0.0.8", @@ -3358,25 +4903,52 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } }, "mocha": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz", "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=", "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.0", + "diff": "3.2.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.1", + "growl": "1.9.2", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + }, "dependencies": { "debug": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } }, "ms": { "version": "0.7.2", @@ -3388,7 +4960,10 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } } } }, @@ -3426,13 +5001,42 @@ "node-fetch": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==" + "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } }, "node-libs-browser": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.9.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "0.0.1", + "os-browserify": "^0.2.0", + "path-browserify": "0.0.0", + "process": "^0.11.0", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.0.5", + "stream-browserify": "^2.0.1", + "stream-http": "^2.3.1", + "string_decoder": "^0.10.25", + "timers-browserify": "^2.0.2", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, "dependencies": { "string_decoder": { "version": "0.10.31", @@ -3446,7 +5050,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } }, "normalize-range": { "version": "0.1.2", @@ -3458,7 +5065,13 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } }, "num2fraction": { "version": "1.2.2", @@ -3499,19 +5112,31 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", - "dev": true + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.0", + "object-keys": "^1.0.10" + } }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true + "dev": true, + "requires": { + "ee-first": "1.1.1" + } }, "on-headers": { "version": "1.0.1", @@ -3523,7 +5148,10 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true + "dev": true, + "requires": { + "wrappy": "1" + } }, "onetime": { "version": "1.1.0", @@ -3548,6 +5176,10 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, "dependencies": { "wordwrap": { "version": "0.0.3", @@ -3561,19 +5193,34 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } }, "original": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", "dev": true, + "requires": { + "url-parse": "1.0.x" + }, "dependencies": { "url-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true + "dev": true, + "requires": { + "querystringify": "0.0.x", + "requires-port": "1.0.x" + } } } }, @@ -3599,7 +5246,12 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } }, "pako": { "version": "0.2.9", @@ -3611,13 +5263,22 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } }, "parse5": { "version": "1.5.1", @@ -3641,7 +5302,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } }, "path-is-absolute": { "version": "1.0.1", @@ -3695,13 +5359,19 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } }, "pkg-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true + "dev": true, + "requires": { + "find-up": "^1.0.0" + } }, "pluralize": { "version": "1.2.1", @@ -3713,91 +5383,156 @@ "version": "5.2.17", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } }, "postcss-calc": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } }, "postcss-colormin": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } }, "postcss-convert-values": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } }, "postcss-discard-comments": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.14" + } }, "postcss-discard-duplicates": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4" + } }, "postcss-discard-empty": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.14" + } }, "postcss-discard-overridden": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.16" + } }, "postcss-discard-unused": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } }, "postcss-filter-plugins": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4", + "uniqid": "^4.0.0" + } }, "postcss-load-config": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } }, "postcss-load-options": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } }, "postcss-load-plugins": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + } }, "postcss-loader": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.3.3.tgz", "integrity": "sha1-piHqH6KQYqg5cqRvVEhncTAZFus=", "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "object-assign": "^4.1.1", + "postcss": "^5.2.15", + "postcss-load-config": "^1.2.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } } } }, @@ -3805,19 +5540,34 @@ "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } }, "postcss-merge-longhand": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4" + } }, "postcss-merge-rules": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + } }, "postcss-message-helpers": { "version": "2.0.0", @@ -3829,37 +5579,66 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } }, "postcss-minify-gradients": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } }, "postcss-minify-params": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } }, "postcss-minify-selectors": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } }, "postcss-modules-extract-imports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, + "requires": { + "postcss": "^6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } } } }, @@ -3868,12 +5647,21 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } } } }, @@ -3882,12 +5670,21 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } } } }, @@ -3896,12 +5693,21 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, "dependencies": { "postcss": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", - "dev": true + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } } } }, @@ -3909,55 +5715,96 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.5" + } }, "postcss-normalize-url": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } }, "postcss-ordered-values": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } }, "postcss-reduce-idents": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } }, "postcss-reduce-initial": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true + "dev": true, + "requires": { + "postcss": "^5.0.4" + } }, "postcss-reduce-transforms": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } }, "postcss-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } }, "postcss-svgo": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } }, "postcss-unique-selectors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } }, "postcss-value-parser": { "version": "3.3.0", @@ -3969,7 +5816,12 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } }, "prelude-ls": { "version": "1.1.2", @@ -4016,18 +5868,29 @@ "promise": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", - "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=" + "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=", + "requires": { + "asap": "~2.0.3" + } }, "prop-types": { "version": "15.5.10", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", - "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=" + "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1" + } }, "proxy-addr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=", - "dev": true + "dev": true, + "requires": { + "forwarded": "~0.1.0", + "ipaddr.js": "1.3.0" + } }, "prr": { "version": "0.0.0", @@ -4057,7 +5920,11 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } }, "querystring": { "version": "0.2.0", @@ -4081,7 +5948,11 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", - "dev": true + "dev": true, + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } }, "range-parser": { "version": "1.2.0", @@ -4093,13 +5964,25 @@ "version": "15.5.4", "resolved": "https://registry.npmjs.org/react/-/react-15.5.4.tgz", "integrity": "sha1-+oPrAVBqsjfNwcjDsc6o3gEr8Ec=", - "dev": true + "dev": true, + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.7" + } }, "react-dom": { "version": "15.5.4", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.5.4.tgz", "integrity": "sha1-ugwoeG/VLtfk8hNf4CiNRirvk9o=", - "dev": true + "dev": true, + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "~15.5.7" + } }, "react-hot-api": { "version": "0.4.7", @@ -4112,12 +5995,19 @@ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", "dev": true, + "requires": { + "react-hot-api": "^0.4.5", + "source-map": "^0.4.4" + }, "dependencies": { "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } } } }, @@ -4125,18 +6015,32 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/react-isolated-scroll/-/react-isolated-scroll-0.1.0.tgz", "integrity": "sha1-QBw5JMZAfDKrrhzctb+eczXqIk4=", - "dev": true + "dev": true, + "requires": { + "isolated-scroll": "^0.1.0" + } }, "react-redux": { "version": "4.4.8", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz", "integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=", - "dev": true + "dev": true, + "requires": { + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^1.0.3", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" + } }, "react-themeable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/react-themeable/-/react-themeable-1.1.0.tgz", "integrity": "sha1-fURm3ZsrX6dQWHJ4JenxUro3mg4=", + "requires": { + "object-assign": "^3.0.0" + }, "dependencies": { "object-assign": { "version": "3.0.0", @@ -4149,43 +6053,80 @@ "version": "2.2.11", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", - "dev": true + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.0.1", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } }, "readdirp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + } }, "readline2": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "mute-stream": "0.0.5" + } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true + "dev": true, + "requires": { + "resolve": "^1.1.6" + } }, "reduce-css-calc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + } }, "reduce-function-call": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "^0.4.2" + } }, "redux": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/redux/-/redux-3.6.0.tgz", "integrity": "sha1-iHwrPQub2G7KK+cFccJ2VMGeGI0=", - "dev": true + "dev": true, + "requires": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.2" + } }, "regenerate": { "version": "1.3.2", @@ -4203,19 +6144,33 @@ "version": "0.9.11", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } }, "regex-cache": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } }, "regjsgen": { "version": "0.2.0", @@ -4228,6 +6183,9 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, "dependencies": { "jsesc": { "version": "0.5.0", @@ -4259,13 +6217,40 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } }, "request": { "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } }, "require-from-string": { "version": "1.2.1", @@ -4277,7 +6262,11 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } }, "requires-port": { "version": "1.0.0", @@ -4289,7 +6278,10 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", - "dev": true + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } }, "resolve-from": { "version": "1.0.1", @@ -4301,19 +6293,29 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true + "dev": true, + "requires": { + "align-text": "^0.1.1" + } }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true + "dev": true, + "requires": { + "glob": "^7.0.5" + } }, "ripemd160": { "version": "0.2.0", @@ -4325,7 +6327,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "dev": true + "dev": true, + "requires": { + "once": "^1.3.0" + } }, "rx-lite": { "version": "3.1.2", @@ -4361,12 +6366,30 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", "dev": true, + "requires": { + "debug": "2.6.7", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "fresh": "0.5.0", + "http-errors": "~1.6.1", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" + }, "dependencies": { "debug": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "mime": { "version": "1.3.4", @@ -4380,13 +6403,28 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", - "dev": true + "dev": true, + "requires": { + "accepts": "~1.3.3", + "batch": "0.6.1", + "debug": "2.6.8", + "escape-html": "~1.0.3", + "http-errors": "~1.6.1", + "mime-types": "~2.1.15", + "parseurl": "~1.3.1" + } }, "serve-static": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", - "dev": true + "dev": true, + "requires": { + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.15.3" + } }, "set-immediate-shim": { "version": "1.0.1", @@ -4415,13 +6453,24 @@ "version": "0.7.8", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } }, "sinon": { "version": "1.17.7", "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=", - "dev": true + "dev": true, + "requires": { + "formatio": "1.1.1", + "lolex": "1.3.2", + "samsam": "1.1.2", + "util": ">=0.10.3 <1" + } }, "sinon-chai": { "version": "2.10.0", @@ -4445,13 +6494,20 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true + "dev": true, + "requires": { + "hoek": "2.x.x" + } }, "sockjs": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" + }, "dependencies": { "uuid": { "version": "2.0.3", @@ -4466,12 +6522,23 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, "dependencies": { "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } } } }, @@ -4479,7 +6546,10 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } }, "source-list-map": { "version": "0.1.8", @@ -4497,7 +6567,10 @@ "version": "0.4.15", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "dev": true + "dev": true, + "requires": { + "source-map": "^0.5.6" + } }, "sprintf-js": { "version": "1.0.3", @@ -4510,6 +6583,16 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4529,7 +6612,11 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } }, "stream-cache": { "version": "0.0.2", @@ -4541,7 +6628,14 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz", "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=", - "dev": true + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, "strict-uri-encode": { "version": "1.1.0", @@ -4549,17 +6643,25 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "requires": { + "safe-buffer": "~5.0.1" + } }, "stringstream": { "version": "0.0.5", @@ -4571,7 +6673,10 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } }, "strip-bom": { "version": "3.0.0", @@ -4590,12 +6695,20 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.16.1.tgz", "integrity": "sha1-UOMlJY1OeEId2WgGNrQehmFZXRA=", "dev": true, + "requires": { + "loader-utils": "^1.0.2" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } } } }, @@ -4603,13 +6716,25 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } }, "symbol-observable": { "version": "1.0.4", @@ -4628,6 +6753,14 @@ "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, + "requires": { + "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" + }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", @@ -4639,7 +6772,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "dev": true + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^3.0.0" + } } } }, @@ -4665,7 +6802,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } }, "to-arraybuffer": { "version": "1.0.1", @@ -4683,7 +6823,10 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true + "dev": true, + "requires": { + "punycode": "^1.4.1" + } }, "tr46": { "version": "0.0.3", @@ -4713,7 +6856,10 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -4726,7 +6872,10 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } }, "type-detect": { "version": "1.0.0", @@ -4738,7 +6887,11 @@ "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.15" + } }, "typedarray": { "version": "0.0.6", @@ -4756,6 +6909,12 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", "dev": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, "dependencies": { "async": { "version": "0.2.10", @@ -4781,7 +6940,10 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true + "dev": true, + "requires": { + "macaddress": "^0.2.8" + } }, "uniqs": { "version": "2.0.0", @@ -4800,6 +6962,10 @@ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, "dependencies": { "punycode": { "version": "1.3.2", @@ -4814,6 +6980,10 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", "dev": true, + "requires": { + "querystringify": "~1.0.0", + "requires-port": "1.0.x" + }, "dependencies": { "querystringify": { "version": "1.0.0", @@ -4834,6 +7004,9 @@ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, + "requires": { + "inherits": "2.0.1" + }, "dependencies": { "inherits": { "version": "2.0.1", @@ -4865,7 +7038,10 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true + "dev": true, + "requires": { + "user-home": "^1.1.1" + } }, "vary": { "version": "1.1.1", @@ -4883,19 +7059,30 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true + "dev": true, + "requires": { + "extsprintf": "1.0.2" + } }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true + "dev": true, + "requires": { + "indexof": "0.0.1" + } }, "watchpack": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", "dev": true, + "requires": { + "async": "^0.9.0", + "chokidar": "^1.0.0", + "graceful-fs": "^4.1.2" + }, "dependencies": { "async": { "version": "0.9.2", @@ -4916,6 +7103,23 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", "dev": true, + "requires": { + "acorn": "^3.0.0", + "async": "^1.3.0", + "clone": "^1.0.2", + "enhanced-resolve": "~0.9.0", + "interpret": "^0.6.4", + "loader-utils": "^0.2.11", + "memory-fs": "~0.3.0", + "mkdirp": "~0.5.0", + "node-libs-browser": "^0.7.0", + "optimist": "~0.6.0", + "supports-color": "^3.1.0", + "tapable": "~0.1.8", + "uglify-js": "~2.7.3", + "watchpack": "^0.2.1", + "webpack-core": "~0.6.9" + }, "dependencies": { "acorn": { "version": "3.3.0", @@ -4936,12 +7140,19 @@ "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, "dependencies": { "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } } } }, @@ -4950,12 +7161,22 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz", "integrity": "sha1-LiUs4d+wINvaHMs33ybzCrAU29E=", "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^1.3.4", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3" + }, "dependencies": { "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } } } }, @@ -4963,19 +7184,41 @@ "version": "1.16.5", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz", "integrity": "sha1-DL1fLSrI1OWTqs1clwLnu9XlmJI=", - "dev": true + "dev": true, + "requires": { + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "express": "^4.13.3", + "http-proxy-middleware": "~0.17.1", + "open": "0.0.5", + "optimist": "~0.6.1", + "serve-index": "^1.7.2", + "sockjs": "^0.3.15", + "sockjs-client": "^1.0.3", + "stream-cache": "~0.0.1", + "strip-ansi": "^3.0.0", + "supports-color": "^3.1.1", + "webpack-dev-middleware": "^1.10.2" + } }, "webpack-sources": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz", "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=", - "dev": true + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.5.3" + } }, "websocket-driver": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } }, "websocket-extensions": { "version": "0.1.1", @@ -4988,6 +7231,9 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", "dev": true, + "requires": { + "iconv-lite": "0.4.13" + }, "dependencies": { "iconv-lite": { "version": "0.4.13", @@ -5007,6 +7253,10 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, "dependencies": { "webidl-conversions": { "version": "3.0.1", @@ -5044,7 +7294,10 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } }, "xml-name-validator": { "version": "2.0.1", @@ -5062,7 +7315,13 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } } } }