diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..02af512 --- /dev/null +++ b/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015", + "react" + ], + "plugins": ["transform-object-rest-spread", "babel-plugin-transform-runtime"], + "env": { + "start": { + "presets": [ + "react-hmre" + ] + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index 03ff825..2910f40 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,74 @@ -Boron [![npm version](https://badge.fury.io/js/boron.svg)](http://badge.fury.io/js/boron) +Reboron ===== - -[![Pair on this](https://tf-assets-staging.s3.amazonaws.com/badges/thinkful_repo_badge.svg)](http://start.thinkful.com/react/?utm_source=github&utm_medium=badge&utm_campaign=boron) - A collection of dialog animations with React.js. -* React 0.14+ Use `boron 0.2` -* React 0.12+ Use `boron 0.1` - -## Demo & Examples - -Live demo: [yuanyan.github.io/boron](http://yuanyan.github.io/boron/) - -To build the examples locally, run: +* Demo - [https://jerairrest.github.io/reboron/](https://jerairrest.github.io/reboron/) -``` -npm install -gulp dev -``` - -Then open [`localhost:9999`](http://localhost:9999) in a browser. +## About +This is a fork of http://yuanyan.github.io/boron/ that has fixes for the deprecation warnings in React 15.*. I will be working on updating this package to use es6 as well as fixing some of the issues in the main package. PRs welcome! ## Installation - -The easiest way to use `boron` is to install it from NPM and include it in your own React build process (using [Browserify](http://browserify.org), etc). - -You can also use the standalone build by including `dist/boron.js` in your page. If you use this, make sure you have already included React, and it is available as a global variable. - +The easiest way to use `reboron` is to install it from NPM and include it in your own React build process ``` -npm install boron --save +npm install reboron --save ``` ## Usage - ``` javascript -var Modal = require('boron/DropModal'); -var Example = React.createClass({ - showModal: function(){ - this.refs.modal.show(); - }, - hideModal: function(){ - this.refs.modal.hide(); - }, - - callback: function(event){ - console.log(event); - }, - - render: function() { - return ( -
- - -

I am a dialog

- -
-
- ); - } -}); +import React, { Component } from 'react'; +import Modal from 'reboron/DropModal'; + +class Example extends Component { + constructor(props) { + super(props); + } + + showModal() { + this.refs.modal.show(); + } + + hideModal() { + this.refs.modal.hide(); + } + + callback(evt) { + console.log(evt); + } + + render() { + return ( +
+ + this.callback() }> +

I am a dialog

+ +
+
+ ); + } +} + +export default Example; ``` ## Props - * className - Add custom class name. * keyboard - Receive a callback function or a boolean to choose to close the modal when escape key is pressed. * backdrop - Includes a backdrop element. * closeOnClick - Close the backdrop element when clicked. +* duration - duration in milliseconds before the modal is hidden * onShow - Show callback. * onHide - Hide callback. Argument is the source of the hide action, one of: - * hide - hide() method is the cause of the hide. - * toggle - toggle() method is the cause of the hide - * keyboard - keyboard (escape key) is the cause of the hide - * backdrop - backdrop click is the cause of the hide - * [any] - custom argument passed by invoking code into the hide() method when called directly. + * hide - hide() method is the cause of the hide. + * toggle - toggle() method is the cause of the hide + * keyboard - keyboard (escape key) is the cause of the hide + * backdrop - backdrop click is the cause of the hide + * timeout - timeout is the cause of the hide + * [any] - custom argument passed by invoking code into the hide() method when called directly. * modalStyle - CSS styles to apply to the modal * backdropStyle - CSS styles to apply to the backdrop * contentStyle - CSS styles to apply to the modal's content +* rectStyle - CSS styles to apply to the modal's rectangle _(OutlineModal only)_ Note: If the hide() method is called directly, a custom source string can be passed as the argument, as noted above. For example, this might be useful if @@ -89,76 +81,85 @@ The values for the CSS properties will either add new properties or override the Modal with 80% width: ``` javascript -var Modal = require('boron/ScaleModal'); +import React, { Component } from 'react'; +import Modal from 'reboron/ScaleModal'; // Style object -var modalStyle = { - width: '80%' +const modalStyle = { + width: '80%', }; -var Example = React.createClass({ - showModal: function(){ - this.refs.modal.show(); - }, - hideModal: function(){ - this.refs.modal.hide(); - }, - render: function() { - return ( -
- - -

I am a dialog

- -
-
- ); - } -}); +class Example extends Component { + showModal() { + this.refs.modal.show(); + } + + hideModal() { + this.refs.modal.hide(); + } + + render() { + return ( +
+ + +

I am a dialog

+ +
+
+ ); + } +} + +export default Example; ``` Red backdrop with a blue modal, rotated at 45 degrees: + ``` javascript -var Modal = require('boron/FlyModal'); +import React, { Component } from 'react'; +import Modal from 'reboron/FlyModal'; // Individual styles for the modal, modal content, and backdrop -var modalStyle = { - transform: 'rotate(45deg) translateX(-50%)', +const modalStyle = { + transform: 'rotate(45deg) translateX(-50%)', }; -var backdropStyle = { - backgroundColor: 'red' +const backdropStyle = { + backgroundColor: 'red', }; -var contentStyle = { - backgroundColor: 'blue', - height: '100%' +const contentStyle = { + backgroundColor: 'blue', + height: '100%', }; -var Example = React.createClass({ - showModal: function(){ - this.refs.modal.show(); - }, - hideModal: function(){ - this.refs.modal.hide(); - }, - render: function() { - return ( -
- - -

I am a dialog

