diff --git a/.gitignore b/.gitignore index e920c16..3ed6a7b 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,7 @@ node_modules # Optional REPL history .node_repl_history + +# Cordova files +platforms +plugins diff --git a/README.md b/README.md index b69e0df..7583cce 100644 --- a/README.md +++ b/README.md @@ -29,25 +29,20 @@ You can build it using Cordova. npm install -g cordova ``` -- [Create another project for Cordova](https://cordova.apache.org/docs/en/latest/guide/cli/index.html#create-the-app) +You need to build the project: ``` -cordova create +npm run build ``` -- Copy the content of `dist` folder to `wwww` in your Cordova project. - -- [Add Platforms](https://cordova.apache.org/docs/en/latest/guide/cli/index.html#add-platforms): +Add a platform to run it on a device or emulator. For Android: ``` -cordova platform add android --save +cordova platform add android +cordova run android ``` -- [Build for your platform](https://cordova.apache.org/docs/en/latest/guide/cli/index.html#build-the-app) - -``` -cordova build android -``` +This assumes that you have the Android SDK installed. ## Contributing @@ -55,4 +50,4 @@ cordova build android 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request \ No newline at end of file +5. Create new Pull Request diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..0fdb239 --- /dev/null +++ b/config.xml @@ -0,0 +1,26 @@ + + + OnsenWeather + + A sample Apache Cordova application that responds to the deviceready event. + + + Apache Cordova Team + + + + + + + + + + + + + + + + + + diff --git a/dist/000f27295afbecaa7242c0fdc5d72856.svg b/dist/000f27295afbecaa7242c0fdc5d72856.svg deleted file mode 100644 index dfef3c7..0000000 --- a/dist/000f27295afbecaa7242c0fdc5d72856.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/006c84d4d10f1e385d64e6157d576e70.svg b/dist/006c84d4d10f1e385d64e6157d576e70.svg deleted file mode 100644 index 157e539..0000000 --- a/dist/006c84d4d10f1e385d64e6157d576e70.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/00947325a69e9ceb121bd68db7c731a1.svg b/dist/00947325a69e9ceb121bd68db7c731a1.svg deleted file mode 100644 index d407f11..0000000 --- a/dist/00947325a69e9ceb121bd68db7c731a1.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/009766529c2c4ee426e6fe0067d24262.svg b/dist/009766529c2c4ee426e6fe0067d24262.svg deleted file mode 100644 index 47775c2..0000000 --- a/dist/009766529c2c4ee426e6fe0067d24262.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - diff --git a/dist/00a1084f1f03a851bfd11c0e5479e283.svg b/dist/00a1084f1f03a851bfd11c0e5479e283.svg deleted file mode 100644 index 4f2f89e..0000000 --- a/dist/00a1084f1f03a851bfd11c0e5479e283.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/010b33d21943b7efdd61a54cba7e0c64.svg b/dist/010b33d21943b7efdd61a54cba7e0c64.svg deleted file mode 100644 index fe79b7c..0000000 --- a/dist/010b33d21943b7efdd61a54cba7e0c64.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/0168e01e9ad2f30b3d905380a3582aee.svg b/dist/0168e01e9ad2f30b3d905380a3582aee.svg deleted file mode 100644 index d071a75..0000000 --- a/dist/0168e01e9ad2f30b3d905380a3582aee.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/01bddff94c5f00efb6138e47def4fc4f.svg b/dist/01bddff94c5f00efb6138e47def4fc4f.svg deleted file mode 100644 index dff4635..0000000 --- a/dist/01bddff94c5f00efb6138e47def4fc4f.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/027fddb4ab18a2891b0eeabc9aff4a99.svg b/dist/027fddb4ab18a2891b0eeabc9aff4a99.svg deleted file mode 100644 index bfbea35..0000000 --- a/dist/027fddb4ab18a2891b0eeabc9aff4a99.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/031e1815ba472c07d6a6faf190186d13.svg b/dist/031e1815ba472c07d6a6faf190186d13.svg deleted file mode 100644 index 4921ef2..0000000 --- a/dist/031e1815ba472c07d6a6faf190186d13.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/0368620bd2b4e80868b487b0ebec7175.svg b/dist/0368620bd2b4e80868b487b0ebec7175.svg deleted file mode 100644 index edf0074..0000000 --- a/dist/0368620bd2b4e80868b487b0ebec7175.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/04aa920c9d646eb55c000215322e2d98.svg b/dist/04aa920c9d646eb55c000215322e2d98.svg deleted file mode 100644 index d89e893..0000000 --- a/dist/04aa920c9d646eb55c000215322e2d98.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/04ae34ae9c7ad9f774068df7e4d276e6.svg b/dist/04ae34ae9c7ad9f774068df7e4d276e6.svg deleted file mode 100644 index a8df503..0000000 --- a/dist/04ae34ae9c7ad9f774068df7e4d276e6.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/04b8653254d02595d1f2a2012d4838a1.svg b/dist/04b8653254d02595d1f2a2012d4838a1.svg deleted file mode 100644 index b4745f3..0000000 --- a/dist/04b8653254d02595d1f2a2012d4838a1.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/060d8821328bf59c8283be61156f5169.svg b/dist/060d8821328bf59c8283be61156f5169.svg deleted file mode 100644 index f7e71a5..0000000 --- a/dist/060d8821328bf59c8283be61156f5169.svg +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/0697c27da154e895fc7342be48955ea0.svg b/dist/0697c27da154e895fc7342be48955ea0.svg deleted file mode 100644 index b6853ce..0000000 --- a/dist/0697c27da154e895fc7342be48955ea0.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/06c220dbf9f7d6a25c36c74c72cc2e85.svg b/dist/06c220dbf9f7d6a25c36c74c72cc2e85.svg deleted file mode 100644 index c9d7a04..0000000 --- a/dist/06c220dbf9f7d6a25c36c74c72cc2e85.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/07bdf6d5fa959fd748d6a5b0124cc20e.svg b/dist/07bdf6d5fa959fd748d6a5b0124cc20e.svg deleted file mode 100644 index 35f660a..0000000 --- a/dist/07bdf6d5fa959fd748d6a5b0124cc20e.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/085603f32d84ec3ff2570c46a58b49b5.svg b/dist/085603f32d84ec3ff2570c46a58b49b5.svg deleted file mode 100644 index 62db37c..0000000 --- a/dist/085603f32d84ec3ff2570c46a58b49b5.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/0906bc288ced59a7b3e651989834ef24.svg b/dist/0906bc288ced59a7b3e651989834ef24.svg deleted file mode 100644 index 5f468ab..0000000 --- a/dist/0906bc288ced59a7b3e651989834ef24.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/09213f7dd99090411851cb80ad45210c.svg b/dist/09213f7dd99090411851cb80ad45210c.svg deleted file mode 100644 index b442587..0000000 --- a/dist/09213f7dd99090411851cb80ad45210c.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/092d85720d3e13cf9845bacb2453d997.svg b/dist/092d85720d3e13cf9845bacb2453d997.svg deleted file mode 100644 index 2be2169..0000000 --- a/dist/092d85720d3e13cf9845bacb2453d997.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/09777752983dc08c4bb0eca20ba05237.svg b/dist/09777752983dc08c4bb0eca20ba05237.svg deleted file mode 100644 index 95cf1ae..0000000 --- a/dist/09777752983dc08c4bb0eca20ba05237.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/0984643ac1e536675e1aca69e6734177.svg b/dist/0984643ac1e536675e1aca69e6734177.svg deleted file mode 100644 index b84be43..0000000 --- a/dist/0984643ac1e536675e1aca69e6734177.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/09eb4681c4b6598c06145f7bea96af5f.svg b/dist/09eb4681c4b6598c06145f7bea96af5f.svg deleted file mode 100644 index 3ed0f31..0000000 --- a/dist/09eb4681c4b6598c06145f7bea96af5f.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/0a136d52174fa9172f065fda386e88be.svg b/dist/0a136d52174fa9172f065fda386e88be.svg deleted file mode 100644 index f355ea0..0000000 --- a/dist/0a136d52174fa9172f065fda386e88be.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/0a7ebfd179eb8f1cc9ccdfa3074ecae9.svg b/dist/0a7ebfd179eb8f1cc9ccdfa3074ecae9.svg deleted file mode 100644 index 566a0a8..0000000 --- a/dist/0a7ebfd179eb8f1cc9ccdfa3074ecae9.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/0c5757f83e5fa18c584cfae22d04a104.svg b/dist/0c5757f83e5fa18c584cfae22d04a104.svg deleted file mode 100644 index a9032c1..0000000 --- a/dist/0c5757f83e5fa18c584cfae22d04a104.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/0c9f4b55892ea33295a656af7c0a3644.svg b/dist/0c9f4b55892ea33295a656af7c0a3644.svg deleted file mode 100644 index 0e7bab2..0000000 --- a/dist/0c9f4b55892ea33295a656af7c0a3644.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/0d93f60e5d3d29f197b6c5b415fb6279.svg b/dist/0d93f60e5d3d29f197b6c5b415fb6279.svg deleted file mode 100644 index 89134e9..0000000 --- a/dist/0d93f60e5d3d29f197b6c5b415fb6279.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/0e71d5e23d1a19158c675015f8adec38.svg b/dist/0e71d5e23d1a19158c675015f8adec38.svg deleted file mode 100644 index 46b8c0a..0000000 --- a/dist/0e71d5e23d1a19158c675015f8adec38.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/0edaa17d295f044ab26b387d6123df27.svg b/dist/0edaa17d295f044ab26b387d6123df27.svg deleted file mode 100644 index c59602c..0000000 --- a/dist/0edaa17d295f044ab26b387d6123df27.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/0f9aaae78cda938f5f15180a5422a38f.svg b/dist/0f9aaae78cda938f5f15180a5422a38f.svg deleted file mode 100644 index ceab30f..0000000 --- a/dist/0f9aaae78cda938f5f15180a5422a38f.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/0f9fbaf76e96f789044c56cc836c9ea3.svg b/dist/0f9fbaf76e96f789044c56cc836c9ea3.svg deleted file mode 100644 index f92e859..0000000 --- a/dist/0f9fbaf76e96f789044c56cc836c9ea3.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/102c76ff04cd6f1928e9ffddbb92ab27.svg b/dist/102c76ff04cd6f1928e9ffddbb92ab27.svg deleted file mode 100644 index 9c57c12..0000000 --- a/dist/102c76ff04cd6f1928e9ffddbb92ab27.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/10ba90e2837b04c98fb0624f213870b7.svg b/dist/10ba90e2837b04c98fb0624f213870b7.svg deleted file mode 100644 index 9a1cb04..0000000 --- a/dist/10ba90e2837b04c98fb0624f213870b7.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/10c63d65de2cd6c27612c62783bfe2b0.svg b/dist/10c63d65de2cd6c27612c62783bfe2b0.svg deleted file mode 100644 index ef98829..0000000 --- a/dist/10c63d65de2cd6c27612c62783bfe2b0.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/10f7dc52b98e8a8b0b30b74f75121b26.svg b/dist/10f7dc52b98e8a8b0b30b74f75121b26.svg deleted file mode 100644 index 60ce14e..0000000 --- a/dist/10f7dc52b98e8a8b0b30b74f75121b26.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/11924d229dc72c5e66e1f214b3b51d04.svg b/dist/11924d229dc72c5e66e1f214b3b51d04.svg deleted file mode 100644 index 75ff8f0..0000000 --- a/dist/11924d229dc72c5e66e1f214b3b51d04.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/11c9df0ae8fcb031cc8e850b2a13a065.svg b/dist/11c9df0ae8fcb031cc8e850b2a13a065.svg deleted file mode 100644 index 4d57d2d..0000000 --- a/dist/11c9df0ae8fcb031cc8e850b2a13a065.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/dist/11d3003e73f08c25da582eed3be0cf7c.svg b/dist/11d3003e73f08c25da582eed3be0cf7c.svg deleted file mode 100644 index 1568b2a..0000000 --- a/dist/11d3003e73f08c25da582eed3be0cf7c.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/11e45af82aa97b14ea89f6e210fb86de.svg b/dist/11e45af82aa97b14ea89f6e210fb86de.svg deleted file mode 100644 index 10a61c9..0000000 --- a/dist/11e45af82aa97b14ea89f6e210fb86de.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/12860da242bf1bc1bd2653265416e5fb.svg b/dist/12860da242bf1bc1bd2653265416e5fb.svg deleted file mode 100644 index 4557089..0000000 --- a/dist/12860da242bf1bc1bd2653265416e5fb.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/12aec4caf75292919c65445043d44aa3.svg b/dist/12aec4caf75292919c65445043d44aa3.svg deleted file mode 100644 index ea1a052..0000000 --- a/dist/12aec4caf75292919c65445043d44aa3.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/12fca31a8baff984a3ce085906351f44.svg b/dist/12fca31a8baff984a3ce085906351f44.svg deleted file mode 100644 index a76e24a..0000000 --- a/dist/12fca31a8baff984a3ce085906351f44.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/130818eb8844cb8d6af1eb9acf0ca865.svg b/dist/130818eb8844cb8d6af1eb9acf0ca865.svg deleted file mode 100644 index 5b94c2b..0000000 --- a/dist/130818eb8844cb8d6af1eb9acf0ca865.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/1356331a61772d4609f9f692f82750f0.svg b/dist/1356331a61772d4609f9f692f82750f0.svg deleted file mode 100644 index 002cb38..0000000 --- a/dist/1356331a61772d4609f9f692f82750f0.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/13ee68d079dc56c8d0fae7fc5e8cfa6e.svg b/dist/13ee68d079dc56c8d0fae7fc5e8cfa6e.svg deleted file mode 100644 index 63256d7..0000000 --- a/dist/13ee68d079dc56c8d0fae7fc5e8cfa6e.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/146b586e90e1663fff1fb3f766a802ed.svg b/dist/146b586e90e1663fff1fb3f766a802ed.svg deleted file mode 100644 index 159b7e1..0000000 --- a/dist/146b586e90e1663fff1fb3f766a802ed.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/14ca3bff353e7a8b97a33417ffc184fb.svg b/dist/14ca3bff353e7a8b97a33417ffc184fb.svg deleted file mode 100644 index 54add70..0000000 --- a/dist/14ca3bff353e7a8b97a33417ffc184fb.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/16b68fd6ff4209e8bf8836707cb92aa0.svg b/dist/16b68fd6ff4209e8bf8836707cb92aa0.svg deleted file mode 100644 index 980c6e7..0000000 --- a/dist/16b68fd6ff4209e8bf8836707cb92aa0.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/17feb77f1a37ae3c7cdd1527a33b3074.svg b/dist/17feb77f1a37ae3c7cdd1527a33b3074.svg deleted file mode 100644 index 2757594..0000000 --- a/dist/17feb77f1a37ae3c7cdd1527a33b3074.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/187c40ed6aa032753ba1fbcb0583085a.svg b/dist/187c40ed6aa032753ba1fbcb0583085a.svg deleted file mode 100644 index eb85435..0000000 --- a/dist/187c40ed6aa032753ba1fbcb0583085a.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/19332ab10e31929efe19e01e025847ba.svg b/dist/19332ab10e31929efe19e01e025847ba.svg deleted file mode 100644 index e1fc89f..0000000 --- a/dist/19332ab10e31929efe19e01e025847ba.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/194489992c407c776714c249542c6e96.svg b/dist/194489992c407c776714c249542c6e96.svg deleted file mode 100644 index e272135..0000000 --- a/dist/194489992c407c776714c249542c6e96.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/194e06731c01999efae35015fdcea80f.svg b/dist/194e06731c01999efae35015fdcea80f.svg deleted file mode 100644 index 7c3d4a9..0000000 --- a/dist/194e06731c01999efae35015fdcea80f.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/19ff9fabd920dda37f7eb414a3ddf065.svg b/dist/19ff9fabd920dda37f7eb414a3ddf065.svg deleted file mode 100644 index 155266c..0000000 --- a/dist/19ff9fabd920dda37f7eb414a3ddf065.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1a0dcc3ead6a6454d44b898a4a79bc68.svg b/dist/1a0dcc3ead6a6454d44b898a4a79bc68.svg deleted file mode 100644 index e1c634b..0000000 --- a/dist/1a0dcc3ead6a6454d44b898a4a79bc68.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/1aae0c8a035dc49e8c724d257afd10a0.svg b/dist/1aae0c8a035dc49e8c724d257afd10a0.svg deleted file mode 100644 index c1148fe..0000000 --- a/dist/1aae0c8a035dc49e8c724d257afd10a0.svg +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1c63acc1d81e5769a294dcbbfd8c81ee.svg b/dist/1c63acc1d81e5769a294dcbbfd8c81ee.svg deleted file mode 100644 index 2db8936..0000000 --- a/dist/1c63acc1d81e5769a294dcbbfd8c81ee.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1c892e72eeda6ae141ea3a5641231ffc.svg b/dist/1c892e72eeda6ae141ea3a5641231ffc.svg deleted file mode 100644 index 1e56bd1..0000000 --- a/dist/1c892e72eeda6ae141ea3a5641231ffc.svg +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1cbf3f862ebdd1e757d848f6fe4c8d03.svg b/dist/1cbf3f862ebdd1e757d848f6fe4c8d03.svg deleted file mode 100644 index 0ab64a1..0000000 --- a/dist/1cbf3f862ebdd1e757d848f6fe4c8d03.svg +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1d45c835607498a7196547e5a5000547.svg b/dist/1d45c835607498a7196547e5a5000547.svg deleted file mode 100644 index 17d4974..0000000 --- a/dist/1d45c835607498a7196547e5a5000547.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/1d5f4d063c93c72eed3c383d540fbce9.svg b/dist/1d5f4d063c93c72eed3c383d540fbce9.svg deleted file mode 100644 index 19e9ba6..0000000 --- a/dist/1d5f4d063c93c72eed3c383d540fbce9.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/1dda97dd1dd429d70af7ba2e087e65c0.svg b/dist/1dda97dd1dd429d70af7ba2e087e65c0.svg deleted file mode 100644 index 0f4318e..0000000 --- a/dist/1dda97dd1dd429d70af7ba2e087e65c0.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/1dfbc73748543d4f8a8ea32ef90c80b8.svg b/dist/1dfbc73748543d4f8a8ea32ef90c80b8.svg deleted file mode 100644 index 4c2f61e..0000000 --- a/dist/1dfbc73748543d4f8a8ea32ef90c80b8.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/1e110ec4c3405e49b5861df0e586a795.svg b/dist/1e110ec4c3405e49b5861df0e586a795.svg deleted file mode 100644 index d578ce4..0000000 --- a/dist/1e110ec4c3405e49b5861df0e586a795.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1e1d211f0218671ec45662a27979715a.svg b/dist/1e1d211f0218671ec45662a27979715a.svg deleted file mode 100644 index ffd3357..0000000 --- a/dist/1e1d211f0218671ec45662a27979715a.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/1f040eeefb09d6ebf48d0fc034169ede.svg b/dist/1f040eeefb09d6ebf48d0fc034169ede.svg deleted file mode 100644 index 55d3985..0000000 --- a/dist/1f040eeefb09d6ebf48d0fc034169ede.svg +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/203db126daa658d6446583a22b600614.svg b/dist/203db126daa658d6446583a22b600614.svg deleted file mode 100644 index 6fe4b5c..0000000 --- a/dist/203db126daa658d6446583a22b600614.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/21240b310288cbafbcb21ad22a251092.svg b/dist/21240b310288cbafbcb21ad22a251092.svg deleted file mode 100644 index 10d75cd..0000000 --- a/dist/21240b310288cbafbcb21ad22a251092.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/2147d04e1217e01bb3dd2752ac7f18c7.svg b/dist/2147d04e1217e01bb3dd2752ac7f18c7.svg deleted file mode 100644 index 69b7dd0..0000000 --- a/dist/2147d04e1217e01bb3dd2752ac7f18c7.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/2157d4b73143a64b050bbcfa65fc3893.svg b/dist/2157d4b73143a64b050bbcfa65fc3893.svg deleted file mode 100644 index 3a73ddb..0000000 --- a/dist/2157d4b73143a64b050bbcfa65fc3893.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L - - - I - - - B - - - E - - - R - - - T - - - A - - - S - - - - diff --git a/dist/2191c786892ef71b73fd7c488c729057.svg b/dist/2191c786892ef71b73fd7c488c729057.svg deleted file mode 100644 index 62c103d..0000000 --- a/dist/2191c786892ef71b73fd7c488c729057.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/22f390e8a10b8b57aca15c924103da6f.svg b/dist/22f390e8a10b8b57aca15c924103da6f.svg deleted file mode 100644 index 143c8bd..0000000 --- a/dist/22f390e8a10b8b57aca15c924103da6f.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/23a309ca56dffca81f618bfa9bc497e1.svg b/dist/23a309ca56dffca81f618bfa9bc497e1.svg deleted file mode 100644 index b882c99..0000000 --- a/dist/23a309ca56dffca81f618bfa9bc497e1.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/23c60cf671c441a4d340645276cb61b4.svg b/dist/23c60cf671c441a4d340645276cb61b4.svg deleted file mode 100644 index 089bdba..0000000 --- a/dist/23c60cf671c441a4d340645276cb61b4.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/2484cd907986aaf23f03c91a5d914300.svg b/dist/2484cd907986aaf23f03c91a5d914300.svg deleted file mode 100644 index 1122077..0000000 --- a/dist/2484cd907986aaf23f03c91a5d914300.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/24f6e95e01b68f3cae37e36cf8d4c1b6.svg b/dist/24f6e95e01b68f3cae37e36cf8d4c1b6.svg deleted file mode 100644 index 8ac2d99..0000000 --- a/dist/24f6e95e01b68f3cae37e36cf8d4c1b6.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/2610312c403a5cb6d4ab7658e40d64ba.svg b/dist/2610312c403a5cb6d4ab7658e40d64ba.svg deleted file mode 100644 index 835121b..0000000 --- a/dist/2610312c403a5cb6d4ab7658e40d64ba.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/26a6effe351d7ff38bb5b7cb8cda6f7f.svg b/dist/26a6effe351d7ff38bb5b7cb8cda6f7f.svg deleted file mode 100644 index 1151f1e..0000000 --- a/dist/26a6effe351d7ff38bb5b7cb8cda6f7f.svg +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/27a06bbab7b35161a735cfc2fee36d15.svg b/dist/27a06bbab7b35161a735cfc2fee36d15.svg deleted file mode 100644 index 85b7000..0000000 --- a/dist/27a06bbab7b35161a735cfc2fee36d15.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/2879aa446856858165e3a9f59ca6fc39.svg b/dist/2879aa446856858165e3a9f59ca6fc39.svg deleted file mode 100644 index 3c96faf..0000000 --- a/dist/2879aa446856858165e3a9f59ca6fc39.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/296ce1189dce4bc95dc47d821d8cce1d.svg b/dist/296ce1189dce4bc95dc47d821d8cce1d.svg deleted file mode 100644 index dce93c1..0000000 --- a/dist/296ce1189dce4bc95dc47d821d8cce1d.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/2a10cd05641109b0f63286a03c969344.svg b/dist/2a10cd05641109b0f63286a03c969344.svg deleted file mode 100644 index a331748..0000000 --- a/dist/2a10cd05641109b0f63286a03c969344.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/2a5cc2688b8df098419cccac3c42cf2f.svg b/dist/2a5cc2688b8df098419cccac3c42cf2f.svg deleted file mode 100644 index eaa9f82..0000000 --- a/dist/2a5cc2688b8df098419cccac3c42cf2f.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/2a7cb1d532123bde699c5c418640b9d3.svg b/dist/2a7cb1d532123bde699c5c418640b9d3.svg deleted file mode 100644 index d5c8527..0000000 --- a/dist/2a7cb1d532123bde699c5c418640b9d3.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/2aad4dc4240eab4fb490223d4959c0e5.svg b/dist/2aad4dc4240eab4fb490223d4959c0e5.svg deleted file mode 100644 index 71c30e8..0000000 --- a/dist/2aad4dc4240eab4fb490223d4959c0e5.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/2b8beb26169a7932d45bd25a1bcdbc9b.svg b/dist/2b8beb26169a7932d45bd25a1bcdbc9b.svg deleted file mode 100644 index 6506a3a..0000000 --- a/dist/2b8beb26169a7932d45bd25a1bcdbc9b.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/2c162cd8d754c83715cb7ae16f99a5c6.svg b/dist/2c162cd8d754c83715cb7ae16f99a5c6.svg deleted file mode 100644 index 3c5c37d..0000000 --- a/dist/2c162cd8d754c83715cb7ae16f99a5c6.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/2c727078b9c77af32a5634880f794ff8.svg b/dist/2c727078b9c77af32a5634880f794ff8.svg deleted file mode 100644 index 9f65aae..0000000 --- a/dist/2c727078b9c77af32a5634880f794ff8.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/2c8b97902e577829dd04a7d258aec5a3.svg b/dist/2c8b97902e577829dd04a7d258aec5a3.svg deleted file mode 100644 index a3ce6a8..0000000 --- a/dist/2c8b97902e577829dd04a7d258aec5a3.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/2cac198dd60403e1e06d72f54cb13c21.svg b/dist/2cac198dd60403e1e06d72f54cb13c21.svg deleted file mode 100644 index 3cb8d1e..0000000 --- a/dist/2cac198dd60403e1e06d72f54cb13c21.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/2d20a5548d999280d341e6dce5fa8a65.svg b/dist/2d20a5548d999280d341e6dce5fa8a65.svg deleted file mode 100644 index 75e1925..0000000 --- a/dist/2d20a5548d999280d341e6dce5fa8a65.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/2f8354cf0fb65fad79f3ad295a2ba30c.svg b/dist/2f8354cf0fb65fad79f3ad295a2ba30c.svg deleted file mode 100644 index 5587665..0000000 --- a/dist/2f8354cf0fb65fad79f3ad295a2ba30c.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/304055ab2ef0ff34e4bbf43243f9ec0f.svg b/dist/304055ab2ef0ff34e4bbf43243f9ec0f.svg deleted file mode 100644 index 7becab4..0000000 --- a/dist/304055ab2ef0ff34e4bbf43243f9ec0f.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/310257cbecf7f5a93a97290d981c3c75.svg b/dist/310257cbecf7f5a93a97290d981c3c75.svg deleted file mode 100644 index 28e3a6a..0000000 --- a/dist/310257cbecf7f5a93a97290d981c3c75.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/311833c090039b53c8fee8c7b4d77386.svg b/dist/311833c090039b53c8fee8c7b4d77386.svg deleted file mode 100644 index f8cf010..0000000 --- a/dist/311833c090039b53c8fee8c7b4d77386.svg +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/313cd1726afc2f2b1aa6f70250192e70.svg b/dist/313cd1726afc2f2b1aa6f70250192e70.svg deleted file mode 100644 index 89dc246..0000000 --- a/dist/313cd1726afc2f2b1aa6f70250192e70.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/3173c47bde02119540e8ff086644dbe7.svg b/dist/3173c47bde02119540e8ff086644dbe7.svg deleted file mode 100644 index dafb8e3..0000000 --- a/dist/3173c47bde02119540e8ff086644dbe7.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/3188bbb4bd729ad4ee1d568d5551d7e1.svg b/dist/3188bbb4bd729ad4ee1d568d5551d7e1.svg deleted file mode 100644 index 85a81ec..0000000 --- a/dist/3188bbb4bd729ad4ee1d568d5551d7e1.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/31959cf6f79391cc0ac230f5935d5258.svg b/dist/31959cf6f79391cc0ac230f5935d5258.svg deleted file mode 100644 index 24ebae8..0000000 --- a/dist/31959cf6f79391cc0ac230f5935d5258.svg +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/31e0f5df2ede992a5913aeef98bbeee6.svg b/dist/31e0f5df2ede992a5913aeef98bbeee6.svg deleted file mode 100644 index 18a0748..0000000 --- a/dist/31e0f5df2ede992a5913aeef98bbeee6.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/32f35277aa8072f317291a1b1381c898.svg b/dist/32f35277aa8072f317291a1b1381c898.svg deleted file mode 100644 index 2fc5ad5..0000000 --- a/dist/32f35277aa8072f317291a1b1381c898.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/342c5d93f25a929f70fe6d5691e14dfc.svg b/dist/342c5d93f25a929f70fe6d5691e14dfc.svg deleted file mode 100644 index 213db50..0000000 --- a/dist/342c5d93f25a929f70fe6d5691e14dfc.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/345432d0d8f80e642c1944edd417dd86.svg b/dist/345432d0d8f80e642c1944edd417dd86.svg deleted file mode 100644 index 95d31de..0000000 --- a/dist/345432d0d8f80e642c1944edd417dd86.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/34c242f5ecb82d56d74137c6b18966ba.svg b/dist/34c242f5ecb82d56d74137c6b18966ba.svg deleted file mode 100644 index 160bf14..0000000 --- a/dist/34c242f5ecb82d56d74137c6b18966ba.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/362ed42cff5e99150e9edf82c1711366.svg b/dist/362ed42cff5e99150e9edf82c1711366.svg deleted file mode 100644 index e6b2863..0000000 --- a/dist/362ed42cff5e99150e9edf82c1711366.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/dist/36a24f21c09f2ed107501e92503ff76e.svg b/dist/36a24f21c09f2ed107501e92503ff76e.svg deleted file mode 100644 index 2c57425..0000000 --- a/dist/36a24f21c09f2ed107501e92503ff76e.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/36eedd4dfce7ad655005a95735894ee5.svg b/dist/36eedd4dfce7ad655005a95735894ee5.svg deleted file mode 100644 index 29cd993..0000000 --- a/dist/36eedd4dfce7ad655005a95735894ee5.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dist/376ad58abb15419cf0a13ffae71b7575.svg b/dist/376ad58abb15419cf0a13ffae71b7575.svg deleted file mode 100644 index 3808d13..0000000 --- a/dist/376ad58abb15419cf0a13ffae71b7575.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/37c145f65f2da7fa12f2b32c44d33803.svg b/dist/37c145f65f2da7fa12f2b32c44d33803.svg deleted file mode 100644 index f91bb8e..0000000 --- a/dist/37c145f65f2da7fa12f2b32c44d33803.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/384a196fa01dc0ef0d1404a90dea0d53.svg b/dist/384a196fa01dc0ef0d1404a90dea0d53.svg deleted file mode 100644 index 6d8dc90..0000000 --- a/dist/384a196fa01dc0ef0d1404a90dea0d53.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/38bc21fbd62efd98d03a11b7b7f0d5eb.svg b/dist/38bc21fbd62efd98d03a11b7b7f0d5eb.svg deleted file mode 100644 index 4563a28..0000000 --- a/dist/38bc21fbd62efd98d03a11b7b7f0d5eb.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/3963e1c63ec0553c087953d1b9082ad2.svg b/dist/3963e1c63ec0553c087953d1b9082ad2.svg deleted file mode 100644 index b75a07b..0000000 --- a/dist/3963e1c63ec0553c087953d1b9082ad2.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/39b34b58b494552d1fdd9155b9641c46.svg b/dist/39b34b58b494552d1fdd9155b9641c46.svg deleted file mode 100644 index 550aa83..0000000 --- a/dist/39b34b58b494552d1fdd9155b9641c46.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/3af86393f0364048e3a863cf3f4b6e7e.svg b/dist/3af86393f0364048e3a863cf3f4b6e7e.svg deleted file mode 100644 index daff4dd..0000000 --- a/dist/3af86393f0364048e3a863cf3f4b6e7e.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/3b8fc84d14863cc358a2a955a4e4d2f1.svg b/dist/3b8fc84d14863cc358a2a955a4e4d2f1.svg deleted file mode 100644 index 581c0f0..0000000 --- a/dist/3b8fc84d14863cc358a2a955a4e4d2f1.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/3bd456a6b7362e5863daa980c0974b1f.svg b/dist/3bd456a6b7362e5863daa980c0974b1f.svg deleted file mode 100644 index 8649232..0000000 --- a/dist/3bd456a6b7362e5863daa980c0974b1f.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/3c5dff7c27aa3a41eec34f98fd735140.svg b/dist/3c5dff7c27aa3a41eec34f98fd735140.svg deleted file mode 100644 index dba408e..0000000 --- a/dist/3c5dff7c27aa3a41eec34f98fd735140.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dist/3c73421d022e74adcc2e82f0f3ead7ac.svg b/dist/3c73421d022e74adcc2e82f0f3ead7ac.svg deleted file mode 100644 index da7900a..0000000 --- a/dist/3c73421d022e74adcc2e82f0f3ead7ac.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/3c844eeb44f29f17811f6817533eb4b9.svg b/dist/3c844eeb44f29f17811f6817533eb4b9.svg deleted file mode 100644 index 749e5ba..0000000 --- a/dist/3c844eeb44f29f17811f6817533eb4b9.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/3d8a8502a46da4864b914b5a2244a6f0.svg b/dist/3d8a8502a46da4864b914b5a2244a6f0.svg deleted file mode 100644 index 02cab01..0000000 --- a/dist/3d8a8502a46da4864b914b5a2244a6f0.svg +++ /dev/null @@ -1,621 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/3dd33f5fd2c56276f18f8c8dbcbd27db.svg b/dist/3dd33f5fd2c56276f18f8c8dbcbd27db.svg deleted file mode 100644 index c54f1e9..0000000 --- a/dist/3dd33f5fd2c56276f18f8c8dbcbd27db.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/3eb9ec3d2c8756a32b2a266bd3120a42.svg b/dist/3eb9ec3d2c8756a32b2a266bd3120a42.svg deleted file mode 100644 index 7e6c209..0000000 --- a/dist/3eb9ec3d2c8756a32b2a266bd3120a42.svg +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/3f0d982aed0a4c817ec1b167d3d208b3.svg b/dist/3f0d982aed0a4c817ec1b167d3d208b3.svg deleted file mode 100644 index c67e017..0000000 --- a/dist/3f0d982aed0a4c817ec1b167d3d208b3.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/3f3e6b433065835f21e5707f9a5c0af7.svg b/dist/3f3e6b433065835f21e5707f9a5c0af7.svg deleted file mode 100644 index f7f0013..0000000 --- a/dist/3f3e6b433065835f21e5707f9a5c0af7.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/3f922c052c2726fa4f5d7633b3a14161.svg b/dist/3f922c052c2726fa4f5d7633b3a14161.svg deleted file mode 100644 index 12fe6d2..0000000 --- a/dist/3f922c052c2726fa4f5d7633b3a14161.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/3fa660dbfc9c790fb6167d43e8f083cb.svg b/dist/3fa660dbfc9c790fb6167d43e8f083cb.svg deleted file mode 100644 index fa99a0a..0000000 --- a/dist/3fa660dbfc9c790fb6167d43e8f083cb.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/3fc88c27d4220b3e14e659c76d67008e.svg b/dist/3fc88c27d4220b3e14e659c76d67008e.svg deleted file mode 100644 index e9e3b4d..0000000 --- a/dist/3fc88c27d4220b3e14e659c76d67008e.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/3fe64dea02c4e2d72ecad947167686d8.svg b/dist/3fe64dea02c4e2d72ecad947167686d8.svg deleted file mode 100644 index 05bf052..0000000 --- a/dist/3fe64dea02c4e2d72ecad947167686d8.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/4017f8c7efbe4cc848aa29940446a6f6.svg b/dist/4017f8c7efbe4cc848aa29940446a6f6.svg deleted file mode 100644 index 178ad1d..0000000 --- a/dist/4017f8c7efbe4cc848aa29940446a6f6.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/402d8fd53a61e8b06f9af1a20925edfa.svg b/dist/402d8fd53a61e8b06f9af1a20925edfa.svg deleted file mode 100644 index 6e19484..0000000 --- a/dist/402d8fd53a61e8b06f9af1a20925edfa.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/419c82fbaf9621fdf048405dcb61ea87.svg b/dist/419c82fbaf9621fdf048405dcb61ea87.svg deleted file mode 100644 index 7995fe9..0000000 --- a/dist/419c82fbaf9621fdf048405dcb61ea87.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/41dd94c6a57180b331a10e0c8a48665b.svg b/dist/41dd94c6a57180b331a10e0c8a48665b.svg deleted file mode 100644 index 3ecbabf..0000000 --- a/dist/41dd94c6a57180b331a10e0c8a48665b.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/42b680859a5317024e3010db889b833b.svg b/dist/42b680859a5317024e3010db889b833b.svg deleted file mode 100644 index 233efd4..0000000 --- a/dist/42b680859a5317024e3010db889b833b.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/4313a9a61d73a4d750c5a09347273727.svg b/dist/4313a9a61d73a4d750c5a09347273727.svg deleted file mode 100644 index 3c84757..0000000 --- a/dist/4313a9a61d73a4d750c5a09347273727.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/438cc808a5015eb4d5f8a5351d9351a8.svg b/dist/438cc808a5015eb4d5f8a5351d9351a8.svg deleted file mode 100644 index cb29bf4..0000000 --- a/dist/438cc808a5015eb4d5f8a5351d9351a8.svg +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/4471050011a9a5d5ac34f90cf3d740f6.svg b/dist/4471050011a9a5d5ac34f90cf3d740f6.svg deleted file mode 100644 index 26a5adb..0000000 --- a/dist/4471050011a9a5d5ac34f90cf3d740f6.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/44e5eb9b8c21b0ee9d4b5825eebde1a0.svg b/dist/44e5eb9b8c21b0ee9d4b5825eebde1a0.svg deleted file mode 100644 index 9440551..0000000 --- a/dist/44e5eb9b8c21b0ee9d4b5825eebde1a0.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/44fb4af8e83f0ad05bb01527be3395ed.svg b/dist/44fb4af8e83f0ad05bb01527be3395ed.svg deleted file mode 100644 index 2fd5358..0000000 --- a/dist/44fb4af8e83f0ad05bb01527be3395ed.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/45c73723862c6fc5eb3d6961db2d71fb.eot b/dist/45c73723862c6fc5eb3d6961db2d71fb.eot deleted file mode 100644 index a30335d..0000000 Binary files a/dist/45c73723862c6fc5eb3d6961db2d71fb.eot and /dev/null differ diff --git a/dist/47b1aa54b9571aa8c3ca3a5e883bf659.svg b/dist/47b1aa54b9571aa8c3ca3a5e883bf659.svg deleted file mode 100644 index eab92e6..0000000 --- a/dist/47b1aa54b9571aa8c3ca3a5e883bf659.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/4914f298dee076c08a40dcc4c28cd97d.svg b/dist/4914f298dee076c08a40dcc4c28cd97d.svg deleted file mode 100644 index bf04a8c..0000000 --- a/dist/4914f298dee076c08a40dcc4c28cd97d.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/497e6fe7f7f84fcb93adf0383000b404.svg b/dist/497e6fe7f7f84fcb93adf0383000b404.svg deleted file mode 100644 index 015d7c8..0000000 --- a/dist/497e6fe7f7f84fcb93adf0383000b404.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/49b7f36b355f1628b01267fab00cdeee.svg b/dist/49b7f36b355f1628b01267fab00cdeee.svg deleted file mode 100644 index e63710b..0000000 --- a/dist/49b7f36b355f1628b01267fab00cdeee.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/4aa15a3b0286c030c8d4154ad08955e2.svg b/dist/4aa15a3b0286c030c8d4154ad08955e2.svg deleted file mode 100644 index 024fc85..0000000 --- a/dist/4aa15a3b0286c030c8d4154ad08955e2.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/4b3f34983920d4ea264b0b33b894d307.svg b/dist/4b3f34983920d4ea264b0b33b894d307.svg deleted file mode 100644 index 70ba6ba..0000000 --- a/dist/4b3f34983920d4ea264b0b33b894d307.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/4b5a84aaf1c9485e060c503a0ff8cadb.woff2 b/dist/4b5a84aaf1c9485e060c503a0ff8cadb.woff2 deleted file mode 100644 index 5560193..0000000 Binary files a/dist/4b5a84aaf1c9485e060c503a0ff8cadb.woff2 and /dev/null differ diff --git a/dist/4c107a24c2c04a39c21979c2b3024b53.svg b/dist/4c107a24c2c04a39c21979c2b3024b53.svg deleted file mode 100644 index fd97641..0000000 --- a/dist/4c107a24c2c04a39c21979c2b3024b53.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/4c1d93dbd3e15990e7e7137f3eb4664f.svg b/dist/4c1d93dbd3e15990e7e7137f3eb4664f.svg deleted file mode 100644 index 7ec496e..0000000 --- a/dist/4c1d93dbd3e15990e7e7137f3eb4664f.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/4c39c6520da74f7367f3fe57a5eeb355.svg b/dist/4c39c6520da74f7367f3fe57a5eeb355.svg deleted file mode 100644 index a784256..0000000 --- a/dist/4c39c6520da74f7367f3fe57a5eeb355.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/4c4d8afbfec04a3f53cd25cde254b684.svg b/dist/4c4d8afbfec04a3f53cd25cde254b684.svg deleted file mode 100644 index 79c7b1a..0000000 --- a/dist/4c4d8afbfec04a3f53cd25cde254b684.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/4c59075970a312c7491aff0a56f21f9a.svg b/dist/4c59075970a312c7491aff0a56f21f9a.svg deleted file mode 100644 index 8c48c72..0000000 --- a/dist/4c59075970a312c7491aff0a56f21f9a.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/4d4cc905856268b425f04510327df38d.svg b/dist/4d4cc905856268b425f04510327df38d.svg deleted file mode 100644 index 37b62a6..0000000 --- a/dist/4d4cc905856268b425f04510327df38d.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - G - - - U - - - A - - - M - - - - - - - - G - - - U - - - A - - - M - - diff --git a/dist/4d88a5226b5b16713e50af758070625e.svg b/dist/4d88a5226b5b16713e50af758070625e.svg deleted file mode 100644 index ddcdb76..0000000 --- a/dist/4d88a5226b5b16713e50af758070625e.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/4e21ee86fe01881ccaec3f86d08e6b25.svg b/dist/4e21ee86fe01881ccaec3f86d08e6b25.svg deleted file mode 100644 index 63560fe..0000000 --- a/dist/4e21ee86fe01881ccaec3f86d08e6b25.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/4e2cb53eac84355a1eb854104fba09f8.svg b/dist/4e2cb53eac84355a1eb854104fba09f8.svg deleted file mode 100644 index 37df956..0000000 --- a/dist/4e2cb53eac84355a1eb854104fba09f8.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/4eedda91743d7ce9739e4a69ed41b4b4.svg b/dist/4eedda91743d7ce9739e4a69ed41b4b4.svg deleted file mode 100644 index de926fc..0000000 --- a/dist/4eedda91743d7ce9739e4a69ed41b4b4.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/4f4c165d66368519bd6f833e67594c77.svg b/dist/4f4c165d66368519bd6f833e67594c77.svg deleted file mode 100644 index fc0644c..0000000 --- a/dist/4f4c165d66368519bd6f833e67594c77.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/4fdbf5a5ae5c02cdef54b94e91735dbc.svg b/dist/4fdbf5a5ae5c02cdef54b94e91735dbc.svg deleted file mode 100644 index fd52ff1..0000000 --- a/dist/4fdbf5a5ae5c02cdef54b94e91735dbc.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L - - - I - - - B - - - E - - - R - - - T - - - A - - - S - - - - diff --git a/dist/50136aa9ece4d55229f96bdf285d6008.svg b/dist/50136aa9ece4d55229f96bdf285d6008.svg deleted file mode 100644 index 853079f..0000000 --- a/dist/50136aa9ece4d55229f96bdf285d6008.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/50544f7e9e8bc57fee50f8eff7c30d0e.svg b/dist/50544f7e9e8bc57fee50f8eff7c30d0e.svg deleted file mode 100644 index a9fd85d..0000000 --- a/dist/50544f7e9e8bc57fee50f8eff7c30d0e.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/509c6777671f1ce8d064c014aae30cb7.svg b/dist/509c6777671f1ce8d064c014aae30cb7.svg deleted file mode 100644 index b6f2c26..0000000 --- a/dist/509c6777671f1ce8d064c014aae30cb7.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/50a8c8a576497a14e9d1e7efe8478bdd.svg b/dist/50a8c8a576497a14e9d1e7efe8478bdd.svg deleted file mode 100644 index 97f2677..0000000 --- a/dist/50a8c8a576497a14e9d1e7efe8478bdd.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/51e310bbe7b7bea398416222c90534b1.svg b/dist/51e310bbe7b7bea398416222c90534b1.svg deleted file mode 100644 index d83e319..0000000 --- a/dist/51e310bbe7b7bea398416222c90534b1.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/52174c650042b498e6ba75e970acc296.svg b/dist/52174c650042b498e6ba75e970acc296.svg deleted file mode 100644 index e1ae29d..0000000 --- a/dist/52174c650042b498e6ba75e970acc296.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/53a87c6910ada4cf6cbc3fd590352d8c.svg b/dist/53a87c6910ada4cf6cbc3fd590352d8c.svg deleted file mode 100644 index a365deb..0000000 --- a/dist/53a87c6910ada4cf6cbc3fd590352d8c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/5452bd29dedfce14036000658c5d5914.svg b/dist/5452bd29dedfce14036000658c5d5914.svg deleted file mode 100644 index 8b2732b..0000000 --- a/dist/5452bd29dedfce14036000658c5d5914.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/5484cb8b086cc77919fc255935e478eb.svg b/dist/5484cb8b086cc77919fc255935e478eb.svg deleted file mode 100644 index c5b314e..0000000 --- a/dist/5484cb8b086cc77919fc255935e478eb.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/549a88cc6aee4f404de50e0b26b74fab.svg b/dist/549a88cc6aee4f404de50e0b26b74fab.svg deleted file mode 100644 index 910d06a..0000000 --- a/dist/549a88cc6aee4f404de50e0b26b74fab.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/54da2b96f6296c1c0dd51553dc715061.svg b/dist/54da2b96f6296c1c0dd51553dc715061.svg deleted file mode 100644 index 3c198ca..0000000 --- a/dist/54da2b96f6296c1c0dd51553dc715061.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/54ee2fb96fd8fe9a9fdf7118aa0d838b.svg b/dist/54ee2fb96fd8fe9a9fdf7118aa0d838b.svg deleted file mode 100644 index 5951d7c..0000000 --- a/dist/54ee2fb96fd8fe9a9fdf7118aa0d838b.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/54f514ff3359c706e904892f4711ce72.svg b/dist/54f514ff3359c706e904892f4711ce72.svg deleted file mode 100644 index 3a2fd77..0000000 --- a/dist/54f514ff3359c706e904892f4711ce72.svg +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/567a17c677329128424d89748f69057c.svg b/dist/567a17c677329128424d89748f69057c.svg deleted file mode 100644 index f5630d0..0000000 --- a/dist/567a17c677329128424d89748f69057c.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/56d9ece9b5f11e84992a723df5c60dd8.svg b/dist/56d9ece9b5f11e84992a723df5c60dd8.svg deleted file mode 100644 index 18ad14e..0000000 --- a/dist/56d9ece9b5f11e84992a723df5c60dd8.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/575b1c811c4940c67c8df103444452c1.svg b/dist/575b1c811c4940c67c8df103444452c1.svg deleted file mode 100644 index 7f297bf..0000000 --- a/dist/575b1c811c4940c67c8df103444452c1.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/57dda3d7dfaa2542c7db65cb08fcbf95.svg b/dist/57dda3d7dfaa2542c7db65cb08fcbf95.svg deleted file mode 100644 index 4c1e343..0000000 --- a/dist/57dda3d7dfaa2542c7db65cb08fcbf95.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/5831ff7646cf16f9b682e820039e84be.svg b/dist/5831ff7646cf16f9b682e820039e84be.svg deleted file mode 100644 index cb3ac6d..0000000 --- a/dist/5831ff7646cf16f9b682e820039e84be.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/58d7fcf292c2f296f6c7b49e62adcf4e.svg b/dist/58d7fcf292c2f296f6c7b49e62adcf4e.svg deleted file mode 100644 index 7a2ad93..0000000 --- a/dist/58d7fcf292c2f296f6c7b49e62adcf4e.svg +++ /dev/null @@ -1,767 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/58e56f220b03dfd5c5ad46c7607e9311.svg b/dist/58e56f220b03dfd5c5ad46c7607e9311.svg deleted file mode 100644 index 8fac0d6..0000000 --- a/dist/58e56f220b03dfd5c5ad46c7607e9311.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/5a6eb2c580d9390ecdd5e338a646dba6.svg b/dist/5a6eb2c580d9390ecdd5e338a646dba6.svg deleted file mode 100644 index 8af109f..0000000 --- a/dist/5a6eb2c580d9390ecdd5e338a646dba6.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/5b1078ffc2bed55370d826c84b46f428.svg b/dist/5b1078ffc2bed55370d826c84b46f428.svg deleted file mode 100644 index aece994..0000000 --- a/dist/5b1078ffc2bed55370d826c84b46f428.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/5b913b28b126fc5aeb700cfddc54c7c1.svg b/dist/5b913b28b126fc5aeb700cfddc54c7c1.svg deleted file mode 100644 index 9b71caa..0000000 --- a/dist/5b913b28b126fc5aeb700cfddc54c7c1.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/5b9ba41ea5a0959f8198f90288f1575c.svg b/dist/5b9ba41ea5a0959f8198f90288f1575c.svg deleted file mode 100644 index 1fd531b..0000000 --- a/dist/5b9ba41ea5a0959f8198f90288f1575c.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/5d76f13884ac0ca882aae37b5848d127.svg b/dist/5d76f13884ac0ca882aae37b5848d127.svg deleted file mode 100644 index 7499a39..0000000 --- a/dist/5d76f13884ac0ca882aae37b5848d127.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/5e7b850dc5bdc12a72cdc067f850599f.svg b/dist/5e7b850dc5bdc12a72cdc067f850599f.svg deleted file mode 100644 index ce3a704..0000000 --- a/dist/5e7b850dc5bdc12a72cdc067f850599f.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/5f4730ffbf9524316fef7611694b948e.svg b/dist/5f4730ffbf9524316fef7611694b948e.svg deleted file mode 100644 index 94a18ec..0000000 --- a/dist/5f4730ffbf9524316fef7611694b948e.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/5f7db09891556a15237370bbc101fde8.svg b/dist/5f7db09891556a15237370bbc101fde8.svg deleted file mode 100644 index d533289..0000000 --- a/dist/5f7db09891556a15237370bbc101fde8.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/601926bb012a67f50bfce24d6a6c499f.svg b/dist/601926bb012a67f50bfce24d6a6c499f.svg deleted file mode 100644 index 73519f6..0000000 --- a/dist/601926bb012a67f50bfce24d6a6c499f.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/60422ca6541983e8bb8c7c7bc7c429e7.svg b/dist/60422ca6541983e8bb8c7c7bc7c429e7.svg deleted file mode 100644 index ca64d22..0000000 --- a/dist/60422ca6541983e8bb8c7c7bc7c429e7.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/61378ee11bf05ea415fbb38e9fe6785f.svg b/dist/61378ee11bf05ea415fbb38e9fe6785f.svg deleted file mode 100644 index b219956..0000000 --- a/dist/61378ee11bf05ea415fbb38e9fe6785f.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/61b54f022ec3a38e163b8434493932a5.svg b/dist/61b54f022ec3a38e163b8434493932a5.svg deleted file mode 100644 index 01ec7f2..0000000 --- a/dist/61b54f022ec3a38e163b8434493932a5.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/61c38aa33c056f07f9bb1aa0d59c705a.svg b/dist/61c38aa33c056f07f9bb1aa0d59c705a.svg deleted file mode 100644 index 68496f9..0000000 --- a/dist/61c38aa33c056f07f9bb1aa0d59c705a.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/6323db61e61b152c03c5343ebc82f137.svg b/dist/6323db61e61b152c03c5343ebc82f137.svg deleted file mode 100644 index d636b29..0000000 --- a/dist/6323db61e61b152c03c5343ebc82f137.svg +++ /dev/null @@ -1,6748 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6338bb04b07e07ed1af3fa1fed16ad6f.svg b/dist/6338bb04b07e07ed1af3fa1fed16ad6f.svg deleted file mode 100644 index e582940..0000000 --- a/dist/6338bb04b07e07ed1af3fa1fed16ad6f.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/633cd8a0e42f0f84c25ab8a51d8d9639.svg b/dist/633cd8a0e42f0f84c25ab8a51d8d9639.svg deleted file mode 100644 index 90ee3ee..0000000 --- a/dist/633cd8a0e42f0f84c25ab8a51d8d9639.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/641d773eaa716a01098bd3d32356abb8.svg b/dist/641d773eaa716a01098bd3d32356abb8.svg deleted file mode 100644 index 4bfec86..0000000 --- a/dist/641d773eaa716a01098bd3d32356abb8.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/642aa4216fc352d5117775e5ad6e62d5.svg b/dist/642aa4216fc352d5117775e5ad6e62d5.svg deleted file mode 100644 index 57eb0c8..0000000 --- a/dist/642aa4216fc352d5117775e5ad6e62d5.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/647a0584b0baf666487a5f9dfb3b89ac.svg b/dist/647a0584b0baf666487a5f9dfb3b89ac.svg deleted file mode 100644 index 629d21f..0000000 --- a/dist/647a0584b0baf666487a5f9dfb3b89ac.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/6494a6fbb7574a2d95730a4b729a2168.svg b/dist/6494a6fbb7574a2d95730a4b729a2168.svg deleted file mode 100644 index 9ace3b1..0000000 --- a/dist/6494a6fbb7574a2d95730a4b729a2168.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/66ca61fd2b04f095b441d1da2045d093.svg b/dist/66ca61fd2b04f095b441d1da2045d093.svg deleted file mode 100644 index 2e913db..0000000 --- a/dist/66ca61fd2b04f095b441d1da2045d093.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/66d95fe8da8228777bd72355563c3f66.svg b/dist/66d95fe8da8228777bd72355563c3f66.svg deleted file mode 100644 index 3becd0e..0000000 --- a/dist/66d95fe8da8228777bd72355563c3f66.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/66e316623f473c63031dcded0b429e25.svg b/dist/66e316623f473c63031dcded0b429e25.svg deleted file mode 100644 index 13c965e..0000000 --- a/dist/66e316623f473c63031dcded0b429e25.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/67e24eaef6cf308e1fa685ef0d8b3125.svg b/dist/67e24eaef6cf308e1fa685ef0d8b3125.svg deleted file mode 100644 index f6fdb84..0000000 --- a/dist/67e24eaef6cf308e1fa685ef0d8b3125.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/683b0a8c411156541ca52e540a66dee8.svg b/dist/683b0a8c411156541ca52e540a66dee8.svg deleted file mode 100644 index 6a04bb3..0000000 --- a/dist/683b0a8c411156541ca52e540a66dee8.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/689a829469e7ce99f7ce828a0cb6aea2.svg b/dist/689a829469e7ce99f7ce828a0cb6aea2.svg deleted file mode 100644 index def37f1..0000000 --- a/dist/689a829469e7ce99f7ce828a0cb6aea2.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/689b4278cdebebe4d119b313969df99f.svg b/dist/689b4278cdebebe4d119b313969df99f.svg deleted file mode 100644 index 7b2cc23..0000000 --- a/dist/689b4278cdebebe4d119b313969df99f.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/68b6d6c554004d4df34816fbf15f4fb1.svg b/dist/68b6d6c554004d4df34816fbf15f4fb1.svg deleted file mode 100644 index 20bf2be..0000000 --- a/dist/68b6d6c554004d4df34816fbf15f4fb1.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/69380f5e913e1910ef108451957f7c54.svg b/dist/69380f5e913e1910ef108451957f7c54.svg deleted file mode 100644 index 35c8047..0000000 --- a/dist/69380f5e913e1910ef108451957f7c54.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/6990db5c5ee984f7144440bc4d1f8cfb.svg b/dist/6990db5c5ee984f7144440bc4d1f8cfb.svg deleted file mode 100644 index 72b3d04..0000000 --- a/dist/6990db5c5ee984f7144440bc4d1f8cfb.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/69f7bbbe86d0dc127128958636a446dc.svg b/dist/69f7bbbe86d0dc127128958636a446dc.svg deleted file mode 100644 index ea7dd9c..0000000 --- a/dist/69f7bbbe86d0dc127128958636a446dc.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/6a02d44c854899fbdeb819ff95ae5795.svg b/dist/6a02d44c854899fbdeb819ff95ae5795.svg deleted file mode 100644 index cbc5e01..0000000 --- a/dist/6a02d44c854899fbdeb819ff95ae5795.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/6aa4bed97004bc026a5ab1bb6f6f7265.svg b/dist/6aa4bed97004bc026a5ab1bb6f6f7265.svg deleted file mode 100644 index 44231ad..0000000 --- a/dist/6aa4bed97004bc026a5ab1bb6f6f7265.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6b34ba781c7eceef8f5f318fdeda10b6.svg b/dist/6b34ba781c7eceef8f5f318fdeda10b6.svg deleted file mode 100644 index 61ab355..0000000 --- a/dist/6b34ba781c7eceef8f5f318fdeda10b6.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6b899b6022e900d15e287db0139c7bd3.svg b/dist/6b899b6022e900d15e287db0139c7bd3.svg deleted file mode 100644 index 3d07a76..0000000 --- a/dist/6b899b6022e900d15e287db0139c7bd3.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/6bbb33069c3ce0361311627374565ca4.svg b/dist/6bbb33069c3ce0361311627374565ca4.svg deleted file mode 100644 index b843a75..0000000 --- a/dist/6bbb33069c3ce0361311627374565ca4.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - diff --git a/dist/6c367218fe1e193d80886f4385dcb76d.svg b/dist/6c367218fe1e193d80886f4385dcb76d.svg deleted file mode 100644 index df4481e..0000000 --- a/dist/6c367218fe1e193d80886f4385dcb76d.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6c61ba9a425a4507ad4937a43cfdf8a3.svg b/dist/6c61ba9a425a4507ad4937a43cfdf8a3.svg deleted file mode 100644 index 7c2e9ff..0000000 --- a/dist/6c61ba9a425a4507ad4937a43cfdf8a3.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6ddde11287ea03fc386a276a431a021e.svg b/dist/6ddde11287ea03fc386a276a431a021e.svg deleted file mode 100644 index de978b1..0000000 --- a/dist/6ddde11287ea03fc386a276a431a021e.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/6e652555e28b1c06bab97f59e3c59077.svg b/dist/6e652555e28b1c06bab97f59e3c59077.svg deleted file mode 100644 index 080f05d..0000000 --- a/dist/6e652555e28b1c06bab97f59e3c59077.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/6fe8dbfd417a188ae3bad77163436588.svg b/dist/6fe8dbfd417a188ae3bad77163436588.svg deleted file mode 100644 index 2d7617b..0000000 --- a/dist/6fe8dbfd417a188ae3bad77163436588.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/70086d0feb719f8eb504b30e9ecf0053.svg b/dist/70086d0feb719f8eb504b30e9ecf0053.svg deleted file mode 100644 index 93670ef..0000000 --- a/dist/70086d0feb719f8eb504b30e9ecf0053.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/7029a2b264d948401ff218099e04fb23.svg b/dist/7029a2b264d948401ff218099e04fb23.svg deleted file mode 100644 index c4a3ebb..0000000 --- a/dist/7029a2b264d948401ff218099e04fb23.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/70e8663377e56b69afd0b23fb38d29c8.svg b/dist/70e8663377e56b69afd0b23fb38d29c8.svg deleted file mode 100644 index 4bf59e6..0000000 --- a/dist/70e8663377e56b69afd0b23fb38d29c8.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/7120f2af3f959db6c0775d5b46ae28a0.svg b/dist/7120f2af3f959db6c0775d5b46ae28a0.svg deleted file mode 100644 index 7c3f125..0000000 --- a/dist/7120f2af3f959db6c0775d5b46ae28a0.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/dist/712e82e192a5e388c8b1575484f10a06.svg b/dist/712e82e192a5e388c8b1575484f10a06.svg deleted file mode 100644 index f4293df..0000000 --- a/dist/712e82e192a5e388c8b1575484f10a06.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/715536ff4275d2abc63074a78f9e2ae8.svg b/dist/715536ff4275d2abc63074a78f9e2ae8.svg deleted file mode 100644 index eb64287..0000000 --- a/dist/715536ff4275d2abc63074a78f9e2ae8.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/719dc5140aba9609e698a9734d095069.svg b/dist/719dc5140aba9609e698a9734d095069.svg deleted file mode 100644 index a245bd6..0000000 --- a/dist/719dc5140aba9609e698a9734d095069.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/71bc2100ae2aa7aad85ef81352b8fb05.svg b/dist/71bc2100ae2aa7aad85ef81352b8fb05.svg deleted file mode 100644 index 3a2efaa..0000000 --- a/dist/71bc2100ae2aa7aad85ef81352b8fb05.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/7205477bdac5b8c124ca0bd945f7cd5a.svg b/dist/7205477bdac5b8c124ca0bd945f7cd5a.svg deleted file mode 100644 index 47b2680..0000000 --- a/dist/7205477bdac5b8c124ca0bd945f7cd5a.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/72af6fc009358514d52010342e5fa988.svg b/dist/72af6fc009358514d52010342e5fa988.svg deleted file mode 100644 index ba5b9f2..0000000 --- a/dist/72af6fc009358514d52010342e5fa988.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/737b32a9f03601d97ae7c2d0c08c88c6.svg b/dist/737b32a9f03601d97ae7c2d0c08c88c6.svg deleted file mode 100644 index 51ed7bf..0000000 --- a/dist/737b32a9f03601d97ae7c2d0c08c88c6.svg +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7472902c7574377c3a19a892595ff20d.svg b/dist/7472902c7574377c3a19a892595ff20d.svg deleted file mode 100644 index 9b481b7..0000000 --- a/dist/7472902c7574377c3a19a892595ff20d.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/74a2016a0f34e25e6c36fefc4df7331a.svg b/dist/74a2016a0f34e25e6c36fefc4df7331a.svg deleted file mode 100644 index 44ad797..0000000 --- a/dist/74a2016a0f34e25e6c36fefc4df7331a.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/751a62a89510023173362b8030683dbf.svg b/dist/751a62a89510023173362b8030683dbf.svg deleted file mode 100644 index 0f13e71..0000000 --- a/dist/751a62a89510023173362b8030683dbf.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/753fea79e1bfde0ad448a557c7a8dc40.svg b/dist/753fea79e1bfde0ad448a557c7a8dc40.svg deleted file mode 100644 index 666586e..0000000 --- a/dist/753fea79e1bfde0ad448a557c7a8dc40.svg +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7594da2b6901fd33e85b17bfb202f1fd.svg b/dist/7594da2b6901fd33e85b17bfb202f1fd.svg deleted file mode 100644 index 89b9f1e..0000000 --- a/dist/7594da2b6901fd33e85b17bfb202f1fd.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/75dcc30dd69fe4a8de1c7cdbf175fb2b.svg b/dist/75dcc30dd69fe4a8de1c7cdbf175fb2b.svg deleted file mode 100644 index 91a0988..0000000 --- a/dist/75dcc30dd69fe4a8de1c7cdbf175fb2b.svg +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/778e5973f95fb9218bf43626d6151558.svg b/dist/778e5973f95fb9218bf43626d6151558.svg deleted file mode 100644 index 130649d..0000000 --- a/dist/778e5973f95fb9218bf43626d6151558.svg +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/77c0e99f412f350e263a2fdbc372a326.svg b/dist/77c0e99f412f350e263a2fdbc372a326.svg deleted file mode 100644 index eed00f9..0000000 --- a/dist/77c0e99f412f350e263a2fdbc372a326.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/77fe4a2aa82a8f6cd2d140cb0434a9ae.svg b/dist/77fe4a2aa82a8f6cd2d140cb0434a9ae.svg deleted file mode 100644 index 457b78d..0000000 --- a/dist/77fe4a2aa82a8f6cd2d140cb0434a9ae.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/78a36e35554b7986031880af53f7ce58.svg b/dist/78a36e35554b7986031880af53f7ce58.svg deleted file mode 100644 index a77dc79..0000000 --- a/dist/78a36e35554b7986031880af53f7ce58.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/79379f9c2276a2ece0f59372814a5cf3.svg b/dist/79379f9c2276a2ece0f59372814a5cf3.svg deleted file mode 100644 index 0d9e1ba..0000000 --- a/dist/79379f9c2276a2ece0f59372814a5cf3.svg +++ /dev/null @@ -1,867 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7976843191002d5de61c0de97c87520f.svg b/dist/7976843191002d5de61c0de97c87520f.svg deleted file mode 100644 index e64abc7..0000000 --- a/dist/7976843191002d5de61c0de97c87520f.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7b4901e07dc9c191438951ceea440398.svg b/dist/7b4901e07dc9c191438951ceea440398.svg deleted file mode 100644 index bb319f2..0000000 --- a/dist/7b4901e07dc9c191438951ceea440398.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/7b55b007f2b0a4f64e9331654ec4f75e.svg b/dist/7b55b007f2b0a4f64e9331654ec4f75e.svg deleted file mode 100644 index 7d2e2ad..0000000 --- a/dist/7b55b007f2b0a4f64e9331654ec4f75e.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/7bd035ccfc833e2745565e2454f377d7.svg b/dist/7bd035ccfc833e2745565e2454f377d7.svg deleted file mode 100644 index 8374651..0000000 --- a/dist/7bd035ccfc833e2745565e2454f377d7.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/7c3a851a32bddd3227a2b1c83ac12c5e.svg b/dist/7c3a851a32bddd3227a2b1c83ac12c5e.svg deleted file mode 100644 index c8f548c..0000000 --- a/dist/7c3a851a32bddd3227a2b1c83ac12c5e.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7cfb0e5a81f461abab864caa18130259.svg b/dist/7cfb0e5a81f461abab864caa18130259.svg deleted file mode 100644 index 777f8d2..0000000 --- a/dist/7cfb0e5a81f461abab864caa18130259.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7d964e793f4784f575b8f544fbb28011.svg b/dist/7d964e793f4784f575b8f544fbb28011.svg deleted file mode 100644 index 260eec0..0000000 --- a/dist/7d964e793f4784f575b8f544fbb28011.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7dd74286a49723f756c6ad9045ee461c.svg b/dist/7dd74286a49723f756c6ad9045ee461c.svg deleted file mode 100644 index 90a4481..0000000 --- a/dist/7dd74286a49723f756c6ad9045ee461c.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/7dec3bc86545646d709926f6543696e1.svg b/dist/7dec3bc86545646d709926f6543696e1.svg deleted file mode 100644 index 25788ad..0000000 --- a/dist/7dec3bc86545646d709926f6543696e1.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/7ded88c22d050ec521f89c3e7bf58d63.svg b/dist/7ded88c22d050ec521f89c3e7bf58d63.svg deleted file mode 100644 index 085aaf9..0000000 --- a/dist/7ded88c22d050ec521f89c3e7bf58d63.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7df13b5ccd37b9e942e1d5e36574c2ce.svg b/dist/7df13b5ccd37b9e942e1d5e36574c2ce.svg deleted file mode 100644 index fd43d02..0000000 --- a/dist/7df13b5ccd37b9e942e1d5e36574c2ce.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/7e4f0fa4af9a1dae70075b279351de8e.svg b/dist/7e4f0fa4af9a1dae70075b279351de8e.svg deleted file mode 100644 index b7ac232..0000000 --- a/dist/7e4f0fa4af9a1dae70075b279351de8e.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/7f24b5dd9a072b1f86843a767c3a58c6.svg b/dist/7f24b5dd9a072b1f86843a767c3a58c6.svg deleted file mode 100644 index 301fc22..0000000 --- a/dist/7f24b5dd9a072b1f86843a767c3a58c6.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7f2bbb3c489b6c954ab3900a05bdbcfb.svg b/dist/7f2bbb3c489b6c954ab3900a05bdbcfb.svg deleted file mode 100644 index 0132229..0000000 --- a/dist/7f2bbb3c489b6c954ab3900a05bdbcfb.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/7ff9e06279eb9b493fb3ce1698d0f063.svg b/dist/7ff9e06279eb9b493fb3ce1698d0f063.svg deleted file mode 100644 index c479b5c..0000000 --- a/dist/7ff9e06279eb9b493fb3ce1698d0f063.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/7ffd7ecca065f0e2cc997e774d68f531.svg b/dist/7ffd7ecca065f0e2cc997e774d68f531.svg deleted file mode 100644 index 0775eda..0000000 --- a/dist/7ffd7ecca065f0e2cc997e774d68f531.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/8172d8409482c3cf154b48495a179d4f.svg b/dist/8172d8409482c3cf154b48495a179d4f.svg deleted file mode 100644 index 09aa432..0000000 --- a/dist/8172d8409482c3cf154b48495a179d4f.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Flag of South Sudan - - - - - - - - diff --git a/dist/818aae784f4f0f9050eac0be12694174.svg b/dist/818aae784f4f0f9050eac0be12694174.svg deleted file mode 100644 index a703bb2..0000000 --- a/dist/818aae784f4f0f9050eac0be12694174.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/81e09ae90f40671e660d9252a06e7f3d.svg b/dist/81e09ae90f40671e660d9252a06e7f3d.svg deleted file mode 100644 index 69373c6..0000000 --- a/dist/81e09ae90f40671e660d9252a06e7f3d.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/8244b2d2a803cff9823c380344c35792.svg b/dist/8244b2d2a803cff9823c380344c35792.svg deleted file mode 100644 index aa173b4..0000000 --- a/dist/8244b2d2a803cff9823c380344c35792.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/82ab30594c23ea189baa397823c1a228.svg b/dist/82ab30594c23ea189baa397823c1a228.svg deleted file mode 100644 index bb7f400..0000000 --- a/dist/82ab30594c23ea189baa397823c1a228.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/82fc9d7e5a3e8559a9771fdc57626647.svg b/dist/82fc9d7e5a3e8559a9771fdc57626647.svg deleted file mode 100644 index cf422f8..0000000 --- a/dist/82fc9d7e5a3e8559a9771fdc57626647.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/84246befb604b1c913972ba98f11f26c.svg b/dist/84246befb604b1c913972ba98f11f26c.svg deleted file mode 100644 index b651f62..0000000 --- a/dist/84246befb604b1c913972ba98f11f26c.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/84a864f735b62856183e3c6545f6e641.svg b/dist/84a864f735b62856183e3c6545f6e641.svg deleted file mode 100644 index 0ee7d23..0000000 --- a/dist/84a864f735b62856183e3c6545f6e641.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/853f40a4f4f24a12a9c46ea0342c7e0d.svg b/dist/853f40a4f4f24a12a9c46ea0342c7e0d.svg deleted file mode 100644 index 52295fa..0000000 --- a/dist/853f40a4f4f24a12a9c46ea0342c7e0d.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/858e26cb9cb6dd2cb6dca086833362c5.svg b/dist/858e26cb9cb6dd2cb6dca086833362c5.svg deleted file mode 100644 index ac0f7fd..0000000 --- a/dist/858e26cb9cb6dd2cb6dca086833362c5.svg +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8611890e95a8576ad4111f478f6677e3.svg b/dist/8611890e95a8576ad4111f478f6677e3.svg deleted file mode 100644 index 4100a4d..0000000 --- a/dist/8611890e95a8576ad4111f478f6677e3.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/86a7d1a15ee90ad9f8dbd33aa0eebc40.svg b/dist/86a7d1a15ee90ad9f8dbd33aa0eebc40.svg deleted file mode 100644 index f4d4fa4..0000000 --- a/dist/86a7d1a15ee90ad9f8dbd33aa0eebc40.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/86ad3b9d47d137bf955ec6bb437aa6e6.svg b/dist/86ad3b9d47d137bf955ec6bb437aa6e6.svg deleted file mode 100644 index 4a13564..0000000 --- a/dist/86ad3b9d47d137bf955ec6bb437aa6e6.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/871680141a2d163ccad8e09c23015cbe.svg b/dist/871680141a2d163ccad8e09c23015cbe.svg deleted file mode 100644 index 622e250..0000000 --- a/dist/871680141a2d163ccad8e09c23015cbe.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/88b8b4d2f004c3e94676dea28f0d5b58.svg b/dist/88b8b4d2f004c3e94676dea28f0d5b58.svg deleted file mode 100644 index 369f67c..0000000 --- a/dist/88b8b4d2f004c3e94676dea28f0d5b58.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/8b72b54e26fbe3e92c693a045252a92b.svg b/dist/8b72b54e26fbe3e92c693a045252a92b.svg deleted file mode 100644 index 4c3c463..0000000 --- a/dist/8b72b54e26fbe3e92c693a045252a92b.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8ba60fe3f4bbd12ddc83825993d852f6.svg b/dist/8ba60fe3f4bbd12ddc83825993d852f6.svg deleted file mode 100644 index 256df69..0000000 --- a/dist/8ba60fe3f4bbd12ddc83825993d852f6.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8bb5fabe5d05c57cead955299489454d.svg b/dist/8bb5fabe5d05c57cead955299489454d.svg deleted file mode 100644 index 918b59f..0000000 --- a/dist/8bb5fabe5d05c57cead955299489454d.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8cf29d8c6803a56dc65e2e07c7e4d3ac.svg b/dist/8cf29d8c6803a56dc65e2e07c7e4d3ac.svg deleted file mode 100644 index 5667129..0000000 --- a/dist/8cf29d8c6803a56dc65e2e07c7e4d3ac.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8d3747097fc891aa332fe70da0b5dbb9.svg b/dist/8d3747097fc891aa332fe70da0b5dbb9.svg deleted file mode 100644 index ba5cc88..0000000 --- a/dist/8d3747097fc891aa332fe70da0b5dbb9.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/8e10fd345e693b4c3ded36bc813a8beb.svg b/dist/8e10fd345e693b4c3ded36bc813a8beb.svg deleted file mode 100644 index 66f19d2..0000000 --- a/dist/8e10fd345e693b4c3ded36bc813a8beb.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/8e69418b8882fbe4e28d9c91e4b5d038.svg b/dist/8e69418b8882fbe4e28d9c91e4b5d038.svg deleted file mode 100644 index 870c93c..0000000 --- a/dist/8e69418b8882fbe4e28d9c91e4b5d038.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8f801b037a85e29e427f67279145e8ae.svg b/dist/8f801b037a85e29e427f67279145e8ae.svg deleted file mode 100644 index 54f65e6..0000000 --- a/dist/8f801b037a85e29e427f67279145e8ae.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/8fa2173936bd215ed1e81d191beed4a0.svg b/dist/8fa2173936bd215ed1e81d191beed4a0.svg deleted file mode 100644 index bcba50f..0000000 --- a/dist/8fa2173936bd215ed1e81d191beed4a0.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/8fa2e58bbb2851235c003872c7da45be.svg b/dist/8fa2e58bbb2851235c003872c7da45be.svg deleted file mode 100644 index 741adbc..0000000 --- a/dist/8fa2e58bbb2851235c003872c7da45be.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/90d30077f8a3804d97b146261cf4a3dc.svg b/dist/90d30077f8a3804d97b146261cf4a3dc.svg deleted file mode 100644 index dca3b10..0000000 --- a/dist/90d30077f8a3804d97b146261cf4a3dc.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/918079f3335ff83b554b852805144ec6.svg b/dist/918079f3335ff83b554b852805144ec6.svg deleted file mode 100644 index 3199030..0000000 --- a/dist/918079f3335ff83b554b852805144ec6.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/9223e164e9ae27b862ff74435bb61bad.svg b/dist/9223e164e9ae27b862ff74435bb61bad.svg deleted file mode 100644 index 4ca37e1..0000000 --- a/dist/9223e164e9ae27b862ff74435bb61bad.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/927910421f5258b7e700261020654568.svg b/dist/927910421f5258b7e700261020654568.svg deleted file mode 100644 index 0ffda77..0000000 --- a/dist/927910421f5258b7e700261020654568.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/92ff1effd6fa46fcddd59e53a94225cb.svg b/dist/92ff1effd6fa46fcddd59e53a94225cb.svg deleted file mode 100644 index 3cc1577..0000000 --- a/dist/92ff1effd6fa46fcddd59e53a94225cb.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/931492b3d9a737b726f59165d6c8bf79.svg b/dist/931492b3d9a737b726f59165d6c8bf79.svg deleted file mode 100644 index 8f75d02..0000000 --- a/dist/931492b3d9a737b726f59165d6c8bf79.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/931c955e882e1d9d383fac4913acc86a.svg b/dist/931c955e882e1d9d383fac4913acc86a.svg deleted file mode 100644 index 6bc4899..0000000 --- a/dist/931c955e882e1d9d383fac4913acc86a.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/937aa8a3af880ff0b5dc62bcd641fea6.svg b/dist/937aa8a3af880ff0b5dc62bcd641fea6.svg deleted file mode 100644 index 2a71559..0000000 --- a/dist/937aa8a3af880ff0b5dc62bcd641fea6.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/9533850d857e386b1b1e945bb7ec17f5.svg b/dist/9533850d857e386b1b1e945bb7ec17f5.svg deleted file mode 100644 index 7026390..0000000 --- a/dist/9533850d857e386b1b1e945bb7ec17f5.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dist/953bfe74163fbc6c8a3fda6e9dd905af.svg b/dist/953bfe74163fbc6c8a3fda6e9dd905af.svg deleted file mode 100644 index 2d4d2c1..0000000 --- a/dist/953bfe74163fbc6c8a3fda6e9dd905af.svg +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/956bd210dcb251078cd57c922ba96319.svg b/dist/956bd210dcb251078cd57c922ba96319.svg deleted file mode 100644 index 66b3867..0000000 --- a/dist/956bd210dcb251078cd57c922ba96319.svg +++ /dev/null @@ -1,767 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/9618efeea3d140e972fbce7e8a2d158b.svg b/dist/9618efeea3d140e972fbce7e8a2d158b.svg deleted file mode 100644 index 06006a1..0000000 --- a/dist/9618efeea3d140e972fbce7e8a2d158b.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/96303b120e580d23f3302c21b3ff7476.svg b/dist/96303b120e580d23f3302c21b3ff7476.svg deleted file mode 100644 index 4c37871..0000000 --- a/dist/96303b120e580d23f3302c21b3ff7476.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/9681a434772a2c7c36677f0bbc0c6bef.svg b/dist/9681a434772a2c7c36677f0bbc0c6bef.svg deleted file mode 100644 index 20bc759..0000000 --- a/dist/9681a434772a2c7c36677f0bbc0c6bef.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/96fd418671b27969855fa12b45eecd48.svg b/dist/96fd418671b27969855fa12b45eecd48.svg deleted file mode 100644 index 0a6eed1..0000000 --- a/dist/96fd418671b27969855fa12b45eecd48.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/979a8afbbb54de57f27b5082653e6644.svg b/dist/979a8afbbb54de57f27b5082653e6644.svg deleted file mode 100644 index 95146bc..0000000 --- a/dist/979a8afbbb54de57f27b5082653e6644.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/97a820f9b45d01f48d151c8545984c9f.svg b/dist/97a820f9b45d01f48d151c8545984c9f.svg deleted file mode 100644 index 1c6d189..0000000 --- a/dist/97a820f9b45d01f48d151c8545984c9f.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/98b7ffa0d69261623e4c5171842466a0.svg b/dist/98b7ffa0d69261623e4c5171842466a0.svg deleted file mode 100644 index 1ab5e84..0000000 --- a/dist/98b7ffa0d69261623e4c5171842466a0.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/9a51f82e6733cc6bdb0b93912f5ed85d.svg b/dist/9a51f82e6733cc6bdb0b93912f5ed85d.svg deleted file mode 100644 index 81f0682..0000000 --- a/dist/9a51f82e6733cc6bdb0b93912f5ed85d.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/9a92c89869d03893ae7afc56f6e3526e.svg b/dist/9a92c89869d03893ae7afc56f6e3526e.svg deleted file mode 100644 index fe7a972..0000000 --- a/dist/9a92c89869d03893ae7afc56f6e3526e.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/9a96be692285c4bcb824e6a696609758.svg b/dist/9a96be692285c4bcb824e6a696609758.svg deleted file mode 100644 index c9bb614..0000000 --- a/dist/9a96be692285c4bcb824e6a696609758.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/9d13be9808d6805a0b0e3a83ed80c7c1.svg b/dist/9d13be9808d6805a0b0e3a83ed80c7c1.svg deleted file mode 100644 index 480d60f..0000000 --- a/dist/9d13be9808d6805a0b0e3a83ed80c7c1.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/9d21aa4d033b6694619f9fa237643a0a.svg b/dist/9d21aa4d033b6694619f9fa237643a0a.svg deleted file mode 100644 index e729f57..0000000 --- a/dist/9d21aa4d033b6694619f9fa237643a0a.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/9d532f71faf853882cd75fecc6f808f4.svg b/dist/9d532f71faf853882cd75fecc6f808f4.svg deleted file mode 100644 index 9a48673..0000000 --- a/dist/9d532f71faf853882cd75fecc6f808f4.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/9deb4dca659f5c13ce77ec9e00e654a0.svg b/dist/9deb4dca659f5c13ce77ec9e00e654a0.svg deleted file mode 100644 index 3ac618e..0000000 --- a/dist/9deb4dca659f5c13ce77ec9e00e654a0.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/9e203490ba981bb8620ff0c4fa6fab7f.svg b/dist/9e203490ba981bb8620ff0c4fa6fab7f.svg deleted file mode 100644 index ee3ea7b..0000000 --- a/dist/9e203490ba981bb8620ff0c4fa6fab7f.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/9ec21b5178da6d4128bfa7ee292bc721.svg b/dist/9ec21b5178da6d4128bfa7ee292bc721.svg deleted file mode 100644 index 94cd51a..0000000 --- a/dist/9ec21b5178da6d4128bfa7ee292bc721.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/9fe0950d56eba18326eca7a0e4cf0e83.svg b/dist/9fe0950d56eba18326eca7a0e4cf0e83.svg deleted file mode 100644 index f7b5893..0000000 --- a/dist/9fe0950d56eba18326eca7a0e4cf0e83.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/9fedafc0bda545ad9d0b7dab9065c693.svg b/dist/9fedafc0bda545ad9d0b7dab9065c693.svg deleted file mode 100644 index fdc9028..0000000 --- a/dist/9fedafc0bda545ad9d0b7dab9065c693.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/a091b6a8b340c3710e965090d01810b1.svg b/dist/a091b6a8b340c3710e965090d01810b1.svg deleted file mode 100644 index 5f9c860..0000000 --- a/dist/a091b6a8b340c3710e965090d01810b1.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/a14d9be3d5793688793b2b402468a51d.svg b/dist/a14d9be3d5793688793b2b402468a51d.svg deleted file mode 100644 index df646ac..0000000 --- a/dist/a14d9be3d5793688793b2b402468a51d.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a1738661267ec140b3b51ef6c6b32be5.svg b/dist/a1738661267ec140b3b51ef6c6b32be5.svg deleted file mode 100644 index 712ff50..0000000 --- a/dist/a1738661267ec140b3b51ef6c6b32be5.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a1aeac56b9b6b4d1bf936df1f0ddef28.svg b/dist/a1aeac56b9b6b4d1bf936df1f0ddef28.svg deleted file mode 100644 index 3198a97..0000000 --- a/dist/a1aeac56b9b6b4d1bf936df1f0ddef28.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a1c573d373653b1ea4be1197cebe9d11.svg b/dist/a1c573d373653b1ea4be1197cebe9d11.svg deleted file mode 100644 index bafed9d..0000000 --- a/dist/a1c573d373653b1ea4be1197cebe9d11.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/a1deda796be1dc30b198e93cd5796b52.svg b/dist/a1deda796be1dc30b198e93cd5796b52.svg deleted file mode 100644 index bcac275..0000000 --- a/dist/a1deda796be1dc30b198e93cd5796b52.svg +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a280423f59f73e573f45458baa90611b.svg b/dist/a280423f59f73e573f45458baa90611b.svg deleted file mode 100644 index 2db4dc2..0000000 --- a/dist/a280423f59f73e573f45458baa90611b.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a2ca265aa40c2d563c9f0ed2ff22268a.svg b/dist/a2ca265aa40c2d563c9f0ed2ff22268a.svg deleted file mode 100644 index 2350e5c..0000000 --- a/dist/a2ca265aa40c2d563c9f0ed2ff22268a.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/a3312ec4e447949e5f957f3e50e7f03a.svg b/dist/a3312ec4e447949e5f957f3e50e7f03a.svg deleted file mode 100644 index 32f4506..0000000 --- a/dist/a3312ec4e447949e5f957f3e50e7f03a.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/a440078a71152f92b140c4d43f59fbb4.svg b/dist/a440078a71152f92b140c4d43f59fbb4.svg deleted file mode 100644 index fdb00ac..0000000 --- a/dist/a440078a71152f92b140c4d43f59fbb4.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a47d382a08c586969cd33cef74e9b4a4.svg b/dist/a47d382a08c586969cd33cef74e9b4a4.svg deleted file mode 100644 index 1acced6..0000000 --- a/dist/a47d382a08c586969cd33cef74e9b4a4.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/a5526c28f6dd31b5c2c1c74181b045be.svg b/dist/a5526c28f6dd31b5c2c1c74181b045be.svg deleted file mode 100644 index 62c08fc..0000000 --- a/dist/a5526c28f6dd31b5c2c1c74181b045be.svg +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L - - - E - - - O - - - T - - - E - - - R - - - R - - - R - - - R - - - R - - - E - - - O - - - O - - - A - - - A - - - A - - - M - - - P - - - P - - - P - - - I - - - T - - - T - - - M - - - G - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a6905e34d878d6038adbddce8ace509c.svg b/dist/a6905e34d878d6038adbddce8ace509c.svg deleted file mode 100644 index 973cb2e..0000000 --- a/dist/a6905e34d878d6038adbddce8ace509c.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/a6f7b00078473002b62f686c02b23325.svg b/dist/a6f7b00078473002b62f686c02b23325.svg deleted file mode 100644 index 3353c48..0000000 --- a/dist/a6f7b00078473002b62f686c02b23325.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/a709c923806669f98119437fe188f43d.svg b/dist/a709c923806669f98119437fe188f43d.svg deleted file mode 100644 index 0e6a5ea..0000000 --- a/dist/a709c923806669f98119437fe188f43d.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/a71e68e7d181ad5e6cfec047826655c1.svg b/dist/a71e68e7d181ad5e6cfec047826655c1.svg deleted file mode 100644 index 770c569..0000000 --- a/dist/a71e68e7d181ad5e6cfec047826655c1.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a724569b1c268edfd59ac6062804a28d.svg b/dist/a724569b1c268edfd59ac6062804a28d.svg deleted file mode 100644 index 13b36fe..0000000 --- a/dist/a724569b1c268edfd59ac6062804a28d.svg +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a73f953470a901c4baa45332daf44ae7.svg b/dist/a73f953470a901c4baa45332daf44ae7.svg deleted file mode 100644 index 36da23a..0000000 --- a/dist/a73f953470a901c4baa45332daf44ae7.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/a7f6e38c2e8bda0e8e0890ccac48b388.svg b/dist/a7f6e38c2e8bda0e8e0890ccac48b388.svg deleted file mode 100644 index 011831a..0000000 --- a/dist/a7f6e38c2e8bda0e8e0890ccac48b388.svg +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/a8804b590076ead9e1b282efc9194baa.svg b/dist/a8804b590076ead9e1b282efc9194baa.svg deleted file mode 100644 index dd333fc..0000000 --- a/dist/a8804b590076ead9e1b282efc9194baa.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/a8deda35b11018b08bd1c060c583b70e.svg b/dist/a8deda35b11018b08bd1c060c583b70e.svg deleted file mode 100644 index bc7e8cb..0000000 --- a/dist/a8deda35b11018b08bd1c060c583b70e.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/a960ac7115858f771f3248ada7ba356a.svg b/dist/a960ac7115858f771f3248ada7ba356a.svg deleted file mode 100644 index 91b13f0..0000000 --- a/dist/a960ac7115858f771f3248ada7ba356a.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/aaf7f0c1550c14bdcea58b7559db5e3a.svg b/dist/aaf7f0c1550c14bdcea58b7559db5e3a.svg deleted file mode 100644 index 2dce6f0..0000000 --- a/dist/aaf7f0c1550c14bdcea58b7559db5e3a.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/dist/ab106c08f140b816fd9d6194615c3e8f.svg b/dist/ab106c08f140b816fd9d6194615c3e8f.svg deleted file mode 100644 index dd4128a..0000000 --- a/dist/ab106c08f140b816fd9d6194615c3e8f.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/ac852bd19bb54f2e74ada410152cb882.svg b/dist/ac852bd19bb54f2e74ada410152cb882.svg deleted file mode 100644 index 82b0c93..0000000 --- a/dist/ac852bd19bb54f2e74ada410152cb882.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/ac8a4a84672e14bb2d189bd525bc286c.svg b/dist/ac8a4a84672e14bb2d189bd525bc286c.svg deleted file mode 100644 index ae0f346..0000000 --- a/dist/ac8a4a84672e14bb2d189bd525bc286c.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/accd354035730c5b4c490e1adf2ea5e9.svg b/dist/accd354035730c5b4c490e1adf2ea5e9.svg deleted file mode 100644 index fb1c20c..0000000 --- a/dist/accd354035730c5b4c490e1adf2ea5e9.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/ad120452d3c25b65fbf310bc937bcb7f.svg b/dist/ad120452d3c25b65fbf310bc937bcb7f.svg deleted file mode 100644 index fa75182..0000000 --- a/dist/ad120452d3c25b65fbf310bc937bcb7f.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/ad7ef976ecc1172a7521fee9178a50dd.svg b/dist/ad7ef976ecc1172a7521fee9178a50dd.svg deleted file mode 100644 index 858e8c3..0000000 --- a/dist/ad7ef976ecc1172a7521fee9178a50dd.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/ae95c658132ceec4862e7921a2d94387.svg b/dist/ae95c658132ceec4862e7921a2d94387.svg deleted file mode 100644 index 96e8988..0000000 --- a/dist/ae95c658132ceec4862e7921a2d94387.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/ae9eadbc9e6eefad25c359118a633f37.svg b/dist/ae9eadbc9e6eefad25c359118a633f37.svg deleted file mode 100644 index 7c7b657..0000000 --- a/dist/ae9eadbc9e6eefad25c359118a633f37.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/afd9a1bc965716cfda7e03080c2e11dc.svg b/dist/afd9a1bc965716cfda7e03080c2e11dc.svg deleted file mode 100644 index 3efe8c3..0000000 --- a/dist/afd9a1bc965716cfda7e03080c2e11dc.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/b032f46146ce586684d98afb8782e905.svg b/dist/b032f46146ce586684d98afb8782e905.svg deleted file mode 100644 index c82462b..0000000 --- a/dist/b032f46146ce586684d98afb8782e905.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/b0480f38ecee7a5bb1b8c0f71efcb22e.svg b/dist/b0480f38ecee7a5bb1b8c0f71efcb22e.svg deleted file mode 100644 index 92581ff..0000000 --- a/dist/b0480f38ecee7a5bb1b8c0f71efcb22e.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/b0b240c82f4d8ab7d9537eb7a05bf728.svg b/dist/b0b240c82f4d8ab7d9537eb7a05bf728.svg deleted file mode 100644 index 139a9c3..0000000 --- a/dist/b0b240c82f4d8ab7d9537eb7a05bf728.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/b158212c18e12b40391463b8d0e2354f.svg b/dist/b158212c18e12b40391463b8d0e2354f.svg deleted file mode 100644 index 1a63949..0000000 --- a/dist/b158212c18e12b40391463b8d0e2354f.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/b1b7c3f215da90d7e0d3f6858bd40acd.svg b/dist/b1b7c3f215da90d7e0d3f6858bd40acd.svg deleted file mode 100644 index e54b328..0000000 --- a/dist/b1b7c3f215da90d7e0d3f6858bd40acd.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/b1ff05d8036b53c8eb0b01ac22368e86.svg b/dist/b1ff05d8036b53c8eb0b01ac22368e86.svg deleted file mode 100644 index 88ad196..0000000 --- a/dist/b1ff05d8036b53c8eb0b01ac22368e86.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/b215f71aa64b45cf12eaa7f7edde7e11.svg b/dist/b215f71aa64b45cf12eaa7f7edde7e11.svg deleted file mode 100644 index bb26fe4..0000000 --- a/dist/b215f71aa64b45cf12eaa7f7edde7e11.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/b3075ae823da9951cf5a5ae1602f723f.svg b/dist/b3075ae823da9951cf5a5ae1602f723f.svg deleted file mode 100644 index 736a1f0..0000000 --- a/dist/b3075ae823da9951cf5a5ae1602f723f.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/b3d82dced36f73b9f206be16fa4efff8.svg b/dist/b3d82dced36f73b9f206be16fa4efff8.svg deleted file mode 100644 index f4eb8b3..0000000 --- a/dist/b3d82dced36f73b9f206be16fa4efff8.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/b3e3b71d90427b59fdcf66ae66f2e037.svg b/dist/b3e3b71d90427b59fdcf66ae66f2e037.svg deleted file mode 100644 index 79a5dec..0000000 --- a/dist/b3e3b71d90427b59fdcf66ae66f2e037.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/b4fbd870a5c002bdf25294aeb4c9d17c.svg b/dist/b4fbd870a5c002bdf25294aeb4c9d17c.svg deleted file mode 100644 index 99dd31a..0000000 --- a/dist/b4fbd870a5c002bdf25294aeb4c9d17c.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/b554c23d75b8047efd4f416347c36946.svg b/dist/b554c23d75b8047efd4f416347c36946.svg deleted file mode 100644 index d4db879..0000000 --- a/dist/b554c23d75b8047efd4f416347c36946.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/b5c61a561c3b1a37a9d36c04afd93d28.svg b/dist/b5c61a561c3b1a37a9d36c04afd93d28.svg deleted file mode 100644 index e8f75d4..0000000 --- a/dist/b5c61a561c3b1a37a9d36c04afd93d28.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/b85aff25c169186ccb8c1ddf5c150dc7.svg b/dist/b85aff25c169186ccb8c1ddf5c150dc7.svg deleted file mode 100644 index 19882df..0000000 --- a/dist/b85aff25c169186ccb8c1ddf5c150dc7.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/b8a69df676fa2acca63a7a20b2af0a9e.svg b/dist/b8a69df676fa2acca63a7a20b2af0a9e.svg deleted file mode 100644 index 79b8e54..0000000 --- a/dist/b8a69df676fa2acca63a7a20b2af0a9e.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/b945d98c29ff5e93d76f8d69f8bae5d3.svg b/dist/b945d98c29ff5e93d76f8d69f8bae5d3.svg deleted file mode 100644 index 113157a..0000000 --- a/dist/b945d98c29ff5e93d76f8d69f8bae5d3.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/b9769a826ee4cf51d81965aa6111121c.svg b/dist/b9769a826ee4cf51d81965aa6111121c.svg deleted file mode 100644 index 48ef440..0000000 --- a/dist/b9769a826ee4cf51d81965aa6111121c.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/b996791e8c91424d51be79bca33b51a8.svg b/dist/b996791e8c91424d51be79bca33b51a8.svg deleted file mode 100644 index 725bc18..0000000 --- a/dist/b996791e8c91424d51be79bca33b51a8.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/b9da2549f668e07c9df14026f2cafcf1.svg b/dist/b9da2549f668e07c9df14026f2cafcf1.svg deleted file mode 100644 index a788605..0000000 --- a/dist/b9da2549f668e07c9df14026f2cafcf1.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/ba61c942340e224b8aabed19655c1ae1.svg b/dist/ba61c942340e224b8aabed19655c1ae1.svg deleted file mode 100644 index e348420..0000000 --- a/dist/ba61c942340e224b8aabed19655c1ae1.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/bae70729e93db3e733818167d6b0c31e.svg b/dist/bae70729e93db3e733818167d6b0c31e.svg deleted file mode 100644 index feee5b0..0000000 --- a/dist/bae70729e93db3e733818167d6b0c31e.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/bb1c3a1e6d7a000d2eeaa146cc21c3cf.svg b/dist/bb1c3a1e6d7a000d2eeaa146cc21c3cf.svg deleted file mode 100644 index 0810cf3..0000000 --- a/dist/bb1c3a1e6d7a000d2eeaa146cc21c3cf.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/bb2bba0943e7d2410637ef1874bf89db.svg b/dist/bb2bba0943e7d2410637ef1874bf89db.svg deleted file mode 100644 index d7316eb..0000000 --- a/dist/bb2bba0943e7d2410637ef1874bf89db.svg +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/bb49ccf91f41c7cad8a40f3173f5b88f.svg b/dist/bb49ccf91f41c7cad8a40f3173f5b88f.svg deleted file mode 100644 index f7eb82b..0000000 --- a/dist/bb49ccf91f41c7cad8a40f3173f5b88f.svg +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/bbee48605525e4eac7bb834937448fb8.svg b/dist/bbee48605525e4eac7bb834937448fb8.svg deleted file mode 100644 index e91a487..0000000 --- a/dist/bbee48605525e4eac7bb834937448fb8.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/bc6ff9fa9c661b4341f81f59b0abc2a1.svg b/dist/bc6ff9fa9c661b4341f81f59b0abc2a1.svg deleted file mode 100644 index 497be35..0000000 --- a/dist/bc6ff9fa9c661b4341f81f59b0abc2a1.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/be2ea3a7227c591d5823217d30887e8c.svg b/dist/be2ea3a7227c591d5823217d30887e8c.svg deleted file mode 100644 index 83f5f4a..0000000 --- a/dist/be2ea3a7227c591d5823217d30887e8c.svg +++ /dev/null @@ -1,621 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/be557561be1b2c7c70c4f20c298122b9.svg b/dist/be557561be1b2c7c70c4f20c298122b9.svg deleted file mode 100644 index 4345ea7..0000000 --- a/dist/be557561be1b2c7c70c4f20c298122b9.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/bf7ab9cbece5617ff639fbcd3091bc4a.svg b/dist/bf7ab9cbece5617ff639fbcd3091bc4a.svg deleted file mode 100644 index 03e6f4c..0000000 --- a/dist/bf7ab9cbece5617ff639fbcd3091bc4a.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/bfcad2b5232f39589288f340af7f98b6.svg b/dist/bfcad2b5232f39589288f340af7f98b6.svg deleted file mode 100644 index b5786c4..0000000 --- a/dist/bfcad2b5232f39589288f340af7f98b6.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/c00afcbc6660d6a0bf5ad6af89c0a104.svg b/dist/c00afcbc6660d6a0bf5ad6af89c0a104.svg deleted file mode 100644 index fc6d864..0000000 --- a/dist/c00afcbc6660d6a0bf5ad6af89c0a104.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/c0aa9546bd03d8182a0b73cf64c08057.svg b/dist/c0aa9546bd03d8182a0b73cf64c08057.svg deleted file mode 100644 index 0ae92b0..0000000 --- a/dist/c0aa9546bd03d8182a0b73cf64c08057.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c0c1284a42df957ce01b026497bc0a0f.svg b/dist/c0c1284a42df957ce01b026497bc0a0f.svg deleted file mode 100644 index 5d7d5ae..0000000 --- a/dist/c0c1284a42df957ce01b026497bc0a0f.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/c1bbd575a008577a8d23f55898b1dfa8.svg b/dist/c1bbd575a008577a8d23f55898b1dfa8.svg deleted file mode 100644 index 8a785e9..0000000 --- a/dist/c1bbd575a008577a8d23f55898b1dfa8.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c2713a2faea35a4884c5998203f5994a.svg b/dist/c2713a2faea35a4884c5998203f5994a.svg deleted file mode 100644 index 1745155..0000000 --- a/dist/c2713a2faea35a4884c5998203f5994a.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/c2773abf29a1f2724f2bab943150d5af.svg b/dist/c2773abf29a1f2724f2bab943150d5af.svg deleted file mode 100644 index d945eac..0000000 --- a/dist/c2773abf29a1f2724f2bab943150d5af.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - G - - - U - - - A - - - M - - - - - - - - G - - - U - - - A - - - M - - diff --git a/dist/c3040651398145aaa42b8f568aa9c9b5.svg b/dist/c3040651398145aaa42b8f568aa9c9b5.svg deleted file mode 100644 index 0aae6d4..0000000 --- a/dist/c3040651398145aaa42b8f568aa9c9b5.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/c3694ceb9ac236d181e261532589666b.svg b/dist/c3694ceb9ac236d181e261532589666b.svg deleted file mode 100644 index 2179fea..0000000 --- a/dist/c3694ceb9ac236d181e261532589666b.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/c36da13f161e829b9e4437709c0bf504.svg b/dist/c36da13f161e829b9e4437709c0bf504.svg deleted file mode 100644 index cf417e3..0000000 --- a/dist/c36da13f161e829b9e4437709c0bf504.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c381ab4afcd27607e158a9852b13d7d6.svg b/dist/c381ab4afcd27607e158a9852b13d7d6.svg deleted file mode 100644 index 7675811..0000000 --- a/dist/c381ab4afcd27607e158a9852b13d7d6.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c39e2480e881b9ad255a85d41be2355c.svg b/dist/c39e2480e881b9ad255a85d41be2355c.svg deleted file mode 100644 index 0c2fb40..0000000 --- a/dist/c39e2480e881b9ad255a85d41be2355c.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c3d4d81f80c0d7ecaafa1efd826990a3.svg b/dist/c3d4d81f80c0d7ecaafa1efd826990a3.svg deleted file mode 100644 index cd41779..0000000 --- a/dist/c3d4d81f80c0d7ecaafa1efd826990a3.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/c450721d0ece42461db5ad66b633bcb0.svg b/dist/c450721d0ece42461db5ad66b633bcb0.svg deleted file mode 100644 index 9c795a3..0000000 --- a/dist/c450721d0ece42461db5ad66b633bcb0.svg +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c593bb3a6bfd42b60893d072efd5e05a.svg b/dist/c593bb3a6bfd42b60893d072efd5e05a.svg deleted file mode 100644 index 4ad2aa8..0000000 --- a/dist/c593bb3a6bfd42b60893d072efd5e05a.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/c63bf725633fd74a61776ed84d1e448b.svg b/dist/c63bf725633fd74a61776ed84d1e448b.svg deleted file mode 100644 index 0aa3641..0000000 --- a/dist/c63bf725633fd74a61776ed84d1e448b.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c6787e76343b1a18850b354d15a191f5.svg b/dist/c6787e76343b1a18850b354d15a191f5.svg deleted file mode 100644 index ea2e10b..0000000 --- a/dist/c6787e76343b1a18850b354d15a191f5.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/c6eea6caa802a57cc87d1ddccc079069.svg b/dist/c6eea6caa802a57cc87d1ddccc079069.svg deleted file mode 100644 index 52b062e..0000000 --- a/dist/c6eea6caa802a57cc87d1ddccc079069.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c7028fff031e7b6e427d9998753ebb28.svg b/dist/c7028fff031e7b6e427d9998753ebb28.svg deleted file mode 100644 index 2f7ce19..0000000 --- a/dist/c7028fff031e7b6e427d9998753ebb28.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/c74cea43495fe4d8b95af4e086a34aba.svg b/dist/c74cea43495fe4d8b95af4e086a34aba.svg deleted file mode 100644 index 1391d9a..0000000 --- a/dist/c74cea43495fe4d8b95af4e086a34aba.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/c95adb975759cd776fb94fd13baa2071.svg b/dist/c95adb975759cd776fb94fd13baa2071.svg deleted file mode 100644 index a1efe38..0000000 --- a/dist/c95adb975759cd776fb94fd13baa2071.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/c9699daef375fa4e6944da87f69120ee.svg b/dist/c9699daef375fa4e6944da87f69120ee.svg deleted file mode 100644 index 9d55ad1..0000000 --- a/dist/c9699daef375fa4e6944da87f69120ee.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/ca125d8e52179f8dbc0d152004ca9450.svg b/dist/ca125d8e52179f8dbc0d152004ca9450.svg deleted file mode 100644 index f383b31..0000000 --- a/dist/ca125d8e52179f8dbc0d152004ca9450.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/ca5553ec02b6495ce9caf3f6865c937c.svg b/dist/ca5553ec02b6495ce9caf3f6865c937c.svg deleted file mode 100644 index cc9041d..0000000 --- a/dist/ca5553ec02b6495ce9caf3f6865c937c.svg +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/ca7921ae4d91acc78b58a47079498d0c.svg b/dist/ca7921ae4d91acc78b58a47079498d0c.svg deleted file mode 100644 index 47e45b2..0000000 --- a/dist/ca7921ae4d91acc78b58a47079498d0c.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/ca7b9df6c0ee52ec7f08b6d3e0d874e9.svg b/dist/ca7b9df6c0ee52ec7f08b6d3e0d874e9.svg deleted file mode 100644 index f1afe00..0000000 --- a/dist/ca7b9df6c0ee52ec7f08b6d3e0d874e9.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/cb060405906a12fae87d5ff6d0eec339.svg b/dist/cb060405906a12fae87d5ff6d0eec339.svg deleted file mode 100644 index 40b01da..0000000 --- a/dist/cb060405906a12fae87d5ff6d0eec339.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/cb3bbc363f65f72114614c76993f9f7b.svg b/dist/cb3bbc363f65f72114614c76993f9f7b.svg deleted file mode 100644 index 19336c0..0000000 --- a/dist/cb3bbc363f65f72114614c76993f9f7b.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/cbea4f0bf662b3f597f4a1d88c5e9604.svg b/dist/cbea4f0bf662b3f597f4a1d88c5e9604.svg deleted file mode 100644 index 27270b6..0000000 --- a/dist/cbea4f0bf662b3f597f4a1d88c5e9604.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/cc01a308b42b7a52e18aabc0ca1b7bb6.svg b/dist/cc01a308b42b7a52e18aabc0ca1b7bb6.svg deleted file mode 100644 index 6cbe43a..0000000 --- a/dist/cc01a308b42b7a52e18aabc0ca1b7bb6.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/cc07a154881da36c00f2cdd21ed3ffa9.svg b/dist/cc07a154881da36c00f2cdd21ed3ffa9.svg deleted file mode 100644 index 462197d..0000000 --- a/dist/cc07a154881da36c00f2cdd21ed3ffa9.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/cc8d1c8c098dec7e0820d8592ffdecc9.svg b/dist/cc8d1c8c098dec7e0820d8592ffdecc9.svg deleted file mode 100644 index f547aed..0000000 --- a/dist/cc8d1c8c098dec7e0820d8592ffdecc9.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/ccfe22597a7ee8fbee305533cb1532e3.svg b/dist/ccfe22597a7ee8fbee305533cb1532e3.svg deleted file mode 100644 index 840eb35..0000000 --- a/dist/ccfe22597a7ee8fbee305533cb1532e3.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/cd590754292f83211b8dff6545fa8eb5.svg b/dist/cd590754292f83211b8dff6545fa8eb5.svg deleted file mode 100644 index e0c9814..0000000 --- a/dist/cd590754292f83211b8dff6545fa8eb5.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/cd735b42c47be403224cbb5cdfb42979.svg b/dist/cd735b42c47be403224cbb5cdfb42979.svg deleted file mode 100644 index 2a7535e..0000000 --- a/dist/cd735b42c47be403224cbb5cdfb42979.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/cdd6530dd587693fb403d559b03dcdc0.svg b/dist/cdd6530dd587693fb403d559b03dcdc0.svg deleted file mode 100644 index 3b6e03f..0000000 --- a/dist/cdd6530dd587693fb403d559b03dcdc0.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/ceaaa4c63b769d0e24616fb523a4c8ce.svg b/dist/ceaaa4c63b769d0e24616fb523a4c8ce.svg deleted file mode 100644 index a22dff2..0000000 --- a/dist/ceaaa4c63b769d0e24616fb523a4c8ce.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/cf94193554910629a1f023aacd900a8a.svg b/dist/cf94193554910629a1f023aacd900a8a.svg deleted file mode 100644 index 581e200..0000000 --- a/dist/cf94193554910629a1f023aacd900a8a.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/d033bcba86f011b4fd1b7c095d7181d9.svg b/dist/d033bcba86f011b4fd1b7c095d7181d9.svg deleted file mode 100644 index 3307dd4..0000000 --- a/dist/d033bcba86f011b4fd1b7c095d7181d9.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/d07b413a77d254ce5e3c2189388a7371.svg b/dist/d07b413a77d254ce5e3c2189388a7371.svg deleted file mode 100644 index 874edd5..0000000 --- a/dist/d07b413a77d254ce5e3c2189388a7371.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/d1fdc3cc790ffc5cf49ebf470ed60571.svg b/dist/d1fdc3cc790ffc5cf49ebf470ed60571.svg deleted file mode 100644 index 3a48789..0000000 --- a/dist/d1fdc3cc790ffc5cf49ebf470ed60571.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - Flag of the People's Republic of China - - - - - - - - - - - - - - - - diff --git a/dist/d2cc1e5c5d4fb98bbe928bcaa97c2bf5.svg b/dist/d2cc1e5c5d4fb98bbe928bcaa97c2bf5.svg deleted file mode 100644 index 84bcd7f..0000000 --- a/dist/d2cc1e5c5d4fb98bbe928bcaa97c2bf5.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/d2cd587d13a51cc202d8b40cbc58d939.svg b/dist/d2cd587d13a51cc202d8b40cbc58d939.svg deleted file mode 100644 index 33713c2..0000000 --- a/dist/d2cd587d13a51cc202d8b40cbc58d939.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/d2ce4cac273df40977fbbd208c7604a5.svg b/dist/d2ce4cac273df40977fbbd208c7604a5.svg deleted file mode 100644 index 0b7e01f..0000000 --- a/dist/d2ce4cac273df40977fbbd208c7604a5.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/d32c01acaa68ae8d99a7f7932ec4d04f.svg b/dist/d32c01acaa68ae8d99a7f7932ec4d04f.svg deleted file mode 100644 index b02f590..0000000 --- a/dist/d32c01acaa68ae8d99a7f7932ec4d04f.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/d45f41a708a375a85a39fe3457e10bbe.svg b/dist/d45f41a708a375a85a39fe3457e10bbe.svg deleted file mode 100644 index 4375fea..0000000 --- a/dist/d45f41a708a375a85a39fe3457e10bbe.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/d5395c742ab13407dd906ca737d2c98d.svg b/dist/d5395c742ab13407dd906ca737d2c98d.svg deleted file mode 100644 index 8c8eacf..0000000 --- a/dist/d5395c742ab13407dd906ca737d2c98d.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/d6471cdf5482b96a994c9bd10757942c.svg b/dist/d6471cdf5482b96a994c9bd10757942c.svg deleted file mode 100644 index e976ab9..0000000 --- a/dist/d6471cdf5482b96a994c9bd10757942c.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/d761e744f87d1a62a6ce29bf84be36e2.svg b/dist/d761e744f87d1a62a6ce29bf84be36e2.svg deleted file mode 100644 index 22c8fdd..0000000 --- a/dist/d761e744f87d1a62a6ce29bf84be36e2.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/d9478ffd16aaa0d4245c88b7b99721d8.svg b/dist/d9478ffd16aaa0d4245c88b7b99721d8.svg deleted file mode 100644 index f8b3c3e..0000000 --- a/dist/d9478ffd16aaa0d4245c88b7b99721d8.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/d9a430cf084a3555510f6a49250abad2.svg b/dist/d9a430cf084a3555510f6a49250abad2.svg deleted file mode 100644 index de838d3..0000000 --- a/dist/d9a430cf084a3555510f6a49250abad2.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/da199dd2e2c674e419cfa1eb1982b0b1.svg b/dist/da199dd2e2c674e419cfa1eb1982b0b1.svg deleted file mode 100644 index 2af9587..0000000 --- a/dist/da199dd2e2c674e419cfa1eb1982b0b1.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/da442c25a6ae1f11c642f6f1b57163bc.svg b/dist/da442c25a6ae1f11c642f6f1b57163bc.svg deleted file mode 100644 index a33bd81..0000000 --- a/dist/da442c25a6ae1f11c642f6f1b57163bc.svg +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/db49457b49fc78a074146f73bfa33c26.svg b/dist/db49457b49fc78a074146f73bfa33c26.svg deleted file mode 100644 index 39f070e..0000000 --- a/dist/db49457b49fc78a074146f73bfa33c26.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/db4f3480a1a44b9688db16b93d2faec4.svg b/dist/db4f3480a1a44b9688db16b93d2faec4.svg deleted file mode 100644 index a331130..0000000 --- a/dist/db4f3480a1a44b9688db16b93d2faec4.svg +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/db6e8f38ddcb8a37ddfa8c56d96dd6f7.svg b/dist/db6e8f38ddcb8a37ddfa8c56d96dd6f7.svg deleted file mode 100644 index cd163e5..0000000 --- a/dist/db6e8f38ddcb8a37ddfa8c56d96dd6f7.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/dba63d733ebf1fb05e13e6b365600313.svg b/dist/dba63d733ebf1fb05e13e6b365600313.svg deleted file mode 100644 index b65c000..0000000 --- a/dist/dba63d733ebf1fb05e13e6b365600313.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/dbcc172bb41de600103690ae62349147.svg b/dist/dbcc172bb41de600103690ae62349147.svg deleted file mode 100644 index 22b891c..0000000 --- a/dist/dbcc172bb41de600103690ae62349147.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/dcdbc8b2a74736b938dc917f74e88714.svg b/dist/dcdbc8b2a74736b938dc917f74e88714.svg deleted file mode 100644 index ebd8046..0000000 --- a/dist/dcdbc8b2a74736b938dc917f74e88714.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/dcf33318e810041d2cf74533d2785f64.svg b/dist/dcf33318e810041d2cf74533d2785f64.svg deleted file mode 100644 index f1f4322..0000000 --- a/dist/dcf33318e810041d2cf74533d2785f64.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/dd3ce5611e576b9967256d4bfae5ba34.svg b/dist/dd3ce5611e576b9967256d4bfae5ba34.svg deleted file mode 100644 index 02e2942..0000000 --- a/dist/dd3ce5611e576b9967256d4bfae5ba34.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/de42e222841f81d4e4126d175e8d2c02.svg b/dist/de42e222841f81d4e4126d175e8d2c02.svg deleted file mode 100644 index 1638d7f..0000000 --- a/dist/de42e222841f81d4e4126d175e8d2c02.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/demo.html b/dist/demo.html deleted file mode 100644 index 2446862..0000000 --- a/dist/demo.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - Onsen UI App - - - - - - - - - - diff --git a/dist/df66f3f3ca13aa441f8e3245b84bfeb7.svg b/dist/df66f3f3ca13aa441f8e3245b84bfeb7.svg deleted file mode 100644 index b66df6b..0000000 --- a/dist/df66f3f3ca13aa441f8e3245b84bfeb7.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/dfb02f8f6d0cedc009ee5887cc68f1f3.woff b/dist/dfb02f8f6d0cedc009ee5887cc68f1f3.woff deleted file mode 100644 index 6fd4ede..0000000 Binary files a/dist/dfb02f8f6d0cedc009ee5887cc68f1f3.woff and /dev/null differ diff --git a/dist/dfdb8e4a0e7b8600271cf1e4326e90b6.svg b/dist/dfdb8e4a0e7b8600271cf1e4326e90b6.svg deleted file mode 100644 index f26fc4d..0000000 --- a/dist/dfdb8e4a0e7b8600271cf1e4326e90b6.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e00db02f6435533ce947c3b6d75b89a9.svg b/dist/e00db02f6435533ce947c3b6d75b89a9.svg deleted file mode 100644 index b01b9ff..0000000 --- a/dist/e00db02f6435533ce947c3b6d75b89a9.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/e02379514804947cb856cf52d8119367.svg b/dist/e02379514804947cb856cf52d8119367.svg deleted file mode 100644 index 1ff04be..0000000 --- a/dist/e02379514804947cb856cf52d8119367.svg +++ /dev/null @@ -1,6748 +0,0 @@ - - - The United States of America flag, produced by Daniel McRae - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e09def631e2955071af38d05bb0c3179.svg b/dist/e09def631e2955071af38d05bb0c3179.svg deleted file mode 100644 index 5038c3a..0000000 --- a/dist/e09def631e2955071af38d05bb0c3179.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/e0c93e7e1bbb9d99f08481c3594eefc3.svg b/dist/e0c93e7e1bbb9d99f08481c3594eefc3.svg deleted file mode 100644 index c9a9efa..0000000 --- a/dist/e0c93e7e1bbb9d99f08481c3594eefc3.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/e0c95c6729c06f6f7af89da13abe33c4.svg b/dist/e0c95c6729c06f6f7af89da13abe33c4.svg deleted file mode 100644 index e4b53ea..0000000 --- a/dist/e0c95c6729c06f6f7af89da13abe33c4.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/e0da2590acd3841e792ca214a6d1c94f.svg b/dist/e0da2590acd3841e792ca214a6d1c94f.svg deleted file mode 100644 index 3e44dc7..0000000 --- a/dist/e0da2590acd3841e792ca214a6d1c94f.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/e1738c67bec8a6597fcf55784fb314af.svg b/dist/e1738c67bec8a6597fcf55784fb314af.svg deleted file mode 100644 index 5088f0d..0000000 --- a/dist/e1738c67bec8a6597fcf55784fb314af.svg +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e17d27a256982c5a43acb4e87e7770af.svg b/dist/e17d27a256982c5a43acb4e87e7770af.svg deleted file mode 100644 index de2ba07..0000000 --- a/dist/e17d27a256982c5a43acb4e87e7770af.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/e213005c0e182ca0e2a524bc96c0dc4a.svg b/dist/e213005c0e182ca0e2a524bc96c0dc4a.svg deleted file mode 100644 index 818fd05..0000000 --- a/dist/e213005c0e182ca0e2a524bc96c0dc4a.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e2a17e8bb0f7f4eecbc8cba77d61adeb.svg b/dist/e2a17e8bb0f7f4eecbc8cba77d61adeb.svg deleted file mode 100644 index 2421843..0000000 --- a/dist/e2a17e8bb0f7f4eecbc8cba77d61adeb.svg +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e2da11cf69dc5392e04175717cc2e46f.svg b/dist/e2da11cf69dc5392e04175717cc2e46f.svg deleted file mode 100644 index bebad36..0000000 --- a/dist/e2da11cf69dc5392e04175717cc2e46f.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/e432f5e209ba66f74b2a2bfcb8ce9491.svg b/dist/e432f5e209ba66f74b2a2bfcb8ce9491.svg deleted file mode 100644 index 718f3a2..0000000 --- a/dist/e432f5e209ba66f74b2a2bfcb8ce9491.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/dist/e4641edd6d837ef8f164a52c1948c8ea.svg b/dist/e4641edd6d837ef8f164a52c1948c8ea.svg deleted file mode 100644 index afa2b83..0000000 --- a/dist/e4641edd6d837ef8f164a52c1948c8ea.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e4b82010101ab330ca3e947e7b889bed.svg b/dist/e4b82010101ab330ca3e947e7b889bed.svg deleted file mode 100644 index 566d886..0000000 --- a/dist/e4b82010101ab330ca3e947e7b889bed.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/e4c6b9b130e5e2d924496c14e2e1e5fc.svg b/dist/e4c6b9b130e5e2d924496c14e2e1e5fc.svg deleted file mode 100644 index 2a2d701..0000000 --- a/dist/e4c6b9b130e5e2d924496c14e2e1e5fc.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e6a12b4b489407d12aede0078580883e.svg b/dist/e6a12b4b489407d12aede0078580883e.svg deleted file mode 100644 index aea215f..0000000 --- a/dist/e6a12b4b489407d12aede0078580883e.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/e6ac2df690e49a2e1f8e75505f10e04c.svg b/dist/e6ac2df690e49a2e1f8e75505f10e04c.svg deleted file mode 100644 index 5390e03..0000000 --- a/dist/e6ac2df690e49a2e1f8e75505f10e04c.svg +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e6b084c59ec03621d5930ea2d4ee8d39.svg b/dist/e6b084c59ec03621d5930ea2d4ee8d39.svg deleted file mode 100644 index 933609e..0000000 --- a/dist/e6b084c59ec03621d5930ea2d4ee8d39.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/e77571bcafd5db2e9f4025ec5f8000d9.svg b/dist/e77571bcafd5db2e9f4025ec5f8000d9.svg deleted file mode 100644 index ce6284f..0000000 --- a/dist/e77571bcafd5db2e9f4025ec5f8000d9.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/e79c186aff8d0140780e6d23277c75d5.svg b/dist/e79c186aff8d0140780e6d23277c75d5.svg deleted file mode 100644 index f3e18a3..0000000 --- a/dist/e79c186aff8d0140780e6d23277c75d5.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e7f6147d764f50dde20383d720b76eb7.svg b/dist/e7f6147d764f50dde20383d720b76eb7.svg deleted file mode 100644 index 5c5a1c9..0000000 --- a/dist/e7f6147d764f50dde20383d720b76eb7.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - Flag of the People's Republic of China - - - - - - - - - - - - - - - - diff --git a/dist/e8573b5af513fe90b56935f87093d5d8.svg b/dist/e8573b5af513fe90b56935f87093d5d8.svg deleted file mode 100644 index eb9b13b..0000000 --- a/dist/e8573b5af513fe90b56935f87093d5d8.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/dist/e8b38fee3e58242dffcfd1907622ed69.svg b/dist/e8b38fee3e58242dffcfd1907622ed69.svg deleted file mode 100644 index dfb014c..0000000 --- a/dist/e8b38fee3e58242dffcfd1907622ed69.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/e9233ea9e8a3786a1a80127769b3779d.svg b/dist/e9233ea9e8a3786a1a80127769b3779d.svg deleted file mode 100644 index 161fdcf..0000000 --- a/dist/e9233ea9e8a3786a1a80127769b3779d.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/e988d06e7521a5747a749d480e10711f.svg b/dist/e988d06e7521a5747a749d480e10711f.svg deleted file mode 100644 index add0633..0000000 --- a/dist/e988d06e7521a5747a749d480e10711f.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/e9932bf7368b9ca60faff72766119b23.svg b/dist/e9932bf7368b9ca60faff72766119b23.svg deleted file mode 100644 index 97ca2b9..0000000 --- a/dist/e9932bf7368b9ca60faff72766119b23.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/eba00217917bc1a76d1c931c8c701ee0.svg b/dist/eba00217917bc1a76d1c931c8c701ee0.svg deleted file mode 100644 index d501a52..0000000 --- a/dist/eba00217917bc1a76d1c931c8c701ee0.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/ecbfafb6b6faf19ba073508745e17264.svg b/dist/ecbfafb6b6faf19ba073508745e17264.svg deleted file mode 100644 index cea49f1..0000000 --- a/dist/ecbfafb6b6faf19ba073508745e17264.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dist/ed1449e83483556476812fc073fcd719.svg b/dist/ed1449e83483556476812fc073fcd719.svg deleted file mode 100644 index b774f83..0000000 --- a/dist/ed1449e83483556476812fc073fcd719.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/ee67e252aa99f1e76779e99f3b92c801.svg b/dist/ee67e252aa99f1e76779e99f3b92c801.svg deleted file mode 100644 index dc671b9..0000000 --- a/dist/ee67e252aa99f1e76779e99f3b92c801.svg +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/eeb749da4af1ed546dcfb012522928a8.svg b/dist/eeb749da4af1ed546dcfb012522928a8.svg deleted file mode 100644 index 004e86b..0000000 --- a/dist/eeb749da4af1ed546dcfb012522928a8.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/efbd7d23ca5e93493daf340f6a84c109.svg b/dist/efbd7d23ca5e93493daf340f6a84c109.svg deleted file mode 100644 index 8501eb8..0000000 --- a/dist/efbd7d23ca5e93493daf340f6a84c109.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/efebedf2b0d88d6c35b35ab87e04ad04.svg b/dist/efebedf2b0d88d6c35b35ab87e04ad04.svg deleted file mode 100644 index 4bfaa76..0000000 --- a/dist/efebedf2b0d88d6c35b35ab87e04ad04.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f02aa7cb5084746cdf48c8101b718cf1.svg b/dist/f02aa7cb5084746cdf48c8101b718cf1.svg deleted file mode 100644 index 9211992..0000000 --- a/dist/f02aa7cb5084746cdf48c8101b718cf1.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dist/f06a1a96f287b092d0679f27ec93fa56.svg b/dist/f06a1a96f287b092d0679f27ec93fa56.svg deleted file mode 100644 index 20ebbba..0000000 --- a/dist/f06a1a96f287b092d0679f27ec93fa56.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/dist/f115966e39c6589b57578795f0450343.svg b/dist/f115966e39c6589b57578795f0450343.svg deleted file mode 100644 index 2049044..0000000 --- a/dist/f115966e39c6589b57578795f0450343.svg +++ /dev/null @@ -1,867 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f1a2d22fb5fd39ab54c472e8308d5f16.svg b/dist/f1a2d22fb5fd39ab54c472e8308d5f16.svg deleted file mode 100644 index 5cc9ac5..0000000 --- a/dist/f1a2d22fb5fd39ab54c472e8308d5f16.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f1e51cc0ff4db279ec4c4e2068c79162.svg b/dist/f1e51cc0ff4db279ec4c4e2068c79162.svg deleted file mode 100644 index 6301ab3..0000000 --- a/dist/f1e51cc0ff4db279ec4c4e2068c79162.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/dist/f28ee1a1dd061d3f11e37fac9d786521.svg b/dist/f28ee1a1dd061d3f11e37fac9d786521.svg deleted file mode 100644 index 6727e35..0000000 --- a/dist/f28ee1a1dd061d3f11e37fac9d786521.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/f292dcec7f3162710541fb80a3a4dbdc.svg b/dist/f292dcec7f3162710541fb80a3a4dbdc.svg deleted file mode 100644 index 9405ef6..0000000 --- a/dist/f292dcec7f3162710541fb80a3a4dbdc.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/f32d5bb8e16ff3d263578db6eaa6e351.svg b/dist/f32d5bb8e16ff3d263578db6eaa6e351.svg deleted file mode 100644 index 03e36be..0000000 --- a/dist/f32d5bb8e16ff3d263578db6eaa6e351.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/dist/f3bb83f175a89fc894fb57dc8428c515.svg b/dist/f3bb83f175a89fc894fb57dc8428c515.svg deleted file mode 100644 index b5eab12..0000000 --- a/dist/f3bb83f175a89fc894fb57dc8428c515.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f3e975fa70550c76f6ffebf0701f43f8.svg b/dist/f3e975fa70550c76f6ffebf0701f43f8.svg deleted file mode 100644 index 6d8cfa3..0000000 --- a/dist/f3e975fa70550c76f6ffebf0701f43f8.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dist/f4169159e8a9c5f8fcb4462eea3ab397.svg b/dist/f4169159e8a9c5f8fcb4462eea3ab397.svg deleted file mode 100644 index 81b602d..0000000 --- a/dist/f4169159e8a9c5f8fcb4462eea3ab397.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f5bfc53ab55e58ead9d668e12bd45909.svg b/dist/f5bfc53ab55e58ead9d668e12bd45909.svg deleted file mode 100644 index 7ad91b1..0000000 --- a/dist/f5bfc53ab55e58ead9d668e12bd45909.svg +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f5ee3c5f48337b685712b091be3e1085.svg b/dist/f5ee3c5f48337b685712b091be3e1085.svg deleted file mode 100644 index 0a25fac..0000000 --- a/dist/f5ee3c5f48337b685712b091be3e1085.svg +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L - - - E - - - O - - - T - - - E - - - R - - - R - - - R - - - R - - - R - - - E - - - O - - - O - - - A - - - A - - - A - - - M - - - P - - - P - - - P - - - I - - - T - - - T - - - M - - - G - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f64c569424710e3b111e0cf5e28e8187.svg b/dist/f64c569424710e3b111e0cf5e28e8187.svg deleted file mode 100644 index 83c1d46..0000000 --- a/dist/f64c569424710e3b111e0cf5e28e8187.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/f98f3dc2697f3f29aa3d3030da782be1.svg b/dist/f98f3dc2697f3f29aa3d3030da782be1.svg deleted file mode 100644 index 0c52263..0000000 --- a/dist/f98f3dc2697f3f29aa3d3030da782be1.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/fa066e6230410f463cf7aca116a288cc.svg b/dist/fa066e6230410f463cf7aca116a288cc.svg deleted file mode 100644 index 38d3777..0000000 --- a/dist/fa066e6230410f463cf7aca116a288cc.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/fa4c4311d41b3300a0e60fbe81c7c66a.svg b/dist/fa4c4311d41b3300a0e60fbe81c7c66a.svg deleted file mode 100644 index fac4462..0000000 --- a/dist/fa4c4311d41b3300a0e60fbe81c7c66a.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/dist/faacbf3d038987bb1e2624554c215a34.svg b/dist/faacbf3d038987bb1e2624554c215a34.svg deleted file mode 100644 index d29cc16..0000000 --- a/dist/faacbf3d038987bb1e2624554c215a34.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/fbf10fdeacadd4b1de5136d40ed738ea.svg b/dist/fbf10fdeacadd4b1de5136d40ed738ea.svg deleted file mode 100644 index 334f681..0000000 --- a/dist/fbf10fdeacadd4b1de5136d40ed738ea.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Flag of South Sudan - - - - - - - - diff --git a/dist/fc5e852fdef075e22f717479160a9e58.svg b/dist/fc5e852fdef075e22f717479160a9e58.svg deleted file mode 100644 index 75024e0..0000000 --- a/dist/fc5e852fdef075e22f717479160a9e58.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/fc81fbfb5712a55e57df8ba73f2d6cd3.svg b/dist/fc81fbfb5712a55e57df8ba73f2d6cd3.svg deleted file mode 100644 index 499a067..0000000 --- a/dist/fc81fbfb5712a55e57df8ba73f2d6cd3.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/dist/fd86bcafc15c406d16a62e62091a9dd1.svg b/dist/fd86bcafc15c406d16a62e62091a9dd1.svg deleted file mode 100644 index 65b6b9e..0000000 --- a/dist/fd86bcafc15c406d16a62e62091a9dd1.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/fe881b23c4e6639538bab23e817aef22.svg b/dist/fe881b23c4e6639538bab23e817aef22.svg deleted file mode 100644 index 7286483..0000000 --- a/dist/fe881b23c4e6639538bab23e817aef22.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/dist/ff005c53b99176b8a52b09529146892d.svg b/dist/ff005c53b99176b8a52b09529146892d.svg deleted file mode 100644 index 9f3c694..0000000 --- a/dist/ff005c53b99176b8a52b09529146892d.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dist/ffc874ff2e0231177c5a94a76de95c08.svg b/dist/ffc874ff2e0231177c5a94a76de95c08.svg deleted file mode 100644 index c36020a..0000000 --- a/dist/ffc874ff2e0231177c5a94a76de95c08.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/hooks/README.md b/hooks/README.md new file mode 100644 index 0000000..574ad4c --- /dev/null +++ b/hooks/README.md @@ -0,0 +1,23 @@ + +# Cordova Hooks + +Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide. diff --git a/index.html b/index.html deleted file mode 100644 index 78691d5..0000000 --- a/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - Onsen UI React Demo - - - - -
- - - diff --git a/package.json b/package.json index c79909b..e78d602 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "description": "Simple Weather App implemntation with Onsen UI React Components and Redux", "main": "index.js", "scripts": { - "start": "webpack-dev-server --progress", - "build": "npm run lint && cross-env NODE_ENV=production webpack --config webpack.config.prod.js && ncp index.html dist/index.html", - "deploy": "npm run build && git commit dist -m \"Deploy\" && git push origin master && git subtree push --prefix dist origin gh-pages", + "start": "webpack-dev-server --progress --content-base www/", + "build": "npm run lint && cross-env NODE_ENV=production webpack --config webpack.config.prod.js", + "deploy": "npm run build && git commit www -m \"Deploy\" && git push origin master && git subtree push --prefix www origin gh-pages", "lint": "eslint ." }, "repository": { diff --git a/webpack.config.js b/webpack.config.js index 97fcb21..4ffd28e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,7 +13,7 @@ module.exports = { './index.js' ], output: { - path: path.join(__dirname, 'dist'), + path: path.join(__dirname, 'www'), filename: 'bundle.js' }, diff --git a/webpack.config.prod.js b/webpack.config.prod.js index 830f6bc..7b8f711 100644 --- a/webpack.config.prod.js +++ b/webpack.config.prod.js @@ -9,7 +9,7 @@ module.exports = { './index.js' ], output: { - path: path.join(__dirname, 'dist'), + path: path.join(__dirname, 'www'), filename: 'bundle.js' }, diff --git a/dist/2c2ae068be3b089e0a5b59abb1831550.eot b/www/19e65b89cee273a249fba4c09b951b74.eot similarity index 99% rename from dist/2c2ae068be3b089e0a5b59abb1831550.eot rename to www/19e65b89cee273a249fba4c09b951b74.eot index 92a3f20..9caa348 100644 Binary files a/dist/2c2ae068be3b089e0a5b59abb1831550.eot and b/www/19e65b89cee273a249fba4c09b951b74.eot differ diff --git a/www/1cd48d78f06d33973d9d761d426e69bf.woff2 b/www/1cd48d78f06d33973d9d761d426e69bf.woff2 new file mode 100644 index 0000000..bb0c19d Binary files /dev/null and b/www/1cd48d78f06d33973d9d761d426e69bf.woff2 differ diff --git a/dist/7c87870ab40d63cfb8870c1f183f9939.ttf b/www/1dc35d25e61d819a9c357074014867ab.ttf similarity index 77% rename from dist/7c87870ab40d63cfb8870c1f183f9939.ttf rename to www/1dc35d25e61d819a9c357074014867ab.ttf index d7994e1..f221e50 100644 Binary files a/dist/7c87870ab40d63cfb8870c1f183f9939.ttf and b/www/1dc35d25e61d819a9c357074014867ab.ttf differ diff --git a/www/25a32416abee198dd821b0b17a198a8f.eot b/www/25a32416abee198dd821b0b17a198a8f.eot new file mode 100644 index 0000000..c7b00d2 Binary files /dev/null and b/www/25a32416abee198dd821b0b17a198a8f.eot differ diff --git a/dist/05acfdb568b3df49ad31355b19495d4a.woff b/www/2c159d0d05473040b53ec79df8797d32.woff similarity index 97% rename from dist/05acfdb568b3df49ad31355b19495d4a.woff rename to www/2c159d0d05473040b53ec79df8797d32.woff index 5f3a14e..5bb6aec 100644 Binary files a/dist/05acfdb568b3df49ad31355b19495d4a.woff and b/www/2c159d0d05473040b53ec79df8797d32.woff differ diff --git a/www/4618f0de2a818e7ad3fe880e0b74d04a.ttf b/www/4618f0de2a818e7ad3fe880e0b74d04a.ttf new file mode 100644 index 0000000..948f0a5 Binary files /dev/null and b/www/4618f0de2a818e7ad3fe880e0b74d04a.ttf differ diff --git a/www/4b658767da6bd92ce2addb3ce512784d.eot b/www/4b658767da6bd92ce2addb3ce512784d.eot new file mode 100644 index 0000000..330b7ec Binary files /dev/null and b/www/4b658767da6bd92ce2addb3ce512784d.eot differ diff --git a/www/8cac70ebda3f23ce472110d9f21e8593.woff b/www/8cac70ebda3f23ce472110d9f21e8593.woff new file mode 100644 index 0000000..e0b2f94 Binary files /dev/null and b/www/8cac70ebda3f23ce472110d9f21e8593.woff differ diff --git a/www/a4d31128b633bc0b1cc1f18a34fb3851.woff2 b/www/a4d31128b633bc0b1cc1f18a34fb3851.woff2 new file mode 100644 index 0000000..35970e2 Binary files /dev/null and b/www/a4d31128b633bc0b1cc1f18a34fb3851.woff2 differ diff --git a/dist/621bd386841f74e0053cb8e67f8a0604.svg b/www/aff28a207631f39ee0272d5cdde43ee7.svg similarity index 99% rename from dist/621bd386841f74e0053cb8e67f8a0604.svg rename to www/aff28a207631f39ee0272d5cdde43ee7.svg index 49fc8f3..781ea0e 100644 --- a/dist/621bd386841f74e0053cb8e67f8a0604.svg +++ b/www/aff28a207631f39ee0272d5cdde43ee7.svg @@ -1,11 +1,11 @@ -Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 +Created by FontForge 20120731 at Wed Jan 14 22:40:14 2015 By Adam Bradley Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) @@ -2227,4 +2227,4 @@ M59 5c6 6 6 17 0 23s-16 6 -22 0s-6 -17 0 -23s16 -6 22 0z" /> d="M95 200c-49 -72 -50 -139 -50 -143c-28 38 -45 84 -45 135c0 67 30 128 77 169l3 -1c51 -18 93 -68 93 -68s-38 -33 -78 -92zM448 192c0 -51 -17 -97 -45 -135c0 4 -1 71 -50 143c-40 59 -78 92 -78 92s42 50 93 68l3 1c47 -41 77 -102 77 -169zM169 367 c-37 17 -65 12 -72 10c36 25 80 39 127 39s91 -14 127 -39c-7 2 -35 6 -72 -10c-29 -13 -55 -35 -55 -35s-26 22 -55 35zM327 155c40 -49 54 -85 62 -108l2 -5c-41 -46 -101 -74 -167 -74s-126 28 -167 74l1 5c8 23 23 59 63 108c46 57 103 94 103 94s57 -37 103 -94z" /> - + \ No newline at end of file diff --git a/www/b351bd62abcd96e924d9f44a3da169a7.ttf b/www/b351bd62abcd96e924d9f44a3da169a7.ttf new file mode 100644 index 0000000..5d489fd Binary files /dev/null and b/www/b351bd62abcd96e924d9f44a3da169a7.ttf differ diff --git a/www/bundle.js b/www/bundle.js new file mode 100644 index 0000000..b31ca53 --- /dev/null +++ b/www/bundle.js @@ -0,0 +1,69487 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _react = __webpack_require__(2); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(35); + + var _reactRedux = __webpack_require__(165); + + var _redux = __webpack_require__(172); + + var _reduxThunk = __webpack_require__(187); + + var _reduxThunk2 = _interopRequireDefault(_reduxThunk); + + var _reduxLogger = __webpack_require__(188); + + var _reduxLogger2 = _interopRequireDefault(_reduxLogger); + + var _reactHotLoader = __webpack_require__(189); + + var _reducers = __webpack_require__(193); + + var _reducers2 = _interopRequireDefault(_reducers); + + var _App = __webpack_require__(235); + + var _App2 = _interopRequireDefault(_App); + + __webpack_require__(261); + + var _onsenui = __webpack_require__(241); + + var _onsenui2 = _interopRequireDefault(_onsenui); + + __webpack_require__(270); + + __webpack_require__(287); + + var _actions = __webpack_require__(196); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var logger = (0, _reduxLogger2.default)(); + + var store = (0, _redux.createStore)(_reducers2.default, window.devToolsExtension ? window.devToolsExtension() : function (f) { + return f; + }, true ? (0, _redux.applyMiddleware)(_reduxThunk2.default) : (0, _redux.applyMiddleware)(_reduxThunk2.default, logger)); + + ['Tokyo', 'New York', 'Paris', 'Beijing', 'Sydney', 'Rio de Janeiro', 'Istanbul'].forEach(function (city) { + return store.dispatch((0, _actions.addLocationAndFetchWeather)(city)); + }); + + var rootElement = document.getElementById('root'); + + _onsenui2.default.ready(function () { + return (0, _reactDom.render)(_react2.default.createElement( + _reactHotLoader.AppContainer, + null, + _react2.default.createElement( + _reactRedux.Provider, + { store: store }, + _react2.default.createElement(_App2.default, null) + ) + ), rootElement); + }); + + if (false) { + module.hot.accept('./components/App', function () { + var NextApp = require('./components/App').default; + (0, _reactDom.render)(_react2.default.createElement( + _reactHotLoader.AppContainer, + null, + _react2.default.createElement( + _reactRedux.Provider, + { store: store }, + _react2.default.createElement(NextApp, null) + ) + ), rootElement); + }); + } + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + module.exports = __webpack_require__(3); + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule React + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var ReactChildren = __webpack_require__(5); + var ReactComponent = __webpack_require__(16); + var ReactClass = __webpack_require__(24); + var ReactDOMFactories = __webpack_require__(29); + var ReactElement = __webpack_require__(8); + var ReactElementValidator = __webpack_require__(30); + var ReactPropTypes = __webpack_require__(32); + var ReactVersion = __webpack_require__(33); + + var onlyChild = __webpack_require__(34); + var warning = __webpack_require__(10); + + var createElement = ReactElement.createElement; + var createFactory = ReactElement.createFactory; + var cloneElement = ReactElement.cloneElement; + + if (false) { + createElement = ReactElementValidator.createElement; + createFactory = ReactElementValidator.createFactory; + cloneElement = ReactElementValidator.cloneElement; + } + + var __spread = _assign; + + if (false) { + var warned = false; + __spread = function () { + process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0; + warned = true; + return _assign.apply(null, arguments); + }; + } + + var React = { + + // Modern + + Children: { + map: ReactChildren.map, + forEach: ReactChildren.forEach, + count: ReactChildren.count, + toArray: ReactChildren.toArray, + only: onlyChild + }, + + Component: ReactComponent, + + createElement: createElement, + cloneElement: cloneElement, + isValidElement: ReactElement.isValidElement, + + // Classic + + PropTypes: ReactPropTypes, + createClass: ReactClass.createClass, + createFactory: createFactory, + createMixin: function (mixin) { + // Currently a noop. Will be used to validate and trace mixins. + return mixin; + }, + + // This looks DOM specific but these are actually isomorphic helpers + // since they are just generating DOM strings. + DOM: ReactDOMFactories, + + version: ReactVersion, + + // Deprecated hook for JSX spread, don't use this for anything. + __spread: __spread + }; + + module.exports = React; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + 'use strict'; + /* eslint-disable no-unused-vars */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (e) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } + + module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (Object.getOwnPropertySymbols) { + symbols = Object.getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; + }; + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactChildren + */ + + 'use strict'; + + var PooledClass = __webpack_require__(6); + var ReactElement = __webpack_require__(8); + + var emptyFunction = __webpack_require__(11); + var traverseAllChildren = __webpack_require__(13); + + var twoArgumentPooler = PooledClass.twoArgumentPooler; + var fourArgumentPooler = PooledClass.fourArgumentPooler; + + var userProvidedKeyEscapeRegex = /\/+/g; + function escapeUserProvidedKey(text) { + return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); + } + + /** + * PooledClass representing the bookkeeping associated with performing a child + * traversal. Allows avoiding binding callbacks. + * + * @constructor ForEachBookKeeping + * @param {!function} forEachFunction Function to perform traversal with. + * @param {?*} forEachContext Context to perform context with. + */ + function ForEachBookKeeping(forEachFunction, forEachContext) { + this.func = forEachFunction; + this.context = forEachContext; + this.count = 0; + } + ForEachBookKeeping.prototype.destructor = function () { + this.func = null; + this.context = null; + this.count = 0; + }; + PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); + + function forEachSingleChild(bookKeeping, child, name) { + var func = bookKeeping.func; + var context = bookKeeping.context; + + func.call(context, child, bookKeeping.count++); + } + + /** + * Iterates through children that are typically specified as `props.children`. + * + * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach + * + * The provided forEachFunc(child, index) will be called for each + * leaf child. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} forEachFunc + * @param {*} forEachContext Context for forEachContext. + */ + function forEachChildren(children, forEachFunc, forEachContext) { + if (children == null) { + return children; + } + var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); + traverseAllChildren(children, forEachSingleChild, traverseContext); + ForEachBookKeeping.release(traverseContext); + } + + /** + * PooledClass representing the bookkeeping associated with performing a child + * mapping. Allows avoiding binding callbacks. + * + * @constructor MapBookKeeping + * @param {!*} mapResult Object containing the ordered map of results. + * @param {!function} mapFunction Function to perform mapping with. + * @param {?*} mapContext Context to perform mapping with. + */ + function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { + this.result = mapResult; + this.keyPrefix = keyPrefix; + this.func = mapFunction; + this.context = mapContext; + this.count = 0; + } + MapBookKeeping.prototype.destructor = function () { + this.result = null; + this.keyPrefix = null; + this.func = null; + this.context = null; + this.count = 0; + }; + PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); + + function mapSingleChildIntoContext(bookKeeping, child, childKey) { + var result = bookKeeping.result; + var keyPrefix = bookKeeping.keyPrefix; + var func = bookKeeping.func; + var context = bookKeeping.context; + + + var mappedChild = func.call(context, child, bookKeeping.count++); + if (Array.isArray(mappedChild)) { + mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); + } else if (mappedChild != null) { + if (ReactElement.isValidElement(mappedChild)) { + mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, + // Keep both the (mapped) and old keys if they differ, just as + // traverseAllChildren used to do for objects as children + keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey); + } + result.push(mappedChild); + } + } + + function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { + var escapedPrefix = ''; + if (prefix != null) { + escapedPrefix = escapeUserProvidedKey(prefix) + '/'; + } + var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); + traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); + MapBookKeeping.release(traverseContext); + } + + /** + * Maps children that are typically specified as `props.children`. + * + * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map + * + * The provided mapFunction(child, key, index) will be called for each + * leaf child. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} func The map function. + * @param {*} context Context for mapFunction. + * @return {object} Object containing the ordered map of results. + */ + function mapChildren(children, func, context) { + if (children == null) { + return children; + } + var result = []; + mapIntoWithKeyPrefixInternal(children, result, null, func, context); + return result; + } + + function forEachSingleChildDummy(traverseContext, child, name) { + return null; + } + + /** + * Count the number of children that are typically specified as + * `props.children`. + * + * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count + * + * @param {?*} children Children tree container. + * @return {number} The number of children. + */ + function countChildren(children, context) { + return traverseAllChildren(children, forEachSingleChildDummy, null); + } + + /** + * Flatten a children object (typically specified as `props.children`) and + * return an array with appropriately re-keyed children. + * + * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray + */ + function toArray(children) { + var result = []; + mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); + return result; + } + + var ReactChildren = { + forEach: forEachChildren, + map: mapChildren, + mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, + count: countChildren, + toArray: toArray + }; + + module.exports = ReactChildren; + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule PooledClass + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * Static poolers. Several custom versions for each potential number of + * arguments. A completely generic pooler is easy to implement, but would + * require accessing the `arguments` object. In each of these, `this` refers to + * the Class itself, not an instance. If any others are needed, simply add them + * here, or in their own files. + */ + var oneArgumentPooler = function (copyFieldsFrom) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, copyFieldsFrom); + return instance; + } else { + return new Klass(copyFieldsFrom); + } + }; + + var twoArgumentPooler = function (a1, a2) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2); + return instance; + } else { + return new Klass(a1, a2); + } + }; + + var threeArgumentPooler = function (a1, a2, a3) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3); + return instance; + } else { + return new Klass(a1, a2, a3); + } + }; + + var fourArgumentPooler = function (a1, a2, a3, a4) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4); + return instance; + } else { + return new Klass(a1, a2, a3, a4); + } + }; + + var fiveArgumentPooler = function (a1, a2, a3, a4, a5) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4, a5); + return instance; + } else { + return new Klass(a1, a2, a3, a4, a5); + } + }; + + var standardReleaser = function (instance) { + var Klass = this; + !(instance instanceof Klass) ? false ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : void 0; + instance.destructor(); + if (Klass.instancePool.length < Klass.poolSize) { + Klass.instancePool.push(instance); + } + }; + + var DEFAULT_POOL_SIZE = 10; + var DEFAULT_POOLER = oneArgumentPooler; + + /** + * Augments `CopyConstructor` to be a poolable class, augmenting only the class + * itself (statically) not adding any prototypical fields. Any CopyConstructor + * you give this may have a `poolSize` property, and will look for a + * prototypical `destructor` on instances (optional). + * + * @param {Function} CopyConstructor Constructor that can be used to reset. + * @param {Function} pooler Customizable pooler. + */ + var addPoolingTo = function (CopyConstructor, pooler) { + var NewKlass = CopyConstructor; + NewKlass.instancePool = []; + NewKlass.getPooled = pooler || DEFAULT_POOLER; + if (!NewKlass.poolSize) { + NewKlass.poolSize = DEFAULT_POOL_SIZE; + } + NewKlass.release = standardReleaser; + return NewKlass; + }; + + var PooledClass = { + addPoolingTo: addPoolingTo, + oneArgumentPooler: oneArgumentPooler, + twoArgumentPooler: twoArgumentPooler, + threeArgumentPooler: threeArgumentPooler, + fourArgumentPooler: fourArgumentPooler, + fiveArgumentPooler: fiveArgumentPooler + }; + + module.exports = PooledClass; + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + + function invariant(condition, format, a, b, c, d, e, f) { + if (false) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + } + + module.exports = invariant; + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactElement + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var ReactCurrentOwner = __webpack_require__(9); + + var warning = __webpack_require__(10); + var canDefineProperty = __webpack_require__(12); + + // The Symbol used to tag the ReactElement type. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; + + var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true + }; + + var specialPropKeyWarningShown, specialPropRefWarningShown; + + /** + * Factory method to create a new React element. This no longer adheres to + * the class pattern, so do not use new to call it. Also, no instanceof check + * will work. Instead test $$typeof field against Symbol.for('react.element') to check + * if something is a React Element. + * + * @param {*} type + * @param {*} key + * @param {string|object} ref + * @param {*} self A *temporary* helper to detect places where `this` is + * different from the `owner` when React.createElement is called, so that we + * can warn. We want to get rid of owner and replace string `ref`s with arrow + * functions, and as long as `this` and owner are the same, there will be no + * change in behavior. + * @param {*} source An annotation object (added by a transpiler or otherwise) + * indicating filename, line number, and/or other information. + * @param {*} owner + * @param {*} props + * @internal + */ + var ReactElement = function (type, key, ref, self, source, owner, props) { + var element = { + // This tag allow us to uniquely identify this as a React Element + $$typeof: REACT_ELEMENT_TYPE, + + // Built-in properties that belong on the element + type: type, + key: key, + ref: ref, + props: props, + + // Record the component responsible for creating this element. + _owner: owner + }; + + if (false) { + // The validation flag is currently mutative. We put it on + // an external backing store so that we can freeze the whole object. + // This can be replaced with a WeakMap once they are implemented in + // commonly used development environments. + element._store = {}; + + // To make comparing ReactElements easier for testing purposes, we make + // the validation flag non-enumerable (where possible, which should + // include every environment we run tests in), so the test framework + // ignores it. + if (canDefineProperty) { + Object.defineProperty(element._store, 'validated', { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + // self and source are DEV only properties. + Object.defineProperty(element, '_self', { + configurable: false, + enumerable: false, + writable: false, + value: self + }); + // Two elements created in two different places should be considered + // equal for testing purposes and therefore we hide it from enumeration. + Object.defineProperty(element, '_source', { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + } else { + element._store.validated = false; + element._self = self; + element._source = source; + } + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + + return element; + }; + + /** + * Create and return a new ReactElement of the given type. + * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement + */ + ReactElement.createElement = function (type, config, children) { + var propName; + + // Reserved names are extracted + var props = {}; + + var key = null; + var ref = null; + var self = null; + var source = null; + + if (config != null) { + if (false) { + process.env.NODE_ENV !== 'production' ? warning( + /* eslint-disable no-proto */ + config.__proto__ == null || config.__proto__ === Object.prototype, + /* eslint-enable no-proto */ + 'React.createElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0; + ref = !config.hasOwnProperty('ref') || Object.getOwnPropertyDescriptor(config, 'ref').get ? null : config.ref; + key = !config.hasOwnProperty('key') || Object.getOwnPropertyDescriptor(config, 'key').get ? null : '' + config.key; + } else { + ref = config.ref === undefined ? null : config.ref; + key = config.key === undefined ? null : '' + config.key; + } + self = config.__self === undefined ? null : config.__self; + source = config.__source === undefined ? null : config.__source; + // Remaining properties are added to a new props object + for (propName in config) { + if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + // Resolve default props + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + } + if (false) { + // Create dummy `key` and `ref` property to `props` to warn users + // against its use + if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { + if (!props.hasOwnProperty('key')) { + Object.defineProperty(props, 'key', { + get: function () { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', typeof type === 'function' && 'displayName' in type ? type.displayName : 'Element') : void 0; + } + return undefined; + }, + configurable: true + }); + } + if (!props.hasOwnProperty('ref')) { + Object.defineProperty(props, 'ref', { + get: function () { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', typeof type === 'function' && 'displayName' in type ? type.displayName : 'Element') : void 0; + } + return undefined; + }, + configurable: true + }); + } + } + } + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); + }; + + /** + * Return a function that produces ReactElements of a given type. + * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory + */ + ReactElement.createFactory = function (type) { + var factory = ReactElement.createElement.bind(null, type); + // Expose the type on the factory and the prototype so that it can be + // easily accessed on elements. E.g. `.type === Foo`. + // This should not be named `constructor` since this may not be the function + // that created the element, and it may not even be a constructor. + // Legacy hook TODO: Warn if this is accessed + factory.type = type; + return factory; + }; + + ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { + var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); + + return newElement; + }; + + /** + * Clone and return a new ReactElement using element as the starting point. + * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement + */ + ReactElement.cloneElement = function (element, config, children) { + var propName; + + // Original props are copied + var props = _assign({}, element.props); + + // Reserved names are extracted + var key = element.key; + var ref = element.ref; + // Self is preserved since the owner is preserved. + var self = element._self; + // Source is preserved since cloneElement is unlikely to be targeted by a + // transpiler, and the original source is probably a better indicator of the + // true owner. + var source = element._source; + + // Owner will be preserved, unless ref is overridden + var owner = element._owner; + + if (config != null) { + if (false) { + process.env.NODE_ENV !== 'production' ? warning( + /* eslint-disable no-proto */ + config.__proto__ == null || config.__proto__ === Object.prototype, + /* eslint-enable no-proto */ + 'React.cloneElement(...): Expected props argument to be a plain object. ' + 'Properties defined in its prototype chain will be ignored.') : void 0; + } + if (config.ref !== undefined) { + // Silently steal the ref from the parent. + ref = config.ref; + owner = ReactCurrentOwner.current; + } + if (config.key !== undefined) { + key = '' + config.key; + } + // Remaining properties override existing props + var defaultProps; + if (element.type && element.type.defaultProps) { + defaultProps = element.type.defaultProps; + } + for (propName in config) { + if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + if (config[propName] === undefined && defaultProps !== undefined) { + // Resolve default props + props[propName] = defaultProps[propName]; + } else { + props[propName] = config[propName]; + } + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + return ReactElement(element.type, key, ref, self, source, owner, props); + }; + + /** + * Verifies the object is a ReactElement. + * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement + * @param {?object} object + * @return {boolean} True if `object` is a valid component. + * @final + */ + ReactElement.isValidElement = function (object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + }; + + module.exports = ReactElement; + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactCurrentOwner + */ + + 'use strict'; + + /** + * Keeps track of the current owner. + * + * The current owner is the component who should own any components that are + * currently being constructed. + */ + + var ReactCurrentOwner = { + + /** + * @internal + * @type {ReactComponent} + */ + current: null + + }; + + module.exports = ReactCurrentOwner; + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var emptyFunction = __webpack_require__(11); + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = emptyFunction; + + if (false) { + warning = function warning(condition, format) { + for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + } + }; + } + + module.exports = warning; + +/***/ }, +/* 11 */ +/***/ function(module, exports) { + + "use strict"; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * + */ + + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } + + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + var emptyFunction = function emptyFunction() {}; + + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; + }; + + module.exports = emptyFunction; + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule canDefineProperty + */ + + 'use strict'; + + var canDefineProperty = false; + if (false) { + try { + Object.defineProperty({}, 'x', { get: function () {} }); + canDefineProperty = true; + } catch (x) { + // IE will fail on defineProperty + } + } + + module.exports = canDefineProperty; + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule traverseAllChildren + */ + + 'use strict'; + + var ReactCurrentOwner = __webpack_require__(9); + var ReactElement = __webpack_require__(8); + + var getIteratorFn = __webpack_require__(14); + var invariant = __webpack_require__(7); + var KeyEscapeUtils = __webpack_require__(15); + var warning = __webpack_require__(10); + + var SEPARATOR = '.'; + var SUBSEPARATOR = ':'; + + /** + * TODO: Test that a single child and an array with one item have the same key + * pattern. + */ + + var didWarnAboutMaps = false; + + /** + * Generate a key string that identifies a component within a set. + * + * @param {*} component A component that could contain a manual key. + * @param {number} index Index that is used if a manual key is not provided. + * @return {string} + */ + function getComponentKey(component, index) { + // Do some typechecking here since we call this blindly. We want to ensure + // that we don't block potential future ES APIs. + if (component && typeof component === 'object' && component.key != null) { + // Explicit key + return KeyEscapeUtils.escape(component.key); + } + // Implicit key determined by the index in the set + return index.toString(36); + } + + /** + * @param {?*} children Children tree container. + * @param {!string} nameSoFar Name of the key path so far. + * @param {!function} callback Callback to invoke with each child found. + * @param {?*} traverseContext Used to pass information throughout the traversal + * process. + * @return {!number} The number of children in this subtree. + */ + function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { + var type = typeof children; + + if (type === 'undefined' || type === 'boolean') { + // All of the above are perceived as null. + children = null; + } + + if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) { + callback(traverseContext, children, + // If it's the only child, treat the name as if it was wrapped in an array + // so that it's consistent if the number of children grows. + nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); + return 1; + } + + var child; + var nextName; + var subtreeCount = 0; // Count of children found in the current subtree. + var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; + + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + child = children[i]; + nextName = nextNamePrefix + getComponentKey(child, i); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } else { + var iteratorFn = getIteratorFn(children); + if (iteratorFn) { + var iterator = iteratorFn.call(children); + var step; + if (iteratorFn !== children.entries) { + var ii = 0; + while (!(step = iterator.next()).done) { + child = step.value; + nextName = nextNamePrefix + getComponentKey(child, ii++); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } else { + if (false) { + process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : void 0; + didWarnAboutMaps = true; + } + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + child = entry[1]; + nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } + } + } else if (type === 'object') { + var addendum = ''; + if (false) { + addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; + if (children._isReactElement) { + addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; + } + if (ReactCurrentOwner.current) { + var name = ReactCurrentOwner.current.getName(); + if (name) { + addendum += ' Check the render method of `' + name + '`.'; + } + } + } + var childrenString = String(children); + true ? false ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : void 0; + } + } + + return subtreeCount; + } + + /** + * Traverses children that are typically specified as `props.children`, but + * might also be specified through attributes: + * + * - `traverseAllChildren(this.props.children, ...)` + * - `traverseAllChildren(this.props.leftPanelChildren, ...)` + * + * The `traverseContext` is an optional argument that is passed through the + * entire traversal. It can be used to store accumulations or anything else that + * the callback might find relevant. + * + * @param {?*} children Children tree object. + * @param {!function} callback To invoke upon traversing each child. + * @param {?*} traverseContext Context for traversal. + * @return {!number} The number of children in this subtree. + */ + function traverseAllChildren(children, callback, traverseContext) { + if (children == null) { + return 0; + } + + return traverseAllChildrenImpl(children, '', callback, traverseContext); + } + + module.exports = traverseAllChildren; + +/***/ }, +/* 14 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getIteratorFn + */ + + 'use strict'; + + /* global Symbol */ + + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + module.exports = getIteratorFn; + +/***/ }, +/* 15 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule KeyEscapeUtils + */ + + 'use strict'; + + /** + * Escape and wrap key so it is safe to use as a reactid + * + * @param {*} key to be escaped. + * @return {string} the escaped key. + */ + + function escape(key) { + var escapeRegex = /[=:]/g; + var escaperLookup = { + '=': '=0', + ':': '=2' + }; + var escapedString = ('' + key).replace(escapeRegex, function (match) { + return escaperLookup[match]; + }); + + return '$' + escapedString; + } + + /** + * Unescape and unwrap key for human-readable display + * + * @param {string} key to unescape. + * @return {string} the unescaped key. + */ + function unescape(key) { + var unescapeRegex = /(=0|=2)/g; + var unescaperLookup = { + '=0': '=', + '=2': ':' + }; + var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); + + return ('' + keySubstring).replace(unescapeRegex, function (match) { + return unescaperLookup[match]; + }); + } + + var KeyEscapeUtils = { + escape: escape, + unescape: unescape + }; + + module.exports = KeyEscapeUtils; + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactComponent + */ + + 'use strict'; + + var ReactNoopUpdateQueue = __webpack_require__(17); + var ReactInstrumentation = __webpack_require__(18); + + var canDefineProperty = __webpack_require__(12); + var emptyObject = __webpack_require__(23); + var invariant = __webpack_require__(7); + var warning = __webpack_require__(10); + + /** + * Base class helpers for the updating state of a component. + */ + function ReactComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + // We initialize the default updater but the real one gets injected by the + // renderer. + this.updater = updater || ReactNoopUpdateQueue; + } + + ReactComponent.prototype.isReactComponent = {}; + + /** + * Sets a subset of the state. Always use this to mutate + * state. You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * There is no guarantee that calls to `setState` will run synchronously, + * as they may eventually be batched together. You can provide an optional + * callback that will be executed when the call to setState is actually + * completed. + * + * When a function is provided to setState, it will be called at some point in + * the future (not synchronously). It will be called with the up to date + * component arguments (state, props, context). These values can be different + * from this.* because your function may be called after receiveProps but before + * shouldComponentUpdate, and this new state, props, and context will not yet be + * assigned to this. + * + * @param {object|function} partialState Next partial state or function to + * produce next partial state to be merged with current state. + * @param {?function} callback Called after state is updated. + * @final + * @protected + */ + ReactComponent.prototype.setState = function (partialState, callback) { + !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? false ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : void 0; + if (false) { + ReactInstrumentation.debugTool.onSetState(); + process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0; + } + this.updater.enqueueSetState(this, partialState); + if (callback) { + this.updater.enqueueCallback(this, callback, 'setState'); + } + }; + + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {?function} callback Called after update is complete. + * @final + * @protected + */ + ReactComponent.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(this); + if (callback) { + this.updater.enqueueCallback(this, callback, 'forceUpdate'); + } + }; + + /** + * Deprecated APIs. These APIs used to exist on classic React classes but since + * we would like to deprecate them, we're not going to move them over to this + * modern base class. Instead, we define a getter that warns if it's accessed. + */ + if (false) { + var deprecatedAPIs = { + isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], + replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] + }; + var defineDeprecationWarning = function (methodName, info) { + if (canDefineProperty) { + Object.defineProperty(ReactComponent.prototype, methodName, { + get: function () { + process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; + return undefined; + } + }); + } + }; + for (var fnName in deprecatedAPIs) { + if (deprecatedAPIs.hasOwnProperty(fnName)) { + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + } + } + } + + module.exports = ReactComponent; + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactNoopUpdateQueue + */ + + 'use strict'; + + var warning = __webpack_require__(10); + + function warnTDZ(publicInstance, callerName) { + if (false) { + process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : void 0; + } + } + + /** + * This is the abstract API for an update queue. + */ + var ReactNoopUpdateQueue = { + + /** + * Checks whether or not this composite component is mounted. + * @param {ReactClass} publicInstance The instance we want to test. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function (publicInstance) { + return false; + }, + + /** + * Enqueue a callback that will be executed after all the pending updates + * have processed. + * + * @param {ReactClass} publicInstance The instance to use as `this` context. + * @param {?function} callback Called after state is updated. + * @internal + */ + enqueueCallback: function (publicInstance, callback) {}, + + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @internal + */ + enqueueForceUpdate: function (publicInstance) { + warnTDZ(publicInstance, 'forceUpdate'); + }, + + /** + * Replaces all of the state. Always use this or `setState` to mutate state. + * You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} completeState Next state. + * @internal + */ + enqueueReplaceState: function (publicInstance, completeState) { + warnTDZ(publicInstance, 'replaceState'); + }, + + /** + * Sets a subset of the state. This only exists because _pendingState is + * internal. This provides a merging strategy that is not available to deep + * properties which is confusing. TODO: Expose pendingState or don't use it + * during the merge. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialState Next partial state to be merged with state. + * @internal + */ + enqueueSetState: function (publicInstance, partialState) { + warnTDZ(publicInstance, 'setState'); + } + }; + + module.exports = ReactNoopUpdateQueue; + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactInstrumentation + */ + + 'use strict'; + + var ReactDebugTool = __webpack_require__(19); + + module.exports = { debugTool: ReactDebugTool }; + +/***/ }, +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2016-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDebugTool + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + + var performanceNow = __webpack_require__(21); + var warning = __webpack_require__(10); + + var eventHandlers = []; + var handlerDoesThrowForEvent = {}; + + function emitEvent(handlerFunctionName, arg1, arg2, arg3, arg4, arg5) { + if (false) { + eventHandlers.forEach(function (handler) { + try { + if (handler[handlerFunctionName]) { + handler[handlerFunctionName](arg1, arg2, arg3, arg4, arg5); + } + } catch (e) { + process.env.NODE_ENV !== 'production' ? warning(!handlerDoesThrowForEvent[handlerFunctionName], 'exception thrown by devtool while handling %s: %s', handlerFunctionName, e.message) : void 0; + handlerDoesThrowForEvent[handlerFunctionName] = true; + } + }); + } + } + + var isProfiling = false; + var flushHistory = []; + var currentFlushNesting = 0; + var currentFlushMeasurements = null; + var currentFlushStartTime = null; + var currentTimerDebugID = null; + var currentTimerStartTime = null; + var currentTimerType = null; + + function clearHistory() { + ReactComponentTreeDevtool.purgeUnmountedComponents(); + ReactNativeOperationHistoryDevtool.clearHistory(); + } + + function getTreeSnapshot(registeredIDs) { + return registeredIDs.reduce(function (tree, id) { + var ownerID = ReactComponentTreeDevtool.getOwnerID(id); + var parentID = ReactComponentTreeDevtool.getParentID(id); + tree[id] = { + displayName: ReactComponentTreeDevtool.getDisplayName(id), + text: ReactComponentTreeDevtool.getText(id), + updateCount: ReactComponentTreeDevtool.getUpdateCount(id), + childIDs: ReactComponentTreeDevtool.getChildIDs(id), + // Text nodes don't have owners but this is close enough. + ownerID: ownerID || ReactComponentTreeDevtool.getOwnerID(parentID), + parentID: parentID + }; + return tree; + }, {}); + } + + function resetMeasurements() { + if (false) { + var previousStartTime = currentFlushStartTime; + var previousMeasurements = currentFlushMeasurements || []; + var previousOperations = ReactNativeOperationHistoryDevtool.getHistory(); + + if (!isProfiling || currentFlushNesting === 0) { + currentFlushStartTime = null; + currentFlushMeasurements = null; + clearHistory(); + return; + } + + if (previousMeasurements.length || previousOperations.length) { + var registeredIDs = ReactComponentTreeDevtool.getRegisteredIDs(); + flushHistory.push({ + duration: performanceNow() - previousStartTime, + measurements: previousMeasurements || [], + operations: previousOperations || [], + treeSnapshot: getTreeSnapshot(registeredIDs) + }); + } + + clearHistory(); + currentFlushStartTime = performanceNow(); + currentFlushMeasurements = []; + } + } + + function checkDebugID(debugID) { + false ? warning(debugID, 'ReactDebugTool: debugID may not be empty.') : void 0; + } + + var ReactDebugTool = { + addDevtool: function (devtool) { + eventHandlers.push(devtool); + }, + removeDevtool: function (devtool) { + for (var i = 0; i < eventHandlers.length; i++) { + if (eventHandlers[i] === devtool) { + eventHandlers.splice(i, 1); + i--; + } + } + }, + beginProfiling: function () { + if (false) { + if (isProfiling) { + return; + } + + isProfiling = true; + flushHistory.length = 0; + resetMeasurements(); + } + }, + endProfiling: function () { + if (false) { + if (!isProfiling) { + return; + } + + isProfiling = false; + resetMeasurements(); + } + }, + getFlushHistory: function () { + if (false) { + return flushHistory; + } + }, + onBeginFlush: function () { + if (false) { + currentFlushNesting++; + resetMeasurements(); + } + emitEvent('onBeginFlush'); + }, + onEndFlush: function () { + if (false) { + resetMeasurements(); + currentFlushNesting--; + } + emitEvent('onEndFlush'); + }, + onBeginLifeCycleTimer: function (debugID, timerType) { + checkDebugID(debugID); + emitEvent('onBeginLifeCycleTimer', debugID, timerType); + if (false) { + if (isProfiling && currentFlushNesting > 0) { + process.env.NODE_ENV !== 'production' ? warning(!currentTimerType, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + currentTimerStartTime = performanceNow(); + currentTimerDebugID = debugID; + currentTimerType = timerType; + } + } + }, + onEndLifeCycleTimer: function (debugID, timerType) { + checkDebugID(debugID); + if (false) { + if (isProfiling && currentFlushNesting > 0) { + process.env.NODE_ENV !== 'production' ? warning(currentTimerType === timerType, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; + currentFlushMeasurements.push({ + timerType: timerType, + instanceID: debugID, + duration: performanceNow() - currentTimerStartTime + }); + currentTimerStartTime = null; + currentTimerDebugID = null; + currentTimerType = null; + } + } + emitEvent('onEndLifeCycleTimer', debugID, timerType); + }, + onBeginReconcilerTimer: function (debugID, timerType) { + checkDebugID(debugID); + emitEvent('onBeginReconcilerTimer', debugID, timerType); + }, + onEndReconcilerTimer: function (debugID, timerType) { + checkDebugID(debugID); + emitEvent('onEndReconcilerTimer', debugID, timerType); + }, + onBeginProcessingChildContext: function () { + emitEvent('onBeginProcessingChildContext'); + }, + onEndProcessingChildContext: function () { + emitEvent('onEndProcessingChildContext'); + }, + onNativeOperation: function (debugID, type, payload) { + checkDebugID(debugID); + emitEvent('onNativeOperation', debugID, type, payload); + }, + onSetState: function () { + emitEvent('onSetState'); + }, + onSetDisplayName: function (debugID, displayName) { + checkDebugID(debugID); + emitEvent('onSetDisplayName', debugID, displayName); + }, + onSetChildren: function (debugID, childDebugIDs) { + checkDebugID(debugID); + emitEvent('onSetChildren', debugID, childDebugIDs); + }, + onSetOwner: function (debugID, ownerDebugID) { + checkDebugID(debugID); + emitEvent('onSetOwner', debugID, ownerDebugID); + }, + onSetText: function (debugID, text) { + checkDebugID(debugID); + emitEvent('onSetText', debugID, text); + }, + onMountRootComponent: function (debugID) { + checkDebugID(debugID); + emitEvent('onMountRootComponent', debugID); + }, + onMountComponent: function (debugID) { + checkDebugID(debugID); + emitEvent('onMountComponent', debugID); + }, + onUpdateComponent: function (debugID) { + checkDebugID(debugID); + emitEvent('onUpdateComponent', debugID); + }, + onUnmountComponent: function (debugID) { + checkDebugID(debugID); + emitEvent('onUnmountComponent', debugID); + } + }; + + if (false) { + var ReactInvalidSetStateWarningDevTool = require('./ReactInvalidSetStateWarningDevTool'); + var ReactNativeOperationHistoryDevtool = require('./ReactNativeOperationHistoryDevtool'); + var ReactComponentTreeDevtool = require('./ReactComponentTreeDevtool'); + ReactDebugTool.addDevtool(ReactInvalidSetStateWarningDevTool); + ReactDebugTool.addDevtool(ReactComponentTreeDevtool); + ReactDebugTool.addDevtool(ReactNativeOperationHistoryDevtool); + var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; + if (/[?&]react_perf\b/.test(url)) { + ReactDebugTool.beginProfiling(); + } + } + + module.exports = ReactDebugTool; + +/***/ }, +/* 20 */ +/***/ function(module, exports) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + + /** + * Simple, lightweight module assisting with the detection and context of + * Worker. Helps avoid circular dependencies and allows code to reason about + * whether or not they are in a Worker, even if they never include the main + * `ReactWorker` dependency. + */ + var ExecutionEnvironment = { + + canUseDOM: canUseDOM, + + canUseWorkers: typeof Worker !== 'undefined', + + canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), + + canUseViewport: canUseDOM && !!window.screen, + + isInWorker: !canUseDOM // For now, this is true - might change in the future. + + }; + + module.exports = ExecutionEnvironment; + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @typechecks + */ + + var performance = __webpack_require__(22); + + var performanceNow; + + /** + * Detect if we can use `window.performance.now()` and gracefully fallback to + * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now + * because of Facebook's testing infrastructure. + */ + if (performance.now) { + performanceNow = function performanceNow() { + return performance.now(); + }; + } else { + performanceNow = function performanceNow() { + return Date.now(); + }; + } + + module.exports = performanceNow; + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @typechecks + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + + var performance; + + if (ExecutionEnvironment.canUseDOM) { + performance = window.performance || window.msPerformance || window.webkitPerformance; + } + + module.exports = performance || {}; + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var emptyObject = {}; + + if (false) { + Object.freeze(emptyObject); + } + + module.exports = emptyObject; + +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactClass + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var ReactComponent = __webpack_require__(16); + var ReactElement = __webpack_require__(8); + var ReactPropTypeLocations = __webpack_require__(25); + var ReactPropTypeLocationNames = __webpack_require__(27); + var ReactNoopUpdateQueue = __webpack_require__(17); + + var emptyObject = __webpack_require__(23); + var invariant = __webpack_require__(7); + var keyMirror = __webpack_require__(26); + var keyOf = __webpack_require__(28); + var warning = __webpack_require__(10); + + var MIXINS_KEY = keyOf({ mixins: null }); + + /** + * Policies that describe methods in `ReactClassInterface`. + */ + var SpecPolicy = keyMirror({ + /** + * These methods may be defined only once by the class specification or mixin. + */ + DEFINE_ONCE: null, + /** + * These methods may be defined by both the class specification and mixins. + * Subsequent definitions will be chained. These methods must return void. + */ + DEFINE_MANY: null, + /** + * These methods are overriding the base class. + */ + OVERRIDE_BASE: null, + /** + * These methods are similar to DEFINE_MANY, except we assume they return + * objects. We try to merge the keys of the return values of all the mixed in + * functions. If there is a key conflict we throw. + */ + DEFINE_MANY_MERGED: null + }); + + var injectedMixins = []; + + /** + * Composite components are higher-level components that compose other composite + * or native components. + * + * To create a new type of `ReactClass`, pass a specification of + * your new class to `React.createClass`. The only requirement of your class + * specification is that you implement a `render` method. + * + * var MyComponent = React.createClass({ + * render: function() { + * return
Hello World
; + * } + * }); + * + * The class specification supports a specific protocol of methods that have + * special meaning (e.g. `render`). See `ReactClassInterface` for + * more the comprehensive protocol. Any other properties and methods in the + * class specification will be available on the prototype. + * + * @interface ReactClassInterface + * @internal + */ + var ReactClassInterface = { + + /** + * An array of Mixin objects to include when defining your component. + * + * @type {array} + * @optional + */ + mixins: SpecPolicy.DEFINE_MANY, + + /** + * An object containing properties and methods that should be defined on + * the component's constructor instead of its prototype (static methods). + * + * @type {object} + * @optional + */ + statics: SpecPolicy.DEFINE_MANY, + + /** + * Definition of prop types for this component. + * + * @type {object} + * @optional + */ + propTypes: SpecPolicy.DEFINE_MANY, + + /** + * Definition of context types for this component. + * + * @type {object} + * @optional + */ + contextTypes: SpecPolicy.DEFINE_MANY, + + /** + * Definition of context types this component sets for its children. + * + * @type {object} + * @optional + */ + childContextTypes: SpecPolicy.DEFINE_MANY, + + // ==== Definition methods ==== + + /** + * Invoked when the component is mounted. Values in the mapping will be set on + * `this.props` if that prop is not specified (i.e. using an `in` check). + * + * This method is invoked before `getInitialState` and therefore cannot rely + * on `this.state` or use `this.setState`. + * + * @return {object} + * @optional + */ + getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * Invoked once before the component is mounted. The return value will be used + * as the initial value of `this.state`. + * + * getInitialState: function() { + * return { + * isOn: false, + * fooBaz: new BazFoo() + * } + * } + * + * @return {object} + * @optional + */ + getInitialState: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * @return {object} + * @optional + */ + getChildContext: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * Uses props from `this.props` and state from `this.state` to render the + * structure of the component. + * + * No guarantees are made about when or how often this method is invoked, so + * it must not have side effects. + * + * render: function() { + * var name = this.props.name; + * return
Hello, {name}!
; + * } + * + * @return {ReactComponent} + * @nosideeffects + * @required + */ + render: SpecPolicy.DEFINE_ONCE, + + // ==== Delegate methods ==== + + /** + * Invoked when the component is initially created and about to be mounted. + * This may have side effects, but any external subscriptions or data created + * by this method must be cleaned up in `componentWillUnmount`. + * + * @optional + */ + componentWillMount: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component has been mounted and has a DOM representation. + * However, there is no guarantee that the DOM node is in the document. + * + * Use this as an opportunity to operate on the DOM when the component has + * been mounted (initialized and rendered) for the first time. + * + * @param {DOMElement} rootNode DOM element representing the component. + * @optional + */ + componentDidMount: SpecPolicy.DEFINE_MANY, + + /** + * Invoked before the component receives new props. + * + * Use this as an opportunity to react to a prop transition by updating the + * state using `this.setState`. Current props are accessed via `this.props`. + * + * componentWillReceiveProps: function(nextProps, nextContext) { + * this.setState({ + * likesIncreasing: nextProps.likeCount > this.props.likeCount + * }); + * } + * + * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop + * transition may cause a state change, but the opposite is not true. If you + * need it, you are probably looking for `componentWillUpdate`. + * + * @param {object} nextProps + * @optional + */ + componentWillReceiveProps: SpecPolicy.DEFINE_MANY, + + /** + * Invoked while deciding if the component should be updated as a result of + * receiving new props, state and/or context. + * + * Use this as an opportunity to `return false` when you're certain that the + * transition to the new props/state/context will not require a component + * update. + * + * shouldComponentUpdate: function(nextProps, nextState, nextContext) { + * return !equal(nextProps, this.props) || + * !equal(nextState, this.state) || + * !equal(nextContext, this.context); + * } + * + * @param {object} nextProps + * @param {?object} nextState + * @param {?object} nextContext + * @return {boolean} True if the component should update. + * @optional + */ + shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, + + /** + * Invoked when the component is about to update due to a transition from + * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` + * and `nextContext`. + * + * Use this as an opportunity to perform preparation before an update occurs. + * + * NOTE: You **cannot** use `this.setState()` in this method. + * + * @param {object} nextProps + * @param {?object} nextState + * @param {?object} nextContext + * @param {ReactReconcileTransaction} transaction + * @optional + */ + componentWillUpdate: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component's DOM representation has been updated. + * + * Use this as an opportunity to operate on the DOM when the component has + * been updated. + * + * @param {object} prevProps + * @param {?object} prevState + * @param {?object} prevContext + * @param {DOMElement} rootNode DOM element representing the component. + * @optional + */ + componentDidUpdate: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component is about to be removed from its parent and have + * its DOM representation destroyed. + * + * Use this as an opportunity to deallocate any external resources. + * + * NOTE: There is no `componentDidUnmount` since your component will have been + * destroyed by that point. + * + * @optional + */ + componentWillUnmount: SpecPolicy.DEFINE_MANY, + + // ==== Advanced methods ==== + + /** + * Updates the component's currently mounted DOM representation. + * + * By default, this implements React's rendering and reconciliation algorithm. + * Sophisticated clients may wish to override this. + * + * @param {ReactReconcileTransaction} transaction + * @internal + * @overridable + */ + updateComponent: SpecPolicy.OVERRIDE_BASE + + }; + + /** + * Mapping from class specification keys to special processing functions. + * + * Although these are declared like instance properties in the specification + * when defining classes using `React.createClass`, they are actually static + * and are accessible on the constructor instead of the prototype. Despite + * being static, they must be defined outside of the "statics" key under + * which all other static methods are defined. + */ + var RESERVED_SPEC_KEYS = { + displayName: function (Constructor, displayName) { + Constructor.displayName = displayName; + }, + mixins: function (Constructor, mixins) { + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + mixSpecIntoComponent(Constructor, mixins[i]); + } + } + }, + childContextTypes: function (Constructor, childContextTypes) { + if (false) { + validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext); + } + Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); + }, + contextTypes: function (Constructor, contextTypes) { + if (false) { + validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context); + } + Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); + }, + /** + * Special case getDefaultProps which should move into statics but requires + * automatic merging. + */ + getDefaultProps: function (Constructor, getDefaultProps) { + if (Constructor.getDefaultProps) { + Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); + } else { + Constructor.getDefaultProps = getDefaultProps; + } + }, + propTypes: function (Constructor, propTypes) { + if (false) { + validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop); + } + Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); + }, + statics: function (Constructor, statics) { + mixStaticSpecIntoComponent(Constructor, statics); + }, + autobind: function () {} }; + + // noop + function validateTypeDef(Constructor, typeDef, location) { + for (var propName in typeDef) { + if (typeDef.hasOwnProperty(propName)) { + // use a warning instead of an invariant so components + // don't show up in prod but only in __DEV__ + false ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; + } + } + } + + function validateMethodOverride(isAlreadyDefined, name) { + var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; + + // Disallow overriding of base class methods unless explicitly allowed. + if (ReactClassMixin.hasOwnProperty(name)) { + !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? false ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : void 0; + } + + // Disallow defining methods more than once unless explicitly allowed. + if (isAlreadyDefined) { + !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? false ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : void 0; + } + } + + /** + * Mixin helper which handles policy validation and reserved + * specification keys when building React classes. + */ + function mixSpecIntoComponent(Constructor, spec) { + if (!spec) { + return; + } + + !(typeof spec !== 'function') ? false ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.') : invariant(false) : void 0; + !!ReactElement.isValidElement(spec) ? false ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : void 0; + + var proto = Constructor.prototype; + var autoBindPairs = proto.__reactAutoBindPairs; + + // By handling mixins before any other properties, we ensure the same + // chaining order is applied to methods with DEFINE_MANY policy, whether + // mixins are listed before or after these methods in the spec. + if (spec.hasOwnProperty(MIXINS_KEY)) { + RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); + } + + for (var name in spec) { + if (!spec.hasOwnProperty(name)) { + continue; + } + + if (name === MIXINS_KEY) { + // We have already handled mixins in a special case above. + continue; + } + + var property = spec[name]; + var isAlreadyDefined = proto.hasOwnProperty(name); + validateMethodOverride(isAlreadyDefined, name); + + if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { + RESERVED_SPEC_KEYS[name](Constructor, property); + } else { + // Setup methods on prototype: + // The following member methods should not be automatically bound: + // 1. Expected ReactClass methods (in the "interface"). + // 2. Overridden methods (that were mixed in). + var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); + var isFunction = typeof property === 'function'; + var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; + + if (shouldAutoBind) { + autoBindPairs.push(name, property); + proto[name] = property; + } else { + if (isAlreadyDefined) { + var specPolicy = ReactClassInterface[name]; + + // These cases should already be caught by validateMethodOverride. + !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? false ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : void 0; + + // For methods which are defined more than once, call the existing + // methods before calling the new property, merging if appropriate. + if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { + proto[name] = createMergedResultFunction(proto[name], property); + } else if (specPolicy === SpecPolicy.DEFINE_MANY) { + proto[name] = createChainedFunction(proto[name], property); + } + } else { + proto[name] = property; + if (false) { + // Add verbose displayName to the function, which helps when looking + // at profiling tools. + if (typeof property === 'function' && spec.displayName) { + proto[name].displayName = spec.displayName + '_' + name; + } + } + } + } + } + } + } + + function mixStaticSpecIntoComponent(Constructor, statics) { + if (!statics) { + return; + } + for (var name in statics) { + var property = statics[name]; + if (!statics.hasOwnProperty(name)) { + continue; + } + + var isReserved = name in RESERVED_SPEC_KEYS; + !!isReserved ? false ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : void 0; + + var isInherited = name in Constructor; + !!isInherited ? false ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : void 0; + Constructor[name] = property; + } + } + + /** + * Merge two objects, but throw if both contain the same key. + * + * @param {object} one The first object, which is mutated. + * @param {object} two The second object + * @return {object} one after it has been mutated to contain everything in two. + */ + function mergeIntoWithNoDuplicateKeys(one, two) { + !(one && two && typeof one === 'object' && typeof two === 'object') ? false ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : void 0; + + for (var key in two) { + if (two.hasOwnProperty(key)) { + !(one[key] === undefined) ? false ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : void 0; + one[key] = two[key]; + } + } + return one; + } + + /** + * Creates a function that invokes two functions and merges their return values. + * + * @param {function} one Function to invoke first. + * @param {function} two Function to invoke second. + * @return {function} Function that invokes the two argument functions. + * @private + */ + function createMergedResultFunction(one, two) { + return function mergedResult() { + var a = one.apply(this, arguments); + var b = two.apply(this, arguments); + if (a == null) { + return b; + } else if (b == null) { + return a; + } + var c = {}; + mergeIntoWithNoDuplicateKeys(c, a); + mergeIntoWithNoDuplicateKeys(c, b); + return c; + }; + } + + /** + * Creates a function that invokes two functions and ignores their return vales. + * + * @param {function} one Function to invoke first. + * @param {function} two Function to invoke second. + * @return {function} Function that invokes the two argument functions. + * @private + */ + function createChainedFunction(one, two) { + return function chainedFunction() { + one.apply(this, arguments); + two.apply(this, arguments); + }; + } + + /** + * Binds a method to the component. + * + * @param {object} component Component whose method is going to be bound. + * @param {function} method Method to be bound. + * @return {function} The bound method. + */ + function bindAutoBindMethod(component, method) { + var boundMethod = method.bind(component); + if (false) { + boundMethod.__reactBoundContext = component; + boundMethod.__reactBoundMethod = method; + boundMethod.__reactBoundArguments = null; + var componentName = component.constructor.displayName; + var _bind = boundMethod.bind; + boundMethod.bind = function (newThis) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + // User is trying to bind() an autobound method; we effectively will + // ignore the value of "this" that the user is trying to use, so + // let's warn. + if (newThis !== component && newThis !== null) { + process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; + } else if (!args.length) { + process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0; + return boundMethod; + } + var reboundMethod = _bind.apply(boundMethod, arguments); + reboundMethod.__reactBoundContext = component; + reboundMethod.__reactBoundMethod = method; + reboundMethod.__reactBoundArguments = args; + return reboundMethod; + }; + } + return boundMethod; + } + + /** + * Binds all auto-bound methods in a component. + * + * @param {object} component Component whose method is going to be bound. + */ + function bindAutoBindMethods(component) { + var pairs = component.__reactAutoBindPairs; + for (var i = 0; i < pairs.length; i += 2) { + var autoBindKey = pairs[i]; + var method = pairs[i + 1]; + component[autoBindKey] = bindAutoBindMethod(component, method); + } + } + + /** + * Add more to the ReactClass base class. These are all legacy features and + * therefore not already part of the modern ReactComponent. + */ + var ReactClassMixin = { + + /** + * TODO: This will be deprecated because state should always keep a consistent + * type signature and the only use case for this, is to avoid that. + */ + replaceState: function (newState, callback) { + this.updater.enqueueReplaceState(this, newState); + if (callback) { + this.updater.enqueueCallback(this, callback, 'replaceState'); + } + }, + + /** + * Checks whether or not this composite component is mounted. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function () { + return this.updater.isMounted(this); + } + }; + + var ReactClassComponent = function () {}; + _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); + + /** + * Module for creating composite components. + * + * @class ReactClass + */ + var ReactClass = { + + /** + * Creates a composite component class given a class specification. + * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass + * + * @param {object} spec Class specification (which must define `render`). + * @return {function} Component constructor function. + * @public + */ + createClass: function (spec) { + var Constructor = function (props, context, updater) { + // This constructor gets overridden by mocks. The argument is used + // by mocks to assert on what gets mounted. + + if (false) { + process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; + } + + // Wire up auto-binding + if (this.__reactAutoBindPairs.length) { + bindAutoBindMethods(this); + } + + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + + this.state = null; + + // ReactClasses doesn't have constructors. Instead, they use the + // getInitialState and componentWillMount methods for initialization. + + var initialState = this.getInitialState ? this.getInitialState() : null; + if (false) { + // We allow auto-mocks to proceed as if they're returning null. + if (initialState === undefined && this.getInitialState._isMockFunction) { + // This is probably bad practice. Consider warning here and + // deprecating this convenience. + initialState = null; + } + } + !(typeof initialState === 'object' && !Array.isArray(initialState)) ? false ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : void 0; + + this.state = initialState; + }; + Constructor.prototype = new ReactClassComponent(); + Constructor.prototype.constructor = Constructor; + Constructor.prototype.__reactAutoBindPairs = []; + + injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); + + mixSpecIntoComponent(Constructor, spec); + + // Initialize the defaultProps property after all mixins have been merged. + if (Constructor.getDefaultProps) { + Constructor.defaultProps = Constructor.getDefaultProps(); + } + + if (false) { + // This is a tag to indicate that the use of these method names is ok, + // since it's used with createClass. If it's not, then it's likely a + // mistake so we'll warn you to use the static property, property + // initializer or constructor respectively. + if (Constructor.getDefaultProps) { + Constructor.getDefaultProps.isReactClassApproved = {}; + } + if (Constructor.prototype.getInitialState) { + Constructor.prototype.getInitialState.isReactClassApproved = {}; + } + } + + !Constructor.prototype.render ? false ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : void 0; + + if (false) { + process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; + process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; + } + + // Reduce time spent doing lookups by setting these on the prototype. + for (var methodName in ReactClassInterface) { + if (!Constructor.prototype[methodName]) { + Constructor.prototype[methodName] = null; + } + } + + return Constructor; + }, + + injection: { + injectMixin: function (mixin) { + injectedMixins.push(mixin); + } + } + + }; + + module.exports = ReactClass; + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypeLocations + */ + + 'use strict'; + + var keyMirror = __webpack_require__(26); + + var ReactPropTypeLocations = keyMirror({ + prop: null, + context: null, + childContext: null + }); + + module.exports = ReactPropTypeLocations; + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @typechecks static-only + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * Constructs an enumeration with keys equal to their value. + * + * For example: + * + * var COLORS = keyMirror({blue: null, red: null}); + * var myColor = COLORS.blue; + * var isColorValid = !!COLORS[myColor]; + * + * The last line could not be performed if the values of the generated enum were + * not equal to their keys. + * + * Input: {key1: val1, key2: val2} + * Output: {key1: key1, key2: key2} + * + * @param {object} obj + * @return {object} + */ + var keyMirror = function keyMirror(obj) { + var ret = {}; + var key; + !(obj instanceof Object && !Array.isArray(obj)) ? false ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : void 0; + for (key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + ret[key] = key; + } + return ret; + }; + + module.exports = keyMirror; + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypeLocationNames + */ + + 'use strict'; + + var ReactPropTypeLocationNames = {}; + + if (false) { + ReactPropTypeLocationNames = { + prop: 'prop', + context: 'context', + childContext: 'child context' + }; + } + + module.exports = ReactPropTypeLocationNames; + +/***/ }, +/* 28 */ +/***/ function(module, exports) { + + "use strict"; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + /** + * Allows extraction of a minified key. Let's the build system minify keys + * without losing the ability to dynamically use key strings as values + * themselves. Pass in an object with a single key/val pair and it will return + * you the string key of that single record. Suppose you want to grab the + * value for a key 'className' inside of an object. Key/val minification may + * have aliased that key to be 'xa12'. keyOf({className: null}) will return + * 'xa12' in that case. Resolve keys you want to use once at startup time, then + * reuse those resolutions. + */ + var keyOf = function keyOf(oneKeyObj) { + var key; + for (key in oneKeyObj) { + if (!oneKeyObj.hasOwnProperty(key)) { + continue; + } + return key; + } + return null; + }; + + module.exports = keyOf; + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMFactories + */ + + 'use strict'; + + var ReactElement = __webpack_require__(8); + var ReactElementValidator = __webpack_require__(30); + + var mapObject = __webpack_require__(31); + + /** + * Create a factory that creates HTML tag elements. + * + * @param {string} tag Tag name (e.g. `div`). + * @private + */ + function createDOMFactory(tag) { + if (false) { + return ReactElementValidator.createFactory(tag); + } + return ReactElement.createFactory(tag); + } + + /** + * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. + * This is also accessible via `React.DOM`. + * + * @public + */ + var ReactDOMFactories = mapObject({ + a: 'a', + abbr: 'abbr', + address: 'address', + area: 'area', + article: 'article', + aside: 'aside', + audio: 'audio', + b: 'b', + base: 'base', + bdi: 'bdi', + bdo: 'bdo', + big: 'big', + blockquote: 'blockquote', + body: 'body', + br: 'br', + button: 'button', + canvas: 'canvas', + caption: 'caption', + cite: 'cite', + code: 'code', + col: 'col', + colgroup: 'colgroup', + data: 'data', + datalist: 'datalist', + dd: 'dd', + del: 'del', + details: 'details', + dfn: 'dfn', + dialog: 'dialog', + div: 'div', + dl: 'dl', + dt: 'dt', + em: 'em', + embed: 'embed', + fieldset: 'fieldset', + figcaption: 'figcaption', + figure: 'figure', + footer: 'footer', + form: 'form', + h1: 'h1', + h2: 'h2', + h3: 'h3', + h4: 'h4', + h5: 'h5', + h6: 'h6', + head: 'head', + header: 'header', + hgroup: 'hgroup', + hr: 'hr', + html: 'html', + i: 'i', + iframe: 'iframe', + img: 'img', + input: 'input', + ins: 'ins', + kbd: 'kbd', + keygen: 'keygen', + label: 'label', + legend: 'legend', + li: 'li', + link: 'link', + main: 'main', + map: 'map', + mark: 'mark', + menu: 'menu', + menuitem: 'menuitem', + meta: 'meta', + meter: 'meter', + nav: 'nav', + noscript: 'noscript', + object: 'object', + ol: 'ol', + optgroup: 'optgroup', + option: 'option', + output: 'output', + p: 'p', + param: 'param', + picture: 'picture', + pre: 'pre', + progress: 'progress', + q: 'q', + rp: 'rp', + rt: 'rt', + ruby: 'ruby', + s: 's', + samp: 'samp', + script: 'script', + section: 'section', + select: 'select', + small: 'small', + source: 'source', + span: 'span', + strong: 'strong', + style: 'style', + sub: 'sub', + summary: 'summary', + sup: 'sup', + table: 'table', + tbody: 'tbody', + td: 'td', + textarea: 'textarea', + tfoot: 'tfoot', + th: 'th', + thead: 'thead', + time: 'time', + title: 'title', + tr: 'tr', + track: 'track', + u: 'u', + ul: 'ul', + 'var': 'var', + video: 'video', + wbr: 'wbr', + + // SVG + circle: 'circle', + clipPath: 'clipPath', + defs: 'defs', + ellipse: 'ellipse', + g: 'g', + image: 'image', + line: 'line', + linearGradient: 'linearGradient', + mask: 'mask', + path: 'path', + pattern: 'pattern', + polygon: 'polygon', + polyline: 'polyline', + radialGradient: 'radialGradient', + rect: 'rect', + stop: 'stop', + svg: 'svg', + text: 'text', + tspan: 'tspan' + + }, createDOMFactory); + + module.exports = ReactDOMFactories; + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactElementValidator + */ + + /** + * ReactElementValidator provides a wrapper around a element factory + * which validates the props passed to the element. This is intended to be + * used only in DEV and could be replaced by a static type checker for languages + * that support it. + */ + + 'use strict'; + + var ReactElement = __webpack_require__(8); + var ReactPropTypeLocations = __webpack_require__(25); + var ReactPropTypeLocationNames = __webpack_require__(27); + var ReactCurrentOwner = __webpack_require__(9); + + var canDefineProperty = __webpack_require__(12); + var getIteratorFn = __webpack_require__(14); + var invariant = __webpack_require__(7); + var warning = __webpack_require__(10); + + function getDeclarationErrorAddendum() { + if (ReactCurrentOwner.current) { + var name = ReactCurrentOwner.current.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; + } + + /** + * Warn if there's no key explicitly set on dynamic arrays of children or + * object keys are not valid. This allows us to keep track of children between + * updates. + */ + var ownerHasKeyUseWarning = {}; + + var loggedTypeFailures = {}; + + /** + * Warn if the element doesn't have an explicit key assigned to it. + * This element is in an array. The array could grow and shrink or be + * reordered. All children that haven't already been validated are required to + * have a "key" property assigned to it. + * + * @internal + * @param {ReactElement} element Element that requires a key. + * @param {*} parentType element's parent's type. + */ + function validateExplicitKey(element, parentType) { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + + var addenda = getAddendaForKeyUse('uniqueKey', element, parentType); + if (addenda === null) { + // we already showed the warning + return; + } + false ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : void 0; + } + + /** + * Shared warning and monitoring code for the key warnings. + * + * @internal + * @param {string} messageType A key used for de-duping warnings. + * @param {ReactElement} element Component that requires a key. + * @param {*} parentType element's parent's type. + * @returns {?object} A set of addenda to use in the warning message, or null + * if the warning has already been shown before (and shouldn't be shown again). + */ + function getAddendaForKeyUse(messageType, element, parentType) { + var addendum = getDeclarationErrorAddendum(); + if (!addendum) { + var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; + if (parentName) { + addendum = ' Check the top-level render call using <' + parentName + '>.'; + } + } + + var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {}); + if (memoizer[addendum]) { + return null; + } + memoizer[addendum] = true; + + var addenda = { + parentOrOwner: addendum, + url: ' See https://fb.me/react-warning-keys for more information.', + childOwner: null + }; + + // Usually the current owner is the offender, but if it accepts children as a + // property, it may be the creator of the child that's responsible for + // assigning it a key. + if (element && element._owner && element._owner !== ReactCurrentOwner.current) { + // Give the component that originally created this child. + addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; + } + + return addenda; + } + + /** + * Ensure that every element either is passed in a static location, in an + * array with an explicit keys property defined, or in an object literal + * with valid key property. + * + * @internal + * @param {ReactNode} node Statically passed child of any type. + * @param {*} parentType node's parent's type. + */ + function validateChildKeys(node, parentType) { + if (typeof node !== 'object') { + return; + } + if (Array.isArray(node)) { + for (var i = 0; i < node.length; i++) { + var child = node[i]; + if (ReactElement.isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (ReactElement.isValidElement(node)) { + // This element was passed in a valid location. + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + // Entry iterators provide implicit keys. + if (iteratorFn) { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (ReactElement.isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } + } + + /** + * Assert that the props are valid + * + * @param {string} componentName Name of the component for error messages. + * @param {object} propTypes Map of prop name to a ReactPropType + * @param {object} props + * @param {string} location e.g. "prop", "context", "child context" + * @private + */ + function checkPropTypes(componentName, propTypes, props, location) { + for (var propName in propTypes) { + if (propTypes.hasOwnProperty(propName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + !(typeof propTypes[propName] === 'function') ? false ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : void 0; + error = propTypes[propName](props, propName, componentName, location); + } catch (ex) { + error = ex; + } + false ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : void 0; + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var addendum = getDeclarationErrorAddendum(); + false ? warning(false, 'Failed propType: %s%s', error.message, addendum) : void 0; + } + } + } + } + + /** + * Given an element, validate that its props follow the propTypes definition, + * provided by the type. + * + * @param {ReactElement} element + */ + function validatePropTypes(element) { + var componentClass = element.type; + if (typeof componentClass !== 'function') { + return; + } + var name = componentClass.displayName || componentClass.name; + if (componentClass.propTypes) { + checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop); + } + if (typeof componentClass.getDefaultProps === 'function') { + false ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; + } + } + + var ReactElementValidator = { + + createElement: function (type, props, children) { + var validType = typeof type === 'string' || typeof type === 'function'; + // We warn in this case but don't throw. We expect the element creation to + // succeed and there will likely be errors in render. + false ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : void 0; + + var element = ReactElement.createElement.apply(this, arguments); + + // The result can be nullish if a mock or a custom function is used. + // TODO: Drop this when these are no longer allowed as the type argument. + if (element == null) { + return element; + } + + // Skip key warning if the type isn't valid since our key validation logic + // doesn't expect a non-string/function type and can throw confusing errors. + // We don't want exception behavior to differ between dev and prod. + // (Rendering will throw with a helpful message and as soon as the type is + // fixed, the key warnings will appear.) + if (validType) { + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], type); + } + } + + validatePropTypes(element); + + return element; + }, + + createFactory: function (type) { + var validatedFactory = ReactElementValidator.createElement.bind(null, type); + // Legacy hook TODO: Warn if this is accessed + validatedFactory.type = type; + + if (false) { + if (canDefineProperty) { + Object.defineProperty(validatedFactory, 'type', { + enumerable: false, + get: function () { + process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0; + Object.defineProperty(this, 'type', { + value: type + }); + return type; + } + }); + } + } + + return validatedFactory; + }, + + cloneElement: function (element, props, children) { + var newElement = ReactElement.cloneElement.apply(this, arguments); + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], newElement.type); + } + validatePropTypes(newElement); + return newElement; + } + + }; + + module.exports = ReactElementValidator; + +/***/ }, +/* 31 */ +/***/ function(module, exports) { + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ + + 'use strict'; + + var hasOwnProperty = Object.prototype.hasOwnProperty; + + /** + * Executes the provided `callback` once for each enumerable own property in the + * object and constructs a new object from the results. The `callback` is + * invoked with three arguments: + * + * - the property value + * - the property name + * - the object being traversed + * + * Properties that are added after the call to `mapObject` will not be visited + * by `callback`. If the values of existing properties are changed, the value + * passed to `callback` will be the value at the time `mapObject` visits them. + * Properties that are deleted before being visited are not visited. + * + * @grep function objectMap() + * @grep function objMap() + * + * @param {?object} object + * @param {function} callback + * @param {*} context + * @return {?object} + */ + function mapObject(object, callback, context) { + if (!object) { + return null; + } + var result = {}; + for (var name in object) { + if (hasOwnProperty.call(object, name)) { + result[name] = callback.call(context, object[name], name, object); + } + } + return result; + } + + module.exports = mapObject; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypes + */ + + 'use strict'; + + var ReactElement = __webpack_require__(8); + var ReactPropTypeLocationNames = __webpack_require__(27); + + var emptyFunction = __webpack_require__(11); + var getIteratorFn = __webpack_require__(14); + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName, location, propFullName) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + if (props[propName] == null) { + var locationName = ReactPropTypeLocationNames[location]; + if (isRequired) { + return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + var locationName = ReactPropTypeLocationNames[location]; + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturns(null)); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var locationName = ReactPropTypeLocationNames[location]; + var propType = getPropType(propValue); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']'); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!ReactElement.isValidElement(props[propName])) { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var locationName = ReactPropTypeLocationNames[location]; + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + return createChainableTypeChecker(function () { + return new Error('Invalid argument supplied to oneOf, expected an instance of array.'); + }); + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var locationName = ReactPropTypeLocationNames[location]; + var valuesString = JSON.stringify(expectedValues); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new Error('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + return createChainableTypeChecker(function () { + return new Error('Invalid argument supplied to oneOfType, expected an instance of array.'); + }); + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName) == null) { + return null; + } + } + + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || ReactElement.isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + module.exports = ReactPropTypes; + +/***/ }, +/* 33 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactVersion + */ + + 'use strict'; + + module.exports = '15.1.0'; + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule onlyChild + */ + 'use strict'; + + var ReactElement = __webpack_require__(8); + + var invariant = __webpack_require__(7); + + /** + * Returns the first child in a collection of children and verifies that there + * is only one child in the collection. + * + * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only + * + * The current implementation of this function assumes that a single child gets + * passed without a wrapper, but the purpose of this helper function is to + * abstract away the particular structure of children. + * + * @param {?object} children Child collection structure. + * @return {ReactElement} The first and only `ReactElement` contained in the + * structure. + */ + function onlyChild(children) { + !ReactElement.isValidElement(children) ? false ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : void 0; + return children; + } + + module.exports = onlyChild; + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + module.exports = __webpack_require__(36); + + +/***/ }, +/* 36 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOM + */ + + /* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ + + 'use strict'; + + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDefaultInjection = __webpack_require__(40); + var ReactMount = __webpack_require__(157); + var ReactReconciler = __webpack_require__(59); + var ReactUpdates = __webpack_require__(56); + var ReactVersion = __webpack_require__(33); + + var findDOMNode = __webpack_require__(162); + var getNativeComponentFromComposite = __webpack_require__(163); + var renderSubtreeIntoContainer = __webpack_require__(164); + var warning = __webpack_require__(10); + + ReactDefaultInjection.inject(); + + var React = { + findDOMNode: findDOMNode, + render: ReactMount.render, + unmountComponentAtNode: ReactMount.unmountComponentAtNode, + version: ReactVersion, + + /* eslint-disable camelcase */ + unstable_batchedUpdates: ReactUpdates.batchedUpdates, + unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer + }; + + // Inject the runtime into a devtools global hook regardless of browser. + // Allows for debugging when the hook is injected on the page. + /* eslint-enable camelcase */ + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { + __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ + ComponentTree: { + getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode, + getNodeFromInstance: function (inst) { + // inst is an internal instance (but could be a composite) + if (inst._renderedComponent) { + inst = getNativeComponentFromComposite(inst); + } + if (inst) { + return ReactDOMComponentTree.getNodeFromInstance(inst); + } else { + return null; + } + } + }, + Mount: ReactMount, + Reconciler: ReactReconciler + }); + } + + if (false) { + var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment'); + if (ExecutionEnvironment.canUseDOM && window.top === window.self) { + + // First check if devtools is not installed + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { + // If we're in Chrome or Firefox, provide a download link if not installed. + if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { + // Firefox does not have the issue with devtools loaded over file:// + var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1; + console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools'); + } + } + + var testFunc = function testFn() {}; + process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; + + // If we're in IE8, check to see if we are in compatibility mode and provide + // information on preventing compatibility mode + var ieCompatibilityMode = document.documentMode && document.documentMode < 8; + + process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '') : void 0; + + var expectedFeatures = [ + // shims + Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim]; + + for (var i = 0; i < expectedFeatures.length; i++) { + if (!expectedFeatures[i]) { + process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; + break; + } + } + } + } + + module.exports = React; + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMComponentTree + */ + + 'use strict'; + + var DOMProperty = __webpack_require__(38); + var ReactDOMComponentFlags = __webpack_require__(39); + + var invariant = __webpack_require__(7); + + var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; + var Flags = ReactDOMComponentFlags; + + var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2); + + /** + * Drill down (through composites and empty components) until we get a native or + * native text component. + * + * This is pretty polymorphic but unavoidable with the current structure we have + * for `_renderedChildren`. + */ + function getRenderedNativeOrTextFromComponent(component) { + var rendered; + while (rendered = component._renderedComponent) { + component = rendered; + } + return component; + } + + /** + * Populate `_nativeNode` on the rendered native/text component with the given + * DOM node. The passed `inst` can be a composite. + */ + function precacheNode(inst, node) { + var nativeInst = getRenderedNativeOrTextFromComponent(inst); + nativeInst._nativeNode = node; + node[internalInstanceKey] = nativeInst; + } + + function uncacheNode(inst) { + var node = inst._nativeNode; + if (node) { + delete node[internalInstanceKey]; + inst._nativeNode = null; + } + } + + /** + * Populate `_nativeNode` on each child of `inst`, assuming that the children + * match up with the DOM (element) children of `node`. + * + * We cache entire levels at once to avoid an n^2 problem where we access the + * children of a node sequentially and have to walk from the start to our target + * node every time. + * + * Since we update `_renderedChildren` and the actual DOM at (slightly) + * different times, we could race here and see a newer `_renderedChildren` than + * the DOM nodes we see. To avoid this, ReactMultiChild calls + * `prepareToManageChildren` before we change `_renderedChildren`, at which + * time the container's child nodes are always cached (until it unmounts). + */ + function precacheChildNodes(inst, node) { + if (inst._flags & Flags.hasCachedChildNodes) { + return; + } + var children = inst._renderedChildren; + var childNode = node.firstChild; + outer: for (var name in children) { + if (!children.hasOwnProperty(name)) { + continue; + } + var childInst = children[name]; + var childID = getRenderedNativeOrTextFromComponent(childInst)._domID; + if (childID == null) { + // We're currently unmounting this child in ReactMultiChild; skip it. + continue; + } + // We assume the child nodes are in the same order as the child instances. + for (; childNode !== null; childNode = childNode.nextSibling) { + if (childNode.nodeType === 1 && childNode.getAttribute(ATTR_NAME) === String(childID) || childNode.nodeType === 8 && childNode.nodeValue === ' react-text: ' + childID + ' ' || childNode.nodeType === 8 && childNode.nodeValue === ' react-empty: ' + childID + ' ') { + precacheNode(childInst, childNode); + continue outer; + } + } + // We reached the end of the DOM children without finding an ID match. + true ? false ? invariant(false, 'Unable to find element with ID %s.', childID) : invariant(false) : void 0; + } + inst._flags |= Flags.hasCachedChildNodes; + } + + /** + * Given a DOM node, return the closest ReactDOMComponent or + * ReactDOMTextComponent instance ancestor. + */ + function getClosestInstanceFromNode(node) { + if (node[internalInstanceKey]) { + return node[internalInstanceKey]; + } + + // Walk up the tree until we find an ancestor whose instance we have cached. + var parents = []; + while (!node[internalInstanceKey]) { + parents.push(node); + if (node.parentNode) { + node = node.parentNode; + } else { + // Top of the tree. This node must not be part of a React tree (or is + // unmounted, potentially). + return null; + } + } + + var closest; + var inst; + for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) { + closest = inst; + if (parents.length) { + precacheChildNodes(inst, node); + } + } + + return closest; + } + + /** + * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent + * instance, or null if the node was not rendered by this React. + */ + function getInstanceFromNode(node) { + var inst = getClosestInstanceFromNode(node); + if (inst != null && inst._nativeNode === node) { + return inst; + } else { + return null; + } + } + + /** + * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding + * DOM node. + */ + function getNodeFromInstance(inst) { + // Without this first invariant, passing a non-DOM-component triggers the next + // invariant for a missing parent, which is super confusing. + !(inst._nativeNode !== undefined) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : invariant(false) : void 0; + + if (inst._nativeNode) { + return inst._nativeNode; + } + + // Walk up the tree until we find an ancestor whose DOM node we have cached. + var parents = []; + while (!inst._nativeNode) { + parents.push(inst); + !inst._nativeParent ? false ? invariant(false, 'React DOM tree root should always have a node reference.') : invariant(false) : void 0; + inst = inst._nativeParent; + } + + // Now parents contains each ancestor that does *not* have a cached native + // node, and `inst` is the deepest ancestor that does. + for (; parents.length; inst = parents.pop()) { + precacheChildNodes(inst, inst._nativeNode); + } + + return inst._nativeNode; + } + + var ReactDOMComponentTree = { + getClosestInstanceFromNode: getClosestInstanceFromNode, + getInstanceFromNode: getInstanceFromNode, + getNodeFromInstance: getNodeFromInstance, + precacheChildNodes: precacheChildNodes, + precacheNode: precacheNode, + uncacheNode: uncacheNode + }; + + module.exports = ReactDOMComponentTree; + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMProperty + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + function checkMask(value, bitmask) { + return (value & bitmask) === bitmask; + } + + var DOMPropertyInjection = { + /** + * Mapping from normalized, camelcased property names to a configuration that + * specifies how the associated DOM property should be accessed or rendered. + */ + MUST_USE_PROPERTY: 0x1, + HAS_SIDE_EFFECTS: 0x2, + HAS_BOOLEAN_VALUE: 0x4, + HAS_NUMERIC_VALUE: 0x8, + HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8, + HAS_OVERLOADED_BOOLEAN_VALUE: 0x20, + + /** + * Inject some specialized knowledge about the DOM. This takes a config object + * with the following properties: + * + * isCustomAttribute: function that given an attribute name will return true + * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* + * attributes where it's impossible to enumerate all of the possible + * attribute names, + * + * Properties: object mapping DOM property name to one of the + * DOMPropertyInjection constants or null. If your attribute isn't in here, + * it won't get written to the DOM. + * + * DOMAttributeNames: object mapping React attribute name to the DOM + * attribute name. Attribute names not specified use the **lowercase** + * normalized name. + * + * DOMAttributeNamespaces: object mapping React attribute name to the DOM + * attribute namespace URL. (Attribute names not specified use no namespace.) + * + * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. + * Property names not specified use the normalized name. + * + * DOMMutationMethods: Properties that require special mutation methods. If + * `value` is undefined, the mutation method should unset the property. + * + * @param {object} domPropertyConfig the config as described above. + */ + injectDOMPropertyConfig: function (domPropertyConfig) { + var Injection = DOMPropertyInjection; + var Properties = domPropertyConfig.Properties || {}; + var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; + var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; + var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; + var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; + + if (domPropertyConfig.isCustomAttribute) { + DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); + } + + for (var propName in Properties) { + !!DOMProperty.properties.hasOwnProperty(propName) ? false ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' + '\'%s\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : void 0; + + var lowerCased = propName.toLowerCase(); + var propConfig = Properties[propName]; + + var propertyInfo = { + attributeName: lowerCased, + attributeNamespace: null, + propertyName: propName, + mutationMethod: null, + + mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), + hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS), + hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), + hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), + hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), + hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) + }; + + !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? false ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : void 0; + !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? false ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : void 0; + + if (false) { + DOMProperty.getPossibleStandardName[lowerCased] = propName; + } + + if (DOMAttributeNames.hasOwnProperty(propName)) { + var attributeName = DOMAttributeNames[propName]; + propertyInfo.attributeName = attributeName; + if (false) { + DOMProperty.getPossibleStandardName[attributeName] = propName; + } + } + + if (DOMAttributeNamespaces.hasOwnProperty(propName)) { + propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; + } + + if (DOMPropertyNames.hasOwnProperty(propName)) { + propertyInfo.propertyName = DOMPropertyNames[propName]; + } + + if (DOMMutationMethods.hasOwnProperty(propName)) { + propertyInfo.mutationMethod = DOMMutationMethods[propName]; + } + + DOMProperty.properties[propName] = propertyInfo; + } + } + }; + + /* eslint-disable max-len */ + var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD'; + /* eslint-enable max-len */ + + /** + * DOMProperty exports lookup objects that can be used like functions: + * + * > DOMProperty.isValid['id'] + * true + * > DOMProperty.isValid['foobar'] + * undefined + * + * Although this may be confusing, it performs better in general. + * + * @see http://jsperf.com/key-exists + * @see http://jsperf.com/key-missing + */ + var DOMProperty = { + + ID_ATTRIBUTE_NAME: 'data-reactid', + ROOT_ATTRIBUTE_NAME: 'data-reactroot', + + ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR, + ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\uB7\\u0300-\\u036F\\u203F-\\u2040', + + /** + * Map from property "standard name" to an object with info about how to set + * the property in the DOM. Each object contains: + * + * attributeName: + * Used when rendering markup or with `*Attribute()`. + * attributeNamespace + * propertyName: + * Used on DOM node instances. (This includes properties that mutate due to + * external factors.) + * mutationMethod: + * If non-null, used instead of the property or `setAttribute()` after + * initial render. + * mustUseProperty: + * Whether the property must be accessed and mutated as an object property. + * hasSideEffects: + * Whether or not setting a value causes side effects such as triggering + * resources to be loaded or text selection changes. If true, we read from + * the DOM before updating to ensure that the value is only set if it has + * changed. + * hasBooleanValue: + * Whether the property should be removed when set to a falsey value. + * hasNumericValue: + * Whether the property must be numeric or parse as a numeric and should be + * removed when set to a falsey value. + * hasPositiveNumericValue: + * Whether the property must be positive numeric or parse as a positive + * numeric and should be removed when set to a falsey value. + * hasOverloadedBooleanValue: + * Whether the property can be used as a flag as well as with a value. + * Removed when strictly equal to false; present without a value when + * strictly equal to true; present with a value otherwise. + */ + properties: {}, + + /** + * Mapping from lowercase property names to the properly cased version, used + * to warn in the case of missing properties. Available only in __DEV__. + * @type {Object} + */ + getPossibleStandardName: false ? {} : null, + + /** + * All of the isCustomAttribute() functions that have been injected. + */ + _isCustomAttributeFunctions: [], + + /** + * Checks whether a property name is a custom attribute. + * @method + */ + isCustomAttribute: function (attributeName) { + for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { + var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; + if (isCustomAttributeFn(attributeName)) { + return true; + } + } + return false; + }, + + injection: DOMPropertyInjection + }; + + module.exports = DOMProperty; + +/***/ }, +/* 39 */ +/***/ function(module, exports) { + + /** + * Copyright 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMComponentFlags + */ + + 'use strict'; + + var ReactDOMComponentFlags = { + hasCachedChildNodes: 1 << 0 + }; + + module.exports = ReactDOMComponentFlags; + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDefaultInjection + */ + + 'use strict'; + + var BeforeInputEventPlugin = __webpack_require__(41); + var ChangeEventPlugin = __webpack_require__(55); + var DefaultEventPluginOrder = __webpack_require__(66); + var EnterLeaveEventPlugin = __webpack_require__(67); + var HTMLDOMPropertyConfig = __webpack_require__(72); + var ReactComponentBrowserEnvironment = __webpack_require__(73); + var ReactDOMComponent = __webpack_require__(87); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactDOMEmptyComponent = __webpack_require__(128); + var ReactDOMTreeTraversal = __webpack_require__(129); + var ReactDOMTextComponent = __webpack_require__(130); + var ReactDefaultBatchingStrategy = __webpack_require__(131); + var ReactEventListener = __webpack_require__(132); + var ReactInjection = __webpack_require__(135); + var ReactReconcileTransaction = __webpack_require__(136); + var SVGDOMPropertyConfig = __webpack_require__(144); + var SelectEventPlugin = __webpack_require__(145); + var SimpleEventPlugin = __webpack_require__(146); + + var alreadyInjected = false; + + function inject() { + if (alreadyInjected) { + // TODO: This is currently true because these injections are shared between + // the client and the server package. They should be built independently + // and not share any injection state. Then this problem will be solved. + return; + } + alreadyInjected = true; + + ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener); + + /** + * Inject modules for resolving DOM hierarchy and plugin ordering. + */ + ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder); + ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree); + ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal); + + /** + * Some important event plugins included by default (without having to require + * them). + */ + ReactInjection.EventPluginHub.injectEventPluginsByName({ + SimpleEventPlugin: SimpleEventPlugin, + EnterLeaveEventPlugin: EnterLeaveEventPlugin, + ChangeEventPlugin: ChangeEventPlugin, + SelectEventPlugin: SelectEventPlugin, + BeforeInputEventPlugin: BeforeInputEventPlugin + }); + + ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent); + + ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent); + + ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); + ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); + + ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) { + return new ReactDOMEmptyComponent(instantiate); + }); + + ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction); + ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy); + + ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment); + } + + module.exports = { + inject: inject + }; + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule BeforeInputEventPlugin + */ + + 'use strict'; + + var EventConstants = __webpack_require__(42); + var EventPropagators = __webpack_require__(43); + var ExecutionEnvironment = __webpack_require__(20); + var FallbackCompositionState = __webpack_require__(50); + var SyntheticCompositionEvent = __webpack_require__(52); + var SyntheticInputEvent = __webpack_require__(54); + + var keyOf = __webpack_require__(28); + + var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space + var START_KEYCODE = 229; + + var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; + + var documentMode = null; + if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { + documentMode = document.documentMode; + } + + // Webkit offers a very useful `textInput` event that can be used to + // directly represent `beforeInput`. The IE `textinput` event is not as + // useful, so we don't use it. + var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); + + // In IE9+, we have access to composition events, but the data supplied + // by the native compositionend event may be incorrect. Japanese ideographic + // spaces, for instance (\u3000) are not recorded correctly. + var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); + + /** + * Opera <= 12 includes TextEvent in window, but does not fire + * text input events. Rely on keypress instead. + */ + function isPresto() { + var opera = window.opera; + return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; + } + + var SPACEBAR_CODE = 32; + var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); + + var topLevelTypes = EventConstants.topLevelTypes; + + // Events and their corresponding property names. + var eventTypes = { + beforeInput: { + phasedRegistrationNames: { + bubbled: keyOf({ onBeforeInput: null }), + captured: keyOf({ onBeforeInputCapture: null }) + }, + dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste] + }, + compositionEnd: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionEnd: null }), + captured: keyOf({ onCompositionEndCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + }, + compositionStart: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionStart: null }), + captured: keyOf({ onCompositionStartCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + }, + compositionUpdate: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionUpdate: null }), + captured: keyOf({ onCompositionUpdateCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + } + }; + + // Track whether we've ever handled a keypress on the space key. + var hasSpaceKeypress = false; + + /** + * Return whether a native keypress event is assumed to be a command. + * This is required because Firefox fires `keypress` events for key commands + * (cut, copy, select-all, etc.) even though no character is inserted. + */ + function isKeypressCommand(nativeEvent) { + return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && + // ctrlKey && altKey is equivalent to AltGr, and is not a command. + !(nativeEvent.ctrlKey && nativeEvent.altKey); + } + + /** + * Translate native top level events into event types. + * + * @param {string} topLevelType + * @return {object} + */ + function getCompositionEventType(topLevelType) { + switch (topLevelType) { + case topLevelTypes.topCompositionStart: + return eventTypes.compositionStart; + case topLevelTypes.topCompositionEnd: + return eventTypes.compositionEnd; + case topLevelTypes.topCompositionUpdate: + return eventTypes.compositionUpdate; + } + } + + /** + * Does our fallback best-guess model think this event signifies that + * composition has begun? + * + * @param {string} topLevelType + * @param {object} nativeEvent + * @return {boolean} + */ + function isFallbackCompositionStart(topLevelType, nativeEvent) { + return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE; + } + + /** + * Does our fallback mode think that this event is the end of composition? + * + * @param {string} topLevelType + * @param {object} nativeEvent + * @return {boolean} + */ + function isFallbackCompositionEnd(topLevelType, nativeEvent) { + switch (topLevelType) { + case topLevelTypes.topKeyUp: + // Command keys insert or clear IME input. + return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; + case topLevelTypes.topKeyDown: + // Expect IME keyCode on each keydown. If we get any other + // code we must have exited earlier. + return nativeEvent.keyCode !== START_KEYCODE; + case topLevelTypes.topKeyPress: + case topLevelTypes.topMouseDown: + case topLevelTypes.topBlur: + // Events are not possible without cancelling IME. + return true; + default: + return false; + } + } + + /** + * Google Input Tools provides composition data via a CustomEvent, + * with the `data` property populated in the `detail` object. If this + * is available on the event object, use it. If not, this is a plain + * composition event and we have nothing special to extract. + * + * @param {object} nativeEvent + * @return {?string} + */ + function getDataFromCustomEvent(nativeEvent) { + var detail = nativeEvent.detail; + if (typeof detail === 'object' && 'data' in detail) { + return detail.data; + } + return null; + } + + // Track the current IME composition fallback object, if any. + var currentComposition = null; + + /** + * @return {?object} A SyntheticCompositionEvent. + */ + function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { + var eventType; + var fallbackData; + + if (canUseCompositionEvent) { + eventType = getCompositionEventType(topLevelType); + } else if (!currentComposition) { + if (isFallbackCompositionStart(topLevelType, nativeEvent)) { + eventType = eventTypes.compositionStart; + } + } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { + eventType = eventTypes.compositionEnd; + } + + if (!eventType) { + return null; + } + + if (useFallbackCompositionData) { + // The current composition is stored statically and must not be + // overwritten while composition continues. + if (!currentComposition && eventType === eventTypes.compositionStart) { + currentComposition = FallbackCompositionState.getPooled(nativeEventTarget); + } else if (eventType === eventTypes.compositionEnd) { + if (currentComposition) { + fallbackData = currentComposition.getData(); + } + } + } + + var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget); + + if (fallbackData) { + // Inject data generated from fallback path into the synthetic event. + // This matches the property of native CompositionEventInterface. + event.data = fallbackData; + } else { + var customData = getDataFromCustomEvent(nativeEvent); + if (customData !== null) { + event.data = customData; + } + } + + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; + } + + /** + * @param {string} topLevelType Record from `EventConstants`. + * @param {object} nativeEvent Native browser event. + * @return {?string} The string corresponding to this `beforeInput` event. + */ + function getNativeBeforeInputChars(topLevelType, nativeEvent) { + switch (topLevelType) { + case topLevelTypes.topCompositionEnd: + return getDataFromCustomEvent(nativeEvent); + case topLevelTypes.topKeyPress: + /** + * If native `textInput` events are available, our goal is to make + * use of them. However, there is a special case: the spacebar key. + * In Webkit, preventing default on a spacebar `textInput` event + * cancels character insertion, but it *also* causes the browser + * to fall back to its default spacebar behavior of scrolling the + * page. + * + * Tracking at: + * https://code.google.com/p/chromium/issues/detail?id=355103 + * + * To avoid this issue, use the keypress event as if no `textInput` + * event is available. + */ + var which = nativeEvent.which; + if (which !== SPACEBAR_CODE) { + return null; + } + + hasSpaceKeypress = true; + return SPACEBAR_CHAR; + + case topLevelTypes.topTextInput: + // Record the characters to be added to the DOM. + var chars = nativeEvent.data; + + // If it's a spacebar character, assume that we have already handled + // it at the keypress level and bail immediately. Android Chrome + // doesn't give us keycodes, so we need to blacklist it. + if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { + return null; + } + + return chars; + + default: + // For other native event types, do nothing. + return null; + } + } + + /** + * For browsers that do not provide the `textInput` event, extract the + * appropriate string to use for SyntheticInputEvent. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {object} nativeEvent Native browser event. + * @return {?string} The fallback string for this `beforeInput` event. + */ + function getFallbackBeforeInputChars(topLevelType, nativeEvent) { + // If we are currently composing (IME) and using a fallback to do so, + // try to extract the composed characters from the fallback object. + if (currentComposition) { + if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) { + var chars = currentComposition.getData(); + FallbackCompositionState.release(currentComposition); + currentComposition = null; + return chars; + } + return null; + } + + switch (topLevelType) { + case topLevelTypes.topPaste: + // If a paste event occurs after a keypress, throw out the input + // chars. Paste events should not lead to BeforeInput events. + return null; + case topLevelTypes.topKeyPress: + /** + * As of v27, Firefox may fire keypress events even when no character + * will be inserted. A few possibilities: + * + * - `which` is `0`. Arrow keys, Esc key, etc. + * + * - `which` is the pressed key code, but no char is available. + * Ex: 'AltGr + d` in Polish. There is no modified character for + * this key combination and no character is inserted into the + * document, but FF fires the keypress for char code `100` anyway. + * No `input` event will occur. + * + * - `which` is the pressed key code, but a command combination is + * being used. Ex: `Cmd+C`. No character is inserted, and no + * `input` event will occur. + */ + if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { + return String.fromCharCode(nativeEvent.which); + } + return null; + case topLevelTypes.topCompositionEnd: + return useFallbackCompositionData ? null : nativeEvent.data; + default: + return null; + } + } + + /** + * Extract a SyntheticInputEvent for `beforeInput`, based on either native + * `textInput` or fallback behavior. + * + * @return {?object} A SyntheticInputEvent. + */ + function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { + var chars; + + if (canUseTextInputEvent) { + chars = getNativeBeforeInputChars(topLevelType, nativeEvent); + } else { + chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); + } + + // If no characters are being inserted, no BeforeInput event should + // be fired. + if (!chars) { + return null; + } + + var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget); + + event.data = chars; + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; + } + + /** + * Create an `onBeforeInput` event to match + * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. + * + * This event plugin is based on the native `textInput` event + * available in Chrome, Safari, Opera, and IE. This event fires after + * `onKeyPress` and `onCompositionEnd`, but before `onInput`. + * + * `beforeInput` is spec'd but not implemented in any browsers, and + * the `input` event does not provide any useful information about what has + * actually been added, contrary to the spec. Thus, `textInput` is the best + * available event to identify the characters that have actually been inserted + * into the target node. + * + * This plugin is also responsible for emitting `composition` events, thus + * allowing us to share composition fallback code for both `beforeInput` and + * `composition` event types. + */ + var BeforeInputEventPlugin = { + + eventTypes: eventTypes, + + extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { + return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)]; + } + }; + + module.exports = BeforeInputEventPlugin; + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventConstants + */ + + 'use strict'; + + var keyMirror = __webpack_require__(26); + + var PropagationPhases = keyMirror({ bubbled: null, captured: null }); + + /** + * Types of raw signals from the browser caught at the top level. + */ + var topLevelTypes = keyMirror({ + topAbort: null, + topAnimationEnd: null, + topAnimationIteration: null, + topAnimationStart: null, + topBlur: null, + topCanPlay: null, + topCanPlayThrough: null, + topChange: null, + topClick: null, + topCompositionEnd: null, + topCompositionStart: null, + topCompositionUpdate: null, + topContextMenu: null, + topCopy: null, + topCut: null, + topDoubleClick: null, + topDrag: null, + topDragEnd: null, + topDragEnter: null, + topDragExit: null, + topDragLeave: null, + topDragOver: null, + topDragStart: null, + topDrop: null, + topDurationChange: null, + topEmptied: null, + topEncrypted: null, + topEnded: null, + topError: null, + topFocus: null, + topInput: null, + topInvalid: null, + topKeyDown: null, + topKeyPress: null, + topKeyUp: null, + topLoad: null, + topLoadedData: null, + topLoadedMetadata: null, + topLoadStart: null, + topMouseDown: null, + topMouseMove: null, + topMouseOut: null, + topMouseOver: null, + topMouseUp: null, + topPaste: null, + topPause: null, + topPlay: null, + topPlaying: null, + topProgress: null, + topRateChange: null, + topReset: null, + topScroll: null, + topSeeked: null, + topSeeking: null, + topSelectionChange: null, + topStalled: null, + topSubmit: null, + topSuspend: null, + topTextInput: null, + topTimeUpdate: null, + topTouchCancel: null, + topTouchEnd: null, + topTouchMove: null, + topTouchStart: null, + topTransitionEnd: null, + topVolumeChange: null, + topWaiting: null, + topWheel: null + }); + + var EventConstants = { + topLevelTypes: topLevelTypes, + PropagationPhases: PropagationPhases + }; + + module.exports = EventConstants; + +/***/ }, +/* 43 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPropagators + */ + + 'use strict'; + + var EventConstants = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); + var EventPluginUtils = __webpack_require__(46); + + var accumulateInto = __webpack_require__(48); + var forEachAccumulated = __webpack_require__(49); + var warning = __webpack_require__(10); + + var PropagationPhases = EventConstants.PropagationPhases; + var getListener = EventPluginHub.getListener; + + /** + * Some event types have a notion of different registration names for different + * "phases" of propagation. This finds listeners by a given phase. + */ + function listenerAtPhase(inst, event, propagationPhase) { + var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; + return getListener(inst, registrationName); + } + + /** + * Tags a `SyntheticEvent` with dispatched listeners. Creating this function + * here, allows us to not have to bind or create functions for each event. + * Mutating the event's members allows us to not have to create a wrapping + * "dispatch" object that pairs the event with the listener. + */ + function accumulateDirectionalDispatches(inst, upwards, event) { + if (false) { + process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0; + } + var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured; + var listener = listenerAtPhase(inst, event, phase); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); + } + } + + /** + * Collect dispatches (must be entirely collected before dispatching - see unit + * tests). Lazily allocate the array to conserve memory. We must loop through + * each event and perform the traversal for each one. We cannot perform a + * single traversal for the entire collection of events because each event may + * have a different target. + */ + function accumulateTwoPhaseDispatchesSingle(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); + } + } + + /** + * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. + */ + function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + var targetInst = event._targetInst; + var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null; + EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event); + } + } + + /** + * Accumulates without regard to direction, does not look for phased + * registration names. Same as `accumulateDirectDispatchesSingle` but without + * requiring that the `dispatchMarker` be the same as the dispatched ID. + */ + function accumulateDispatches(inst, ignoredDirection, event) { + if (event && event.dispatchConfig.registrationName) { + var registrationName = event.dispatchConfig.registrationName; + var listener = getListener(inst, registrationName); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); + } + } + } + + /** + * Accumulates dispatches on an `SyntheticEvent`, but only for the + * `dispatchMarker`. + * @param {SyntheticEvent} event + */ + function accumulateDirectDispatchesSingle(event) { + if (event && event.dispatchConfig.registrationName) { + accumulateDispatches(event._targetInst, null, event); + } + } + + function accumulateTwoPhaseDispatches(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); + } + + function accumulateTwoPhaseDispatchesSkipTarget(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); + } + + function accumulateEnterLeaveDispatches(leave, enter, from, to) { + EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter); + } + + function accumulateDirectDispatches(events) { + forEachAccumulated(events, accumulateDirectDispatchesSingle); + } + + /** + * A small set of propagation patterns, each of which will accept a small amount + * of information, and generate a set of "dispatch ready event objects" - which + * are sets of events that have already been annotated with a set of dispatched + * listener functions/ids. The API is designed this way to discourage these + * propagation strategies from actually executing the dispatches, since we + * always want to collect the entire set of dispatches before executing event a + * single one. + * + * @constructor EventPropagators + */ + var EventPropagators = { + accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, + accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, + accumulateDirectDispatches: accumulateDirectDispatches, + accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches + }; + + module.exports = EventPropagators; + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginHub + */ + + 'use strict'; + + var EventPluginRegistry = __webpack_require__(45); + var EventPluginUtils = __webpack_require__(46); + var ReactErrorUtils = __webpack_require__(47); + + var accumulateInto = __webpack_require__(48); + var forEachAccumulated = __webpack_require__(49); + var invariant = __webpack_require__(7); + + /** + * Internal store for event listeners + */ + var listenerBank = {}; + + /** + * Internal queue of events that have accumulated their dispatches and are + * waiting to have their dispatches executed. + */ + var eventQueue = null; + + /** + * Dispatches an event and releases it back into the pool, unless persistent. + * + * @param {?object} event Synthetic event to be dispatched. + * @param {boolean} simulated If the event is simulated (changes exn behavior) + * @private + */ + var executeDispatchesAndRelease = function (event, simulated) { + if (event) { + EventPluginUtils.executeDispatchesInOrder(event, simulated); + + if (!event.isPersistent()) { + event.constructor.release(event); + } + } + }; + var executeDispatchesAndReleaseSimulated = function (e) { + return executeDispatchesAndRelease(e, true); + }; + var executeDispatchesAndReleaseTopLevel = function (e) { + return executeDispatchesAndRelease(e, false); + }; + + /** + * This is a unified interface for event plugins to be installed and configured. + * + * Event plugins can implement the following properties: + * + * `extractEvents` {function(string, DOMEventTarget, string, object): *} + * Required. When a top-level event is fired, this method is expected to + * extract synthetic events that will in turn be queued and dispatched. + * + * `eventTypes` {object} + * Optional, plugins that fire events must publish a mapping of registration + * names that are used to register listeners. Values of this mapping must + * be objects that contain `registrationName` or `phasedRegistrationNames`. + * + * `executeDispatch` {function(object, function, string)} + * Optional, allows plugins to override how an event gets dispatched. By + * default, the listener is simply invoked. + * + * Each plugin that is injected into `EventsPluginHub` is immediately operable. + * + * @public + */ + var EventPluginHub = { + + /** + * Methods for injecting dependencies. + */ + injection: { + + /** + * @param {array} InjectedEventPluginOrder + * @public + */ + injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, + + /** + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + */ + injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName + + }, + + /** + * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent. + * + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @param {function} listener The callback to store. + */ + putListener: function (inst, registrationName, listener) { + !(typeof listener === 'function') ? false ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : void 0; + + var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); + bankForRegistrationName[inst._rootNodeID] = listener; + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.didPutListener) { + PluginModule.didPutListener(inst, registrationName, listener); + } + }, + + /** + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @return {?function} The stored callback. + */ + getListener: function (inst, registrationName) { + var bankForRegistrationName = listenerBank[registrationName]; + return bankForRegistrationName && bankForRegistrationName[inst._rootNodeID]; + }, + + /** + * Deletes a listener from the registration bank. + * + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + */ + deleteListener: function (inst, registrationName) { + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(inst, registrationName); + } + + var bankForRegistrationName = listenerBank[registrationName]; + // TODO: This should never be null -- when is it? + if (bankForRegistrationName) { + delete bankForRegistrationName[inst._rootNodeID]; + } + }, + + /** + * Deletes all listeners for the DOM element with the supplied ID. + * + * @param {object} inst The instance, which is the source of events. + */ + deleteAllListeners: function (inst) { + for (var registrationName in listenerBank) { + if (!listenerBank[registrationName][inst._rootNodeID]) { + continue; + } + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(inst, registrationName); + } + + delete listenerBank[registrationName][inst._rootNodeID]; + } + }, + + /** + * Allows registered plugins an opportunity to extract events from top-level + * native browser events. + * + * @return {*} An accumulation of synthetic events. + * @internal + */ + extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { + var events; + var plugins = EventPluginRegistry.plugins; + for (var i = 0; i < plugins.length; i++) { + // Not every plugin in the ordering may be loaded at runtime. + var possiblePlugin = plugins[i]; + if (possiblePlugin) { + var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); + if (extractedEvents) { + events = accumulateInto(events, extractedEvents); + } + } + } + return events; + }, + + /** + * Enqueues a synthetic event that should be dispatched when + * `processEventQueue` is invoked. + * + * @param {*} events An accumulation of synthetic events. + * @internal + */ + enqueueEvents: function (events) { + if (events) { + eventQueue = accumulateInto(eventQueue, events); + } + }, + + /** + * Dispatches all synthetic events on the event queue. + * + * @internal + */ + processEventQueue: function (simulated) { + // Set `eventQueue` to null before processing it so that we can tell if more + // events get enqueued while processing. + var processingEventQueue = eventQueue; + eventQueue = null; + if (simulated) { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); + } else { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); + } + !!eventQueue ? false ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : void 0; + // This would be a good time to rethrow if any of the event handlers threw. + ReactErrorUtils.rethrowCaughtError(); + }, + + /** + * These are needed for tests only. Do not use! + */ + __purge: function () { + listenerBank = {}; + }, + + __getListenerBank: function () { + return listenerBank; + } + + }; + + module.exports = EventPluginHub; + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginRegistry + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * Injectable ordering of event plugins. + */ + var EventPluginOrder = null; + + /** + * Injectable mapping from names to event plugin modules. + */ + var namesToPlugins = {}; + + /** + * Recomputes the plugin list using the injected plugins and plugin ordering. + * + * @private + */ + function recomputePluginOrdering() { + if (!EventPluginOrder) { + // Wait until an `EventPluginOrder` is injected. + return; + } + for (var pluginName in namesToPlugins) { + var PluginModule = namesToPlugins[pluginName]; + var pluginIndex = EventPluginOrder.indexOf(pluginName); + !(pluginIndex > -1) ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : void 0; + if (EventPluginRegistry.plugins[pluginIndex]) { + continue; + } + !PluginModule.extractEvents ? false ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : void 0; + EventPluginRegistry.plugins[pluginIndex] = PluginModule; + var publishedEvents = PluginModule.eventTypes; + for (var eventName in publishedEvents) { + !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? false ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : void 0; + } + } + } + + /** + * Publishes an event so that it can be dispatched by the supplied plugin. + * + * @param {object} dispatchConfig Dispatch configuration for the event. + * @param {object} PluginModule Plugin publishing the event. + * @return {boolean} True if the event was successfully published. + * @private + */ + function publishEventForPlugin(dispatchConfig, PluginModule, eventName) { + !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : void 0; + EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; + + var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; + if (phasedRegistrationNames) { + for (var phaseName in phasedRegistrationNames) { + if (phasedRegistrationNames.hasOwnProperty(phaseName)) { + var phasedRegistrationName = phasedRegistrationNames[phaseName]; + publishRegistrationName(phasedRegistrationName, PluginModule, eventName); + } + } + return true; + } else if (dispatchConfig.registrationName) { + publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName); + return true; + } + return false; + } + + /** + * Publishes a registration name that is used to identify dispatched events and + * can be used with `EventPluginHub.putListener` to register listeners. + * + * @param {string} registrationName Registration name to add. + * @param {object} PluginModule Plugin publishing the event. + * @private + */ + function publishRegistrationName(registrationName, PluginModule, eventName) { + !!EventPluginRegistry.registrationNameModules[registrationName] ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : void 0; + EventPluginRegistry.registrationNameModules[registrationName] = PluginModule; + EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies; + + if (false) { + var lowerCasedName = registrationName.toLowerCase(); + EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; + } + } + + /** + * Registers plugins so that they can extract and dispatch events. + * + * @see {EventPluginHub} + */ + var EventPluginRegistry = { + + /** + * Ordered list of injected plugins. + */ + plugins: [], + + /** + * Mapping from event name to dispatch config + */ + eventNameDispatchConfigs: {}, + + /** + * Mapping from registration name to plugin module + */ + registrationNameModules: {}, + + /** + * Mapping from registration name to event name + */ + registrationNameDependencies: {}, + + /** + * Mapping from lowercase registration names to the properly cased version, + * used to warn in the case of missing event handlers. Available + * only in __DEV__. + * @type {Object} + */ + possibleRegistrationNames: false ? {} : null, + + /** + * Injects an ordering of plugins (by plugin name). This allows the ordering + * to be decoupled from injection of the actual plugins so that ordering is + * always deterministic regardless of packaging, on-the-fly injection, etc. + * + * @param {array} InjectedEventPluginOrder + * @internal + * @see {EventPluginHub.injection.injectEventPluginOrder} + */ + injectEventPluginOrder: function (InjectedEventPluginOrder) { + !!EventPluginOrder ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : void 0; + // Clone the ordering so it cannot be dynamically mutated. + EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder); + recomputePluginOrdering(); + }, + + /** + * Injects plugins to be used by `EventPluginHub`. The plugin names must be + * in the ordering injected by `injectEventPluginOrder`. + * + * Plugins can be injected as part of page initialization or on-the-fly. + * + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + * @internal + * @see {EventPluginHub.injection.injectEventPluginsByName} + */ + injectEventPluginsByName: function (injectedNamesToPlugins) { + var isOrderingDirty = false; + for (var pluginName in injectedNamesToPlugins) { + if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { + continue; + } + var PluginModule = injectedNamesToPlugins[pluginName]; + if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) { + !!namesToPlugins[pluginName] ? false ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : void 0; + namesToPlugins[pluginName] = PluginModule; + isOrderingDirty = true; + } + } + if (isOrderingDirty) { + recomputePluginOrdering(); + } + }, + + /** + * Looks up the plugin for the supplied event. + * + * @param {object} event A synthetic event. + * @return {?object} The plugin that created the supplied event. + * @internal + */ + getPluginModuleForEvent: function (event) { + var dispatchConfig = event.dispatchConfig; + if (dispatchConfig.registrationName) { + return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; + } + for (var phase in dispatchConfig.phasedRegistrationNames) { + if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) { + continue; + } + var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]]; + if (PluginModule) { + return PluginModule; + } + } + return null; + }, + + /** + * Exposed for unit testing. + * @private + */ + _resetEventPlugins: function () { + EventPluginOrder = null; + for (var pluginName in namesToPlugins) { + if (namesToPlugins.hasOwnProperty(pluginName)) { + delete namesToPlugins[pluginName]; + } + } + EventPluginRegistry.plugins.length = 0; + + var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; + for (var eventName in eventNameDispatchConfigs) { + if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { + delete eventNameDispatchConfigs[eventName]; + } + } + + var registrationNameModules = EventPluginRegistry.registrationNameModules; + for (var registrationName in registrationNameModules) { + if (registrationNameModules.hasOwnProperty(registrationName)) { + delete registrationNameModules[registrationName]; + } + } + + if (false) { + var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; + for (var lowerCasedName in possibleRegistrationNames) { + if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { + delete possibleRegistrationNames[lowerCasedName]; + } + } + } + } + + }; + + module.exports = EventPluginRegistry; + +/***/ }, +/* 46 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginUtils + */ + + 'use strict'; + + var EventConstants = __webpack_require__(42); + var ReactErrorUtils = __webpack_require__(47); + + var invariant = __webpack_require__(7); + var warning = __webpack_require__(10); + + /** + * Injected dependencies: + */ + + /** + * - `ComponentTree`: [required] Module that can convert between React instances + * and actual node references. + */ + var ComponentTree; + var TreeTraversal; + var injection = { + injectComponentTree: function (Injected) { + ComponentTree = Injected; + if (false) { + process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; + } + }, + injectTreeTraversal: function (Injected) { + TreeTraversal = Injected; + if (false) { + process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0; + } + } + }; + + var topLevelTypes = EventConstants.topLevelTypes; + + function isEndish(topLevelType) { + return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel; + } + + function isMoveish(topLevelType) { + return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove; + } + function isStartish(topLevelType) { + return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart; + } + + var validateEventDispatches; + if (false) { + validateEventDispatches = function (event) { + var dispatchListeners = event._dispatchListeners; + var dispatchInstances = event._dispatchInstances; + + var listenersIsArr = Array.isArray(dispatchListeners); + var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; + + var instancesIsArr = Array.isArray(dispatchInstances); + var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; + + process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; + }; + } + + /** + * Dispatch the event to the listener. + * @param {SyntheticEvent} event SyntheticEvent to handle + * @param {boolean} simulated If the event is simulated (changes exn behavior) + * @param {function} listener Application-level callback + * @param {*} inst Internal component instance + */ + function executeDispatch(event, simulated, listener, inst) { + var type = event.type || 'unknown-event'; + event.currentTarget = EventPluginUtils.getNodeFromInstance(inst); + if (simulated) { + ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event); + } else { + ReactErrorUtils.invokeGuardedCallback(type, listener, event); + } + event.currentTarget = null; + } + + /** + * Standard/simple iteration through an event's collected dispatches. + */ + function executeDispatchesInOrder(event, simulated) { + var dispatchListeners = event._dispatchListeners; + var dispatchInstances = event._dispatchInstances; + if (false) { + validateEventDispatches(event); + } + if (Array.isArray(dispatchListeners)) { + for (var i = 0; i < dispatchListeners.length; i++) { + if (event.isPropagationStopped()) { + break; + } + // Listeners and Instances are two parallel arrays that are always in sync. + executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]); + } + } else if (dispatchListeners) { + executeDispatch(event, simulated, dispatchListeners, dispatchInstances); + } + event._dispatchListeners = null; + event._dispatchInstances = null; + } + + /** + * Standard/simple iteration through an event's collected dispatches, but stops + * at the first dispatch execution returning true, and returns that id. + * + * @return {?string} id of the first dispatch execution who's listener returns + * true, or null if no listener returned true. + */ + function executeDispatchesInOrderStopAtTrueImpl(event) { + var dispatchListeners = event._dispatchListeners; + var dispatchInstances = event._dispatchInstances; + if (false) { + validateEventDispatches(event); + } + if (Array.isArray(dispatchListeners)) { + for (var i = 0; i < dispatchListeners.length; i++) { + if (event.isPropagationStopped()) { + break; + } + // Listeners and Instances are two parallel arrays that are always in sync. + if (dispatchListeners[i](event, dispatchInstances[i])) { + return dispatchInstances[i]; + } + } + } else if (dispatchListeners) { + if (dispatchListeners(event, dispatchInstances)) { + return dispatchInstances; + } + } + return null; + } + + /** + * @see executeDispatchesInOrderStopAtTrueImpl + */ + function executeDispatchesInOrderStopAtTrue(event) { + var ret = executeDispatchesInOrderStopAtTrueImpl(event); + event._dispatchInstances = null; + event._dispatchListeners = null; + return ret; + } + + /** + * Execution of a "direct" dispatch - there must be at most one dispatch + * accumulated on the event or it is considered an error. It doesn't really make + * sense for an event with multiple dispatches (bubbled) to keep track of the + * return values at each dispatch execution, but it does tend to make sense when + * dealing with "direct" dispatches. + * + * @return {*} The return value of executing the single dispatch. + */ + function executeDirectDispatch(event) { + if (false) { + validateEventDispatches(event); + } + var dispatchListener = event._dispatchListeners; + var dispatchInstance = event._dispatchInstances; + !!Array.isArray(dispatchListener) ? false ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : void 0; + event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; + var res = dispatchListener ? dispatchListener(event) : null; + event.currentTarget = null; + event._dispatchListeners = null; + event._dispatchInstances = null; + return res; + } + + /** + * @param {SyntheticEvent} event + * @return {boolean} True iff number of dispatches accumulated is greater than 0. + */ + function hasDispatches(event) { + return !!event._dispatchListeners; + } + + /** + * General utilities that are useful in creating custom Event Plugins. + */ + var EventPluginUtils = { + isEndish: isEndish, + isMoveish: isMoveish, + isStartish: isStartish, + + executeDirectDispatch: executeDirectDispatch, + executeDispatchesInOrder: executeDispatchesInOrder, + executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, + hasDispatches: hasDispatches, + + getInstanceFromNode: function (node) { + return ComponentTree.getInstanceFromNode(node); + }, + getNodeFromInstance: function (node) { + return ComponentTree.getNodeFromInstance(node); + }, + isAncestor: function (a, b) { + return TreeTraversal.isAncestor(a, b); + }, + getLowestCommonAncestor: function (a, b) { + return TreeTraversal.getLowestCommonAncestor(a, b); + }, + getParentInstance: function (inst) { + return TreeTraversal.getParentInstance(inst); + }, + traverseTwoPhase: function (target, fn, arg) { + return TreeTraversal.traverseTwoPhase(target, fn, arg); + }, + traverseEnterLeave: function (from, to, fn, argFrom, argTo) { + return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo); + }, + + injection: injection + }; + + module.exports = EventPluginUtils; + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactErrorUtils + */ + + 'use strict'; + + var caughtError = null; + + /** + * Call a function while guarding against errors that happens within it. + * + * @param {?String} name of the guard to use for logging or debugging + * @param {Function} func The function to invoke + * @param {*} a First argument + * @param {*} b Second argument + */ + function invokeGuardedCallback(name, func, a, b) { + try { + return func(a, b); + } catch (x) { + if (caughtError === null) { + caughtError = x; + } + return undefined; + } + } + + var ReactErrorUtils = { + invokeGuardedCallback: invokeGuardedCallback, + + /** + * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event + * handler are sure to be rethrown by rethrowCaughtError. + */ + invokeGuardedCallbackWithCatch: invokeGuardedCallback, + + /** + * During execution of guarded functions we will capture the first error which + * we will rethrow to be handled by the top level error handler. + */ + rethrowCaughtError: function () { + if (caughtError) { + var error = caughtError; + caughtError = null; + throw error; + } + } + }; + + if (false) { + /** + * To help development we can get better devtools integration by simulating a + * real browser event. + */ + if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { + var fakeNode = document.createElement('react'); + ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) { + var boundFunc = func.bind(null, a, b); + var evtType = 'react-' + name; + fakeNode.addEventListener(evtType, boundFunc, false); + var evt = document.createEvent('Event'); + evt.initEvent(evtType, false, false); + fakeNode.dispatchEvent(evt); + fakeNode.removeEventListener(evtType, boundFunc, false); + }; + } + } + + module.exports = ReactErrorUtils; + +/***/ }, +/* 48 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule accumulateInto + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * + * Accumulates items that must not be null or undefined into the first one. This + * is used to conserve memory by avoiding array allocations, and thus sacrifices + * API cleanness. Since `current` can be null before being passed in and not + * null after this function, make sure to assign it back to `current`: + * + * `a = accumulateInto(a, b);` + * + * This API should be sparingly used. Try `accumulate` for something cleaner. + * + * @return {*|array<*>} An accumulation of items. + */ + + function accumulateInto(current, next) { + !(next != null) ? false ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : void 0; + if (current == null) { + return next; + } + + // Both are not empty. Warning: Never call x.concat(y) when you are not + // certain that x is an Array (x could be a string with concat method). + var currentIsArray = Array.isArray(current); + var nextIsArray = Array.isArray(next); + + if (currentIsArray && nextIsArray) { + current.push.apply(current, next); + return current; + } + + if (currentIsArray) { + current.push(next); + return current; + } + + if (nextIsArray) { + // A bit too dangerous to mutate `next`. + return [current].concat(next); + } + + return [current, next]; + } + + module.exports = accumulateInto; + +/***/ }, +/* 49 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule forEachAccumulated + */ + + 'use strict'; + + /** + * @param {array} arr an "accumulation" of items which is either an Array or + * a single item. Useful when paired with the `accumulate` module. This is a + * simple utility that allows us to reason about a collection of items, but + * handling the case when there is exactly one item (and we do not need to + * allocate an array). + */ + + var forEachAccumulated = function (arr, cb, scope) { + if (Array.isArray(arr)) { + arr.forEach(cb, scope); + } else if (arr) { + cb.call(scope, arr); + } + }; + + module.exports = forEachAccumulated; + +/***/ }, +/* 50 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule FallbackCompositionState + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var PooledClass = __webpack_require__(6); + + var getTextContentAccessor = __webpack_require__(51); + + /** + * This helper class stores information about text content of a target node, + * allowing comparison of content before and after a given event. + * + * Identify the node where selection currently begins, then observe + * both its text content and its current position in the DOM. Since the + * browser may natively replace the target node during composition, we can + * use its position to find its replacement. + * + * @param {DOMEventTarget} root + */ + function FallbackCompositionState(root) { + this._root = root; + this._startText = this.getText(); + this._fallbackText = null; + } + + _assign(FallbackCompositionState.prototype, { + destructor: function () { + this._root = null; + this._startText = null; + this._fallbackText = null; + }, + + /** + * Get current text of input. + * + * @return {string} + */ + getText: function () { + if ('value' in this._root) { + return this._root.value; + } + return this._root[getTextContentAccessor()]; + }, + + /** + * Determine the differing substring between the initially stored + * text content and the current content. + * + * @return {string} + */ + getData: function () { + if (this._fallbackText) { + return this._fallbackText; + } + + var start; + var startValue = this._startText; + var startLength = startValue.length; + var end; + var endValue = this.getText(); + var endLength = endValue.length; + + for (start = 0; start < startLength; start++) { + if (startValue[start] !== endValue[start]) { + break; + } + } + + var minEnd = startLength - start; + for (end = 1; end <= minEnd; end++) { + if (startValue[startLength - end] !== endValue[endLength - end]) { + break; + } + } + + var sliceTail = end > 1 ? 1 - end : undefined; + this._fallbackText = endValue.slice(start, sliceTail); + return this._fallbackText; + } + }); + + PooledClass.addPoolingTo(FallbackCompositionState); + + module.exports = FallbackCompositionState; + +/***/ }, +/* 51 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getTextContentAccessor + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + + var contentKey = null; + + /** + * Gets the key used to access text content on a DOM node. + * + * @return {?string} Key used to access text content. + * @internal + */ + function getTextContentAccessor() { + if (!contentKey && ExecutionEnvironment.canUseDOM) { + // Prefer textContent to innerText because many browsers support both but + // SVG elements don't support innerText even when
does. + contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; + } + return contentKey; + } + + module.exports = getTextContentAccessor; + +/***/ }, +/* 52 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticCompositionEvent + */ + + 'use strict'; + + var SyntheticEvent = __webpack_require__(53); + + /** + * @interface Event + * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents + */ + var CompositionEventInterface = { + data: null + }; + + /** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ + function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); + } + + SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); + + module.exports = SyntheticCompositionEvent; + +/***/ }, +/* 53 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticEvent + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var PooledClass = __webpack_require__(6); + + var emptyFunction = __webpack_require__(11); + var warning = __webpack_require__(10); + + var didWarnForAddedNewProperty = false; + var isProxySupported = typeof Proxy === 'function'; + + var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances']; + + /** + * @interface Event + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ + var EventInterface = { + type: null, + target: null, + // currentTarget is set when dispatching; no use in copying it here + currentTarget: emptyFunction.thatReturnsNull, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function (event) { + return event.timeStamp || Date.now(); + }, + defaultPrevented: null, + isTrusted: null + }; + + /** + * Synthetic events are dispatched by event plugins, typically in response to a + * top-level event delegation handler. + * + * These systems should generally use pooling to reduce the frequency of garbage + * collection. The system should check `isPersistent` to determine whether the + * event should be released into the pool after being dispatched. Users that + * need a persisted event should invoke `persist`. + * + * Synthetic events (and subclasses) implement the DOM Level 3 Events API by + * normalizing browser quirks. Subclasses do not necessarily have to implement a + * DOM interface; custom application-specific events can also subclass this. + * + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {*} targetInst Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @param {DOMEventTarget} nativeEventTarget Target node. + */ + function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { + if (false) { + // these have a getter/setter for warnings + delete this.nativeEvent; + delete this.preventDefault; + delete this.stopPropagation; + } + + this.dispatchConfig = dispatchConfig; + this._targetInst = targetInst; + this.nativeEvent = nativeEvent; + + var Interface = this.constructor.Interface; + for (var propName in Interface) { + if (!Interface.hasOwnProperty(propName)) { + continue; + } + if (false) { + delete this[propName]; // this has a getter/setter for warnings + } + var normalize = Interface[propName]; + if (normalize) { + this[propName] = normalize(nativeEvent); + } else { + if (propName === 'target') { + this.target = nativeEventTarget; + } else { + this[propName] = nativeEvent[propName]; + } + } + } + + var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; + if (defaultPrevented) { + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + } else { + this.isDefaultPrevented = emptyFunction.thatReturnsFalse; + } + this.isPropagationStopped = emptyFunction.thatReturnsFalse; + return this; + } + + _assign(SyntheticEvent.prototype, { + + preventDefault: function () { + this.defaultPrevented = true; + var event = this.nativeEvent; + if (!event) { + return; + } + + if (event.preventDefault) { + event.preventDefault(); + } else { + event.returnValue = false; + } + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + }, + + stopPropagation: function () { + var event = this.nativeEvent; + if (!event) { + return; + } + + if (event.stopPropagation) { + event.stopPropagation(); + } else { + event.cancelBubble = true; + } + this.isPropagationStopped = emptyFunction.thatReturnsTrue; + }, + + /** + * We release all dispatched `SyntheticEvent`s after each event loop, adding + * them back into the pool. This allows a way to hold onto a reference that + * won't be added back into the pool. + */ + persist: function () { + this.isPersistent = emptyFunction.thatReturnsTrue; + }, + + /** + * Checks if this event should be released back into the pool. + * + * @return {boolean} True if this should not be released, false otherwise. + */ + isPersistent: emptyFunction.thatReturnsFalse, + + /** + * `PooledClass` looks for `destructor` on each instance it releases. + */ + destructor: function () { + var Interface = this.constructor.Interface; + for (var propName in Interface) { + if (false) { + Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); + } else { + this[propName] = null; + } + } + for (var i = 0; i < shouldBeReleasedProperties.length; i++) { + this[shouldBeReleasedProperties[i]] = null; + } + if (false) { + var noop = require('fbjs/lib/emptyFunction'); + Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); + Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', noop)); + Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', noop)); + } + } + + }); + + SyntheticEvent.Interface = EventInterface; + + if (false) { + if (isProxySupported) { + /*eslint-disable no-func-assign */ + SyntheticEvent = new Proxy(SyntheticEvent, { + construct: function (target, args) { + return this.apply(target, Object.create(target.prototype), args); + }, + apply: function (constructor, that, args) { + return new Proxy(constructor.apply(that, args), { + set: function (target, prop, value) { + if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { + process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; + didWarnForAddedNewProperty = true; + } + target[prop] = value; + return true; + } + }); + } + }); + /*eslint-enable no-func-assign */ + } + } + /** + * Helper to reduce boilerplate when creating subclasses. + * + * @param {function} Class + * @param {?object} Interface + */ + SyntheticEvent.augmentClass = function (Class, Interface) { + var Super = this; + + var E = function () {}; + E.prototype = Super.prototype; + var prototype = new E(); + + _assign(prototype, Class.prototype); + Class.prototype = prototype; + Class.prototype.constructor = Class; + + Class.Interface = _assign({}, Super.Interface, Interface); + Class.augmentClass = Super.augmentClass; + + PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); + }; + + PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); + + module.exports = SyntheticEvent; + + /** + * Helper to nullify syntheticEvent instance properties when destructing + * + * @param {object} SyntheticEvent + * @param {String} propName + * @return {object} defineProperty object + */ + function getPooledWarningPropertyDefinition(propName, getVal) { + var isFunction = typeof getVal === 'function'; + return { + configurable: true, + set: set, + get: get + }; + + function set(val) { + var action = isFunction ? 'setting the method' : 'setting the property'; + warn(action, 'This is effectively a no-op'); + return val; + } + + function get() { + var action = isFunction ? 'accessing the method' : 'accessing the property'; + var result = isFunction ? 'This is a no-op function' : 'This is set to null'; + warn(action, result); + return getVal; + } + + function warn(action, result) { + var warningCondition = false; + false ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; + } + } + +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticInputEvent + */ + + 'use strict'; + + var SyntheticEvent = __webpack_require__(53); + + /** + * @interface Event + * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 + * /#events-inputevents + */ + var InputEventInterface = { + data: null + }; + + /** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ + function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); + } + + SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); + + module.exports = SyntheticInputEvent; + +/***/ }, +/* 55 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ChangeEventPlugin + */ + + 'use strict'; + + var EventConstants = __webpack_require__(42); + var EventPluginHub = __webpack_require__(44); + var EventPropagators = __webpack_require__(43); + var ExecutionEnvironment = __webpack_require__(20); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactUpdates = __webpack_require__(56); + var SyntheticEvent = __webpack_require__(53); + + var getEventTarget = __webpack_require__(63); + var isEventSupported = __webpack_require__(64); + var isTextInputElement = __webpack_require__(65); + var keyOf = __webpack_require__(28); + + var topLevelTypes = EventConstants.topLevelTypes; + + var eventTypes = { + change: { + phasedRegistrationNames: { + bubbled: keyOf({ onChange: null }), + captured: keyOf({ onChangeCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange] + } + }; + + /** + * For IE shims + */ + var activeElement = null; + var activeElementInst = null; + var activeElementValue = null; + var activeElementValueProp = null; + + /** + * SECTION: handle `change` event + */ + function shouldUseChangeEvent(elem) { + var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; + } + + var doesChangeEventBubble = false; + if (ExecutionEnvironment.canUseDOM) { + // See `handleChange` comment below + doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8); + } + + function manualDispatchChangeEvent(nativeEvent) { + var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); + EventPropagators.accumulateTwoPhaseDispatches(event); + + // If change and propertychange bubbled, we'd just bind to it like all the + // other events and have it go through ReactBrowserEventEmitter. Since it + // doesn't, we manually listen for the events and so we have to enqueue and + // process the abstract event manually. + // + // Batching is necessary here in order to ensure that all event handlers run + // before the next rerender (including event handlers attached to ancestor + // elements instead of directly on the input). Without this, controlled + // components don't work properly in conjunction with event bubbling because + // the component is rerendered and the value reverted before all the event + // handlers can run. See https://github.com/facebook/react/issues/708. + ReactUpdates.batchedUpdates(runEventInBatch, event); + } + + function runEventInBatch(event) { + EventPluginHub.enqueueEvents(event); + EventPluginHub.processEventQueue(false); + } + + function startWatchingForChangeEventIE8(target, targetInst) { + activeElement = target; + activeElementInst = targetInst; + activeElement.attachEvent('onchange', manualDispatchChangeEvent); + } + + function stopWatchingForChangeEventIE8() { + if (!activeElement) { + return; + } + activeElement.detachEvent('onchange', manualDispatchChangeEvent); + activeElement = null; + activeElementInst = null; + } + + function getTargetInstForChangeEvent(topLevelType, targetInst) { + if (topLevelType === topLevelTypes.topChange) { + return targetInst; + } + } + function handleEventsForChangeEventIE8(topLevelType, target, targetInst) { + if (topLevelType === topLevelTypes.topFocus) { + // stopWatching() should be a noop here but we call it just in case we + // missed a blur event somehow. + stopWatchingForChangeEventIE8(); + startWatchingForChangeEventIE8(target, targetInst); + } else if (topLevelType === topLevelTypes.topBlur) { + stopWatchingForChangeEventIE8(); + } + } + + /** + * SECTION: handle `input` event + */ + var isInputEventSupported = false; + if (ExecutionEnvironment.canUseDOM) { + // IE9 claims to support the input event but fails to trigger it when + // deleting text, so we ignore its input events. + // IE10+ fire input events to often, such when a placeholder + // changes or when an input with a placeholder is focused. + isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 11); + } + + /** + * (For IE <=11) Replacement getter/setter for the `value` property that gets + * set on the active element. + */ + var newValueProp = { + get: function () { + return activeElementValueProp.get.call(this); + }, + set: function (val) { + // Cast to a string so we can do equality checks. + activeElementValue = '' + val; + activeElementValueProp.set.call(this, val); + } + }; + + /** + * (For IE <=11) Starts tracking propertychange events on the passed-in element + * and override the value property so that we can distinguish user events from + * value changes in JS. + */ + function startWatchingForValueChange(target, targetInst) { + activeElement = target; + activeElementInst = targetInst; + activeElementValue = target.value; + activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value'); + + // Not guarded in a canDefineProperty check: IE8 supports defineProperty only + // on DOM elements + Object.defineProperty(activeElement, 'value', newValueProp); + if (activeElement.attachEvent) { + activeElement.attachEvent('onpropertychange', handlePropertyChange); + } else { + activeElement.addEventListener('propertychange', handlePropertyChange, false); + } + } + + /** + * (For IE <=11) Removes the event listeners from the currently-tracked element, + * if any exists. + */ + function stopWatchingForValueChange() { + if (!activeElement) { + return; + } + + // delete restores the original property definition + delete activeElement.value; + + if (activeElement.detachEvent) { + activeElement.detachEvent('onpropertychange', handlePropertyChange); + } else { + activeElement.removeEventListener('propertychange', handlePropertyChange, false); + } + + activeElement = null; + activeElementInst = null; + activeElementValue = null; + activeElementValueProp = null; + } + + /** + * (For IE <=11) Handles a propertychange event, sending a `change` event if + * the value of the active element has changed. + */ + function handlePropertyChange(nativeEvent) { + if (nativeEvent.propertyName !== 'value') { + return; + } + var value = nativeEvent.srcElement.value; + if (value === activeElementValue) { + return; + } + activeElementValue = value; + + manualDispatchChangeEvent(nativeEvent); + } + + /** + * If a `change` event should be fired, returns the target's ID. + */ + function getTargetInstForInputEvent(topLevelType, targetInst) { + if (topLevelType === topLevelTypes.topInput) { + // In modern browsers (i.e., not IE8 or IE9), the input event is exactly + // what we want so fall through here and trigger an abstract event + return targetInst; + } + } + + function handleEventsForInputEventIE(topLevelType, target, targetInst) { + if (topLevelType === topLevelTypes.topFocus) { + // In IE8, we can capture almost all .value changes by adding a + // propertychange handler and looking for events with propertyName + // equal to 'value' + // In IE9-11, propertychange fires for most input events but is buggy and + // doesn't fire when text is deleted, but conveniently, selectionchange + // appears to fire in all of the remaining cases so we catch those and + // forward the event if the value has changed + // In either case, we don't want to call the event handler if the value + // is changed from JS so we redefine a setter for `.value` that updates + // our activeElementValue variable, allowing us to ignore those changes + // + // stopWatching() should be a noop here but we call it just in case we + // missed a blur event somehow. + stopWatchingForValueChange(); + startWatchingForValueChange(target, targetInst); + } else if (topLevelType === topLevelTypes.topBlur) { + stopWatchingForValueChange(); + } + } + + // For IE8 and IE9. + function getTargetInstForInputEventIE(topLevelType, targetInst) { + if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) { + // On the selectionchange event, the target is just document which isn't + // helpful for us so just check activeElement instead. + // + // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire + // propertychange on the first input event after setting `value` from a + // script and fires only keydown, keypress, keyup. Catching keyup usually + // gets it and catching keydown lets us fire an event for the first + // keystroke if user does a key repeat (it'll be a little delayed: right + // before the second keystroke). Other input methods (e.g., paste) seem to + // fire selectionchange normally. + if (activeElement && activeElement.value !== activeElementValue) { + activeElementValue = activeElement.value; + return activeElementInst; + } + } + } + + /** + * SECTION: handle `click` event + */ + function shouldUseClickEvent(elem) { + // Use the `click` event to detect changes to checkbox and radio inputs. + // This approach works across all browsers, whereas `change` does not fire + // until `blur` in IE8. + return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); + } + + function getTargetInstForClickEvent(topLevelType, targetInst) { + if (topLevelType === topLevelTypes.topClick) { + return targetInst; + } + } + + /** + * This plugin creates an `onChange` event that normalizes change events + * across form elements. This event fires at a time when it's possible to + * change the element's value without seeing a flicker. + * + * Supported elements are: + * - input (see `isTextInputElement`) + * - textarea + * - select + */ + var ChangeEventPlugin = { + + eventTypes: eventTypes, + + extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { + var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; + + var getTargetInstFunc, handleEventFunc; + if (shouldUseChangeEvent(targetNode)) { + if (doesChangeEventBubble) { + getTargetInstFunc = getTargetInstForChangeEvent; + } else { + handleEventFunc = handleEventsForChangeEventIE8; + } + } else if (isTextInputElement(targetNode)) { + if (isInputEventSupported) { + getTargetInstFunc = getTargetInstForInputEvent; + } else { + getTargetInstFunc = getTargetInstForInputEventIE; + handleEventFunc = handleEventsForInputEventIE; + } + } else if (shouldUseClickEvent(targetNode)) { + getTargetInstFunc = getTargetInstForClickEvent; + } + + if (getTargetInstFunc) { + var inst = getTargetInstFunc(topLevelType, targetInst); + if (inst) { + var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget); + event.type = 'change'; + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; + } + } + + if (handleEventFunc) { + handleEventFunc(topLevelType, targetNode, targetInst); + } + } + + }; + + module.exports = ChangeEventPlugin; + +/***/ }, +/* 56 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactUpdates + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var CallbackQueue = __webpack_require__(57); + var PooledClass = __webpack_require__(6); + var ReactFeatureFlags = __webpack_require__(58); + var ReactInstrumentation = __webpack_require__(18); + var ReactReconciler = __webpack_require__(59); + var Transaction = __webpack_require__(62); + + var invariant = __webpack_require__(7); + + var dirtyComponents = []; + var updateBatchNumber = 0; + var asapCallbackQueue = CallbackQueue.getPooled(); + var asapEnqueued = false; + + var batchingStrategy = null; + + function ensureInjected() { + !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? false ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : void 0; + } + + var NESTED_UPDATES = { + initialize: function () { + this.dirtyComponentsLength = dirtyComponents.length; + }, + close: function () { + if (this.dirtyComponentsLength !== dirtyComponents.length) { + // Additional updates were enqueued by componentDidUpdate handlers or + // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run + // these new updates so that if A's componentDidUpdate calls setState on + // B, B will update before the callback A's updater provided when calling + // setState. + dirtyComponents.splice(0, this.dirtyComponentsLength); + flushBatchedUpdates(); + } else { + dirtyComponents.length = 0; + } + } + }; + + var UPDATE_QUEUEING = { + initialize: function () { + this.callbackQueue.reset(); + }, + close: function () { + this.callbackQueue.notifyAll(); + } + }; + + var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; + + function ReactUpdatesFlushTransaction() { + this.reinitializeTransaction(); + this.dirtyComponentsLength = null; + this.callbackQueue = CallbackQueue.getPooled(); + this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( + /* useCreateElement */true); + } + + _assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, { + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + }, + + destructor: function () { + this.dirtyComponentsLength = null; + CallbackQueue.release(this.callbackQueue); + this.callbackQueue = null; + ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); + this.reconcileTransaction = null; + }, + + perform: function (method, scope, a) { + // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` + // with this transaction's wrappers around it. + return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); + } + }); + + PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); + + function batchedUpdates(callback, a, b, c, d, e) { + ensureInjected(); + batchingStrategy.batchedUpdates(callback, a, b, c, d, e); + } + + /** + * Array comparator for ReactComponents by mount ordering. + * + * @param {ReactComponent} c1 first component you're comparing + * @param {ReactComponent} c2 second component you're comparing + * @return {number} Return value usable by Array.prototype.sort(). + */ + function mountOrderComparator(c1, c2) { + return c1._mountOrder - c2._mountOrder; + } + + function runBatchedUpdates(transaction) { + var len = transaction.dirtyComponentsLength; + !(len === dirtyComponents.length) ? false ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : void 0; + + // Since reconciling a component higher in the owner hierarchy usually (not + // always -- see shouldComponentUpdate()) will reconcile children, reconcile + // them before their children by sorting the array. + dirtyComponents.sort(mountOrderComparator); + + // Any updates enqueued while reconciling must be performed after this entire + // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and + // C, B could update twice in a single batch if C's render enqueues an update + // to B (since B would have already updated, we should skip it, and the only + // way we can know to do so is by checking the batch counter). + updateBatchNumber++; + + for (var i = 0; i < len; i++) { + // If a component is unmounted before pending changes apply, it will still + // be here, but we assume that it has cleared its _pendingCallbacks and + // that performUpdateIfNecessary is a noop. + var component = dirtyComponents[i]; + + // If performUpdateIfNecessary happens to enqueue any new updates, we + // shouldn't execute the callbacks until the next render happens, so + // stash the callbacks first + var callbacks = component._pendingCallbacks; + component._pendingCallbacks = null; + + var markerName; + if (ReactFeatureFlags.logTopLevelRenders) { + var namedComponent = component; + // Duck type TopLevelWrapper. This is probably always true. + if (component._currentElement.props === component._renderedComponent._currentElement) { + namedComponent = component._renderedComponent; + } + markerName = 'React update: ' + namedComponent.getName(); + console.time(markerName); + } + + ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber); + + if (markerName) { + console.timeEnd(markerName); + } + + if (callbacks) { + for (var j = 0; j < callbacks.length; j++) { + transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); + } + } + } + } + + var flushBatchedUpdates = function () { + if (false) { + ReactInstrumentation.debugTool.onBeginFlush(); + } + + // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents + // array and perform any updates enqueued by mount-ready handlers (i.e., + // componentDidUpdate) but we need to check here too in order to catch + // updates enqueued by setState callbacks and asap calls. + while (dirtyComponents.length || asapEnqueued) { + if (dirtyComponents.length) { + var transaction = ReactUpdatesFlushTransaction.getPooled(); + transaction.perform(runBatchedUpdates, null, transaction); + ReactUpdatesFlushTransaction.release(transaction); + } + + if (asapEnqueued) { + asapEnqueued = false; + var queue = asapCallbackQueue; + asapCallbackQueue = CallbackQueue.getPooled(); + queue.notifyAll(); + CallbackQueue.release(queue); + } + } + + if (false) { + ReactInstrumentation.debugTool.onEndFlush(); + } + }; + + /** + * Mark a component as needing a rerender, adding an optional callback to a + * list of functions which will be executed once the rerender occurs. + */ + function enqueueUpdate(component) { + ensureInjected(); + + // Various parts of our code (such as ReactCompositeComponent's + // _renderValidatedComponent) assume that calls to render aren't nested; + // verify that that's the case. (This is called by each top-level update + // function, like setProps, setState, forceUpdate, etc.; creation and + // destruction of top-level components is guarded in ReactMount.) + + if (!batchingStrategy.isBatchingUpdates) { + batchingStrategy.batchedUpdates(enqueueUpdate, component); + return; + } + + dirtyComponents.push(component); + if (component._updateBatchNumber == null) { + component._updateBatchNumber = updateBatchNumber + 1; + } + } + + /** + * Enqueue a callback to be run at the end of the current batching cycle. Throws + * if no updates are currently being performed. + */ + function asap(callback, context) { + !batchingStrategy.isBatchingUpdates ? false ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : void 0; + asapCallbackQueue.enqueue(callback, context); + asapEnqueued = true; + } + + var ReactUpdatesInjection = { + injectReconcileTransaction: function (ReconcileTransaction) { + !ReconcileTransaction ? false ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : void 0; + ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; + }, + + injectBatchingStrategy: function (_batchingStrategy) { + !_batchingStrategy ? false ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : void 0; + !(typeof _batchingStrategy.batchedUpdates === 'function') ? false ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : void 0; + !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? false ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : void 0; + batchingStrategy = _batchingStrategy; + } + }; + + var ReactUpdates = { + /** + * React references `ReactReconcileTransaction` using this property in order + * to allow dependency injection. + * + * @internal + */ + ReactReconcileTransaction: null, + + batchedUpdates: batchedUpdates, + enqueueUpdate: enqueueUpdate, + flushBatchedUpdates: flushBatchedUpdates, + injection: ReactUpdatesInjection, + asap: asap + }; + + module.exports = ReactUpdates; + +/***/ }, +/* 57 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule CallbackQueue + */ + + 'use strict'; + + var _assign = __webpack_require__(4); + + var PooledClass = __webpack_require__(6); + + var invariant = __webpack_require__(7); + + /** + * A specialized pseudo-event module to help keep track of components waiting to + * be notified when their DOM representations are available for use. + * + * This implements `PooledClass`, so you should never need to instantiate this. + * Instead, use `CallbackQueue.getPooled()`. + * + * @class ReactMountReady + * @implements PooledClass + * @internal + */ + function CallbackQueue() { + this._callbacks = null; + this._contexts = null; + } + + _assign(CallbackQueue.prototype, { + + /** + * Enqueues a callback to be invoked when `notifyAll` is invoked. + * + * @param {function} callback Invoked when `notifyAll` is invoked. + * @param {?object} context Context to call `callback` with. + * @internal + */ + enqueue: function (callback, context) { + this._callbacks = this._callbacks || []; + this._contexts = this._contexts || []; + this._callbacks.push(callback); + this._contexts.push(context); + }, + + /** + * Invokes all enqueued callbacks and clears the queue. This is invoked after + * the DOM representation of a component has been created or updated. + * + * @internal + */ + notifyAll: function () { + var callbacks = this._callbacks; + var contexts = this._contexts; + if (callbacks) { + !(callbacks.length === contexts.length) ? false ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : void 0; + this._callbacks = null; + this._contexts = null; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].call(contexts[i]); + } + callbacks.length = 0; + contexts.length = 0; + } + }, + + checkpoint: function () { + return this._callbacks ? this._callbacks.length : 0; + }, + + rollback: function (len) { + if (this._callbacks) { + this._callbacks.length = len; + this._contexts.length = len; + } + }, + + /** + * Resets the internal queue. + * + * @internal + */ + reset: function () { + this._callbacks = null; + this._contexts = null; + }, + + /** + * `PooledClass` looks for this. + */ + destructor: function () { + this.reset(); + } + + }); + + PooledClass.addPoolingTo(CallbackQueue); + + module.exports = CallbackQueue; + +/***/ }, +/* 58 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactFeatureFlags + */ + + 'use strict'; + + var ReactFeatureFlags = { + // When true, call console.time() before and .timeEnd() after each top-level + // render (both initial renders and updates). Useful when looking at prod-mode + // timeline profiles in Chrome, for example. + logTopLevelRenders: false + }; + + module.exports = ReactFeatureFlags; + +/***/ }, +/* 59 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactReconciler + */ + + 'use strict'; + + var ReactRef = __webpack_require__(60); + var ReactInstrumentation = __webpack_require__(18); + + var invariant = __webpack_require__(7); + + /** + * Helper to call ReactRef.attachRefs with this composite component, split out + * to avoid allocations in the transaction mount-ready queue. + */ + function attachRefs() { + ReactRef.attachRefs(this, this._currentElement); + } + + var ReactReconciler = { + + /** + * Initializes the component, renders markup, and registers event listeners. + * + * @param {ReactComponent} internalInstance + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {?object} the containing native component instance + * @param {?object} info about the native container + * @return {?string} Rendered markup to be inserted into the DOM. + * @final + * @internal + */ + mountComponent: function (internalInstance, transaction, nativeParent, nativeContainerInfo, context) { + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'mountComponent'); + } + } + var markup = internalInstance.mountComponent(transaction, nativeParent, nativeContainerInfo, context); + if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'mountComponent'); + ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); + } + } + return markup; + }, + + /** + * Returns a value that can be passed to + * ReactComponentEnvironment.replaceNodeWithMarkup. + */ + getNativeNode: function (internalInstance) { + return internalInstance.getNativeNode(); + }, + + /** + * Releases any resources allocated by `mountComponent`. + * + * @final + * @internal + */ + unmountComponent: function (internalInstance, safely) { + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'unmountComponent'); + } + } + ReactRef.detachRefs(internalInstance, internalInstance._currentElement); + internalInstance.unmountComponent(safely); + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'unmountComponent'); + ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); + } + } + }, + + /** + * Update a component using a new element. + * + * @param {ReactComponent} internalInstance + * @param {ReactElement} nextElement + * @param {ReactReconcileTransaction} transaction + * @param {object} context + * @internal + */ + receiveComponent: function (internalInstance, nextElement, transaction, context) { + var prevElement = internalInstance._currentElement; + + if (nextElement === prevElement && context === internalInstance._context) { + // Since elements are immutable after the owner is rendered, + // we can do a cheap identity compare here to determine if this is a + // superfluous reconcile. It's possible for state to be mutable but such + // change should trigger an update of the owner which would recreate + // the element. We explicitly check for the existence of an owner since + // it's possible for an element created outside a composite to be + // deeply mutated and reused. + + // TODO: Bailing out early is just a perf optimization right? + // TODO: Removing the return statement should affect correctness? + return; + } + + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'receiveComponent'); + } + } + + var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); + + if (refsChanged) { + ReactRef.detachRefs(internalInstance, prevElement); + } + + internalInstance.receiveComponent(nextElement, transaction, context); + + if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'receiveComponent'); + ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); + } + } + }, + + /** + * Flush any dirty changes in a component. + * + * @param {ReactComponent} internalInstance + * @param {ReactReconcileTransaction} transaction + * @internal + */ + performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) { + if (internalInstance._updateBatchNumber !== updateBatchNumber) { + // The component's enqueued batch number should always be the current + // batch or the following one. + !(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1) ? false ? invariant(false, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : invariant(false) : void 0; + return; + } + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeginReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary'); + } + } + internalInstance.performUpdateIfNecessary(transaction); + if (false) { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onEndReconcilerTimer(internalInstance._debugID, 'performUpdateIfNecessary'); + ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); + } + } + } + + }; + + module.exports = ReactReconciler; + +/***/ }, +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactRef + */ + + 'use strict'; + + var ReactOwner = __webpack_require__(61); + + var ReactRef = {}; + + function attachRef(ref, component, owner) { + if (typeof ref === 'function') { + ref(component.getPublicInstance()); + } else { + // Legacy ref + ReactOwner.addComponentAsRefTo(component, ref, owner); + } + } + + function detachRef(ref, component, owner) { + if (typeof ref === 'function') { + ref(null); + } else { + // Legacy ref + ReactOwner.removeComponentAsRefFrom(component, ref, owner); + } + } + + ReactRef.attachRefs = function (instance, element) { + if (element === null || element === false) { + return; + } + var ref = element.ref; + if (ref != null) { + attachRef(ref, instance, element._owner); + } + }; + + ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { + // If either the owner or a `ref` has changed, make sure the newest owner + // has stored a reference to `this`, and the previous owner (if different) + // has forgotten the reference to `this`. We use the element instead + // of the public this.props because the post processing cannot determine + // a ref. The ref conceptually lives on the element. + + // TODO: Should this even be possible? The owner cannot change because + // it's forbidden by shouldUpdateReactComponent. The ref can change + // if you swap the keys of but not the refs. Reconsider where this check + // is made. It probably belongs where the key checking and + // instantiateReactComponent is done. + + var prevEmpty = prevElement === null || prevElement === false; + var nextEmpty = nextElement === null || nextElement === false; + + return( + // This has a few false positives w/r/t empty components. + prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref + ); + }; + + ReactRef.detachRefs = function (instance, element) { + if (element === null || element === false) { + return; + } + var ref = element.ref; + if (ref != null) { + detachRef(ref, instance, element._owner); + } + }; + + module.exports = ReactRef; + +/***/ }, +/* 61 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactOwner + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * ReactOwners are capable of storing references to owned components. + * + * All components are capable of //being// referenced by owner components, but + * only ReactOwner components are capable of //referencing// owned components. + * The named reference is known as a "ref". + * + * Refs are available when mounted and updated during reconciliation. + * + * var MyComponent = React.createClass({ + * render: function() { + * return ( + *
+ * + *
+ * ); + * }, + * handleClick: function() { + * this.refs.custom.handleClick(); + * }, + * componentDidMount: function() { + * this.refs.custom.initialize(); + * } + * }); + * + * Refs should rarely be used. When refs are used, they should only be done to + * control data that is not handled by React's data flow. + * + * @class ReactOwner + */ + var ReactOwner = { + + /** + * @param {?object} object + * @return {boolean} True if `object` is a valid owner. + * @final + */ + isValidOwner: function (object) { + return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); + }, + + /** + * Adds a component by ref to an owner component. + * + * @param {ReactComponent} component Component to reference. + * @param {string} ref Name by which to refer to the component. + * @param {ReactOwner} owner Component on which to record the ref. + * @final + * @internal + */ + addComponentAsRefTo: function (component, ref, owner) { + !ReactOwner.isValidOwner(owner) ? false ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : void 0; + owner.attachRef(ref, component); + }, + + /** + * Removes a component by ref from an owner component. + * + * @param {ReactComponent} component Component to dereference. + * @param {string} ref Name of the ref to remove. + * @param {ReactOwner} owner Component on which the ref is recorded. + * @final + * @internal + */ + removeComponentAsRefFrom: function (component, ref, owner) { + !ReactOwner.isValidOwner(owner) ? false ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : void 0; + var ownerPublicInstance = owner.getPublicInstance(); + // Check that `component`'s owner is still alive and that `component` is still the current ref + // because we do not want to detach the ref if another component stole it. + if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) { + owner.detachRef(ref); + } + } + + }; + + module.exports = ReactOwner; + +/***/ }, +/* 62 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Transaction + */ + + 'use strict'; + + var invariant = __webpack_require__(7); + + /** + * `Transaction` creates a black box that is able to wrap any method such that + * certain invariants are maintained before and after the method is invoked + * (Even if an exception is thrown while invoking the wrapped method). Whoever + * instantiates a transaction can provide enforcers of the invariants at + * creation time. The `Transaction` class itself will supply one additional + * automatic invariant for you - the invariant that any transaction instance + * should not be run while it is already being run. You would typically create a + * single instance of a `Transaction` for reuse multiple times, that potentially + * is used to wrap several different methods. Wrappers are extremely simple - + * they only require implementing two methods. + * + *
+	 *                       wrappers (injected at creation time)
+	 *                                      +        +
+	 *                                      |        |
+	 *                    +-----------------|--------|--------------+
+	 *                    |                 v        |              |
+	 *                    |      +---------------+   |              |
+	 *                    |   +--|    wrapper1   |---|----+         |
+	 *                    |   |  +---------------+   v    |         |
+	 *                    |   |          +-------------+  |         |
+	 *                    |   |     +----|   wrapper2  |--------+   |
+	 *                    |   |     |    +-------------+  |     |   |
+	 *                    |   |     |                     |     |   |
+	 *                    |   v     v                     v     v   | wrapper
+	 *                    | +---+ +---+   +---------+   +---+ +---+ | invariants
+	 * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained
+	 * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->
+	 *                    | |   | |   |   |         |   |   | |   | |
+	 *                    | |   | |   |   |         |   |   | |   | |
+	 *                    | |   | |   |   |         |   |   | |   | |
+	 *                    | +---+ +---+   +---------+   +---+ +---+ |
+	 *                    |  initialize                    close    |
+	 *                    +-----------------------------------------+
+	 * 
+ * + * Use cases: + * - Preserving the input selection ranges before/after reconciliation. + * Restoring selection even in the event of an unexpected error. + * - Deactivating events while rearranging the DOM, preventing blurs/focuses, + * while guaranteeing that afterwards, the event system is reactivated. + * - Flushing a queue of collected DOM mutations to the main UI thread after a + * reconciliation takes place in a worker thread. + * - Invoking any collected `componentDidUpdate` callbacks after rendering new + * content. + * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue + * to preserve the `scrollTop` (an automatic scroll aware DOM). + * - (Future use case): Layout calculations before and after DOM updates. + * + * Transactional plugin API: + * - A module that has an `initialize` method that returns any precomputation. + * - and a `close` method that accepts the precomputation. `close` is invoked + * when the wrapped process is completed, or has failed. + * + * @param {Array} transactionWrapper Wrapper modules + * that implement `initialize` and `close`. + * @return {Transaction} Single transaction for reuse in thread. + * + * @class Transaction + */ + var Mixin = { + /** + * Sets up this instance so that it is prepared for collecting metrics. Does + * so such that this setup method may be used on an instance that is already + * initialized, in a way that does not consume additional memory upon reuse. + * That can be useful if you decide to make your subclass of this mixin a + * "PooledClass". + */ + reinitializeTransaction: function () { + this.transactionWrappers = this.getTransactionWrappers(); + if (this.wrapperInitData) { + this.wrapperInitData.length = 0; + } else { + this.wrapperInitData = []; + } + this._isInTransaction = false; + }, + + _isInTransaction: false, + + /** + * @abstract + * @return {Array} Array of transaction wrappers. + */ + getTransactionWrappers: null, + + isInTransaction: function () { + return !!this._isInTransaction; + }, + + /** + * Executes the function within a safety window. Use this for the top level + * methods that result in large amounts of computation/mutations that would + * need to be safety checked. The optional arguments helps prevent the need + * to bind in many cases. + * + * @param {function} method Member of scope to call. + * @param {Object} scope Scope to invoke from. + * @param {Object?=} a Argument to pass to the method. + * @param {Object?=} b Argument to pass to the method. + * @param {Object?=} c Argument to pass to the method. + * @param {Object?=} d Argument to pass to the method. + * @param {Object?=} e Argument to pass to the method. + * @param {Object?=} f Argument to pass to the method. + * + * @return {*} Return value from `method`. + */ + perform: function (method, scope, a, b, c, d, e, f) { + !!this.isInTransaction() ? false ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : void 0; + var errorThrown; + var ret; + try { + this._isInTransaction = true; + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // one of these calls threw. + errorThrown = true; + this.initializeAll(0); + ret = method.call(scope, a, b, c, d, e, f); + errorThrown = false; + } finally { + try { + if (errorThrown) { + // If `method` throws, prefer to show that stack trace over any thrown + // by invoking `closeAll`. + try { + this.closeAll(0); + } catch (err) {} + } else { + // Since `method` didn't throw, we don't want to silence the exception + // here. + this.closeAll(0); + } + } finally { + this._isInTransaction = false; + } + } + return ret; + }, + + initializeAll: function (startIndex) { + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + try { + // Catching errors makes debugging more difficult, so we start with the + // OBSERVED_ERROR state before overwriting it with the real return value + // of initialize -- if it's still set to OBSERVED_ERROR in the finally + // block, it means wrapper.initialize threw. + this.wrapperInitData[i] = Transaction.OBSERVED_ERROR; + this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; + } finally { + if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) { + // The initializer for wrapper i threw an error; initialize the + // remaining wrappers but silence any exceptions from them to ensure + // that the first error is the one to bubble up. + try { + this.initializeAll(i + 1); + } catch (err) {} + } + } + } + }, + + /** + * Invokes each of `this.transactionWrappers.close[i]` functions, passing into + * them the respective return values of `this.transactionWrappers.init[i]` + * (`close`rs that correspond to initializers that failed will not be + * invoked). + */ + closeAll: function (startIndex) { + !this.isInTransaction() ? false ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : void 0; + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + var initData = this.wrapperInitData[i]; + var errorThrown; + try { + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // wrapper.close threw. + errorThrown = true; + if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) { + wrapper.close.call(this, initData); + } + errorThrown = false; + } finally { + if (errorThrown) { + // The closer for wrapper i threw an error; close the remaining + // wrappers but silence any exceptions from them to ensure that the + // first error is the one to bubble up. + try { + this.closeAll(i + 1); + } catch (e) {} + } + } + } + this.wrapperInitData.length = 0; + } + }; + + var Transaction = { + + Mixin: Mixin, + + /** + * Token to look for to determine if an error occurred. + */ + OBSERVED_ERROR: {} + + }; + + module.exports = Transaction; + +/***/ }, +/* 63 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventTarget + */ + + 'use strict'; + + /** + * Gets the target node from a native browser event by accounting for + * inconsistencies in browser DOM APIs. + * + * @param {object} nativeEvent Native browser event. + * @return {DOMEventTarget} Target node. + */ + + function getEventTarget(nativeEvent) { + var target = nativeEvent.target || nativeEvent.srcElement || window; + + // Normalize SVG element events #4963 + if (target.correspondingUseElement) { + target = target.correspondingUseElement; + } + + // Safari may fire events on text nodes (Node.TEXT_NODE is 3). + // @see http://www.quirksmode.org/js/events_properties.html + return target.nodeType === 3 ? target.parentNode : target; + } + + module.exports = getEventTarget; + +/***/ }, +/* 64 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isEventSupported + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + + var useHasFeature; + if (ExecutionEnvironment.canUseDOM) { + useHasFeature = document.implementation && document.implementation.hasFeature && + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + document.implementation.hasFeature('', '') !== true; + } + + /** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ + function isEventSupported(eventNameSuffix, capture) { + if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { + return false; + } + + var eventName = 'on' + eventNameSuffix; + var isSupported = eventName in document; + + if (!isSupported) { + var element = document.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; + } + + module.exports = isEventSupported; + +/***/ }, +/* 65 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isTextInputElement + */ + + 'use strict'; + + /** + * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + */ + + var supportedInputTypes = { + 'color': true, + 'date': true, + 'datetime': true, + 'datetime-local': true, + 'email': true, + 'month': true, + 'number': true, + 'password': true, + 'range': true, + 'search': true, + 'tel': true, + 'text': true, + 'time': true, + 'url': true, + 'week': true + }; + + function isTextInputElement(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea'); + } + + module.exports = isTextInputElement; + +/***/ }, +/* 66 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DefaultEventPluginOrder + */ + + 'use strict'; + + var keyOf = __webpack_require__(28); + + /** + * Module that is injectable into `EventPluginHub`, that specifies a + * deterministic ordering of `EventPlugin`s. A convenient way to reason about + * plugins, without having to package every one of them. This is better than + * having plugins be ordered in the same order that they are injected because + * that ordering would be influenced by the packaging order. + * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that + * preventing default on events is convenient in `SimpleEventPlugin` handlers. + */ + var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })]; + + module.exports = DefaultEventPluginOrder; + +/***/ }, +/* 67 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EnterLeaveEventPlugin + */ + + 'use strict'; + + var EventConstants = __webpack_require__(42); + var EventPropagators = __webpack_require__(43); + var ReactDOMComponentTree = __webpack_require__(37); + var SyntheticMouseEvent = __webpack_require__(68); + + var keyOf = __webpack_require__(28); + + var topLevelTypes = EventConstants.topLevelTypes; + + var eventTypes = { + mouseEnter: { + registrationName: keyOf({ onMouseEnter: null }), + dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + }, + mouseLeave: { + registrationName: keyOf({ onMouseLeave: null }), + dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + } + }; + + var EnterLeaveEventPlugin = { + + eventTypes: eventTypes, + + /** + * For almost every interaction we care about, there will be both a top-level + * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that + * we do not extract duplicate events. However, moving the mouse into the + * browser from outside will not fire a `mouseout` event. In this case, we use + * the `mouseover` top-level event. + */ + extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { + if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { + return null; + } + if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) { + // Must not be a mouse in or mouse out - ignoring. + return null; + } + + var win; + if (nativeEventTarget.window === nativeEventTarget) { + // `nativeEventTarget` is probably a window object. + win = nativeEventTarget; + } else { + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + var doc = nativeEventTarget.ownerDocument; + if (doc) { + win = doc.defaultView || doc.parentWindow; + } else { + win = window; + } + } + + var from; + var to; + if (topLevelType === topLevelTypes.topMouseOut) { + from = targetInst; + var related = nativeEvent.relatedTarget || nativeEvent.toElement; + to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null; + } else { + // Moving to a node from outside the window. + from = null; + to = targetInst; + } + + if (from === to) { + // Nothing pertains to our managed components. + return null; + } + + var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from); + var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to); + + var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget); + leave.type = 'mouseleave'; + leave.target = fromNode; + leave.relatedTarget = toNode; + + var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget); + enter.type = 'mouseenter'; + enter.target = toNode; + enter.relatedTarget = fromNode; + + EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to); + + return [leave, enter]; + } + + }; + + module.exports = EnterLeaveEventPlugin; + +/***/ }, +/* 68 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticMouseEvent + */ + + 'use strict'; + + var SyntheticUIEvent = __webpack_require__(69); + var ViewportMetrics = __webpack_require__(70); + + var getEventModifierState = __webpack_require__(71); + + /** + * @interface MouseEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ + var MouseEventInterface = { + screenX: null, + screenY: null, + clientX: null, + clientY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: getEventModifierState, + button: function (event) { + // Webkit, Firefox, IE9+ + // which: 1 2 3 + // button: 0 1 2 (standard) + var button = event.button; + if ('which' in event) { + return button; + } + // IE<9 + // which: undefined + // button: 0 0 0 + // button: 1 4 2 (onmouseup) + return button === 2 ? 2 : button === 4 ? 1 : 0; + }, + buttons: null, + relatedTarget: function (event) { + return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); + }, + // "Proprietary" Interface. + pageX: function (event) { + return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; + }, + pageY: function (event) { + return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; + } + }; + + /** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ + function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); + } + + SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); + + module.exports = SyntheticMouseEvent; + +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticUIEvent + */ + + 'use strict'; + + var SyntheticEvent = __webpack_require__(53); + + var getEventTarget = __webpack_require__(63); + + /** + * @interface UIEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ + var UIEventInterface = { + view: function (event) { + if (event.view) { + return event.view; + } + + var target = getEventTarget(event); + if (target != null && target.window === target) { + // target is a window object + return target; + } + + var doc = target.ownerDocument; + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + if (doc) { + return doc.defaultView || doc.parentWindow; + } else { + return window; + } + }, + detail: function (event) { + return event.detail || 0; + } + }; + + /** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticEvent} + */ + function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); + } + + SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); + + module.exports = SyntheticUIEvent; + +/***/ }, +/* 70 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ViewportMetrics + */ + + 'use strict'; + + var ViewportMetrics = { + + currentScrollLeft: 0, + + currentScrollTop: 0, + + refreshScrollValues: function (scrollPosition) { + ViewportMetrics.currentScrollLeft = scrollPosition.x; + ViewportMetrics.currentScrollTop = scrollPosition.y; + } + + }; + + module.exports = ViewportMetrics; + +/***/ }, +/* 71 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventModifierState + */ + + 'use strict'; + + /** + * Translation from modifier key to the associated property in the event. + * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers + */ + + var modifierKeyToProp = { + 'Alt': 'altKey', + 'Control': 'ctrlKey', + 'Meta': 'metaKey', + 'Shift': 'shiftKey' + }; + + // IE8 does not implement getModifierState so we simply map it to the only + // modifier keys exposed by the event itself, does not support Lock-keys. + // Currently, all major browsers except Chrome seems to support Lock-keys. + function modifierStateGetter(keyArg) { + var syntheticEvent = this; + var nativeEvent = syntheticEvent.nativeEvent; + if (nativeEvent.getModifierState) { + return nativeEvent.getModifierState(keyArg); + } + var keyProp = modifierKeyToProp[keyArg]; + return keyProp ? !!nativeEvent[keyProp] : false; + } + + function getEventModifierState(nativeEvent) { + return modifierStateGetter; + } + + module.exports = getEventModifierState; + +/***/ }, +/* 72 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule HTMLDOMPropertyConfig + */ + + 'use strict'; + + var DOMProperty = __webpack_require__(38); + + var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; + var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; + var HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS; + var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; + var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; + var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; + + var HTMLDOMPropertyConfig = { + isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')), + Properties: { + /** + * Standard Properties + */ + accept: 0, + acceptCharset: 0, + accessKey: 0, + action: 0, + allowFullScreen: HAS_BOOLEAN_VALUE, + allowTransparency: 0, + alt: 0, + async: HAS_BOOLEAN_VALUE, + autoComplete: 0, + // autoFocus is polyfilled/normalized by AutoFocusUtils + // autoFocus: HAS_BOOLEAN_VALUE, + autoPlay: HAS_BOOLEAN_VALUE, + capture: HAS_BOOLEAN_VALUE, + cellPadding: 0, + cellSpacing: 0, + charSet: 0, + challenge: 0, + checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + cite: 0, + classID: 0, + className: 0, + cols: HAS_POSITIVE_NUMERIC_VALUE, + colSpan: 0, + content: 0, + contentEditable: 0, + contextMenu: 0, + controls: HAS_BOOLEAN_VALUE, + coords: 0, + crossOrigin: 0, + data: 0, // For `` acts as `src`. + dateTime: 0, + 'default': HAS_BOOLEAN_VALUE, + defer: HAS_BOOLEAN_VALUE, + dir: 0, + disabled: HAS_BOOLEAN_VALUE, + download: HAS_OVERLOADED_BOOLEAN_VALUE, + draggable: 0, + encType: 0, + form: 0, + formAction: 0, + formEncType: 0, + formMethod: 0, + formNoValidate: HAS_BOOLEAN_VALUE, + formTarget: 0, + frameBorder: 0, + headers: 0, + height: 0, + hidden: HAS_BOOLEAN_VALUE, + high: 0, + href: 0, + hrefLang: 0, + htmlFor: 0, + httpEquiv: 0, + icon: 0, + id: 0, + inputMode: 0, + integrity: 0, + is: 0, + keyParams: 0, + keyType: 0, + kind: 0, + label: 0, + lang: 0, + list: 0, + loop: HAS_BOOLEAN_VALUE, + low: 0, + manifest: 0, + marginHeight: 0, + marginWidth: 0, + max: 0, + maxLength: 0, + media: 0, + mediaGroup: 0, + method: 0, + min: 0, + minLength: 0, + // Caution; `option.selected` is not updated if `select.multiple` is + // disabled with `removeAttribute`. + multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + name: 0, + nonce: 0, + noValidate: HAS_BOOLEAN_VALUE, + open: HAS_BOOLEAN_VALUE, + optimum: 0, + pattern: 0, + placeholder: 0, + poster: 0, + preload: 0, + profile: 0, + radioGroup: 0, + readOnly: HAS_BOOLEAN_VALUE, + rel: 0, + required: HAS_BOOLEAN_VALUE, + reversed: HAS_BOOLEAN_VALUE, + role: 0, + rows: HAS_POSITIVE_NUMERIC_VALUE, + rowSpan: HAS_NUMERIC_VALUE, + sandbox: 0, + scope: 0, + scoped: HAS_BOOLEAN_VALUE, + scrolling: 0, + seamless: HAS_BOOLEAN_VALUE, + selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + shape: 0, + size: HAS_POSITIVE_NUMERIC_VALUE, + sizes: 0, + span: HAS_POSITIVE_NUMERIC_VALUE, + spellCheck: 0, + src: 0, + srcDoc: 0, + srcLang: 0, + srcSet: 0, + start: HAS_NUMERIC_VALUE, + step: 0, + style: 0, + summary: 0, + tabIndex: 0, + target: 0, + title: 0, + // Setting .type throws on non- tags + type: 0, + useMap: 0, + value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS, + width: 0, + wmode: 0, + wrap: 0, + + /** + * RDFa Properties + */ + about: 0, + datatype: 0, + inlist: 0, + prefix: 0, + // property is also supported for OpenGraph in meta tags. + property: 0, + resource: 0, + 'typeof': 0, + vocab: 0, + + /** + * Non-standard Properties + */ + // autoCapitalize and autoCorrect are supported in Mobile Safari for + // keyboard hints. + autoCapitalize: 0, + autoCorrect: 0, + // autoSave allows WebKit/Blink to persist values of input fields on page reloads + autoSave: 0, + // color is for Safari mask-icon link + color: 0, + // itemProp, itemScope, itemType are for + // Microdata support. See http://schema.org/docs/gs.html + itemProp: 0, + itemScope: HAS_BOOLEAN_VALUE, + itemType: 0, + // itemID and itemRef are for Microdata support as well but + // only specified in the WHATWG spec document. See + // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api + itemID: 0, + itemRef: 0, + // results show looking glass icon and recent searches on input + // search fields in WebKit/Blink + results: 0, + // IE-only attribute that specifies security restrictions on an iframe + // as an alternative to the sandbox attribute on IE<10 + security: 0, + // IE-only attribute that controls focus behavior + unselectable: 0 + }, + DOMAttributeNames: { + acceptCharset: 'accept-charset', + className: 'class', + htmlFor: 'for', + httpEquiv: 'http-equiv' + }, + DOMPropertyNames: {} + }; + + module.exports = HTMLDOMPropertyConfig; + +/***/ }, +/* 73 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactComponentBrowserEnvironment + */ + + 'use strict'; + + var DOMChildrenOperations = __webpack_require__(74); + var ReactDOMIDOperations = __webpack_require__(86); + + /** + * Abstracts away all functionality of the reconciler that requires knowledge of + * the browser context. TODO: These callers should be refactored to avoid the + * need for this injection. + */ + var ReactComponentBrowserEnvironment = { + + processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, + + replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup, + + /** + * If a particular environment requires that some resources be cleaned up, + * specify this in the injected Mixin. In the DOM, we would likely want to + * purge any cached node ID lookups. + * + * @private + */ + unmountIDFromEnvironment: function (rootNodeID) {} + + }; + + module.exports = ReactComponentBrowserEnvironment; + +/***/ }, +/* 74 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMChildrenOperations + */ + + 'use strict'; + + var DOMLazyTree = __webpack_require__(75); + var Danger = __webpack_require__(81); + var ReactMultiChildUpdateTypes = __webpack_require__(85); + var ReactDOMComponentTree = __webpack_require__(37); + var ReactInstrumentation = __webpack_require__(18); + + var createMicrosoftUnsafeLocalFunction = __webpack_require__(77); + var setInnerHTML = __webpack_require__(80); + var setTextContent = __webpack_require__(78); + + function getNodeAfter(parentNode, node) { + // Special case for text components, which return [open, close] comments + // from getNativeNode. + if (Array.isArray(node)) { + node = node[1]; + } + return node ? node.nextSibling : parentNode.firstChild; + } + + /** + * Inserts `childNode` as a child of `parentNode` at the `index`. + * + * @param {DOMElement} parentNode Parent node in which to insert. + * @param {DOMElement} childNode Child node to insert. + * @param {number} index Index at which to insert the child. + * @internal + */ + var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) { + // We rely exclusively on `insertBefore(node, null)` instead of also using + // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so + // we are careful to use `null`.) + parentNode.insertBefore(childNode, referenceNode); + }); + + function insertLazyTreeChildAt(parentNode, childTree, referenceNode) { + DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode); + } + + function moveChild(parentNode, childNode, referenceNode) { + if (Array.isArray(childNode)) { + moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode); + } else { + insertChildAt(parentNode, childNode, referenceNode); + } + } + + function removeChild(parentNode, childNode) { + if (Array.isArray(childNode)) { + var closingComment = childNode[1]; + childNode = childNode[0]; + removeDelimitedText(parentNode, childNode, closingComment); + parentNode.removeChild(closingComment); + } + parentNode.removeChild(childNode); + } + + function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) { + var node = openingComment; + while (true) { + var nextNode = node.nextSibling; + insertChildAt(parentNode, node, referenceNode); + if (node === closingComment) { + break; + } + node = nextNode; + } + } + + function removeDelimitedText(parentNode, startNode, closingComment) { + while (true) { + var node = startNode.nextSibling; + if (node === closingComment) { + // The closing comment is removed by ReactMultiChild. + break; + } else { + parentNode.removeChild(node); + } + } + } + + function replaceDelimitedText(openingComment, closingComment, stringText) { + var parentNode = openingComment.parentNode; + var nodeAfterComment = openingComment.nextSibling; + if (nodeAfterComment === closingComment) { + // There are no text nodes between the opening and closing comments; insert + // a new one if stringText isn't empty. + if (stringText) { + insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment); + } + } else { + if (stringText) { + // Set the text content of the first node after the opening comment, and + // remove all following nodes up until the closing comment. + setTextContent(nodeAfterComment, stringText); + removeDelimitedText(parentNode, nodeAfterComment, closingComment); + } else { + removeDelimitedText(parentNode, openingComment, closingComment); + } + } + + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, 'replace text', stringText); + } + } + + var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup; + if (false) { + dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) { + Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup); + if (prevInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onNativeOperation(prevInstance._debugID, 'replace with', markup.toString()); + } else { + var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node); + if (nextInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onNativeOperation(nextInstance._debugID, 'mount', markup.toString()); + } + } + }; + } + + /** + * Operations for updating with DOM children. + */ + var DOMChildrenOperations = { + + dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup, + + replaceDelimitedText: replaceDelimitedText, + + /** + * Updates a component's children by processing a series of updates. The + * update configurations are each expected to have a `parentNode` property. + * + * @param {array} updates List of update configurations. + * @internal + */ + processUpdates: function (parentNode, updates) { + if (false) { + var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID; + } + + for (var k = 0; k < updates.length; k++) { + var update = updates[k]; + switch (update.type) { + case ReactMultiChildUpdateTypes.INSERT_MARKUP: + insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode)); + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(parentNodeDebugID, 'insert child', { toIndex: update.toIndex, content: update.content.toString() }); + } + break; + case ReactMultiChildUpdateTypes.MOVE_EXISTING: + moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode)); + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(parentNodeDebugID, 'move child', { fromIndex: update.fromIndex, toIndex: update.toIndex }); + } + break; + case ReactMultiChildUpdateTypes.SET_MARKUP: + setInnerHTML(parentNode, update.content); + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(parentNodeDebugID, 'replace children', update.content.toString()); + } + break; + case ReactMultiChildUpdateTypes.TEXT_CONTENT: + setTextContent(parentNode, update.content); + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(parentNodeDebugID, 'replace text', update.content.toString()); + } + break; + case ReactMultiChildUpdateTypes.REMOVE_NODE: + removeChild(parentNode, update.fromNode); + if (false) { + ReactInstrumentation.debugTool.onNativeOperation(parentNodeDebugID, 'remove child', { fromIndex: update.fromIndex }); + } + break; + } + } + } + + }; + + module.exports = DOMChildrenOperations; + +/***/ }, +/* 75 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMLazyTree + */ + + 'use strict'; + + var DOMNamespaces = __webpack_require__(76); + + var createMicrosoftUnsafeLocalFunction = __webpack_require__(77); + var setTextContent = __webpack_require__(78); + + var ELEMENT_NODE_TYPE = 1; + var DOCUMENT_FRAGMENT_NODE_TYPE = 11; + + /** + * In IE (8-11) and Edge, appending nodes with no children is dramatically + * faster than appending a full subtree, so we essentially queue up the + * .appendChild calls here and apply them so each node is added to its parent + * before any children are added. + * + * In other browsers, doing so is slower or neutral compared to the other order + * (in Firefox, twice as slow) so we only do this inversion in IE. + * + * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode. + */ + var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent); + + function insertTreeChildren(tree) { + if (!enableLazy) { + return; + } + var node = tree.node; + var children = tree.children; + if (children.length) { + for (var i = 0; i < children.length; i++) { + insertTreeBefore(node, children[i], null); + } + } else if (tree.html != null) { + node.innerHTML = tree.html; + } else if (tree.text != null) { + setTextContent(node, tree.text); + } + } + + var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) { + // DocumentFragments aren't actually part of the DOM after insertion so + // appending children won't update the DOM. We need to ensure the fragment + // is properly populated first, breaking out of our lazy approach for just + // this level. Also, some plugins (like Flash Player) will read + // nodes immediately upon insertion into the DOM, so + // must also be populated prior to insertion into the DOM. + if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) { + insertTreeChildren(tree); + parentNode.insertBefore(tree.node, referenceNode); + } else { + parentNode.insertBefore(tree.node, referenceNode); + insertTreeChildren(tree); + } + }); + + function replaceChildWithTree(oldNode, newTree) { + oldNode.parentNode.replaceChild(newTree.node, oldNode); + insertTreeChildren(newTree); + } + + function queueChild(parentTree, childTree) { + if (enableLazy) { + parentTree.children.push(childTree); + } else { + parentTree.node.appendChild(childTree.node); + } + } + + function queueHTML(tree, html) { + if (enableLazy) { + tree.html = html; + } else { + tree.node.innerHTML = html; + } + } + + function queueText(tree, text) { + if (enableLazy) { + tree.text = text; + } else { + setTextContent(tree.node, text); + } + } + + function toString() { + return this.node.nodeName; + } + + function DOMLazyTree(node) { + return { + node: node, + children: [], + html: null, + text: null, + toString: toString + }; + } + + DOMLazyTree.insertTreeBefore = insertTreeBefore; + DOMLazyTree.replaceChildWithTree = replaceChildWithTree; + DOMLazyTree.queueChild = queueChild; + DOMLazyTree.queueHTML = queueHTML; + DOMLazyTree.queueText = queueText; + + module.exports = DOMLazyTree; + +/***/ }, +/* 76 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMNamespaces + */ + + 'use strict'; + + var DOMNamespaces = { + html: 'http://www.w3.org/1999/xhtml', + mathml: 'http://www.w3.org/1998/Math/MathML', + svg: 'http://www.w3.org/2000/svg' + }; + + module.exports = DOMNamespaces; + +/***/ }, +/* 77 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule createMicrosoftUnsafeLocalFunction + */ + + /* globals MSApp */ + + 'use strict'; + + /** + * Create a function which has 'unsafe' privileges (required by windows8 apps) + */ + + var createMicrosoftUnsafeLocalFunction = function (func) { + if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { + return function (arg0, arg1, arg2, arg3) { + MSApp.execUnsafeLocalFunction(function () { + return func(arg0, arg1, arg2, arg3); + }); + }; + } else { + return func; + } + }; + + module.exports = createMicrosoftUnsafeLocalFunction; + +/***/ }, +/* 78 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule setTextContent + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + var escapeTextContentForBrowser = __webpack_require__(79); + var setInnerHTML = __webpack_require__(80); + + /** + * Set the textContent property of a node, ensuring that whitespace is preserved + * even in IE8. innerText is a poor substitute for textContent and, among many + * issues, inserts
instead of the literal newline chars. innerHTML behaves + * as it should. + * + * @param {DOMElement} node + * @param {string} text + * @internal + */ + var setTextContent = function (node, text) { + node.textContent = text; + }; + + if (ExecutionEnvironment.canUseDOM) { + if (!('textContent' in document.documentElement)) { + setTextContent = function (node, text) { + setInnerHTML(node, escapeTextContentForBrowser(text)); + }; + } + } + + module.exports = setTextContent; + +/***/ }, +/* 79 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule escapeTextContentForBrowser + */ + + 'use strict'; + + var ESCAPE_LOOKUP = { + '&': '&', + '>': '>', + '<': '<', + '"': '"', + '\'': ''' + }; + + var ESCAPE_REGEX = /[&><"']/g; + + function escaper(match) { + return ESCAPE_LOOKUP[match]; + } + + /** + * Escapes text to prevent scripting attacks. + * + * @param {*} text Text value to escape. + * @return {string} An escaped string. + */ + function escapeTextContentForBrowser(text) { + return ('' + text).replace(ESCAPE_REGEX, escaper); + } + + module.exports = escapeTextContentForBrowser; + +/***/ }, +/* 80 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule setInnerHTML + */ + + 'use strict'; + + var ExecutionEnvironment = __webpack_require__(20); + + var WHITESPACE_TEST = /^[ \r\n\t\f]/; + var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; + + var createMicrosoftUnsafeLocalFunction = __webpack_require__(77); + + /** + * Set the innerHTML property of a node, ensuring that whitespace is preserved + * even in IE8. + * + * @param {DOMElement} node + * @param {string} html + * @internal + */ + var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) { + node.innerHTML = html; + }); + + if (ExecutionEnvironment.canUseDOM) { + // IE8: When updating a just created node with innerHTML only leading + // whitespace is removed. When updating an existing node with innerHTML + // whitespace in root TextNodes is also collapsed. + // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html + + // Feature detection; only IE8 is known to behave improperly like this. + var testElement = document.createElement('div'); + testElement.innerHTML = ' '; + if (testElement.innerHTML === '') { + setInnerHTML = function (node, html) { + // Magic theory: IE8 supposedly differentiates between added and updated + // nodes when processing innerHTML, innerHTML on updated nodes suffers + // from worse whitespace behavior. Re-adding a node like this triggers + // the initial and more favorable whitespace behavior. + // TODO: What to do on a detached node? + if (node.parentNode) { + node.parentNode.replaceChild(node, node); + } + + // We also implement a workaround for non-visible tags disappearing into + // thin air on IE8, this only happens if there is no visible text + // in-front of the non-visible tags. Piggyback on the whitespace fix + // and simply check if any non-visible tags appear in the source. + if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { + // Recover leading whitespace by temporarily prepending any character. + // \uFEFF has the potential advantage of being zero-width/invisible. + // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode + // in hopes that this is preserved even if "\uFEFF" is transformed to + // the actual Unicode character (by Babel, for example). + // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 + node.innerHTML = String.fromCharCode(0xFEFF) + html; + + // deleteData leaves an empty `TextNode` which offsets the index of all + // children. Definitely want to avoid this. + var textNode = node.firstChild; + if (textNode.data.length === 1) { + node.removeChild(textNode); + } else { + textNode.deleteData(0, 1); + } + } else { + node.innerHTML = html; + } + }; + } + testElement = null; + } + + module.exports = setInnerHTML; + +/***/ }, +/* 81 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Danger + */ + + 'use strict'; + + var DOMLazyTree = __webpack_require__(75); + var ExecutionEnvironment = __webpack_require__(20); + + var createNodesFromMarkup = __webpack_require__(82); + var emptyFunction = __webpack_require__(11); + var getMarkupWrap = __webpack_require__(84); + var invariant = __webpack_require__(7); + + var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/; + var RESULT_INDEX_ATTR = 'data-danger-index'; + + /** + * Extracts the `nodeName` from a string of markup. + * + * NOTE: Extracting the `nodeName` does not require a regular expression match + * because we make assumptions about React-generated markup (i.e. there are no + * spaces surrounding the opening tag and there is at least one attribute). + * + * @param {string} markup String of markup. + * @return {string} Node name of the supplied markup. + * @see http://jsperf.com/extract-nodename + */ + function getNodeName(markup) { + return markup.substring(1, markup.indexOf(' ')); + } + + var Danger = { + + /** + * Renders markup into an array of nodes. The markup is expected to render + * into a list of root nodes. Also, the length of `resultList` and + * `markupList` should be the same. + * + * @param {array} markupList List of markup strings to render. + * @return {array} List of rendered nodes. + * @internal + */ + dangerouslyRenderMarkup: function (markupList) { + !ExecutionEnvironment.canUseDOM ? false ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : void 0; + var nodeName; + var markupByNodeName = {}; + // Group markup by `nodeName` if a wrap is necessary, else by '*'. + for (var i = 0; i < markupList.length; i++) { + !markupList[i] ? false ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : void 0; + nodeName = getNodeName(markupList[i]); + nodeName = getMarkupWrap(nodeName) ? nodeName : '*'; + markupByNodeName[nodeName] = markupByNodeName[nodeName] || []; + markupByNodeName[nodeName][i] = markupList[i]; + } + var resultList = []; + var resultListAssignmentCount = 0; + for (nodeName in markupByNodeName) { + if (!markupByNodeName.hasOwnProperty(nodeName)) { + continue; + } + var markupListByNodeName = markupByNodeName[nodeName]; + + // This for-in loop skips the holes of the sparse array. The order of + // iteration should follow the order of assignment, which happens to match + // numerical index order, but we don't rely on that. + var resultIndex; + for (resultIndex in markupListByNodeName) { + if (markupListByNodeName.hasOwnProperty(resultIndex)) { + var markup = markupListByNodeName[resultIndex]; + + // Push the requested markup with an additional RESULT_INDEX_ATTR + // attribute. If the markup does not start with a < character, it + // will be discarded below (with an appropriate console.error). + markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP, + // This index will be parsed back out below. + '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" '); + } + } + + // Render each group of markup with similar wrapping `nodeName`. + var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with + */ + + var AlertDialogElement = function (_BaseElement) { + babelHelpers.inherits(AlertDialogElement, _BaseElement); + + function AlertDialogElement() { + babelHelpers.classCallCheck(this, AlertDialogElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(AlertDialogElement).apply(this, arguments)); + } + + babelHelpers.createClass(AlertDialogElement, [{ + key: 'createdCallback', + value: function createdCallback() { + var _this2 = this; + + contentReady(this, function () { + return _this2._compile(); + }); + + this._visible = false; + this._doorLock = new DoorLock(); + this._boundCancel = this._cancel.bind(this); + + this._updateAnimatorFactory(); + } + }, { + key: '_updateAnimatorFactory', + value: function _updateAnimatorFactory() { + this._animatorFactory = new AnimatorFactory({ + animators: _animatorDict, + baseClass: AlertDialogAnimator, + baseClassName: 'AlertDialogAnimator', + defaultAnimation: this.getAttribute('animation') + }); + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.style.display = 'none'; + + /** + * Expected result after compile: + * + * + *
+ *
+ *
...
+ *
+ *
+ */ + + var content = document.createDocumentFragment(); + + if (!this._mask && !this._dialog) { + while (this.firstChild) { + content.appendChild(this.firstChild); + } + } + + if (!this._mask) { + var mask = document.createElement('div'); + mask.classList.add('alert-dialog-mask'); + this.insertBefore(mask, this.children[0]); + } + + if (!this._dialog) { + var dialog = document.createElement('div'); + dialog.classList.add('alert-dialog'); + this.insertBefore(dialog, null); + } + + if (!util.findChild(this._dialog, '.alert-dialog-container')) { + var container = document.createElement('div'); + container.classList.add('alert-dialog-container'); + this._dialog.appendChild(container); + } + + this._dialog.children[0].appendChild(content); + + this._dialog.style.zIndex = 20001; + this._mask.style.zIndex = 20000; + + if (this.getAttribute('mask-color')) { + this._mask.style.backgroundColor = this.getAttribute('mask-color'); + } + + ModifierUtil.initModifier(this, scheme); + } + + /** + * @property disabled + * @type {Boolean} + * @description + * [en]Whether the element is disabled or not.[/en] + * [ja]無効化されている場合に`true`。[/ja] + */ + + }, { + key: 'show', + + + /** + * @method show + * @signature show([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja]オプションを指定するオブジェクトです。[/ja] + * @param {String} [options.animation] + * [en]Animation name. Available animations are `"fade"` and `"none"`.[/en] + * [ja]アニメーション名を指定します。指定できるのは、"fade", "none"のいずれかです。[/ja] + * @param {String} [options.animationOptions] + * [en]Specify the animation's duration, delay and timing. E.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'} [/ja] + * @param {Function} [options.callback] + * [en]Function to execute after the dialog has been revealed.[/en] + * [ja]ダイアログが表示され終わった時に呼び出されるコールバックを指定します。[/ja] + * @description + * [en]Show the alert dialog.[/en] + * [ja]ダイアログを表示します。[/ja] + * @return {Promise} + * [en]A `Promise` object that resolves to the displayed element.[/en] + * [ja][/ja] + */ + value: function show() { + var _this3 = this; + + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _cancel2 = false; + var callback = options.callback || function () {}; + + options.animationOptions = util.extend(options.animationOptions || {}, AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options'))); + + util.triggerElementEvent(this, 'preshow', { + alertDialog: this, + cancel: function cancel() { + _cancel2 = true; + } + }); + + if (!_cancel2) { + var _ret = function () { + var tryShow = function tryShow() { + var unlock = _this3._doorLock.lock(); + var animator = _this3._animatorFactory.newAnimator(options); + + _this3.style.display = 'block'; + _this3._mask.style.opacity = '1'; + + return new Promise(function (resolve) { + contentReady(_this3, function () { + animator.show(_this3, function () { + _this3._visible = true; + unlock(); + + util.triggerElementEvent(_this3, 'postshow', { alertDialog: _this3 }); + + callback(); + resolve(_this3); + }); + }); + }); + }; + + return { + v: new Promise(function (resolve) { + _this3._doorLock.waitUnlock(function () { + return resolve(tryShow()); + }); + }) + }; + }(); + + if ((typeof _ret === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret)) === "object") return _ret.v; + } else { + return Promise.reject('Canceled in preshow event.'); + } + } + + /** + * @method hide + * @signature hide([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja]オプションを指定するオブジェクト。[/ja] + * @param {String} [options.animation] + * [en]Animation name. Available animations are `"fade"` and `"none"`.[/en] + * [ja]アニメーション名を指定します。"fade", "none"のいずれかを指定します。[/ja] + * @param {String} [options.animationOptions] + * [en]Specify the animation's duration, delay and timing. E.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'}[/en] + * [ja]アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'} [/ja] + * @param {Function} [options.callback] + * [en]Function to execute after the dialog has been hidden.[/en] + * [ja]このダイアログが閉じた時に呼び出されるコールバックを指定します。[/ja] + * @description + * [en]Hide the alert dialog.[/en] + * [ja]ダイアログを閉じます。[/ja] + * @return {Promise} + * [en]Resolves to the hidden element[/en] + * [ja][/ja] + */ + + }, { + key: 'hide', + value: function hide() { + var _this4 = this; + + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _cancel3 = false; + var callback = options.callback || function () {}; + + options.animationOptions = util.extend(options.animationOptions || {}, AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options'))); + + util.triggerElementEvent(this, 'prehide', { + alertDialog: this, + cancel: function cancel() { + _cancel3 = true; + } + }); + + if (!_cancel3) { + var _ret2 = function () { + var tryHide = function tryHide() { + var unlock = _this4._doorLock.lock(); + var animator = _this4._animatorFactory.newAnimator(options); + + return new Promise(function (resolve) { + contentReady(_this4, function () { + animator.hide(_this4, function () { + _this4.style.display = 'none'; + _this4._visible = false; + unlock(); + + util.triggerElementEvent(_this4, 'posthide', { alertDialog: _this4 }); + + callback(); + resolve(_this4); + }); + }); + }); + }; + + return { + v: new Promise(function (resolve) { + _this4._doorLock.waitUnlock(function () { + return resolve(tryHide()); + }); + }) + }; + }(); + + if ((typeof _ret2 === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret2)) === "object") return _ret2.v; + } else { + return Promise.reject('Canceled in prehide event.'); + } + } + + /** + * @property visible + * @readonly + * @type {Boolean} + * @description + * [en]Whether the dialog is visible or not.[/en] + * [ja]要素が見える場合に`true`。[/ja] + */ + + }, { + key: '_cancel', + value: function _cancel() { + var _this5 = this; + + if (this.cancelable && !this._running) { + this._running = true; + this.hide({ + callback: function callback() { + _this5._running = false; + util.triggerElementEvent(_this5, 'dialog-cancel'); + } + }); + } + } + }, { + key: 'attachedCallback', + value: function attachedCallback() { + var _this6 = this; + + this.onDeviceBackButton = function (e) { + return _this6.cancelable ? _this6._cancel() : e.callParentHandler(); + }; + + contentReady(this, function () { + _this6._mask.addEventListener('click', _this6._boundCancel, false); + }); + } + }, { + key: 'detachedCallback', + value: function detachedCallback() { + this._backButtonHandler.destroy(); + this._backButtonHandler = null; + + this._mask.removeEventListener('click', this._boundCancel.bind(this), false); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme); + } else if (name === 'animation') { + this._updateAnimatorFactory(); + } + } + }, { + key: '_mask', + + + /** + * @event preshow + * @description + * [en]Fired just before the alert dialog is displayed.[/en] + * [ja]アラートダイアログが表示される直前に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.alertDialog + * [en]Alert dialog object.[/en] + * [ja]アラートダイアログのオブジェクト。[/ja] + * @param {Function} event.cancel + * [en]Execute to stop the dialog from showing.[/en] + * [ja]この関数を実行すると、アラートダイアログの表示を止めます。[/ja] + */ + + /** + * @event postshow + * @description + * [en]Fired just after the alert dialog is displayed.[/en] + * [ja]アラートダイアログが表示された直後に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.alertDialog + * [en]Alert dialog object.[/en] + * [ja]アラートダイアログのオブジェクト。[/ja] + */ + + /** + * @event prehide + * @description + * [en]Fired just before the alert dialog is hidden.[/en] + * [ja]アラートダイアログが隠れる直前に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.alertDialog + * [en]Alert dialog object.[/en] + * [ja]アラートダイアログのオブジェクト。[/ja] + * @param {Function} event.cancel + * [en]Execute to stop the dialog from hiding.[/en] + * [ja]この関数を実行すると、アラートダイアログが閉じようとするのを止めます。[/ja] + */ + + /** + * @event posthide + * @description + * [en]Fired just after the alert dialog is hidden.[/en] + * [ja]アラートダイアログが隠れた後に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.alertDialog + * [en]Alert dialog object.[/en] + * [ja]アラートダイアログのオブジェクト。[/ja] + */ + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the dialog.[/en] + * [ja]ダイアログの見た目を指定します。[/ja] + */ + + /** + * @attribute cancelable + * @description + * [en]If this attribute is set the dialog can be closed by tapping the background or by pressing the back button on Android devices.[/en] + * [ja][/ja] + */ + + /** + * @attribute disabled + * @description + * [en]If this attribute is set the dialog is disabled.[/en] + * [ja]この属性がある時、アラートダイアログはdisabled状態になります。[/ja] + */ + + /** + * @attribute animation + * @type {String} + * @default default + * @description + * [en]The animation used when showing and hiding the dialog. Can be either `"none"` or `"default"`.[/en] + * [ja]ダイアログを表示する際のアニメーション名を指定します。デフォルトでは"none"か"default"が指定できます。[/ja] + */ + + /** + * @attribute animation-options + * @type {Expression} + * @description + * [en]Specify the animation's duration, timing and delay with an object literal. E.g. `{duration: 0.2, delay: 1, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。例:{duration: 0.2, delay: 1, timing: 'ease-in'}[/ja] + */ + + /** + * @attribute mask-color + * @type {String} + * @default rgba(0, 0, 0, 0.2) + * @description + * [en]Color of the background mask. Default is "rgba(0, 0, 0, 0.2)".[/en] + * [ja]背景のマスクの色を指定します。"rgba(0, 0, 0, 0.2)"がデフォルト値です。[/ja] + */ + + /** + * @return {Element} + */ + get: function get() { + return util.findChild(this, '.alert-dialog-mask'); + } + + /** + * @return {Element} + */ + + }, { + key: '_dialog', + get: function get() { + return util.findChild(this, '.alert-dialog'); + } + + /** + * @return {Element} + */ + + }, { + key: '_titleElement', + get: function get() { + return util.findChild(this._dialog.children[0], '.alert-dialog-title'); + } + + /** + * @return {Element} + */ + + }, { + key: '_contentElement', + get: function get() { + return util.findChild(this._dialog.children[0], '.alert-dialog-content'); + } + }, { + key: 'disabled', + set: function set(value) { + return util.toggleAttribute(this, 'disabled', value); + }, + get: function get() { + return this.hasAttribute('disabled'); + } + + /** + * @property cancelable + * @type {Boolean} + * @description + * [en]Whether the dialog is cancelable or not. A cancelable dialog can be closed by tapping the background or by pressing the back button on Android devices.[/en] + * [ja][/ja] + */ + + }, { + key: 'cancelable', + set: function set(value) { + return util.toggleAttribute(this, 'cancelable', value); + }, + get: function get() { + return this.hasAttribute('cancelable'); + } + }, { + key: 'visible', + get: function get() { + return this._visible; + } + + /** + * @property onDeviceBackButton + * @type {Object} + * @description + * [en]Back-button handler.[/en] + * [ja]バックボタンハンドラ。[/ja] + */ + + }, { + key: 'onDeviceBackButton', + get: function get() { + return this._backButtonHandler; + }, + set: function set(callback) { + if (this._backButtonHandler) { + this._backButtonHandler.destroy(); + } + + this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback); + } + }]); + return AlertDialogElement; + }(BaseElement); + + var OnsAlertDialogElement = window.OnsAlertDialogElement = document.registerElement('ons-alert-dialog', { + prototype: AlertDialogElement.prototype + }); + + /** + * @param {String} name + * @param {DialogAnimator} Animator + */ + OnsAlertDialogElement.registerAnimator = function (name, Animator) { + if (!(Animator.prototype instanceof AlertDialogAnimator)) { + throw new Error('"Animator" param must inherit OnsAlertDialogElement.AlertDialogAnimator'); + } + _animatorDict[name] = Animator; + }; + + OnsAlertDialogElement.AlertDialogAnimator = AlertDialogAnimator; + + var scheme$1 = { + '': 'back-button--*', + '.back-button__icon': 'back-button--*__icon', + '.back-button__label': 'back-button--*__label' + }; + + /** + * @element ons-back-button + * @category toolbar + * @description + * [en] + * Back button component for ``. Put it in the left part of the ``. + * + * It will find the parent `` element and pop a page when clicked. This behavior can be overriden by specifying the `onClick` property. + * [/en] + * [ja][/ja] + * @codepen aHmGL + * @tutorial vanilla/Reference/navigator + * @modifier material + * [en]Material Design style[/en] + * [ja][/ja] + * @seealso ons-toolbar + * [en]ons-toolbar component[/en] + * [ja]ons-toolbarコンポーネント[/ja] + * @seealso ons-navigator + * [en]ons-navigator component[/en] + * [ja]ons-navigatorコンポーネント[/ja] + * @guide Addingatoolbar + * [en]Adding a toolbar[/en] + * [ja]ツールバーの追加[/ja] + * @guide Returningfromapage + * [en]Returning from a page[/en] + * [ja]一つ前のページに戻る[/ja] + * @example + * + *
+ * Back + *
+ *
+ * Title + *
+ * + */ + + var BackButtonElement = function (_BaseElement) { + babelHelpers.inherits(BackButtonElement, _BaseElement); + + function BackButtonElement() { + babelHelpers.classCallCheck(this, BackButtonElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(BackButtonElement).apply(this, arguments)); + } + + babelHelpers.createClass(BackButtonElement, [{ + key: 'createdCallback', + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the back button.[/en] + * [ja]バックボタンの見た目を指定します。[/ja] + */ + + value: function createdCallback() { + var _this2 = this; + + contentReady(this, function () { + if (!_this2.hasAttribute('_compiled')) { + _this2._compile(); + } + }); + + this._options = {}; + this._boundOnClick = this._onClick.bind(this); + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.classList.add('back-button'); + + if (!util.findChild(this, '.back-button__label')) { + var label = util.create('span.back-button__label'); + + while (this.childNodes[0]) { + label.appendChild(this.childNodes[0]); + } + this.appendChild(label); + } + + if (!util.findChild(this, '.back-button__icon')) { + var icon = util.create('span.back-button__icon'); + + this.insertBefore(icon, this.children[0]); + } + + ModifierUtil.initModifier(this, scheme$1); + + this.setAttribute('_compiled', ''); + } + + /** + * @property options + * @type {Object} + * @description + * [en]Options object.[/en] + * [ja]オプションを指定するオブジェクト。[/ja] + */ + + /** + * @property options.animation + * @type {String} + * @description + * [en]Animation name. Available animations are "slide", "lift", "fade" and "none". + * These are platform based animations. For fixed animations, add "-ios" or "-md" + * suffix to the animation name. E.g. "lift-ios", "lift-md". Defaults values are "slide-ios" and "fade-md". + * [/en] + * [ja][/ja] + */ + + /** + * @property options.animationOptions + * @type {String} + * @description + * [en]Specify the animation's duration, delay and timing. E.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}`[/en] + * [ja]アニメーション時のduration, delay, timingを指定します。e.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}` [/ja] + */ + + /** + * @property options.callback + * @type {String} + * @description + * [en]Function that is called when the transition has ended.[/en] + * [ja]このメソッドによる画面遷移が終了した際に呼び出される関数オブジェクトを指定します。[/ja] + */ + + /** + * @property options.refresh + * @description + * [en]The previous page will be refreshed (destroyed and created again) before popPage action.[/en] + * [ja]popPageする前に、前にあるページを生成しなおして更新する場合にtrueを指定します。[/ja] + */ + + }, { + key: '_onClick', + + + /** + * @property onClick + * @type {Function} + * @description + * [en]Used to override the default back button behavior.[/en] + * [ja][/ja] + */ + value: function _onClick() { + if (this.onClick) { + this.onClick.apply(this); + } else { + var navigator = util.findParent(this, 'ons-navigator'); + if (navigator) { + navigator.popPage(this.options); + } + } + } + }, { + key: 'attachedCallback', + value: function attachedCallback() { + this.addEventListener('click', this._boundOnClick, false); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme$1); + } + } + }, { + key: 'detachedCallback', + value: function detachedCallback() { + this.removeEventListener('click', this._boundOnClick, false); + } + }, { + key: 'show', + value: function show() { + this.style.display = 'inline-block'; + } + }, { + key: 'hide', + value: function hide() { + this.style.display = 'none'; + } + }, { + key: 'options', + get: function get() { + return this._options; + }, + set: function set(object) { + this._options = object; + } + }]); + return BackButtonElement; + }(BaseElement); + + window.OnsBackButtonElement = document.registerElement('ons-back-button', { + prototype: BackButtonElement.prototype + }); + + var scheme$2 = { '': 'bottom-bar--*' }; + + /** + * @element ons-bottom-toolbar + * @category toolbar + * @description + * [en]Toolbar component that is positioned at the bottom of the page.[/en] + * [ja]ページ下部に配置されるツールバー用コンポーネントです。[/ja] + * @modifier transparent + * [en]Make the toolbar transparent.[/en] + * [ja]ツールバーの背景を透明にして表示します。[/ja] + * @seealso ons-toolbar [en]ons-toolbar component[/en][ja]ons-toolbarコンポーネント[/ja] + * @guide Addingatoolbar + * [en]Adding a toolbar[/en] + * [ja]ツールバーの追加[/ja] + * @example + * + * Content + * + */ + + var BottomToolbarElement = function (_BaseElement) { + babelHelpers.inherits(BottomToolbarElement, _BaseElement); + + function BottomToolbarElement() { + babelHelpers.classCallCheck(this, BottomToolbarElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(BottomToolbarElement).apply(this, arguments)); + } + + babelHelpers.createClass(BottomToolbarElement, [{ + key: 'createdCallback', + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the toolbar.[/en] + * [ja]ツールバーの見た目の表現を指定します。[/ja] + */ + + value: function createdCallback() { + var _this2 = this; + + this.classList.add('bottom-bar'); + + ModifierUtil.initModifier(this, scheme$2); + + this._tryToEnsureNodePosition(); + setImmediate(function () { + return _this2._tryToEnsureNodePosition(); + }); + } + }, { + key: 'attachedCallback', + value: function attachedCallback() { + var _this3 = this; + + this._tryToEnsureNodePosition(); + setImmediate(function () { + return _this3._tryToEnsureNodePosition(); + }); + } + }, { + key: '_tryToEnsureNodePosition', + value: function _tryToEnsureNodePosition() { + var page = util.findParent(this, 'ons-page'); + + if (page && page !== this.parentNode) { + page._registerBottomToolbar(this); + } + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + ModifierUtil.onModifierChanged(last, current, this, scheme$2); + } + } + }]); + return BottomToolbarElement; + }(BaseElement); + + window.OnsBottomToolbarElement = document.registerElement('ons-bottom-toolbar', { + prototype: BottomToolbarElement.prototype + }); + + var scheme$3 = { '': 'button--*' }; + + /** + * @element ons-button + * @category button + * @modifier outline + * [en]Button with outline and transparent background[/en] + * [ja]アウトラインを持ったボタンを表示します。[/ja] + * @modifier light + * [en]Button that doesn't stand out.[/en] + * [ja]目立たないボタンを表示します。[/ja] + * @modifier quiet + * [en]Button with no outline and or background..[/en] + * [ja]枠線や背景が無い文字だけのボタンを表示します。[/ja] + * @modifier cta + * [en]Button that really stands out.[/en] + * [ja]目立つボタンを表示します。[/ja] + * @modifier large + * [en]Large button that covers the width of the screen.[/en] + * [ja]横いっぱいに広がる大きなボタンを表示します。[/ja] + * @modifier large--quiet + * [en]Large quiet button.[/en] + * [ja]横いっぱいに広がるquietボタンを表示します。[/ja] + * @modifier large--cta + * [en]Large call to action button.[/en] + * [ja]横いっぱいに広がるctaボタンを表示します。[/ja] + * @modifier material + * [en]Material Design button[/en] + * [ja]マテリアルデザインのボタン[/ja] + * @modifier material--flat + * [en]Material Design flat button[/en] + * [ja]マテリアルデザインのフラットボタン[/ja] + * @description + * [en] + * Button component. If you want to place a button in a toolbar, use `` or `` instead. + * + * Will automatically display as a Material Design button with a ripple effect on Android. + * [/en] + * [ja]ボタン用コンポーネント。ツールバーにボタンを設置する場合は、ons-toolbar-buttonもしくはons-back-buttonコンポーネントを使用します。[/ja] + * @codepen hLayx + * @tutorial vanilla/Reference/button + * @guide Button [en]Guide for ``[/en][ja]の使い方[/ja] + * @guide OverridingCSSstyles [en]More details about the `modifier` attribute[/en][ja]modifier属性の使い方[/ja] + * @example + * + * Tap Me + * + */ + + var ButtonElement = function (_BaseElement) { + babelHelpers.inherits(ButtonElement, _BaseElement); + + function ButtonElement() { + babelHelpers.classCallCheck(this, ButtonElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(ButtonElement).apply(this, arguments)); + } + + babelHelpers.createClass(ButtonElement, [{ + key: 'createdCallback', + + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the button.[/en] + * [ja]ボタンの表現を指定します。[/ja] + */ + + /** + * @attribute ripple + * @description + * [en]If this attribute is defined, the button will have a ripple effect.[/en] + * [ja][/ja] + */ + + /** + * @attribute disabled + * @description + * [en]Specify if button should be disabled.[/en] + * [ja]ボタンを無効化する場合は指定します。[/ja] + */ + value: function createdCallback() { + if (!this.hasAttribute('_compiled')) { + this._compile(); + } + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + switch (name) { + case 'modifier': + ModifierUtil.onModifierChanged(last, current, this, scheme$3); + break; + case 'ripple': + this._updateRipple(); + } + } + + /** + * @property disabled + * @type {Boolean} + * @description + * [en]Whether the button is disabled or not.[/en] + * [ja]無効化されている場合に`true`。[/ja] + */ + + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.classList.add('button'); + + this._updateRipple(); + + ModifierUtil.initModifier(this, scheme$3); + + this.setAttribute('_compiled', ''); + } + }, { + key: '_updateRipple', + value: function _updateRipple() { + util.updateRipple(this); + } + }, { + key: 'disabled', + set: function set(value) { + return util.toggleAttribute(this, 'disabled', value); + }, + get: function get() { + return this.hasAttribute('disabled'); + } + }]); + return ButtonElement; + }(BaseElement); + + window.OnsButtonElement = document.registerElement('ons-button', { + prototype: ButtonElement.prototype + }); + + var scheme$4 = { '': 'carousel-item--*' }; + + /** + * @element ons-carousel-item + * @category carousel + * @description + * [en] + * Carousel item component. Used as a child of the `` element. + * [/en] + * [ja][/ja] + * @codepen xbbzOQ + * @tutorial vanilla/Reference/carousel + * @seealso ons-carousel + * [en]`` components[/en] + * [ja]コンポーネント[/ja] + * @example + * + * + * ... + * + * + * ... + * + * + */ + + var CarouselItemElement = function (_BaseElement) { + babelHelpers.inherits(CarouselItemElement, _BaseElement); + + function CarouselItemElement() { + babelHelpers.classCallCheck(this, CarouselItemElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(CarouselItemElement).apply(this, arguments)); + } + + babelHelpers.createClass(CarouselItemElement, [{ + key: 'createdCallback', + value: function createdCallback() { + this.style.width = '100%'; + ModifierUtil.initModifier(this, scheme$4); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme$4); + } + } + }]); + return CarouselItemElement; + }(BaseElement); + + window.OnsCarouselItemElement = document.registerElement('ons-carousel-item', { + prototype: CarouselItemElement.prototype + }); + + var VerticalModeTrait = { + + _getScrollDelta: function _getScrollDelta(event) { + return event.gesture.deltaY; + }, + + _getScrollVelocity: function _getScrollVelocity(event) { + return event.gesture.velocityY; + }, + + _getElementSize: function _getElementSize() { + if (!this._currentElementSize) { + this._currentElementSize = this.getBoundingClientRect().height; + } + + return this._currentElementSize; + }, + + _generateScrollTransform: function _generateScrollTransform(scroll) { + return 'translate3d(0px, ' + -scroll + 'px, 0px)'; + }, + + _updateDimensionData: function _updateDimensionData() { + this._style = window.getComputedStyle(this); + this._dimensions = this.getBoundingClientRect(); + }, + + _updateOffset: function _updateOffset() { + if (this.centered) { + var height = (this._dimensions.height || 0) - parseInt(this._style.paddingTop, 10) - parseInt(this._style.paddingBottom, 10); + this._offset = -(height - this._getCarouselItemSize()) / 2; + } + }, + + _layoutCarouselItems: function _layoutCarouselItems() { + var children = this._getCarouselItemElements(); + + var sizeAttr = this._getCarouselItemSizeAttr(); + var sizeInfo = this._decomposeSizeString(sizeAttr); + + for (var i = 0; i < children.length; i++) { + children[i].style.position = 'absolute'; + children[i].style.height = sizeAttr; + children[i].style.visibility = 'visible'; + children[i].style.top = i * sizeInfo.number + sizeInfo.unit; + } + }, + + _setup: function _setup() { + this._updateDimensionData(); + this._updateOffset(); + this._layoutCarouselItems(); + } + }; + + var HorizontalModeTrait = { + + _getScrollDelta: function _getScrollDelta(event) { + return event.gesture.deltaX; + }, + + _getScrollVelocity: function _getScrollVelocity(event) { + return event.gesture.velocityX; + }, + + _getElementSize: function _getElementSize() { + if (!this._currentElementSize) { + this._currentElementSize = this.getBoundingClientRect().width; + } + + return this._currentElementSize; + }, + + _generateScrollTransform: function _generateScrollTransform(scroll) { + return 'translate3d(' + -scroll + 'px, 0px, 0px)'; + }, + + _updateDimensionData: function _updateDimensionData() { + this._style = window.getComputedStyle(this); + this._dimensions = this.getBoundingClientRect(); + }, + + _updateOffset: function _updateOffset() { + if (this.centered) { + var width = (this._dimensions.width || 0) - parseInt(this._style.paddingLeft, 10) - parseInt(this._style.paddingRight, 10); + this._offset = -(width - this._getCarouselItemSize()) / 2; + } + }, + + _layoutCarouselItems: function _layoutCarouselItems() { + var children = this._getCarouselItemElements(); + + var sizeAttr = this._getCarouselItemSizeAttr(); + var sizeInfo = this._decomposeSizeString(sizeAttr); + + for (var i = 0; i < children.length; i++) { + children[i].style.position = 'absolute'; + children[i].style.width = sizeAttr; + children[i].style.visibility = 'visible'; + children[i].style.left = i * sizeInfo.number + sizeInfo.unit; + } + }, + + _setup: function _setup() { + this._updateDimensionData(); + this._updateOffset(); + this._layoutCarouselItems(); + } + }; + + /** + * @element ons-carousel + * @category carousel + * @description + * [en] + * Carousel component. A carousel can be used to display several items in the same space. + * + * The component supports displaying content both horizontally and vertically. The user can scroll through the items by dragging and it can also be controller programmatically. + * [/en] + * [ja][/ja] + * @codepen xbbzOQ + * @tutorial vanilla/Reference/carousel + * @seealso ons-carousel-item + * [en]`` component[/en] + * [ja]ons-carousel-itemコンポーネント[/ja] + * @guide UsingCarousel + * [en]Learn how to use the carousel component.[/en] + * [ja]carouselコンポーネントの使い方[/ja] + * @example + * + * + * ... + * + * + * ... + * + * + */ + + var CarouselElement = function (_BaseElement) { + babelHelpers.inherits(CarouselElement, _BaseElement); + + function CarouselElement() { + babelHelpers.classCallCheck(this, CarouselElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(CarouselElement).apply(this, arguments)); + } + + babelHelpers.createClass(CarouselElement, [{ + key: 'createdCallback', + + + /** + * @event postchange + * @description + * [en]Fired just after the current carousel item has changed.[/en] + * [ja]現在表示しているカルーセルの要素が変わった時に発火します。[/ja] + * @param {Object} event + * [en]Event object.[/en] + * [ja]イベントオブジェクトです。[/ja] + * @param {Object} event.carousel + * [en]Carousel object.[/en] + * [ja]イベントが発火したCarouselオブジェクトです。[/ja] + * @param {Number} event.activeIndex + * [en]Current active index.[/en] + * [ja]現在アクティブになっている要素のインデックス。[/ja] + * @param {Number} event.lastActiveIndex + * [en]Previous active index.[/en] + * [ja]以前アクティブだった要素のインデックス。[/ja] + */ + + /** + * @event refresh + * @description + * [en]Fired when the carousel has been refreshed.[/en] + * [ja]カルーセルが更新された時に発火します。[/ja] + * @param {Object} event + * [en]Event object.[/en] + * [ja]イベントオブジェクトです。[/ja] + * @param {Object} event.carousel + * [en]Carousel object.[/en] + * [ja]イベントが発火したCarouselオブジェクトです。[/ja] + */ + + /** + * @event overscroll + * @description + * [en]Fired when the carousel has been overscrolled.[/en] + * [ja]カルーセルがオーバースクロールした時に発火します。[/ja] + * @param {Object} event + * [en]Event object.[/en] + * [ja]イベントオブジェクトです。[/ja] + * @param {Object} event.carousel + * [en]Fired when the carousel has been refreshed.[/en] + * [ja]カルーセルが更新された時に発火します。[/ja] + * @param {Number} event.activeIndex + * [en]Current active index.[/en] + * [ja]現在アクティブになっている要素のインデックス。[/ja] + * @param {String} event.direction + * [en]Can be one of either "up", "down", "left" or "right".[/en] + * [ja]オーバースクロールされた方向が得られます。"up", "down", "left", "right"のいずれかの方向が渡されます。[/ja] + * @param {Function} event.waitToReturn + * [en]Takes a Promise object as an argument. The carousel will not scroll back until the promise has been resolved or rejected.[/en] + * [ja]この関数はPromiseオブジェクトを引数として受け取ります。渡したPromiseオブジェクトがresolveされるかrejectされるまで、カルーセルはスクロールバックしません。[/ja] + */ + + /** + * @attribute direction + * @type {String} + * @description + * [en]The direction of the carousel. Can be either "horizontal" or "vertical". Default is "horizontal".[/en] + * [ja]カルーセルの方向を指定します。"horizontal"か"vertical"を指定できます。"horizontal"がデフォルト値です。[/ja] + */ + + /** + * @attribute fullscreen + * @description + * [en]If this attribute is set the carousel will cover the whole screen.[/en] + * [ja]この属性があると、absoluteポジションを使ってカルーセルが自動的に画面いっぱいに広がります。[/ja] + */ + + /** + * @attribute overscrollable + * @description + * [en]If this attribute is set the carousel will be scrollable over the edge. It will bounce back when released.[/en] + * [ja]この属性がある時、タッチやドラッグで端までスクロールした時に、バウンドするような効果が当たります。[/ja] + */ + + /** + * @attribute centered + * @description + * [en]If this attribute is set the carousel then the selected item will be in the center of the carousel instead of the beginning. Useful only when the items are smaller than the carousel. [/en] + * [ja]この属性がある時、選んでいるons-carousel-itemはカルーセルの真ん中へ行きます。項目がカルーセルよりも小さい場合にのみ、これは便利です。[/ja] + */ + + /** + * @attribute item-width + * @type {String} + * @description + * [en]ons-carousel-item's width. Only works when the direction is set to "horizontal".[/en] + * [ja]ons-carousel-itemの幅を指定します。この属性は、direction属性に"horizontal"を指定した時のみ有効になります。[/ja] + */ + + /** + * @attribute item-height + * @type {String} + * @description + * [en]ons-carousel-item's height. Only works when the direction is set to "vertical".[/en] + * [ja]ons-carousel-itemの高さを指定します。この属性は、direction属性に"vertical"を指定した時のみ有効になります。[/ja] + */ + + /** + * @attribute auto-scroll + * @description + * [en]If this attribute is set the carousel will be automatically scrolled to the closest item border when released.[/en] + * [ja]この属性がある時、一番近いcarousel-itemの境界まで自動的にスクロールするようになります。[/ja] + */ + + /** + * @attribute auto-scroll-ratio + * @type {Number} + * @description + * [en]A number between 0.0 and 1.0 that specifies how much the user must drag the carousel in order for it to auto scroll to the next item.[/en] + * [ja]0.0から1.0までの値を指定します。カルーセルの要素をどれぐらいの割合までドラッグすると次の要素に自動的にスクロールするかを指定します。[/ja] + */ + + /** + * @attribute swipeable + * @description + * [en]If this attribute is set the carousel can be scrolled by drag or swipe.[/en] + * [ja]この属性がある時、カルーセルをスワイプやドラッグで移動できるようになります。[/ja] + */ + + /** + * @attribute disabled + * @description + * [en]If this attribute is set the carousel is disabled.[/en] + * [ja]この属性がある時、dragやtouchやswipeを受け付けなくなります。[/ja] + */ + + /** + * @attribute initial-index + * @initonly + * @type {Number} + * @description + * [en]Specify the index of the ons-carousel-item to show initially. Default is 0.[/en] + * [ja]最初に表示するons-carousel-itemを0始まりのインデックスで指定します。デフォルト値は 0 です。[/ja] + */ + + /** + * @attribute auto-refresh + * @description + * [en]When this attribute is set the carousel will automatically refresh when the number of child nodes change.[/en] + * [ja]この属性がある時、子要素の数が変わるとカルーセルは自動的に更新されるようになります。[/ja] + */ + + /** + * @attribute animation-options + * @type {Expression} + * @description + * [en]Specify the animation's duration, timing and delay with an object literal. E.g. `{duration: 0.2, delay: 1, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。例:{duration: 0.2, delay: 1, timing: 'ease-in'}[/ja] + */ + + value: function createdCallback() { + this._doorLock = new DoorLock(); + this._scroll = 0; + this._offset = 0; + this._lastActiveIndex = 0; + + this._boundOnDrag = this._onDrag.bind(this); + this._boundOnDragEnd = this._onDragEnd.bind(this); + this._boundOnResize = this._onResize.bind(this); + + this._mixin(this._isVertical() ? VerticalModeTrait : HorizontalModeTrait); + } + }, { + key: '_onResize', + value: function _onResize() { + var i = this._scroll / this._currentElementSize; + delete this._currentElementSize; + this.setActiveIndex(i); + } + }, { + key: '_onDirectionChange', + value: function _onDirectionChange() { + if (this._isVertical()) { + this.style.overflowX = 'auto'; + this.style.overflowY = ''; + } else { + this.style.overflowX = ''; + this.style.overflowY = 'auto'; + } + + this.refresh(); + } + }, { + key: '_saveLastState', + value: function _saveLastState() { + this._lastState = { + elementSize: this._getCarouselItemSize(), + carouselElementCount: this.itemCount, + width: this._getCarouselItemSize() * this.itemCount + }; + } + + /** + * @return {Number} + */ + + }, { + key: '_getCarouselItemSize', + value: function _getCarouselItemSize() { + var sizeAttr = this._getCarouselItemSizeAttr(); + var sizeInfo = this._decomposeSizeString(sizeAttr); + var elementSize = this._getElementSize(); + + if (sizeInfo.unit === '%') { + return Math.round(sizeInfo.number / 100 * elementSize); + } else if (sizeInfo.unit === 'px') { + return sizeInfo.number; + } else { + throw new Error('Invalid state'); + } + } + + /** + * @return {Number} + */ + + }, { + key: '_getInitialIndex', + value: function _getInitialIndex() { + var index = parseInt(this.getAttribute('initial-index'), 10); + + if (typeof index === 'number' && !isNaN(index)) { + return Math.max(Math.min(index, this.itemCount - 1), 0); + } else { + return 0; + } + } + + /** + * @return {String} + */ + + }, { + key: '_getCarouselItemSizeAttr', + value: function _getCarouselItemSizeAttr() { + var attrName = 'item-' + (this._isVertical() ? 'height' : 'width'); + var itemSizeAttr = ('' + this.getAttribute(attrName)).trim(); + + return itemSizeAttr.match(/^\d+(px|%)$/) ? itemSizeAttr : '100%'; + } + + /** + * @return {Object} + */ + + }, { + key: '_decomposeSizeString', + value: function _decomposeSizeString(size) { + var matches = size.match(/^(\d+)(px|%)/); + + return { + number: parseInt(matches[1], 10), + unit: matches[2] + }; + } + }, { + key: '_setupInitialIndex', + value: function _setupInitialIndex() { + this._scroll = (this._offset || 0) + this._getCarouselItemSize() * this._getInitialIndex(); + this._lastActiveIndex = this._getInitialIndex(); + this._scrollTo(this._scroll); + } + + /** + * @method setActiveIndex + * @signature setActiveIndex(index, [options]) + * @param {Number} index + * [en]The index that the carousel should be set to.[/en] + * [ja]carousel要素のインデックスを指定します。[/ja] + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja][/ja] + * @param {Function} [options.callback] + * [en]A function that will be called after the animation is finished.[/en] + * [ja][/ja] + * @param {String} [options.animation] + * [en]If this attribute is set to `"none"` the transitions will not be animated.[/en] + * [ja][/ja] + * @param {Object} [options.animationOptions] + * [en]An object that can be used to specify duration, delay and timing function of the animation.[/en] + * [ja][/ja] + * @description + * [en]Specify the index of the `` to show.[/en] + * [ja]表示するons-carousel-itemをindexで指定します。[/ja] + * @return {Promise} + * [en]Resolves to the carousel element.[/en] + * [ja][/ja] + */ + + }, { + key: 'setActiveIndex', + value: function setActiveIndex(index) { + var _this2 = this; + + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + if (options && (typeof options === 'undefined' ? 'undefined' : babelHelpers.typeof(options)) != 'object') { + throw new Error('options must be an object. You supplied ' + options); + } + + options.animationOptions = util.extend({ duration: 0.3, timing: 'cubic-bezier(.1, .7, .1, 1)' }, options.animationOptions || {}, this.hasAttribute('animation-options') ? util.animationOptionsParse(this.getAttribute('animation-options')) : {}); + + index = Math.max(0, Math.min(index, this.itemCount - 1)); + var scroll = (this._offset || 0) + this._getCarouselItemSize() * index; + var max = this._calculateMaxScroll(); + + this._scroll = Math.max(0, Math.min(max, scroll)); + return this._scrollTo(this._scroll, options).then(function () { + _this2._tryFirePostChangeEvent(); + return _this2; + }); + } + + /** + * @method getActiveIndex + * @signature getActiveIndex() + * @return {Number} + * [en]The current carousel item index.[/en] + * [ja]現在表示しているカルーセル要素のインデックスが返されます。[/ja] + * @description + * [en]Returns the index of the currently visible ``.[/en] + * [ja]現在表示されているons-carousel-item要素のインデックスを返します。[/ja] + */ + + }, { + key: 'getActiveIndex', + value: function getActiveIndex() { + var scroll = this._scroll - (this._offset || 0); + var count = this.itemCount; + var size = this._getCarouselItemSize(); + + if (scroll < 0) { + return 0; + } + + var i = void 0; + for (i = 0; i < count; i++) { + if (size * i <= scroll && size * (i + 1) > scroll) { + return i; + } + } + + // max carousel index + return i; + } + + /** + * @method next + * @signature next([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja][/ja] + * @param {Function} [options.callback] + * [en]A function that will be executed after the animation has finished.[/en] + * [ja][/ja] + * @param {String} [options.animation] + * [en]If this attribute is set to `"none"` the transitions will not be animated.[/en] + * [ja][/ja] + * @param {Object} [options.animationOptions] + * [en]An object that can be used to specify the duration, delay and timing function of the animation.[/en] + * [ja][/ja] + * @return {Promise} + * [en]Resolves to the carousel element[/en] + * [ja][/ja] + * @description + * [en]Show next ``.[/en] + * [ja]次のons-carousel-itemを表示します。[/ja] + */ + + }, { + key: 'next', + value: function next(options) { + return this.setActiveIndex(this.getActiveIndex() + 1, options); + } + + /** + * @method prev + * @signature prev([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja][/ja] + * @param {Function} [options.callback] + * [en]A function that will be executed after the animation has finished.[/en] + * [ja][/ja] + * @param {String} [options.animation] + * [en]If this attribute is set to `"none"` the transitions will not be animated.[/en] + * [ja][/ja] + * @param {Object} [options.animationOptions] + * [en]An object that can be used to specify the duration, delay and timing function of the animation.[/en] + * [ja][/ja] + * @return {Promise} + * [en]Resolves to the carousel element[/en] + * [ja][/ja] + * @description + * [en]Show previous ``.[/en] + * [ja]前のons-carousel-itemを表示します。[/ja] + */ + + }, { + key: 'prev', + value: function prev(options) { + return this.setActiveIndex(this.getActiveIndex() - 1, options); + } + + /** + * @return {Boolean} + */ + + }, { + key: '_isEnabledChangeEvent', + value: function _isEnabledChangeEvent() { + var elementSize = this._getElementSize(); + var carouselItemSize = this._getCarouselItemSize(); + + return this.autoScroll && elementSize === carouselItemSize; + } + + /** + * @return {Boolean} + */ + + }, { + key: '_isVertical', + value: function _isVertical() { + return this.getAttribute('direction') === 'vertical'; + } + }, { + key: '_prepareEventListeners', + value: function _prepareEventListeners() { + var _this3 = this; + + this._gestureDetector = new GestureDetector(this, { dragMinDistance: 1 }); + this._mutationObserver = new MutationObserver(function () { + return _this3.refresh(); + }); + + this._updateSwipeable(); + this._updateAutoRefresh(); + + window.addEventListener('resize', this._boundOnResize, true); + } + }, { + key: '_removeEventListeners', + value: function _removeEventListeners() { + this._gestureDetector.dispose(); + this._gestureDetector = null; + + this._mutationObserver.disconnect(); + this._mutationObserver = null; + + window.removeEventListener('resize', this._boundOnResize, true); + } + }, { + key: '_updateSwipeable', + value: function _updateSwipeable() { + if (this._gestureDetector) { + if (this.swipeable) { + this._gestureDetector.on('drag dragleft dragright dragup dragdown swipe swipeleft swiperight swipeup swipedown', this._boundOnDrag); + this._gestureDetector.on('dragend', this._boundOnDragEnd); + } else { + this._gestureDetector.off('drag dragleft dragright dragup dragdown swipe swipeleft swiperight swipeup swipedown', this._boundOnDrag); + this._gestureDetector.off('dragend', this._boundOnDragEnd); + } + } + } + }, { + key: '_updateAutoRefresh', + value: function _updateAutoRefresh() { + if (this._mutationObserver) { + if (this.hasAttribute('auto-refresh')) { + this._mutationObserver.observe(this, { childList: true }); + } else { + this._mutationObserver.disconnect(); + } + } + } + }, { + key: '_tryFirePostChangeEvent', + value: function _tryFirePostChangeEvent() { + var currentIndex = this.getActiveIndex(); + + if (this._lastActiveIndex !== currentIndex) { + var lastActiveIndex = this._lastActiveIndex; + this._lastActiveIndex = currentIndex; + + util.triggerElementEvent(this, 'postchange', { + carousel: this, + activeIndex: currentIndex, + lastActiveIndex: lastActiveIndex + }); + } + } + }, { + key: '_onDrag', + value: function _onDrag(event) { + var direction = event.gesture.direction; + if (this._isVertical() && (direction === 'left' || direction === 'right') || !this._isVertical() && (direction === 'up' || direction === 'down')) { + return; + } + + event.stopPropagation(); + + this._lastDragEvent = event; + + var scroll = this._scroll - this._getScrollDelta(event); + this._scrollTo(scroll); + event.gesture.preventDefault(); + + this._tryFirePostChangeEvent(); + } + }, { + key: '_onDragEnd', + value: function _onDragEnd(event) { + var _this4 = this; + + this._currentElementSize = undefined; + + this._scroll = this._scroll - this._getScrollDelta(event); + + if (this._getScrollDelta(event) !== 0) { + event.stopPropagation(); + } + + if (this._isOverScroll(this._scroll)) { + var waitForAction = false; + util.triggerElementEvent(this, 'overscroll', { + carousel: this, + activeIndex: this.getActiveIndex(), + direction: this._getOverScrollDirection(), + waitToReturn: function waitToReturn(promise) { + waitForAction = true; + promise.then(function () { + return _this4._scrollToKillOverScroll(); + }); + } + }); + + if (!waitForAction) { + this._scrollToKillOverScroll(); + } + } else { + this._startMomentumScroll(); + } + this._lastDragEvent = null; + + event.gesture.preventDefault(); + } + + /** + * @param {Object} trait + */ + + }, { + key: '_mixin', + value: function _mixin(trait) { + Object.keys(trait).forEach(function (key) { + this[key] = trait[key]; + }.bind(this)); + } + }, { + key: '_startMomentumScroll', + value: function _startMomentumScroll() { + if (this._lastDragEvent) { + var velocity = this._getScrollVelocity(this._lastDragEvent); + var duration = 0.3; + var scrollDelta = duration * 100 * velocity; + var scroll = this._normalizeScrollPosition(this._scroll + (this._getScrollDelta(this._lastDragEvent) > 0 ? -scrollDelta : scrollDelta)); + + this._scroll = scroll; + + animit(this._getCarouselItemElements()).queue({ + transform: this._generateScrollTransform(this._scroll) + }, { + duration: duration, + timing: 'cubic-bezier(.1, .7, .1, 1)' + }).queue(function (done) { + done(); + this._tryFirePostChangeEvent(); + }.bind(this)).play(); + } + } + }, { + key: '_normalizeScrollPosition', + value: function _normalizeScrollPosition(scroll) { + var max = this._calculateMaxScroll(); + + if (!this.autoScroll) { + return Math.max(0, Math.min(max, scroll)); + } + var arr = []; + var size = this._getCarouselItemSize(); + var nbrOfItems = this.itemCount; + + for (var i = 0; i < nbrOfItems; i++) { + if (i * size + this._offset < max) { + arr.push(i * size + this._offset); + } + } + arr.push(max); + + arr.sort(function (left, right) { + left = Math.abs(left - scroll); + right = Math.abs(right - scroll); + + return left - right; + }); + + arr = arr.filter(function (item, pos) { + return !pos || item != arr[pos - 1]; + }); + + var lastScroll = this._lastActiveIndex * size + this._offset; + var scrollRatio = Math.abs(scroll - lastScroll) / size; + var result = arr[0]; + + if (scrollRatio <= this.autoScrollRatio) { + result = lastScroll; + } else if (scrollRatio < 1.0) { + if (arr[0] === lastScroll && arr.length > 1) { + result = arr[1]; + } + } + + return Math.max(0, Math.min(max, result)); + } + + /** + * @return {Array} + */ + + }, { + key: '_getCarouselItemElements', + value: function _getCarouselItemElements() { + return util.arrayFrom(this.children).filter(function (child) { + return child.nodeName.toLowerCase() === 'ons-carousel-item'; + }); + } + + /** + * @param {Number} scroll + * @param {Object} [options] + * @return {Promise} Resolves to the carousel element + */ + + }, { + key: '_scrollTo', + value: function _scrollTo(scroll) { + var _this5 = this; + + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var isOverscrollable = this.overscrollable; + + var normalizeScroll = function normalizeScroll(scroll) { + var ratio = 0.35; + + if (scroll < 0) { + return isOverscrollable ? Math.round(scroll * ratio) : 0; + } + + var maxScroll = _this5._calculateMaxScroll(); + if (maxScroll < scroll) { + return isOverscrollable ? maxScroll + Math.round((scroll - maxScroll) * ratio) : maxScroll; + } + + return scroll; + }; + + return new Promise(function (resolve) { + animit(_this5._getCarouselItemElements()).queue({ + transform: _this5._generateScrollTransform(normalizeScroll(scroll)) + }, options.animation !== 'none' ? options.animationOptions : {}).play(function () { + if (options.callback instanceof Function) { + options.callback(); + } + resolve(); + }); + }); + } + }, { + key: '_calculateMaxScroll', + value: function _calculateMaxScroll() { + var max = this.itemCount * this._getCarouselItemSize() - this._getElementSize(); + return Math.ceil(max < 0 ? 0 : max); // Need to return an integer value. + } + }, { + key: '_isOverScroll', + value: function _isOverScroll(scroll) { + if (scroll < 0 || scroll > this._calculateMaxScroll()) { + return true; + } + return false; + } + }, { + key: '_getOverScrollDirection', + value: function _getOverScrollDirection() { + if (this._isVertical()) { + return this._scroll <= 0 ? 'up' : 'down'; + } else { + return this._scroll <= 0 ? 'left' : 'right'; + } + } + }, { + key: '_scrollToKillOverScroll', + value: function _scrollToKillOverScroll() { + var duration = 0.4; + + if (this._scroll < 0) { + animit(this._getCarouselItemElements()).queue({ + transform: this._generateScrollTransform(0) + }, { + duration: duration, + timing: 'cubic-bezier(.1, .4, .1, 1)' + }).queue(function (done) { + done(); + this._tryFirePostChangeEvent(); + }.bind(this)).play(); + this._scroll = 0; + return; + } + + var maxScroll = this._calculateMaxScroll(); + + if (maxScroll < this._scroll) { + animit(this._getCarouselItemElements()).queue({ + transform: this._generateScrollTransform(maxScroll) + }, { + duration: duration, + timing: 'cubic-bezier(.1, .4, .1, 1)' + }).queue(function (done) { + done(); + this._tryFirePostChangeEvent(); + }.bind(this)).play(); + this._scroll = maxScroll; + return; + } + + return; + } + + /** + * @property itemCount + * @readonly + * @type {Number} + * @description + * [en]The number of carousel items.[/en] + * [ja]カルーセル要素の数です。[/ja] + */ + + }, { + key: 'refresh', + + + /** + * @method refresh + * @signature refresh() + * @description + * [en]Update the layout of the carousel. Used when adding `` dynamically or to automatically adjust the size.[/en] + * [ja]レイアウトや内部の状態を最新のものに更新します。ons-carousel-itemを動的に増やしたり、ons-carouselの大きさを動的に変える際に利用します。[/ja] + */ + value: function refresh() { + // Bug fix + if (this._getCarouselItemSize() === 0) { + return; + } + + this._mixin(this._isVertical() ? VerticalModeTrait : HorizontalModeTrait); + this._setup(); + + if (this._lastState && this._lastState.width > 0) { + var scroll = this._scroll; // - this._offset; + + if (this._isOverScroll(scroll)) { + this._scrollToKillOverScroll(); + } else { + if (this.autoScroll) { + scroll = this._normalizeScrollPosition(scroll); + } + + this._scrollTo(scroll); + } + } + + this._saveLastState(); + + util.triggerElementEvent(this, 'refresh', { carousel: this }); + } + + /** + * @method first + * @signature first() + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja][/ja] + * @param {Function} [options.callback] + * [en]A function that will be executed after the animation has finished.[/en] + * [ja][/ja] + * @param {String} [options.animation] + * [en]If this attribute is set to `"none"` the transitions will not be animated.[/en] + * [ja][/ja] + * @param {Object} [options.animationOptions] + * [en]An object that can be used to specify the duration, delay and timing function of the animation.[/en] + * [ja][/ja] + * @return {Promise} + * [en]Resolves to the carousel element[/en] + * [ja][/ja] + * @description + * [en]Show first ``.[/en] + * [ja]最初のons-carousel-itemを表示します。[/ja] + */ + + }, { + key: 'first', + value: function first(options) { + return this.setActiveIndex(0, options); + } + + /** + * @method last + * @signature last() + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja][/ja] + * @param {Function} [options.callback] + * [en]A function that will be executed after the animation has finished.[/en] + * [ja][/ja] + * @param {String} [options.animation] + * [en]If this attribute is set to `"none"` the transitions will not be animated.[/en] + * [ja][/ja] + * @param {Object} [options.animationOptions] + * [en]An object that can be used to specify the duration, delay and timing function of the animation.[/en] + * [ja][/ja] + * @return {Promise} + * [en]Resolves to the carousel element[/en] + * [ja]Resolves to the carousel element[/ja] + * @description + * [en]Show last ons-carousel item.[/en] + * [ja]最後のons-carousel-itemを表示します。[/ja] + */ + + }, { + key: 'last', + value: function last(options) { + this.setActiveIndex(Math.max(this.itemCount - 1, 0), options); + } + }, { + key: 'attachedCallback', + value: function attachedCallback() { + var _this6 = this; + + this._prepareEventListeners(); + + this._setup(); + this._setupInitialIndex(); + + this._saveLastState(); + + // Fix rendering glitch on Android 4.1 + if (this.offsetHeight === 0) { + setImmediate(function () { + return _this6.refresh(); + }); + } + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + switch (name) { + case 'swipeable': + this._updateSwipeable(); + break; + case 'auto-refresh': + this._updateAutoRefresh(); + break; + case 'direction': + this._onDirectionChange(); + } + } + }, { + key: 'detachedCallback', + value: function detachedCallback() { + this._removeEventListeners(); + } + + /** + * @property autoScrollRatio + * @type {Number} + * @description + * [en]The current auto scroll ratio. [/en] + * [ja]現在のオートスクロールのratio値。[/ja] + */ + + }, { + key: 'itemCount', + get: function get() { + return this._getCarouselItemElements().length; + } + }, { + key: 'autoScrollRatio', + get: function get() { + var attr = this.getAttribute('auto-scroll-ratio'); + + if (!attr) { + return 0.5; + } + + var scrollRatio = parseFloat(attr); + if (scrollRatio < 0.0 || scrollRatio > 1.0) { + throw new Error('Invalid ratio.'); + } + + return isNaN(scrollRatio) ? 0.5 : scrollRatio; + }, + set: function set(ratio) { + if (ratio < 0.0 || ratio > 1.0) { + throw new Error('Invalid ratio.'); + } + + this.setAttribute('auto-scroll-ratio', ratio); + } + + /** + * @property swipeable + * @type {Boolean} + * @description + * [en]true if the carousel is swipeable.[/en] + * [ja]swipeableであればtrueを返します。[/ja] + */ + + }, { + key: 'swipeable', + get: function get() { + return this.hasAttribute('swipeable'); + }, + set: function set(value) { + return util.toggleAttribute(this, 'swipeable', value); + } + + /** + * @property autoScroll + * @type {Boolean} + * @description + * [en]true if auto scroll is enabled.[/en] + * [ja]オートスクロールが有効であればtrueを返します。[/ja] + */ + + }, { + key: 'autoScroll', + get: function get() { + return this.hasAttribute('auto-scroll'); + }, + set: function set(value) { + return util.toggleAttribute(this, 'auto-scroll', value); + } + + /** + * @property disabled + * @type {Boolean} + * @description + * [en]Whether the carousel is disabled or not.[/en] + * [ja]無効化されている場合に`true`。[/ja] + */ + + }, { + key: 'disabled', + get: function get() { + return this.hasAttribute('disabled'); + }, + set: function set(value) { + return util.toggleAttribute(this, 'disabled', value); + } + + /** + * @property overscrollable + * @type {Boolean} + * @description + * [en]Whether the carousel is overscrollable or not.[/en] + * [ja]overscrollできればtrueを返します。[/ja] + */ + + }, { + key: 'overscrollable', + get: function get() { + return this.hasAttribute('overscrollable'); + }, + set: function set(value) { + return util.toggleAttribute(this, 'overscrollable', value); + } + + /** + * @property centered + * @type {Boolean} + * @description + * [en]Whether the carousel is centered or not.[/en] + * [ja]centered状態になっていればtrueを返します。[/ja] + */ + + }, { + key: 'centered', + get: function get() { + return this.hasAttribute('centered'); + }, + set: function set(value) { + return util.toggleAttribute(this, 'centered', value); + } + }]); + return CarouselElement; + }(BaseElement); + + window.OnsCarouselElement = document.registerElement('ons-carousel', { + prototype: CarouselElement.prototype + }); + + /** + * @element ons-col + * @category grid + * @description + * [en]Represents a column in the grid system. Use with `` to layout components.[/en] + * [ja]グリッドシステムにて列を定義します。ons-rowとともに使用し、コンポーネントのレイアウトに利用します。[/ja] + * @note + * [en]For Android 4.3 and earlier, and iOS6 and earlier, when using mixed alignment with ons-row and ons-column, they may not be displayed correctly. You can use only one alignment.[/en] + * [ja]Android 4.3以前、もしくはiOS 6以前のOSの場合、ons-rowとons-columnを組み合わせた場合に描画が崩れる場合があります。[/ja] + * @codepen GgujC {wide} + * @guide layouting [en]Layouting guide[/en][ja]レイアウト機能[/ja] + * @seealso ons-row + * [en]The `` component is the parent of ``.[/en] + * [ja]ons-rowコンポーネント[/ja] + * @example + * + * + * Text + * + */ + + /** + * @attribute vertical-align + * @type {String} + * @description + * [en]Vertical alignment of the column. Valid values are "top", "center", and "bottom".[/en] + * [ja]縦の配置を指定する。"top", "center", "bottom"のいずれかを指定します。[/ja] + */ + + /** + * @attribute width + * @type {String} + * @description + * [en]The width of the column. Valid values are css width values ("10%", "50px").[/en] + * [ja]カラムの横幅を指定する。パーセントもしくはピクセルで指定します(10%や50px)。[/ja] + */ + + var ColumnElement = function (_BaseElement) { + babelHelpers.inherits(ColumnElement, _BaseElement); + + function ColumnElement() { + babelHelpers.classCallCheck(this, ColumnElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(ColumnElement).apply(this, arguments)); + } + + babelHelpers.createClass(ColumnElement, [{ + key: 'createdCallback', + value: function createdCallback() { + if (this.getAttribute('width')) { + this._updateWidth(); + } + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'width') { + this._updateWidth(); + } + } + }, { + key: '_updateWidth', + value: function _updateWidth() { + var width = this.getAttribute('width'); + if (typeof width === 'string') { + width = ('' + width).trim(); + width = width.match(/^\d+$/) ? width + '%' : width; + + this.style.webkitBoxFlex = '0'; + this.style.webkitFlex = '0 0 ' + width; + this.style.mozBoxFlex = '0'; + this.style.mozFlex = '0 0 ' + width; + this.style.msFlex = '0 0 ' + width; + this.style.flex = '0 0 ' + width; + this.style.maxWidth = width; + } + } + }]); + return ColumnElement; + }(BaseElement); + + window.OnsColElement = document.registerElement('ons-col', { + prototype: ColumnElement.prototype + }); + + /* + Copyright 2013-2015 ASIAL CORPORATION + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + */ + + var DialogAnimator = function () { + function DialogAnimator() { + var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref$timing = _ref.timing; + var timing = _ref$timing === undefined ? 'linear' : _ref$timing; + var _ref$delay = _ref.delay; + var delay = _ref$delay === undefined ? 0 : _ref$delay; + var _ref$duration = _ref.duration; + var duration = _ref$duration === undefined ? 0.2 : _ref$duration; + babelHelpers.classCallCheck(this, DialogAnimator); + + this.timing = timing; + this.delay = delay; + this.duration = duration; + } + + /** + * @param {HTMLElement} dialog + * @param {Function} done + */ + + + babelHelpers.createClass(DialogAnimator, [{ + key: 'show', + value: function show(dialog, done) { + done(); + } + + /** + * @param {HTMLElement} dialog + * @param {Function} done + */ + + }, { + key: 'hide', + value: function hide(dialog, done) { + done(); + } + }]); + return DialogAnimator; + }(); + + /** + * Android style animator for dialog. + */ + var AndroidDialogAnimator = function (_DialogAnimator) { + babelHelpers.inherits(AndroidDialogAnimator, _DialogAnimator); + + function AndroidDialogAnimator() { + var _ref2 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref2$timing = _ref2.timing; + var timing = _ref2$timing === undefined ? 'ease-in-out' : _ref2$timing; + var _ref2$delay = _ref2.delay; + var delay = _ref2$delay === undefined ? 0 : _ref2$delay; + var _ref2$duration = _ref2.duration; + var duration = _ref2$duration === undefined ? 0.3 : _ref2$duration; + babelHelpers.classCallCheck(this, AndroidDialogAnimator); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(AndroidDialogAnimator).call(this, { timing: timing, delay: delay, duration: duration })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + + babelHelpers.createClass(AndroidDialogAnimator, [{ + key: 'show', + value: function show(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 0 + }).wait(this.delay).queue({ + opacity: 1.0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3d(-50%, -60%, 0)', + opacity: 0.0 + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3d(-50%, -50%, 0)', + opacity: 1.0 + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + }, { + key: 'hide', + value: function hide(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 1.0 + }).wait(this.delay).queue({ + opacity: 0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3d(-50%, -50%, 0)', + opacity: 1.0 + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3d(-50%, -60%, 0)', + opacity: 0.0 + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + }]); + return AndroidDialogAnimator; + }(DialogAnimator); + + /** + * iOS style animator for dialog. + */ + var IOSDialogAnimator = function (_DialogAnimator2) { + babelHelpers.inherits(IOSDialogAnimator, _DialogAnimator2); + + function IOSDialogAnimator() { + var _ref3 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref3$timing = _ref3.timing; + var timing = _ref3$timing === undefined ? 'ease-in-out' : _ref3$timing; + var _ref3$delay = _ref3.delay; + var delay = _ref3$delay === undefined ? 0 : _ref3$delay; + var _ref3$duration = _ref3.duration; + var duration = _ref3$duration === undefined ? 0.3 : _ref3$duration; + babelHelpers.classCallCheck(this, IOSDialogAnimator); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(IOSDialogAnimator).call(this, { timing: timing, delay: delay, duration: duration })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + + babelHelpers.createClass(IOSDialogAnimator, [{ + key: 'show', + value: function show(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 0 + }).wait(this.delay).queue({ + opacity: 1.0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3d(-50%, 300%, 0)' + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3d(-50%, -50%, 0)' + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + }, { + key: 'hide', + value: function hide(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 1.0 + }).wait(this.delay).queue({ + opacity: 0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3d(-50%, -50%, 0)' + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3d(-50%, 300%, 0)' + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + }]); + return IOSDialogAnimator; + }(DialogAnimator); + + /** + * Slide animator for dialog. + */ + var SlideDialogAnimator = function (_DialogAnimator3) { + babelHelpers.inherits(SlideDialogAnimator, _DialogAnimator3); + + function SlideDialogAnimator() { + var _ref4 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref4$timing = _ref4.timing; + var timing = _ref4$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref4$timing; + var _ref4$delay = _ref4.delay; + var delay = _ref4$delay === undefined ? 0 : _ref4$delay; + var _ref4$duration = _ref4.duration; + var duration = _ref4$duration === undefined ? 0.2 : _ref4$duration; + babelHelpers.classCallCheck(this, SlideDialogAnimator); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(SlideDialogAnimator).call(this, { timing: timing, delay: delay, duration: duration })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + + babelHelpers.createClass(SlideDialogAnimator, [{ + key: 'show', + value: function show(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 0 + }).wait(this.delay).queue({ + opacity: 1.0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3D(-50%, -350%, 0)' + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3D(-50%, -50%, 0)' + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + + /** + * @param {Object} dialog + * @param {Function} callback + */ + + }, { + key: 'hide', + value: function hide(dialog, callback) { + callback = callback ? callback : function () {}; + + animit.runAll(animit(dialog._mask).queue({ + opacity: 1.0 + }).wait(this.delay).queue({ + opacity: 0 + }, { + duration: this.duration, + timing: this.timing + }), animit(dialog._dialog).saveStyle().queue({ + css: { + transform: 'translate3D(-50%, -50%, 0)' + }, + duration: 0 + }).wait(this.delay).queue({ + css: { + transform: 'translate3D(-50%, -350%, 0)' + }, + duration: this.duration, + timing: this.timing + }).restoreStyle().queue(function (done) { + callback(); + done(); + })); + } + }]); + return SlideDialogAnimator; + }(DialogAnimator); + + var scheme$5 = { + '.dialog': 'dialog--*', + '.dialog-container': 'dialog-container--*', + '.dialog-mask': 'dialog-mask--*' + }; + + var _animatorDict$1 = { + 'default': function _default() { + return platform.isAndroid() ? AndroidDialogAnimator : IOSDialogAnimator; + }, + 'fade': function fade() { + return platform.isAndroid() ? AndroidDialogAnimator : IOSDialogAnimator; + }, + 'slide': SlideDialogAnimator, + 'none': DialogAnimator + }; + + /** + * @element ons-dialog + * @category dialog + * @description + * [en] + * Dialog that is displayed on top of current screen. As opposed to the `` element, this component can contain any kind of content. + * + * To use the element it can either be attached directly to the `` element or dynamically created from a template using the `` tag. + * + * The dialog is useful for displaying menus, additional information or to ask the user to make a decision. + * + * It will automatically be displayed as Material Design when running on an Android device. + * [/en] + * [ja][/ja] + * @modifier material + * [en]Display a Material Design dialog.[/en] + * [ja]マテリアルデザインのダイアログを表示します。[/ja] + * @codepen zxxaGa + * @tutorial vanilla/Reference/dialog + * @guide UsingDialog + * [en]Learn how to use the dialog component.[/en] + * [ja]ダイアログコンポーネントの使い方[/ja] + * @seealso ons-alert-dialog + * [en]`` component[/en] + * [ja]ons-alert-dialogコンポーネント[/ja] + * @seealso ons-popover + * [en]`` component[/en] + * [ja]ons-popoverコンポーネント[/ja] + * @example + * + *

This is a dialog!

+ *
+ * + * + */ + + var DialogElement = function (_BaseElement) { + babelHelpers.inherits(DialogElement, _BaseElement); + + function DialogElement() { + babelHelpers.classCallCheck(this, DialogElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(DialogElement).apply(this, arguments)); + } + + babelHelpers.createClass(DialogElement, [{ + key: 'createdCallback', + value: function createdCallback() { + var _this2 = this; + + contentReady(this, function () { + return _this2._compile(); + }); + + this._visible = false; + this._doorLock = new DoorLock(); + this._boundCancel = this._cancel.bind(this); + + this._updateAnimatorFactory(); + } + }, { + key: '_updateAnimatorFactory', + value: function _updateAnimatorFactory() { + this._animatorFactory = new AnimatorFactory({ + animators: _animatorDict$1, + baseClass: DialogAnimator, + baseClassName: 'DialogAnimator', + defaultAnimation: this.getAttribute('animation') + }); + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.style.display = 'none'; + + /* Expected result: + * + *
+ *
+ *
...
+ *
+ *
+ */ + + if (!this._dialog) { + var dialog = document.createElement('div'); + dialog.classList.add('dialog'); + + var container = document.createElement('div'); + dialog.classList.add('dialog-container'); + + dialog.appendChild(container); + + while (this.firstChild) { + container.appendChild(this.firstChild); + } + + this.appendChild(dialog); + } + + if (!this._mask) { + var mask = document.createElement('div'); + mask.classList.add('dialog-mask'); + this.insertBefore(mask, this.firstChild); + } + + this._dialog.style.zIndex = 20001; + this._mask.style.zIndex = 20000; + + this.setAttribute('status-bar-fill', ''); + + ModifierUtil.initModifier(this, scheme$5); + } + + /** + * @property onDeviceBackButton + * @type {Object} + * @description + * [en]Back-button handler.[/en] + * [ja]バックボタンハンドラ。[/ja] + */ + + }, { + key: '_cancel', + value: function _cancel() { + var _this3 = this; + + if (this.cancelable && !this._running) { + this._running = true; + this.hide({ + callback: function callback() { + _this3._running = false; + util.triggerElementEvent(_this3, 'dialog-cancel'); + } + }); + } + } + + /** + * @method show + * @signature show([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja]オプションを指定するオブジェクト。[/ja] + * @param {String} [options.animation] + * [en]Animation name. Available animations are `"none"`, `"fade"` and `"slide"`.[/en] + * [ja]アニメーション名を指定します。"none", "fade", "slide"のいずれかを指定します。[/ja] + * @param {String} [options.animationOptions] + * [en]Specify the animation's duration, delay and timing. E.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, delay, timingを指定します。e.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}` [/ja] + * @param {Function} [options.callback] + * [en]This function is called after the dialog has been revealed.[/en] + * [ja]ダイアログが表示され終わった後に呼び出される関数オブジェクトを指定します。[/ja] + * @description + * [en]Show the dialog.[/en] + * [ja]ダイアログを開きます。[/ja] + * @return {Promise} Resolves to the displayed element. + */ + + }, { + key: 'show', + value: function show() { + var _this4 = this; + + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _cancel2 = false; + var callback = options.callback || function () {}; + + options.animationOptions = util.extend(options.animationOptions || {}, AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options'))); + + util.triggerElementEvent(this, 'preshow', { + dialog: this, + cancel: function cancel() { + _cancel2 = true; + } + }); + + if (!_cancel2) { + var _ret = function () { + var tryShow = function tryShow() { + var unlock = _this4._doorLock.lock(); + var animator = _this4._animatorFactory.newAnimator(options); + + _this4.style.display = 'block'; + _this4._mask.style.opacity = '1'; + + return new Promise(function (resolve) { + contentReady(_this4, function () { + animator.show(_this4, function () { + _this4._visible = true; + unlock(); + + util.triggerElementEvent(_this4, 'postshow', { dialog: _this4 }); + + callback(); + resolve(_this4); + }); + }); + }); + }; + + return { + v: new Promise(function (resolve) { + _this4._doorLock.waitUnlock(function () { + return resolve(tryShow()); + }); + }) + }; + }(); + + if ((typeof _ret === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret)) === "object") return _ret.v; + } else { + return Promise.reject('Canceled in preshow event.'); + } + } + + /** + * @method hide + * @signature hide([options]) + * @param {Object} [options] + * [en]Parameter object.[/en] + * [ja]オプションを指定するオブジェクト。[/ja] + * @param {String} [options.animation] + * [en]Animation name. Available animations are `"none"`, `"fade"` and `"slide"`.[/en] + * [ja]アニメーション名を指定します。"none", "fade", "slide"のいずれかを指定できます。[/ja] + * @param {String} [options.animationOptions] + * [en]Specify the animation's duration, delay and timing. E.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, delay, timingを指定します。e.g. `{duration: 0.2, delay: 0.4, timing: 'ease-in'}`[/ja] + * @param {Function} [options.callback] + * [en]This functions is called after the dialog has been hidden.[/en] + * [ja]ダイアログが隠れた後に呼び出される関数オブジェクトを指定します。[/ja] + * @description + * [en]Hide the dialog.[/en] + * [ja]ダイアログを閉じます。[/ja] + * @return {Promise} + * [en]Resolves to the hidden element[/en] + * [ja][/ja] + */ + + }, { + key: 'hide', + value: function hide() { + var _this5 = this; + + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _cancel3 = false; + var callback = options.callback || function () {}; + + options.animationOptions = util.extend(options.animationOptions || {}, AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options'))); + + util.triggerElementEvent(this, 'prehide', { + dialog: this, + cancel: function cancel() { + _cancel3 = true; + } + }); + + if (!_cancel3) { + var _ret2 = function () { + var tryHide = function tryHide() { + var unlock = _this5._doorLock.lock(); + var animator = _this5._animatorFactory.newAnimator(options); + + return new Promise(function (resolve) { + contentReady(_this5, function () { + animator.hide(_this5, function () { + _this5.style.display = 'none'; + _this5._visible = false; + unlock(); + + util.triggerElementEvent(_this5, 'posthide', { dialog: _this5 }); + + callback(); + resolve(_this5); + }); + }); + }); + }; + + return { + v: new Promise(function (resolve) { + _this5._doorLock.waitUnlock(function () { + return resolve(tryHide()); + }); + }) + }; + }(); + + if ((typeof _ret2 === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret2)) === "object") return _ret2.v; + } else { + return Promise.reject('Canceled in prehide event.'); + } + } + + /** + * @property visible + * @readonly + * @type {Boolean} + * @description + * [en]Whether the dialog is visible or not.[/en] + * [ja]要素が見える場合に`true`。[/ja] + */ + + }, { + key: 'attachedCallback', + value: function attachedCallback() { + var _this6 = this; + + this.onDeviceBackButton = function (e) { + return _this6.cancelable ? _this6._cancel() : e.callParentHandler(); + }; + + contentReady(this, function () { + _this6._mask.addEventListener('click', _this6._boundCancel, false); + }); + } + }, { + key: 'detachedCallback', + value: function detachedCallback() { + this._backButtonHandler.destroy(); + this._backButtonHandler = null; + + this._mask.removeEventListener('click', this._boundCancel.bind(this), false); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme$5); + } else if (name === 'animation') { + this._updateAnimatorFactory(); + } + } + }, { + key: '_mask', + + + /** + * @event preshow + * @description + * [en]Fired just before the dialog is displayed.[/en] + * [ja]ダイアログが表示される直前に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.dialog + * [en]Component object.[/en] + * [ja]コンポーネントのオブジェクト。[/ja] + * @param {Function} event.cancel + * [en]Execute this function to stop the dialog from being shown.[/en] + * [ja]この関数を実行すると、ダイアログの表示がキャンセルされます。[/ja] + */ + + /** + * @event postshow + * @description + * [en]Fired just after the dialog is displayed.[/en] + * [ja]ダイアログが表示された直後に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.dialog + * [en]Component object.[/en] + * [ja]コンポーネントのオブジェクト。[/ja] + */ + + /** + * @event prehide + * @description + * [en]Fired just before the dialog is hidden.[/en] + * [ja]ダイアログが隠れる直前に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.dialog + * [en]Component object.[/en] + * [ja]コンポーネントのオブジェクト。[/ja] + * @param {Function} event.cancel + * [en]Execute this function to stop the dialog from being hidden.[/en] + * [ja]この関数を実行すると、ダイアログの非表示がキャンセルされます。[/ja] + */ + + /** + * @event posthide + * @description + * [en]Fired just after the dialog is hidden.[/en] + * [ja]ダイアログが隠れた後に発火します。[/ja] + * @param {Object} event [en]Event object.[/en] + * @param {Object} event.dialog + * [en]Component object.[/en] + * [ja]コンポーネントのオブジェクト。[/ja] + */ + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the dialog.[/en] + * [ja]ダイアログの表現を指定します。[/ja] + */ + + /** + * @attribute cancelable + * @description + * [en]If this attribute is set the dialog can be closed by tapping the background or by pressing the back button on Android devices.[/en] + * [ja][/ja] + */ + + /** + * @attribute disabled + * @description + * [en]If this attribute is set the dialog is disabled.[/en] + * [ja]この属性がある時、ダイアログはdisabled状態になります。[/ja] + */ + + /** + * @attribute animation + * @type {String} + * @default default + * @description + * [en]The animation used when showing and hiding the dialog. Can be either `"none"` or `"default"`.[/en] + * [ja]ダイアログを表示する際のアニメーション名を指定します。"none"もしくは"default"を指定できます。[/ja] + */ + + /** + * @attribute animation-options + * @type {Expression} + * @description + * [en]Specify the animation's duration, timing and delay with an object literal. E.g. `{duration: 0.2, delay: 1, timing: 'ease-in'}`.[/en] + * [ja]アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. `{duration: 0.2, delay: 1, timing: 'ease-in'}`[/ja] + */ + + /** + * @attribute mask-color + * @type {String} + * @default rgba(0, 0, 0, 0.2) + * @description + * [en]Color of the background mask. Default is `"rgba(0, 0, 0, 0.2)"`.[/en] + * [ja]背景のマスクの色を指定します。"rgba(0, 0, 0, 0.2)"がデフォルト値です。[/ja] + */ + + get: function get() { + return util.findChild(this, '.dialog-mask'); + } + }, { + key: '_dialog', + get: function get() { + return util.findChild(this, '.dialog'); + } + }, { + key: 'onDeviceBackButton', + get: function get() { + return this._backButtonHandler; + }, + set: function set(callback) { + if (this._backButtonHandler) { + this._backButtonHandler.destroy(); + } + + this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback); + } + }, { + key: 'visible', + get: function get() { + return this._visible; + } + + /** + * @property disabled + * @type {Boolean} + * @description + * [en]Whether the dialog is disabled or not.[/en] + * [ja]無効化されている場合に`true`。[/ja] + */ + + }, { + key: 'disabled', + set: function set(value) { + return util.toggleAttribute(this, 'disabled', value); + }, + get: function get() { + return this.hasAttribute('disabled'); + } + + /** + * @property cancelable + * @type {Boolean} + * @description + * [en]Whether the dialog is cancelable or not. A cancelable dialog can be closed by tapping the background or by pressing the back button on Android devices.[/en] + * [ja][/ja] + */ + + }, { + key: 'cancelable', + set: function set(value) { + return util.toggleAttribute(this, 'cancelable', value); + }, + get: function get() { + return this.hasAttribute('cancelable'); + } + }]); + return DialogElement; + }(BaseElement); + + var OnsDialogElement = window.OnsDialogElement = document.registerElement('ons-dialog', { + prototype: DialogElement.prototype + }); + + /** + * @param {String} name + * @param {DialogAnimator} Animator + */ + OnsDialogElement.registerAnimator = function (name, Animator) { + if (!(Animator.prototype instanceof DialogAnimator)) { + throw new Error('"Animator" param must inherit OnsDialogElement.DialogAnimator'); + } + _animatorDict$1[name] = Animator; + }; + + OnsDialogElement.DialogAnimator = DialogAnimator; + + var scheme$6 = { + '': 'fab--*' + }; + + /** + * @element ons-fab + * @category fab + * @description + * [en] + * The Floating action button is a circular button defined in the [Material Design specification](https://www.google.com/design/spec/components/buttons-floating-action-button.html). They are often used to promote the primary action of the app. + * + * It can be displayed either as an inline element or in one of the corners. Normally it will be positioned in the lower right corner of the screen. + * [/en] + * [ja][/ja] + * @tutorial vanilla/Reference/fab + * @seealso ons-speed-dial + * [en]The `` component is a Floating action button that displays a menu when tapped.[/en] + * [ja][/ja] + */ + + var FabElement = function (_BaseElement) { + babelHelpers.inherits(FabElement, _BaseElement); + + function FabElement() { + babelHelpers.classCallCheck(this, FabElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(FabElement).apply(this, arguments)); + } + + babelHelpers.createClass(FabElement, [{ + key: 'createdCallback', + + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the button.[/en] + * [ja]ボタンの表現を指定します。[/ja] + */ + + /** + * @attribute ripple + * @description + * [en]If this attribute is defined, the button will have a ripple effect when tapped.[/en] + * [ja][/ja] + */ + + /** + * @attribute position + * @type {String} + * @description + * [en]The position of the button. Should be a string like `"bottom right"` or `"top left"`. If this attribute is not defined it will be displayed as an inline element.[/en] + * [ja][/ja] + */ + + /** + * @attribute disabled + * @description + * [en]Specify if button should be disabled.[/en] + * [ja]ボタンを無効化する場合は指定します。[/ja] + */ + + value: function createdCallback() { + var _this2 = this; + + contentReady(this, function () { + _this2._compile(); + }); + } + }, { + key: '_compile', + value: function _compile() { + var _this3 = this; + + autoStyle.prepare(this); + + this.classList.add('fab'); + + if (!util.findChild(this, '.fab__icon')) { + (function () { + var content = document.createElement('span'); + content.classList.add('fab__icon'); + + util.arrayFrom(_this3.childNodes).forEach(function (element) { + if (!element.tagName || element.tagName.toLowerCase() !== 'ons-ripple') { + content.appendChild(element); + } + }); + _this3.appendChild(content); + })(); + } + + this._updateRipple(); + + ModifierUtil.initModifier(this, scheme$6); + + this._updatePosition(); + + this.show(); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + switch (name) { + case 'modifier': + ModifierUtil.onModifierChanged(last, current, this, scheme$6); + break; + case 'ripple': + this._updateRipple(); + break; + case 'position': + this._updatePosition(); + } + } + }, { + key: '_show', + value: function _show() { + this.show(); + } + }, { + key: '_hide', + value: function _hide() { + this.hide(); + } + }, { + key: '_updateRipple', + value: function _updateRipple() { + util.updateRipple(this); + } + }, { + key: '_updatePosition', + value: function _updatePosition() { + var position = this.getAttribute('position'); + this.classList.remove('fab--top__left', 'fab--bottom__right', 'fab--bottom__left', 'fab--top__right', 'fab--top__center', 'fab--bottom__center'); + switch (position) { + case 'top right': + case 'right top': + this.classList.add('fab--top__right'); + break; + case 'top left': + case 'left top': + this.classList.add('fab--top__left'); + break; + case 'bottom right': + case 'right bottom': + this.classList.add('fab--bottom__right'); + break; + case 'bottom left': + case 'left bottom': + this.classList.add('fab--bottom__left'); + break; + case 'center top': + case 'top center': + this.classList.add('fab--top__center'); + break; + case 'center bottom': + case 'bottom center': + this.classList.add('fab--bottom__center'); + break; + default: + break; + } + } + + /** + * @method show + * @signature show() + * @description + * [en]Show the floating action button.[/en] + * [ja][/ja] + */ + + }, { + key: 'show', + value: function show() { + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + this.style.transform = 'scale(1)'; + this.style.webkitTransform = 'scale(1)'; + } + + /** + * @method hide + * @signature hide() + * @description + * [en]Hide the floating action button.[/en] + * [ja][/ja] + */ + + }, { + key: 'hide', + value: function hide() { + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + this.style.transform = 'scale(0)'; + this.style.webkitTransform = 'scale(0)'; + } + + /** + * @property disabled + * @type {Boolean} + * @description + * [en]Whether the element is disabled or not.[/en] + * [ja]無効化されている場合に`true`。[/ja] + */ + + }, { + key: 'toggle', + + + /** + * @method toggle + * @signature toggle() + * @description + * [en]Toggle the visibility of the button.[/en] + * [ja][/ja] + */ + value: function toggle() { + this.visible ? this.hide() : this.show(); + } + }, { + key: 'disabled', + set: function set(value) { + return util.toggleAttribute(this, 'disabled', value); + }, + get: function get() { + return this.hasAttribute('disabled'); + } + + /** + * @property visible + * @readonly + * @type {Boolean} + * @description + * [en]Whether the element is visible or not.[/en] + * [ja]要素が見える場合に`true`。[/ja] + */ + + }, { + key: 'visible', + get: function get() { + return this.style.transform === 'scale(1)' && this.style.display !== 'none'; + } + }]); + return FabElement; + }(BaseElement); + + window.OnsFabElement = document.registerElement('ons-fab', { + prototype: FabElement.prototype + }); + + /** + * @element ons-gesture-detector + * @category gesture + * @description + * [en]Component to detect finger gestures within the wrapped element. See the guide for more details.[/en] + * [ja]要素内のジェスチャー操作を検知します。詳しくはガイドを参照してください。[/ja] + * @guide DetectingFingerGestures + * [en]Detecting finger gestures[/en] + * [ja]ジェスチャー操作の検知[/ja] + * @example + * + * ... + * + */ + + var GestureDetectorElement = function (_BaseElement) { + babelHelpers.inherits(GestureDetectorElement, _BaseElement); + + function GestureDetectorElement() { + babelHelpers.classCallCheck(this, GestureDetectorElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(GestureDetectorElement).apply(this, arguments)); + } + + babelHelpers.createClass(GestureDetectorElement, [{ + key: 'createdCallback', + value: function createdCallback() { + this._gestureDetector = new GestureDetector(this); + } + }]); + return GestureDetectorElement; + }(BaseElement); + + window.OnsGestureDetectorElement = document.registerElement('ons-gesture-detector', { + prototype: GestureDetectorElement.prototype + }); + + /** + * @element ons-icon + * @category icon + * @description + * [en] + * Displays an icon. The following icon suites are available: + * + * * [Font Awesome](https://fortawesome.github.io/Font-Awesome/) + * * [Ionicons](http://ionicons.com/) + * * [Material Design Iconic Font](http://zavoloklom.github.io/material-design-iconic-font/) + * [/en] + * [ja][/ja] + * @codepen xAhvg + * @tutorial vanilla/Reference/icon + * @guide UsingIcons [en]Using icons[/en][ja]アイコンを使う[/ja] + * @example + * + * + * + * + * + * Car + * + */ + + var IconElement = function (_BaseElement) { + babelHelpers.inherits(IconElement, _BaseElement); + + function IconElement() { + babelHelpers.classCallCheck(this, IconElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(IconElement).apply(this, arguments)); + } + + babelHelpers.createClass(IconElement, [{ + key: 'createdCallback', + + + /** + * @attribute icon + * @type {String} + * @description + * [en] + * The icon name. `"md-"` prefix for Material Icons, `"fa-"` for Font Awesome and `"ion-"` prefix for Ionicons. + * + * See all available icons on their respective sites: + * + * * [Font Awesome](https://fortawesome.github.io/Font-Awesome/) + * * [Ionicons](http://ionicons.com) + * * [Material Design Iconic Font](http://zavoloklom.github.io/material-design-iconic-font/) + * + * Icons can also be styled based on modifier presence. Add comma-separated icons with `"modifierName:"` prefix. + * + * The code: + * + * ``` + * + * + * ``` + * + * will display `"md-edit"` for Material Design and `"ion-edit"` as the default icon. + * [/en] + * [ja][/ja] + */ + + /** + * @attribute size + * @type {String} + * @description + * [en] + * The sizes of the icon. Valid values are lg, 2x, 3x, 4x, 5x, or in the size in pixels. + * Icons can also be styled based on modifier presence. Add comma-separated icons with `"modifierName:"` prefix. + * + * The code: + * + * ``` + * + * + * ``` + * + * will render as a `24px` icon if the `"material"` modifier is present and `32px` otherwise. + * [/en] + * [ja][/ja] + */ + + /** + * @attribute rotate + * @type {Number} + * @description + * [en]Number of degrees to rotate the icon. Valid values are 90, 180 and 270.[/en] + * [ja]アイコンを回転して表示します。90, 180, 270から指定できます。[/ja] + */ + + /** + * @attribute fixed-width + * @type {Boolean} + * @default false + * @description + * [en]When used in a list, you want the icons to have the same width so that they align vertically by defining this attribute.[/en] + * [ja][/ja] + */ + + /** + * @attribute spin + * @description + * [en]Specify whether the icon should be spinning.[/en] + * [ja]アイコンを回転するかどうかを指定します。[/ja] + */ + + value: function createdCallback() { + if (!this.hasAttribute('_compiled')) { + this._compile(); + } + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (['icon', 'size', 'modifier'].indexOf(name) !== -1) { + this._update(); + } + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + this._update(); + this.setAttribute('_compiled', ''); + } + }, { + key: '_update', + value: function _update() { + var _this2 = this; + + this._cleanClassAttribute(); + + var _buildClassAndStyle2 = this._buildClassAndStyle(this._getAttribute('icon'), this._getAttribute('size')); + + var classList = _buildClassAndStyle2.classList; + var style = _buildClassAndStyle2.style; + + util.extend(this.style, style); + + classList.forEach(function (className) { + return _this2.classList.add(className); + }); + } + }, { + key: '_getAttribute', + value: function _getAttribute(attr) { + var parts = (this.getAttribute(attr) || '').split(/\s*,\s*/); + var def = parts[0]; + var md = parts[1]; + md = (md || '').split(/\s*:\s*/); + return (util.hasModifier(this, md[0]) ? md[1] : def) || ''; + } + + /** + * Remove unneeded class value. + */ + + }, { + key: '_cleanClassAttribute', + value: function _cleanClassAttribute() { + var _this3 = this; + + util.arrayFrom(this.classList).filter(function (className) { + return (/^(fa$|fa-|ion-|zmdi-)/.test(className) + ); + }).forEach(function (className) { + return _this3.classList.remove(className); + }); + + this.classList.remove('zmdi'); + this.classList.remove('ons-icon--ion'); + } + }, { + key: '_buildClassAndStyle', + value: function _buildClassAndStyle(iconName, size) { + var classList = ['ons-icon']; + var style = {}; + + // Icon + if (iconName.indexOf('ion-') === 0) { + classList.push(iconName); + classList.push('ons-icon--ion'); + } else if (iconName.indexOf('fa-') === 0) { + classList.push(iconName); + classList.push('fa'); + } else if (iconName.indexOf('md-') === 0) { + classList.push('zmdi'); + classList.push('zmdi-' + iconName.split(/\-(.+)?/)[1]); + } else { + classList.push('fa'); + classList.push('fa-' + iconName); + } + + // Size + if (size.match(/^[1-5]x|lg$/)) { + classList.push('fa-' + size); + this.style.removeProperty('font-size'); + } else { + style.fontSize = size; + } + + return { + classList: classList, + style: style + }; + } + }]); + return IconElement; + }(BaseElement); + + window.OnsIconElement = document.registerElement('ons-icon', { + prototype: IconElement.prototype + }); + + /** + * @element ons-lazy-repeat + * @category lazy-repeat + * @description + * [en] + * Using this component a list with millions of items can be rendered without a drop in performance. + * It does that by "lazily" loading elements into the DOM when they come into view and + * removing items from the DOM when they are not visible. + * [/en] + * [ja] + * このコンポーネント内で描画されるアイテムのDOM要素の読み込みは、画面に見えそうになった時まで自動的に遅延され、 + * 画面から見えなくなった場合にはその要素は動的にアンロードされます。 + * このコンポーネントを使うことで、パフォーマンスを劣化させること無しに巨大な数の要素を描画できます。 + * [/ja] + * @codepen QwrGBm + * @tutorial vanilla/Reference/lazy-repeat + * @seealso ons-list + * [en]The `` element is used to render a list.[/en] + * [ja]``要素はリストを描画するのに使われます。[/ja] + * @guide UsingLazyRepeat + * [en]How to use Lazy Repeat[/en] + * [ja]レイジーリピートの使い方[/ja] + * @example + * + * + * + * + * + * + * + */ + + var LazyRepeatElement = function (_BaseElement) { + babelHelpers.inherits(LazyRepeatElement, _BaseElement); + + function LazyRepeatElement() { + babelHelpers.classCallCheck(this, LazyRepeatElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(LazyRepeatElement).apply(this, arguments)); + } + + babelHelpers.createClass(LazyRepeatElement, [{ + key: 'attachedCallback', + value: function attachedCallback() { + util.updateParentPosition(this); + + // not very good idea and also not documented + if (this.hasAttribute('delegate')) { + this.delegate = window[this.getAttribute('delegate')]; + } + } + + /** + * @property delegate + * @type {Object} + * @description + * [en]Specify a delegate object to load and unload item elements.[/en] + * [ja]要素のロード、アンロードなどの処理を委譲するオブジェクトを指定します。[/ja] + */ + + /** + * @property delegate.createItemContent + * @type {Function} + * @description + * [en] + * This function should return a `HTMLElement`. + * + * To help rendering the element, the current index and a template is supplied as arguments. The template is the initial content of the `` element. + * [/en] + * [ja] + * この関数は`HTMLElement`を返してください。 + * 要素を生成しやすくするために、現在のアイテムのインデックスとテンプレートが引数に渡されます。 + * このテンプレートは、``要素のコンテンツが渡されます。 + * [/ja] + */ + + /** + * @property delegate.countItems + * @type {Function} + * @description + * [en]Should return the number of items in the list.[/en] + * [ja]リスト内のアイテム数を返してください。[/ja] + */ + + /** + * @property delegate.calculateItemHeight + * @type {Function} + * @description + * [en] + * Should return the height of an item. The index is provided as an argument. + * + * This is important when rendering lists where the items have different height. + * + * The function is optional and if it isn't present the height of the first item will be automatically calculated and used for all other items. + * [/en] + * [ja] + * アイテムの高さ(ピクセル)を返してください。アイテムのインデックス値は引数で渡されます。 + * この関数は、それぞれのアイムが違った高さを持つリストをレンダリングする際に重要です。 + * この関数はオプショナルです。もしこの関数が無い場合には、 + * 最初のアイテムの高さが他のすべてのアイテムの高さとして利用されます。 + * [/ja] + */ + + /** + * @property delegate.destroyItem + * @type {Function} + * @description + * [en] + * This function is used called when an item is removed from the DOM. The index and DOM element is provided as arguments. + * + * The function is optional but may be important in order to avoid memory leaks. + * [/en] + * [ja] + * この関数は、あるアイテムがDOMツリーから除かれた時に呼び出されます。 + * アイテムのインデックス値とDOM要素が引数として渡されます。 + * この関数はオプショナルですが、各アイテムの後処理が必要な場合にはメモリーリークを避けるために重要です。 + * [/ja] + */ + + }, { + key: 'refresh', + + + /** + * @method refresh + * @signature refresh() + * @description + * [en]Refresh the list. Use this method when the data has changed.[/en] + * [ja]リストを更新します。もしデータが変わった場合にはこのメソッドを使ってください。[/ja] + */ + value: function refresh() { + this._lazyRepeatProvider && this._lazyRepeatProvider.refresh(); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) {} + }, { + key: 'detachedCallback', + value: function detachedCallback() { + if (this._lazyRepeatProvider) { + this._lazyRepeatProvider.destroy(); + this._lazyRepeatProvider = null; + } + } + }, { + key: 'delegate', + set: function set(userDelegate) { + this._lazyRepeatProvider && this._lazyRepeatProvider.destroy(); + + if (!this._templateElement && this.children[0]) { + this._templateElement = this.removeChild(this.children[0]); + } + + var delegate = new LazyRepeatDelegate(userDelegate, this._templateElement || null); + this._lazyRepeatProvider = new LazyRepeatProvider(this.parentElement, delegate); + }, + get: function get() { + throw new Error('This property can only be used to set the delegate object.'); + } + }]); + return LazyRepeatElement; + }(BaseElement); + + window.OnsLazyRepeatElement = document.registerElement('ons-lazy-repeat', { + prototype: LazyRepeatElement.prototype + }); + + var scheme$7 = { '': 'list__header--*' }; + + /** + * @element ons-list-header + * @category list + * @description + * [en]Header element for list items. Must be put inside the `` component.[/en] + * [ja]リスト要素に使用するヘッダー用コンポーネント。ons-listと共に使用します。[/ja] + * @seealso ons-list + * [en]The `` component[/en] + * [ja]ons-listコンポーネント[/ja] + * @seealso ons-list-item + * [en]The `` component[/en] + * [ja]ons-list-itemコンポーネント[/ja] + * @guide UsingList [en]Using lists[/en][ja]リストを使う[/ja] + * @codepen yxcCt + * @tutorial vanilla/Reference/list + * @modifier material + * [en]Display a Material Design list header.[/en] + * [ja][/ja] + * @example + * + * Header Text + * Item + * Item + * + */ + + var ListHeaderElement = function (_BaseElement) { + babelHelpers.inherits(ListHeaderElement, _BaseElement); + + function ListHeaderElement() { + babelHelpers.classCallCheck(this, ListHeaderElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(ListHeaderElement).apply(this, arguments)); + } + + babelHelpers.createClass(ListHeaderElement, [{ + key: 'createdCallback', + + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the list header.[/en] + * [ja]ヘッダーの表現を指定します。[/ja] + */ + value: function createdCallback() { + if (!this.hasAttribute('_compiled')) { + this._compile(); + } + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.classList.add('list__header'); + ModifierUtil.initModifier(this, scheme$7); + + this.setAttribute('_compiled', ''); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme$7); + } + } + }]); + return ListHeaderElement; + }(BaseElement); + + window.OnsListHeaderElement = document.registerElement('ons-list-header', { + prototype: ListHeaderElement.prototype + }); + + var scheme$8 = { + '.list__item': 'list__item--*', + '.list__item__left': 'list__item--*__left', + '.list__item__center': 'list__item--*__center', + '.list__item__right': 'list__item--*__right', + '.list__item__label': 'list__item--*__label', + '.list__item__title': 'list__item--*__title', + '.list__item__subtitle': 'list__item--*__subtitle', + '.list__item__thumbnail': 'list__item--*__thumbnail', + '.list__item__icon': 'list__item--*__icon' + }; + + /** + * @element ons-list-item + * @category list + * @modifier tappable + * [en]Make the list item change appearance when it's tapped. On iOS it is better to use the "tappable" and "tap-background-color" attribute for better behavior when scrolling.[/en] + * [ja]タップやクリックした時に効果が表示されるようになります。[/ja] + * @modifier chevron + * [en]Display a chevron at the right end of the list item and make it change appearance when tapped. The chevron is not displayed in Material Design.[/en] + * [ja][/ja] + * @modifier longdivider + * [en]Displays a long horizontal divider between items.[/en] + * [ja][/ja] + * @modifier nodivider + * [en]Removes the divider between list items.[/en] + * [ja][/ja] + * @modifier material + * [en]Display a Material Design list item.[/en] + * [ja][/ja] + * @description + * [en] + * Component that represents each item in the list. Must be put inside the `` component. + * + * The list item is composed of three parts that are represented with the `left`, `center` and `right` classes. These classes can be used to ensure that the content of the list items is properly aligned. + * + * ``` + * + *
Left
+ *
Center
+ *
Right
+ *
+ * ``` + * + * There is also a number of classes (prefixed with `list__item__*`) that help when putting things like icons and thumbnails into the list items. + * [/en] + * [ja][/ja] + * @seealso ons-list + * [en]ons-list component[/en] + * [ja]ons-listコンポーネント[/ja] + * @seealso ons-list-header + * [en]ons-list-header component[/en] + * [ja]ons-list-headerコンポーネント[/ja] + * @guide UsingList + * [en]Using lists[/en] + * [ja]リストを使う[/ja] + * @codepen yxcCt + * @tutorial vanilla/Reference/list + * @example + * + *
+ * + *
+ *
+ *
Title
+ *
Subtitle
+ *
+ *
+ * + *
+ *
+ */ + + var ListItemElement = function (_BaseElement) { + babelHelpers.inherits(ListItemElement, _BaseElement); + + function ListItemElement() { + babelHelpers.classCallCheck(this, ListItemElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(ListItemElement).apply(this, arguments)); + } + + babelHelpers.createClass(ListItemElement, [{ + key: 'createdCallback', + + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the list item.[/en] + * [ja]各要素の表現を指定します。[/ja] + */ + + /** + * @attribute lock-on-drag + * @type {String} + * @description + * [en]Prevent vertical scrolling when the user drags horizontally.[/en] + * [ja]この属性があると、ユーザーがこの要素を横方向にドラッグしている時に、縦方向のスクロールが起きないようになります。[/ja] + */ + + /** + * @attribute tappable + * @type {Boolean} + * @description + * [en]Makes the element react to taps.[/en] + * [ja][/ja] + */ + + /** + * @attribute tap-background-color + * @type {Color} + * @description + * [en] Changes the background color when tapped. For this to work, the attribute "tappable" needs to be set. The default color is "#d9d9d9". It will display as a ripple effect on Android.[/en] + * [ja][/ja] + */ + + value: function createdCallback() { + var _this2 = this; + + contentReady(this, function () { + _this2._compile(); + }); + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + this.classList.add('list__item'); + + var left = void 0, + center = void 0, + right = void 0; + + for (var i = 0; i < this.children.length; i++) { + var el = this.children[i]; + + if (el.classList.contains('left')) { + el.classList.add('list__item__left'); + left = el; + } else if (el.classList.contains('center')) { + center = el; + } else if (el.classList.contains('right')) { + el.classList.add('list__item__right'); + right = el; + } + } + + if (!center) { + center = document.createElement('div'); + + if (!left && !right) { + while (this.childNodes[0]) { + center.appendChild(this.childNodes[0]); + } + } else { + for (var _i = this.childNodes.length - 1; _i >= 0; _i--) { + var _el = this.childNodes[_i]; + if (_el !== left && _el !== right) { + center.insertBefore(_el, center.firstChild); + } + } + } + + this.insertBefore(center, right || null); + } + + center.classList.add('center'); + center.classList.add('list__item__center'); + + this._updateRipple(); + + ModifierUtil.initModifier(this, scheme$8); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + switch (name) { + case 'modifier': + ModifierUtil.onModifierChanged(last, current, this, scheme$8); + break; + case 'ripple': + this._updateRipple(); + } + } + }, { + key: 'attachedCallback', + value: function attachedCallback() { + this.addEventListener('drag', this._onDrag); + this.addEventListener('touchstart', this._onTouch); + this.addEventListener('mousedown', this._onTouch); + this.addEventListener('touchend', this._onRelease); + this.addEventListener('touchmove', this._onRelease); + this.addEventListener('touchcancel', this._onRelease); + this.addEventListener('mouseup', this._onRelease); + this.addEventListener('mouseout', this._onRelease); + this.addEventListener('touchleave', this._onRelease); + + this._originalBackgroundColor = this.style.backgroundColor; + + this.tapped = false; + } + }, { + key: 'detachedCallback', + value: function detachedCallback() { + this.removeEventListener('drag', this._onDrag); + this.removeEventListener('touchstart', this._onTouch); + this.removeEventListener('mousedown', this._onTouch); + this.removeEventListener('touchend', this._onRelease); + this.removeEventListener('touchmove', this._onRelease); + this.removeEventListener('touchcancel', this._onRelease); + this.removeEventListener('mouseup', this._onRelease); + this.removeEventListener('mouseout', this._onRelease); + this.removeEventListener('touchleave', this._onRelease); + } + }, { + key: '_updateRipple', + value: function _updateRipple() { + util.updateRipple(this); + } + }, { + key: '_onDrag', + value: function _onDrag(event) { + var gesture = event.gesture; + // Prevent vertical scrolling if the users pans left or right. + if (this._shouldLockOnDrag() && ['left', 'right'].indexOf(gesture.direction) > -1) { + gesture.preventDefault(); + } + } + }, { + key: '_onTouch', + value: function _onTouch() { + if (this.tapped) { + return; + } + + this.tapped = true; + + this.style.transition = this._transition; + this.style.webkitTransition = this._transition; + this.style.MozTransition = this._transition; + + if (this._tappable) { + if (this.style.backgroundColor) { + this._originalBackgroundColor = this.style.backgroundColor; + } + + this.style.backgroundColor = this._tapBackgroundColor; + this.style.boxShadow = '0px -1px 0px 0px ' + this._tapBackgroundColor; + } + } + }, { + key: '_onRelease', + value: function _onRelease() { + this.tapped = false; + + this.style.transition = ''; + this.style.webkitTransition = ''; + this.style.MozTransition = ''; + + this.style.backgroundColor = this._originalBackgroundColor || ''; + this.style.boxShadow = ''; + } + }, { + key: '_shouldLockOnDrag', + value: function _shouldLockOnDrag() { + return this.hasAttribute('lock-on-drag'); + } + }, { + key: '_transition', + get: function get() { + return 'background-color 0.0s linear 0.02s, box-shadow 0.0s linear 0.02s'; + } + }, { + key: '_tappable', + get: function get() { + return this.hasAttribute('tappable'); + } + }, { + key: '_tapBackgroundColor', + get: function get() { + return this.getAttribute('tap-background-color') || '#d9d9d9'; + } + }]); + return ListItemElement; + }(BaseElement); + + window.OnsListItemElement = document.registerElement('ons-list-item', { + prototype: ListItemElement.prototype + }); + + var scheme$9 = { '': 'list--*' }; + + /** + * @element ons-list + * @category list + * @modifier inset + * [en]Inset list that doesn't cover the whole width of the parent.[/en] + * [ja]親要素の画面いっぱいに広がらないリストを表示します。[/ja] + * @modifier noborder + * [en]A list with no borders at the top and bottom.[/en] + * [ja]リストの上下のボーダーが無いリストを表示します。[/ja] + * @description + * [en]Component to define a list, and the container for ons-list-item(s).[/en] + * [ja]リストを表現するためのコンポーネント。ons-list-itemのコンテナとして使用します。[/ja] + * @seealso ons-list-item + * [en]ons-list-item component[/en] + * [ja]ons-list-itemコンポーネント[/ja] + * @seealso ons-list-header + * [en]ons-list-header component[/en] + * [ja]ons-list-headerコンポーネント[/ja] + * @guide UsingList + * [en]Using lists[/en] + * [ja]リストを使う[/ja] + * @codepen yxcCt + * @tutorial vanilla/Reference/list + * @example + * + * Header Text + * Item + * Item + * + */ + + var ListElement = function (_BaseElement) { + babelHelpers.inherits(ListElement, _BaseElement); + + function ListElement() { + babelHelpers.classCallCheck(this, ListElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(ListElement).apply(this, arguments)); + } + + babelHelpers.createClass(ListElement, [{ + key: 'createdCallback', + + + /** + * @attribute modifier + * @type {String} + * @description + * [en]The appearance of the list.[/en] + * [ja]リストの表現を指定します。[/ja] + */ + + value: function createdCallback() { + if (!this.hasAttribute('_compiled')) { + this._compile(); + } + } + }, { + key: '_compile', + value: function _compile() { + autoStyle.prepare(this); + + this.classList.add('list'); + ModifierUtil.initModifier(this, scheme$9); + + this.setAttribute('_compiled', ''); + } + }, { + key: 'attributeChangedCallback', + value: function attributeChangedCallback(name, last, current) { + if (name === 'modifier') { + return ModifierUtil.onModifierChanged(last, current, this, scheme$9); + } + } + }]); + return ListElement; + }(BaseElement); + + window.OnsListElement = document.registerElement('ons-list', { + prototype: ListElement.prototype + }); + + var scheme$10 = { + '.text-input': 'text-input--*', + '.text-input__label': 'text-input--*__label', + '.radio-button': 'radio-button--*', + '.radio-button__input': 'radio-button--*__input', + '.radio-button__checkmark': 'radio-button--*__checkmark', + '.checkbox': 'checkbox--*', + '.checkbox__input': 'checkbox--*__input', + '.checkbox__checkmark': 'checkbox--*__checkmark' + }; + + var INPUT_ATTRIBUTES = ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'inputmode', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'placeholder', 'readonly', 'size', 'step', 'type', 'validator', 'value']; + + /** + * @element ons-input + * @category input + * @modifier material + * [en]Displays a Material Design input.[/en] + * [ja][/ja] + * @modifier underbar + * [en]Displays a horizontal line underneath a text input.[/en] + * [ja][/ja] + * @description + * [en] + * An input element. The `type` attribute can be used to change the input type. All text input types as well as `checkbox` and `radio` are supported. + * + * The component will automatically render as a Material Design input on Android devices. + * + * Most attributes that can be used for a normal `` element can also be used on the `` element. + * [/en] + * [ja][/ja] + * @codepen ojQxLj + * @tutorial vanilla/Reference/input + * @seealso ons-range + * [en]The `` element is used to display a range slider.[/en] + * [ja][/ja] + * @seealso ons-switch + * [en]The `` element is used to display a draggable toggle switch.[/en] + * [ja][/ja] + * @guide UsingFormComponents + * [en]Using form components[/en] + * [ja]フォームを使う[/ja] + * @guide EventHandling + * [en]Event handling descriptions[/en] + * [ja]イベント処理の使い方[/ja] + * @example + * + * + */ + + var InputElement = function (_BaseElement) { + babelHelpers.inherits(InputElement, _BaseElement); + + function InputElement() { + babelHelpers.classCallCheck(this, InputElement); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(InputElement).apply(this, arguments)); + } + + babelHelpers.createClass(InputElement, [{ + key: 'createdCallback', + + + /** + * @attribute placeholder + * @type {String} + * @description + * [en]Placeholder text. In Material Design, this placeholder will be a floating label.[/en] + * [ja][/ja] + */ + + /** + * @attribute float + * @description + * [en]If this attribute is present, the placeholder will be animated in Material Design.[/en] + * [ja]この属性が設定された時、ラベルはアニメーションするようになります。[/ja] + */ + + /** + * @attribute type + * @type {String} + * @description + * [en] + * Specify the input type. This is the same as the "type" attribute for normal inputs. However, for "range" you should instead use element. + * + * Please take a look at [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) for an exhaustive list of possible values. Depending on the platform and browser version some of these might not work. + * [/en] + * [ja][/ja] + */ + + /** + * @attribute input-id + * @type {String} + * @description + * [en]Specify the "id" attribute of the inner `` element. This is useful when using