├── .babelrc
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── __tests__
├── overdrive.test.js
└── prefix.test.js
├── assets
├── browserstack-logo.png
├── nextgram-overdrive.gif
├── overdrive.gif
└── rr-overdrive.gif
├── demos
├── nextgram
│ ├── .babelrc
│ ├── README.md
│ ├── components
│ │ ├── frame.js
│ │ └── modal.js
│ ├── package.json
│ └── pages
│ │ ├── index.js
│ │ ├── photo.js
│ │ └── profile.js
├── nextjs
│ ├── .babelrc
│ ├── README.md
│ ├── package.json
│ ├── pages
│ │ ├── _document.js
│ │ ├── character.js
│ │ └── index.js
│ └── static
│ │ ├── bender.jpg
│ │ ├── fry.jpg
│ │ ├── leela.jpg
│ │ └── zoidberg.png
├── react-router-v4
│ ├── README.md
│ ├── package.json
│ ├── public
│ │ └── index.html
│ └── src
│ │ ├── App.js
│ │ ├── index.css
│ │ └── index.js
└── website
│ ├── .babelrc
│ ├── README.md
│ ├── package.json
│ ├── pages
│ ├── _document.js
│ ├── character.js
│ └── index.js
│ └── static
│ ├── bender.jpg
│ ├── fry.jpg
│ ├── leela.jpg
│ └── zoidberg.png
├── index.d.ts
├── lib
├── Overdrive.js
├── Overdrive.js.map
└── Overdrive.min.js
├── package.json
├── src
├── index.js
├── overdrive.js
└── prefix.js
├── webpack.config.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "react",
4 | "es2015",
5 | "es2017"
6 | ],
7 | "plugins": [
8 | "transform-runtime",
9 | "transform-decorators-legacy",
10 | "transform-class-properties",
11 | "transform-object-rest-spread"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 |
5 | # Runtime data
6 | pids
7 | *.pid
8 | *.seed
9 |
10 | # Directory for instrumented libs generated by jscoverage/JSCover
11 | lib-cov
12 |
13 | # Coverage directory used by tools like istanbul
14 | coverage
15 |
16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17 | .grunt
18 |
19 | # node-waf configuration
20 | .lock-wscript
21 |
22 | # Compiled binary addons (http://nodejs.org/api/addons.html)
23 | build/Release
24 |
25 | # Dependency directory
26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
27 | node_modules
28 |
29 | # Remove some common IDE working directories
30 | .idea
31 | .vscode
32 |
33 | # nextjs - demo
34 | .next
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.10 (May 16, 2018)
2 |
3 | * Added support for custom easing ([@pizza3](https://github.com/pizza3) in [#46](https://github.com/berzniz/react-overdrive/pull/46))
4 |
5 | ## 0.0.9 (October 3, 2017)
6 |
7 | * React 16 support ([@knpwrs](https://github.com/knpwrs) in [#37](https://github.com/berzniz/react-overdrive/pull/37))
8 |
9 | ## 0.0.8 (July 23, 2017)
10 |
11 | * Added TypeScript definitions ([@sbking](https://github.com/sbking) in [#33](https://github.com/berzniz/react-overdrive/pull/33))
12 |
13 | ## 0.0.7 (May 29, 2017)
14 |
15 | * Added AnimationEnd Event ([@vasco-santos](https://github.com/vasco-santos) in [#28](https://github.com/berzniz/react-overdrive/pull/28))
16 |
17 | ## 0.0.6 (May 20, 2017)
18 |
19 | * Upgrade React and use `prop-types` npm package ([@na-ji](https://github.com/na-ji) in [#26](https://github.com/berzniz/react-overdrive/pull/26))
20 |
21 | ## 0.0.5 (April 16, 2017)
22 |
23 | * Verify `` only takes a single children (`only children`) ([@yujiangshui](https://github.com/yujiangshui) in [#23](https://github.com/berzniz/react-overdrive/pull/23))
24 | * Add `element` prop ([@yujiangshui](https://github.com/yujiangshui) in [#23](https://github.com/berzniz/react-overdrive/pull/23))
25 | * Added `nextgram` demo
26 |
27 | ## 0.0.4 (March 24, 2017)
28 |
29 | * Add style prefix function to support older Safari ([@abstracthat](https://github.com/abstracthat) in [#15](https://github.com/berzniz/react-overdrive/pull/15))
30 | * README.md fixes ([@lex111](https://github.com/lex111) in [#16](https://github.com/berzniz/react-overdrive/pull/16))
31 |
32 | ## 0.0.3 (March 22, 2017)
33 |
34 | * Fix components that use context ([@Anujan](https://github.com/Anujan) in [#12](https://github.com/berzniz/react-overdrive/pull/12))
35 |
36 | ## 0.0.2 (March 21, 2017)
37 |
38 | * Use window.pageYOffset for better cross browser support [#8](https://github.com/berzniz/react-overdrive/pull/8))
39 | * Use defaultProps for duration ([@diegomura](https://github.com/diegomura) in [#3](https://github.com/berzniz/react-overdrive/pull/3))
40 | * README.md improvements ([@timbuckley](https://github.com/timbuckley) in [#4](https://github.com/berzniz/react-overdrive/pull/4))
41 |
42 | ## 0.0.1 (March 6, 2017)
43 |
44 | * Initial public release
45 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017 Tal Bereznitskey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-overdrive
2 | Super easy magic-move transitions for React apps.
3 |
4 | ## Demos
5 |
6 | 1. [Page transitions](https://overdrive-demo.now.sh)
7 |
8 | 
9 |
10 | 2. [Image Gallery with next.js](https://nextgram-overdrive.now.sh)
11 |
12 | 
13 |
14 | 3. [With React Router](https://overdrive-rr4.now.sh)
15 |
16 | 
17 |
18 | ## Install
19 |
20 | ```
21 | $ npm install react-overdrive --save
22 | ```
23 |
24 | ## Usage
25 |
26 | ### Example with routing
27 |
28 | Wrap any element (not just images) in a `` component. Add the same `id` to create a transition between the elements.
29 |
30 | On `page1.js`:
31 | ```js
32 | import Overdrive from 'react-overdrive'
33 |
34 | const pageA = (props) => (
35 |
36 |
Page A
37 |
38 |
39 |
40 |
41 | );
42 | ```
43 |
44 | On `page2.js`:
45 | ```js
46 | import Overdrive from 'react-overdrive'
47 |
48 | const pageB = (props) => (
49 |
50 |
Page B
51 |
52 |
53 |
54 |
55 | );
56 | ```
57 |
58 | Now route between the pages.
59 |
60 | ### Example without routing
61 |
62 | On `page.js`:
63 | ```js
64 | import Overdrive from 'react-overdrive'
65 |
66 | const page = (props) => (
67 |
68 | {props.loading && }
69 | {!props.loading && }
70 |
71 | );
72 | ```
73 |
74 | ## API
75 |
76 | | Prop | Description | Default Value |
77 | |----------------|------------------------------------------------------------------------------------------------------------------------------|---------------|
78 | | id | Required. A unique string to identify the component. | |
79 | | element | Wrapping element type. | 'div' |
80 | | duration | Animation duration (in milliseconds). | 200 |
81 | | easing | Animation easing function. | '' |
82 | | animationDelay | Add delay of calculating the mounted component position. Setting to `1` usually helps avoiding issues with window scrolling. | null |
83 | | onAnimationEnd | Event dispatched when the animation has finished. | null |
84 |
85 | ## How does it work?
86 |
87 | A transition is made when an `` component is unmounted and another `` is mounted not later than 100ms.
88 |
89 | The transition is made by cloning the unmounted and mounted components, adding them with `absolute` position and CSS transformed from the source to the target position.
90 |
91 | ## Sponsors
92 |
93 | Thanks to the following companies for generously providing their services/products to help improve this project:
94 |
95 |
96 |
97 | Thanks to [BrowserStack](https://browserstack.com/) for providing cross-browser testing.
98 |
99 | ## Who made this?
100 |
101 | Tal Bereznitskey. Find me on Twitter as [@ketacode](https://twitter.com/ketacode).
102 |
--------------------------------------------------------------------------------
/__tests__/overdrive.test.js:
--------------------------------------------------------------------------------
1 | /* global describe, it, expect */
2 |
3 | import React from 'react'
4 | import Overdrive from '../src/overdrive'
5 | import renderer from 'react-test-renderer'
6 |
7 | describe('Overdrive', () => {
8 | it('should use props element to render', () => {
9 | const component = renderer.create(
10 | test
11 | )
12 | let tree = component.toJSON()
13 | expect(tree.type).toEqual('h1')
14 | })
15 | })
16 |
--------------------------------------------------------------------------------
/__tests__/prefix.test.js:
--------------------------------------------------------------------------------
1 | /* global describe, it, expect */
2 |
3 | import prefix from '../src/prefix'
4 |
5 | describe('prefix', () => {
6 | it('should return an object on empty input', () => {
7 | expect(prefix()).toEqual({})
8 | expect(prefix(null)).toEqual({})
9 | expect(prefix({})).toEqual({})
10 | })
11 |
12 | it('should add webkit prefix to correct properties', () => {
13 | expect(prefix({
14 | width: '50px',
15 | transform: 1,
16 | transformOrigin: 2,
17 | transition: 3
18 | })).toEqual({
19 | width: '50px',
20 | WebkitTransform: 1,
21 | WebkitTransformOrigin: 2,
22 | WebkitTransition: 3,
23 | transform: 1,
24 | transformOrigin: 2,
25 | transition: 3
26 | })
27 | })
28 | })
29 |
--------------------------------------------------------------------------------
/assets/browserstack-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/assets/browserstack-logo.png
--------------------------------------------------------------------------------
/assets/nextgram-overdrive.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/assets/nextgram-overdrive.gif
--------------------------------------------------------------------------------
/assets/overdrive.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/assets/overdrive.gif
--------------------------------------------------------------------------------
/assets/rr-overdrive.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/assets/rr-overdrive.gif
--------------------------------------------------------------------------------
/demos/nextgram/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel"]
3 | }
--------------------------------------------------------------------------------
/demos/nextgram/README.md:
--------------------------------------------------------------------------------
1 |
2 | # NextGram
3 |
4 | Cloned from https://github.com/zeit/nextgram and added `` for transitions.
5 |
6 | # Installation
7 |
8 | $ npm install
9 |
10 | # Running the app
11 |
12 | $ npm run dev
13 |
--------------------------------------------------------------------------------
/demos/nextgram/components/frame.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Link from 'next/link'
3 | import Overdrive from 'react-overdrive'
4 |
5 | export default ({ id }) => (
6 |
7 |
8 |
9 |
10 | {id}
11 |
12 |
13 |
14 |
15 | -
16 | @nkzawa
17 | - Great photo!
18 |
19 |
20 |
21 |
22 |
61 |
62 |
63 | )
64 |
--------------------------------------------------------------------------------
/demos/nextgram/components/modal.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Photo from './frame'
3 |
4 | export default class extends React.Component {
5 | dismiss (e) {
6 | if (this._shim === e.target ||
7 | this._photoWrap === e.target) {
8 | if (this.props.onDismiss) {
9 | this.props.onDismiss()
10 | }
11 | }
12 | }
13 |
14 | render () {
15 | return (
16 | (this._shim = el)} className='shim' onClick={(e) => this.dismiss(e)}>
17 |
(this._photoWrap = el)} className='photo'>
18 |
19 |
20 |
38 |
39 | )
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/demos/nextgram/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextgram",
3 | "private": true,
4 | "dependencies": {
5 | "next": "^9.3.3",
6 | "react": "^16.0.0",
7 | "react-dom": "^16.0.0",
8 | "react-overdrive": "^0.0.7"
9 | },
10 | "devDependencies": {
11 | "babel-eslint": "7.0.0",
12 | "standard": "8.4.0"
13 | },
14 | "standard": {
15 | "parser": "babel-eslint"
16 | },
17 | "scripts": {
18 | "dev": "next",
19 | "build": "next build",
20 | "start": "NODE_ENV=production next start",
21 | "lint": "standard"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/demos/nextgram/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Router from 'next/router'
3 | import Overdrive from 'react-overdrive'
4 | import Modal from '../components/modal'
5 |
6 | export default class extends React.Component {
7 | static getInitialProps () {
8 | return {
9 | photos: new Array(15).fill(0).map((v, k) => k + 1)
10 | }
11 | }
12 |
13 | constructor (props) {
14 | super(props)
15 | this.onKeyDown = this.onKeyDown.bind(this)
16 | }
17 |
18 | // handling escape close
19 | componentDidMount () {
20 | document.addEventListener('keydown', this.onKeyDown)
21 | }
22 |
23 | componentWillUnmount () {
24 | document.removeEventListener('keydown', this.onKeyDown)
25 | }
26 |
27 | onKeyDown (e) {
28 | if (!this.props.url.query.photoId) return
29 | if (e.keyCode === 27) {
30 | this.props.url.back()
31 | }
32 | }
33 |
34 | dismissModal () {
35 | Router.push('/')
36 | }
37 |
38 | showPhoto (e, id) {
39 | e.preventDefault()
40 | Router.push(`/?photoId=${id}`, `/photo?id=${id}`)
41 | }
42 |
43 | render () {
44 | const { url, photos } = this.props
45 |
46 | return (
47 |
48 | {
49 | url.query.photoId &&
50 |
this.dismissModal()}
53 | />
54 | }
55 | {
56 | photos
57 | .filter((id) => (id !== url.query.photoId))
58 | .map((id) => (
59 |
60 |
69 |
70 | ))
71 | }
72 |
101 |
102 | )
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/demos/nextgram/pages/photo.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Photo from '../components/frame'
3 |
4 | export default ({ url: { query: { id } } }) => (
5 |
22 | )
23 |
--------------------------------------------------------------------------------
/demos/nextgram/pages/profile.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | export default ({ url: { query: { id } } }) => (
4 |
5 |
6 | User profile:
7 | {' '}
8 | {id}
9 |
10 |
23 |
24 | )
25 |
--------------------------------------------------------------------------------
/demos/nextjs/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel"]
3 | }
--------------------------------------------------------------------------------
/demos/nextjs/README.md:
--------------------------------------------------------------------------------
1 | # next.js demo
2 |
3 | Run demo:
4 | ```
5 | npm install
6 | npm run dev
7 | // open http://localhost:3000
8 | ```
--------------------------------------------------------------------------------
/demos/nextjs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-overdrive-nextjs-demo",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next",
7 | "build": "next build",
8 | "start": "next start"
9 | },
10 | "keywords": [],
11 | "author": "Tal Bereznitskey (http://berzniz.com/)",
12 | "license": "ISC",
13 | "dependencies": {
14 | "glamor": "^2.20.24",
15 | "next": "^9.3.3",
16 | "react": "^16.0.0",
17 | "react-dom": "^16.0.0",
18 | "react-overdrive": "^0.0.7"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demos/nextjs/pages/_document.js:
--------------------------------------------------------------------------------
1 | import Document, {Head, Main, NextScript} from 'next/document'
2 | import {renderStatic} from 'glamor/server'
3 |
4 | export default class MyDocument extends Document {
5 | static async getInitialProps ({renderPage}) {
6 | const page = renderPage()
7 | const styles = renderStatic(() => page.html)
8 | return {...page, ...styles}
9 | }
10 |
11 | constructor (props) {
12 | super(props)
13 | const {__NEXT_DATA__, ids} = props
14 | if (ids) {
15 | __NEXT_DATA__.ids = this.props.ids
16 | }
17 | }
18 |
19 | render () {
20 | return (
21 |
22 |
23 | Demo
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | )
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/demos/nextjs/pages/character.js:
--------------------------------------------------------------------------------
1 | import Overdrive from 'react-overdrive'
2 | import Link from 'next/link'
3 | import {css} from 'glamor'
4 |
5 | const container = css({
6 | textAlign: 'center'
7 | })
8 |
9 | const image = css({
10 | boxSizing: 'border-box',
11 | background: '#fff',
12 | width: '180px',
13 | height: '180px',
14 | borderRadius: '10px',
15 | border: '1px solid #ccc',
16 | padding: '5px',
17 | margin: '10px'
18 | })
19 |
20 | const page = ({url}) => {
21 | return (
22 |
23 |
24 |
25 |
26 |
27 |
{url.query.name}!
28 |
Back
29 |
30 |
31 | )
32 | }
33 |
34 | export default page
35 |
--------------------------------------------------------------------------------
/demos/nextjs/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Overdrive from 'react-overdrive'
3 | import Link from 'next/link'
4 | import {css} from 'glamor'
5 |
6 | const image = css({
7 | boxSizing: 'border-box',
8 | background: '#fff',
9 | width: '80px',
10 | height: '80px',
11 | borderRadius: '50%',
12 | border: '1px solid #ccc',
13 | padding: '5px',
14 | margin: '10px'
15 | })
16 |
17 | const container = css({
18 | marginTop: '200px',
19 | textAlign: 'center',
20 | ' a': {
21 | display: 'inline-block'
22 | }
23 | })
24 |
25 | const characters = [
26 | {
27 | id: 'bender',
28 | name: 'Bender',
29 | image: '40Wzdn4OQbi2ncxkG96z'
30 | },
31 | {
32 | id: 'fry',
33 | name: 'Fry',
34 | image: 'zbglqWZQAyYO5vsHqIbw'
35 | },
36 | {
37 | id: 'leela',
38 | name: 'Leela',
39 | image: 'klwhl9wXRIqRTGWFNoBT'
40 | },
41 | {
42 | id: 'zoidberg',
43 | name: 'Zoidberg',
44 | image: '6xL1j1OQDC4VLBBLieN7'
45 | }
46 | ]
47 |
48 | class page extends React.Component {
49 | constructor (props) {
50 | super(props)
51 | this.state = {characters}
52 | }
53 |
54 | shuffleCharacters () {
55 | const characters = [...this.state.characters]
56 | for (let i = characters.length; i; i--) {
57 | let j = Math.floor(Math.random() * i);
58 | [characters[i - 1], characters[j]] = [characters[j], characters[i - 1]]
59 | }
60 | this.setState({characters})
61 | }
62 |
63 | render () {
64 | const {characters} = this.state
65 | return (
66 |
67 |
Best character?
68 |
69 | {characters.map(character => (
70 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | ))}
79 |
80 |
81 |
82 |
83 |
84 |
85 | This is a small demo of react-overdrive, creating a magic-move experience
86 | while routing.
87 |
88 |
89 | )
90 | }
91 | }
92 |
93 | export default page
94 |
--------------------------------------------------------------------------------
/demos/nextjs/static/bender.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/nextjs/static/bender.jpg
--------------------------------------------------------------------------------
/demos/nextjs/static/fry.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/nextjs/static/fry.jpg
--------------------------------------------------------------------------------
/demos/nextjs/static/leela.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/nextjs/static/leela.jpg
--------------------------------------------------------------------------------
/demos/nextjs/static/zoidberg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/nextjs/static/zoidberg.png
--------------------------------------------------------------------------------
/demos/react-router-v4/README.md:
--------------------------------------------------------------------------------
1 | # react-router demo
2 |
3 | Run demo:
4 | ```
5 | npm install
6 | npm start
7 | // open http://localhost:3000
8 | ```
--------------------------------------------------------------------------------
/demos/react-router-v4/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-overdrive-react-router-v4-demo",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "react": "^16.0.0",
7 | "react-dom": "^16.0.0",
8 | "react-overdrive": "^0.0.7",
9 | "react-router-dom": "^4.0.0"
10 | },
11 | "devDependencies": {
12 | "react-scripts": "0.9.5"
13 | },
14 | "scripts": {
15 | "start": "react-scripts start",
16 | "build": "react-scripts build",
17 | "test": "react-scripts test --env=jsdom",
18 | "eject": "react-scripts eject"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demos/react-router-v4/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | React Overdrive demo
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/demos/react-router-v4/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Overdrive from 'react-overdrive'
3 | import {
4 | BrowserRouter as Router,
5 | Route,
6 | Link
7 | } from 'react-router-dom'
8 |
9 | const img = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAKTBAADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiikJA6nFAC0Vi+IvGOg+EbNrvXda0/RrRSM3GoXSQRj/gTkDvXmvib9r/AODnhMRm9+IGk3Akbav9lu1/69fIV8DjqaynVpw+KSXzO7D4DF4v/d6Mp+kW/wAkeyUVnaBr2n+J9IstV0m8i1DTbyFZ7e6gbckiEZDA1o1ommro45RlBuMlZoKKKKZIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRSUtABRSUEgdTQAtFJketGRQAtFNeVIxlnVR6k4rjNd+Nfw+8M3ptNX8c+G9MuwNxt7vVoIpAPXaz5xwe1RKcY/E7G1KhVrO1KDl6Jv8AI7SjNeEaz+3D8E9Du3t5/HVtPKoB/wBDs7m4Q59HjjZT+dcBrP8AwUx+FGm3ckFpY+JNWRcYuLayiSNs/wDXSVW/8drmljMPHea+8+gocM53if4WDqf+AtfnY+ts0ZFfA2t/8FU7aK9nj0j4cy3FqP8AVT3uriJzxzujWFgOfRzkelee6t/wU9+JVxczHT/D3hixtm4RZYLiaRfq3nKD/wB8iuWWaYWO0r/I+joeHfEVfego+so/o2fp3ketGa/IHWv28/jdrM07L4wXToZekFlp1sioP9ljGX/Nia861P4+fEvWPOF58QvFEySkl4jrFwIznqNofAHsBiuWWc0l8MWz6Sh4U5pP+PXhH05pfoj9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b4GOO1dMcm/mn+B87X8W3qsPg/nKf6KP6n4yeHP2PPjN4ptxPZfD7VYYz0GoeXZN1x92dkP6V33hz/gnF8ZNcg33lpo3h9+f3epaiGPX/pgsg9+tfq8OBS11RyegvibZ87iPFPOql1Sp04fJt/jK34H5x+HP+CWPiS6twde8daXps3PyadZSXa9ePmdou3t+fWu+8N/8EtPCNrBt1/xnrepT5Pz6bBDaL14+VxL29/yr7eorqjlmFj9m585iOPuIsRdPE8q/uxivxtf8T5j8N/8ABOv4M6Fb+Xe6XqniCQEnztR1KRG6/wDTDyh+ld/4c/ZJ+DvhaARWXw70SZRkbtRt/tr8nP3py5/WvXaK6o4WhD4YL7j53EZ/m2Kv7bFVHfpzO33XsYnhzwV4f8IWottB0LTdEtlziHTrSO3QZOT8qADrzWxt+tPoroUUtkeHOcqkuabu/MQdKWiiqICiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGtypr83fit/wAE/PiR48+NHjbVtGOlWOiahqk19b3eqXpXzfOPmvhY0dgA7so3AH5foT+klFcmJwtPFJRqdD6XIuIcbw9VnWwVuaas7q/W/fc/OPw1/wAEsfEd3alvEHjnTNMuecR6dZSXidePmdoj0/2a9G0H/glt4It7JV1rxd4gvrvA3S2Agtoye+FZJCP++q+1qK545bhY/Zv82e3iOPeIsRviXFf3VFfilf8AE+atD/4J5/BXSrFYLvQL7WpQADc3upzo7e5ELov5CvRNE/Ze+EmgWEdnbfDnw3JDGMBrzTo7qQ/WSUMzfiTXqNFdUcLQh8MEvkfOV89zXFfxsVUl6zl+Vzk/D3wl8EeErhrjQ/Bvh/Rp2xul0/TIIGOORkogPGT+ZrqBGFHCgAdhUlFbqMY7Kx49SrUqu9STb83cRRilooqjIKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9k='
10 |
11 | const Home = () => (
12 |
13 |
Feel free to navigate...
14 |
15 |
16 |
17 |
18 | )
19 |
20 | const Circle = () => (
21 |
26 | )
27 |
28 | const Square = () => (
29 |
34 | )
35 |
36 | const App = () => (
37 |
38 |
39 |
40 | - Home
41 | - Circle
42 | - Square
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | )
53 |
54 | export default App
55 |
--------------------------------------------------------------------------------
/demos/react-router-v4/src/index.css:
--------------------------------------------------------------------------------
1 | * {
2 | box-sizing: border-box;
3 | }
4 |
5 | li {
6 | display: inline-block;
7 | width: 100px;
8 | }
9 |
10 | .page {
11 | position: absolute;
12 | left: 15px;
13 | right: 15px;
14 | }
15 |
16 | .circle {
17 | background: #3cafe4;
18 | border-radius: 50%;
19 | width: 200px;
20 | height: 200px;
21 | }
22 |
23 | .square {
24 | background: #3ce4af;
25 | width: 300px;
26 | height: 300px;
27 | float: right;
28 | }
--------------------------------------------------------------------------------
/demos/react-router-v4/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.render(
7 | ,
8 | document.getElementById('root')
9 | )
10 |
--------------------------------------------------------------------------------
/demos/website/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["next/babel"]
3 | }
--------------------------------------------------------------------------------
/demos/website/README.md:
--------------------------------------------------------------------------------
1 | # website
2 |
3 | Run demo:
4 | ```
5 | npm install
6 | npm run dev
7 | // open http://localhost:3000
8 | ```
--------------------------------------------------------------------------------
/demos/website/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-overdrive-website",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next",
7 | "build": "next build",
8 | "start": "next start"
9 | },
10 | "keywords": [],
11 | "author": "Tal Bereznitskey (http://berzniz.com/)",
12 | "license": "ISC",
13 | "dependencies": {
14 | "glamor": "^2.20.24",
15 | "next": "^9.3.3",
16 | "react": "^16.0.0",
17 | "react-dom": "^16.0.0",
18 | "react-overdrive": "^0.0.7"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/demos/website/pages/_document.js:
--------------------------------------------------------------------------------
1 | import Document, {Head, Main, NextScript} from 'next/document'
2 | import {renderStatic} from 'glamor/server'
3 |
4 | export default class MyDocument extends Document {
5 | static async getInitialProps ({renderPage}) {
6 | const page = renderPage()
7 | const styles = renderStatic(() => page.html)
8 | return {...page, ...styles}
9 | }
10 |
11 | constructor (props) {
12 | super(props)
13 | const {__NEXT_DATA__, ids} = props
14 | if (ids) {
15 | __NEXT_DATA__.ids = this.props.ids
16 | }
17 | }
18 |
19 | render () {
20 | return (
21 |
22 |
23 | Demo
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | )
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/demos/website/pages/character.js:
--------------------------------------------------------------------------------
1 | import Overdrive from 'react-overdrive'
2 | import Link from 'next/link'
3 | import {css} from 'glamor'
4 |
5 | const container = css({
6 | textAlign: 'center'
7 | })
8 |
9 | const image = css({
10 | background: '#fff',
11 | width: '180px',
12 | height: '180px',
13 | borderRadius: '10px',
14 | border: '1px solid #ccc',
15 | padding: '5px',
16 | margin: '10px'
17 | })
18 |
19 | const page = ({url}) => {
20 | return (
21 |
22 |
23 |
24 |
25 |
26 |
{url.query.name}!
27 |
Back
28 |
29 |
30 | )
31 | }
32 |
33 | export default page
34 |
--------------------------------------------------------------------------------
/demos/website/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Overdrive from 'react-overdrive'
3 | import Link from 'next/link'
4 | import { css } from 'glamor'
5 |
6 | css.global('*', {
7 | boxSizing: 'border-box'
8 | })
9 |
10 | css.global('body', {
11 | fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
12 | textRendering: 'optimizeLegibility',
13 | margin: 0,
14 | fontWeight: 300,
15 | lineHeight: 1.4
16 | })
17 |
18 | const bold = css({
19 | fontWeight: 400
20 | })
21 |
22 | const h1 = css({
23 | fontSize: '32px',
24 | fontWeight: 200,
25 | lineHeight: '40px',
26 | marginTop: 0
27 | })
28 |
29 | const image = css({
30 | background: '#fff',
31 | width: '80px',
32 | height: '80px',
33 | borderRadius: '50%',
34 | border: '1px solid #ccc',
35 | padding: '5px',
36 | margin: '10px'
37 | })
38 |
39 | const container = css({
40 | textAlign: 'center',
41 | ' a': {
42 | display: 'inline-block'
43 | },
44 | marginTop: '50px'
45 | })
46 |
47 | const inset = css({
48 | width: '480px',
49 | maxWidth: '100%',
50 | margin: 'auto'
51 | })
52 |
53 | const originalCharacters = [
54 | {
55 | id: 'bender',
56 | name: 'Bender',
57 | image: '40Wzdn4OQbi2ncxkG96z'
58 | },
59 | {
60 | id: 'fry',
61 | name: 'Fry',
62 | image: 'zbglqWZQAyYO5vsHqIbw'
63 | },
64 | {
65 | id: 'leela',
66 | name: 'Leela',
67 | image: 'klwhl9wXRIqRTGWFNoBT'
68 | },
69 | {
70 | id: 'zoidberg',
71 | name: 'Zoidberg',
72 | image: '6xL1j1OQDC4VLBBLieN7'
73 | }
74 | ]
75 |
76 | const circle = css({
77 | display: 'inline-block',
78 | width: '30px',
79 | height: '30px',
80 | borderRadius: '50%',
81 | background: '#3cafe4'
82 | })
83 |
84 | const square = css({
85 | display: 'inline-block',
86 | width: '30px',
87 | height: '30px',
88 | background: '#3ce4af'
89 | })
90 |
91 | const triangle = css({
92 | display: 'inline-block',
93 | width: '30px',
94 | height: '30px',
95 | borderStyle: 'solid',
96 | borderWidth: '0 15px 30px 15px',
97 | borderColor: 'transparent transparent #af3ce4 transparent'
98 | })
99 |
100 | const code = css({
101 | background: '#272822',
102 | color: '#fff',
103 | padding: '5px',
104 | textAlign: 'left'
105 | })
106 |
107 | const regular = css({
108 | padding: '60px'
109 | })
110 |
111 | const inverse = css({
112 | background: '#333',
113 | color: 'white',
114 | padding: '60px'
115 | })
116 |
117 | const logos = [
118 | 'spotify.com',
119 | 'google.com',
120 | 'apple.com',
121 | 'facebook.com',
122 | 'samsung.com',
123 | 'snapchat.com',
124 | 'tesla.com',
125 | 'walmart.com'
126 | ]
127 |
128 | const Shape = ({ shape, align }) => (
129 |
130 |
131 |
132 | )
133 |
134 | class page extends React.Component {
135 | constructor (props) {
136 | super(props)
137 | this.state = {
138 | logos,
139 | turn: 0
140 | }
141 | }
142 |
143 | componentDidMount () {
144 | this.interval = setInterval(() => {
145 | this.shuffleCharacters()
146 | }, 2000)
147 | }
148 |
149 | componentWillUnmount () {
150 | clearInterval(this.interval)
151 | }
152 |
153 | shuffleCharacters () {
154 | const logos = [...this.state.logos]
155 | for (let i = logos.length; i; i--) {
156 | let j = Math.floor(Math.random() * i);
157 | [logos[i - 1], logos[j]] = [logos[j], logos[i - 1]]
158 | }
159 | this.setState({
160 | logos,
161 | turn: (this.state.turn + 1) % 3
162 | })
163 | }
164 |
165 | render () {
166 | const { turn } = this.state
167 | return (
168 |
169 |
170 |
171 | React Overdrive
172 |
173 | Simple and Powerful animations
174 |
175 |
176 |
npm install react-overdrive --save
177 |
178 |
179 | {turn === 0 && }
180 | {turn === 1 && }
181 | {turn === 2 && }
182 | {turn === 3 && }
183 |
184 |
185 |
186 |
187 |
188 | React Overdrive has a simple component based API to transition
189 | any
190 | element to any element
191 |
192 |
193 |
194 |
195 |
Animate elements between different pages
196 |
211 |
(Click on a character)
212 |
213 |
214 |
215 |
216 |
217 |
Shuffle some Company logos
218 |
219 | {this.state.logos.map(character => (
220 |
223 |
224 |
225 | ))}
226 |
227 |
228 |
229 |
230 |
234 |
235 | )
236 | }
237 | }
238 |
239 | export default page
240 |
--------------------------------------------------------------------------------
/demos/website/static/bender.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/website/static/bender.jpg
--------------------------------------------------------------------------------
/demos/website/static/fry.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/website/static/fry.jpg
--------------------------------------------------------------------------------
/demos/website/static/leela.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/website/static/leela.jpg
--------------------------------------------------------------------------------
/demos/website/static/zoidberg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berzniz/react-overdrive/07666391e5d2f7e46685f3efeb82fa66dc0c32d8/demos/website/static/zoidberg.png
--------------------------------------------------------------------------------
/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'react-overdrive' {
2 | import {Component, CSSProperties} from 'react'
3 | export interface Props {
4 | id: string
5 | duration?: number
6 | easing?: string
7 | element?: string
8 | animationDelay?: number
9 | onAnimationEnd?: () => void
10 | style?: CSSProperties
11 | }
12 | export interface State {
13 | loading: boolean
14 | }
15 | export default class Overdrive extends Component {}
16 | }
17 |
--------------------------------------------------------------------------------
/lib/Overdrive.min.js:
--------------------------------------------------------------------------------
1 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define("Overdrive",["react","react-dom"],e):"object"==typeof exports?exports.Overdrive=e(require("react"),require("react-dom")):t.Overdrive=e(t.React,t.ReactDOM)}(this,function(t,e){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=108)}([function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(6)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(2),o=n(0),i=n(34),u=n(7),a=n(4),c="prototype",f=function(t,e,n){var s,l,p,d=t&f.F,y=t&f.G,m=t&f.S,v=t&f.P,h=t&f.B,b=t&f.W,g=y?o:o[e]||(o[e]={}),O=g[c],w=y?r:m?r[e]:(r[e]||{})[c];y&&(n=e);for(s in n)(l=!d&&w&&void 0!==w[s])&&a(g,s)||(p=l?w[s]:n[s],g[s]=y&&"function"!=typeof w[s]?n[s]:h&&l?i(p,r):b&&w[s]==p?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[c]=t[c],e}(p):v&&"function"==typeof p?i(Function.call,p):p,v&&((g.virtual||(g.virtual={}))[s]=p,t&f.R&&O&&!O[s]&&u(O,s,p)))};f.F=1,f.G=2,f.S=4,f.P=8,f.B=16,f.W=32,f.U=64,f.R=128,t.exports=f},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(11),o=n(36),i=n(28),u=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return u(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(5),o=n(17);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(37),o=n(19);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(26)("wks"),o=n(18),i=n(2).Symbol,u="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=r},function(t,e,n){var r=n(8);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(42),o=n(20);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(19);t.exports=function(t){return Object(r(t))}},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(t){if(s===setTimeout)return setTimeout(t,0);if((s===n||!s)&&setTimeout)return s=setTimeout,setTimeout(t,0);try{return s(t,0)}catch(e){try{return s.call(null,t,0)}catch(e){return s.call(this,t,0)}}}function i(t){if(l===clearTimeout)return clearTimeout(t);if((l===r||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(t);try{return l(t)}catch(e){try{return l.call(null,t)}catch(e){return l.call(this,t)}}}function u(){m&&d&&(m=!1,d.length?y=d.concat(y):v=-1,y.length&&a())}function a(){if(!m){var t=o(u);m=!0;for(var e=y.length;e;){for(d=y,y=[];++v1)for(var n=1;n";for(e.style.display="none",n(74).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+u+"document.F=Object"+o+"/script"+u),t.close(),f=t.F;r--;)delete f[c][i[r]];return f()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[c]=r(t),n=new a,a[c]=null,n[u]=t):n=f(),void 0===e?n:o(n,e)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(5).f,o=n(4),i=n(10)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(26)("keys"),o=n(18);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(0),o=n(2),i="__core-js_shared__",u=o[i]||(o[i]={});(t.exports=function(t,e){return u[t]||(u[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(15)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(8);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(2),o=n(0),i=n(15),u=n(30),a=n(5).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:u.f(t)})}},function(t,e,n){e.f=n(10)},function(t,e,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(55),i=r(o),u=n(54),a=r(u),c="function"==typeof a.default&&"symbol"==typeof i.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===c(i.default)?function(t){return void 0===t?"undefined":c(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":void 0===t?"undefined":c(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(70);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(8),o=n(2).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){t.exports=!n(1)&&!n(6)(function(){return 7!=Object.defineProperty(n(35)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(33);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){"use strict";var r=n(15),o=n(3),i=n(44),u=n(7),a=n(21),c=n(76),f=n(24),s=n(41),l=n(10)("iterator"),p=!([].keys&&"next"in[].keys()),d="keys",y="values",m=function(){return this};t.exports=function(t,e,n,v,h,b,g){c(n,e,v);var O,w,S,_=function(t){if(!p&&t in T)return T[t];switch(t){case d:case y:return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",E=h==y,j=!1,T=t.prototype,P=T[l]||T["@@iterator"]||h&&T[h],M=P||_(h),k=h?E?_("entries"):M:void 0,C="Array"==e?T.entries||P:P;if(C&&(S=s(C.call(new t)))!==Object.prototype&&S.next&&(f(S,x,!0),r||"function"==typeof S[l]||u(S,l,m)),E&&P&&P.name!==y&&(j=!0,M=function(){return P.call(this)}),r&&!g||!p&&!j&&T[l]||u(T,l,M),a[e]=M,a[x]=m,h)if(O={values:E?M:_(y),keys:b?M:_(d),entries:k},g)for(w in O)w in T||i(T,w,O[w]);else o(o.P+o.F*(p||j),e,O);return O}},function(t,e,n){var r=n(16),o=n(17),i=n(9),u=n(28),a=n(4),c=n(36),f=Object.getOwnPropertyDescriptor;e.f=n(1)?f:function(t,e){if(t=i(t),e=u(e,!0),c)try{return f(t,e)}catch(t){}if(a(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(42),o=n(20).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(4),o=n(13),i=n(25)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,e,n){var r=n(4),o=n(9),i=n(72)(!1),u=n(25)("IE_PROTO");t.exports=function(t,e){var n,a=o(t),c=0,f=[];for(n in a)n!=u&&r(a,n)&&f.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(f,n)||f.push(n));return f}},function(t,e,n){var r=n(3),o=n(0),i=n(6);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],u={};u[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",u)}},function(t,e,n){t.exports=n(7)},function(t,e,n){"use strict";(function(e){"production"===e.env.NODE_ENV?t.exports=n(105):t.exports=n(104)}).call(e,n(14))},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(60),i=r(o),u=n(58),a=r(u),c=n(51),f=r(c),s=n(56),l=r(s),p=n(57),d=r(p),y=n(61),m=r(y),v=n(59),h=r(v),b=n(106),g=r(b),O=n(107),w=r(O),S=n(47),_=r(S),x=n(103),E=r(x),j=w.default.unstable_renderSubtreeIntoContainer,T={},P=function(t){function e(t){(0,l.default)(this,e);var n=(0,m.default)(this,(e.__proto__||(0,f.default)(e)).call(this,t));return n.state={loading:!0},n.animateEnd=n.animateEnd.bind(n),n}return(0,h.default)(e,t),(0,d.default)(e,[{key:"animate",value:function(t,e){var n=this,r=this.props,o=r.duration,i=r.easing;t.top+=window.pageYOffset||document.documentElement.scrollTop;var u=this.getPosition(!0),c="scaleX(1) scaleY(1) translateX(0px) translateY(0px)",f=t.width/u.width,s=t.height/u.height,l=t.left-u.left,p=t.top-u.top;if(1!==f||1!==s||0!==l||0!==p){var d={transition:"transform "+o/1e3+"s "+i+", opacity "+o/1e3+"s "+i,transformOrigin:"0 0 0"},y=g.default.cloneElement(e,{key:"1",style:(0,_.default)((0,a.default)({},d,t,{opacity:1,transform:c}))}),m=g.default.cloneElement(e,{key:"1",style:(0,_.default)((0,a.default)({},d,t,{margin:u.margin,opacity:0,transform:"matrix("+1/f+", 0, 0, "+1/s+", "+-l+", "+-p+")"}))}),v=g.default.cloneElement(this.props.children,{key:"2",style:(0,_.default)((0,a.default)({},d,u,{margin:t.margin,opacity:0,transform:"matrix("+f+", 0, 0, "+s+", "+l+", "+p+")"}))}),h=g.default.cloneElement(this.props.children,{key:"2",style:(0,_.default)((0,a.default)({},d,u,{opacity:1,transform:c}))}),b=g.default.createElement("div",null,y,v),O=g.default.createElement("div",null,m,h);this.setState({loading:!0});var w=document.createElement("div");window.document.body.appendChild(w),this.bodyElement=w,j(this,b,w),this.animationTimeout=setTimeout(function(){j(n,O,w),n.animationTimeout=setTimeout(n.animateEnd,o)},0)}}},{key:"animateEnd",value:function(){this.animationTimeout=null,this.setState({loading:!1}),this.props.onAnimationEnd&&this.props.onAnimationEnd(),window.document.body.removeChild(this.bodyElement)}},{key:"onHide",value:function(){var t=this.props.id,e=g.default.cloneElement(this.props.children),n=this.getPosition();T[t]={prevPosition:n,prevElement:e},this.clearAnimations(),setTimeout(function(){T[t]=!1},100)}},{key:"onShow",value:function(){if(!this.onShowLock){this.onShowLock=!0;var t=this.props,e=t.id,n=t.animationDelay;if(T[e]){var r=T[e],o=r.prevPosition,i=r.prevElement;T[e]=!1,n?this.animationDelayTimeout=setTimeout(this.animate.bind(this,o,i),n):this.animate(o,i)}else this.setState({loading:!1})}}},{key:"componentDidMount",value:function(){this.onShow()}},{key:"clearAnimations",value:function(){clearTimeout(this.animationDelayTimeout),clearTimeout(this.animationTimeout),this.animationTimeout&&this.animateEnd()}},{key:"componentWillUnmount",value:function(){this.onHide()}},{key:"componentWillReceiveProps",value:function(){this.onShowLock=!1,this.onHide()}},{key:"componentDidUpdate",value:function(){this.onShow()}},{key:"getPosition",value:function(t){var e=this.element,n=e.getBoundingClientRect(),r=window.getComputedStyle(e),o=parseInt(r.marginTop,10),i=parseInt(r.marginLeft,10);return{top:n.top-o+(t?1:0)*(window.pageYOffset||document.documentElement.scrollTop),left:n.left-i,width:n.width,height:n.height,margin:r.margin,padding:r.padding,borderRadius:r.borderRadius,position:"absolute"}}},{key:"render",value:function(){var t=this,e=this.props,n=(e.id,e.duration,e.animationDelay,e.style),r=void 0===n?{}:n,o=e.children,u=e.element,c=(0,i.default)(e,["id","duration","animationDelay","style","children","element"]),f=(0,a.default)({},r,{opacity:this.state.loading?0:1}),s=g.default.Children.only(o);return g.default.createElement(u,(0,a.default)({ref:function(e){return t.element=e&&e.firstChild},style:f},c),s)}}]),e}(g.default.Component);P.propTypes={id:E.default.string.isRequired,duration:E.default.number,easing:E.default.string,element:E.default.string,animationDelay:E.default.number,onAnimationEnd:E.default.func},P.defaultProps={element:"div",duration:200,easing:""},e.default=P},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(52),i=r(o),u={transform:!0,transformOrigin:!0,transition:!0},a="Webkit",c=function(t){var e={};return(0,i.default)(t||{}).forEach(function(n){if(u[n]){var r=a+n[0].toUpperCase()+n.slice(1);e[r]=t[n]}e[n]=t[n]}),e};e.default=c},function(t,e,n){t.exports={default:n(62),__esModule:!0}},function(t,e,n){t.exports={default:n(63),__esModule:!0}},function(t,e,n){t.exports={default:n(64),__esModule:!0}},function(t,e,n){t.exports={default:n(65),__esModule:!0}},function(t,e,n){t.exports={default:n(66),__esModule:!0}},function(t,e,n){t.exports={default:n(67),__esModule:!0}},function(t,e,n){t.exports={default:n(68),__esModule:!0}},function(t,e,n){t.exports={default:n(69),__esModule:!0}},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(50),i=r(o);e.default=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(32),i=r(o);e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,i.default)(e))&&"function"!=typeof e?t:e}},function(t,e,n){n(87),t.exports=n(0).Object.assign},function(t,e,n){n(88);var r=n(0).Object;t.exports=function(t,e){return r.create(t,e)}},function(t,e,n){n(89);var r=n(0).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(90),t.exports=n(0).Object.getPrototypeOf},function(t,e,n){n(91),t.exports=n(0).Object.keys},function(t,e,n){n(92),t.exports=n(0).Object.setPrototypeOf},function(t,e,n){n(95),n(93),n(96),n(97),t.exports=n(0).Symbol},function(t,e,n){n(94),n(98),t.exports=n(30).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(9),o=n(85),i=n(84);t.exports=function(t){return function(e,n,u){var a,c=r(e),f=o(c.length),s=i(u,f);if(t&&n!=n){for(;f>s;)if((a=c[s++])!=a)return!0}else for(;f>s;s++)if((t||s in c)&&c[s]===n)return t||s||0;return!t&&-1}}},function(t,e,n){var r=n(12),o=n(23),i=n(16);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var u,a=n(t),c=i.f,f=0;a.length>f;)c.call(t,u=a[f++])&&e.push(u);return e}},function(t,e,n){var r=n(2).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(33);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(22),o=n(17),i=n(24),u={};n(7)(u,n(10)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(u,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(18)("meta"),o=n(8),i=n(4),u=n(5).f,a=0,c=Object.isExtensible||function(){return!0},f=!n(6)(function(){return c(Object.preventExtensions({}))}),s=function(t){u(t,r,{value:{i:"O"+ ++a,w:{}}})},l=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";s(t)}return t[r].i},p=function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;s(t)}return t[r].w},d=function(t){return f&&y.NEED&&c(t)&&!i(t,r)&&s(t),t},y=t.exports={KEY:r,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},function(t,e,n){"use strict";var r=n(1),o=n(12),i=n(23),u=n(16),a=n(13),c=n(37),f=Object.assign;t.exports=!f||n(6)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=f({},t)[n]||Object.keys(f({},e)).join("")!=r})?function(t,e){for(var n=a(t),f=arguments.length,s=1,l=i.f,p=u.f;f>s;)for(var d,y=c(arguments[s++]),m=l?o(y).concat(l(y)):o(y),v=m.length,h=0;v>h;)d=m[h++],r&&!p.call(y,d)||(n[d]=y[d]);return n}:f},function(t,e,n){var r=n(5),o=n(11),i=n(12);t.exports=n(1)?Object.defineProperties:function(t,e){o(t);for(var n,u=i(e),a=u.length,c=0;a>c;)r.f(t,n=u[c++],e[n]);return t}},function(t,e,n){var r=n(9),o=n(40).f,i={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return o(t)}catch(t){return u.slice()}};t.exports.f=function(t){return u&&"[object Window]"==i.call(t)?a(t):o(r(t))}},function(t,e,n){var r=n(8),o=n(11),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n(34)(Function.call,n(39).f(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e,n){var r=n(27),o=n(19);t.exports=function(t){return function(e,n){var i,u,a=String(o(e)),c=r(n),f=a.length;return c<0||c>=f?t?"":void 0:(i=a.charCodeAt(c),i<55296||i>56319||c+1===f||(u=a.charCodeAt(c+1))<56320||u>57343?t?a.charAt(c):i:t?a.slice(c,c+2):u-56320+(i-55296<<10)+65536)}}},function(t,e,n){var r=n(27),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(27),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){"use strict";var r=n(71),o=n(77),i=n(21),u=n(9);t.exports=n(38)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(3);r(r.S+r.F,"Object",{assign:n(79)})},function(t,e,n){var r=n(3);r(r.S,"Object",{create:n(22)})},function(t,e,n){var r=n(3);r(r.S+r.F*!n(1),"Object",{defineProperty:n(5).f})},function(t,e,n){var r=n(13),o=n(41);n(43)("getPrototypeOf",function(){return function(t){return o(r(t))}})},function(t,e,n){var r=n(13),o=n(12);n(43)("keys",function(){return function(t){return o(r(t))}})},function(t,e,n){var r=n(3);r(r.S,"Object",{setPrototypeOf:n(82).set})},function(t,e){},function(t,e,n){"use strict";var r=n(83)(!0);n(38)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(2),o=n(4),i=n(1),u=n(3),a=n(44),c=n(78).KEY,f=n(6),s=n(26),l=n(24),p=n(18),d=n(10),y=n(30),m=n(29),v=n(73),h=n(75),b=n(11),g=n(8),O=n(13),w=n(9),S=n(28),_=n(17),x=n(22),E=n(81),j=n(39),T=n(23),P=n(5),M=n(12),k=j.f,C=P.f,A=E.f,N=r.Symbol,I=r.JSON,L=I&&I.stringify,$="prototype",R=d("_hidden"),D=d("toPrimitive"),F={}.propertyIsEnumerable,V=s("symbol-registry"),W=s("symbols"),q=s("op-symbols"),z=Object[$],Y="function"==typeof N&&!!T.f,G=r.QObject,H=!G||!G[$]||!G[$].findChild,U=i&&f(function(){return 7!=x(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=k(z,e);r&&delete z[e],C(t,e,n),r&&t!==z&&C(z,e,r)}:C,J=function(t){var e=W[t]=x(N[$]);return e._k=t,e},B=Y&&"symbol"==typeof N.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof N},K=function(t,e,n){return t===z&&K(q,e,n),b(t),e=S(e,!0),b(n),o(W,e)?(n.enumerable?(o(t,R)&&t[R][e]&&(t[R][e]=!1),n=x(n,{enumerable:_(0,!1)})):(o(t,R)||C(t,R,_(1,{})),t[R][e]=!0),U(t,e,n)):C(t,e,n)},X=function(t,e){b(t);for(var n,r=v(e=w(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},Q=function(t,e){return void 0===e?x(t):X(x(t),e)},Z=function(t){var e=F.call(this,t=S(t,!0));return!(this===z&&o(W,t)&&!o(q,t))&&(!(e||!o(this,t)||!o(W,t)||o(this,R)&&this[R][t])||e)},tt=function(t,e){if(t=w(t),e=S(e,!0),t!==z||!o(W,e)||o(q,e)){var n=k(t,e);return!n||!o(W,e)||o(t,R)&&t[R][e]||(n.enumerable=!0),n}},et=function(t){for(var e,n=A(w(t)),r=[],i=0;n.length>i;)o(W,e=n[i++])||e==R||e==c||r.push(e);return r},nt=function(t){for(var e,n=t===z,r=A(n?q:w(t)),i=[],u=0;r.length>u;)!o(W,e=r[u++])||n&&!o(z,e)||i.push(W[e]);return i};Y||(N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(q,n),o(this,R)&&o(this[R],t)&&(this[R][t]=!1),U(this,t,_(1,n))};return i&&H&&U(z,t,{configurable:!0,set:e}),J(t)},a(N[$],"toString",function(){return this._k}),j.f=tt,P.f=K,n(40).f=E.f=et,n(16).f=Z,T.f=nt,i&&!n(15)&&a(z,"propertyIsEnumerable",Z,!0),y.f=function(t){return J(d(t))}),u(u.G+u.W+u.F*!Y,{Symbol:N});for(var rt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;rt.length>ot;)d(rt[ot++]);for(var it=M(d.store),ut=0;it.length>ut;)m(it[ut++]);u(u.S+u.F*!Y,"Symbol",{for:function(t){return o(V,t+="")?V[t]:V[t]=N(t)},keyFor:function(t){if(!B(t))throw TypeError(t+" is not a symbol!");for(var e in V)if(V[e]===t)return e},useSetter:function(){H=!0},useSimple:function(){H=!1}}),u(u.S+u.F*!Y,"Object",{create:Q,defineProperty:K,defineProperties:X,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var at=f(function(){T.f(1)});u(u.S+u.F*at,"Object",{getOwnPropertySymbols:function(t){return T.f(O(t))}}),I&&u(u.S+u.F*(!Y||f(function(){var t=N();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(g(e)||void 0!==t)&&!B(t))return h(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!B(e))return e}),r[1]=e,L.apply(I,r)}}),N[$][D]||n(7)(N[$],D,N[$].valueOf),l(N,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){n(29)("asyncIterator")},function(t,e,n){n(29)("observable")},function(t,e,n){n(86);for(var r=n(2),o=n(7),i=n(21),u=n(10)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),r)}function w(t){function e(e,n,r,o,i){if("function"!=typeof t)return new p("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var a=e[n],f=P(a);if("object"!==f)return new p("Invalid "+o+" `"+i+"` of type `"+f+"` supplied to `"+r+"`, expected an object.");for(var s in a)if(c(a,s)){var l=t(a,s,r,o,i+"."+s,u);if(l instanceof Error)return l}return null}return d(e)}function S(t){function n(e,n,r,o,i){for(var a=0;a>",L={array:y("array"),bool:y("boolean"),func:y("function"),number:y("number"),object:y("object"),string:y("string"),symbol:y("symbol"),any:m(),arrayOf:v,element:h(),elementType:b(),instanceOf:g,node:_(),objectOf:w,oneOf:O,oneOfType:S,shape:x,exact:E};return p.prototype=Error.prototype,L.checkPropTypes=a,L.resetWarningCache=a.resetWarningCache,L.PropTypes=L,L}}).call(e,n(14))},function(t,e,n){(function(e){if("production"!==e.env.NODE_ENV){var r=n(45);t.exports=n(102)(r.isElement,!0)}else t.exports=n(101)()}).call(e,n(14))},function(t,e,n){"use strict";(function(t){/** @license React v16.9.0
7 | * react-is.development.js
8 | *
9 | * Copyright (c) Facebook, Inc. and its affiliates.
10 | *
11 | * This source code is licensed under the MIT license found in the
12 | * LICENSE file in the root directory of this source tree.
13 | */
14 | "production"!==t.env.NODE_ENV&&function(){function t(t){return"string"==typeof t||"function"==typeof t||t===g||t===E||t===w||t===O||t===T||t===P||"object"==typeof t&&null!==t&&(t.$$typeof===k||t.$$typeof===M||t.$$typeof===S||t.$$typeof===_||t.$$typeof===j||t.$$typeof===C||t.$$typeof===A)}function n(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case h:var n=t.type;switch(n){case x:case E:case g:case w:case O:case T:return n;default:var r=n&&n.$$typeof;switch(r){case _:case j:case S:return r;default:return e}}case k:case M:case b:return e}}}function r(t){return B||(B=!0,L(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),o(t)||n(t)===x}function o(t){return n(t)===E}function i(t){return n(t)===_}function u(t){return n(t)===S}function a(t){return"object"==typeof t&&null!==t&&t.$$typeof===h}function c(t){return n(t)===j}function f(t){return n(t)===g}function s(t){return n(t)===k}function l(t){return n(t)===M}function p(t){return n(t)===b}function d(t){return n(t)===w}function y(t){return n(t)===O}function m(t){return n(t)===T}Object.defineProperty(e,"__esModule",{value:!0});var v="function"==typeof Symbol&&Symbol.for,h=v?Symbol.for("react.element"):60103,b=v?Symbol.for("react.portal"):60106,g=v?Symbol.for("react.fragment"):60107,O=v?Symbol.for("react.strict_mode"):60108,w=v?Symbol.for("react.profiler"):60114,S=v?Symbol.for("react.provider"):60109,_=v?Symbol.for("react.context"):60110,x=v?Symbol.for("react.async_mode"):60111,E=v?Symbol.for("react.concurrent_mode"):60111,j=v?Symbol.for("react.forward_ref"):60112,T=v?Symbol.for("react.suspense"):60113,P=v?Symbol.for("react.suspense_list"):60120,M=v?Symbol.for("react.memo"):60115,k=v?Symbol.for("react.lazy"):60116,C=v?Symbol.for("react.fundamental"):60117,A=v?Symbol.for("react.responder"):60118,N=function(){},I=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r2?n-2:0),o=2;o{sourceStart}{targetStart}
84 | const end = {sourceEnd}{targetEnd}
85 |
86 | this.setState({ loading: true })
87 |
88 | const bodyElement = document.createElement('div')
89 | window.document.body.appendChild(bodyElement)
90 | this.bodyElement = bodyElement
91 | renderSubtreeIntoContainer(this, start, bodyElement)
92 |
93 | this.animationTimeout = setTimeout(() => {
94 | renderSubtreeIntoContainer(this, end, bodyElement)
95 | this.animationTimeout = setTimeout(this.animateEnd, duration)
96 | }, 0)
97 | }
98 |
99 | animateEnd () {
100 | this.animationTimeout = null
101 | this.setState({ loading: false })
102 | this.props.onAnimationEnd && this.props.onAnimationEnd()
103 | window.document.body.removeChild(this.bodyElement)
104 | }
105 |
106 | onHide () {
107 | const { id } = this.props
108 | const prevElement = React.cloneElement(this.props.children)
109 | const prevPosition = this.getPosition()
110 | components[id] = {
111 | prevPosition,
112 | prevElement
113 | }
114 |
115 | this.clearAnimations()
116 |
117 | setTimeout(() => {
118 | components[id] = false
119 | }, 100)
120 | }
121 |
122 | onShow () {
123 | if (this.onShowLock) {
124 | return
125 | }
126 | this.onShowLock = true
127 | const { id, animationDelay } = this.props
128 | if (components[id]) {
129 | const { prevPosition, prevElement } = components[id]
130 | components[id] = false
131 | if (animationDelay) {
132 | this.animationDelayTimeout = setTimeout(this.animate.bind(this, prevPosition, prevElement), animationDelay)
133 | } else {
134 | this.animate(prevPosition, prevElement)
135 | }
136 | } else {
137 | this.setState({ loading: false })
138 | }
139 | }
140 |
141 | componentDidMount () {
142 | this.onShow()
143 | }
144 |
145 | clearAnimations () {
146 | clearTimeout(this.animationDelayTimeout)
147 | clearTimeout(this.animationTimeout)
148 |
149 | if (this.animationTimeout) {
150 | this.animateEnd()
151 | }
152 | }
153 |
154 | componentWillUnmount () {
155 | this.onHide()
156 | }
157 |
158 | componentWillReceiveProps () {
159 | this.onShowLock = false
160 | this.onHide()
161 | }
162 |
163 | componentDidUpdate () {
164 | this.onShow()
165 | }
166 |
167 | getPosition (addOffset) {
168 | const node = this.element
169 | const rect = node.getBoundingClientRect()
170 | const computedStyle = window.getComputedStyle(node)
171 | const marginTop = parseInt(computedStyle.marginTop, 10)
172 | const marginLeft = parseInt(computedStyle.marginLeft, 10)
173 | return {
174 | top: (rect.top - marginTop) + ((addOffset ? 1 : 0) * (window.pageYOffset || document.documentElement.scrollTop)),
175 | left: (rect.left - marginLeft),
176 | width: rect.width,
177 | height: rect.height,
178 | margin: computedStyle.margin,
179 | padding: computedStyle.padding,
180 | borderRadius: computedStyle.borderRadius,
181 | position: 'absolute'
182 | }
183 | }
184 |
185 | render () {
186 | const { id, duration, animationDelay, style = {}, children, element, ...rest } = this.props
187 | const newStyle = {
188 | ...style,
189 | opacity: (this.state.loading ? 0 : 1)
190 | }
191 | const onlyChild = React.Children.only(children)
192 |
193 | return React.createElement(
194 | element,
195 | {
196 | ref: c => (this.element = c && c.firstChild),
197 | style: newStyle,
198 | ...rest
199 | },
200 | onlyChild
201 | )
202 | }
203 | }
204 |
205 | Overdrive.propTypes = {
206 | id: PropTypes.string.isRequired,
207 | duration: PropTypes.number,
208 | easing: PropTypes.string,
209 | element: PropTypes.string,
210 | animationDelay: PropTypes.number,
211 | onAnimationEnd: PropTypes.func
212 | }
213 |
214 | Overdrive.defaultProps = {
215 | element: 'div',
216 | duration: 200,
217 | easing: ''
218 | }
219 |
220 | export default Overdrive
221 |
--------------------------------------------------------------------------------
/src/prefix.js:
--------------------------------------------------------------------------------
1 | const propertiesToPrefix = {
2 | transform: true,
3 | transformOrigin: true,
4 | transition: true
5 | }
6 |
7 | const webkitPrefix = 'Webkit'
8 |
9 | const prefix = (styles) => {
10 | const prefixedStyles = {}
11 | const styleProperties = Object.keys(styles || {})
12 | styleProperties.forEach(property => {
13 | if (propertiesToPrefix[property]) {
14 | const prefixedProperty = webkitPrefix + property[0].toUpperCase() + property.slice(1)
15 | prefixedStyles[prefixedProperty] = styles[property]
16 | }
17 | prefixedStyles[property] = styles[property]
18 | })
19 | return prefixedStyles
20 | }
21 |
22 | export default prefix
23 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | /* global __dirname, require, module */
2 |
3 | const webpack = require('webpack')
4 | const UglifyJsPlugin = webpack.optimize.UglifyJsPlugin
5 | const path = require('path')
6 | const env = require('yargs').argv.env // use --env with webpack 2
7 |
8 | const libraryName = 'Overdrive'
9 |
10 | const plugins = []
11 | let outputFile
12 |
13 | if (env === 'build') {
14 | plugins.push(new UglifyJsPlugin({ minimize: true }))
15 | outputFile = libraryName + '.min.js'
16 | } else {
17 | outputFile = libraryName + '.js'
18 | }
19 |
20 | const config = {
21 | entry: path.join(__dirname, '/src/index.js'),
22 | devtool: 'source-map',
23 | output: {
24 | path: path.join(__dirname, '/lib'),
25 | filename: outputFile,
26 | library: libraryName,
27 | libraryTarget: 'umd',
28 | umdNamedDefine: true
29 | },
30 | module: {
31 | rules: [
32 | {
33 | test: /(\.jsx|\.js)$/,
34 | loader: 'babel-loader',
35 | exclude: /(node_modules|bower_components)/,
36 | query: {
37 | presets: ['react', ['es2015', { modules: false }], 'es2017'],
38 | plugins: [
39 | 'transform-runtime',
40 | 'transform-decorators-legacy',
41 | 'transform-class-properties',
42 | 'transform-object-rest-spread'
43 | ]
44 | }
45 | }
46 | ]
47 | },
48 | externals: {
49 | react: {
50 | root: 'React',
51 | commonjs2: 'react',
52 | commonjs: 'react',
53 | amd: 'react'
54 | },
55 | 'react-dom': {
56 | root: 'ReactDOM',
57 | commonjs2: 'react-dom',
58 | commonjs: 'react-dom',
59 | amd: 'react-dom'
60 | }
61 | },
62 | plugins: plugins
63 | }
64 |
65 | module.exports = config
66 |
--------------------------------------------------------------------------------