- -
-
- ); - } -}); +class Example extends Component { + showModal() { + this.refs.modal.show(); + } + + hideModal() { + this.refs.modal.hide(); + } + + render() { + return ( +
+ + +

I am a dialog

+ +
+
+ ); + } +} + +export default Example; ``` - ## Modals - * DropModal * FadeModal * FlyModal @@ -166,12 +167,5 @@ var Example = React.createClass({ * ScaleModal * WaveModal -## Browser Support - -![IE](https://raw.github.com/alrra/browser-logos/master/internet-explorer/internet-explorer_48x48.png) | ![Chrome](https://raw.github.com/alrra/browser-logos/master/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/firefox/firefox_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/opera/opera_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/safari/safari_48x48.png) ---- | --- | --- | --- | --- | -IE 10+ ✔ | Chrome 4.0+ ✔ | Firefox 16.0+ ✔ | Opera 15.0+ ✔ | Safari 4.0+ ✔ | - ## License - -Boron is [MIT licensed](./LICENSE). +Reboron is [MIT licensed](./LICENSE). diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 18ede95..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,323 +0,0 @@ -var browserify = require('browserify'), - shim = require('browserify-shim'), - chalk = require('chalk'), - del = require('del'), - vinyPaths = require('vinyl-paths'), - gulp = require('gulp'), - bump = require('gulp-bump'), - connect = require('gulp-connect'), - deploy = require("gulp-gh-pages"), - git = require("gulp-git"), - less = require('gulp-less'), - rename = require('gulp-rename'), - streamify = require('gulp-streamify'), - uglify = require('gulp-uglify'), - gutil = require('gulp-util'), - merge = require('merge-stream'), - reactify = require('reactify'), - react = require('gulp-react'), - source = require('vinyl-source-stream'), - watchify = require('watchify'); - - -/** - * Constants - */ - -var SRC_PATH = 'src'; -var DIST_PATH = 'dist'; - -var COMPONENT_NAME = 'Boron'; -var PACKAGE_FILE = COMPONENT_NAME + '.js'; -var PACKAGE_NAME = COMPONENT_NAME.toLowerCase(); - -var DEPENDENCIES = ['react', 'react-dom']; - -var EXAMPLE_SRC_PATH = 'example/src'; -var EXAMPLE_DIST_PATH = 'example/dist'; - -var EXAMPLE_APP = 'app.js'; -var EXAMPLE_COPY = [ - 'node_modules/codemirror/lib/codemirror.js', - 'node_modules/codemirror/lib/codemirror.css', - 'node_modules/codemirror/mode/javascript/javascript.js', - 'node_modules/react/dist/JSXTransformer.js' -]; -var EXAMPLE_LESS = 'app.less'; -var EXAMPLE_FILES = [ - 'index.html' -]; - - -/** - * Bundle helpers - */ - -function doBundle(target, name, dest) { - return target.bundle() - .on('error', function(e) { - gutil.log('Browserify Error', e); - }) - .pipe(source(name)) - .pipe(gulp.dest(dest)) - .pipe(connect.reload()); -} - -function watchBundle(target, name, dest) { - return watchify(target) - .on('update', function (scriptIds) { - scriptIds = scriptIds - .filter(function(i) { return i.substr(0,2) !== './' }) - .map(function(i) { return chalk.blue(i.replace(__dirname, '')) }); - if (scriptIds.length > 1) { - gutil.log(scriptIds.length + ' Scripts updated:\n* ' + scriptIds.join('\n* ') + '\nrebuilding...'); - } else { - gutil.log(scriptIds[0] + ' updated, rebuilding...'); - } - doBundle(target, name, dest); - }) - .on('time', function (time) { - gutil.log(chalk.green(name + ' built in ' + (Math.round(time / 10) / 100) + 's')); - }); -} - - -/** - * Prepare task for examples - */ - -gulp.task('clean:examples', function(done) { - del([EXAMPLE_DIST_PATH], done); -}); - - -/** - * Build example files - */ -gulp.task('build:example:files', function buildExampleFiles() { - return gulp.src(EXAMPLE_FILES.map(function(i) { return EXAMPLE_SRC_PATH + '/' + i })) - .pipe(gulp.dest(EXAMPLE_DIST_PATH)) - .pipe(connect.reload()); -}); - - -/** - * Build example css from less - */ -gulp.task('build:example:css', function buildExampleCSS() { - return gulp.src(EXAMPLE_SRC_PATH + '/' + EXAMPLE_LESS) - .pipe(less()) - .pipe(gulp.dest(EXAMPLE_DIST_PATH)) - .pipe(connect.reload()); -}); - - -/** - * Build example scripts - * - * Returns a gulp task with watchify when in development mode - */ - -function buildExampleScripts(dev) { - - var dest = EXAMPLE_DIST_PATH; - - var opts = dev ? watchify.args : {}; - opts.debug = dev ? true : false; - opts.hasExports = true; - - return function() { - - var common = browserify(opts), - bundle = browserify(opts).require('./' + SRC_PATH + '/' + PACKAGE_FILE, { expose: PACKAGE_NAME }), - example = browserify(opts).exclude(PACKAGE_NAME).add('./' + EXAMPLE_SRC_PATH + '/' + EXAMPLE_APP); - - DEPENDENCIES.forEach(function(pkg) { - common.require(pkg); - bundle.exclude(pkg); - example.exclude(pkg); - }); - - if (dev) { - watchBundle(common, 'common.js', dest); - watchBundle(bundle, 'bundle.js', dest); - watchBundle(example, 'app.js', dest); - } - - return merge( - doBundle(common, 'common.js', dest), - doBundle(bundle, 'bundle.js', dest), - doBundle(example, 'app.js', dest) - ); - - } - -}; - - -gulp.task('dev:build:example:scripts', buildExampleScripts(true)); -gulp.task('build:example:scripts', buildExampleScripts()); - -gulp.task('build:example:copy', function(){ - return gulp.src(EXAMPLE_COPY) - .pipe(gulp.dest(EXAMPLE_DIST_PATH)) - .pipe(connect.reload()); -}); - -/** - * Build examples - */ -gulp.task('build:examples', [ - 'build:example:files', - 'build:example:css', - 'build:example:scripts', - 'build:example:copy' -]); - -gulp.task('watch:examples', [ - 'build:example:files', - 'build:example:css', - 'dev:build:example:scripts', - 'build:example:copy' -], function() { - gulp.watch(EXAMPLE_FILES.map(function(i) { return EXAMPLE_SRC_PATH + '/' + i }), ['build:example:files']); - gulp.watch([EXAMPLE_SRC_PATH + '/' + EXAMPLE_LESS], ['build:example:css']); -}); - - -/** - * Serve task for local development - */ - -gulp.task('dev:server', function() { - connect.server({ - root: 'example/dist', - port: 9999, - livereload: true - }); -}); - -/** - * Development task - */ - -gulp.task('dev', [ - 'dev:server', - 'watch:examples' -]); - - -/** - * Build task - */ - -gulp.task('clean:dist', function(done) { - del([DIST_PATH], done); -}); - -gulp.task('build:dist', function() { - - var standalone = browserify('./' + SRC_PATH + '/' + PACKAGE_FILE, { - standalone: COMPONENT_NAME - }) - .transform(reactify) - .transform(shim); - - DEPENDENCIES.forEach(function(pkg) { - standalone.exclude(pkg); - }); - - return standalone.bundle() - .on('error', function(e) { - gutil.log('Browserify Error', e); - }) - .pipe(source(PACKAGE_NAME + '.js')) - .pipe(gulp.dest(DIST_PATH)) - .pipe(rename(PACKAGE_NAME + '.min.js')) - .pipe(streamify(uglify())) - .pipe(gulp.dest(DIST_PATH)); - -}); - -gulp.task('build', [ - 'clean:dist', -], function(){ - gulp.start('build:dist', 'build:examples') -}); - - -/** - * Version bump tasks - */ - -function getBumpTask(type) { - return function() { - return gulp.src(['./package.json']) - .pipe(bump({ type: type })) - .pipe(gulp.dest('./')); - }; -} - -gulp.task('bump', getBumpTask('patch')); -gulp.task('bump:minor', getBumpTask('minor')); -gulp.task('bump:major', getBumpTask('major')); - - -/** - * Git tag task - * (version *must* be bumped first) - */ - -gulp.task('publish:tag', function(done) { - var pkg = require('./package.json'); - var v = 'v' + pkg.version; - var message = 'Release ' + v; - - git.tag(v, message, function (err) { - if (err) throw err; - git.push('origin', v, function (err) { - if (err) throw err; - done(); - }); - }); -}); - - - -/** - * npm publish task - * * (version *must* be bumped first) - */ -function buildToRoot(){ - return gulp.src(SRC_PATH + '/*.js') - .pipe(react()) - .pipe(gulp.dest('./')) -} - -gulp.task('build:npm', buildToRoot); - -gulp.task('publish:npm', ['build:npm'], function(done) { - - require('child_process') - .spawn('npm', ['publish'], { stdio: 'inherit' }) - .on('close', done); -}); - -gulp.task('clean:npm', function () { - buildToRoot().pipe(vinyPaths(del)) -}) - -gulp.task('release:npm', ['publish:npm'], function(){ - gulp.start('clean:npm') -}); - - -/** - * Deploy tasks - */ - -gulp.task('publish:examples', ['build:examples'], function() { - return gulp.src(EXAMPLE_DIST_PATH + '/**/*').pipe(deploy()); -}); - -gulp.task('release', ['publish:tag', 'release:npm', 'publish:examples']); diff --git a/package.json b/package.json index 280a480..d80efd5 100644 --- a/package.json +++ b/package.json @@ -1,54 +1,48 @@ { - "name": "boron", - "version": "0.2.4", + "name": "reboron", + "version": "0.4.5", "description": "A collection of dialog animations with React.js", "main": "Boron.js", - "author": "Yuanyan Cao", + "author": "Jeremy Ayerst", "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/yuanyan/boron.git" + "url": "https://github.com/jerairrest/reboron.git" + }, + "scripts": { + "build": "npm run drop & npm run fade & npm run fly & npm run factory & npm run outline & npm run scale & npm run wave", + "drop": "babel src/DropModal.js --out-file DropModal.js", + "fade": "babel src/FadeModal.js --out-file FadeModal.js", + "fly": "babel src/FlyModal.js --out-file FlyModal.js", + "factory": "babel src/modalFactory.js --out-file modalFactory.js", + "outline": "babel src/OutlineModal.js --out-file OutlineModal.js", + "scale": "babel src/ScaleModal.js --out-file ScaleModal.js", + "wave": "babel src/WaveModal.js --out-file WaveModal.js" }, "dependencies": { "domkit": "^0.0.1" }, "peerDependencies": { - "react": ">=0.14.0" + "prop-types": ">=15.0", + "react": ">=0.15.0" }, "devDependencies": { - "react-dom": ">=0.14.0", - "reactify": "^0.17.0", - "browserify": "^6.3.3", - "browserify-shim": "^3.8.0", - "chalk": "^0.5.1", - "codemirror": "^5.0.0", - "del": "^0.1.3", - "gulp": "^3.8.10", - "gulp-bump": "^0.1.11", - "gulp-connect": "^2.2.0", - "gulp-gh-pages": "^0.4.0", - "gulp-git": "^0.5.5", - "gulp-less": "^1.3.6", - "gulp-rename": "^1.2.0", - "gulp-streamify": "^0.0.5", - "gulp-uglify": "^1.0.1", - "gulp-util": "^3.0.1", - "merge-stream": "^0.1.6", - "vinyl-paths": "^1.0.0", - "vinyl-source-stream": "^1.0.0", - "watchify": "^2.1.1", - "gulp-react": "^3.0.1" - }, - "browserify": { - "transform": [ - "reactify" - ] - }, - "browserify-shim": { - "react": "global:React" - }, - "scripts": { - "release": "gulp release" + "react": "^15.6.1", + "react-dom": "^15.6.1", + "babel-cli": "^6.24.0", + "babel-core": "6.17.0", + "babel-eslint": "7.1.1", + "babel-jest": "17.0.2", + "babel-loader": "6.2.7", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.1", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-es2015": "^6.18.0", + "babel-preset-latest": "^6.24.0", + "babel-preset-react": "^6.16.0", + "babel-preset-react-app": "^2.0.1", + "babel-preset-react-hmre": "^1.1.1" }, "keywords": [ "react", diff --git a/src/Boron.js b/src/Boron.js deleted file mode 100644 index 6613611..0000000 --- a/src/Boron.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - DropModal: require('./DropModal'), - WaveModal: require('./WaveModal'), - FlyModal: require('./FlyModal'), - FadeModal: require('./FadeModal'), - ScaleModal: require('./ScaleModal'), - OutlineModal: require('./OutlineModal'), -} diff --git a/src/DropModal.js b/src/DropModal.js index f271777..e50b1a6 100644 --- a/src/DropModal.js +++ b/src/DropModal.js @@ -1,133 +1,126 @@ -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '0.4s', - animationTimingFunction: 'cubic-bezier(0.7,0,0.3,1)' +const animation = { + show: { + animationDuration: '0.4s', + animationTimingFunction: 'cubic-bezier(0.7,0,0.3,1)', + }, + hide: { + animationDuration: '0.4s', + animationTimingFunction: 'cubic-bezier(0.7,0,0.3,1)', + }, + showModalAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + transform: 'translate(-50%, -300px)', }, - - hide: { - animationDuration: '0.4s', - animationTimingFunction: 'cubic-bezier(0.7,0,0.3,1)' + '100%': { + opacity: 1, + transform: 'translate(-50%, -50%)', }, - - showModalAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - transform: 'translate(-50%, -300px)' - }, - '100%': { - opacity: 1, - transform: 'translate(-50%, -50%)' - } - }), - - hideModalAnimation: insertKeyframesRule({ - '0%': { - opacity: 1, - transform: 'translate(-50%, -50%)' - }, - '100%': { - opacity: 0, - transform: 'translate(-50%, 100px)' - } - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - } - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '100%': { - opacity: 0 - } - }), - - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - transform: 'translate(0, -20px)' - }, - '100%': { - opacity: 1, - transform: 'translate(0, 0)' - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1, - transform: 'translate(0, 0)' - }, - '100%': { - opacity: 0, - transform: 'translate(0, 50px)' - } - }) -}; - -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showModalAnimation = animation.showModalAnimation; -var hideModalAnimation = animation.hideModalAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; - -module.exports = modalFactory({ - getRef: function(willHidden) { - return 'modal'; + }), + hideModalAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + transform: 'translate(-50%, -50%)', }, - getModalStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - width: "500px", - transform: "translate(-50%, -50%)", - top: "50%", - left: "50%", - backgroundColor: "white", - zIndex: 1050, - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideModalAnimation : showModalAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) + '100%': { + opacity: 0, + transform: 'translate(-50%, 100px)', }, - getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, }, - getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - opacity: 0, - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationDelay: '0.25s', - animationName: showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } + '100%': { + opacity: 0.9, + }, + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, + }, + '100%': { + opacity: 0, + }, + }), + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + transform: 'translate(0, -20px)', + }, + '100%': { + opacity: 1, + transform: 'translate(0, 0)', + }, + }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + transform: 'translate(0, 0)', + }, + '100%': { + opacity: 0, + transform: 'translate(0, 50px)', + }, + }), +}; + +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showModalAnimation = animation.showModalAnimation; +const hideModalAnimation = animation.hideModalAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; + +export default modalFactory({ + getRef: (willHidden) => { + return 'modal'; + }, + getModalStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + width: '500px', + transform: 'translate(-50%, -50%)', + top: '50%', + left: '50%', + backgroundColor: 'white', + zIndex: 1050, + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideModalAnimation : showModalAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getBackdropStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getContentStyle: (willHidden) => { + return appendVendorPrefix({ + margin: 0, + opacity: 0, + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationDelay: '0.25s', + animationName: showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/FadeModal.js b/src/FadeModal.js index 02099d8..64f5603 100644 --- a/src/FadeModal.js +++ b/src/FadeModal.js @@ -1,97 +1,94 @@ -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '0.3s', - animationTimingFunction: 'ease-out' +const animation = { + show: { + animationDuration: '0.3s', + animationTimingFunction: 'ease-out', + }, + hide: { + animationDuration: '0.3s', + animationTimingFunction: 'ease-out', + }, + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, }, - hide: { - animationDuration: '0.3s', - animationTimingFunction: 'ease-out' + '100%': { + opacity: 1, }, - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 1 - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0 - } - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - }, - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '100%': { - opacity: 0 - } - }) -}; - -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; - -module.exports = modalFactory({ - getRef: function(willHidden) { - return 'content'; + }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, }, - getModalStyle: function(willHidden) { - return appendVendorPrefix({ - zIndex: 1050, - position: "fixed", - width: "500px", - transform: "translate3d(-50%, -50%, 0)", - top: "50%", - left: "50%" - }) + '100%': { + opacity: 0, }, - getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationFillMode: 'forwards', - animationDuration: '0.3s', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, }, - getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - backgroundColor: "white", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideContentAnimation : showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } + '100%': { + opacity: 0.9, + }, + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, + }, + '100%': { + opacity: 0, + }, + }), +}; + +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; + +export default modalFactory({ + getRef: (willHidden) => { + return 'content'; + }, + getModalStyle: (willHidden) => { + return appendVendorPrefix({ + zIndex: 1050, + position: 'fixed', + width: '500px', + transform: 'translate3d(-50%, -50%, 0)', + top: '50%', + left: '50%', + }); + }, + getBackdropStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationFillMode: 'forwards', + animationDuration: '0.3s', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getContentStyle: (willHidden) => { + return appendVendorPrefix({ + margin: 0, + backgroundColor: 'white', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/FlyModal.js b/src/FlyModal.js index a0225c9..01681fc 100644 --- a/src/FlyModal.js +++ b/src/FlyModal.js @@ -1,112 +1,109 @@ -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '0.5s', - animationTimingFunction: 'ease-out' +const animation = { + show: { + animationDuration: '0.5s', + animationTimingFunction: 'ease-out', + }, + hide: { + animationDuration: '0.5s', + animationTimingFunction: 'ease-out', + }, + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + transform: 'translate3d(calc(-100vw - 50%), 0, 0)', }, - hide: { - animationDuration: '0.5s', - animationTimingFunction: 'ease-out' + '50%': { + opacity: 1, + transform: 'translate3d(100px, 0, 0)', }, - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - transform: 'translate3d(calc(-100vw - 50%), 0, 0)' - }, - '50%': { - opacity: 1, - transform: 'translate3d(100px, 0, 0)' - }, - '100%': { - opacity: 1, - transform: 'translate3d(0, 0, 0)' - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1, - transform: 'translate3d(0, 0, 0)' - }, - '50%': { - opacity: 1, - transform: 'translate3d(-100px, 0, 0) scale3d(1.1, 1.1, 1)' - }, - '100%': { - opacity: 0, - transform: 'translate3d(calc(100vw + 50%), 0, 0)' - }, - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - }, - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '90%': { - opactiy: 0.9 - }, - '100%': { - opacity: 0 - } - }) -}; - -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; - -module.exports = modalFactory({ - getRef: function(willHidden) { - return 'content'; + '100%': { + opacity: 1, + transform: 'translate3d(0, 0, 0)', + }, + }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + transform: 'translate3d(0, 0, 0)', + }, + '50%': { + opacity: 1, + transform: 'translate3d(-100px, 0, 0) scale3d(1.1, 1.1, 1)', }, - getModalStyle: function(willHidden) { - return appendVendorPrefix({ - zIndex: 1050, - position: "fixed", - width: "500px", - transform: "translate3d(-50%, -50%, 0)", - top: "50%", - left: "50%" - }) + '100%': { + opacity: 0, + transform: 'translate3d(calc(100vw + 50%), 0, 0)', }, - getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationFillMode: 'forwards', - animationDuration: '0.3s', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, }, - getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - backgroundColor: "white", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideContentAnimation : showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } + '100%': { + opacity: 0.9, + }, + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, + }, + '90%': { + opactiy: 0.9, + }, + '100%': { + opacity: 0, + }, + }), +}; + +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; + +export default modalFactory({ + getRef: (willHidden) => { + return 'content'; + }, + getModalStyle: (willHidden) => { + return appendVendorPrefix({ + zIndex: 1050, + position: 'fixed', + width: '500px', + transform: 'translate3d(-50%, -50%, 0)', + top: '50%', + left: '50%', + }); + }, + getBackdropStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationFillMode: 'forwards', + animationDuration: '0.3s', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getContentStyle: (willHidden) => { + return appendVendorPrefix({ + margin: 0, + backgroundColor: 'white', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/OutlineModal.js b/src/OutlineModal.js index b50a5fe..3d38d30 100644 --- a/src/OutlineModal.js +++ b/src/OutlineModal.js @@ -1,146 +1,140 @@ -var React = require('react'); -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import React from 'react'; +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '0.8s', - animationTimingFunction: 'cubic-bezier(0.6,0,0.4,1)' +const animation = { + show: { + animationDuration: '0.8s', + animationTimingFunction: 'cubic-bezier(0.6,0,0.4,1)', + }, + hide: { + animationDuration: '0.4s', + animationTimingFunction: 'ease-out', + }, + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, }, - hide: { - animationDuration: '0.4s', - animationTimingFunction: 'ease-out' + '40%':{ + opacity: 0, }, - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - }, - '40%':{ - opacity: 0 - }, - '100%': { - opacity: 1, - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0, - } - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - }, - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '100%': { - opacity: 0 - } - }) -}; - -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; - -module.exports = modalFactory({ - getRef: function(willHidden) { - return 'content'; + '100%': { + opacity: 1, }, - getSharp: function(willHidden) { - var strokeDashLength = 1680; - - var showSharpAnimation = insertKeyframesRule({ - '0%': { - 'stroke-dashoffset': strokeDashLength - }, - '100%': { - 'stroke-dashoffset': 0 - }, - }); - - - var sharpStyle = { - position: 'absolute', - width: 'calc(100%)', - height: 'calc(100%)', - zIndex: '-1' - }; - - var rectStyle = appendVendorPrefix({ - animationDuration: willHidden? '0.4s' :'0.8s', - animationFillMode: 'forwards', - animationName: willHidden? hideContentAnimation: showSharpAnimation, - stroke: '#ffffff', - strokeWidth: '2px', - strokeDasharray: strokeDashLength - }); - - return
- - - -
+ }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + }, + '100%': { + opacity: 0, + }, + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + }, + '100%': { + opacity: 0.9, }, - getModalStyle: function(willHidden) { - return appendVendorPrefix({ - zIndex: 1050, - position: "fixed", - width: "500px", - transform: "translate3d(-50%, -50%, 0)", - top: "50%", - left: "50%" - }) + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, }, - getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationFillMode: 'forwards', - animationDuration: '0.4s', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); + '100%': { + opacity: 0, }, - getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - backgroundColor: "white", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideContentAnimation : showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } + }), +}; + +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; + +export default modalFactory({ + getRef: (willHidden) => { + return 'content'; + }, + getSharp: (willHidden, rectStyles = {}) => { + const strokeDashLength = 1680; + const showSharpAnimation = insertKeyframesRule({ + '0%': { + 'stroke-dashoffset': strokeDashLength, + }, + '100%': { + 'stroke-dashoffset': 0, + }, + }); + const sharpStyle = { + position: 'absolute', + width: 'calc(100%)', + height: 'calc(100%)', + zIndex: '-1', + }; + const rectStyle = appendVendorPrefix({ + animationDuration: willHidden ? '0.4s' : '0.8s', + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showSharpAnimation, + stroke: '#ffffff', + strokeWidth: '2px', + strokeDasharray: strokeDashLength, + ...rectStyles, + }); + return ( +
+ + + +
+ ); + }, + getModalStyle: (willHidden) => { + return appendVendorPrefix({ + zIndex: 1050, + position: 'fixed', + width: '500px', + transform: 'translate3d(-50%, -50%, 0)', + top: '50%', + left: '50%', + }) + }, + getBackdropStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationFillMode: 'forwards', + animationDuration: '0.4s', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getContentStyle: (willHidden) => { + return appendVendorPrefix({ + margin: 0, + backgroundColor: 'white', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/ScaleModal.js b/src/ScaleModal.js index b945b5f..e345817 100644 --- a/src/ScaleModal.js +++ b/src/ScaleModal.js @@ -1,100 +1,97 @@ -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '0.4s', - animationTimingFunction: 'cubic-bezier(0.6,0,0.4,1)' +const animation = { + show: { + animationDuration: '0.4s', + animationTimingFunction: 'cubic-bezier(0.6,0,0.4,1)', + }, + hide: { + animationDuration: '0.4s', + animationTimingFunction: 'ease-out', + }, + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + transform: 'scale3d(0, 0, 1)', }, - hide: { - animationDuration: '0.4s', - animationTimingFunction: 'ease-out' + '100%': { + opacity: 1, + transform: 'scale3d(1, 1, 1)', }, - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - transform: 'scale3d(0, 0, 1)' - }, - '100%': { - opacity: 1, - transform: 'scale3d(1, 1, 1)' - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0, - transform: 'scale3d(0.5, 0.5, 1)' - } - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - }, - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '100%': { - opacity: 0 - } - }) + }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + }, + '100%': { + opacity: 0, + transform: 'scale3d(0.5, 0.5, 1)', + }, + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + }, + '100%': { + opacity: 0.9, + }, + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, + }, + '100%': { + opacity: 0, + }, + }), }; -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; -module.exports = modalFactory({ +export default modalFactory({ getRef: function(willHidden) { - return 'content'; + return 'content'; }, getModalStyle: function(willHidden) { - return appendVendorPrefix({ - zIndex: 1050, - position: "fixed", - width: "500px", - transform: "translate3d(-50%, -50%, 0)", - top: "50%", - left: "50%" - }) + return appendVendorPrefix({ + zIndex: 1050, + position: 'fixed', + width: '500px', + transform: 'translate3d(-50%, -50%, 0)', + top: '50%', + left: '50%', + }); }, getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationFillMode: 'forwards', - animationDuration: '0.4s', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationFillMode: 'forwards', + animationDuration: '0.4s', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); }, getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - backgroundColor: "white", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideContentAnimation : showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } + return appendVendorPrefix({ + margin: 0, + backgroundColor: 'white', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/WaveModal.js b/src/WaveModal.js index 987b9c5..336be75 100644 --- a/src/WaveModal.js +++ b/src/WaveModal.js @@ -1,242 +1,239 @@ -var modalFactory = require('./modalFactory'); -var insertKeyframesRule = require('domkit/insertKeyframesRule'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); +import modalFactory from './modalFactory'; +import insertKeyframesRule from 'domkit/insertKeyframesRule'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; -var animation = { - show: { - animationDuration: '1s', - animationTimingFunction: 'linear' - }, - hide: { - animationDuration: '0.3s', - animationTimingFunction: 'ease-out' - }, - showContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 0, - transform: 'matrix3d(0.7, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '2.083333%': { - transform: 'matrix3d(0.75266, 0, 0, 0, 0, 0.76342, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '4.166667%': { - transform: 'matrix3d(0.81071, 0, 0, 0, 0, 0.84545, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '6.25%': { - transform: 'matrix3d(0.86808, 0, 0, 0, 0, 0.9286, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '8.333333%': { - transform: 'matrix3d(0.92038, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '10.416667%': { - transform: 'matrix3d(0.96482, 0, 0, 0, 0, 1.05202, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '12.5%': { - transform: 'matrix3d(1, 0, 0, 0, 0, 1.08204, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '14.583333%': { - transform: 'matrix3d(1.02563, 0, 0, 0, 0, 1.09149, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '16.666667%': { - transform: 'matrix3d(1.04227, 0, 0, 0, 0, 1.08453, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '18.75%': { - transform: 'matrix3d(1.05102, 0, 0, 0, 0, 1.06666, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '20.833333%': { - transform: 'matrix3d(1.05334, 0, 0, 0, 0, 1.04355, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '22.916667%': { - transform: 'matrix3d(1.05078, 0, 0, 0, 0, 1.02012, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '25%': { - transform: 'matrix3d(1.04487, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '27.083333%': { - transform: 'matrix3d(1.03699, 0, 0, 0, 0, 0.98534, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '29.166667%': { - transform: 'matrix3d(1.02831, 0, 0, 0, 0, 0.97688, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '31.25%': { - transform: 'matrix3d(1.01973, 0, 0, 0, 0, 0.97422, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '33.333333%': { - transform: 'matrix3d(1.01191, 0, 0, 0, 0, 0.97618, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '35.416667%': { - transform: 'matrix3d(1.00526, 0, 0, 0, 0, 0.98122, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '37.5%': { - transform: 'matrix3d(1, 0, 0, 0, 0, 0.98773, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '39.583333%': { - transform: 'matrix3d(0.99617, 0, 0, 0, 0, 0.99433, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '41.666667%': { - transform: 'matrix3d(0.99368, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '43.75%': { - transform: 'matrix3d(0.99237, 0, 0, 0, 0, 1.00413, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '45.833333%': { - transform: 'matrix3d(0.99202, 0, 0, 0, 0, 1.00651, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '47.916667%': { - transform: 'matrix3d(0.99241, 0, 0, 0, 0, 1.00726, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '50%': { - opacity: 1, - transform: 'matrix3d(0.99329, 0, 0, 0, 0, 1.00671, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '52.083333%': { - transform: 'matrix3d(0.99447, 0, 0, 0, 0, 1.00529, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '54.166667%': { - transform: 'matrix3d(0.99577, 0, 0, 0, 0, 1.00346, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '56.25%': { - transform: 'matrix3d(0.99705, 0, 0, 0, 0, 1.0016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '58.333333%': { - transform: 'matrix3d(0.99822, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '60.416667%': { - transform: 'matrix3d(0.99921, 0, 0, 0, 0, 0.99884, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '62.5%': { - transform: 'matrix3d(1, 0, 0, 0, 0, 0.99816, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '64.583333%': { - transform: 'matrix3d(1.00057, 0, 0, 0, 0, 0.99795, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '66.666667%': { - transform: 'matrix3d(1.00095, 0, 0, 0, 0, 0.99811, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '68.75%': { - transform: 'matrix3d(1.00114, 0, 0, 0, 0, 0.99851, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '70.833333%': { - transform: 'matrix3d(1.00119, 0, 0, 0, 0, 0.99903, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '72.916667%': { - transform: 'matrix3d(1.00114, 0, 0, 0, 0, 0.99955, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '75%': { - transform: 'matrix3d(1.001, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '77.083333%': { - transform: 'matrix3d(1.00083, 0, 0, 0, 0, 1.00033, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '79.166667%': { - transform: 'matrix3d(1.00063, 0, 0, 0, 0, 1.00052, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '81.25%': { - transform: 'matrix3d(1.00044, 0, 0, 0, 0, 1.00058, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '83.333333%': { - transform: 'matrix3d(1.00027, 0, 0, 0, 0, 1.00053, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '85.416667%': { - transform: 'matrix3d(1.00012, 0, 0, 0, 0, 1.00042, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '87.5%': { - transform: 'matrix3d(1, 0, 0, 0, 0, 1.00027, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '89.583333%': { - transform: 'matrix3d(0.99991, 0, 0, 0, 0, 1.00013, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '91.666667%': { - transform: 'matrix3d(0.99986, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '93.75%': { - transform: 'matrix3d(0.99983, 0, 0, 0, 0, 0.99991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '95.833333%': { - transform: 'matrix3d(0.99982, 0, 0, 0, 0, 0.99985, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '97.916667%': { - transform: 'matrix3d(0.99983, 0, 0, 0, 0, 0.99984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - }, - '100%': { - opacity: 1, - transform: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)' - } - }), - - hideContentAnimation: insertKeyframesRule({ - '0%': { - opacity: 1 - }, - '100%': { - opacity: 0, - transform: 'scale3d(0.8, 0.8, 1)' - }, - }), - - showBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0 - }, - '100%': { - opacity: 0.9 - }, - }), - - hideBackdropAnimation: insertKeyframesRule({ - '0%': { - opacity: 0.9 - }, - '100%': { - opacity: 0 - } - }) +const animation = { + show: { + animationDuration: '1s', + animationTimingFunction: 'linear', + }, + hide: { + animationDuration: '0.3s', + animationTimingFunction: 'ease-out', + }, + showContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + transform: 'matrix3d(0.7, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '2.083333%': { + transform: 'matrix3d(0.75266, 0, 0, 0, 0, 0.76342, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '4.166667%': { + transform: 'matrix3d(0.81071, 0, 0, 0, 0, 0.84545, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '6.25%': { + transform: 'matrix3d(0.86808, 0, 0, 0, 0, 0.9286, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '8.333333%': { + transform: 'matrix3d(0.92038, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '10.416667%': { + transform: 'matrix3d(0.96482, 0, 0, 0, 0, 1.05202, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '12.5%': { + transform: 'matrix3d(1, 0, 0, 0, 0, 1.08204, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '14.583333%': { + transform: 'matrix3d(1.02563, 0, 0, 0, 0, 1.09149, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '16.666667%': { + transform: 'matrix3d(1.04227, 0, 0, 0, 0, 1.08453, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '18.75%': { + transform: 'matrix3d(1.05102, 0, 0, 0, 0, 1.06666, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '20.833333%': { + transform: 'matrix3d(1.05334, 0, 0, 0, 0, 1.04355, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '22.916667%': { + transform: 'matrix3d(1.05078, 0, 0, 0, 0, 1.02012, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '25%': { + transform: 'matrix3d(1.04487, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '27.083333%': { + transform: 'matrix3d(1.03699, 0, 0, 0, 0, 0.98534, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '29.166667%': { + transform: 'matrix3d(1.02831, 0, 0, 0, 0, 0.97688, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '31.25%': { + transform: 'matrix3d(1.01973, 0, 0, 0, 0, 0.97422, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '33.333333%': { + transform: 'matrix3d(1.01191, 0, 0, 0, 0, 0.97618, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '35.416667%': { + transform: 'matrix3d(1.00526, 0, 0, 0, 0, 0.98122, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '37.5%': { + transform: 'matrix3d(1, 0, 0, 0, 0, 0.98773, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '39.583333%': { + transform: 'matrix3d(0.99617, 0, 0, 0, 0, 0.99433, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '41.666667%': { + transform: 'matrix3d(0.99368, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '43.75%': { + transform: 'matrix3d(0.99237, 0, 0, 0, 0, 1.00413, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '45.833333%': { + transform: 'matrix3d(0.99202, 0, 0, 0, 0, 1.00651, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '47.916667%': { + transform: 'matrix3d(0.99241, 0, 0, 0, 0, 1.00726, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '50%': { + opacity: 1, + transform: 'matrix3d(0.99329, 0, 0, 0, 0, 1.00671, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '52.083333%': { + transform: 'matrix3d(0.99447, 0, 0, 0, 0, 1.00529, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '54.166667%': { + transform: 'matrix3d(0.99577, 0, 0, 0, 0, 1.00346, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '56.25%': { + transform: 'matrix3d(0.99705, 0, 0, 0, 0, 1.0016, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '58.333333%': { + transform: 'matrix3d(0.99822, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '60.416667%': { + transform: 'matrix3d(0.99921, 0, 0, 0, 0, 0.99884, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '62.5%': { + transform: 'matrix3d(1, 0, 0, 0, 0, 0.99816, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '64.583333%': { + transform: 'matrix3d(1.00057, 0, 0, 0, 0, 0.99795, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '66.666667%': { + transform: 'matrix3d(1.00095, 0, 0, 0, 0, 0.99811, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '68.75%': { + transform: 'matrix3d(1.00114, 0, 0, 0, 0, 0.99851, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '70.833333%': { + transform: 'matrix3d(1.00119, 0, 0, 0, 0, 0.99903, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '72.916667%': { + transform: 'matrix3d(1.00114, 0, 0, 0, 0, 0.99955, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '75%': { + transform: 'matrix3d(1.001, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '77.083333%': { + transform: 'matrix3d(1.00083, 0, 0, 0, 0, 1.00033, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '79.166667%': { + transform: 'matrix3d(1.00063, 0, 0, 0, 0, 1.00052, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '81.25%': { + transform: 'matrix3d(1.00044, 0, 0, 0, 0, 1.00058, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '83.333333%': { + transform: 'matrix3d(1.00027, 0, 0, 0, 0, 1.00053, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '85.416667%': { + transform: 'matrix3d(1.00012, 0, 0, 0, 0, 1.00042, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '87.5%': { + transform: 'matrix3d(1, 0, 0, 0, 0, 1.00027, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '89.583333%': { + transform: 'matrix3d(0.99991, 0, 0, 0, 0, 1.00013, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '91.666667%': { + transform: 'matrix3d(0.99986, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '93.75%': { + transform: 'matrix3d(0.99983, 0, 0, 0, 0, 0.99991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '95.833333%': { + transform: 'matrix3d(0.99982, 0, 0, 0, 0, 0.99985, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '97.916667%': { + transform: 'matrix3d(0.99983, 0, 0, 0, 0, 0.99984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + '100%': { + opacity: 1, + transform: 'matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', + }, + }), + hideContentAnimation: insertKeyframesRule({ + '0%': { + opacity: 1, + }, + '100%': { + opacity: 0, + transform: 'scale3d(0.8, 0.8, 1)', + }, + }), + showBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0, + }, + '100%': { + opacity: 0.9, + }, + }), + hideBackdropAnimation: insertKeyframesRule({ + '0%': { + opacity: 0.9, + }, + '100%': { + opacity: 0, + }, + }), }; -var showAnimation = animation.show; -var hideAnimation = animation.hide; -var showContentAnimation = animation.showContentAnimation; -var hideContentAnimation = animation.hideContentAnimation; -var showBackdropAnimation = animation.showBackdropAnimation; -var hideBackdropAnimation = animation.hideBackdropAnimation; +const showAnimation = animation.show; +const hideAnimation = animation.hide; +const showContentAnimation = animation.showContentAnimation; +const hideContentAnimation = animation.hideContentAnimation; +const showBackdropAnimation = animation.showBackdropAnimation; +const hideBackdropAnimation = animation.hideBackdropAnimation; -module.exports = modalFactory({ - getRef: function(willHidden) { - return 'content'; - }, - getModalStyle: function(willHidden) { - return appendVendorPrefix({ - zIndex: 1050, - position: "fixed", - width: "500px", - transform: "translate3d(-50%, -50%, 0)", - top: "50%", - left: "50%" - }) - }, - getBackdropStyle: function(willHidden) { - return appendVendorPrefix({ - position: "fixed", - top: 0, - right: 0, - bottom: 0, - left: 0, - zIndex: 1040, - backgroundColor: "#373A47", - animationFillMode: 'forwards', - animationDuration: '0.3s', - animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }); - }, - getContentStyle: function(willHidden) { - return appendVendorPrefix({ - margin: 0, - backgroundColor: "white", - animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, - animationFillMode: 'forwards', - animationName: willHidden ? hideContentAnimation : showContentAnimation, - animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction - }) - } +export default modalFactory({ + getRef: (willHidden) => { + return 'content'; + }, + getModalStyle: (willHidden) => { + return appendVendorPrefix({ + zIndex: 1050, + position: 'fixed', + width: '500px', + transform: 'translate3d(-50%, -50%, 0)', + top: '50%', + left: '50%', + }); + }, + getBackdropStyle: (willHidden) => { + return appendVendorPrefix({ + position: 'fixed', + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1040, + backgroundColor: '#373A47', + animationFillMode: 'forwards', + animationDuration: '0.3s', + animationName: willHidden ? hideBackdropAnimation : showBackdropAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, + getContentStyle: (willHidden) => { + return appendVendorPrefix({ + margin: 0, + backgroundColor: 'white', + animationDuration: (willHidden ? hideAnimation : showAnimation).animationDuration, + animationFillMode: 'forwards', + animationName: willHidden ? hideContentAnimation : showContentAnimation, + animationTimingFunction: (willHidden ? hideAnimation : showAnimation).animationTimingFunction, + }); + }, }); diff --git a/src/modalFactory.js b/src/modalFactory.js index 95e3134..263b910 100644 --- a/src/modalFactory.js +++ b/src/modalFactory.js @@ -1,189 +1,196 @@ -var React = require('react'); -var transitionEvents = require('domkit/transitionEvents'); -var appendVendorPrefix = require('domkit/appendVendorPrefix'); - -module.exports = function(animation){ - - return React.createClass({ - propTypes: { - className: React.PropTypes.string, - // Close the modal when esc is pressed? Defaults to true. - keyboard: React.PropTypes.bool, - onShow: React.PropTypes.func, - onHide: React.PropTypes.func, - animation: React.PropTypes.object, - backdrop: React.PropTypes.bool, - closeOnClick: React.PropTypes.bool, - modalStyle: React.PropTypes.object, - backdropStyle: React.PropTypes.object, - contentStyle: React.PropTypes.object, - }, - - getDefaultProps: function() { - return { - className: "", - onShow: function(){}, - onHide: function(){}, - animation: animation, - keyboard: true, - backdrop: true, - closeOnClick: true, - modalStyle: {}, - backdropStyle: {}, - contentStyle: {}, - }; - }, - - getInitialState: function(){ - return { - willHidden: false, - hidden: true - }; - }, - - hasHidden: function(){ - return this.state.hidden; - }, - - addTransitionListener: function(node, handle){ - if (node) { - var endListener = function(e) { - if (e && e.target !== node) { - return; - } - transitionEvents.removeEndEventListener(node, endListener); - handle(); - }; - transitionEvents.addEndEventListener(node, endListener); - } - }, - - handleBackdropClick: function() { - if (this.props.closeOnClick) { - this.hide("backdrop"); - } - }, - - render: function() { - - var hidden = this.hasHidden(); - if (hidden) return null; - - var willHidden = this.state.willHidden; - var animation = this.props.animation; - var modalStyle = animation.getModalStyle(willHidden); - var backdropStyle = animation.getBackdropStyle(willHidden); - var contentStyle = animation.getContentStyle(willHidden); - var ref = animation.getRef(willHidden); - var sharp = animation.getSharp && animation.getSharp(willHidden); - - // Apply custom style properties - if (this.props.modalStyle) { - var prefixedModalStyle = appendVendorPrefix(this.props.modalStyle); - for (var style in prefixedModalStyle) { - modalStyle[style] = prefixedModalStyle[style]; - } - } - - if (this.props.backdropStyle) { - var prefixedBackdropStyle = appendVendorPrefix(this.props.backdropStyle); - for (var style in prefixedBackdropStyle) { - backdropStyle[style] = prefixedBackdropStyle[style]; - } - } - - if (this.props.contentStyle) { - var prefixedContentStyle = appendVendorPrefix(this.props.contentStyle); - for (var style in prefixedContentStyle) { - contentStyle[style] = prefixedContentStyle[style]; - } - } - - var backdrop = this.props.backdrop?
: undefined; - - if(willHidden) { - var node = this.refs[ref]; - this.addTransitionListener(node, this.leave); - } - - return ( -
- {sharp} -
- {this.props.children} -
-
- {backdrop} -
) - ; - }, - - leave: function(){ - this.setState({ - hidden: true - }); - this.props.onHide(this.state.hideSource); - }, - - enter: function(){ - this.props.onShow(); - }, - - show: function(){ - if (!this.hasHidden()) return; - - this.setState({ - willHidden: false, - hidden: false - }); - - setTimeout(function(){ - var ref = this.props.animation.getRef(); - var node = this.refs[ref]; - this.addTransitionListener(node, this.enter); - }.bind(this), 0); - }, - - hide: function(source){ - if (this.hasHidden()) return; - - if (!source) { - source = "hide"; - } - - this.setState({ - hideSource: source, - willHidden: true - }); - }, - - toggle: function(){ - if (this.hasHidden()) - this.show(); - else - this.hide("toggle"); - }, - - listenKeyboard: function(event) { - (typeof(this.props.keyboard)=="function") - ?this.props.keyboard(event) - :this.closeOnEsc(event); - }, - - closeOnEsc: function(event){ - if (this.props.keyboard && - (event.key === "Escape" || - event.keyCode === 27)) { - this.hide("keyboard"); - } - }, - - componentDidMount: function(){ - window.addEventListener("keydown", this.listenKeyboard, true); - }, - - componentWillUnmount: function() { - window.removeEventListener("keydown", this.listenKeyboard, true); +import React, { Component } from 'react'; +import transitionEvents from 'domkit/transitionEvents'; +import appendVendorPrefix from 'domkit/appendVendorPrefix'; +import PropTypes from 'prop-types'; + +export default (animation) => { + class Factory extends Component { + constructor(props) { + super(props); + this.state = { + willHidden: false, + hidden: true + }; + + this.hasHidden = this.hasHidden.bind(this); + this.handleBackdropClick = this.handleBackdropClick.bind(this); + this.leave = this.leave.bind(this); + this.enter = this.enter.bind(this); + this.show = this.show.bind(this); + this.hide = this.hide.bind(this); + this.toggle = this.toggle.bind(this); + this.listenKeyboard = this.listenKeyboard.bind(this); + }; + + hasHidden() { + return this.state.hidden; + }; + + addTransitionListener(node, handle) { + if (node) { + const endListener = (e) => { + if (e && e.target !== node) { + return; + } + transitionEvents.removeEndEventListener(node, endListener); + handle(); + }; + transitionEvents.addEndEventListener(node, endListener); + } + }; + + handleBackdropClick() { + if (this.props.closeOnClick) { + this.hide('backdrop'); + } + }; + + render() { + const hidden = this.hasHidden(); + if (hidden) return null; + + const willHidden = this.state.willHidden; + const animation = this.props.animation; + const modalStyle = animation.getModalStyle(willHidden); + const backdropStyle = animation.getBackdropStyle(willHidden); + const contentStyle = animation.getContentStyle(willHidden); + const ref = animation.getRef(willHidden); + const sharp = animation.getSharp && animation.getSharp(willHidden, this.props.rectStyle); + + // Apply custom style properties + if (this.props.modalStyle) { + const prefixedModalStyle = appendVendorPrefix(this.props.modalStyle); + for (let style in prefixedModalStyle) { + modalStyle[style] = prefixedModalStyle[style]; } - }); + } + + if (this.props.backdropStyle) { + const prefixedBackdropStyle = appendVendorPrefix(this.props.backdropStyle); + for (let style in prefixedBackdropStyle) { + backdropStyle[style] = prefixedBackdropStyle[style]; + } + } + + if (this.props.contentStyle) { + const prefixedContentStyle = appendVendorPrefix(this.props.contentStyle); + for (let style in prefixedContentStyle) { + contentStyle[style] = prefixedContentStyle[style]; + } + } + + const backdrop = this.props.backdrop ? React.createElement('div', {style: backdropStyle, onClick: this.props.closeOnClick ? this.handleBackdropClick : null}) : undefined; + + if (willHidden) { + const node = this.refs[ref]; + this.addTransitionListener(node, this.leave); + } + + return ( + React.createElement('span', null, + React.createElement('div', {ref: 'modal', style: modalStyle, className: this.props.className}, + sharp, + React.createElement('div', {ref: 'content', tabIndex: '-1', style: contentStyle}, + this.props.children + ) + ), + backdrop + ) + ); + }; + + leave() { + this.setState({ + hidden: true + }); + this.props.onHide(this.state.hideSource); + }; + + enter() { + if (this.props.duration >= 0) + setTimeout(() => this.hide("timeout"), parseInt(this.props.duration)); + + this.props.onShow(); + }; + + show() { + if (!this.hasHidden()) return; + + this.setState({ + willHidden: false, + hidden: false + }); + + setTimeout(function(){ + const ref = this.props.animation.getRef(); + const node = this.refs[ref]; + this.addTransitionListener(node, this.enter); + }.bind(this), 0); + }; + + hide(source) { + if (this.hasHidden()) { + return; + } + + this.setState({ + hideSource: source || 'hide', + willHidden: true + }); + }; + + toggle() { + if (this.hasHidden()) { + this.show(); + } else { + this.hide('toggle'); + } + }; + + listenKeyboard(event) { + if (this.props.keyboard && + (event.key === 'Escape' || + event.keyCode === 27)) { + this.hide('keyboard'); + } + }; + + componentDidMount() { + window.addEventListener('keydown', this.listenKeyboard, true); + }; + + componentWillUnmount() { + window.removeEventListener('keydown', this.listenKeyboard, true); + }; + }; + + Factory.propTypes = { + className: PropTypes.string, + keyboard: PropTypes.bool, + duration: PropTypes.number, + onShow: PropTypes.func, + onHide: PropTypes.func, + animation: PropTypes.object, + backdrop: PropTypes.bool, + closeOnClick: PropTypes.bool, + modalStyle: PropTypes.object, + backdropStyle: PropTypes.object, + contentStyle: PropTypes.object + }; + + Factory.defaultProps = { + className: '', + duration: -1, + onShow: function(){}, + onHide: function(){}, + animation: animation, + keyboard: true, + backdrop: true, + closeOnClick: true, + modalStyle: {}, + backdropStyle: {}, + contentStyle: {} + }; + + return Factory; }; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..11f987e --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2295 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-cli@^6.24.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" + dependencies: + babel-core "^6.24.1" + babel-polyfill "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.0.0" + glob "^7.0.0" + lodash "^4.2.0" + output-file-sync "^1.1.0" + path-is-absolute "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + v8flags "^2.0.10" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-core@6.17.0: + version "6.17.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.17.0.tgz#6c4576447df479e241e58c807e4bc7da4db7f425" + dependencies: + babel-code-frame "^6.16.0" + babel-generator "^6.17.0" + babel-helpers "^6.16.0" + babel-messages "^6.8.0" + babel-register "^6.16.0" + babel-runtime "^6.9.1" + babel-template "^6.16.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.4.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-exists "^1.0.0" + path-is-absolute "^1.0.0" + private "^0.1.6" + shebang-regex "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + +babel-core@^6.0.0, babel-core@^6.24.1: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.25.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.25.0" + babel-traverse "^6.25.0" + babel-types "^6.25.0" + babylon "^6.17.2" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-eslint@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.1.tgz#8a6a884f085aa7060af69cfc77341c2f99370fb2" + dependencies: + babel-code-frame "^6.16.0" + babel-traverse "^6.15.0" + babel-types "^6.15.0" + babylon "^6.13.0" + lodash.pickby "^4.6.0" + +babel-generator@^6.17.0, babel-generator@^6.18.0, babel-generator@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.25.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.22.0, babel-helper-builder-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + esutils "^2.0.0" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.22.0, babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.16.0, babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-17.0.2.tgz#8d51e0d03759713c331f108eb0b2eaa4c6efff74" + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^2.0.0" + babel-preset-jest "^17.0.2" + +babel-loader@6.2.7: + version "6.2.7" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.7.tgz#16fdbf64328030dc5a606827d389c8b92a2a8032" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^0.2.11" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-messages@^6.23.0, babel-messages@^6.8.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0, babel-plugin-check-es2015-constants@^6.3.13: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-istanbul@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz#266b304b9109607d60748474394676982f660df4" + dependencies: + find-up "^1.1.2" + istanbul-lib-instrument "^1.1.4" + object-assign "^4.1.0" + test-exclude "^2.1.1" + +babel-plugin-jest-hoist@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-17.0.2.tgz#213488ce825990acd4c30f887dca09fffeb45235" + +babel-plugin-react-transform@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz#515bbfa996893981142d90b1f9b1635de2995109" + dependencies: + lodash "^4.6.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.3.13: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.13.0, babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.24.1, babel-plugin-transform-async-to-generator@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-properties@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.22.0.tgz#aa78f8134495c7de06c097118ba061844e1dc1d8" + dependencies: + babel-helper-function-name "^6.22.0" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0, babel-plugin-transform-es2015-arrow-functions@^6.3.13: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0, babel-plugin-transform-es2015-block-scoped-functions@^6.3.13: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1, babel-plugin-transform-es2015-block-scoping@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + lodash "^4.2.0" + +babel-plugin-transform-es2015-classes@^6.24.1, babel-plugin-transform-es2015-classes@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1, babel-plugin-transform-es2015-computed-properties@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.6.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1, babel-plugin-transform-es2015-duplicate-keys@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.6.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1, babel-plugin-transform-es2015-function-name@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0, babel-plugin-transform-es2015-literals@^6.3.13: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1, babel-plugin-transform-es2015-modules-amd@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-modules-systemjs@^6.12.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.12.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1, babel-plugin-transform-es2015-object-super@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1, babel-plugin-transform-es2015-parameters@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1, babel-plugin-transform-es2015-shorthand-properties@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0, babel-plugin-transform-es2015-spread@^6.3.13: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1, babel-plugin-transform-es2015-sticky-regex@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0, babel-plugin-transform-es2015-template-literals@^6.6.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.6.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1, babel-plugin-transform-es2015-unicode-regex@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.24.1, babel-plugin-transform-exponentiation-operator@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-constant-elements@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.22.0.tgz#4af456f80d283e8be00f00f12852354defa08ee1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.22.0, babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.22.0.tgz#48556b7dd4c3fe97d1c943bcd54fc3f2561c1817" + dependencies: + babel-helper-builder-react-jsx "^6.22.0" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.22.0, babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-remove-prop-types@^0.4.1: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.6.tgz#c3d20ff4e97fb08fa63e86a97b2daab6ad365a19" + dependencies: + babel-traverse "^6.24.1" + +babel-plugin-transform-regenerator@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz#65740593a319c44522157538d690b84094617ea6" + dependencies: + regenerator-transform "0.9.8" + +babel-plugin-transform-regenerator@^6.24.1, babel-plugin-transform-regenerator@^6.6.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + dependencies: + regenerator-transform "0.9.11" + +babel-plugin-transform-runtime@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.22.0.tgz#10968d760bbf6517243081eec778e10fa828551c" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-preset-env@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.2.1.tgz#659178f54df74a74765f796be4d290b5beeb3f5f" + dependencies: + babel-plugin-check-es2015-constants "^6.3.13" + babel-plugin-syntax-trailing-function-commas "^6.13.0" + babel-plugin-transform-async-to-generator "^6.8.0" + babel-plugin-transform-es2015-arrow-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoped-functions "^6.3.13" + babel-plugin-transform-es2015-block-scoping "^6.6.0" + babel-plugin-transform-es2015-classes "^6.6.0" + babel-plugin-transform-es2015-computed-properties "^6.3.13" + babel-plugin-transform-es2015-destructuring "^6.6.0" + babel-plugin-transform-es2015-duplicate-keys "^6.6.0" + babel-plugin-transform-es2015-for-of "^6.6.0" + babel-plugin-transform-es2015-function-name "^6.3.13" + babel-plugin-transform-es2015-literals "^6.3.13" + babel-plugin-transform-es2015-modules-amd "^6.8.0" + babel-plugin-transform-es2015-modules-commonjs "^6.6.0" + babel-plugin-transform-es2015-modules-systemjs "^6.12.0" + babel-plugin-transform-es2015-modules-umd "^6.12.0" + babel-plugin-transform-es2015-object-super "^6.3.13" + babel-plugin-transform-es2015-parameters "^6.6.0" + babel-plugin-transform-es2015-shorthand-properties "^6.3.13" + babel-plugin-transform-es2015-spread "^6.3.13" + babel-plugin-transform-es2015-sticky-regex "^6.3.13" + babel-plugin-transform-es2015-template-literals "^6.6.0" + babel-plugin-transform-es2015-typeof-symbol "^6.6.0" + babel-plugin-transform-es2015-unicode-regex "^6.3.13" + babel-plugin-transform-exponentiation-operator "^6.8.0" + babel-plugin-transform-regenerator "^6.6.0" + browserslist "^1.4.0" + electron-to-chromium "^1.1.0" + invariant "^2.2.2" + +babel-preset-es2015@^6.18.0, babel-preset-es2015@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-es2016@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b" + dependencies: + babel-plugin-transform-exponentiation-operator "^6.24.1" + +babel-preset-es2017@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-jest@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-17.0.2.tgz#141e935debe164aaa0364c220d31ccb2176493b2" + dependencies: + babel-plugin-jest-hoist "^17.0.2" + +babel-preset-latest@^6.24.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz#677de069154a7485c2d25c577c02f624b85b85e8" + dependencies: + babel-preset-es2015 "^6.24.1" + babel-preset-es2016 "^6.24.1" + babel-preset-es2017 "^6.24.1" + +babel-preset-react-app@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-2.2.0.tgz#3143bcf316049f78b5f9d0422fd7822ca4715ca4" + dependencies: + babel-plugin-transform-class-properties "6.22.0" + babel-plugin-transform-object-rest-spread "6.22.0" + babel-plugin-transform-react-constant-elements "6.22.0" + babel-plugin-transform-react-jsx "6.22.0" + babel-plugin-transform-react-jsx-self "6.22.0" + babel-plugin-transform-react-jsx-source "6.22.0" + babel-plugin-transform-regenerator "6.22.0" + babel-plugin-transform-runtime "6.22.0" + babel-preset-env "1.2.1" + babel-preset-react "6.22.0" + babel-runtime "6.22.0" + +babel-preset-react-hmre@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz#d216e60cb5b8d4c873e19ed0f54eaff1437bc492" + dependencies: + babel-plugin-react-transform "^2.0.2" + react-transform-catch-errors "^1.0.2" + react-transform-hmr "^1.0.3" + redbox-react "^1.2.2" + +babel-preset-react@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.22.0.tgz#7bc97e2d73eec4b980fb6b4e4e0884e81ccdc165" + dependencies: + babel-plugin-syntax-flow "^6.3.13" + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-flow-strip-types "^6.22.0" + babel-plugin-transform-react-display-name "^6.22.0" + babel-plugin-transform-react-jsx "^6.22.0" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + +babel-preset-react@^6.16.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-register@^6.16.0, babel-register@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" + dependencies: + babel-core "^6.24.1" + babel-runtime "^6.22.0" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.9.1: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-template@^6.16.0, babel-template@^6.22.0, babel-template@^6.24.1, babel-template@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.25.0" + babel-types "^6.25.0" + babylon "^6.17.2" + lodash "^4.2.0" + +babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.25.0" + babylon "^6.17.2" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.11.0, babylon@^6.13.0, babylon@^6.17.2, babylon@^6.17.4: + version "6.17.4" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browserslist@^1.4.0: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +caniuse-db@^1.0.30000639: + version "1.0.30000696" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000696.tgz#e71f5c61e1f96c7a3af4e791ac5db55e11737604" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.8.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.10.0.tgz#e1f5d3245de246d1a5ca04702fa1ad1bd7e405fe" + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +convert-source-map@^1.1.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-react-class@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +debug@^2.1.1, debug@^2.2.0: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domkit@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/domkit/-/domkit-0.0.1.tgz#88399d586794efc1154fec6c22cfe50f19bd4dbb" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +electron-to-chromium@^1.1.0, electron-to-chromium@^1.2.7: + version "1.3.14" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz#64af0f9efd3c3c6acd57d71f83b49ca7ee9c4b43" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" + dependencies: + stackframe "^0.3.1" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +fbjs@^0.8.9: + version "0.8.12" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" + dependencies: + 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" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0, find-up@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + 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" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.0, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.0.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@~0.4.13: + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +invariant@^2.2.0, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-instrument@^1.1.4: + version "1.7.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.3.tgz#925b239163eabdd68cc4048f52c2fa4f899ecfa7" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.17.4" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +js-tokens@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d" + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-utils@^0.2.11: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash.pickby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + +lodash@^4.2.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + 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-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +node-fetch@^1.0.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-pre-gyp@^0.6.36: + version "0.6.36" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +path-exists@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.5.10, prop-types@^15.5.4: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-deep-force-update@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz#f911b5be1d2a6fe387507dd6e9a767aa2924b4c7" + +react-dom@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react-proxy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" + dependencies: + lodash "^4.6.1" + react-deep-force-update "^1.0.0" + +react-transform-catch-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz#1b4d4a76e97271896fc16fe3086c793ec88a9eeb" + +react-transform-hmr@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb" + dependencies: + global "^4.3.0" + react-proxy "^1.1.7" + +react@^15.6.1: + version "15.6.1" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: + version "2.3.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.2.tgz#5a04df05e4f57fe3f0dc68fdd11dc5c97c7e6f4d" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.0" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +redbox-react@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.4.2.tgz#7fe35d3c567301e97938cc7fd6a10918f424c6b4" + dependencies: + error-stack-parser "^1.3.6" + object-assign "^4.0.1" + prop-types "^15.5.4" + sourcemapped-stacktrace "^1.1.6" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-transform@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regenerator-transform@0.9.8: + version "0.9.8" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + 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-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +safe-buffer@^5.0.1, safe-buffer@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +source-map-support@^0.4.2: + version "0.4.15" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" + dependencies: + source-map "^0.5.6" + +source-map@0.5.6, source-map@^0.5.0, source-map@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +sourcemapped-stacktrace@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.6.tgz#112d8749c942c3cd3b630dfac9514577b86a3a51" + dependencies: + source-map "0.5.6" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stackframe@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + 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" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +test-exclude@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-2.1.3.tgz#a8d8968e1da83266f9864f2852c55e220f06434a" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +to-fast-properties@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +ua-parser-js@^0.7.9: + version "0.7.13" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.13.tgz#cd9dd2f86493b3f44dbeeef3780fda74c5ee14be" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +v8flags@^2.0.10: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"