From 11626e6efb1b8178b1192f3f50c577d885ca7cc2 Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Mon, 6 Aug 2018 21:49:34 -0600 Subject: [PATCH] [add] Jhipster base --- front-end/.editorconfig | 25 + front-end/.gitignore | 1 + front-end/.prettierignore | 2 + front-end/.prettierrc | 12 + front-end/.yo-rc.json | 25 + .../0125cc321607e26eb7e19ca7de6203f8.json | 1 + .../057a32104bc24ff9d2055da44a8e53b9.json | 1 + .../0beb3f4e6d31f7046b4a6d53a9fe0c12.json | 1 + .../13da207c250ef31ffce50b99d89378b1.json | 1 + .../1a7864d61bcf82b5528c636c7c00df56.json | 1 + .../1a93a76f3f3114f161cd4cd0aa6f22bc.json | 1 + .../1ee940f838eba061450f15e549cb1f51.json | 1 + .../24815580921ca49ffdec059689c0a8f6.json | 1 + .../25817ae0b134d0ca4d048fc45272fff8.json | 1 + .../27850d0f7bae80c0a6522f8349c5592a.json | 1 + .../2917a430b957d8dbe719854152f09aa9.json | 1 + .../294075b22279f132b484525668413796.json | 1 + .../32129d1a5400d18f297437a832678a71.json | 1 + .../33615345a67cf5b5574903cb778bc71e.json | 1 + .../35bab663521891ccaade2344b6744ae6.json | 1 + .../37aca97f18e868f5acf72ae4b1fb2fdf.json | 1 + .../3ce6af2d8485c68ac58c29ac6b1b2ccb.json | 1 + .../403c08a9c21cfe9714fc57f7be9a0e1d.json | 1 + .../468d9dcc5e5ee7b88137c8bf673e84b4.json | 1 + .../4a49d5c0c968412bb4cf04287a878a1d.json | 1 + .../4c0102930bfeb29271646ed3e6679dca.json | 1 + .../4d892f3c5e2407ee7856c77a6793b63d.json | 1 + .../5224e897265339bf279365fa607d0484.json | 1 + .../538d180980a7ac16b7b2bca725f51b34.json | 1 + .../53960299ab55e61cbeeca8c72ef01b8b.json | 1 + .../5819386b8a339084e6890c09309ada79.json | 1 + .../5ab26117f65692cf2fa5d6e4df51b438.json | 1 + .../655b68409fe939e57013bcfcdf1d2668.json | 1 + .../671bfd4691cc2650e39112711e15a243.json | 1 + .../675a74b8b70ad127ef55e8bf91aeff46.json | 1 + .../6d1685a0d3763dc9fdbc4d68a8d5a57d.json | 1 + .../7175ffa55d131b092f878269c603e0da.json | 1 + .../739d38d2e152c1fb2cd96abc1214329f.json | 1 + .../77c16a442047fc8be137c9ec1d85dbf1.json | 1 + .../79e37e5844a07a2f3245e09d3aebd116.json | 1 + .../7fbd861587473c48b840538d8944c14d.json | 1 + .../807d90330ee79a611e405ad361f4cd96.json | 1 + .../861e415adce71084be0ae56ecc15868c.json | 1 + .../8a99843112deb07a2a38b31b9bc0b388.json | 1 + .../91d046e044cfab940aa0a3ed8203f66c.json | 1 + .../933319b4b823deb34afab82a95552d2b.json | 1 + .../9345fdb28f24fe52dee163990004c2aa.json | 1 + .../97bbf7824f9456c5cc031abf3fa1931d.json | 1 + .../9cb917e7467736c4dd49d8bbc05035b2.json | 1 + .../a46e33ebbd113f0a8669b6e01b261a6a.json | 1 + .../a7f3d13488a2100def2e7c63c256744a.json | 1 + .../ac227bcbc814c3ae7c628d0e1d242802.json | 1 + .../addb181ce9b50b6ea32fb7c58882490f.json | 1 + .../b3808174419ec0fa3c9a6278229953a2.json | 1 + .../ba604bcaccba791c7ea06b6b18923bc8.json | 1 + .../c04bf98a07b650dd4fa86351ca498429.json | 1 + .../c2764ce66829c992313aa22680dd8d85.json | 1 + .../c878ab0e3ac1d9f91bb372bf9a3ae110.json | 1 + .../c9dd248e25196e9f90c10076ec046be7.json | 1 + .../cb8b1fca4bab486a190f7a6981fc9465.json | 1 + .../d263a2bde78b29f7d445bc6ee7fa0eb6.json | 1 + .../d5235e87e5436248c2cfb710a1c979ac.json | 1 + .../d53f1b6a9364f429e482f2e71772e908.json | 1 + .../e2a65af03dfdfb5cba1e6d078288c201.json | 1 + .../e5cf62bbe1229d7c0220944f7a58480c.json | 1 + .../e8e834680bc63dd51ee7c09748b161fd.json | 1 + .../fadbd97467158128866d371513299406.json | 1 + .../fb01d5a668cc3035a18fc14f70647317.json | 1 + .../fb7cdd8c6758f6e39000cac5fc8d6faa.json | 1 + front-end/build/test-results/clover.xml | 7 + .../build/test-results/coverage-final.json | 1 + .../test-results/jest/TESTS-results-sonar.xml | 35 + .../build/test-results/jest/TESTS-results.xml | 2 + .../build/test-results/lcov-report/base.css | 223 + .../lcov-report/block-navigation.js | 63 + .../build/test-results/lcov-report/index.html | 84 + .../test-results/lcov-report/prettify.css | 1 + .../test-results/lcov-report/prettify.js | 1 + .../lcov-report/sort-arrow-sprite.png | Bin 0 -> 209 bytes .../build/test-results/lcov-report/sorter.js | 158 + front-end/build/test-results/lcov.info | 0 front-end/build/www/app/account.chunk.js | 325 + front-end/build/www/app/account.chunk.js.map | 1 + .../build/www/app/administration.chunk.js | 1688 + .../build/www/app/administration.chunk.js.map | 1 + front-end/build/www/app/main.bundle.js | 4559 + front-end/build/www/app/main.bundle.js.map | 1 + front-end/build/www/app/vendors.chunk.js | 117114 +++++++++++++++ front-end/build/www/app/vendors.chunk.js.map | 1 + .../4d7a941186721ef8150a081fa7cfa010.svg | 325 + .../build/www/content/images/hipster.png | Bin 0 -> 9499 bytes .../build/www/content/images/hipster192.png | Bin 0 -> 28003 bytes .../build/www/content/images/hipster256.png | Bin 0 -> 41174 bytes .../build/www/content/images/hipster2x.png | Bin 0 -> 18872 bytes .../build/www/content/images/hipster384.png | Bin 0 -> 59948 bytes .../build/www/content/images/hipster512.png | Bin 0 -> 83219 bytes .../content/images/logo-jhipster-react.svg | 325 + .../www/content/images/logo-jhipster.png | Bin 0 -> 4459 bytes front-end/build/www/favicon.ico | Bin 0 -> 5430 bytes front-end/build/www/index.html | 42 + front-end/build/www/manifest.webapp | 31 + front-end/build/www/robots.txt | 11 + .../build/www/swagger-ui/dist/css/print.css | 1 + .../build/www/swagger-ui/dist/css/reset.css | 1 + .../build/www/swagger-ui/dist/css/screen.css | 1 + .../build/www/swagger-ui/dist/css/style.css | 1 + .../www/swagger-ui/dist/css/typography.css | 0 .../www/swagger-ui/dist/images/throbber.gif | Bin 0 -> 9257 bytes .../www/swagger-ui/dist/lib/backbone-min.js | 1 + .../build/www/swagger-ui/dist/lib/es5-shim.js | 1 + .../swagger-ui/dist/lib/handlebars-4.0.5.js | 3 + .../dist/lib/highlight.9.1.0.pack.js | 1 + .../dist/lib/highlight.9.1.0.pack_extended.js | 1 + .../swagger-ui/dist/lib/jquery-1.8.0.min.js | 3 + .../swagger-ui/dist/lib/jquery.ba-bbq.min.js | 1 + .../swagger-ui/dist/lib/jquery.slideto.min.js | 1 + .../swagger-ui/dist/lib/jquery.wiggle.min.js | 1 + .../www/swagger-ui/dist/lib/js-yaml.min.js | 2 + .../www/swagger-ui/dist/lib/jsoneditor.min.js | 5 + .../www/swagger-ui/dist/lib/lodash.min.js | 2 + .../build/www/swagger-ui/dist/lib/marked.js | 1 + .../dist/lib/object-assign-pollyfill.js | 1 + .../swagger-ui/dist/lib/sanitize-html.min.js | 4 + .../www/swagger-ui/dist/lib/swagger-oauth.js | 1 + .../www/swagger-ui/dist/swagger-ui.min.js | 15 + front-end/build/www/swagger-ui/index.html | 175 + front-end/package.json | 145 + front-end/postcss.config.js | 3 + front-end/src/main/webapp/404.html | 61 + .../main/webapp/app/_bootstrap-variables.scss | 28 + front-end/src/main/webapp/app/app.scss | 344 + front-end/src/main/webapp/app/app.tsx | 73 + .../webapp/app/config/axios-interceptor.ts | 25 + .../src/main/webapp/app/config/constants.ts | 23 + .../src/main/webapp/app/config/devtools.tsx | 11 + .../webapp/app/config/error-middleware.ts | 38 + .../src/main/webapp/app/config/icon-loader.ts | 63 + .../webapp/app/config/logger-middleware.ts | 14 + .../app/config/notification-middleware.ts | 99 + front-end/src/main/webapp/app/config/store.ts | 29 + .../src/main/webapp/app/entities/index.tsx | 18 + front-end/src/main/webapp/app/index.tsx | 50 + .../account/activate/activate.reducer.ts | 51 + .../app/modules/account/activate/activate.tsx | 66 + .../main/webapp/app/modules/account/index.tsx | 17 + .../finish/password-reset-finish.tsx | 95 + .../init/password-reset-init.tsx | 61 + .../password-reset/password-reset.reducer.ts | 74 + .../account/password/password.reducer.ts | 66 + .../app/modules/account/password/password.tsx | 119 + .../account/register/register.reducer.ts | 58 + .../app/modules/account/register/register.tsx | 120 + .../account/sessions/sessions.reducer.ts | 67 + .../app/modules/account/sessions/sessions.tsx | 99 + .../account/settings/settings.reducer.ts | 69 + .../app/modules/account/settings/settings.tsx | 110 + .../administration/administration.reducer.ts | 177 + .../modules/administration/audits/audits.tsx | 156 + .../configuration/configuration.tsx | 140 + .../app/modules/administration/docs/docs.tsx | 9 + .../administration/health/health-modal.tsx | 47 + .../modules/administration/health/health.tsx | 118 + .../app/modules/administration/index.tsx | 24 + .../app/modules/administration/logs/logs.tsx | 137 + .../administration/metrics/metrics-modal.tsx | 165 + .../administration/metrics/metrics.tsx | 672 + .../administration/metrics/thread-item.tsx | 53 + .../administration/user-management/index.tsx | 22 + .../user-management-delete-dialog.tsx | 60 + .../user-management-detail.tsx | 86 + .../user-management-update.tsx | 200 + .../user-management.reducer.ts | 164 + .../user-management/user-management.tsx | 184 + .../main/webapp/app/modules/home/home.scss | 10 + .../src/main/webapp/app/modules/home/home.tsx | 109 + .../webapp/app/modules/login/login-modal.tsx | 84 + .../main/webapp/app/modules/login/login.tsx | 61 + .../main/webapp/app/modules/login/logout.tsx | 39 + front-end/src/main/webapp/app/routes.tsx | 46 + .../webapp/app/shared/auth/private-route.tsx | 79 + .../app/shared/error/error-boundary-route.tsx | 17 + .../app/shared/error/error-boundary.tsx | 46 + .../app/shared/layout/footer/footer.scss | 3 + .../app/shared/layout/footer/footer.tsx | 17 + .../layout/header/header-components.tsx | 42 + .../app/shared/layout/header/header.scss | 113 + .../app/shared/layout/header/header.tsx | 66 + .../shared/layout/header/menus/account.tsx | 42 + .../app/shared/layout/header/menus/admin.tsx | 44 + .../shared/layout/header/menus/entities.tsx | 13 + .../app/shared/layout/header/menus/index.ts | 3 + .../password/password-strength-bar.scss | 23 + .../layout/password/password-strength-bar.tsx | 73 + .../webapp/app/shared/model/user.model.ts | 31 + .../app/shared/reducers/action-type.util.ts | 17 + .../shared/reducers/application-profile.ts | 35 + .../app/shared/reducers/authentication.ts | 123 + .../main/webapp/app/shared/reducers/index.ts | 47 + .../main/webapp/app/shared/util/date-utils.ts | 5 + .../webapp/app/shared/util/entity-utils.ts | 26 + .../app/shared/util/pagination.constants.ts | 1 + .../main/webapp/app/shared/util/url-utils.ts | 0 front-end/src/main/webapp/app/typings.d.ts | 4 + front-end/src/main/webapp/favicon.ico | Bin 0 -> 5430 bytes front-end/src/main/webapp/index.html | 42 + front-end/src/main/webapp/manifest.webapp | 31 + front-end/src/main/webapp/robots.txt | 11 + .../src/main/webapp/static/images/hipster.png | Bin 0 -> 9499 bytes .../main/webapp/static/images/hipster192.png | Bin 0 -> 28003 bytes .../main/webapp/static/images/hipster256.png | Bin 0 -> 41174 bytes .../main/webapp/static/images/hipster2x.png | Bin 0 -> 18872 bytes .../main/webapp/static/images/hipster384.png | Bin 0 -> 59948 bytes .../main/webapp/static/images/hipster512.png | Bin 0 -> 83219 bytes .../static/images/logo-jhipster-react.svg | 325 + .../webapp/static/images/logo-jhipster.png | Bin 0 -> 4459 bytes .../swagger-ui/dist/images/throbber.gif | Bin 0 -> 9257 bytes .../src/main/webapp/swagger-ui/index.html | 175 + front-end/src/test/javascript/jest.conf.js | 31 + .../spec/app/config/axios-interceptor.spec.ts | 32 + .../config/notification-middleware.spec.ts | 82 + .../account/activate/activate.reducer.spec.ts | 62 + .../account/password/password.reducer.spec.ts | 80 + .../account/register/register.reducer.spec.ts | 94 + .../account/sessions/sessions.reducer.spec.ts | 0 .../account/settings/settings.reducer.spec.ts | 88 + .../administration.reducer.spec.ts | 303 + .../user-management.reducer.spec.ts | 279 + .../app/shared/auth/private-route.spec.tsx | 89 + .../error/error-boundary-route.spec.tsx | 38 + .../app/shared/error/error-boundary.spec.tsx | 30 + .../app/shared/layout/header/header.spec.tsx | 93 + .../layout/header/menus/account.spec.tsx | 42 + .../reducers/application-profile.spec.ts | 76 + .../shared/reducers/authentication.spec.ts | 165 + .../spec/app/shared/util/entity-utils.spec.ts | 42 + .../src/test/javascript/spec/app/utils.ts | 2 + .../src/test/javascript/spec/enzyme-setup.ts | 5 + .../src/test/javascript/spec/storage-mock.ts | 16 + front-end/tsconfig.json | 36 + front-end/tsconfig.test.json | 7 + front-end/tslint.json | 213 + front-end/webpack/logo-jhipster.png | Bin 0 -> 8492 bytes front-end/webpack/utils.js | 28 + front-end/webpack/webpack.common.js | 121 + front-end/webpack/webpack.dev.js | 81 + front-end/webpack/webpack.prod.js | 90 + front-end/yarn.lock | 11293 ++ 247 files changed, 145182 insertions(+) create mode 100644 front-end/.editorconfig create mode 100644 front-end/.gitignore create mode 100644 front-end/.prettierignore create mode 100644 front-end/.prettierrc create mode 100644 front-end/.yo-rc.json create mode 100644 front-end/build/cache-loader/0125cc321607e26eb7e19ca7de6203f8.json create mode 100644 front-end/build/cache-loader/057a32104bc24ff9d2055da44a8e53b9.json create mode 100644 front-end/build/cache-loader/0beb3f4e6d31f7046b4a6d53a9fe0c12.json create mode 100644 front-end/build/cache-loader/13da207c250ef31ffce50b99d89378b1.json create mode 100644 front-end/build/cache-loader/1a7864d61bcf82b5528c636c7c00df56.json create mode 100644 front-end/build/cache-loader/1a93a76f3f3114f161cd4cd0aa6f22bc.json create mode 100644 front-end/build/cache-loader/1ee940f838eba061450f15e549cb1f51.json create mode 100644 front-end/build/cache-loader/24815580921ca49ffdec059689c0a8f6.json create mode 100644 front-end/build/cache-loader/25817ae0b134d0ca4d048fc45272fff8.json create mode 100644 front-end/build/cache-loader/27850d0f7bae80c0a6522f8349c5592a.json create mode 100644 front-end/build/cache-loader/2917a430b957d8dbe719854152f09aa9.json create mode 100644 front-end/build/cache-loader/294075b22279f132b484525668413796.json create mode 100644 front-end/build/cache-loader/32129d1a5400d18f297437a832678a71.json create mode 100644 front-end/build/cache-loader/33615345a67cf5b5574903cb778bc71e.json create mode 100644 front-end/build/cache-loader/35bab663521891ccaade2344b6744ae6.json create mode 100644 front-end/build/cache-loader/37aca97f18e868f5acf72ae4b1fb2fdf.json create mode 100644 front-end/build/cache-loader/3ce6af2d8485c68ac58c29ac6b1b2ccb.json create mode 100644 front-end/build/cache-loader/403c08a9c21cfe9714fc57f7be9a0e1d.json create mode 100644 front-end/build/cache-loader/468d9dcc5e5ee7b88137c8bf673e84b4.json create mode 100644 front-end/build/cache-loader/4a49d5c0c968412bb4cf04287a878a1d.json create mode 100644 front-end/build/cache-loader/4c0102930bfeb29271646ed3e6679dca.json create mode 100644 front-end/build/cache-loader/4d892f3c5e2407ee7856c77a6793b63d.json create mode 100644 front-end/build/cache-loader/5224e897265339bf279365fa607d0484.json create mode 100644 front-end/build/cache-loader/538d180980a7ac16b7b2bca725f51b34.json create mode 100644 front-end/build/cache-loader/53960299ab55e61cbeeca8c72ef01b8b.json create mode 100644 front-end/build/cache-loader/5819386b8a339084e6890c09309ada79.json create mode 100644 front-end/build/cache-loader/5ab26117f65692cf2fa5d6e4df51b438.json create mode 100644 front-end/build/cache-loader/655b68409fe939e57013bcfcdf1d2668.json create mode 100644 front-end/build/cache-loader/671bfd4691cc2650e39112711e15a243.json create mode 100644 front-end/build/cache-loader/675a74b8b70ad127ef55e8bf91aeff46.json create mode 100644 front-end/build/cache-loader/6d1685a0d3763dc9fdbc4d68a8d5a57d.json create mode 100644 front-end/build/cache-loader/7175ffa55d131b092f878269c603e0da.json create mode 100644 front-end/build/cache-loader/739d38d2e152c1fb2cd96abc1214329f.json create mode 100644 front-end/build/cache-loader/77c16a442047fc8be137c9ec1d85dbf1.json create mode 100644 front-end/build/cache-loader/79e37e5844a07a2f3245e09d3aebd116.json create mode 100644 front-end/build/cache-loader/7fbd861587473c48b840538d8944c14d.json create mode 100644 front-end/build/cache-loader/807d90330ee79a611e405ad361f4cd96.json create mode 100644 front-end/build/cache-loader/861e415adce71084be0ae56ecc15868c.json create mode 100644 front-end/build/cache-loader/8a99843112deb07a2a38b31b9bc0b388.json create mode 100644 front-end/build/cache-loader/91d046e044cfab940aa0a3ed8203f66c.json create mode 100644 front-end/build/cache-loader/933319b4b823deb34afab82a95552d2b.json create mode 100644 front-end/build/cache-loader/9345fdb28f24fe52dee163990004c2aa.json create mode 100644 front-end/build/cache-loader/97bbf7824f9456c5cc031abf3fa1931d.json create mode 100644 front-end/build/cache-loader/9cb917e7467736c4dd49d8bbc05035b2.json create mode 100644 front-end/build/cache-loader/a46e33ebbd113f0a8669b6e01b261a6a.json create mode 100644 front-end/build/cache-loader/a7f3d13488a2100def2e7c63c256744a.json create mode 100644 front-end/build/cache-loader/ac227bcbc814c3ae7c628d0e1d242802.json create mode 100644 front-end/build/cache-loader/addb181ce9b50b6ea32fb7c58882490f.json create mode 100644 front-end/build/cache-loader/b3808174419ec0fa3c9a6278229953a2.json create mode 100644 front-end/build/cache-loader/ba604bcaccba791c7ea06b6b18923bc8.json create mode 100644 front-end/build/cache-loader/c04bf98a07b650dd4fa86351ca498429.json create mode 100644 front-end/build/cache-loader/c2764ce66829c992313aa22680dd8d85.json create mode 100644 front-end/build/cache-loader/c878ab0e3ac1d9f91bb372bf9a3ae110.json create mode 100644 front-end/build/cache-loader/c9dd248e25196e9f90c10076ec046be7.json create mode 100644 front-end/build/cache-loader/cb8b1fca4bab486a190f7a6981fc9465.json create mode 100644 front-end/build/cache-loader/d263a2bde78b29f7d445bc6ee7fa0eb6.json create mode 100644 front-end/build/cache-loader/d5235e87e5436248c2cfb710a1c979ac.json create mode 100644 front-end/build/cache-loader/d53f1b6a9364f429e482f2e71772e908.json create mode 100644 front-end/build/cache-loader/e2a65af03dfdfb5cba1e6d078288c201.json create mode 100644 front-end/build/cache-loader/e5cf62bbe1229d7c0220944f7a58480c.json create mode 100644 front-end/build/cache-loader/e8e834680bc63dd51ee7c09748b161fd.json create mode 100644 front-end/build/cache-loader/fadbd97467158128866d371513299406.json create mode 100644 front-end/build/cache-loader/fb01d5a668cc3035a18fc14f70647317.json create mode 100644 front-end/build/cache-loader/fb7cdd8c6758f6e39000cac5fc8d6faa.json create mode 100644 front-end/build/test-results/clover.xml create mode 100644 front-end/build/test-results/coverage-final.json create mode 100644 front-end/build/test-results/jest/TESTS-results-sonar.xml create mode 100644 front-end/build/test-results/jest/TESTS-results.xml create mode 100644 front-end/build/test-results/lcov-report/base.css create mode 100644 front-end/build/test-results/lcov-report/block-navigation.js create mode 100644 front-end/build/test-results/lcov-report/index.html create mode 100644 front-end/build/test-results/lcov-report/prettify.css create mode 100644 front-end/build/test-results/lcov-report/prettify.js create mode 100644 front-end/build/test-results/lcov-report/sort-arrow-sprite.png create mode 100644 front-end/build/test-results/lcov-report/sorter.js create mode 100644 front-end/build/test-results/lcov.info create mode 100644 front-end/build/www/app/account.chunk.js create mode 100644 front-end/build/www/app/account.chunk.js.map create mode 100644 front-end/build/www/app/administration.chunk.js create mode 100644 front-end/build/www/app/administration.chunk.js.map create mode 100644 front-end/build/www/app/main.bundle.js create mode 100644 front-end/build/www/app/main.bundle.js.map create mode 100644 front-end/build/www/app/vendors.chunk.js create mode 100644 front-end/build/www/app/vendors.chunk.js.map create mode 100644 front-end/build/www/content/4d7a941186721ef8150a081fa7cfa010.svg create mode 100644 front-end/build/www/content/images/hipster.png create mode 100644 front-end/build/www/content/images/hipster192.png create mode 100644 front-end/build/www/content/images/hipster256.png create mode 100644 front-end/build/www/content/images/hipster2x.png create mode 100644 front-end/build/www/content/images/hipster384.png create mode 100644 front-end/build/www/content/images/hipster512.png create mode 100644 front-end/build/www/content/images/logo-jhipster-react.svg create mode 100644 front-end/build/www/content/images/logo-jhipster.png create mode 100644 front-end/build/www/favicon.ico create mode 100644 front-end/build/www/index.html create mode 100644 front-end/build/www/manifest.webapp create mode 100644 front-end/build/www/robots.txt create mode 100644 front-end/build/www/swagger-ui/dist/css/print.css create mode 100644 front-end/build/www/swagger-ui/dist/css/reset.css create mode 100644 front-end/build/www/swagger-ui/dist/css/screen.css create mode 100644 front-end/build/www/swagger-ui/dist/css/style.css create mode 100644 front-end/build/www/swagger-ui/dist/css/typography.css create mode 100644 front-end/build/www/swagger-ui/dist/images/throbber.gif create mode 100644 front-end/build/www/swagger-ui/dist/lib/backbone-min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/es5-shim.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/handlebars-4.0.5.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/highlight.9.1.0.pack.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/highlight.9.1.0.pack_extended.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/jquery-1.8.0.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/jquery.ba-bbq.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/jquery.slideto.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/jquery.wiggle.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/js-yaml.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/jsoneditor.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/lodash.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/marked.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/object-assign-pollyfill.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/sanitize-html.min.js create mode 100644 front-end/build/www/swagger-ui/dist/lib/swagger-oauth.js create mode 100644 front-end/build/www/swagger-ui/dist/swagger-ui.min.js create mode 100644 front-end/build/www/swagger-ui/index.html create mode 100644 front-end/package.json create mode 100644 front-end/postcss.config.js create mode 100644 front-end/src/main/webapp/404.html create mode 100644 front-end/src/main/webapp/app/_bootstrap-variables.scss create mode 100644 front-end/src/main/webapp/app/app.scss create mode 100644 front-end/src/main/webapp/app/app.tsx create mode 100644 front-end/src/main/webapp/app/config/axios-interceptor.ts create mode 100644 front-end/src/main/webapp/app/config/constants.ts create mode 100644 front-end/src/main/webapp/app/config/devtools.tsx create mode 100644 front-end/src/main/webapp/app/config/error-middleware.ts create mode 100644 front-end/src/main/webapp/app/config/icon-loader.ts create mode 100644 front-end/src/main/webapp/app/config/logger-middleware.ts create mode 100644 front-end/src/main/webapp/app/config/notification-middleware.ts create mode 100644 front-end/src/main/webapp/app/config/store.ts create mode 100644 front-end/src/main/webapp/app/entities/index.tsx create mode 100644 front-end/src/main/webapp/app/index.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/activate/activate.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/activate/activate.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/index.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/password-reset/init/password-reset-init.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/password-reset/password-reset.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/password/password.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/password/password.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/register/register.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/register/register.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/sessions/sessions.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/sessions/sessions.tsx create mode 100644 front-end/src/main/webapp/app/modules/account/settings/settings.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/account/settings/settings.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/administration.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/administration/audits/audits.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/configuration/configuration.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/docs/docs.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/health/health-modal.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/health/health.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/index.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/logs/logs.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/metrics/metrics-modal.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/metrics/metrics.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/metrics/thread-item.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/index.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/user-management-delete-dialog.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/user-management-detail.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/user-management.reducer.ts create mode 100644 front-end/src/main/webapp/app/modules/administration/user-management/user-management.tsx create mode 100644 front-end/src/main/webapp/app/modules/home/home.scss create mode 100644 front-end/src/main/webapp/app/modules/home/home.tsx create mode 100644 front-end/src/main/webapp/app/modules/login/login-modal.tsx create mode 100644 front-end/src/main/webapp/app/modules/login/login.tsx create mode 100644 front-end/src/main/webapp/app/modules/login/logout.tsx create mode 100644 front-end/src/main/webapp/app/routes.tsx create mode 100644 front-end/src/main/webapp/app/shared/auth/private-route.tsx create mode 100644 front-end/src/main/webapp/app/shared/error/error-boundary-route.tsx create mode 100644 front-end/src/main/webapp/app/shared/error/error-boundary.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/footer/footer.scss create mode 100644 front-end/src/main/webapp/app/shared/layout/footer/footer.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/header-components.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/header.scss create mode 100644 front-end/src/main/webapp/app/shared/layout/header/header.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/menus/account.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/menus/admin.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/menus/entities.tsx create mode 100644 front-end/src/main/webapp/app/shared/layout/header/menus/index.ts create mode 100644 front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.scss create mode 100644 front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.tsx create mode 100644 front-end/src/main/webapp/app/shared/model/user.model.ts create mode 100644 front-end/src/main/webapp/app/shared/reducers/action-type.util.ts create mode 100644 front-end/src/main/webapp/app/shared/reducers/application-profile.ts create mode 100644 front-end/src/main/webapp/app/shared/reducers/authentication.ts create mode 100644 front-end/src/main/webapp/app/shared/reducers/index.ts create mode 100644 front-end/src/main/webapp/app/shared/util/date-utils.ts create mode 100644 front-end/src/main/webapp/app/shared/util/entity-utils.ts create mode 100644 front-end/src/main/webapp/app/shared/util/pagination.constants.ts create mode 100644 front-end/src/main/webapp/app/shared/util/url-utils.ts create mode 100644 front-end/src/main/webapp/app/typings.d.ts create mode 100644 front-end/src/main/webapp/favicon.ico create mode 100644 front-end/src/main/webapp/index.html create mode 100644 front-end/src/main/webapp/manifest.webapp create mode 100644 front-end/src/main/webapp/robots.txt create mode 100644 front-end/src/main/webapp/static/images/hipster.png create mode 100644 front-end/src/main/webapp/static/images/hipster192.png create mode 100644 front-end/src/main/webapp/static/images/hipster256.png create mode 100644 front-end/src/main/webapp/static/images/hipster2x.png create mode 100644 front-end/src/main/webapp/static/images/hipster384.png create mode 100644 front-end/src/main/webapp/static/images/hipster512.png create mode 100644 front-end/src/main/webapp/static/images/logo-jhipster-react.svg create mode 100644 front-end/src/main/webapp/static/images/logo-jhipster.png create mode 100644 front-end/src/main/webapp/swagger-ui/dist/images/throbber.gif create mode 100644 front-end/src/main/webapp/swagger-ui/index.html create mode 100644 front-end/src/test/javascript/jest.conf.js create mode 100644 front-end/src/test/javascript/spec/app/config/axios-interceptor.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/config/notification-middleware.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/account/activate/activate.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/account/password/password.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/account/register/register.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/account/sessions/sessions.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/account/settings/settings.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/administration/administration.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/modules/administration/user-management/user-management.reducer.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/shared/auth/private-route.spec.tsx create mode 100644 front-end/src/test/javascript/spec/app/shared/error/error-boundary-route.spec.tsx create mode 100644 front-end/src/test/javascript/spec/app/shared/error/error-boundary.spec.tsx create mode 100644 front-end/src/test/javascript/spec/app/shared/layout/header/header.spec.tsx create mode 100644 front-end/src/test/javascript/spec/app/shared/layout/header/menus/account.spec.tsx create mode 100644 front-end/src/test/javascript/spec/app/shared/reducers/application-profile.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/shared/reducers/authentication.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/shared/util/entity-utils.spec.ts create mode 100644 front-end/src/test/javascript/spec/app/utils.ts create mode 100644 front-end/src/test/javascript/spec/enzyme-setup.ts create mode 100644 front-end/src/test/javascript/spec/storage-mock.ts create mode 100644 front-end/tsconfig.json create mode 100644 front-end/tsconfig.test.json create mode 100644 front-end/tslint.json create mode 100644 front-end/webpack/logo-jhipster.png create mode 100644 front-end/webpack/utils.js create mode 100644 front-end/webpack/webpack.common.js create mode 100644 front-end/webpack/webpack.dev.js create mode 100644 front-end/webpack/webpack.prod.js create mode 100644 front-end/yarn.lock diff --git a/front-end/.editorconfig b/front-end/.editorconfig new file mode 100644 index 0000000..47ce539 --- /dev/null +++ b/front-end/.editorconfig @@ -0,0 +1,25 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 4 +max_line_length = 180 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{ts,tsx,js,jsx,json,css,scss,sql,ejs}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/front-end/.gitignore b/front-end/.gitignore new file mode 100644 index 0000000..8d87b1d --- /dev/null +++ b/front-end/.gitignore @@ -0,0 +1 @@ +node_modules/* diff --git a/front-end/.prettierignore b/front-end/.prettierignore new file mode 100644 index 0000000..2c085d1 --- /dev/null +++ b/front-end/.prettierignore @@ -0,0 +1,2 @@ +node_modules +target diff --git a/front-end/.prettierrc b/front-end/.prettierrc new file mode 100644 index 0000000..b749286 --- /dev/null +++ b/front-end/.prettierrc @@ -0,0 +1,12 @@ +# Prettier configuration + +printWidth: 140 +singleQuote: true +tabWidth: 2 +useTabs: false + +# js and ts rules: +arrowParens: avoid + +# jsx and tsx rules: +jsxBracketSameLine: false diff --git a/front-end/.yo-rc.json b/front-end/.yo-rc.json new file mode 100644 index 0000000..f77c617 --- /dev/null +++ b/front-end/.yo-rc.json @@ -0,0 +1,25 @@ +{ + "generator-jhipster": { + "jhipsterVersion": "5.1.0", + "applicationType": "monolith", + "baseName": "payroll", + "clientFramework": "react", + "useSass": true, + "clientPackageManager": "yarn", + "authenticationType": "session", + "cacheProvider": "no", + "databaseType": "sql", + "devDatabaseType": "mysql", + "prodDatabaseType": "mysql", + "testFrameworks": [], + "jhiPrefix": "jhi", + "otherModules": [ + { + "name": "generator-jhipster-docker", + "version": "2.5.0" + } + ], + "enableTranslation": false, + "skipServer": true + } +} \ No newline at end of file diff --git a/front-end/build/cache-loader/0125cc321607e26eb7e19ca7de6203f8.json b/front-end/build/cache-loader/0125cc321607e26eb7e19ca7de6203f8.json new file mode 100644 index 0000000..76881bf --- /dev/null +++ b/front-end/build/cache-loader/0125cc321607e26eb7e19ca7de6203f8.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/util/pagination.constants.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/util/pagination.constants.ts","mtime":1533613273281},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["export var ITEMS_PER_PAGE = 20;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/util/pagination.constants.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/util/pagination.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,cAAc,GAAG,EAAE,CAAC","sourcesContent":["export const ITEMS_PER_PAGE = 20;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/057a32104bc24ff9d2055da44a8e53b9.json b/front-end/build/cache-loader/057a32104bc24ff9d2055da44a8e53b9.json new file mode 100644 index 0000000..1cb864d --- /dev/null +++ b/front-end/build/cache-loader/057a32104bc24ff9d2055da44a8e53b9.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/auth/private-route.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/auth/private-route.tsx","mtime":1533613273349},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Route, Redirect } from 'react-router-dom';\nimport ErrorBoundary from 'app/shared/error/error-boundary';\nexport var PrivateRouteComponent = function (_a) {\n var Component = _a.component, isAuthenticated = _a.isAuthenticated, isAuthorized = _a.isAuthorized, _b = _a.hasAnyAuthorities, hasAnyAuthorities = _b === void 0 ? [] : _b, rest = tslib_1.__rest(_a, [\"component\", \"isAuthenticated\", \"isAuthorized\", \"hasAnyAuthorities\"]);\n var checkAuthorities = function (props) {\n return isAuthorized ? (React.createElement(ErrorBoundary, null,\n React.createElement(Component, tslib_1.__assign({}, props)))) : (React.createElement(\"div\", { className: \"insufficient-authority\" },\n React.createElement(\"div\", { className: \"alert alert-danger\" }, \"You are not authorized to access this page.\")));\n };\n var renderRedirect = function (props) {\n return isAuthenticated ? (checkAuthorities(props)) : (React.createElement(Redirect, { to: {\n pathname: '/login',\n search: props.location.search,\n state: { from: props.location }\n } }));\n };\n if (!Component)\n throw new Error(\"A component needs to be specified for private route for path \" + rest.path);\n return React.createElement(Route, tslib_1.__assign({}, rest, { render: renderRedirect }));\n};\nexport var hasAnyAuthority = function (authorities, hasAnyAuthorities) {\n if (authorities && authorities.length !== 0) {\n if (hasAnyAuthorities.length === 0) {\n return true;\n }\n return hasAnyAuthorities.some(function (auth) { return authorities.includes(auth); });\n }\n return false;\n};\nvar mapStateToProps = function (_a, _b) {\n var _c = _a.authentication, isAuthenticated = _c.isAuthenticated, account = _c.account;\n var _d = _b.hasAnyAuthorities, hasAnyAuthorities = _d === void 0 ? [] : _d;\n return ({\n isAuthenticated: isAuthenticated,\n isAuthorized: hasAnyAuthority(account.authorities, hasAnyAuthorities)\n });\n};\n/**\n * A route wrapped in an authentication check so that routing happens only when you are authenticated.\n * Accepts same props as React router Route.\n * The route also checks for authorization if hasAnyAuthorities is specified.\n */\nexport var PrivateRoute = connect(mapStateToProps, null, null, { pure: false })(PrivateRouteComponent);\nexport default PrivateRoute;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/auth/private-route.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/auth/private-route.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAC;AAG/D,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAQ5D,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,EAMjB;IALnB,IAAA,wBAAoB,EACpB,oCAAe,EACf,8BAAY,EACZ,yBAAsB,EAAtB,2CAAsB,EACtB,gGAAO;IAEP,IAAM,gBAAgB,GAAG,UAAA,KAAK;QAC5B,OAAA,YAAY,CAAC,CAAC,CAAC,CACb,oBAAC,aAAa;YACZ,oBAAC,SAAS,uBAAK,KAAK,EAAI,CACV,CACjB,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,wBAAwB;YACrC,6BAAK,SAAS,EAAC,oBAAoB,kDAAkD,CACjF,CACP;IARD,CAQC,CAAC;IAEJ,IAAM,cAAc,GAAG,UAAA,KAAK;QAC1B,OAAA,eAAe,CAAC,CAAC,CAAC,CAChB,gBAAgB,CAAC,KAAK,CAAC,CACxB,CAAC,CAAC,CAAC,CACF,oBAAC,QAAQ,IACP,EAAE,EAAE;gBACF,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;gBAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE;aAChC,GACD,CACH;IAVD,CAUC,CAAC;IAEJ,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAiE,IAAY,CAAC,IAAM,CAAC,CAAC;IAEtH,OAAO,oBAAC,KAAK,uBAAK,IAAI,IAAE,MAAM,EAAE,cAAc,IAAI,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,WAAqB,EAAE,iBAA2B;IAChF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA1B,CAA0B,CAAC,CAAC;KACnE;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,eAAe,GAAG,UAAC,EAA4D,EAAE,EAAqC;QAAjG,sBAA4C,EAA1B,oCAAe,EAAE,oBAAO;QAAoB,yBAAsB,EAAtB,2CAAsB;IAAkB,OAAA,CAAC;QAChI,eAAe,iBAAA;QACf,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC;KACtE,CAAC;AAH+H,CAG/H,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,IAAM,YAAY,GAAG,OAAO,CACjC,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC,qBAAqB,CAAC,CAAC;AAEzB,eAAe,YAAY,CAAC","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { Route, Redirect, RouteProps } from 'react-router-dom';\n\nimport { IRootState } from 'app/shared/reducers';\nimport ErrorBoundary from 'app/shared/error/error-boundary';\n\ninterface IOwnProps extends RouteProps {\n hasAnyAuthorities?: string[];\n}\n\nexport interface IPrivateRouteProps extends IOwnProps, StateProps {}\n\nexport const PrivateRouteComponent = ({\n component: Component,\n isAuthenticated,\n isAuthorized,\n hasAnyAuthorities = [],\n ...rest\n}: IPrivateRouteProps) => {\n const checkAuthorities = props =>\n isAuthorized ? (\n \n \n \n ) : (\n
\n
You are not authorized to access this page.
\n
\n );\n\n const renderRedirect = props =>\n isAuthenticated ? (\n checkAuthorities(props)\n ) : (\n \n );\n\n if (!Component) throw new Error(`A component needs to be specified for private route for path ${(rest as any).path}`);\n\n return ;\n};\n\nexport const hasAnyAuthority = (authorities: string[], hasAnyAuthorities: string[]) => {\n if (authorities && authorities.length !== 0) {\n if (hasAnyAuthorities.length === 0) {\n return true;\n }\n return hasAnyAuthorities.some(auth => authorities.includes(auth));\n }\n return false;\n};\n\nconst mapStateToProps = ({ authentication: { isAuthenticated, account } }: IRootState, { hasAnyAuthorities = [] }: IOwnProps) => ({\n isAuthenticated,\n isAuthorized: hasAnyAuthority(account.authorities, hasAnyAuthorities)\n});\n\ntype StateProps = ReturnType;\n\n/**\n * A route wrapped in an authentication check so that routing happens only when you are authenticated.\n * Accepts same props as React router Route.\n * The route also checks for authorization if hasAnyAuthorities is specified.\n */\nexport const PrivateRoute = connect(\n mapStateToProps,\n null,\n null,\n { pure: false }\n)(PrivateRouteComponent);\n\nexport default PrivateRoute;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/0beb3f4e6d31f7046b4a6d53a9fe0c12.json b/front-end/build/cache-loader/0beb3f4e6d31f7046b4a6d53a9fe0c12.json new file mode 100644 index 0000000..45b422b --- /dev/null +++ b/front-end/build/cache-loader/0beb3f4e6d31f7046b4a6d53a9fe0c12.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx","mtime":1533613273009},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { Button, Label, Row, Col } from 'reactstrap';\nimport { AvForm, AvGroup, AvInput, AvField, AvFeedback } from 'availity-reactstrap-validation';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { getUser, getRoles, updateUser, createUser, reset } from './user-management.reducer';\nvar UserManagementUpdate = /** @class */ (function (_super) {\n tslib_1.__extends(UserManagementUpdate, _super);\n function UserManagementUpdate() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n isNew: !_this.props.match.params || !_this.props.match.params.login\n };\n _this.saveUser = function (event, values) {\n if (_this.state.isNew) {\n _this.props.createUser(values);\n }\n else {\n _this.props.updateUser(values);\n }\n _this.handleClose();\n };\n _this.handleClose = function () {\n _this.props.history.push('/admin/user-management');\n };\n return _this;\n }\n UserManagementUpdate.prototype.componentDidMount = function () {\n !this.state.isNew && this.props.getUser(this.props.match.params.login);\n this.props.getRoles();\n };\n UserManagementUpdate.prototype.componentWillUnmount = function () {\n this.props.reset();\n };\n UserManagementUpdate.prototype.render = function () {\n var isInvalid = false;\n var _a = this.props, user = _a.user, loading = _a.loading, updating = _a.updating, roles = _a.roles;\n var isNew = this.state.isNew;\n return (React.createElement(\"div\", null,\n React.createElement(Row, { className: \"justify-content-center\" },\n React.createElement(Col, { md: \"8\" },\n React.createElement(\"h1\", null, \"Create or edit a User\"))),\n React.createElement(Row, { className: \"justify-content-center\" },\n React.createElement(Col, { md: \"8\" }, loading ? (React.createElement(\"p\", null, \"Loading...\")) : (React.createElement(AvForm, { onValidSubmit: this.saveUser },\n user.id ? (React.createElement(AvGroup, null,\n React.createElement(Label, { for: \"id\" }, \"ID\"),\n React.createElement(AvField, { type: \"text\", className: \"form-control\", name: \"id\", required: true, readOnly: true, value: user.id }))) : null,\n React.createElement(AvGroup, null,\n React.createElement(Label, { for: \"login\" }, \"Login\"),\n React.createElement(AvField, { type: \"text\", className: \"form-control\", name: \"login\", validate: {\n required: {\n value: true,\n errorMessage: 'Your username is required.'\n },\n pattern: {\n value: '^[_.@A-Za-z0-9-]*$',\n errorMessage: 'Your username can only contain letters and digits.'\n },\n minLength: {\n value: 1,\n errorMessage: 'Your username is required to be at least 1 character.'\n },\n maxLength: {\n value: 50,\n errorMessage: 'Your username cannot be longer than 50 characters.'\n }\n }, value: user.login })),\n React.createElement(AvGroup, null,\n React.createElement(Label, { for: \"firstName\" }, \"First Name\"),\n React.createElement(AvField, { type: \"text\", className: \"form-control\", name: \"firstName\", validate: {\n maxLength: {\n value: 50,\n errorMessage: 'This field cannot be longer than {{ max }} characters.'\n }\n }, value: user.firstName })),\n React.createElement(AvGroup, null,\n React.createElement(Label, { for: \"lastName\" }, \"Last Name\"),\n React.createElement(AvField, { type: \"text\", className: \"form-control\", name: \"lastName\", validate: {\n maxLength: {\n value: 50,\n errorMessage: 'This field cannot be longer than {{ max }} characters.'\n }\n }, value: user.lastName }),\n React.createElement(AvFeedback, null, \"This field cannot be longer than 50 characters.\")),\n React.createElement(AvGroup, null,\n React.createElement(AvField, { name: \"email\", label: \"Email\", placeholder: \"Your email\", type: \"email\", validate: {\n required: {\n value: true,\n errorMessage: 'Your email is required.'\n },\n email: {\n errorMessage: 'Your email is invalid.'\n },\n minLength: {\n value: 5,\n errorMessage: 'Your email is required to be at least 5 characters.'\n },\n maxLength: {\n value: 254,\n errorMessage: 'Your email cannot be longer than 50 characters.'\n }\n }, value: user.email })),\n React.createElement(AvGroup, { check: true },\n React.createElement(Label, null,\n React.createElement(AvInput, { type: \"checkbox\", name: \"activated\", value: user.activated }),\n \" Activated\")),\n React.createElement(AvGroup, null,\n React.createElement(Label, { for: \"authorities\" }, \"Language Key\"),\n React.createElement(AvInput, { type: \"select\", className: \"form-control\", name: \"authorities\", value: user.authorities, multiple: true }, roles.map(function (role) { return (React.createElement(\"option\", { value: role, key: role }, role)); }))),\n React.createElement(Button, { tag: Link, to: \"/admin/user-management\", replace: true, color: \"info\" },\n React.createElement(FontAwesomeIcon, { icon: \"arrow-left\" }),\n \"\\u00A0\",\n React.createElement(\"span\", { className: \"d-none d-md-inline\" }, \"Back\")),\n \"\\u00A0\",\n React.createElement(Button, { color: \"primary\", type: \"submit\", disabled: isInvalid || updating },\n React.createElement(FontAwesomeIcon, { icon: \"save\" }),\n \"\\u00A0 Save\")))))));\n };\n return UserManagementUpdate;\n}(React.Component));\nexport { UserManagementUpdate };\nvar mapStateToProps = function (storeState) { return ({\n user: storeState.userManagement.user,\n roles: storeState.userManagement.authorities,\n loading: storeState.userManagement.loading,\n updating: storeState.userManagement.updating\n}); };\nvar mapDispatchToProps = { getUser: getUser, getRoles: getRoles, updateUser: updateUser, createUser: createUser, reset: reset };\nexport default connect(mapStateToProps, mapDispatchToProps)(UserManagementUpdate);\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAuB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAS7F;IAA0C,gDAAuE;IAAjH;QAAA,qEAoKC;QAnKC,WAAK,GAA+B;YAClC,KAAK,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;SAClE,CAAC;QAWF,cAAQ,GAAG,UAAC,KAAK,EAAE,MAAM;YACvB,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpB,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAC/B;iBAAM;gBACL,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAC/B;YACD,KAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;QAEF,iBAAW,GAAG;YACZ,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACpD,CAAC,CAAC;;IA2IJ,CAAC;IA/JC,gDAAiB,GAAjB;QACE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,mDAAoB,GAApB;QACE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAeD,qCAAM,GAAN;QACE,IAAM,SAAS,GAAG,KAAK,CAAC;QAClB,IAAA,eAA+C,EAA7C,cAAI,EAAE,oBAAO,EAAE,sBAAQ,EAAE,gBAAK,CAAgB;QAC9C,IAAA,wBAAK,CAAgB;QAC7B,OAAO,CACL;YACE,oBAAC,GAAG,IAAC,SAAS,EAAC,wBAAwB;gBACrC,oBAAC,GAAG,IAAC,EAAE,EAAC,GAAG;oBACT,wDAA8B,CAC1B,CACF;YACN,oBAAC,GAAG,IAAC,SAAS,EAAC,wBAAwB;gBACrC,oBAAC,GAAG,IAAC,EAAE,EAAC,GAAG,IACR,OAAO,CAAC,CAAC,CAAC,CACT,4CAAiB,CAClB,CAAC,CAAC,CAAC,CACF,oBAAC,MAAM,IAAC,aAAa,EAAE,IAAI,CAAC,QAAQ;oBACjC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CACT,oBAAC,OAAO;wBACN,oBAAC,KAAK,IAAC,GAAG,EAAC,IAAI,SAAW;wBAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,QAAC,QAAQ,QAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAI,CACpF,CACX,CAAC,CAAC,CAAC,IAAI;oBACR,oBAAC,OAAO;wBACN,oBAAC,KAAK,IAAC,GAAG,EAAC,OAAO,YAAc;wBAChC,oBAAC,OAAO,IACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE;gCACR,QAAQ,EAAE;oCACR,KAAK,EAAE,IAAI;oCACX,YAAY,EAAE,4BAA4B;iCAC3C;gCACD,OAAO,EAAE;oCACP,KAAK,EAAE,oBAAoB;oCAC3B,YAAY,EAAE,oDAAoD;iCACnE;gCACD,SAAS,EAAE;oCACT,KAAK,EAAE,CAAC;oCACR,YAAY,EAAE,uDAAuD;iCACtE;gCACD,SAAS,EAAE;oCACT,KAAK,EAAE,EAAE;oCACT,YAAY,EAAE,oDAAoD;iCACnE;6BACF,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACM;oBACV,oBAAC,OAAO;wBACN,oBAAC,KAAK,IAAC,GAAG,EAAC,WAAW,iBAAmB;wBACzC,oBAAC,OAAO,IACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,WAAW,EAChB,QAAQ,EAAE;gCACR,SAAS,EAAE;oCACT,KAAK,EAAE,EAAE;oCACT,YAAY,EAAE,wDAAwD;iCACvE;6BACF,EACD,KAAK,EAAE,IAAI,CAAC,SAAS,GACrB,CACM;oBACV,oBAAC,OAAO;wBACN,oBAAC,KAAK,IAAC,GAAG,EAAC,UAAU,gBAAkB;wBACvC,oBAAC,OAAO,IACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE;gCACR,SAAS,EAAE;oCACT,KAAK,EAAE,EAAE;oCACT,YAAY,EAAE,wDAAwD;iCACvE;6BACF,EACD,KAAK,EAAE,IAAI,CAAC,QAAQ,GACpB;wBACF,oBAAC,UAAU,0DAA6D,CAChE;oBACV,oBAAC,OAAO;wBACN,oBAAC,OAAO,IACN,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,OAAO,EACb,WAAW,EAAC,YAAY,EACxB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE;gCACR,QAAQ,EAAE;oCACR,KAAK,EAAE,IAAI;oCACX,YAAY,EAAE,yBAAyB;iCACxC;gCACD,KAAK,EAAE;oCACL,YAAY,EAAE,wBAAwB;iCACvC;gCACD,SAAS,EAAE;oCACT,KAAK,EAAE,CAAC;oCACR,YAAY,EAAE,qDAAqD;iCACpE;gCACD,SAAS,EAAE;oCACT,KAAK,EAAE,GAAG;oCACV,YAAY,EAAE,iDAAiD;iCAChE;6BACF,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACM;oBACV,oBAAC,OAAO,IAAC,KAAK;wBACZ,oBAAC,KAAK;4BACJ,oBAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,IAAI,CAAC,SAAS,GAAI;yCAC7D,CACA;oBACV,oBAAC,OAAO;wBACN,oBAAC,KAAK,IAAC,GAAG,EAAC,aAAa,mBAAqB;wBAC7C,oBAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,UACjG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CACjB,gCAAQ,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,IAC3B,IAAI,CACE,CACV,EAJkB,CAIlB,CAAC,CACM,CACF;oBACV,oBAAC,MAAM,IAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAC,wBAAwB,EAAC,OAAO,QAAC,KAAK,EAAC,MAAM;wBACjE,oBAAC,eAAe,IAAC,IAAI,EAAC,YAAY,GAAG;;wBACrC,8BAAM,SAAS,EAAC,oBAAoB,WAAY,CACzC;;oBAET,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,SAAS,IAAI,QAAQ;wBACnE,oBAAC,eAAe,IAAC,IAAI,EAAC,MAAM,GAAG;sCACxB,CACF,CACV,CACG,CACF,CACF,CACP,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AApKD,CAA0C,KAAK,CAAC,SAAS,GAoKxD;;AAED,IAAM,eAAe,GAAG,UAAC,UAAsB,IAAK,OAAA,CAAC;IACnD,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI;IACpC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,WAAW;IAC5C,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,OAAO;IAC1C,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,QAAQ;CAC7C,CAAC,EALkD,CAKlD,CAAC;AAEH,IAAM,kBAAkB,GAAG,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,UAAU,YAAA,EAAE,UAAU,YAAA,EAAE,KAAK,OAAA,EAAE,CAAC;AAKhF,eAAe,OAAO,CACpB,eAAe,EACf,kBAAkB,CACnB,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { Link, RouteComponentProps } from 'react-router-dom';\nimport { Button, Label, Row, Col } from 'reactstrap';\nimport { AvForm, AvGroup, AvInput, AvField, AvFeedback } from 'availity-reactstrap-validation';\nimport { ICrudGetAction, ICrudGetAllAction, ICrudPutAction } from 'react-jhipster';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { IUser } from 'app/shared/model/user.model';\nimport { getUser, getRoles, updateUser, createUser, reset } from './user-management.reducer';\nimport { IRootState } from 'app/shared/reducers';\n\nexport interface IUserManagementUpdateProps extends StateProps, DispatchProps, RouteComponentProps<{ login: string }> {}\n\nexport interface IUserManagementUpdateState {\n isNew: boolean;\n}\n\nexport class UserManagementUpdate extends React.Component {\n state: IUserManagementUpdateState = {\n isNew: !this.props.match.params || !this.props.match.params.login\n };\n\n componentDidMount() {\n !this.state.isNew && this.props.getUser(this.props.match.params.login);\n this.props.getRoles();\n }\n\n componentWillUnmount() {\n this.props.reset();\n }\n\n saveUser = (event, values) => {\n if (this.state.isNew) {\n this.props.createUser(values);\n } else {\n this.props.updateUser(values);\n }\n this.handleClose();\n };\n\n handleClose = () => {\n this.props.history.push('/admin/user-management');\n };\n\n render() {\n const isInvalid = false;\n const { user, loading, updating, roles } = this.props;\n const { isNew } = this.state;\n return (\n
\n \n \n

Create or edit a User

\n \n
\n \n \n {loading ? (\n

Loading...

\n ) : (\n \n {user.id ? (\n \n \n \n \n ) : null}\n \n \n \n \n \n \n \n \n \n \n \n This field cannot be longer than 50 characters.\n \n \n \n \n \n \n \n \n \n \n {roles.map(role => (\n \n ))}\n \n \n \n  \n \n \n )}\n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (storeState: IRootState) => ({\n user: storeState.userManagement.user,\n roles: storeState.userManagement.authorities,\n loading: storeState.userManagement.loading,\n updating: storeState.userManagement.updating\n});\n\nconst mapDispatchToProps = { getUser, getRoles, updateUser, createUser, reset };\n\ntype StateProps = ReturnType;\ntype DispatchProps = typeof mapDispatchToProps;\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(UserManagementUpdate);\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/13da207c250ef31ffce50b99d89378b1.json b/front-end/build/cache-loader/13da207c250ef31ffce50b99d89378b1.json new file mode 100644 index 0000000..e185163 --- /dev/null +++ b/front-end/build/cache-loader/13da207c250ef31ffce50b99d89378b1.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/application-profile.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/application-profile.ts","mtime":1533613271641},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport axios from 'axios';\nimport { SUCCESS } from 'app/shared/reducers/action-type.util';\nexport var ACTION_TYPES = {\n GET_PROFILE: 'applicationProfile/GET_PROFILE'\n};\nvar initialState = {\n ribbonEnv: '',\n inProduction: true,\n isSwaggerEnabled: false\n};\nexport default (function (state, action) {\n if (state === void 0) { state = initialState; }\n switch (action.type) {\n case SUCCESS(ACTION_TYPES.GET_PROFILE):\n var data = action.payload.data;\n return tslib_1.__assign({}, state, { ribbonEnv: data['display-ribbon-on-profiles'], inProduction: data.activeProfiles.includes('prod'), isSwaggerEnabled: data.activeProfiles.includes('swagger') });\n default:\n return state;\n }\n});\nexport var getProfile = function () { return ({\n type: ACTION_TYPES.GET_PROFILE,\n payload: axios.get('management/info')\n}); };\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/application-profile.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/application-profile.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAE/D,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,WAAW,EAAE,gCAAgC;CAC9C,CAAC;AAEF,IAAM,YAAY,GAAG;IACnB,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAIF,gBAAe,UAAC,KAA6C,EAAE,MAAM;IAArD,sBAAA,EAAA,oBAA6C;IAC3D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5B,IAAA,0BAAI,CAAoB;YAChC,4BACK,KAAK,IACR,SAAS,EAAE,IAAI,CAAC,4BAA4B,CAAC,EAC7C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAClD,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IACzD;QACJ;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,EAAC;AAEF,MAAM,CAAC,IAAM,UAAU,GAAG,cAAM,OAAA,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC,WAAW;IAC9B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;CACtC,CAAC,EAH8B,CAG9B,CAAC","sourcesContent":["import axios from 'axios';\n\nimport { SUCCESS } from 'app/shared/reducers/action-type.util';\n\nexport const ACTION_TYPES = {\n GET_PROFILE: 'applicationProfile/GET_PROFILE'\n};\n\nconst initialState = {\n ribbonEnv: '',\n inProduction: true,\n isSwaggerEnabled: false\n};\n\nexport type ApplicationProfileState = Readonly;\n\nexport default (state: ApplicationProfileState = initialState, action): ApplicationProfileState => {\n switch (action.type) {\n case SUCCESS(ACTION_TYPES.GET_PROFILE):\n const { data } = action.payload;\n return {\n ...state,\n ribbonEnv: data['display-ribbon-on-profiles'],\n inProduction: data.activeProfiles.includes('prod'),\n isSwaggerEnabled: data.activeProfiles.includes('swagger')\n };\n default:\n return state;\n }\n};\n\nexport const getProfile = () => ({\n type: ACTION_TYPES.GET_PROFILE,\n payload: axios.get('management/info')\n});\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/1a7864d61bcf82b5528c636c7c00df56.json b/front-end/build/cache-loader/1a7864d61bcf82b5528c636c7c00df56.json new file mode 100644 index 0000000..419f37c --- /dev/null +++ b/front-end/build/cache-loader/1a7864d61bcf82b5528c636c7c00df56.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/login/login.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/login/login.tsx","mtime":1533613271469},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\nimport { login } from 'app/shared/reducers/authentication';\nimport LoginModal from './login-modal';\nvar Login = /** @class */ (function (_super) {\n tslib_1.__extends(Login, _super);\n function Login() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n showModal: _this.props.showModal\n };\n _this.handleLogin = function (username, password, rememberMe) {\n if (rememberMe === void 0) { rememberMe = false; }\n _this.props.login(username, password, rememberMe);\n };\n _this.handleClose = function () {\n _this.setState({ showModal: false });\n };\n return _this;\n }\n Login.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (this.props !== prevProps) {\n this.setState({ showModal: this.props.showModal });\n }\n };\n Login.prototype.render = function () {\n var _a = this.props, location = _a.location, isAuthenticated = _a.isAuthenticated;\n var from = (location.state || { from: { pathname: '/', search: location.search } }).from;\n var showModal = this.state.showModal;\n if (isAuthenticated) {\n return React.createElement(Redirect, { to: from });\n }\n return (React.createElement(LoginModal, { showModal: showModal, handleLogin: this.handleLogin, handleClose: this.handleClose, loginError: this.props.loginError }));\n };\n return Login;\n}(React.Component));\nexport { Login };\nvar mapStateToProps = function (_a) {\n var authentication = _a.authentication;\n return ({\n isAuthenticated: authentication.isAuthenticated,\n loginError: authentication.loginError,\n showModal: authentication.showModalLogin\n });\n};\nvar mapDispatchToProps = { login: login };\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/login/login.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/login/login.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAuB,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAC3D,OAAO,UAAU,MAAM,eAAe,CAAC;AAQvC;IAA2B,iCAAyC;IAApE;QAAA,qEA8BC;QA7BC,WAAK,GAAgB;YACnB,SAAS,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC;QAQF,iBAAW,GAAG,UAAC,QAAQ,EAAE,QAAQ,EAAE,UAAkB;YAAlB,2BAAA,EAAA,kBAAkB;YACnD,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,iBAAW,GAAG;YACZ,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC;;IAaJ,CAAC;IAzBC,kCAAkB,GAAlB,UAAmB,SAAsB,EAAE,SAAS;QAClD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;SACpD;IACH,CAAC;IAUD,sBAAM,GAAN;QACQ,IAAA,eAA0C,EAAxC,sBAAQ,EAAE,oCAAe,CAAgB;QACzC,IAAA,oFAAI,CAA4E;QAChF,IAAA,gCAAS,CAAgB;QACjC,IAAI,eAAe,EAAE;YACnB,OAAO,oBAAC,QAAQ,IAAC,EAAE,EAAE,IAAI,GAAI,CAAC;SAC/B;QACD,OAAO,CACL,oBAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAI,CACtI,CAAC;IACJ,CAAC;IACH,YAAC;AAAD,CAAC,AA9BD,CAA2B,KAAK,CAAC,SAAS,GA8BzC;;AAED,IAAM,eAAe,GAAG,UAAC,EAA8B;QAA5B,kCAAc;IAAmB,OAAA,CAAC;QAC3D,eAAe,EAAE,cAAc,CAAC,eAAe;QAC/C,UAAU,EAAE,cAAc,CAAC,UAAU;QACrC,SAAS,EAAE,cAAc,CAAC,cAAc;KACzC,CAAC;AAJ0D,CAI1D,CAAC;AAEH,IAAM,kBAAkB,GAAG,EAAE,KAAK,OAAA,EAAE,CAAC;AAKrC,eAAe,OAAO,CACpB,eAAe,EACf,kBAAkB,CACnB,CAAC,KAAK,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect, RouteComponentProps } from 'react-router-dom';\n\nimport { IRootState } from 'app/shared/reducers';\nimport { login } from 'app/shared/reducers/authentication';\nimport LoginModal from './login-modal';\n\nexport interface ILoginProps extends StateProps, DispatchProps, RouteComponentProps<{}> {}\n\nexport interface ILoginState {\n showModal: boolean;\n}\n\nexport class Login extends React.Component {\n state: ILoginState = {\n showModal: this.props.showModal\n };\n\n componentDidUpdate(prevProps: ILoginProps, prevState) {\n if (this.props !== prevProps) {\n this.setState({ showModal: this.props.showModal });\n }\n }\n\n handleLogin = (username, password, rememberMe = false) => {\n this.props.login(username, password, rememberMe);\n };\n\n handleClose = () => {\n this.setState({ showModal: false });\n };\n\n render() {\n const { location, isAuthenticated } = this.props;\n const { from } = location.state || { from: { pathname: '/', search: location.search } };\n const { showModal } = this.state;\n if (isAuthenticated) {\n return ;\n }\n return (\n \n );\n }\n}\n\nconst mapStateToProps = ({ authentication }: IRootState) => ({\n isAuthenticated: authentication.isAuthenticated,\n loginError: authentication.loginError,\n showModal: authentication.showModalLogin\n});\n\nconst mapDispatchToProps = { login };\n\ntype StateProps = ReturnType;\ntype DispatchProps = typeof mapDispatchToProps;\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(Login);\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/1a93a76f3f3114f161cd4cd0aa6f22bc.json b/front-end/build/cache-loader/1a93a76f3f3114f161cd4cd0aa6f22bc.json new file mode 100644 index 0000000..3deef03 --- /dev/null +++ b/front-end/build/cache-loader/1a93a76f3f3114f161cd4cd0aa6f22bc.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/menus/index.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/menus/index.ts","mtime":1533613273189},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["export * from './account';\nexport * from './admin';\nexport * from './entities';\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/menus/index.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC","sourcesContent":["export * from './account';\nexport * from './admin';\nexport * from './entities';\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/1ee940f838eba061450f15e549cb1f51.json b/front-end/build/cache-loader/1ee940f838eba061450f15e549cb1f51.json new file mode 100644 index 0000000..5b4092a --- /dev/null +++ b/front-end/build/cache-loader/1ee940f838eba061450f15e549cb1f51.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/settings/settings.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/settings/settings.tsx","mtime":1533613271941},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport React from 'react';\nimport { Button, Col, Row } from 'reactstrap';\nimport { connect } from 'react-redux';\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\nimport { getSession } from 'app/shared/reducers/authentication';\nimport { saveAccountSettings, reset } from './settings.reducer';\nvar SettingsPage = /** @class */ (function (_super) {\n tslib_1.__extends(SettingsPage, _super);\n function SettingsPage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleValidSubmit = function (event, values) {\n var account = tslib_1.__assign({}, _this.props.account, values);\n _this.props.saveAccountSettings(account);\n event.persist();\n };\n return _this;\n }\n SettingsPage.prototype.componentDidMount = function () {\n this.props.getSession();\n };\n SettingsPage.prototype.componentWillUnmount = function () {\n this.props.reset();\n };\n SettingsPage.prototype.render = function () {\n var account = this.props.account;\n return (React.createElement(\"div\", null,\n React.createElement(Row, { className: \"justify-content-center\" },\n React.createElement(Col, { md: \"8\" },\n React.createElement(\"h2\", { id: \"settings-title\" },\n \"User settings for \",\n account.login),\n React.createElement(AvForm, { id: \"settings-form\", onValidSubmit: this.handleValidSubmit },\n React.createElement(AvField, { className: \"form-control\", name: \"firstName\", label: \"First Name\", id: \"firstName\", placeholder: \"Your first name\", validate: {\n required: { value: true, errorMessage: 'Your first name is required.' },\n minLength: { value: 1, errorMessage: 'Your first name is required to be at least 1 character' },\n maxLength: { value: 50, errorMessage: 'Your first name cannot be longer than 50 characters' }\n }, value: account.firstName }),\n React.createElement(AvField, { className: \"form-control\", name: \"lastName\", label: \"Last Name\", id: \"lastName\", placeholder: \"Your last name\", validate: {\n required: { value: true, errorMessage: 'Your last name is required.' },\n minLength: { value: 1, errorMessage: 'Your last name is required to be at least 1 character' },\n maxLength: { value: 50, errorMessage: 'Your last name cannot be longer than 50 characters' }\n }, value: account.lastName }),\n React.createElement(AvField, { name: \"email\", label: \"Email\", placeholder: \"Your email\", type: \"email\", validate: {\n required: { value: true, errorMessage: 'Your email is required.' },\n minLength: { value: 5, errorMessage: 'Your email is required to be at least 5 characters.' },\n maxLength: { value: 254, errorMessage: 'Your email cannot be longer than 50 characters.' }\n }, value: account.email }),\n React.createElement(Button, { color: \"primary\", type: \"submit\" }, \"Save\"))))));\n };\n return SettingsPage;\n}(React.Component));\nexport { SettingsPage };\nvar mapStateToProps = function (_a) {\n var authentication = _a.authentication;\n return ({\n account: authentication.account,\n isAuthenticated: authentication.isAuthenticated\n });\n};\nvar mapDispatchToProps = { getSession: getSession, saveAccountSettings: saveAccountSettings, reset: reset };\nexport default connect(mapStateToProps, mapDispatchToProps)(SettingsPage);\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/settings/settings.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/settings/settings.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAS,GAAG,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQhE;IAAkC,wCAAuD;IAAzF;QAAA,qEA8EC;QArEC,uBAAiB,GAAG,UAAC,KAAK,EAAE,MAAM;YAChC,IAAM,OAAO,wBACR,KAAI,CAAC,KAAK,CAAC,OAAO,EAClB,MAAM,CACV,CAAC;YAEF,KAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC,CAAC;;IA6DJ,CAAC;IA7EC,wCAAiB,GAAjB;QACE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,2CAAoB,GAApB;QACE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAYD,6BAAM,GAAN;QACU,IAAA,4BAAO,CAAgB;QAE/B,OAAO,CACL;YACE,oBAAC,GAAG,IAAC,SAAS,EAAC,wBAAwB;gBACrC,oBAAC,GAAG,IAAC,EAAE,EAAC,GAAG;oBACT,4BAAI,EAAE,EAAC,gBAAgB;;wBAAoB,OAAO,CAAC,KAAK,CAAM;oBAC9D,oBAAC,MAAM,IAAC,EAAE,EAAC,eAAe,EAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB;wBAE9D,oBAAC,OAAO,IACN,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,YAAY,EAClB,EAAE,EAAC,WAAW,EACd,WAAW,EAAC,iBAAiB,EAC7B,QAAQ,EAAE;gCACR,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,8BAA8B,EAAE;gCACvE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,wDAAwD,EAAE;gCAC/F,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,qDAAqD,EAAE;6BAC9F,EACD,KAAK,EAAE,OAAO,CAAC,SAAS,GACxB;wBAEF,oBAAC,OAAO,IACN,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,WAAW,EACjB,EAAE,EAAC,UAAU,EACb,WAAW,EAAC,gBAAgB,EAC5B,QAAQ,EAAE;gCACR,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,6BAA6B,EAAE;gCACtE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,uDAAuD,EAAE;gCAC9F,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,oDAAoD,EAAE;6BAC7F,EACD,KAAK,EAAE,OAAO,CAAC,QAAQ,GACvB;wBAEF,oBAAC,OAAO,IACN,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,OAAO,EACb,WAAW,EAAC,YAAY,EACxB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE;gCACR,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,yBAAyB,EAAE;gCAClE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,qDAAqD,EAAE;gCAC5F,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,iDAAiD,EAAE;6BAC3F,EACD,KAAK,EAAE,OAAO,CAAC,KAAK,GACpB;wBACF,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,WAE5B,CACF,CACL,CACF,CACF,CACP,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,AA9ED,CAAkC,KAAK,CAAC,SAAS,GA8EhD;;AAED,IAAM,eAAe,GAAG,UAAC,EAA8B;QAA5B,kCAAc;IAAmB,OAAA,CAAC;QAC3D,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,eAAe,EAAE,cAAc,CAAC,eAAe;KAChD,CAAC;AAH0D,CAG1D,CAAC;AAEH,IAAM,kBAAkB,GAAG,EAAE,UAAU,YAAA,EAAE,mBAAmB,qBAAA,EAAE,KAAK,OAAA,EAAE,CAAC;AAKtE,eAAe,OAAO,CACpB,eAAe,EACf,kBAAkB,CACnB,CAAC,YAAY,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { Button, Col, Alert, Row } from 'reactstrap';\nimport { connect } from 'react-redux';\n\nimport { AvForm, AvField } from 'availity-reactstrap-validation';\n\nimport { IRootState } from 'app/shared/reducers';\nimport { getSession } from 'app/shared/reducers/authentication';\nimport { saveAccountSettings, reset } from './settings.reducer';\n\nexport interface IUserSettingsProps extends StateProps, DispatchProps {}\n\nexport interface IUserSettingsState {\n account: any;\n}\n\nexport class SettingsPage extends React.Component {\n componentDidMount() {\n this.props.getSession();\n }\n\n componentWillUnmount() {\n this.props.reset();\n }\n\n handleValidSubmit = (event, values) => {\n const account = {\n ...this.props.account,\n ...values\n };\n\n this.props.saveAccountSettings(account);\n event.persist();\n };\n\n render() {\n const { account } = this.props;\n\n return (\n
\n \n \n

User settings for {account.login}

\n \n {/* First name */}\n \n {/* Last name */}\n \n {/* Email */}\n \n \n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = ({ authentication }: IRootState) => ({\n account: authentication.account,\n isAuthenticated: authentication.isAuthenticated\n});\n\nconst mapDispatchToProps = { getSession, saveAccountSettings, reset };\n\ntype StateProps = ReturnType;\ntype DispatchProps = typeof mapDispatchToProps;\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SettingsPage);\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/24815580921ca49ffdec059689c0a8f6.json b/front-end/build/cache-loader/24815580921ca49ffdec059689c0a8f6.json new file mode 100644 index 0000000..ae953e7 --- /dev/null +++ b/front-end/build/cache-loader/24815580921ca49ffdec059689c0a8f6.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/index.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/index.ts","mtime":1533613271565},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import { combineReducers } from 'redux';\nimport { loadingBarReducer as loadingBar } from 'react-redux-loading-bar';\nimport authentication from './authentication';\nimport applicationProfile from './application-profile';\nimport administration from 'app/modules/administration/administration.reducer';\nimport userManagement from 'app/modules/administration/user-management/user-management.reducer';\nimport register from 'app/modules/account/register/register.reducer';\nimport activate from 'app/modules/account/activate/activate.reducer';\nimport password from 'app/modules/account/password/password.reducer';\nimport settings from 'app/modules/account/settings/settings.reducer';\nimport passwordReset from 'app/modules/account/password-reset/password-reset.reducer';\nimport sessions from 'app/modules/account/sessions/sessions.reducer';\nvar rootReducer = combineReducers({\n authentication: authentication,\n applicationProfile: applicationProfile,\n administration: administration,\n userManagement: userManagement,\n register: register,\n activate: activate,\n passwordReset: passwordReset,\n password: password,\n settings: settings,\n sessions: sessions,\n /* jhipster-needle-add-reducer-combine - JHipster will add reducer here */\n loadingBar: loadingBar\n});\nexport default rootReducer;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/index.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/reducers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,cAAuC,MAAM,kBAAkB,CAAC;AACvE,OAAO,kBAA+C,MAAM,uBAAuB,CAAC;AAEpF,OAAO,cAAuC,MAAM,mDAAmD,CAAC;AACxG,OAAO,cAAuC,MAAM,oEAAoE,CAAC;AACzH,OAAO,QAA2B,MAAM,+CAA+C,CAAC;AACxF,OAAO,QAA2B,MAAM,+CAA+C,CAAC;AACxF,OAAO,QAA2B,MAAM,+CAA+C,CAAC;AACxF,OAAO,QAA2B,MAAM,+CAA+C,CAAC;AACxF,OAAO,aAAqC,MAAM,2DAA2D,CAAC;AAC9G,OAAO,QAA2B,MAAM,+CAA+C,CAAC;AAkBxF,IAAM,WAAW,GAAG,eAAe,CAAa;IAC9C,cAAc,gBAAA;IACd,kBAAkB,oBAAA;IAClB,cAAc,gBAAA;IACd,cAAc,gBAAA;IACd,QAAQ,UAAA;IACR,QAAQ,UAAA;IACR,aAAa,eAAA;IACb,QAAQ,UAAA;IACR,QAAQ,UAAA;IACR,QAAQ,UAAA;IACR,0EAA0E;IAC1E,UAAU,YAAA;CACX,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC","sourcesContent":["import { combineReducers } from 'redux';\nimport { loadingBarReducer as loadingBar } from 'react-redux-loading-bar';\n\nimport authentication, { AuthenticationState } from './authentication';\nimport applicationProfile, { ApplicationProfileState } from './application-profile';\n\nimport administration, { AdministrationState } from 'app/modules/administration/administration.reducer';\nimport userManagement, { UserManagementState } from 'app/modules/administration/user-management/user-management.reducer';\nimport register, { RegisterState } from 'app/modules/account/register/register.reducer';\nimport activate, { ActivateState } from 'app/modules/account/activate/activate.reducer';\nimport password, { PasswordState } from 'app/modules/account/password/password.reducer';\nimport settings, { SettingsState } from 'app/modules/account/settings/settings.reducer';\nimport passwordReset, { PasswordResetState } from 'app/modules/account/password-reset/password-reset.reducer';\nimport sessions, { SessionsState } from 'app/modules/account/sessions/sessions.reducer';\n/* jhipster-needle-add-reducer-import - JHipster will add reducer here */\n\nexport interface IRootState {\n readonly authentication: AuthenticationState;\n readonly applicationProfile: ApplicationProfileState;\n readonly administration: AdministrationState;\n readonly userManagement: UserManagementState;\n readonly register: RegisterState;\n readonly activate: ActivateState;\n readonly passwordReset: PasswordResetState;\n readonly password: PasswordState;\n readonly settings: SettingsState;\n readonly sessions: SessionsState;\n /* jhipster-needle-add-reducer-type - JHipster will add reducer type here */\n readonly loadingBar: any;\n}\n\nconst rootReducer = combineReducers({\n authentication,\n applicationProfile,\n administration,\n userManagement,\n register,\n activate,\n passwordReset,\n password,\n settings,\n sessions,\n /* jhipster-needle-add-reducer-combine - JHipster will add reducer here */\n loadingBar\n});\n\nexport default rootReducer;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/25817ae0b134d0ca4d048fc45272fff8.json b/front-end/build/cache-loader/25817ae0b134d0ca4d048fc45272fff8.json new file mode 100644 index 0000000..633d5ed --- /dev/null +++ b/front-end/build/cache-loader/25817ae0b134d0ca4d048fc45272fff8.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/header.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/header.tsx","mtime":1533613273161},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport './header.scss';\nimport React from 'react';\nimport { Navbar, Nav, NavbarToggler, Collapse } from 'reactstrap';\nimport LoadingBar from 'react-redux-loading-bar';\nimport { Home, Brand } from './header-components';\nimport { AdminMenu, EntitiesMenu, AccountMenu } from './menus';\nvar Header = /** @class */ (function (_super) {\n tslib_1.__extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n menuOpen: false\n };\n _this.renderDevRibbon = function () {\n return _this.props.isInProduction === false ? (React.createElement(\"div\", { className: \"ribbon dev\" },\n React.createElement(\"a\", { href: \"\" }, \"Development\"))) : null;\n };\n _this.toggleMenu = function () {\n _this.setState({ menuOpen: !_this.state.menuOpen });\n };\n return _this;\n }\n Header.prototype.render = function () {\n var _a = this.props, isAuthenticated = _a.isAuthenticated, isAdmin = _a.isAdmin, isSwaggerEnabled = _a.isSwaggerEnabled, isInProduction = _a.isInProduction;\n /* jhipster-needle-add-element-to-menu - JHipster will add new menu items here */\n return (React.createElement(\"div\", { id: \"app-header\" },\n this.renderDevRibbon(),\n React.createElement(LoadingBar, { className: \"loading-bar\" }),\n React.createElement(Navbar, { dark: true, expand: \"sm\", fixed: \"top\", className: \"jh-navbar\" },\n React.createElement(NavbarToggler, { \"aria-label\": \"Menu\", onClick: this.toggleMenu }),\n React.createElement(Brand, null),\n React.createElement(Collapse, { isOpen: this.state.menuOpen, navbar: true },\n React.createElement(Nav, { id: \"header-tabs\", className: \"ml-auto\", navbar: true },\n React.createElement(Home, null),\n isAuthenticated && React.createElement(EntitiesMenu, null),\n isAuthenticated && isAdmin && React.createElement(AdminMenu, { showSwagger: isSwaggerEnabled }),\n React.createElement(AccountMenu, { isAuthenticated: isAuthenticated }))))));\n };\n return Header;\n}(React.Component));\nexport default Header;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/header.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/header/header.tsx"],"names":[],"mappings":";AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI/E,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAc/D;IAAoC,kCAA2C;IAA/E;QAAA,qEAwCC;QAvCC,WAAK,GAAiB;YACpB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,qBAAe,GAAG;YAChB,OAAA,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CACpC,6BAAK,SAAS,EAAC,YAAY;gBACzB,2BAAG,IAAI,EAAC,EAAE,kBAAgB,CACtB,CACP,CAAC,CAAC,CAAC,IAAI;QAJR,CAIQ,CAAC;QAEX,gBAAU,GAAG;YACX,KAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC;;IA0BJ,CAAC;IAxBC,uBAAM,GAAN;QACQ,IAAA,eAA2E,EAAzE,oCAAe,EAAE,oBAAO,EAAE,sCAAgB,EAAE,kCAAc,CAAgB;QAElF,iFAAiF;QAEjF,OAAO,CACL,6BAAK,EAAE,EAAC,YAAY;YACjB,IAAI,CAAC,eAAe,EAAE;YACvB,oBAAC,UAAU,IAAC,SAAS,EAAC,aAAa,GAAG;YACtC,oBAAC,MAAM,IAAC,IAAI,QAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,WAAW;gBACxD,oBAAC,aAAa,kBAAY,MAAM,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAI;gBAC7D,oBAAC,KAAK,OAAG;gBACT,oBAAC,QAAQ,IAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM;oBAC3C,oBAAC,GAAG,IAAC,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,SAAS,EAAC,MAAM;wBAC9C,oBAAC,IAAI,OAAG;wBACP,eAAe,IAAI,oBAAC,YAAY,OAAG;wBACnC,eAAe,IAAI,OAAO,IAAI,oBAAC,SAAS,IAAC,WAAW,EAAE,gBAAgB,GAAI;wBAC3E,oBAAC,WAAW,IAAC,eAAe,EAAE,eAAe,GAAI,CAC7C,CACG,CACJ,CACL,CACP,CAAC;IACJ,CAAC;IACH,aAAC;AAAD,CAAC,AAxCD,CAAoC,KAAK,CAAC,SAAS,GAwClD","sourcesContent":["import './header.scss';\n\nimport React from 'react';\n\nimport { Navbar, Nav, NavbarToggler, NavbarBrand, Collapse } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { NavLink as Link } from 'react-router-dom';\nimport LoadingBar from 'react-redux-loading-bar';\n\nimport { Home, Brand } from './header-components';\nimport { AdminMenu, EntitiesMenu, AccountMenu } from './menus';\n\nexport interface IHeaderProps {\n isAuthenticated: boolean;\n isAdmin: boolean;\n ribbonEnv: string;\n isInProduction: boolean;\n isSwaggerEnabled: boolean;\n}\n\nexport interface IHeaderState {\n menuOpen: boolean;\n}\n\nexport default class Header extends React.Component {\n state: IHeaderState = {\n menuOpen: false\n };\n\n renderDevRibbon = () =>\n this.props.isInProduction === false ? (\n \n ) : null;\n\n toggleMenu = () => {\n this.setState({ menuOpen: !this.state.menuOpen });\n };\n\n render() {\n const { isAuthenticated, isAdmin, isSwaggerEnabled, isInProduction } = this.props;\n\n /* jhipster-needle-add-element-to-menu - JHipster will add new menu items here */\n\n return (\n
\n {this.renderDevRibbon()}\n \n \n \n \n \n \n \n \n
\n );\n }\n}\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/27850d0f7bae80c0a6522f8349c5592a.json b/front-end/build/cache-loader/27850d0f7bae80c0a6522f8349c5592a.json new file mode 100644 index 0000000..cee8ff7 --- /dev/null +++ b/front-end/build/cache-loader/27850d0f7bae80c0a6522f8349c5592a.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/config/store.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/config/store.ts","mtime":1533613271013},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import { createStore, applyMiddleware, compose } from 'redux';\nimport promiseMiddleware from 'redux-promise-middleware';\nimport thunkMiddleware from 'redux-thunk';\nimport reducer from 'app/shared/reducers';\nimport DevTools from './devtools';\nimport errorMiddleware from './error-middleware';\nimport notificationMiddleware from './notification-middleware';\nimport loggerMiddleware from './logger-middleware';\nimport { loadingBarMiddleware } from 'react-redux-loading-bar';\nvar defaultMiddlewares = [\n thunkMiddleware,\n errorMiddleware,\n notificationMiddleware,\n promiseMiddleware(),\n loadingBarMiddleware(),\n loggerMiddleware\n];\nvar composedMiddlewares = function (middlewares) {\n return process.env.NODE_ENV === 'development'\n ? compose(applyMiddleware.apply(void 0, defaultMiddlewares.concat(middlewares)), DevTools.instrument())\n : compose(applyMiddleware.apply(void 0, defaultMiddlewares.concat(middlewares)));\n};\nvar initialize = function (initialState, middlewares) {\n if (middlewares === void 0) { middlewares = []; }\n return createStore(reducer, initialState, composedMiddlewares(middlewares));\n};\nexport default initialize;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/config/store.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/config/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,eAAe,MAAM,aAAa,CAAC;AAC1C,OAAO,OAAuB,MAAM,qBAAqB,CAAC;AAC1D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,IAAM,kBAAkB,GAAG;IACzB,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,iBAAiB,EAAE;IACnB,oBAAoB,EAAE;IACtB,gBAAgB;CACjB,CAAC;AACF,IAAM,mBAAmB,GAAG,UAAA,WAAW;IACrC,OAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QACpC,CAAC,CAAC,OAAO,CACL,eAAe,eAAI,kBAAkB,QAAK,WAAW,IACrD,QAAQ,CAAC,UAAU,EAAE,CACtB;QACH,CAAC,CAAC,OAAO,CAAC,eAAe,eAAI,kBAAkB,QAAK,WAAW,GAAE;AALnE,CAKmE,CAAC;AAEtE,IAAM,UAAU,GAAG,UAAC,YAAyB,EAAE,WAAgB;IAAhB,4BAAA,EAAA,gBAAgB;IAAK,OAAA,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAApE,CAAoE,CAAC;AAEzI,eAAe,UAAU,CAAC","sourcesContent":["import { createStore, applyMiddleware, compose } from 'redux';\nimport promiseMiddleware from 'redux-promise-middleware';\nimport thunkMiddleware from 'redux-thunk';\nimport reducer, { IRootState } from 'app/shared/reducers';\nimport DevTools from './devtools';\nimport errorMiddleware from './error-middleware';\nimport notificationMiddleware from './notification-middleware';\nimport loggerMiddleware from './logger-middleware';\nimport { loadingBarMiddleware } from 'react-redux-loading-bar';\n\nconst defaultMiddlewares = [\n thunkMiddleware,\n errorMiddleware,\n notificationMiddleware,\n promiseMiddleware(),\n loadingBarMiddleware(),\n loggerMiddleware\n];\nconst composedMiddlewares = middlewares =>\n process.env.NODE_ENV === 'development'\n ? compose(\n applyMiddleware(...defaultMiddlewares, ...middlewares),\n DevTools.instrument()\n )\n : compose(applyMiddleware(...defaultMiddlewares, ...middlewares));\n\nconst initialize = (initialState?: IRootState, middlewares = []) => createStore(reducer, initialState, composedMiddlewares(middlewares));\n\nexport default initialize;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/2917a430b957d8dbe719854152f09aa9.json b/front-end/build/cache-loader/2917a430b957d8dbe719854152f09aa9.json new file mode 100644 index 0000000..9453dc3 --- /dev/null +++ b/front-end/build/cache-loader/2917a430b957d8dbe719854152f09aa9.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/model/user.model.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/model/user.model.ts","mtime":1533613273393},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["export var defaultValue = {\n id: null,\n login: null,\n firstName: null,\n lastName: null,\n email: null,\n activated: false,\n langKey: null,\n authorities: null,\n createdBy: null,\n createdDate: null,\n lastModifiedBy: null,\n lastModifiedDate: null,\n password: null\n};\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/model/user.model.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/model/user.model.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,IAAM,YAAY,GAAoB;IAC3C,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,IAAI;CACf,CAAC","sourcesContent":["export interface IUser {\n id?: any;\n login?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n activated?: boolean;\n langKey?: string;\n authorities?: any[];\n createdBy?: string;\n createdDate?: Date;\n lastModifiedBy?: string;\n lastModifiedDate?: Date;\n password?: string;\n}\n\nexport const defaultValue: Readonly = {\n id: null,\n login: null,\n firstName: null,\n lastName: null,\n email: null,\n activated: false,\n langKey: null,\n authorities: null,\n createdBy: null,\n createdDate: null,\n lastModifiedBy: null,\n lastModifiedDate: null,\n password: null\n};\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/294075b22279f132b484525668413796.json b/front-end/build/cache-loader/294075b22279f132b484525668413796.json new file mode 100644 index 0000000..24807fc --- /dev/null +++ b/front-end/build/cache-loader/294075b22279f132b484525668413796.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.tsx","mtime":1533613273261},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import './password-strength-bar.scss';\nimport React from 'react';\nexport var PasswordStrengthBar = function (_a) {\n var password = _a.password;\n var colors = ['#F00', '#F90', '#FF0', '#9F0', '#0F0'];\n var measureStrength = function (p) {\n var force = 0;\n var regex = /[$-/:-?{-~!\"^_`\\[\\]]/g;\n var flags = {\n lowerLetters: /[a-z]+/.test(p),\n upperLetters: /[A-Z]+/.test(p),\n numbers: /[0-9]+/.test(p),\n symbols: regex.test(p)\n };\n var passedMatches = Object.values(flags).filter(function (isMatchedFlag) { return !!isMatchedFlag; }).length;\n force += 2 * p.length + (p.length >= 10 ? 1 : 0);\n force += passedMatches * 10;\n // penality (short password)\n force = p.length <= 6 ? Math.min(force, 10) : force;\n // penality (poor variety of characters)\n force = passedMatches === 1 ? Math.min(force, 10) : force;\n force = passedMatches === 2 ? Math.min(force, 20) : force;\n force = passedMatches === 3 ? Math.min(force, 40) : force;\n return force;\n };\n var getColor = function (s) {\n var idx = 0;\n if (s <= 10) {\n idx = 0;\n }\n else if (s <= 20) {\n idx = 1;\n }\n else if (s <= 30) {\n idx = 2;\n }\n else if (s <= 40) {\n idx = 3;\n }\n else {\n idx = 4;\n }\n return { idx: idx + 1, col: colors[idx] };\n };\n var getPoints = function (force) {\n var pts = [];\n for (var i = 0; i < 5; i++) {\n pts.push(React.createElement(\"li\", { key: i, className: \"point\", style: i < force.idx ? { backgroundColor: force.col } : { backgroundColor: '#DDD' } }));\n }\n return pts;\n };\n var strength = getColor(measureStrength(password));\n var points = getPoints(strength);\n return (React.createElement(\"div\", { id: \"strength\" },\n React.createElement(\"small\", null, \"Password strength:\"),\n React.createElement(\"ul\", { id: \"strengthBar\" }, points)));\n};\nexport default PasswordStrengthBar;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/shared/layout/password/password-strength-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,EAAuC;QAArC,sBAAQ;IAC5C,IAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAExD,IAAM,eAAe,GAAG,UAAC,CAAS;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAM,KAAK,GAAG,uBAAuB,CAAC;QACtC,IAAM,KAAK,GAAG;YACZ,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SACvB,CAAC;QAEF,IAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,aAAsB,IAAK,OAAA,CAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAC,MAAM,CAAC;QAEtG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,IAAI,aAAa,GAAG,EAAE,CAAC;QAE5B,4BAA4B;QAC5B,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpD,wCAAwC;QACxC,KAAK,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,KAAK,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,KAAK,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1D,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG,UAAC,CAAS;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,EAAE,EAAE;YACX,GAAG,GAAG,CAAC,CAAC;SACT;aAAM,IAAI,CAAC,IAAI,EAAE,EAAE;YAClB,GAAG,GAAG,CAAC,CAAC;SACT;aAAM,IAAI,CAAC,IAAI,EAAE,EAAE;YAClB,GAAG,GAAG,CAAC,CAAC;SACT;aAAM,IAAI,CAAC,IAAI,EAAE,EAAE;YAClB,GAAG,GAAG,CAAC,CAAC;SACT;aAAM;YACL,GAAG,GAAG,CAAC,CAAC;SACT;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAA,KAAK;QACrB,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,GAAG,CAAC,IAAI,CAAC,4BAAI,GAAG,EAAE,CAAC,EAAE,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,GAAI,CAAC,CAAC;SACjI;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,IAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,OAAO,CACL,6BAAK,EAAE,EAAC,UAAU;QAChB,wDAAiC;QACjC,4BAAI,EAAE,EAAC,aAAa,IAAE,MAAM,CAAM,CAC9B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["import './password-strength-bar.scss';\n\nimport React from 'react';\n\nexport interface IPasswordStrengthBarProps {\n password: string;\n}\n\nexport const PasswordStrengthBar = ({ password }: IPasswordStrengthBarProps) => {\n const colors = ['#F00', '#F90', '#FF0', '#9F0', '#0F0'];\n\n const measureStrength = (p: string): number => {\n let force = 0;\n const regex = /[$-/:-?{-~!\"^_`\\[\\]]/g;\n const flags = {\n lowerLetters: /[a-z]+/.test(p),\n upperLetters: /[A-Z]+/.test(p),\n numbers: /[0-9]+/.test(p),\n symbols: regex.test(p)\n };\n\n const passedMatches = Object.values(flags).filter((isMatchedFlag: boolean) => !!isMatchedFlag).length;\n\n force += 2 * p.length + (p.length >= 10 ? 1 : 0);\n force += passedMatches * 10;\n\n // penality (short password)\n force = p.length <= 6 ? Math.min(force, 10) : force;\n\n // penality (poor variety of characters)\n force = passedMatches === 1 ? Math.min(force, 10) : force;\n force = passedMatches === 2 ? Math.min(force, 20) : force;\n force = passedMatches === 3 ? Math.min(force, 40) : force;\n\n return force;\n };\n\n const getColor = (s: number): any => {\n let idx = 0;\n if (s <= 10) {\n idx = 0;\n } else if (s <= 20) {\n idx = 1;\n } else if (s <= 30) {\n idx = 2;\n } else if (s <= 40) {\n idx = 3;\n } else {\n idx = 4;\n }\n return { idx: idx + 1, col: colors[idx] };\n };\n\n const getPoints = force => {\n const pts = [];\n for (let i = 0; i < 5; i++) {\n pts.push(
  • );\n }\n return pts;\n };\n\n const strength = getColor(measureStrength(password));\n const points = getPoints(strength);\n\n return (\n
    \n Password strength:\n
      {points}
    \n
    \n );\n};\n\nexport default PasswordStrengthBar;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/32129d1a5400d18f297437a832678a71.json b/front-end/build/cache-loader/32129d1a5400d18f297437a832678a71.json new file mode 100644 index 0000000..2fbd498 --- /dev/null +++ b/front-end/build/cache-loader/32129d1a5400d18f297437a832678a71.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/routes.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/routes.tsx","mtime":1533613270765},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport Loadable from 'react-loadable';\nimport Login from 'app/modules/login/login';\nimport Register from 'app/modules/account/register/register';\nimport Activate from 'app/modules/account/activate/activate';\nimport PasswordResetInit from 'app/modules/account/password-reset/init/password-reset-init';\nimport PasswordResetFinish from 'app/modules/account/password-reset/finish/password-reset-finish';\nimport Logout from 'app/modules/login/logout';\nimport Home from 'app/modules/home/home';\nimport Entities from 'app/entities';\nimport PrivateRoute from 'app/shared/auth/private-route';\nimport ErrorBoundaryRoute from 'app/shared/error/error-boundary-route';\nimport { AUTHORITIES } from 'app/config/constants';\n// tslint:disable:space-in-parens\nvar Account = Loadable({\n loader: function () { return import(/* webpackChunkName: \"account\" */ 'app/modules/account'); },\n loading: function () { return React.createElement(\"div\", null, \"loading ...\"); }\n});\nvar Admin = Loadable({\n loader: function () { return import(/* webpackChunkName: \"administration\" */ 'app/modules/administration'); },\n loading: function () { return React.createElement(\"div\", null, \"loading ...\"); }\n});\n// tslint:enable\nvar Routes = function () { return (React.createElement(\"div\", { className: \"view-routes\" },\n React.createElement(ErrorBoundaryRoute, { path: \"/login\", component: Login }),\n React.createElement(Switch, null,\n React.createElement(ErrorBoundaryRoute, { path: \"/logout\", component: Logout }),\n React.createElement(ErrorBoundaryRoute, { path: \"/register\", component: Register }),\n React.createElement(ErrorBoundaryRoute, { path: \"/activate/:key?\", component: Activate }),\n React.createElement(ErrorBoundaryRoute, { path: \"/reset/request\", component: PasswordResetInit }),\n React.createElement(ErrorBoundaryRoute, { path: \"/reset/finish/:key?\", component: PasswordResetFinish }),\n React.createElement(PrivateRoute, { path: \"/admin\", component: Admin, hasAnyAuthorities: [AUTHORITIES.ADMIN] }),\n React.createElement(PrivateRoute, { path: \"/account\", component: Account, hasAnyAuthorities: [AUTHORITIES.ADMIN, AUTHORITIES.USER] }),\n React.createElement(PrivateRoute, { path: \"/entity\", component: Entities, hasAnyAuthorities: [AUTHORITIES.USER] }),\n React.createElement(ErrorBoundaryRoute, { path: \"/\", component: Home })))); };\nexport default Routes;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/routes.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/routes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,MAAM,yBAAyB,CAAC;AAC5C,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,iBAAiB,MAAM,6DAA6D,CAAC;AAC5F,OAAO,mBAAmB,MAAM,iEAAiE,CAAC;AAClG,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,iCAAiC;AACjC,IAAM,OAAO,GAAG,QAAQ,CAAC;IACvB,MAAM,EAAE,cAAM,OAAA,MAAM,CAAC,iCAAiC,CAAC,qBAAqB,CAAC,EAA/D,CAA+D;IAC7E,OAAO,EAAE,cAAM,OAAA,+CAAsB,EAAtB,CAAsB;CACtC,CAAC,CAAC;AAEH,IAAM,KAAK,GAAG,QAAQ,CAAC;IACrB,MAAM,EAAE,cAAM,OAAA,MAAM,CAAC,wCAAwC,CAAC,4BAA4B,CAAC,EAA7E,CAA6E;IAC3F,OAAO,EAAE,cAAM,OAAA,+CAAsB,EAAtB,CAAsB;CACtC,CAAC,CAAC;AACH,gBAAgB;AAEhB,IAAM,MAAM,GAAG,cAAM,OAAA,CACnB,6BAAK,SAAS,EAAC,aAAa;IAC1B,oBAAC,kBAAkB,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,KAAK,GAAI;IACtD,oBAAC,MAAM;QACL,oBAAC,kBAAkB,IAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,MAAM,GAAI;QACxD,oBAAC,kBAAkB,IAAC,IAAI,EAAC,WAAW,EAAC,SAAS,EAAE,QAAQ,GAAI;QAC5D,oBAAC,kBAAkB,IAAC,IAAI,EAAC,iBAAiB,EAAC,SAAS,EAAE,QAAQ,GAAI;QAClE,oBAAC,kBAAkB,IAAC,IAAI,EAAC,gBAAgB,EAAC,SAAS,EAAE,iBAAiB,GAAI;QAC1E,oBAAC,kBAAkB,IAAC,IAAI,EAAC,qBAAqB,EAAC,SAAS,EAAE,mBAAmB,GAAI;QACjF,oBAAC,YAAY,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAI;QACxF,oBAAC,YAAY,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,GAAI;QAC9G,oBAAC,YAAY,IAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAI;QAC3F,oBAAC,kBAAkB,IAAC,IAAI,EAAC,GAAG,EAAC,SAAS,EAAE,IAAI,GAAI,CACzC,CACL,CACP,EAfoB,CAepB,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport Loadable from 'react-loadable';\n\nimport Login from 'app/modules/login/login';\nimport Register from 'app/modules/account/register/register';\nimport Activate from 'app/modules/account/activate/activate';\nimport PasswordResetInit from 'app/modules/account/password-reset/init/password-reset-init';\nimport PasswordResetFinish from 'app/modules/account/password-reset/finish/password-reset-finish';\nimport Logout from 'app/modules/login/logout';\nimport Home from 'app/modules/home/home';\nimport Entities from 'app/entities';\nimport PrivateRoute from 'app/shared/auth/private-route';\nimport ErrorBoundaryRoute from 'app/shared/error/error-boundary-route';\nimport { AUTHORITIES } from 'app/config/constants';\n\n// tslint:disable:space-in-parens\nconst Account = Loadable({\n loader: () => import(/* webpackChunkName: \"account\" */ 'app/modules/account'),\n loading: () =>
    loading ...
    \n});\n\nconst Admin = Loadable({\n loader: () => import(/* webpackChunkName: \"administration\" */ 'app/modules/administration'),\n loading: () =>
    loading ...
    \n});\n// tslint:enable\n\nconst Routes = () => (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n);\n\nexport default Routes;\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/33615345a67cf5b5574903cb778bc71e.json b/front-end/build/cache-loader/33615345a67cf5b5574903cb778bc71e.json new file mode 100644 index 0000000..1c2e7b0 --- /dev/null +++ b/front-end/build/cache-loader/33615345a67cf5b5574903cb778bc71e.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/sessions/sessions.reducer.ts","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/sessions/sessions.reducer.ts","mtime":1533613272129},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import * as tslib_1 from \"tslib\";\nimport axios from 'axios';\nimport { REQUEST, SUCCESS, FAILURE } from 'app/shared/reducers/action-type.util';\nexport var ACTION_TYPES = {\n FIND_ALL: 'sessions/FIND_ALL',\n INVALIDATE: 'sessions/INVALIDATE'\n};\nvar initialState = {\n loading: false,\n sessions: [],\n updateSuccess: false,\n updateFailure: false\n};\n// Reducer\nexport default (function (state, action) {\n if (state === void 0) { state = initialState; }\n switch (action.type) {\n case REQUEST(ACTION_TYPES.FIND_ALL):\n case REQUEST(ACTION_TYPES.INVALIDATE):\n return tslib_1.__assign({}, state, { loading: true });\n case FAILURE(ACTION_TYPES.FIND_ALL):\n return tslib_1.__assign({}, state, { loading: false });\n case FAILURE(ACTION_TYPES.INVALIDATE):\n return tslib_1.__assign({}, state, { loading: false, updateFailure: true });\n case SUCCESS(ACTION_TYPES.FIND_ALL):\n return tslib_1.__assign({}, state, { loading: false, sessions: action.payload.data });\n case SUCCESS(ACTION_TYPES.INVALIDATE):\n return tslib_1.__assign({}, state, { loading: false, updateSuccess: true });\n default:\n return state;\n }\n});\n// Actions\nvar apiURL = '/api/account/sessions/';\nexport var findAll = function () { return ({\n type: ACTION_TYPES.FIND_ALL,\n payload: axios.get(apiURL)\n}); };\nexport var invalidateSession = function (series) { return ({\n type: ACTION_TYPES.INVALIDATE,\n payload: axios.delete(\"\" + apiURL + series)\n}); };\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/sessions/sessions.reducer.ts","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/account/sessions/sessions.reducer.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,CAAC,IAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF,IAAM,YAAY,GAAG;IACnB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;CACrB,CAAC;AAIF,UAAU;AACV,gBAAe,UAAC,KAAmC,EAAE,MAAM;IAA3C,sBAAA,EAAA,oBAAmC;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;YACnC,4BACK,KAAK,IACR,OAAO,EAAE,IAAI,IACb;QACJ,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACjC,4BACK,KAAK,IACR,OAAO,EAAE,KAAK,IACd;QACJ,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;YACnC,4BACK,KAAK,IACR,OAAO,EAAE,KAAK,EACd,aAAa,EAAE,IAAI,IACnB;QACJ,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACjC,4BACK,KAAK,IACR,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAC7B;QACJ,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;YACnC,4BACK,KAAK,IACR,OAAO,EAAE,KAAK,EACd,aAAa,EAAE,IAAI,IACnB;QAEJ;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,EAAC;AAEF,UAAU;AACV,IAAM,MAAM,GAAG,wBAAwB,CAAC;AACxC,MAAM,CAAC,IAAM,OAAO,GAAG,cAAM,OAAA,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;CAC3B,CAAC,EAH2B,CAG3B,CAAC;AAEH,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAA,MAAM,IAAI,OAAA,CAAC;IAC1C,IAAI,EAAE,YAAY,CAAC,UAAU;IAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,MAAQ,CAAC;CAC5C,CAAC,EAHyC,CAGzC,CAAC","sourcesContent":["import axios from 'axios';\n\nimport { REQUEST, SUCCESS, FAILURE } from 'app/shared/reducers/action-type.util';\n\nexport const ACTION_TYPES = {\n FIND_ALL: 'sessions/FIND_ALL',\n INVALIDATE: 'sessions/INVALIDATE'\n};\n\nconst initialState = {\n loading: false,\n sessions: [],\n updateSuccess: false,\n updateFailure: false\n};\n\nexport type SessionsState = Readonly;\n\n// Reducer\nexport default (state: SessionsState = initialState, action): SessionsState => {\n switch (action.type) {\n case REQUEST(ACTION_TYPES.FIND_ALL):\n case REQUEST(ACTION_TYPES.INVALIDATE):\n return {\n ...state,\n loading: true\n };\n case FAILURE(ACTION_TYPES.FIND_ALL):\n return {\n ...state,\n loading: false\n };\n case FAILURE(ACTION_TYPES.INVALIDATE):\n return {\n ...state,\n loading: false,\n updateFailure: true\n };\n case SUCCESS(ACTION_TYPES.FIND_ALL):\n return {\n ...state,\n loading: false,\n sessions: action.payload.data\n };\n case SUCCESS(ACTION_TYPES.INVALIDATE):\n return {\n ...state,\n loading: false,\n updateSuccess: true\n };\n\n default:\n return state;\n }\n};\n\n// Actions\nconst apiURL = '/api/account/sessions/';\nexport const findAll = () => ({\n type: ACTION_TYPES.FIND_ALL,\n payload: axios.get(apiURL)\n});\n\nexport const invalidateSession = series => ({\n type: ACTION_TYPES.INVALIDATE,\n payload: axios.delete(`${apiURL}${series}`)\n});\n"]}]} \ No newline at end of file diff --git a/front-end/build/cache-loader/35bab663521891ccaade2344b6744ae6.json b/front-end/build/cache-loader/35bab663521891ccaade2344b6744ae6.json new file mode 100644 index 0000000..ce129ac --- /dev/null +++ b/front-end/build/cache-loader/35bab663521891ccaade2344b6744ae6.json @@ -0,0 +1 @@ +{"remainingRequest":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js??ref--4-2!/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js??ref--4-3!/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/docs/docs.tsx","dependencies":[{"path":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/docs/docs.tsx","mtime":1533613272309},{"path":"/var/www/html/payroll_manager/front-end/node_modules/react-hot-loader/webpack.js","mtime":1505850161000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/cache-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/thread-loader/dist/cjs.js","mtime":0},{"path":"/var/www/html/payroll_manager/front-end/node_modules/ts-loader/index.js","mtime":1530127508000},{"path":"/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js","mtime":1519899048000}],"contextDependencies":[],"result":["import React from 'react';\nvar DocsPage = function () { return (React.createElement(\"div\", null,\n React.createElement(\"iframe\", { src: \"../swagger-ui/index.html\", width: \"100%\", height: \"800\", title: \"Swagger UI\", seamless: true, style: { border: 'none' } }))); };\nexport default DocsPage;\n",{"version":3,"file":"/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/docs/docs.tsx","sourceRoot":"","sources":["/var/www/html/payroll_manager/front-end/node_modules/tslint-loader/index.js!/var/www/html/payroll_manager/front-end/src/main/webapp/app/modules/administration/docs/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAM,QAAQ,GAAG,cAAM,OAAA,CACrB;IACE,gCAAQ,GAAG,EAAC,0BAA0B,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,YAAY,EAAC,QAAQ,QAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAI,CACtH,CACP,EAJsB,CAItB,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import React from 'react';\n\nconst DocsPage = () => (\n
    \n '); +}; }; +var toBase64 = function (file, cb) { + var fileReader = new FileReader(); + fileReader.readAsDataURL(file); + fileReader.onload = function (e) { + var base64Data = e.target['result'].substr(e.target['result'].indexOf('base64,') + 'base64,'.length); + cb(base64Data); + }; +}; +var paddingSize = function (value) { + if (value.endsWith('==')) { + return 2; + } + if (value.endsWith('=')) { + return 1; + } + return 0; +}; +var formatAsBytes = function (sizeValue) { return sizeValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ') + ' bytes'; }; +exports.size = function (value) { return value.length / 4 * 3 - paddingSize(value); }; +exports.byteSize = function (base64String) { return formatAsBytes(exports.size(base64String)); }; +exports.setFileData = function (event, callback, isImage) { + if (event && event.target.files && event.target.files[0]) { + var file_1 = event.target.files[0]; + if (isImage && !/^image\//.test(file_1.type)) { + return; + } + toBase64(file_1, function (base64Data) { + callback(file_1.type, base64Data); + }); + } +}; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/dom-utils.js": +/*!***************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/dom-utils.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Fetch the specified element by id or return default + * @param id id of element + */ +exports.containerSize = function (id) { + if (id === void 0) { id = 'app-view-container'; } + return document.getElementById(id) || { offsetHeight: 960, offsetWidth: 960 }; +}; +/** + * Fetch the current window size + */ +exports.windowSize = function () { return ({ width: window.innerWidth, height: window.innerHeight }); }; +/** + * Get the current browser locale + */ +exports.browserLocale = function () { + var lang; + var nav = navigator; + // tslint:disable-next-line + if (nav.languages && nav.languages.length) { + // latest versions of Chrome and Firefox set this correctly + lang = nav.languages[0]; + } + else if (nav.userLanguage) { + // IE only + lang = nav.userLanguage; + } + else { + // latest versions of Chrome, Firefox, and Safari set this correctly + lang = nav.language; + } + return lang; +}; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/index.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(__webpack_require__(/*! ./dom-utils */ "./node_modules/react-jhipster/lib/src/util/dom-utils.js")); +__export(__webpack_require__(/*! ./log-util */ "./node_modules/react-jhipster/lib/src/util/log-util.js")); +__export(__webpack_require__(/*! ./promise-utils */ "./node_modules/react-jhipster/lib/src/util/promise-utils.js")); +__export(__webpack_require__(/*! ./storage-util */ "./node_modules/react-jhipster/lib/src/util/storage-util.js")); +__export(__webpack_require__(/*! ./url-utils */ "./node_modules/react-jhipster/lib/src/util/url-utils.js")); +__export(__webpack_require__(/*! ./data-utils */ "./node_modules/react-jhipster/lib/src/util/data-utils.js")); +__export(__webpack_require__(/*! ./pagination-utils */ "./node_modules/react-jhipster/lib/src/util/pagination-utils.js")); + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/log-util.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/log-util.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var initLevels = function () { + if (Object({"NODE_ENV":'development',"VERSION":'0.0.1-SNAPSHOT',"DEBUG_INFO_ENABLED":true,"SERVER_API_URL":''}).LOG_LEVEL) + return Object({"NODE_ENV":'development',"VERSION":'0.0.1-SNAPSHOT',"DEBUG_INFO_ENABLED":true,"SERVER_API_URL":''}).LOG_LEVEL; + return true ? 'info' : undefined; +}; +var level = initLevels(); +/** + * Log a debug message when debug level or above is enabled + * @param msg message + * @param data data + */ +exports.logDebug = function (msg) { + var data = []; + for (var _i = 1; _i < arguments.length; _i++) { + data[_i - 1] = arguments[_i]; + } + // tslint:disable-next-line + if (level === 'debug') + console.debug(msg, data); +}; +/** + * Log an info message when info level or above is enabled + * @param msg message + * @param data data + */ +exports.logInfo = function (msg) { + var data = []; + for (var _i = 1; _i < arguments.length; _i++) { + data[_i - 1] = arguments[_i]; + } + // tslint:disable-next-line + if (['debug', 'info'].includes(level)) + console.info(msg, data); +}; +/** + * Log a warn message when warn level or above is enabled + * @param msg message + * @param data data + */ +exports.logWarn = function (msg) { + var data = []; + for (var _i = 1; _i < arguments.length; _i++) { + data[_i - 1] = arguments[_i]; + } + if (['debug', 'info', 'warn'].includes(level)) + console.warn(msg, data); +}; +/** + * Log an error message when error level is enabled + * @param msg message + * @param data data + */ +exports.logError = function (msg) { + var data = []; + for (var _i = 1; _i < arguments.length; _i++) { + data[_i - 1] = arguments[_i]; + } + if (['debug', 'info', 'warn', 'error'].includes(level)) + console.error(msg, data); +}; +exports.log = exports.logInfo; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/pagination-utils.js": +/*!**********************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/pagination-utils.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var isEqual = __webpack_require__(/*! lodash.isequal */ "./node_modules/lodash.isequal/index.js"); +/** + * Retrieve new data when infinite scrolling + * @param currentData + * @param incomingData + * @param links + */ +exports.loadMoreDataWhenScrolled = function (currentData, incomingData, links, itemsPerPage) { + var data = null; + if (links.first === links.last) { + data = incomingData; + } + else { + if (incomingData.length === currentData.length) { + if (links.prev === undefined) { + data = incomingData; + } + else if (!isEqual(currentData, incomingData)) { + data = currentData.concat(incomingData); + } + } + else { + if (incomingData.length === itemsPerPage) { + data = incomingData; + } + else { + data = currentData.concat(incomingData); + } + } + } + return data; +}; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/promise-utils.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/promise-utils.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Check if the passed object is a promise + * @param value the object to check + */ +exports.isPromise = function (value) { + if (value !== null && typeof value === 'object') { + return value && typeof value.then === 'function'; + } + return false; +}; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/storage-util.js": +/*!******************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/storage-util.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Get either localStorage or sessionStorage + * @param type storage type + */ +exports.getStorage = function (type) { + if (type === 0 /* SESSION */) { + return window.sessionStorage; + } + return window.localStorage; +}; +/** + * Set an item into storage + * @param type storage type + * @param key key to set + * @param value value to set + */ +var setItem = function (type) { return function (key, value) { + exports.getStorage(type).setItem(key, JSON.stringify(value)); +}; }; +/** + * Get an item from storage + * @param type storage type + * @param key key to get + * @param defaultVal value to return if key doesnt exist + */ +var getItem = function (type) { return function (key, defaultVal) { + var val = exports.getStorage(type).getItem(key); + if (!val || val === 'undefined') + return defaultVal; + try { + return JSON.parse(val); + } + catch (e) { + return val; + } +}; }; +/** + * Remove item from storage + * @param type storage type + * @param key key to remove + */ +var removeItem = function (type) { return function (key) { + exports.getStorage(type).removeItem(key); +}; }; +exports.Storage = { + session: { + get: getItem(0 /* SESSION */), + set: setItem(0 /* SESSION */), + remove: removeItem(0 /* SESSION */) + }, + local: { + get: getItem(1 /* LOCAL */), + set: setItem(1 /* LOCAL */), + remove: removeItem(1 /* LOCAL */) + } +}; + + +/***/ }), + +/***/ "./node_modules/react-jhipster/lib/src/util/url-utils.js": +/*!***************************************************************!*\ + !*** ./node_modules/react-jhipster/lib/src/util/url-utils.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Get base path from current window location + */ +exports.getBasePath = function () { return window.location.href.split('#')[0]; }; +/** + * Parse the header link element and return all links inside. + * @param header header of link + */ +exports.parseHeaderForLinks = function (header) { + if (header.length === 0) { + throw new Error('input must not be of zero length'); + } + // Split parts by comma + var parts = header.split(','); + var links = {}; + // Parse each part into a named link + parts.forEach(function (p) { + var section = p.split(';'); + if (section.length !== 2) { + throw new Error('section could not be split on ";"'); + } + var url = section[0].replace(/<(.*)>/, '$1').trim(); + var queryString = {}; + url.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'), function ($0, $1, $2, $3) { return (queryString[$1] = $3); }); + var page = queryString.page; + if (typeof page === 'string') { + page = parseInt(page, 10); + } + var name = section[1].replace(/rel="(.*)"/, '$1').trim(); + links[name] = page; + }); + return links; +}; + + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/ItemRange.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-json-tree/lib/ItemRange.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ "./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _possibleConstructorReturn2 = __webpack_require__(/*! babel-runtime/helpers/possibleConstructorReturn */ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(/*! babel-runtime/helpers/inherits */ "./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _JSONArrow = __webpack_require__(/*! ./JSONArrow */ "./node_modules/react-json-tree/lib/JSONArrow.js"); + +var _JSONArrow2 = _interopRequireDefault(_JSONArrow); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var ItemRange = function (_React$Component) { + (0, _inherits3['default'])(ItemRange, _React$Component); + + function ItemRange(props) { + (0, _classCallCheck3['default'])(this, ItemRange); + + var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props)); + + _this.state = { expanded: false }; + + _this.handleClick = _this.handleClick.bind(_this); + return _this; + } + + ItemRange.prototype.render = function render() { + var _props = this.props, + styling = _props.styling, + from = _props.from, + to = _props.to, + renderChildNodes = _props.renderChildNodes, + nodeType = _props.nodeType; + + + return this.state.expanded ? _react2['default'].createElement( + 'div', + styling('itemRange', this.state.expanded), + renderChildNodes(this.props, from, to) + ) : _react2['default'].createElement( + 'div', + (0, _extends3['default'])({}, styling('itemRange', this.state.expanded), { + onClick: this.handleClick + }), + _react2['default'].createElement(_JSONArrow2['default'], { + nodeType: nodeType, + styling: styling, + expanded: false, + onClick: this.handleClick, + arrowStyle: 'double' + }), + from + ' ... ' + to + ); + }; + + ItemRange.prototype.handleClick = function handleClick() { + this.setState({ expanded: !this.state.expanded }); + }; + + return ItemRange; +}(_react2['default'].Component); + +ItemRange.propTypes = { + styling: _propTypes2['default'].func.isRequired, + from: _propTypes2['default'].number.isRequired, + to: _propTypes2['default'].number.isRequired, + renderChildNodes: _propTypes2['default'].func.isRequired, + nodeType: _propTypes2['default'].string.isRequired +}; +exports['default'] = ItemRange; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONArrayNode.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONArrayNode.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__(/*! babel-runtime/helpers/objectWithoutProperties */ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _JSONNestedNode = __webpack_require__(/*! ./JSONNestedNode */ "./node_modules/react-json-tree/lib/JSONNestedNode.js"); + +var _JSONNestedNode2 = _interopRequireDefault(_JSONNestedNode); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// Returns the "n Items" string for this node, +// generating and caching it if it hasn't been created yet. +function createItemString(data) { + return data.length + ' ' + (data.length !== 1 ? 'items' : 'item'); +} + +// Configures to render an Array +var JSONArrayNode = function JSONArrayNode(_ref) { + var data = _ref.data, + props = (0, _objectWithoutProperties3['default'])(_ref, ['data']); + return _react2['default'].createElement(_JSONNestedNode2['default'], (0, _extends3['default'])({}, props, { + data: data, + nodeType: 'Array', + nodeTypeIndicator: '[]', + createItemString: createItemString, + expandable: data.length > 0 + })); +}; + +JSONArrayNode.propTypes = { + data: _propTypes2['default'].array +}; + +exports['default'] = JSONArrayNode; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONArrow.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONArrow.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var JSONArrow = function JSONArrow(_ref) { + var styling = _ref.styling, + arrowStyle = _ref.arrowStyle, + expanded = _ref.expanded, + nodeType = _ref.nodeType, + onClick = _ref.onClick; + return _react2['default'].createElement( + 'div', + (0, _extends3['default'])({}, styling('arrowContainer', arrowStyle), { onClick: onClick }), + _react2['default'].createElement( + 'div', + styling(['arrow', 'arrowSign'], nodeType, expanded, arrowStyle), + '\u25B6', + arrowStyle === 'double' && _react2['default'].createElement( + 'div', + styling(['arrowSign', 'arrowSignInner']), + '\u25B6' + ) + ) + ); +}; + +JSONArrow.propTypes = { + styling: _propTypes2['default'].func.isRequired, + arrowStyle: _propTypes2['default'].oneOf(['single', 'double']), + expanded: _propTypes2['default'].bool.isRequired, + nodeType: _propTypes2['default'].string.isRequired, + onClick: _propTypes2['default'].func.isRequired +}; + +JSONArrow.defaultProps = { + arrowStyle: 'single' +}; + +exports['default'] = JSONArrow; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONIterableNode.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONIterableNode.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__(/*! babel-runtime/helpers/objectWithoutProperties */ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getIterator2 = __webpack_require__(/*! babel-runtime/core-js/get-iterator */ "./node_modules/babel-runtime/core-js/get-iterator.js"); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +var _isSafeInteger = __webpack_require__(/*! babel-runtime/core-js/number/is-safe-integer */ "./node_modules/babel-runtime/core-js/number/is-safe-integer.js"); + +var _isSafeInteger2 = _interopRequireDefault(_isSafeInteger); + +exports['default'] = JSONIterableNode; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _JSONNestedNode = __webpack_require__(/*! ./JSONNestedNode */ "./node_modules/react-json-tree/lib/JSONNestedNode.js"); + +var _JSONNestedNode2 = _interopRequireDefault(_JSONNestedNode); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// Returns the "n Items" string for this node, +// generating and caching it if it hasn't been created yet. +function createItemString(data, limit) { + var count = 0; + var hasMore = false; + if ((0, _isSafeInteger2['default'])(data.size)) { + count = data.size; + } else { + // eslint-disable-next-line no-unused-vars + for (var _iterator = data, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3['default'])(_iterator);;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var entry = _ref; + + if (limit && count + 1 > limit) { + hasMore = true; + break; + } + count += 1; + } + } + return '' + (hasMore ? '>' : '') + count + ' ' + (count !== 1 ? 'entries' : 'entry'); +} + +// Configures to render an iterable +function JSONIterableNode(_ref2) { + var props = (0, _objectWithoutProperties3['default'])(_ref2, []); + + return _react2['default'].createElement(_JSONNestedNode2['default'], (0, _extends3['default'])({}, props, { + nodeType: 'Iterable', + nodeTypeIndicator: '()', + createItemString: createItemString + })); +} + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONNestedNode.js": +/*!************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONNestedNode.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _keys = __webpack_require__(/*! babel-runtime/core-js/object/keys */ "./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ "./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _possibleConstructorReturn2 = __webpack_require__(/*! babel-runtime/helpers/possibleConstructorReturn */ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(/*! babel-runtime/helpers/inherits */ "./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _JSONArrow = __webpack_require__(/*! ./JSONArrow */ "./node_modules/react-json-tree/lib/JSONArrow.js"); + +var _JSONArrow2 = _interopRequireDefault(_JSONArrow); + +var _getCollectionEntries = __webpack_require__(/*! ./getCollectionEntries */ "./node_modules/react-json-tree/lib/getCollectionEntries.js"); + +var _getCollectionEntries2 = _interopRequireDefault(_getCollectionEntries); + +var _JSONNode = __webpack_require__(/*! ./JSONNode */ "./node_modules/react-json-tree/lib/JSONNode.js"); + +var _JSONNode2 = _interopRequireDefault(_JSONNode); + +var _ItemRange = __webpack_require__(/*! ./ItemRange */ "./node_modules/react-json-tree/lib/ItemRange.js"); + +var _ItemRange2 = _interopRequireDefault(_ItemRange); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Renders nested values (eg. objects, arrays, lists, etc.) + */ + +function renderChildNodes(props, from, to) { + var nodeType = props.nodeType, + data = props.data, + collectionLimit = props.collectionLimit, + circularCache = props.circularCache, + keyPath = props.keyPath, + postprocessValue = props.postprocessValue, + sortObjectKeys = props.sortObjectKeys; + + var childNodes = []; + + (0, _getCollectionEntries2['default'])(nodeType, data, sortObjectKeys, collectionLimit, from, to).forEach(function (entry) { + if (entry.to) { + childNodes.push(_react2['default'].createElement(_ItemRange2['default'], (0, _extends3['default'])({}, props, { + key: 'ItemRange--' + entry.from + '-' + entry.to, + from: entry.from, + to: entry.to, + renderChildNodes: renderChildNodes + }))); + } else { + var key = entry.key, + value = entry.value; + + var isCircular = circularCache.indexOf(value) !== -1; + + var node = _react2['default'].createElement(_JSONNode2['default'], (0, _extends3['default'])({}, props, { postprocessValue: postprocessValue, collectionLimit: collectionLimit }, { + key: 'Node--' + key, + keyPath: [key].concat(keyPath), + value: postprocessValue(value), + circularCache: [].concat(circularCache, [value]), + isCircular: isCircular, + hideRoot: false + })); + + if (node !== false) { + childNodes.push(node); + } + } + }); + + return childNodes; +} + +function getStateFromProps(props) { + // calculate individual node expansion if necessary + var expanded = props.shouldExpandNode && !props.isCircular ? props.shouldExpandNode(props.keyPath, props.data, props.level) : false; + return { + expanded: expanded + }; +} + +var JSONNestedNode = function (_React$Component) { + (0, _inherits3['default'])(JSONNestedNode, _React$Component); + + function JSONNestedNode(props) { + (0, _classCallCheck3['default'])(this, JSONNestedNode); + + var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props)); + + _this.handleClick = function () { + if (_this.props.expandable) { + _this.setState({ expanded: !_this.state.expanded }); + } + }; + + _this.state = getStateFromProps(props); + return _this; + } + + JSONNestedNode.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var nextState = getStateFromProps(nextProps); + if (getStateFromProps(this.props).expanded !== nextState.expanded) { + this.setState(nextState); + } + }; + + JSONNestedNode.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) { + var _this2 = this; + + return !!(0, _keys2['default'])(nextProps).find(function (key) { + return key !== 'circularCache' && (key === 'keyPath' ? nextProps[key].join('/') !== _this2.props[key].join('/') : nextProps[key] !== _this2.props[key]); + }) || nextState.expanded !== this.state.expanded; + }; + + JSONNestedNode.prototype.render = function render() { + var _props = this.props, + getItemString = _props.getItemString, + nodeTypeIndicator = _props.nodeTypeIndicator, + nodeType = _props.nodeType, + data = _props.data, + hideRoot = _props.hideRoot, + createItemString = _props.createItemString, + styling = _props.styling, + collectionLimit = _props.collectionLimit, + keyPath = _props.keyPath, + labelRenderer = _props.labelRenderer, + expandable = _props.expandable; + var expanded = this.state.expanded; + + var renderedChildren = expanded || hideRoot && this.props.level === 0 ? renderChildNodes((0, _extends3['default'])({}, this.props, { level: this.props.level + 1 })) : null; + + var itemType = _react2['default'].createElement( + 'span', + styling('nestedNodeItemType', expanded), + nodeTypeIndicator + ); + var renderedItemString = getItemString(nodeType, data, itemType, createItemString(data, collectionLimit)); + var stylingArgs = [keyPath, nodeType, expanded, expandable]; + + return hideRoot ? _react2['default'].createElement( + 'li', + styling.apply(undefined, ['rootNode'].concat(stylingArgs)), + _react2['default'].createElement( + 'ul', + styling.apply(undefined, ['rootNodeChildren'].concat(stylingArgs)), + renderedChildren + ) + ) : _react2['default'].createElement( + 'li', + styling.apply(undefined, ['nestedNode'].concat(stylingArgs)), + expandable && _react2['default'].createElement(_JSONArrow2['default'], { + styling: styling, + nodeType: nodeType, + expanded: expanded, + onClick: this.handleClick + }), + _react2['default'].createElement( + 'label', + (0, _extends3['default'])({}, styling.apply(undefined, [['label', 'nestedNodeLabel']].concat(stylingArgs)), { + onClick: this.handleClick + }), + labelRenderer.apply(undefined, stylingArgs) + ), + _react2['default'].createElement( + 'span', + (0, _extends3['default'])({}, styling.apply(undefined, ['nestedNodeItemString'].concat(stylingArgs)), { + onClick: this.handleClick + }), + renderedItemString + ), + _react2['default'].createElement( + 'ul', + styling.apply(undefined, ['nestedNodeChildren'].concat(stylingArgs)), + renderedChildren + ) + ); + }; + + return JSONNestedNode; +}(_react2['default'].Component); + +JSONNestedNode.propTypes = { + getItemString: _propTypes2['default'].func.isRequired, + nodeTypeIndicator: _propTypes2['default'].any, + nodeType: _propTypes2['default'].string.isRequired, + data: _propTypes2['default'].any, + hideRoot: _propTypes2['default'].bool.isRequired, + createItemString: _propTypes2['default'].func.isRequired, + styling: _propTypes2['default'].func.isRequired, + collectionLimit: _propTypes2['default'].number, + keyPath: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])).isRequired, + labelRenderer: _propTypes2['default'].func.isRequired, + shouldExpandNode: _propTypes2['default'].func, + level: _propTypes2['default'].number.isRequired, + sortObjectKeys: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].bool]), + isCircular: _propTypes2['default'].bool, + expandable: _propTypes2['default'].bool +}; +JSONNestedNode.defaultProps = { + data: [], + circularCache: [], + level: 0, + expandable: true +}; +exports['default'] = JSONNestedNode; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONNode.js": +/*!******************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONNode.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__(/*! babel-runtime/helpers/objectWithoutProperties */ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _objType = __webpack_require__(/*! ./objType */ "./node_modules/react-json-tree/lib/objType.js"); + +var _objType2 = _interopRequireDefault(_objType); + +var _JSONObjectNode = __webpack_require__(/*! ./JSONObjectNode */ "./node_modules/react-json-tree/lib/JSONObjectNode.js"); + +var _JSONObjectNode2 = _interopRequireDefault(_JSONObjectNode); + +var _JSONArrayNode = __webpack_require__(/*! ./JSONArrayNode */ "./node_modules/react-json-tree/lib/JSONArrayNode.js"); + +var _JSONArrayNode2 = _interopRequireDefault(_JSONArrayNode); + +var _JSONIterableNode = __webpack_require__(/*! ./JSONIterableNode */ "./node_modules/react-json-tree/lib/JSONIterableNode.js"); + +var _JSONIterableNode2 = _interopRequireDefault(_JSONIterableNode); + +var _JSONValueNode = __webpack_require__(/*! ./JSONValueNode */ "./node_modules/react-json-tree/lib/JSONValueNode.js"); + +var _JSONValueNode2 = _interopRequireDefault(_JSONValueNode); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var JSONNode = function JSONNode(_ref) { + var getItemString = _ref.getItemString, + keyPath = _ref.keyPath, + labelRenderer = _ref.labelRenderer, + styling = _ref.styling, + value = _ref.value, + valueRenderer = _ref.valueRenderer, + isCustomNode = _ref.isCustomNode, + rest = (0, _objectWithoutProperties3['default'])(_ref, ['getItemString', 'keyPath', 'labelRenderer', 'styling', 'value', 'valueRenderer', 'isCustomNode']); + + var nodeType = isCustomNode(value) ? 'Custom' : (0, _objType2['default'])(value); + + var simpleNodeProps = { + getItemString: getItemString, + key: keyPath[0], + keyPath: keyPath, + labelRenderer: labelRenderer, + nodeType: nodeType, + styling: styling, + value: value, + valueRenderer: valueRenderer + }; + + var nestedNodeProps = (0, _extends3['default'])({}, rest, simpleNodeProps, { + data: value, + isCustomNode: isCustomNode + }); + + switch (nodeType) { + case 'Object': + case 'Error': + case 'WeakMap': + case 'WeakSet': + return _react2['default'].createElement(_JSONObjectNode2['default'], nestedNodeProps); + case 'Array': + return _react2['default'].createElement(_JSONArrayNode2['default'], nestedNodeProps); + case 'Iterable': + case 'Map': + case 'Set': + return _react2['default'].createElement(_JSONIterableNode2['default'], nestedNodeProps); + case 'String': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { valueGetter: function valueGetter(raw) { + return '"' + raw + '"'; + } })); + case 'Number': + return _react2['default'].createElement(_JSONValueNode2['default'], simpleNodeProps); + case 'Boolean': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { + valueGetter: function valueGetter(raw) { + return raw ? 'true' : 'false'; + } + })); + case 'Date': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { + valueGetter: function valueGetter(raw) { + return raw.toISOString(); + } + })); + case 'Null': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { valueGetter: function valueGetter() { + return 'null'; + } })); + case 'Undefined': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { valueGetter: function valueGetter() { + return 'undefined'; + } })); + case 'Function': + case 'Symbol': + return _react2['default'].createElement(_JSONValueNode2['default'], (0, _extends3['default'])({}, simpleNodeProps, { + valueGetter: function valueGetter(raw) { + return raw.toString(); + } + })); + case 'Custom': + return _react2['default'].createElement(_JSONValueNode2['default'], simpleNodeProps); + default: + return null; + } +}; + +JSONNode.propTypes = { + getItemString: _propTypes2['default'].func.isRequired, + keyPath: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])).isRequired, + labelRenderer: _propTypes2['default'].func.isRequired, + styling: _propTypes2['default'].func.isRequired, + value: _propTypes2['default'].any, + valueRenderer: _propTypes2['default'].func.isRequired, + isCustomNode: _propTypes2['default'].func.isRequired +}; + +exports['default'] = JSONNode; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONObjectNode.js": +/*!************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONObjectNode.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _objectWithoutProperties2 = __webpack_require__(/*! babel-runtime/helpers/objectWithoutProperties */ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _getOwnPropertyNames = __webpack_require__(/*! babel-runtime/core-js/object/get-own-property-names */ "./node_modules/babel-runtime/core-js/object/get-own-property-names.js"); + +var _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _JSONNestedNode = __webpack_require__(/*! ./JSONNestedNode */ "./node_modules/react-json-tree/lib/JSONNestedNode.js"); + +var _JSONNestedNode2 = _interopRequireDefault(_JSONNestedNode); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// Returns the "n Items" string for this node, +// generating and caching it if it hasn't been created yet. +function createItemString(data) { + var len = (0, _getOwnPropertyNames2['default'])(data).length; + return len + ' ' + (len !== 1 ? 'keys' : 'key'); +} + +// Configures to render an Object +var JSONObjectNode = function JSONObjectNode(_ref) { + var data = _ref.data, + props = (0, _objectWithoutProperties3['default'])(_ref, ['data']); + return _react2['default'].createElement(_JSONNestedNode2['default'], (0, _extends3['default'])({}, props, { + data: data, + nodeType: 'Object', + nodeTypeIndicator: props.nodeType === 'Error' ? 'Error()' : '{}', + createItemString: createItemString, + expandable: (0, _getOwnPropertyNames2['default'])(data).length > 0 + })); +}; + +JSONObjectNode.propTypes = { + data: _propTypes2['default'].object, + nodeType: _propTypes2['default'].string +}; + +exports['default'] = JSONObjectNode; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/JSONValueNode.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-json-tree/lib/JSONValueNode.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +/** + * Renders simple values (eg. strings, numbers, booleans, etc) + */ + +var JSONValueNode = function JSONValueNode(_ref) { + var nodeType = _ref.nodeType, + styling = _ref.styling, + labelRenderer = _ref.labelRenderer, + keyPath = _ref.keyPath, + valueRenderer = _ref.valueRenderer, + value = _ref.value, + valueGetter = _ref.valueGetter; + return _react2['default'].createElement( + 'li', + styling('value', nodeType, keyPath), + _react2['default'].createElement( + 'label', + styling(['label', 'valueLabel'], nodeType, keyPath), + labelRenderer(keyPath, nodeType, false, false) + ), + _react2['default'].createElement( + 'span', + styling('valueText', nodeType, keyPath), + valueRenderer.apply(undefined, [valueGetter(value), value].concat(keyPath)) + ) + ); +}; + +JSONValueNode.propTypes = { + nodeType: _propTypes2['default'].string.isRequired, + styling: _propTypes2['default'].func.isRequired, + labelRenderer: _propTypes2['default'].func.isRequired, + keyPath: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])).isRequired, + valueRenderer: _propTypes2['default'].func.isRequired, + value: _propTypes2['default'].any, + valueGetter: _propTypes2['default'].func +}; + +JSONValueNode.defaultProps = { + valueGetter: function valueGetter(value) { + return value; + } +}; + +exports['default'] = JSONValueNode; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/createStylingFromTheme.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/createStylingFromTheme.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _reactBase16Styling = __webpack_require__(/*! react-base16-styling */ "./node_modules/react-base16-styling/lib/index.js"); + +var _solarized = __webpack_require__(/*! ./themes/solarized */ "./node_modules/react-json-tree/lib/themes/solarized.js"); + +var _solarized2 = _interopRequireDefault(_solarized); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var colorMap = function colorMap(theme) { + return { + BACKGROUND_COLOR: theme.base00, + TEXT_COLOR: theme.base07, + STRING_COLOR: theme.base0B, + DATE_COLOR: theme.base0B, + NUMBER_COLOR: theme.base09, + BOOLEAN_COLOR: theme.base09, + NULL_COLOR: theme.base08, + UNDEFINED_COLOR: theme.base08, + FUNCTION_COLOR: theme.base08, + SYMBOL_COLOR: theme.base08, + LABEL_COLOR: theme.base0D, + ARROW_COLOR: theme.base0D, + ITEM_STRING_COLOR: theme.base0B, + ITEM_STRING_EXPANDED_COLOR: theme.base03 + }; +}; + +var valueColorMap = function valueColorMap(colors) { + return { + String: colors.STRING_COLOR, + Date: colors.DATE_COLOR, + Number: colors.NUMBER_COLOR, + Boolean: colors.BOOLEAN_COLOR, + Null: colors.NULL_COLOR, + Undefined: colors.UNDEFINED_COLOR, + Function: colors.FUNCTION_COLOR, + Symbol: colors.SYMBOL_COLOR + }; +}; + +var getDefaultThemeStyling = function getDefaultThemeStyling(theme) { + var colors = colorMap(theme); + + return { + tree: { + border: 0, + padding: 0, + marginTop: '0.5em', + marginBottom: '0.5em', + marginLeft: '0.125em', + marginRight: 0, + listStyle: 'none', + MozUserSelect: 'none', + WebkitUserSelect: 'none', + backgroundColor: colors.BACKGROUND_COLOR + }, + + value: function value(_ref, nodeType, keyPath) { + var style = _ref.style; + return { + style: (0, _extends3['default'])({}, style, { + paddingTop: '0.25em', + paddingRight: 0, + marginLeft: '0.875em', + WebkitUserSelect: 'text', + MozUserSelect: 'text', + wordWrap: 'break-word', + paddingLeft: keyPath.length > 1 ? '2.125em' : '1.25em', + textIndent: '-0.5em', + wordBreak: 'break-all' + }) + }; + }, + + label: { + display: 'inline-block', + color: colors.LABEL_COLOR + }, + + valueLabel: { + margin: '0 0.5em 0 0' + }, + + valueText: function valueText(_ref2, nodeType) { + var style = _ref2.style; + return { + style: (0, _extends3['default'])({}, style, { + color: valueColorMap(colors)[nodeType] + }) + }; + }, + + itemRange: function itemRange(styling, expanded) { + return { + style: { + paddingTop: expanded ? 0 : '0.25em', + cursor: 'pointer', + color: colors.LABEL_COLOR + } + }; + }, + + arrow: function arrow(_ref3, nodeType, expanded) { + var style = _ref3.style; + return { + style: (0, _extends3['default'])({}, style, { + marginLeft: 0, + transition: '150ms', + WebkitTransition: '150ms', + MozTransition: '150ms', + WebkitTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)', + MozTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)', + transform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)', + transformOrigin: '45% 50%', + WebkitTransformOrigin: '45% 50%', + MozTransformOrigin: '45% 50%', + position: 'relative', + lineHeight: '1.1em', + fontSize: '0.75em' + }) + }; + }, + + arrowContainer: function arrowContainer(_ref4, arrowStyle) { + var style = _ref4.style; + return { + style: (0, _extends3['default'])({}, style, { + display: 'inline-block', + paddingRight: '0.5em', + paddingLeft: arrowStyle === 'double' ? '1em' : 0, + cursor: 'pointer' + }) + }; + }, + + arrowSign: { + color: colors.ARROW_COLOR + }, + + arrowSignInner: { + position: 'absolute', + top: 0, + left: '-0.4em' + }, + + nestedNode: function nestedNode(_ref5, keyPath, nodeType, expanded, expandable) { + var style = _ref5.style; + return { + style: (0, _extends3['default'])({}, style, { + position: 'relative', + paddingTop: '0.25em', + marginLeft: keyPath.length > 1 ? '0.875em' : 0, + paddingLeft: !expandable ? '1.125em' : 0 + }) + }; + }, + + rootNode: { + padding: 0, + margin: 0 + }, + + nestedNodeLabel: function nestedNodeLabel(_ref6, keyPath, nodeType, expanded, expandable) { + var style = _ref6.style; + return { + style: (0, _extends3['default'])({}, style, { + margin: 0, + padding: 0, + WebkitUserSelect: expandable ? 'inherit' : 'text', + MozUserSelect: expandable ? 'inherit' : 'text', + cursor: expandable ? 'pointer' : 'default' + }) + }; + }, + + nestedNodeItemString: function nestedNodeItemString(_ref7, keyPath, nodeType, expanded) { + var style = _ref7.style; + return { + style: (0, _extends3['default'])({}, style, { + paddingLeft: '0.5em', + cursor: 'default', + color: expanded ? colors.ITEM_STRING_EXPANDED_COLOR : colors.ITEM_STRING_COLOR + }) + }; + }, + + nestedNodeItemType: { + marginLeft: '0.3em', + marginRight: '0.3em' + }, + + nestedNodeChildren: function nestedNodeChildren(_ref8, nodeType, expanded) { + var style = _ref8.style; + return { + style: (0, _extends3['default'])({}, style, { + padding: 0, + margin: 0, + listStyle: 'none', + display: expanded ? 'block' : 'none' + }) + }; + }, + + rootNodeChildren: { + padding: 0, + margin: 0, + listStyle: 'none' + } + }; +}; + +exports['default'] = (0, _reactBase16Styling.createStyling)(getDefaultThemeStyling, { + defaultBase16: _solarized2['default'] +}); + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/getCollectionEntries.js": +/*!******************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/getCollectionEntries.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _getIterator2 = __webpack_require__(/*! babel-runtime/core-js/get-iterator */ "./node_modules/babel-runtime/core-js/get-iterator.js"); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +var _getOwnPropertyNames = __webpack_require__(/*! babel-runtime/core-js/object/get-own-property-names */ "./node_modules/babel-runtime/core-js/object/get-own-property-names.js"); + +var _getOwnPropertyNames2 = _interopRequireDefault(_getOwnPropertyNames); + +var _keys = __webpack_require__(/*! babel-runtime/core-js/object/keys */ "./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +exports['default'] = getCollectionEntries; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function getLength(type, collection) { + if (type === 'Object') { + return (0, _keys2['default'])(collection).length; + } else if (type === 'Array') { + return collection.length; + } + + return Infinity; +} + +function isIterableMap(collection) { + return typeof collection.set === 'function'; +} + +function getEntries(type, collection, sortObjectKeys) { + var from = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var to = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Infinity; + + var res = void 0; + + if (type === 'Object') { + var keys = (0, _getOwnPropertyNames2['default'])(collection); + + if (typeof sortObjectKeys !== 'undefined') { + keys.sort(sortObjectKeys); + } + + keys = keys.slice(from, to + 1); + + res = { + entries: keys.map(function (key) { + return { key: key, value: collection[key] }; + }) + }; + } else if (type === 'Array') { + res = { + entries: collection.slice(from, to + 1).map(function (val, idx) { + return { key: idx + from, value: val }; + }) + }; + } else { + var idx = 0; + var entries = []; + var done = true; + + var isMap = isIterableMap(collection); + + for (var _iterator = collection, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3['default'])(_iterator);;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var item = _ref; + + if (idx > to) { + done = false; + break; + } + if (from <= idx) { + if (isMap && Array.isArray(item)) { + if (typeof item[0] === 'string' || typeof item[0] === 'number') { + entries.push({ key: item[0], value: item[1] }); + } else { + entries.push({ + key: '[entry ' + idx + ']', + value: { + '[key]': item[0], + '[value]': item[1] + } + }); + } + } else { + entries.push({ key: idx, value: item }); + } + } + idx++; + } + + res = { + hasMore: !done, + entries: entries + }; + } + + return res; +} + +function getRanges(from, to, limit) { + var ranges = []; + while (to - from > limit * limit) { + limit = limit * limit; + } + for (var i = from; i <= to; i += limit) { + ranges.push({ from: i, to: Math.min(to, i + limit - 1) }); + } + + return ranges; +} + +function getCollectionEntries(type, collection, sortObjectKeys, limit) { + var from = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var to = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : Infinity; + + var getEntriesBound = getEntries.bind(null, type, collection, sortObjectKeys); + + if (!limit) { + return getEntriesBound().entries; + } + + var isSubset = to < Infinity; + var length = Math.min(to - from, getLength(type, collection)); + + if (type !== 'Iterable') { + if (length <= limit || limit < 7) { + return getEntriesBound(from, to).entries; + } + } else { + if (length <= limit && !isSubset) { + return getEntriesBound(from, to).entries; + } + } + + var limitedEntries = void 0; + if (type === 'Iterable') { + var _getEntriesBound = getEntriesBound(from, from + limit - 1), + hasMore = _getEntriesBound.hasMore, + entries = _getEntriesBound.entries; + + limitedEntries = hasMore ? [].concat(entries, getRanges(from + limit, from + 2 * limit - 1, limit)) : entries; + } else { + limitedEntries = isSubset ? getRanges(from, to, limit) : [].concat(getEntriesBound(0, limit - 5).entries, getRanges(limit - 4, length - 5, limit), getEntriesBound(length - 4, length - 1).entries); + } + + return limitedEntries; +} + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/index.js": +/*!***************************************************!*\ + !*** ./node_modules/react-json-tree/lib/index.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _objectWithoutProperties2 = __webpack_require__(/*! babel-runtime/helpers/objectWithoutProperties */ "./node_modules/babel-runtime/helpers/objectWithoutProperties.js"); + +var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); + +var _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ "./node_modules/babel-runtime/helpers/classCallCheck.js"); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _possibleConstructorReturn2 = __webpack_require__(/*! babel-runtime/helpers/possibleConstructorReturn */ "./node_modules/babel-runtime/helpers/possibleConstructorReturn.js"); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(/*! babel-runtime/helpers/inherits */ "./node_modules/babel-runtime/helpers/inherits.js"); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ "./node_modules/babel-runtime/helpers/extends.js"); + +var _extends3 = _interopRequireDefault(_extends2); + +var _keys = __webpack_require__(/*! babel-runtime/core-js/object/keys */ "./node_modules/babel-runtime/core-js/object/keys.js"); + +var _keys2 = _interopRequireDefault(_keys); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _JSONNode = __webpack_require__(/*! ./JSONNode */ "./node_modules/react-json-tree/lib/JSONNode.js"); + +var _JSONNode2 = _interopRequireDefault(_JSONNode); + +var _createStylingFromTheme = __webpack_require__(/*! ./createStylingFromTheme */ "./node_modules/react-json-tree/lib/createStylingFromTheme.js"); + +var _createStylingFromTheme2 = _interopRequireDefault(_createStylingFromTheme); + +var _reactBase16Styling = __webpack_require__(/*! react-base16-styling */ "./node_modules/react-base16-styling/lib/index.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var identity = function identity(value) { + return value; +}; // ES6 + inline style port of JSONViewer https://bitbucket.org/davevedder/react-json-viewer/ +// all credits and original code to the author +// Dave Vedder http://www.eskimospy.com/ +// port by Daniele Zannotti http://www.github.com/dzannotti + +var expandRootNode = function expandRootNode(keyName, data, level) { + return level === 0; +}; +var defaultItemString = function defaultItemString(type, data, itemType, itemString) { + return _react2['default'].createElement( + 'span', + null, + itemType, + ' ', + itemString + ); +}; +var defaultLabelRenderer = function defaultLabelRenderer(_ref) { + var label = _ref[0]; + return _react2['default'].createElement( + 'span', + null, + label, + ':' + ); +}; +var noCustomNode = function noCustomNode() { + return false; +}; + +function checkLegacyTheming(theme, props) { + var deprecatedStylingMethodsMap = { + getArrowStyle: 'arrow', + getListStyle: 'nestedNodeChildren', + getItemStringStyle: 'nestedNodeItemString', + getLabelStyle: 'label', + getValueStyle: 'valueText' + }; + + var deprecatedStylingMethods = (0, _keys2['default'])(deprecatedStylingMethodsMap).filter(function (name) { + return props[name]; + }); + + if (deprecatedStylingMethods.length > 0) { + if (typeof theme === 'string') { + theme = { + extend: theme + }; + } else { + theme = (0, _extends3['default'])({}, theme); + } + + deprecatedStylingMethods.forEach(function (name) { + // eslint-disable-next-line no-console + console.error('Styling method "' + name + '" is deprecated, use "theme" property instead'); + + theme[deprecatedStylingMethodsMap[name]] = function (_ref2) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var style = _ref2.style; + return { + style: (0, _extends3['default'])({}, style, props[name].apply(props, args)) + }; + }; + }); + } + + return theme; +} + +function getStateFromProps(props) { + var theme = checkLegacyTheming(props.theme, props); + if (props.invertTheme) { + if (typeof theme === 'string') { + theme = theme + ':inverted'; + } else if (theme && theme.extend) { + if (typeof theme === 'string') { + theme = (0, _extends3['default'])({}, theme, { extend: theme.extend + ':inverted' }); + } else { + theme = (0, _extends3['default'])({}, theme, { extend: (0, _reactBase16Styling.invertTheme)(theme.extend) }); + } + } else if (theme) { + theme = (0, _reactBase16Styling.invertTheme)(theme); + } + } + return { + styling: (0, _createStylingFromTheme2['default'])(theme) + }; +} + +var JSONTree = function (_React$Component) { + (0, _inherits3['default'])(JSONTree, _React$Component); + + function JSONTree(props) { + (0, _classCallCheck3['default'])(this, JSONTree); + + var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props)); + + _this.state = getStateFromProps(props); + return _this; + } + + JSONTree.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var _this2 = this; + + if (['theme', 'invertTheme'].find(function (k) { + return nextProps[k] !== _this2.props[k]; + })) { + this.setState(getStateFromProps(nextProps)); + } + }; + + JSONTree.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) { + var _this3 = this; + + return !!(0, _keys2['default'])(nextProps).find(function (k) { + return k === 'keyPath' ? nextProps[k].join('/') !== _this3.props[k].join('/') : nextProps[k] !== _this3.props[k]; + }); + }; + + JSONTree.prototype.render = function render() { + var _props = this.props, + value = _props.data, + keyPath = _props.keyPath, + postprocessValue = _props.postprocessValue, + hideRoot = _props.hideRoot, + theme = _props.theme, + _ = _props.invertTheme, + rest = (0, _objectWithoutProperties3['default'])(_props, ['data', 'keyPath', 'postprocessValue', 'hideRoot', 'theme', 'invertTheme']); + var styling = this.state.styling; + + + return _react2['default'].createElement( + 'ul', + styling('tree'), + _react2['default'].createElement(_JSONNode2['default'], (0, _extends3['default'])({}, (0, _extends3['default'])({ postprocessValue: postprocessValue, hideRoot: hideRoot, styling: styling }, rest), { + keyPath: hideRoot ? [] : keyPath, + value: postprocessValue(value) + })) + ); + }; + + return JSONTree; +}(_react2['default'].Component); + +JSONTree.propTypes = { + data: _propTypes2['default'].oneOfType([_propTypes2['default'].array, _propTypes2['default'].object]).isRequired, + hideRoot: _propTypes2['default'].bool, + theme: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].string]), + invertTheme: _propTypes2['default'].bool, + keyPath: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].number])), + postprocessValue: _propTypes2['default'].func, + sortObjectKeys: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].bool]) +}; +JSONTree.defaultProps = { + shouldExpandNode: expandRootNode, + hideRoot: false, + keyPath: ['root'], + getItemString: defaultItemString, + labelRenderer: defaultLabelRenderer, + valueRenderer: identity, + postprocessValue: identity, + isCustomNode: noCustomNode, + collectionLimit: 50, + invertTheme: true +}; +exports['default'] = JSONTree; + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/objType.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-json-tree/lib/objType.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _iterator = __webpack_require__(/*! babel-runtime/core-js/symbol/iterator */ "./node_modules/babel-runtime/core-js/symbol/iterator.js"); + +var _iterator2 = _interopRequireDefault(_iterator); + +exports['default'] = objType; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function objType(obj) { + var type = Object.prototype.toString.call(obj).slice(8, -1); + if (type === 'Object' && typeof obj[_iterator2['default']] === 'function') { + return 'Iterable'; + } + + return type; +} + +/***/ }), + +/***/ "./node_modules/react-json-tree/lib/themes/solarized.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-json-tree/lib/themes/solarized.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports['default'] = { + scheme: 'solarized', + author: 'ethan schoonover (http://ethanschoonover.com/solarized)', + base00: '#002b36', + base01: '#073642', + base02: '#586e75', + base03: '#657b83', + base04: '#839496', + base05: '#93a1a1', + base06: '#eee8d5', + base07: '#fdf6e3', + base08: '#dc322f', + base09: '#cb4b16', + base0A: '#b58900', + base0B: '#859900', + base0C: '#2aa198', + base0D: '#268bd2', + base0E: '#6c71c4', + base0F: '#d33682' +}; + +/***/ }), + +/***/ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js": +/*!****************************************************************************!*\ + !*** ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***! + \****************************************************************************/ +/*! exports provided: polyfill */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyfill", function() { return polyfill; }); +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +function componentWillMount() { + // Call this.constructor.gDSFP to support sub-classes. + var state = this.constructor.getDerivedStateFromProps(this.props, this.state); + if (state !== null && state !== undefined) { + this.setState(state); + } +} + +function componentWillReceiveProps(nextProps) { + // Call this.constructor.gDSFP to support sub-classes. + // Use the setState() updater to ensure state isn't stale in certain edge cases. + function updater(prevState) { + var state = this.constructor.getDerivedStateFromProps(nextProps, prevState); + return state !== null && state !== undefined ? state : null; + } + // Binding "this" is important for shallow renderer support. + this.setState(updater.bind(this)); +} + +function componentWillUpdate(nextProps, nextState) { + try { + var prevProps = this.props; + var prevState = this.state; + this.props = nextProps; + this.state = nextState; + this.__reactInternalSnapshotFlag = true; + this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate( + prevProps, + prevState + ); + } finally { + this.props = prevProps; + this.state = prevState; + } +} + +// React may warn about cWM/cWRP/cWU methods being deprecated. +// Add a flag to suppress these warnings for this special case. +componentWillMount.__suppressDeprecationWarning = true; +componentWillReceiveProps.__suppressDeprecationWarning = true; +componentWillUpdate.__suppressDeprecationWarning = true; + +function polyfill(Component) { + var prototype = Component.prototype; + + if (!prototype || !prototype.isReactComponent) { + throw new Error('Can only polyfill class components'); + } + + if ( + typeof Component.getDerivedStateFromProps !== 'function' && + typeof prototype.getSnapshotBeforeUpdate !== 'function' + ) { + return Component; + } + + // If new component APIs are defined, "unsafe" lifecycles won't be called. + // Error if any of these lifecycles are present, + // Because they would work differently between older and newer (16.3+) versions of React. + var foundWillMountName = null; + var foundWillReceivePropsName = null; + var foundWillUpdateName = null; + if (typeof prototype.componentWillMount === 'function') { + foundWillMountName = 'componentWillMount'; + } else if (typeof prototype.UNSAFE_componentWillMount === 'function') { + foundWillMountName = 'UNSAFE_componentWillMount'; + } + if (typeof prototype.componentWillReceiveProps === 'function') { + foundWillReceivePropsName = 'componentWillReceiveProps'; + } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') { + foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps'; + } + if (typeof prototype.componentWillUpdate === 'function') { + foundWillUpdateName = 'componentWillUpdate'; + } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') { + foundWillUpdateName = 'UNSAFE_componentWillUpdate'; + } + if ( + foundWillMountName !== null || + foundWillReceivePropsName !== null || + foundWillUpdateName !== null + ) { + var componentName = Component.displayName || Component.name; + var newApiName = + typeof Component.getDerivedStateFromProps === 'function' + ? 'getDerivedStateFromProps()' + : 'getSnapshotBeforeUpdate()'; + + throw Error( + 'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + + componentName + + ' uses ' + + newApiName + + ' but also contains the following legacy lifecycles:' + + (foundWillMountName !== null ? '\n ' + foundWillMountName : '') + + (foundWillReceivePropsName !== null + ? '\n ' + foundWillReceivePropsName + : '') + + (foundWillUpdateName !== null ? '\n ' + foundWillUpdateName : '') + + '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' + + 'https://fb.me/react-async-component-lifecycle-hooks' + ); + } + + // React <= 16.2 does not support static getDerivedStateFromProps. + // As a workaround, use cWM and cWRP to invoke the new static lifecycle. + // Newer versions of React will ignore these lifecycles if gDSFP exists. + if (typeof Component.getDerivedStateFromProps === 'function') { + prototype.componentWillMount = componentWillMount; + prototype.componentWillReceiveProps = componentWillReceiveProps; + } + + // React <= 16.2 does not support getSnapshotBeforeUpdate. + // As a workaround, use cWU to invoke the new lifecycle. + // Newer versions of React will ignore that lifecycle if gSBU exists. + if (typeof prototype.getSnapshotBeforeUpdate === 'function') { + if (typeof prototype.componentDidUpdate !== 'function') { + throw new Error( + 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype' + ); + } + + prototype.componentWillUpdate = componentWillUpdate; + + var componentDidUpdate = prototype.componentDidUpdate; + + prototype.componentDidUpdate = function componentDidUpdatePolyfill( + prevProps, + prevState, + maybeSnapshot + ) { + // 16.3+ will not execute our will-update method; + // It will pass a snapshot value to did-update though. + // Older versions will require our polyfilled will-update value. + // We need to handle both cases, but can't just check for the presence of "maybeSnapshot", + // Because for <= 15.x versions this might be a "prevContext" object. + // We also can't just check "__reactInternalSnapshot", + // Because get-snapshot might return a falsy value. + // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior. + var snapshot = this.__reactInternalSnapshotFlag + ? this.__reactInternalSnapshot + : maybeSnapshot; + + componentDidUpdate.call(this, prevProps, prevState, snapshot); + }; + } + + return Component; +} + + + + +/***/ }), + +/***/ "./node_modules/react-loadable/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/react-loadable/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var React = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +var PropTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var ALL_INITIALIZERS = []; +var READY_INITIALIZERS = []; + +function isWebpackReady(getModuleIds) { + if (( false ? undefined : _typeof(__webpack_require__.m)) !== 'object') { + return false; + } + + return getModuleIds().every(function (moduleId) { + return typeof moduleId !== 'undefined' && typeof __webpack_require__.m[moduleId] !== 'undefined'; + }); +} + +function load(loader) { + var promise = loader(); + + var state = { + loading: true, + loaded: null, + error: null + }; + + state.promise = promise.then(function (loaded) { + state.loading = false; + state.loaded = loaded; + return loaded; + }).catch(function (err) { + state.loading = false; + state.error = err; + throw err; + }); + + return state; +} + +function loadMap(obj) { + var state = { + loading: false, + loaded: {}, + error: null + }; + + var promises = []; + + try { + Object.keys(obj).forEach(function (key) { + var result = load(obj[key]); + + if (!result.loading) { + state.loaded[key] = result.loaded; + state.error = result.error; + } else { + state.loading = true; + } + + promises.push(result.promise); + + result.promise.then(function (res) { + state.loaded[key] = res; + }).catch(function (err) { + state.error = err; + }); + }); + } catch (err) { + state.error = err; + } + + state.promise = Promise.all(promises).then(function (res) { + state.loading = false; + return res; + }).catch(function (err) { + state.loading = false; + throw err; + }); + + return state; +} + +function resolve(obj) { + return obj && obj.__esModule ? obj.default : obj; +} + +function render(loaded, props) { + return React.createElement(resolve(loaded), props); +} + +function createLoadableComponent(loadFn, options) { + var _class, _temp; + + if (!options.loading) { + throw new Error('react-loadable requires a `loading` component'); + } + + var opts = Object.assign({ + loader: null, + loading: null, + delay: 200, + timeout: null, + render: render, + webpack: null, + modules: null + }, options); + + var res = null; + + function init() { + if (!res) { + res = loadFn(opts.loader); + } + return res.promise; + } + + ALL_INITIALIZERS.push(init); + + if (typeof opts.webpack === 'function') { + READY_INITIALIZERS.push(function () { + if (isWebpackReady(opts.webpack)) { + return init(); + } + }); + } + + return _temp = _class = function (_React$Component) { + _inherits(LoadableComponent, _React$Component); + + function LoadableComponent(props) { + _classCallCheck(this, LoadableComponent); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); + + _this.retry = function () { + _this.setState({ error: null, loading: true }); + res = loadFn(opts.loader); + _this._loadModule(); + }; + + init(); + + _this.state = { + error: res.error, + pastDelay: false, + timedOut: false, + loading: res.loading, + loaded: res.loaded + }; + return _this; + } + + LoadableComponent.preload = function preload() { + return init(); + }; + + LoadableComponent.prototype.componentWillMount = function componentWillMount() { + this._mounted = true; + this._loadModule(); + }; + + LoadableComponent.prototype._loadModule = function _loadModule() { + var _this2 = this; + + if (this.context.loadable && Array.isArray(opts.modules)) { + opts.modules.forEach(function (moduleName) { + _this2.context.loadable.report(moduleName); + }); + } + + if (!res.loading) { + return; + } + + if (typeof opts.delay === 'number') { + if (opts.delay === 0) { + this.setState({ pastDelay: true }); + } else { + this._delay = setTimeout(function () { + _this2.setState({ pastDelay: true }); + }, opts.delay); + } + } + + if (typeof opts.timeout === 'number') { + this._timeout = setTimeout(function () { + _this2.setState({ timedOut: true }); + }, opts.timeout); + } + + var update = function update() { + if (!_this2._mounted) { + return; + } + + _this2.setState({ + error: res.error, + loaded: res.loaded, + loading: res.loading + }); + + _this2._clearTimeouts(); + }; + + res.promise.then(function () { + update(); + }).catch(function (err) { + update(); + }); + }; + + LoadableComponent.prototype.componentWillUnmount = function componentWillUnmount() { + this._mounted = false; + this._clearTimeouts(); + }; + + LoadableComponent.prototype._clearTimeouts = function _clearTimeouts() { + clearTimeout(this._delay); + clearTimeout(this._timeout); + }; + + LoadableComponent.prototype.render = function render() { + if (this.state.loading || this.state.error) { + return React.createElement(opts.loading, { + isLoading: this.state.loading, + pastDelay: this.state.pastDelay, + timedOut: this.state.timedOut, + error: this.state.error, + retry: this.retry + }); + } else if (this.state.loaded) { + return opts.render(this.state.loaded, this.props); + } else { + return null; + } + }; + + return LoadableComponent; + }(React.Component), _class.contextTypes = { + loadable: PropTypes.shape({ + report: PropTypes.func.isRequired + }) + }, _temp; +} + +function Loadable(opts) { + return createLoadableComponent(load, opts); +} + +function LoadableMap(opts) { + if (typeof opts.render !== 'function') { + throw new Error('LoadableMap requires a `render(loaded, props)` function'); + } + + return createLoadableComponent(loadMap, opts); +} + +Loadable.Map = LoadableMap; + +var Capture = function (_React$Component2) { + _inherits(Capture, _React$Component2); + + function Capture() { + _classCallCheck(this, Capture); + + return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments)); + } + + Capture.prototype.getChildContext = function getChildContext() { + return { + loadable: { + report: this.props.report + } + }; + }; + + Capture.prototype.render = function render() { + return React.Children.only(this.props.children); + }; + + return Capture; +}(React.Component); + +Capture.propTypes = { + report: PropTypes.func.isRequired +}; +Capture.childContextTypes = { + loadable: PropTypes.shape({ + report: PropTypes.func.isRequired + }).isRequired +}; + + +Loadable.Capture = Capture; + +function flushInitializers(initializers) { + var promises = []; + + while (initializers.length) { + var init = initializers.pop(); + promises.push(init()); + } + + return Promise.all(promises).then(function () { + if (initializers.length) { + return flushInitializers(initializers); + } + }); +} + +Loadable.preloadAll = function () { + return new Promise(function (resolve, reject) { + flushInitializers(ALL_INITIALIZERS).then(resolve, reject); + }); +}; + +Loadable.preloadReady = function () { + return new Promise(function (resolve, reject) { + // We always will resolve, errors should be handled within loading UIs. + flushInitializers(READY_INITIALIZERS).then(resolve, resolve); + }); +}; + +module.exports = Loadable; + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Arrow.js": +/*!************************************************!*\ + !*** ./node_modules/react-popper/lib/Arrow.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + +var Arrow = function Arrow(props, context) { + var _props$component = props.component, + component = _props$component === undefined ? 'span' : _props$component, + innerRef = props.innerRef, + children = props.children, + restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); + + var popper = context.popper; + + var arrowRef = function arrowRef(node) { + popper.setArrowNode(node); + if (typeof innerRef === 'function') { + innerRef(node); + } + }; + var arrowStyle = popper.getArrowStyle(); + + if (typeof children === 'function') { + var arrowProps = { + ref: arrowRef, + style: arrowStyle + }; + return children({ arrowProps: arrowProps, restProps: restProps }); + } + + var componentProps = _extends({}, restProps, { + style: _extends({}, arrowStyle, restProps.style) + }); + + if (typeof component === 'string') { + componentProps.ref = arrowRef; + } else { + componentProps.innerRef = arrowRef; + } + + return Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(component, componentProps, children); +}; + +Arrow.contextTypes = { + popper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; + +Arrow.propTypes = { + component: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +/* harmony default export */ __webpack_exports__["default"] = (Arrow); + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Manager.js": +/*!**************************************************!*\ + !*** ./node_modules/react-popper/lib/Manager.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + +var Manager = function (_Component) { + _inherits(Manager, _Component); + + function Manager() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Manager); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Manager.__proto__ || Object.getPrototypeOf(Manager)).call.apply(_ref, [this].concat(args))), _this), _this._setTargetNode = function (node) { + _this._targetNode = node; + }, _this._getTargetNode = function () { + return _this._targetNode; + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Manager, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + popperManager: { + setTargetNode: this._setTargetNode, + getTargetNode: this._getTargetNode + } + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + tag = _props.tag, + children = _props.children, + restProps = _objectWithoutProperties(_props, ['tag', 'children']); + + if (tag !== false) { + return Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(tag, restProps, children); + } else { + return children; + } + } + }]); + + return Manager; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +Manager.childContextTypes = { + popperManager: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; +Manager.propTypes = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool]), + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; +Manager.defaultProps = { + tag: 'div' +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Manager); + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Popper.js": +/*!*************************************************!*\ + !*** ./node_modules/react-popper/lib/Popper.js ***! + \*************************************************/ +/*! exports provided: placements, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "placements", function() { return placements; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + +var placements = popper_js__WEBPACK_IMPORTED_MODULE_2__["default"].placements; + +var Popper = function (_Component) { + _inherits(Popper, _Component); + + function Popper() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Popper); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Popper.__proto__ || Object.getPrototypeOf(Popper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this._setArrowNode = function (node) { + _this._arrowNode = node; + }, _this._getTargetNode = function () { + if (_this.props.target) { + return _this.props.target; + } else if (!_this.context.popperManager || !_this.context.popperManager.getTargetNode()) { + throw new Error('Target missing. Popper must be given a target from the Popper Manager, or as a prop.'); + } + return _this.context.popperManager.getTargetNode(); + }, _this._getOffsets = function (data) { + return Object.keys(data.offsets).map(function (key) { + return data.offsets[key]; + }); + }, _this._isDataDirty = function (data) { + if (_this.state.data) { + return JSON.stringify(_this._getOffsets(_this.state.data)) !== JSON.stringify(_this._getOffsets(data)); + } else { + return true; + } + }, _this._updateStateModifier = { + enabled: true, + order: 900, + fn: function fn(data) { + if (_this._isDataDirty(data)) { + _this.setState({ data: data }); + } + return data; + } + }, _this._getPopperStyle = function () { + var data = _this.state.data; + + + if (!_this._popper || !data) { + return { + position: 'absolute', + pointerEvents: 'none', + opacity: 0 + }; + } + + return _extends({ + position: data.offsets.popper.position + }, data.styles); + }, _this._getPopperPlacement = function () { + return _this.state.data ? _this.state.data.placement : undefined; + }, _this._getPopperHide = function () { + return !!_this.state.data && _this.state.data.hide ? '' : undefined; + }, _this._getArrowStyle = function () { + if (!_this.state.data || !_this.state.data.offsets.arrow) { + return {}; + } else { + var _this$state$data$offs = _this.state.data.offsets.arrow, + top = _this$state$data$offs.top, + left = _this$state$data$offs.left; + + return { top: top, left: left }; + } + }, _this._handlePopperRef = function (node) { + _this._popperNode = node; + if (node) { + _this._createPopper(); + } else { + _this._destroyPopper(); + } + if (_this.props.innerRef) { + _this.props.innerRef(node); + } + }, _this._scheduleUpdate = function () { + _this._popper && _this._popper.scheduleUpdate(); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Popper, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + popper: { + setArrowNode: this._setArrowNode, + getArrowStyle: this._getArrowStyle + } + }; + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(lastProps) { + if (lastProps.placement !== this.props.placement || lastProps.eventsEnabled !== this.props.eventsEnabled || lastProps.target !== this.props.target) { + this._destroyPopper(); + this._createPopper(); + } + if (lastProps.children !== this.props.children) { + this._scheduleUpdate(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this._destroyPopper(); + } + }, { + key: '_createPopper', + value: function _createPopper() { + var _this2 = this; + + var _props = this.props, + placement = _props.placement, + eventsEnabled = _props.eventsEnabled, + positionFixed = _props.positionFixed; + + var modifiers = _extends({}, this.props.modifiers, { + applyStyle: { enabled: false }, + updateState: this._updateStateModifier + }); + if (this._arrowNode) { + modifiers.arrow = _extends({}, this.props.modifiers.arrow || {}, { + element: this._arrowNode + }); + } + this._popper = new popper_js__WEBPACK_IMPORTED_MODULE_2__["default"](this._getTargetNode(), this._popperNode, { + placement: placement, + positionFixed: positionFixed, + eventsEnabled: eventsEnabled, + modifiers: modifiers + }); + + // TODO: look into setTimeout scheduleUpdate call, without it, the popper will not position properly on creation + setTimeout(function () { + return _this2._scheduleUpdate(); + }); + } + }, { + key: '_destroyPopper', + value: function _destroyPopper() { + if (this._popper) { + this._popper.destroy(); + } + } + }, { + key: 'render', + value: function render() { + var _props2 = this.props, + component = _props2.component, + innerRef = _props2.innerRef, + placement = _props2.placement, + eventsEnabled = _props2.eventsEnabled, + positionFixed = _props2.positionFixed, + modifiers = _props2.modifiers, + children = _props2.children, + restProps = _objectWithoutProperties(_props2, ['component', 'innerRef', 'placement', 'eventsEnabled', 'positionFixed', 'modifiers', 'children']); + + var popperStyle = this._getPopperStyle(); + var popperPlacement = this._getPopperPlacement(); + var popperHide = this._getPopperHide(); + + if (typeof children === 'function') { + var popperProps = { + ref: this._handlePopperRef, + style: popperStyle, + 'data-placement': popperPlacement, + 'data-x-out-of-boundaries': popperHide + }; + return children({ + popperProps: popperProps, + restProps: restProps, + scheduleUpdate: this._scheduleUpdate + }); + } + + var componentProps = _extends({}, restProps, { + style: _extends({}, restProps.style, popperStyle), + 'data-placement': popperPlacement, + 'data-x-out-of-boundaries': popperHide + }); + + if (typeof component === 'string') { + componentProps.ref = this._handlePopperRef; + } else { + componentProps.innerRef = this._handlePopperRef; + } + + return Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(component, componentProps, children); + } + }]); + + return Popper; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +Popper.contextTypes = { + popperManager: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; +Popper.childContextTypes = { + popper: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; +Popper.propTypes = { + component: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + placement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(placements), + eventsEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + positionFixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + modifiers: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]), + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([ + // the following check is needed for SSR + prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(typeof Element !== 'undefined' ? Element : Object), prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + getBoundingClientRect: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + clientWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired, + clientHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired + })]) +}; +Popper.defaultProps = { + component: 'div', + placement: 'bottom', + eventsEnabled: true, + positionFixed: false, + modifiers: {} +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Popper); + +/***/ }), + +/***/ "./node_modules/react-popper/lib/Target.js": +/*!*************************************************!*\ + !*** ./node_modules/react-popper/lib/Target.js ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + +var Target = function Target(props, context) { + var _props$component = props.component, + component = _props$component === undefined ? 'div' : _props$component, + innerRef = props.innerRef, + children = props.children, + restProps = _objectWithoutProperties(props, ['component', 'innerRef', 'children']); + + var popperManager = context.popperManager; + + var targetRef = function targetRef(node) { + popperManager.setTargetNode(node); + if (typeof innerRef === 'function') { + innerRef(node); + } + }; + + if (typeof children === 'function') { + var targetProps = { ref: targetRef }; + return children({ targetProps: targetProps, restProps: restProps }); + } + + var componentProps = _extends({}, restProps); + + if (typeof component === 'string') { + componentProps.ref = targetRef; + } else { + componentProps.innerRef = targetRef; + } + + return Object(react__WEBPACK_IMPORTED_MODULE_0__["createElement"])(component, componentProps, children); +}; + +Target.contextTypes = { + popperManager: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; + +Target.propTypes = { + component: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +/* harmony default export */ __webpack_exports__["default"] = (Target); + +/***/ }), + +/***/ "./node_modules/react-popper/lib/react-popper.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-popper/lib/react-popper.js ***! + \*******************************************************/ +/*! exports provided: Manager, Target, Popper, placements, Arrow */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Manager */ "./node_modules/react-popper/lib/Manager.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Manager", function() { return _Manager__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _Target__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Target */ "./node_modules/react-popper/lib/Target.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Target", function() { return _Target__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _Popper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Popper */ "./node_modules/react-popper/lib/Popper.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popper", function() { return _Popper__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "placements", function() { return _Popper__WEBPACK_IMPORTED_MODULE_2__["placements"]; }); + +/* harmony import */ var _Arrow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Arrow */ "./node_modules/react-popper/lib/Arrow.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Arrow", function() { return _Arrow__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + + + + + + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/bindAutoBindMethods.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-proxy/modules/bindAutoBindMethods.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = bindAutoBindMethods; +/** + * Copyright 2013-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 React source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * Original: + * https://github.com/facebook/react/blob/6508b1ad273a6f371e8d90ae676e5390199461b4/src/isomorphic/classic/class/ReactClass.js#L650-L713 + */ + +function bindAutoBindMethod(component, method) { + var boundMethod = method.bind(component); + + boundMethod.__reactBoundContext = component; + boundMethod.__reactBoundMethod = method; + boundMethod.__reactBoundArguments = null; + + var componentName = component.constructor.displayName, + _bind = boundMethod.bind; + + boundMethod.bind = function (newThis) { + var args = Array.prototype.slice.call(arguments, 1); + if (newThis !== component && newThis !== null) { + console.warn('bind(): React component methods may only be bound to the ' + 'component instance. See ' + componentName); + } else if (!args.length) { + console.warn('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 ' + componentName); + return boundMethod; + } + + var reboundMethod = _bind.apply(boundMethod, arguments); + reboundMethod.__reactBoundContext = component; + reboundMethod.__reactBoundMethod = method; + reboundMethod.__reactBoundArguments = args; + + return reboundMethod; + }; + + return boundMethod; +} + +function bindAutoBindMethodsFromMap(component) { + for (var autoBindKey in component.__reactAutoBindMap) { + if (!component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { + return; + } + + // Tweak: skip methods that are already bound. + // This is to preserve method reference in case it is used + // as a subscription handler that needs to be detached later. + if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { + continue; + } + + var method = component.__reactAutoBindMap[autoBindKey]; + component[autoBindKey] = bindAutoBindMethod(component, method); + } +} + +function bindAutoBindMethods(component) { + if (component.__reactAutoBindPairs) { + bindAutoBindMethodsFromArray(component); + } else if (component.__reactAutoBindMap) { + bindAutoBindMethodsFromMap(component); + } +} + +function bindAutoBindMethodsFromArray(component) { + var pairs = component.__reactAutoBindPairs; + + if (!pairs) { + return; + } + + for (var i = 0; i < pairs.length; i += 2) { + var autoBindKey = pairs[i]; + + if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { + continue; + } + + var method = pairs[i + 1]; + + component[autoBindKey] = bindAutoBindMethod(component, method); + } +} + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/createClassProxy.js": +/*!**************************************************************!*\ + !*** ./node_modules/react-proxy/modules/createClassProxy.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +exports.default = createClassProxy; + +var _find = __webpack_require__(/*! lodash/find */ "./node_modules/lodash/find.js"); + +var _find2 = _interopRequireDefault(_find); + +var _createPrototypeProxy = __webpack_require__(/*! ./createPrototypeProxy */ "./node_modules/react-proxy/modules/createPrototypeProxy.js"); + +var _createPrototypeProxy2 = _interopRequireDefault(_createPrototypeProxy); + +var _bindAutoBindMethods = __webpack_require__(/*! ./bindAutoBindMethods */ "./node_modules/react-proxy/modules/bindAutoBindMethods.js"); + +var _bindAutoBindMethods2 = _interopRequireDefault(_bindAutoBindMethods); + +var _deleteUnknownAutoBindMethods = __webpack_require__(/*! ./deleteUnknownAutoBindMethods */ "./node_modules/react-proxy/modules/deleteUnknownAutoBindMethods.js"); + +var _deleteUnknownAutoBindMethods2 = _interopRequireDefault(_deleteUnknownAutoBindMethods); + +var _supportsProtoAssignment = __webpack_require__(/*! ./supportsProtoAssignment */ "./node_modules/react-proxy/modules/supportsProtoAssignment.js"); + +var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var RESERVED_STATICS = ['length', 'displayName', 'name', 'arguments', 'caller', 'prototype', 'toString']; + +function isEqualDescriptor(a, b) { + if (!a && !b) { + return true; + } + if (!a || !b) { + return false; + } + for (var key in a) { + if (a[key] !== b[key]) { + return false; + } + } + return true; +} + +function getDisplayName(Component) { + var displayName = Component.displayName || Component.name; + return displayName && displayName !== 'ReactComponent' ? displayName : 'Unknown'; +} + +// This was originally a WeakMap but we had issues with React Native: +// https://github.com/gaearon/react-proxy/issues/50#issuecomment-192928066 +var allProxies = []; +function findProxy(Component) { + var pair = (0, _find2.default)(allProxies, function (_ref) { + var _ref2 = _slicedToArray(_ref, 1); + + var key = _ref2[0]; + return key === Component; + }); + return pair ? pair[1] : null; +} +function addProxy(Component, proxy) { + allProxies.push([Component, proxy]); +} + +function proxyClass(InitialComponent) { + // Prevent double wrapping. + // Given a proxy class, return the existing proxy managing it. + var existingProxy = findProxy(InitialComponent); + if (existingProxy) { + return existingProxy; + } + + var CurrentComponent = undefined; + var ProxyComponent = undefined; + var savedDescriptors = {}; + + function instantiate(factory, context, params) { + var component = factory(); + + try { + return component.apply(context, params); + } catch (err) { + (function () { + // Native ES6 class instantiation + var instance = new (Function.prototype.bind.apply(component, [null].concat(_toConsumableArray(params))))(); + + Object.keys(instance).forEach(function (key) { + if (RESERVED_STATICS.indexOf(key) > -1) { + return; + } + context[key] = instance[key]; + }); + })(); + } + } + + var displayName = getDisplayName(InitialComponent); + try { + // Create a proxy constructor with matching name + ProxyComponent = new Function('factory', 'instantiate', 'return function ' + displayName + '() {\n return instantiate(factory, this, arguments);\n }')(function () { + return CurrentComponent; + }, instantiate); + } catch (err) { + // Some environments may forbid dynamic evaluation + ProxyComponent = function ProxyComponent() { + return instantiate(function () { + return CurrentComponent; + }, this, arguments); + }; + } + try { + Object.defineProperty(ProxyComponent, 'name', { + value: displayName + }); + } catch (err) {} + + // Proxy toString() to the current constructor + ProxyComponent.toString = function toString() { + return CurrentComponent.toString(); + }; + + var prototypeProxy = undefined; + if (InitialComponent.prototype && InitialComponent.prototype.isReactComponent) { + // Point proxy constructor to the proxy prototype + prototypeProxy = (0, _createPrototypeProxy2.default)(); + ProxyComponent.prototype = prototypeProxy.get(); + } + + function update(NextComponent) { + if (typeof NextComponent !== 'function') { + throw new Error('Expected a constructor.'); + } + if (NextComponent === CurrentComponent) { + return; + } + + // Prevent proxy cycles + var existingProxy = findProxy(NextComponent); + if (existingProxy) { + return update(existingProxy.__getCurrent()); + } + + // Save the next constructor so we call it + var PreviousComponent = CurrentComponent; + CurrentComponent = NextComponent; + + // Try to infer displayName + displayName = getDisplayName(NextComponent); + ProxyComponent.displayName = displayName; + try { + Object.defineProperty(ProxyComponent, 'name', { + value: displayName + }); + } catch (err) {} + + // Set up the same prototype for inherited statics + ProxyComponent.__proto__ = NextComponent.__proto__; + + // Copy over static methods and properties added at runtime + if (PreviousComponent) { + Object.getOwnPropertyNames(PreviousComponent).forEach(function (key) { + if (RESERVED_STATICS.indexOf(key) > -1) { + return; + } + + var prevDescriptor = Object.getOwnPropertyDescriptor(PreviousComponent, key); + var savedDescriptor = savedDescriptors[key]; + + if (!isEqualDescriptor(prevDescriptor, savedDescriptor)) { + Object.defineProperty(NextComponent, key, prevDescriptor); + } + }); + } + + // Copy newly defined static methods and properties + Object.getOwnPropertyNames(NextComponent).forEach(function (key) { + if (RESERVED_STATICS.indexOf(key) > -1) { + return; + } + + var prevDescriptor = PreviousComponent && Object.getOwnPropertyDescriptor(PreviousComponent, key); + var savedDescriptor = savedDescriptors[key]; + + // Skip redefined descriptors + if (prevDescriptor && savedDescriptor && !isEqualDescriptor(savedDescriptor, prevDescriptor)) { + Object.defineProperty(NextComponent, key, prevDescriptor); + Object.defineProperty(ProxyComponent, key, prevDescriptor); + return; + } + + if (prevDescriptor && !savedDescriptor) { + Object.defineProperty(ProxyComponent, key, prevDescriptor); + return; + } + + var nextDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextComponent, key), { + configurable: true + }); + savedDescriptors[key] = nextDescriptor; + Object.defineProperty(ProxyComponent, key, nextDescriptor); + }); + + // Remove static methods and properties that are no longer defined + Object.getOwnPropertyNames(ProxyComponent).forEach(function (key) { + if (RESERVED_STATICS.indexOf(key) > -1) { + return; + } + // Skip statics that exist on the next class + if (NextComponent.hasOwnProperty(key)) { + return; + } + // Skip non-configurable statics + var proxyDescriptor = Object.getOwnPropertyDescriptor(ProxyComponent, key); + if (proxyDescriptor && !proxyDescriptor.configurable) { + return; + } + + var prevDescriptor = PreviousComponent && Object.getOwnPropertyDescriptor(PreviousComponent, key); + var savedDescriptor = savedDescriptors[key]; + + // Skip redefined descriptors + if (prevDescriptor && savedDescriptor && !isEqualDescriptor(savedDescriptor, prevDescriptor)) { + return; + } + + delete ProxyComponent[key]; + }); + + if (prototypeProxy) { + // Update the prototype proxy with new methods + var mountedInstances = prototypeProxy.update(NextComponent.prototype); + + // Set up the constructor property so accessing the statics work + ProxyComponent.prototype.constructor = NextComponent; + + // We might have added new methods that need to be auto-bound + mountedInstances.forEach(_bindAutoBindMethods2.default); + mountedInstances.forEach(_deleteUnknownAutoBindMethods2.default); + } + }; + + function get() { + return ProxyComponent; + } + + function getCurrent() { + return CurrentComponent; + } + + update(InitialComponent); + + var proxy = { get: get, update: update }; + addProxy(ProxyComponent, proxy); + + Object.defineProperty(proxy, '__getCurrent', { + configurable: false, + writable: false, + enumerable: false, + value: getCurrent + }); + + return proxy; +} + +function createFallback(Component) { + var CurrentComponent = Component; + + return { + get: function get() { + return CurrentComponent; + }, + update: function update(NextComponent) { + CurrentComponent = NextComponent; + } + }; +} + +function createClassProxy(Component) { + return Component.__proto__ && (0, _supportsProtoAssignment2.default)() ? proxyClass(Component) : createFallback(Component); +} + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/createPrototypeProxy.js": +/*!******************************************************************!*\ + !*** ./node_modules/react-proxy/modules/createPrototypeProxy.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = createPrototypeProxy; + +var _assign = __webpack_require__(/*! lodash/assign */ "./node_modules/lodash/assign.js"); + +var _assign2 = _interopRequireDefault(_assign); + +var _difference = __webpack_require__(/*! lodash/difference */ "./node_modules/lodash/difference.js"); + +var _difference2 = _interopRequireDefault(_difference); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function createPrototypeProxy() { + var proxy = {}; + var current = null; + var mountedInstances = []; + + /** + * Creates a proxied toString() method pointing to the current version's toString(). + */ + function proxyToString(name) { + // Wrap to always call the current version + return function toString() { + if (typeof current[name] === 'function') { + return current[name].toString(); + } else { + return ''; + } + }; + } + + /** + * Creates a proxied method that calls the current version, whenever available. + */ + function proxyMethod(name) { + // Wrap to always call the current version + var proxiedMethod = function proxiedMethod() { + if (typeof current[name] === 'function') { + return current[name].apply(this, arguments); + } + }; + + // Copy properties of the original function, if any + (0, _assign2.default)(proxiedMethod, current[name]); + proxiedMethod.toString = proxyToString(name); + try { + Object.defineProperty(proxiedMethod, 'name', { + value: name + }); + } catch (err) {} + + return proxiedMethod; + } + + /** + * Augments the original componentDidMount with instance tracking. + */ + function proxiedComponentDidMount() { + mountedInstances.push(this); + if (typeof current.componentDidMount === 'function') { + return current.componentDidMount.apply(this, arguments); + } + } + proxiedComponentDidMount.toString = proxyToString('componentDidMount'); + + /** + * Augments the original componentWillUnmount with instance tracking. + */ + function proxiedComponentWillUnmount() { + var index = mountedInstances.indexOf(this); + // Unless we're in a weird environment without componentDidMount + if (index !== -1) { + mountedInstances.splice(index, 1); + } + if (typeof current.componentWillUnmount === 'function') { + return current.componentWillUnmount.apply(this, arguments); + } + } + proxiedComponentWillUnmount.toString = proxyToString('componentWillUnmount'); + + /** + * Defines a property on the proxy. + */ + function defineProxyProperty(name, descriptor) { + Object.defineProperty(proxy, name, descriptor); + } + + /** + * Defines a property, attempting to keep the original descriptor configuration. + */ + function defineProxyPropertyWithValue(name, value) { + var _ref = Object.getOwnPropertyDescriptor(current, name) || {}; + + var _ref$enumerable = _ref.enumerable; + var enumerable = _ref$enumerable === undefined ? false : _ref$enumerable; + var _ref$writable = _ref.writable; + var writable = _ref$writable === undefined ? true : _ref$writable; + + + defineProxyProperty(name, { + configurable: true, + enumerable: enumerable, + writable: writable, + value: value + }); + } + + /** + * Creates an auto-bind map mimicking the original map, but directed at proxy. + */ + function createAutoBindMap() { + if (!current.__reactAutoBindMap) { + return; + } + + var __reactAutoBindMap = {}; + for (var name in current.__reactAutoBindMap) { + if (typeof proxy[name] === 'function' && current.__reactAutoBindMap.hasOwnProperty(name)) { + __reactAutoBindMap[name] = proxy[name]; + } + } + + return __reactAutoBindMap; + } + + /** + * Creates an auto-bind map mimicking the original map, but directed at proxy. + */ + function createAutoBindPairs() { + var __reactAutoBindPairs = []; + + for (var i = 0; i < current.__reactAutoBindPairs.length; i += 2) { + var name = current.__reactAutoBindPairs[i]; + var method = proxy[name]; + + if (typeof method === 'function') { + __reactAutoBindPairs.push(name, method); + } + } + + return __reactAutoBindPairs; + } + + /** + * Applies the updated prototype. + */ + function update(next) { + // Save current source of truth + current = next; + + // Find changed property names + var currentNames = Object.getOwnPropertyNames(current); + var previousName = Object.getOwnPropertyNames(proxy); + var removedNames = (0, _difference2.default)(previousName, currentNames); + + // Remove properties and methods that are no longer there + removedNames.forEach(function (name) { + delete proxy[name]; + }); + + // Copy every descriptor + currentNames.forEach(function (name) { + var descriptor = Object.getOwnPropertyDescriptor(current, name); + if (typeof descriptor.value === 'function') { + // Functions require additional wrapping so they can be bound later + defineProxyPropertyWithValue(name, proxyMethod(name)); + } else { + // Other values can be copied directly + defineProxyProperty(name, descriptor); + } + }); + + // Track mounting and unmounting + defineProxyPropertyWithValue('componentDidMount', proxiedComponentDidMount); + defineProxyPropertyWithValue('componentWillUnmount', proxiedComponentWillUnmount); + + if (current.hasOwnProperty('__reactAutoBindMap')) { + defineProxyPropertyWithValue('__reactAutoBindMap', createAutoBindMap()); + } + + if (current.hasOwnProperty('__reactAutoBindPairs')) { + defineProxyPropertyWithValue('__reactAutoBindPairs', createAutoBindPairs()); + } + + // Set up the prototype chain + proxy.__proto__ = next; + + return mountedInstances; + } + + /** + * Returns the up-to-date proxy prototype. + */ + function get() { + return proxy; + } + + return { + update: update, + get: get + }; +}; + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/deleteUnknownAutoBindMethods.js": +/*!**************************************************************************!*\ + !*** ./node_modules/react-proxy/modules/deleteUnknownAutoBindMethods.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = deleteUnknownAutoBindMethods; +function shouldDeleteClassicInstanceMethod(component, name) { + if (component.__reactAutoBindMap && component.__reactAutoBindMap.hasOwnProperty(name)) { + // It's a known autobound function, keep it + return false; + } + + if (component.__reactAutoBindPairs && component.__reactAutoBindPairs.indexOf(name) >= 0) { + // It's a known autobound function, keep it + return false; + } + + if (component[name].__reactBoundArguments !== null) { + // It's a function bound to specific args, keep it + return false; + } + + // It's a cached bound method for a function + // that was deleted by user, so we delete it from component. + return true; +} + +function shouldDeleteModernInstanceMethod(component, name) { + var prototype = component.constructor.prototype; + + var prototypeDescriptor = Object.getOwnPropertyDescriptor(prototype, name); + + if (!prototypeDescriptor || !prototypeDescriptor.get) { + // This is definitely not an autobinding getter + return false; + } + + if (prototypeDescriptor.get().length !== component[name].length) { + // The length doesn't match, bail out + return false; + } + + // This seems like a method bound using an autobinding getter on the prototype + // Hopefully we won't run into too many false positives. + return true; +} + +function shouldDeleteInstanceMethod(component, name) { + var descriptor = Object.getOwnPropertyDescriptor(component, name); + if (typeof descriptor.value !== 'function') { + // Not a function, or something fancy: bail out + return; + } + + if (component.__reactAutoBindMap || component.__reactAutoBindPairs) { + // Classic + return shouldDeleteClassicInstanceMethod(component, name); + } else { + // Modern + return shouldDeleteModernInstanceMethod(component, name); + } +} + +/** + * Deletes autobound methods from the instance. + * + * For classic React classes, we only delete the methods that no longer exist in map. + * This means the user actually deleted them in code. + * + * For modern classes, we delete methods that exist on prototype with the same length, + * and which have getters on prototype, but are normal values on the instance. + * This is usually an indication that an autobinding decorator is being used, + * and the getter will re-generate the memoized handler on next access. + */ +function deleteUnknownAutoBindMethods(component) { + var names = Object.getOwnPropertyNames(component); + + names.forEach(function (name) { + if (shouldDeleteInstanceMethod(component, name)) { + delete component[name]; + } + }); +} + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/index.js": +/*!***************************************************!*\ + !*** ./node_modules/react-proxy/modules/index.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _supportsProtoAssignment = __webpack_require__(/*! ./supportsProtoAssignment */ "./node_modules/react-proxy/modules/supportsProtoAssignment.js"); + +var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment); + +var _createClassProxy = __webpack_require__(/*! ./createClassProxy */ "./node_modules/react-proxy/modules/createClassProxy.js"); + +var _createClassProxy2 = _interopRequireDefault(_createClassProxy); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +if (!(0, _supportsProtoAssignment2.default)()) { + console.warn('This JavaScript environment does not support __proto__. ' + 'This means that react-proxy is unable to proxy React components. ' + 'Features that rely on react-proxy, such as react-transform-hmr, ' + 'will not function as expected.'); +} + +exports.default = _createClassProxy2.default; + +/***/ }), + +/***/ "./node_modules/react-proxy/modules/supportsProtoAssignment.js": +/*!*********************************************************************!*\ + !*** ./node_modules/react-proxy/modules/supportsProtoAssignment.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = supportsProtoAssignment; +var x = {}; +var y = { supports: true }; +try { + x.__proto__ = y; +} catch (err) {} + +function supportsProtoAssignment() { + return x.supports || false; +}; + +/***/ }), + +/***/ "./node_modules/react-pure-render/function.js": +/*!****************************************************!*\ + !*** ./node_modules/react-pure-render/function.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports['default'] = shouldPureComponentUpdate; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _shallowEqual = __webpack_require__(/*! ./shallowEqual */ "./node_modules/react-pure-render/shallowEqual.js"); + +var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + +function shouldPureComponentUpdate(nextProps, nextState) { + return !(0, _shallowEqual2['default'])(this.props, nextProps) || !(0, _shallowEqual2['default'])(this.state, nextState); +} + +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/react-pure-render/shallowEqual.js": +/*!********************************************************!*\ + !*** ./node_modules/react-pure-render/shallowEqual.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports['default'] = shallowEqual; + +function shallowEqual(objA, objB) { + if (objA === objB) { + return true; + } + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } + + // Test for A's keys different from B. + var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); + for (var i = 0; i < keysA.length; i++) { + if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { + return false; + } + } + + return true; +} + +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/immutable.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react-redux-loading-bar/build/immutable.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _loading_bar = __webpack_require__(/*! ./loading_bar */ "./node_modules/react-redux-loading-bar/build/loading_bar.js"); + +var _loading_bar_ducks = __webpack_require__(/*! ./loading_bar_ducks */ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var mapImmutableStateToProps = function mapImmutableStateToProps(state, ownProps) { + return { + loading: state.get('loadingBar')[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] + }; +}; + +exports.default = (0, _reactRedux.connect)(mapImmutableStateToProps)(_loading_bar.LoadingBar); + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-redux-loading-bar/build/index.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.showLoading = exports.resetLoading = exports.loadingBarReducer = exports.loadingBarMiddleware = exports.LoadingBar = exports.ImmutableLoadingBar = exports.hideLoading = undefined; + +var _loading_bar = __webpack_require__(/*! ./loading_bar */ "./node_modules/react-redux-loading-bar/build/loading_bar.js"); + +var _loading_bar2 = _interopRequireDefault(_loading_bar); + +var _loading_bar_middleware = __webpack_require__(/*! ./loading_bar_middleware */ "./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js"); + +var _loading_bar_middleware2 = _interopRequireDefault(_loading_bar_middleware); + +var _loading_bar_ducks = __webpack_require__(/*! ./loading_bar_ducks */ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var _immutable = __webpack_require__(/*! ./immutable */ "./node_modules/react-redux-loading-bar/build/immutable.js"); + +var _immutable2 = _interopRequireDefault(_immutable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.hideLoading = _loading_bar_ducks.hideLoading; +exports.ImmutableLoadingBar = _immutable2.default; +exports.LoadingBar = _loading_bar.LoadingBar; +exports.loadingBarMiddleware = _loading_bar_middleware2.default; +exports.loadingBarReducer = _loading_bar_ducks.loadingBarReducer; +exports.resetLoading = _loading_bar_ducks.resetLoading; +exports.showLoading = _loading_bar_ducks.showLoading; +exports.default = _loading_bar2.default; + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-redux-loading-bar/build/loading_bar.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.LoadingBar = exports.TERMINATING_ANIMATION_DURATION = exports.ANIMATION_DURATION = exports.PROGRESS_INCREASE = exports.MAX_PROGRESS = exports.UPDATE_TIME = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _loading_bar_ducks = __webpack_require__(/*! ./loading_bar_ducks */ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var UPDATE_TIME = exports.UPDATE_TIME = 200; +var MAX_PROGRESS = exports.MAX_PROGRESS = 99; +var PROGRESS_INCREASE = exports.PROGRESS_INCREASE = 10; +var ANIMATION_DURATION = exports.ANIMATION_DURATION = UPDATE_TIME * 4; +var TERMINATING_ANIMATION_DURATION = exports.TERMINATING_ANIMATION_DURATION = UPDATE_TIME / 2; + +var initialState = { + percent: 0, + status: 'hidden' +}; + +var LoadingBar = function (_Component) { + _inherits(LoadingBar, _Component); + + function LoadingBar() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, LoadingBar); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LoadingBar.__proto__ || Object.getPrototypeOf(LoadingBar)).call.apply(_ref, [this].concat(args))), _this), _this.state = _extends({}, initialState), _this.reset = function () { + _this.terminatingAnimationTimeoutId = null; + _this.setState(initialState); + }, _this.newPercent = function (percent, progressIncrease) { + // Use cosine as a smoothing function + // It could be any function to slow down progress near the ending 100% + var smoothedProgressIncrease = progressIncrease * Math.cos(percent * (Math.PI / 2 / 100)); + + return percent + smoothedProgressIncrease; + }, _this.simulateProgress = function () { + _this.setState(function (prevState, _ref2) { + var maxProgress = _ref2.maxProgress, + progressIncrease = _ref2.progressIncrease; + var percent = prevState.percent; + + var newPercent = _this.newPercent(percent, progressIncrease); + + if (newPercent <= maxProgress) { + percent = newPercent; + } + + return { percent: percent }; + }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(LoadingBar, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.state.status === 'starting') { + this.start(); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + if (prevState.status !== this.state.status) { + if (this.state.status === 'starting') { + this.start(); + } + + if (this.state.status === 'stopping') { + this.stop(); + } + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearInterval(this.progressIntervalId); + clearTimeout(this.terminatingAnimationTimeoutId); + } + }, { + key: 'start', + value: function start() { + this.progressIntervalId = setInterval(this.simulateProgress, this.props.updateTime); + this.setState({ status: 'running' }); + } + }, { + key: 'stop', + value: function stop() { + clearInterval(this.progressIntervalId); + this.progressIntervalId = null; + + var terminatingAnimationDuration = this.isShown() || this.props.showFastActions ? TERMINATING_ANIMATION_DURATION : 0; + + this.terminatingAnimationTimeoutId = setTimeout(this.reset, terminatingAnimationDuration); + + this.setState({ percent: 100 }); + } + }, { + key: 'isShown', + value: function isShown() { + return this.state.percent > 0 && this.state.percent <= 100; + } + }, { + key: 'buildStyle', + value: function buildStyle() { + var animationDuration = this.state.status === 'stopping' ? TERMINATING_ANIMATION_DURATION : ANIMATION_DURATION; + + var style = { + opacity: '1', + transform: 'scaleX(' + this.state.percent / 100 + ')', + transformOrigin: 'left', + transition: 'transform ' + animationDuration + 'ms linear', + width: '100%', + willChange: 'transform, opacity' + + // Use default styling if there's no CSS class applied + };if (!this.props.className) { + style.height = '3px'; + style.backgroundColor = 'red'; + style.position = 'absolute'; + } + + if (this.isShown()) { + style.opacity = '1'; + } else { + style.opacity = '0'; + } + + return _extends({}, style, this.props.style); + } + }, { + key: 'render', + value: function render() { + if (this.state.status === 'hidden') { + return _react2.default.createElement('div', null); + } + + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement('div', { style: this.buildStyle(), className: this.props.className }), + _react2.default.createElement('div', { style: { display: 'table', clear: 'both' } }) + ); + } + }], [{ + key: 'shouldStart', + value: function shouldStart(props, state) { + return props.loading > 0 && ['hidden', 'stopping'].indexOf(state.status) >= 0; + } + }, { + key: 'shouldStop', + value: function shouldStop(props, state) { + return props.loading === 0 && ['starting', 'running'].indexOf(state.status) >= 0; + } + }, { + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, prevState) { + if (LoadingBar.shouldStart(nextProps, prevState)) { + return { status: 'starting' }; + } + + if (LoadingBar.shouldStop(nextProps, prevState)) { + return { status: 'stopping' }; + } + + return null; + } + }]); + + return LoadingBar; +}(_react.Component); + +LoadingBar.propTypes = { + className: _propTypes.string, + loading: _propTypes.number, + maxProgress: _propTypes.number, + progressIncrease: _propTypes.number, + showFastActions: _propTypes.bool, + updateTime: _propTypes.number, + scope: _propTypes.string, + style: _propTypes.object +}; +LoadingBar.defaultProps = { + className: '', + loading: 0, + maxProgress: MAX_PROGRESS, + progressIncrease: PROGRESS_INCREASE, + showFastActions: false, + style: {}, + updateTime: UPDATE_TIME, + scope: _loading_bar_ducks.DEFAULT_SCOPE +}; + + +var mapStateToProps = function mapStateToProps(state, ownProps) { + return { + loading: state.loadingBar[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE] + }; +}; + +(0, _reactLifecyclesCompat.polyfill)(LoadingBar); +var ConnectedLoadingBar = (0, _reactRedux.connect)(mapStateToProps)(LoadingBar); + +exports.LoadingBar = LoadingBar; +exports.default = ConnectedLoadingBar; + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js": +/*!*************************************************************************!*\ + !*** ./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.showLoading = showLoading; +exports.hideLoading = hideLoading; +exports.resetLoading = resetLoading; +exports.loadingBarReducer = loadingBarReducer; + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +var SHOW = exports.SHOW = 'loading-bar/SHOW'; +var HIDE = exports.HIDE = 'loading-bar/HIDE'; +var RESET = exports.RESET = 'loading-bar/RESET'; + +var DEFAULT_SCOPE = exports.DEFAULT_SCOPE = 'default'; + +function showLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: SHOW, + payload: { + scope: scope + } + }; +} + +function hideLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: HIDE, + payload: { + scope: scope + } + }; +} + +function resetLoading() { + var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE; + + return { + type: RESET, + payload: { + scope: scope + } + }; +} + +function loadingBarReducer() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var _ref = action.payload || {}, + _ref$scope = _ref.scope, + scope = _ref$scope === undefined ? DEFAULT_SCOPE : _ref$scope; + + switch (action.type) { + case SHOW: + return _extends({}, state, _defineProperty({}, scope, (state[scope] || 0) + 1)); + case HIDE: + return _extends({}, state, _defineProperty({}, scope, Math.max(0, (state[scope] || 1) - 1))); + case RESET: + return _extends({}, state, _defineProperty({}, scope, 0)); + default: + return state; + } +} + +/***/ }), + +/***/ "./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js": +/*!******************************************************************************!*\ + !*** ./node_modules/react-redux-loading-bar/build/loading_bar_middleware.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +exports.default = loadingBarMiddleware; + +var _loading_bar_ducks = __webpack_require__(/*! ./loading_bar_ducks */ "./node_modules/react-redux-loading-bar/build/loading_bar_ducks.js"); + +var defaultTypeSuffixes = ['PENDING', 'FULFILLED', 'REJECTED']; + +function loadingBarMiddleware() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var promiseTypeSuffixes = config.promiseTypeSuffixes || defaultTypeSuffixes; + var scope = config.scope || _loading_bar_ducks.DEFAULT_SCOPE; + + return function (_ref) { + var dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type) { + var _promiseTypeSuffixes = _slicedToArray(promiseTypeSuffixes, 3), + PENDING = _promiseTypeSuffixes[0], + FULFILLED = _promiseTypeSuffixes[1], + REJECTED = _promiseTypeSuffixes[2]; + + var isPending = new RegExp(PENDING + '$', 'g'); + var isFulfilled = new RegExp(FULFILLED + '$', 'g'); + var isRejected = new RegExp(REJECTED + '$', 'g'); + + var actionScope = action.meta && action.meta.scope || action.scope || scope; + + if (action.type.match(isPending)) { + dispatch((0, _loading_bar_ducks.showLoading)(actionScope)); + } else if (action.type.match(isFulfilled) || action.type.match(isRejected)) { + dispatch((0, _loading_bar_ducks.hideLoading)(actionScope)); + } + } + + return next(action); + }; + }; + }; +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/components/Provider.js": +/*!************************************************************!*\ + !*** ./node_modules/react-redux/es/components/Provider.js ***! + \************************************************************/ +/*! exports provided: createProvider, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createProvider", function() { return createProvider; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/PropTypes */ "./node_modules/react-redux/es/utils/PropTypes.js"); +/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/warning */ "./node_modules/react-redux/es/utils/warning.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + +var didWarnAboutReceivingStore = false; +function warnAboutReceivingStore() { + if (didWarnAboutReceivingStore) { + return; + } + didWarnAboutReceivingStore = true; + + Object(_utils_warning__WEBPACK_IMPORTED_MODULE_3__["default"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.'); +} + +function createProvider() { + var _Provider$childContex; + + var storeKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'store'; + var subKey = arguments[1]; + + var subscriptionKey = subKey || storeKey + 'Subscription'; + + var Provider = function (_Component) { + _inherits(Provider, _Component); + + Provider.prototype.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[storeKey] = this[storeKey], _ref[subscriptionKey] = null, _ref; + }; + + function Provider(props, context) { + _classCallCheck(this, Provider); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); + + _this[storeKey] = props.store; + return _this; + } + + Provider.prototype.render = function render() { + return react__WEBPACK_IMPORTED_MODULE_0__["Children"].only(this.props.children); + }; + + return Provider; + }(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + + if (true) { + Provider.prototype.componentWillReceiveProps = function (nextProps) { + if (this[storeKey] !== nextProps.store) { + warnAboutReceivingStore(); + } + }; + } + + Provider.propTypes = { + store: _utils_PropTypes__WEBPACK_IMPORTED_MODULE_2__["storeShape"].isRequired, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element.isRequired + }; + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[storeKey] = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_2__["storeShape"].isRequired, _Provider$childContex[subscriptionKey] = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_2__["subscriptionShape"], _Provider$childContex); + + return Provider; +} + +/* harmony default export */ __webpack_exports__["default"] = (createProvider()); + +/***/ }), + +/***/ "./node_modules/react-redux/es/components/connectAdvanced.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-redux/es/components/connectAdvanced.js ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return connectAdvanced; }); +/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"); +/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _utils_Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/Subscription */ "./node_modules/react-redux/es/utils/Subscription.js"); +/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/PropTypes */ "./node_modules/react-redux/es/utils/PropTypes.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + + + + + +var hotReloadingVersion = 0; +var dummyState = {}; +function noop() {} +function makeSelectorStateful(sourceSelector, store) { + // wrap the selector in an object that tracks its results between runs. + var selector = { + run: function runComponentSelector(props) { + try { + var nextProps = sourceSelector(store.getState(), props); + if (nextProps !== selector.props || selector.error) { + selector.shouldComponentUpdate = true; + selector.props = nextProps; + selector.error = null; + } + } catch (error) { + selector.shouldComponentUpdate = true; + selector.error = error; + } + } + }; + + return selector; +} + +function connectAdvanced( +/* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. +*/ +selectorFactory) { + var _contextTypes, _childContextTypes; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$getDisplayName = _ref.getDisplayName, + getDisplayName = _ref$getDisplayName === undefined ? function (name) { + return 'ConnectAdvanced(' + name + ')'; + } : _ref$getDisplayName, + _ref$methodName = _ref.methodName, + methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName, + _ref$renderCountProp = _ref.renderCountProp, + renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp, + _ref$shouldHandleStat = _ref.shouldHandleStateChanges, + shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat, + _ref$storeKey = _ref.storeKey, + storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey, + _ref$withRef = _ref.withRef, + withRef = _ref$withRef === undefined ? false : _ref$withRef, + connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']); + + var subscriptionKey = storeKey + 'Subscription'; + var version = hotReloadingVersion++; + + var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_4__["storeShape"], _contextTypes[subscriptionKey] = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_4__["subscriptionShape"], _contextTypes); + var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_4__["subscriptionShape"], _childContextTypes); + + return function wrapWithConnect(WrappedComponent) { + invariant__WEBPACK_IMPORTED_MODULE_1___default()(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + (methodName + '. Instead received ' + JSON.stringify(WrappedComponent))); + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + + var displayName = getDisplayName(wrappedComponentName); + + var selectorFactoryOptions = _extends({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + withRef: withRef, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); + + var Connect = function (_Component) { + _inherits(Connect, _Component); + + function Connect(props, context) { + _classCallCheck(this, Connect); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); + + _this.version = version; + _this.state = {}; + _this.renderCount = 0; + _this.store = props[storeKey] || context[storeKey]; + _this.propsMode = Boolean(props[storeKey]); + _this.setWrappedInstance = _this.setWrappedInstance.bind(_this); + + invariant__WEBPACK_IMPORTED_MODULE_1___default()(_this.store, 'Could not find "' + storeKey + '" in either the context or props of ' + ('"' + displayName + '". Either wrap the root component in a , ') + ('or explicitly pass "' + storeKey + '" as a prop to "' + displayName + '".')); + + _this.initSelector(); + _this.initSubscription(); + return _this; + } + + Connect.prototype.getChildContext = function getChildContext() { + var _ref2; + + // If this component received store from props, its subscription should be transparent + // to any descendants receiving store+subscription from context; it passes along + // subscription passed to it. Otherwise, it shadows the parent subscription, which allows + // Connect to control ordering of notifications to flow top-down. + var subscription = this.propsMode ? null : this.subscription; + return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2; + }; + + Connect.prototype.componentDidMount = function componentDidMount() { + if (!shouldHandleStateChanges) return; + + // componentWillMount fires during server side rendering, but componentDidMount and + // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount. + // Otherwise, unsubscription would never take place during SSR, causing a memory leak. + // To handle the case where a child component may have triggered a state change by + // dispatching an action in its componentWillMount, we have to re-run the select and maybe + // re-render. + this.subscription.trySubscribe(); + this.selector.run(this.props); + if (this.selector.shouldComponentUpdate) this.forceUpdate(); + }; + + Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + this.selector.run(nextProps); + }; + + Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() { + return this.selector.shouldComponentUpdate; + }; + + Connect.prototype.componentWillUnmount = function componentWillUnmount() { + if (this.subscription) this.subscription.tryUnsubscribe(); + this.subscription = null; + this.notifyNestedSubs = noop; + this.store = null; + this.selector.run = noop; + this.selector.shouldComponentUpdate = false; + }; + + Connect.prototype.getWrappedInstance = function getWrappedInstance() { + invariant__WEBPACK_IMPORTED_MODULE_1___default()(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.')); + return this.wrappedInstance; + }; + + Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) { + this.wrappedInstance = ref; + }; + + Connect.prototype.initSelector = function initSelector() { + var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions); + this.selector = makeSelectorStateful(sourceSelector, this.store); + this.selector.run(this.props); + }; + + Connect.prototype.initSubscription = function initSubscription() { + if (!shouldHandleStateChanges) return; + + // parentSub's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey]; + this.subscription = new _utils_Subscription__WEBPACK_IMPORTED_MODULE_3__["default"](this.store, parentSub, this.onStateChange.bind(this)); + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `this.subscription` will then be null. An + // extra null check every change can be avoided by copying the method onto `this` and then + // replacing it with a no-op on unmount. This can probably be avoided if Subscription's + // listeners logic is changed to not call listeners that have been unsubscribed in the + // middle of the notification loop. + this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription); + }; + + Connect.prototype.onStateChange = function onStateChange() { + this.selector.run(this.props); + + if (!this.selector.shouldComponentUpdate) { + this.notifyNestedSubs(); + } else { + this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate; + this.setState(dummyState); + } + }; + + Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() { + // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it + // needs to notify nested subs. Once called, it unimplements itself until further state + // changes occur. Doing it this way vs having a permanent `componentDidUpdate` that does + // a boolean check every time avoids an extra method call most of the time, resulting + // in some perf boost. + this.componentDidUpdate = undefined; + this.notifyNestedSubs(); + }; + + Connect.prototype.isSubscribed = function isSubscribed() { + return Boolean(this.subscription) && this.subscription.isSubscribed(); + }; + + Connect.prototype.addExtraProps = function addExtraProps(props) { + if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props; + // make a shallow copy so that fields added don't leak to the original selector. + // this is especially important for 'ref' since that's a reference back to the component + // instance. a singleton memoized selector would then be holding a reference to the + // instance, preventing the instance from being garbage collected, and that would be bad + var withExtras = _extends({}, props); + if (withRef) withExtras.ref = this.setWrappedInstance; + if (renderCountProp) withExtras[renderCountProp] = this.renderCount++; + if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription; + return withExtras; + }; + + Connect.prototype.render = function render() { + var selector = this.selector; + selector.shouldComponentUpdate = false; + + if (selector.error) { + throw selector.error; + } else { + return Object(react__WEBPACK_IMPORTED_MODULE_2__["createElement"])(WrappedComponent, this.addExtraProps(selector.props)); + } + }; + + return Connect; + }(react__WEBPACK_IMPORTED_MODULE_2__["Component"]); + + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = displayName; + Connect.childContextTypes = childContextTypes; + Connect.contextTypes = contextTypes; + Connect.propTypes = contextTypes; + + if (true) { + Connect.prototype.componentWillUpdate = function componentWillUpdate() { + var _this2 = this; + + // We are hot reloading! + if (this.version !== version) { + this.version = version; + this.initSelector(); + + // If any connected descendants don't hot reload (and resubscribe in the process), their + // listeners will be lost when we unsubscribe. Unfortunately, by copying over all + // listeners, this does mean that the old versions of connected descendants will still be + // notified of state changes; however, their onStateChange function is a no-op so this + // isn't a huge deal. + var oldListeners = []; + + if (this.subscription) { + oldListeners = this.subscription.listeners.get(); + this.subscription.tryUnsubscribe(); + } + this.initSubscription(); + if (shouldHandleStateChanges) { + this.subscription.trySubscribe(); + oldListeners.forEach(function (listener) { + return _this2.subscription.listeners.subscribe(listener); + }); + } + } + }; + } + + return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default()(Connect, WrappedComponent); + }; +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/connect.js": +/*!********************************************************!*\ + !*** ./node_modules/react-redux/es/connect/connect.js ***! + \********************************************************/ +/*! exports provided: createConnect, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createConnect", function() { return createConnect; }); +/* harmony import */ var _components_connectAdvanced__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/connectAdvanced */ "./node_modules/react-redux/es/components/connectAdvanced.js"); +/* harmony import */ var _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/shallowEqual */ "./node_modules/react-redux/es/utils/shallowEqual.js"); +/* harmony import */ var _mapDispatchToProps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mapDispatchToProps */ "./node_modules/react-redux/es/connect/mapDispatchToProps.js"); +/* harmony import */ var _mapStateToProps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mapStateToProps */ "./node_modules/react-redux/es/connect/mapStateToProps.js"); +/* harmony import */ var _mergeProps__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeProps */ "./node_modules/react-redux/es/connect/mergeProps.js"); +/* harmony import */ var _selectorFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./selectorFactory */ "./node_modules/react-redux/es/connect/selectorFactory.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + + + + + +/* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + +function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.'); + }; +} + +function strictEqual(a, b) { + return a === b; +} + +// createConnect with default args builds the 'official' connect behavior. Calling it with +// different options opens up some testing and extensibility scenarios +function createConnect() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === undefined ? _components_connectAdvanced__WEBPACK_IMPORTED_MODULE_0__["default"] : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? _mapStateToProps__WEBPACK_IMPORTED_MODULE_3__["default"] : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? _mapDispatchToProps__WEBPACK_IMPORTED_MODULE_2__["default"] : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === undefined ? _mergeProps__WEBPACK_IMPORTED_MODULE_4__["default"] : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === undefined ? _selectorFactory__WEBPACK_IMPORTED_MODULE_5__["default"] : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps) { + var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + _ref2$pure = _ref2.pure, + pure = _ref2$pure === undefined ? true : _ref2$pure, + _ref2$areStatesEqual = _ref2.areStatesEqual, + areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual, + _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual, + areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_1__["default"] : _ref2$areOwnPropsEqua, + _ref2$areStatePropsEq = _ref2.areStatePropsEqual, + areStatePropsEqual = _ref2$areStatePropsEq === undefined ? _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_1__["default"] : _ref2$areStatePropsEq, + _ref2$areMergedPropsE = _ref2.areMergedPropsEqual, + areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_1__["default"] : _ref2$areMergedPropsE, + extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']); + + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + + return connectHOC(selectorFactory, _extends({ + // used in error messages + methodName: 'connect', + + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return 'Connect(' + name + ')'; + }, + + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + + }, extraOptions)); + }; +} + +/* harmony default export */ __webpack_exports__["default"] = (createConnect()); + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/mapDispatchToProps.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-redux/es/connect/mapDispatchToProps.js ***! + \*******************************************************************/ +/*! exports provided: whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMapDispatchToPropsIsFunction", function() { return whenMapDispatchToPropsIsFunction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMapDispatchToPropsIsMissing", function() { return whenMapDispatchToPropsIsMissing; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMapDispatchToPropsIsObject", function() { return whenMapDispatchToPropsIsObject; }); +/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"); +/* harmony import */ var _wrapMapToProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wrapMapToProps */ "./node_modules/react-redux/es/connect/wrapMapToProps.js"); + + + +function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? Object(_wrapMapToProps__WEBPACK_IMPORTED_MODULE_1__["wrapMapToPropsFunc"])(mapDispatchToProps, 'mapDispatchToProps') : undefined; +} + +function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? Object(_wrapMapToProps__WEBPACK_IMPORTED_MODULE_1__["wrapMapToPropsConstant"])(function (dispatch) { + return { dispatch: dispatch }; + }) : undefined; +} + +function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? Object(_wrapMapToProps__WEBPACK_IMPORTED_MODULE_1__["wrapMapToPropsConstant"])(function (dispatch) { + return Object(redux__WEBPACK_IMPORTED_MODULE_0__["bindActionCreators"])(mapDispatchToProps, dispatch); + }) : undefined; +} + +/* harmony default export */ __webpack_exports__["default"] = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]); + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/mapStateToProps.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-redux/es/connect/mapStateToProps.js ***! + \****************************************************************/ +/*! exports provided: whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMapStateToPropsIsFunction", function() { return whenMapStateToPropsIsFunction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMapStateToPropsIsMissing", function() { return whenMapStateToPropsIsMissing; }); +/* harmony import */ var _wrapMapToProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wrapMapToProps */ "./node_modules/react-redux/es/connect/wrapMapToProps.js"); + + +function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? Object(_wrapMapToProps__WEBPACK_IMPORTED_MODULE_0__["wrapMapToPropsFunc"])(mapStateToProps, 'mapStateToProps') : undefined; +} + +function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? Object(_wrapMapToProps__WEBPACK_IMPORTED_MODULE_0__["wrapMapToPropsConstant"])(function () { + return {}; + }) : undefined; +} + +/* harmony default export */ __webpack_exports__["default"] = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]); + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/mergeProps.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-redux/es/connect/mergeProps.js ***! + \***********************************************************/ +/*! exports provided: defaultMergeProps, wrapMergePropsFunc, whenMergePropsIsFunction, whenMergePropsIsOmitted, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultMergeProps", function() { return defaultMergeProps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapMergePropsFunc", function() { return wrapMergePropsFunc; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMergePropsIsFunction", function() { return whenMergePropsIsFunction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whenMergePropsIsOmitted", function() { return whenMergePropsIsOmitted; }); +/* harmony import */ var _utils_verifyPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/verifyPlainObject */ "./node_modules/react-redux/es/utils/verifyPlainObject.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + +function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return _extends({}, ownProps, stateProps, dispatchProps); +} + +function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + + var hasRunOnce = false; + var mergedProps = void 0; + + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + + if (true) Object(_utils_verifyPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; +} + +function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; +} + +function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; +} + +/* harmony default export */ __webpack_exports__["default"] = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]); + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/selectorFactory.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-redux/es/connect/selectorFactory.js ***! + \****************************************************************/ +/*! exports provided: impureFinalPropsSelectorFactory, pureFinalPropsSelectorFactory, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "impureFinalPropsSelectorFactory", function() { return impureFinalPropsSelectorFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pureFinalPropsSelectorFactory", function() { return pureFinalPropsSelectorFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return finalPropsSelectorFactory; }); +/* harmony import */ var _verifySubselectors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./verifySubselectors */ "./node_modules/react-redux/es/connect/verifySubselectors.js"); +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + +function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; +} + +function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + + var hasRunAtLeastOnce = false; + var state = void 0; + var ownProps = void 0; + var stateProps = void 0; + var dispatchProps = void 0; + var mergedProps = void 0; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; +} + +// TODO: Add more comments + +// If pure is true, the selector returned by selectorFactory will memoize its results, +// allowing connectAdvanced's shouldComponentUpdate to return false if final +// props have not changed. If false, the selector will always return a new +// object and shouldComponentUpdate will always return true. + +function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']); + + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + if (true) { + Object(_verifySubselectors__WEBPACK_IMPORTED_MODULE_0__["default"])(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/verifySubselectors.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-redux/es/connect/verifySubselectors.js ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return verifySubselectors; }); +/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/warning */ "./node_modules/react-redux/es/utils/warning.js"); + + +function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error('Unexpected value for ' + methodName + ' in ' + displayName + '.'); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!selector.hasOwnProperty('dependsOnOwnProps')) { + Object(_utils_warning__WEBPACK_IMPORTED_MODULE_0__["default"])('The selector for ' + methodName + ' of ' + displayName + ' did not specify a value for dependsOnOwnProps.'); + } + } +} + +function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/connect/wrapMapToProps.js": +/*!***************************************************************!*\ + !*** ./node_modules/react-redux/es/connect/wrapMapToProps.js ***! + \***************************************************************/ +/*! exports provided: wrapMapToPropsConstant, getDependsOnOwnProps, wrapMapToPropsFunc */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapMapToPropsConstant", function() { return wrapMapToPropsConstant; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDependsOnOwnProps", function() { return getDependsOnOwnProps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapMapToPropsFunc", function() { return wrapMapToPropsFunc; }); +/* harmony import */ var _utils_verifyPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/verifyPlainObject */ "./node_modules/react-redux/es/utils/verifyPlainObject.js"); + + +function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; +} + +// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args +// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine +// whether mapToProps needs to be invoked when props have changed. +// +// A length of one signals that mapToProps does not depend on props from the parent component. +// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and +// therefore not reporting its length accurately.. +function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; +} + +// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, +// this function wraps mapToProps in a proxy function which does several things: +// +// * Detects whether the mapToProps function being called depends on props, which +// is used by selectorFactory to decide if it should reinvoke on props changes. +// +// * On first call, handles mapToProps if returns another function, and treats that +// new function as the true mapToProps for subsequent calls. +// +// * On first call, verifies the first result is a plain object, in order to warn +// the developer that their mapToProps function is not returning a valid result. +// +function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; + + // allow detectFactoryAndVerify to get ownProps + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + if (true) Object(_utils_verifyPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(props, displayName, methodName); + + return props; + }; + + return proxy; + }; +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/index.js": +/*!**********************************************!*\ + !*** ./node_modules/react-redux/es/index.js ***! + \**********************************************/ +/*! exports provided: Provider, createProvider, connectAdvanced, connect */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _components_Provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/Provider */ "./node_modules/react-redux/es/components/Provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Provider", function() { return _components_Provider__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createProvider", function() { return _components_Provider__WEBPACK_IMPORTED_MODULE_0__["createProvider"]; }); + +/* harmony import */ var _components_connectAdvanced__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/connectAdvanced */ "./node_modules/react-redux/es/components/connectAdvanced.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "connectAdvanced", function() { return _components_connectAdvanced__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _connect_connect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./connect/connect */ "./node_modules/react-redux/es/connect/connect.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "connect", function() { return _connect_connect__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + + + + + + + +/***/ }), + +/***/ "./node_modules/react-redux/es/utils/PropTypes.js": +/*!********************************************************!*\ + !*** ./node_modules/react-redux/es/utils/PropTypes.js ***! + \********************************************************/ +/*! exports provided: subscriptionShape, storeShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscriptionShape", function() { return subscriptionShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storeShape", function() { return storeShape; }); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__); + + +var subscriptionShape = prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({ + trySubscribe: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired, + tryUnsubscribe: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired, + notifyNestedSubs: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired, + isSubscribed: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired +}); + +var storeShape = prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({ + subscribe: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired, + dispatch: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired, + getState: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func.isRequired +}); + +/***/ }), + +/***/ "./node_modules/react-redux/es/utils/Subscription.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-redux/es/utils/Subscription.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Subscription; }); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// encapsulates the subscription logic for connecting a component to the redux store, as +// well as nesting subscriptions of descendant components, so that we can ensure the +// ancestor components re-render before descendants + +var CLEARED = null; +var nullListeners = { + notify: function notify() {} +}; + +function createListenerCollection() { + // the current/next pattern is copied from redux's createStore code. + // TODO: refactor+expose that code to be reusable here? + var current = []; + var next = []; + + return { + clear: function clear() { + next = CLEARED; + current = CLEARED; + }, + notify: function notify() { + var listeners = current = next; + for (var i = 0; i < listeners.length; i++) { + listeners[i](); + } + }, + get: function get() { + return next; + }, + subscribe: function subscribe(listener) { + var isSubscribed = true; + if (next === current) next = current.slice(); + next.push(listener); + + return function unsubscribe() { + if (!isSubscribed || current === CLEARED) return; + isSubscribed = false; + + if (next === current) next = current.slice(); + next.splice(next.indexOf(listener), 1); + }; + } + }; +} + +var Subscription = function () { + function Subscription(store, parentSub, onStateChange) { + _classCallCheck(this, Subscription); + + this.store = store; + this.parentSub = parentSub; + this.onStateChange = onStateChange; + this.unsubscribe = null; + this.listeners = nullListeners; + } + + Subscription.prototype.addNestedSub = function addNestedSub(listener) { + this.trySubscribe(); + return this.listeners.subscribe(listener); + }; + + Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() { + this.listeners.notify(); + }; + + Subscription.prototype.isSubscribed = function isSubscribed() { + return Boolean(this.unsubscribe); + }; + + Subscription.prototype.trySubscribe = function trySubscribe() { + if (!this.unsubscribe) { + this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange); + + this.listeners = createListenerCollection(); + } + }; + + Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() { + if (this.unsubscribe) { + this.unsubscribe(); + this.unsubscribe = null; + this.listeners.clear(); + this.listeners = nullListeners; + } + }; + + return Subscription; +}(); + + + +/***/ }), + +/***/ "./node_modules/react-redux/es/utils/shallowEqual.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-redux/es/utils/shallowEqual.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return shallowEqual; }); +var hasOwn = Object.prototype.hasOwnProperty; + +function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +function shallowEqual(objA, objB) { + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) return false; + + for (var i = 0; i < keysA.length; i++) { + if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/utils/verifyPlainObject.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-redux/es/utils/verifyPlainObject.js ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return verifyPlainObject; }); +/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es/isPlainObject */ "./node_modules/lodash-es/isPlainObject.js"); +/* harmony import */ var _warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./warning */ "./node_modules/react-redux/es/utils/warning.js"); + + + +function verifyPlainObject(value, displayName, methodName) { + if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(value)) { + Object(_warning__WEBPACK_IMPORTED_MODULE_1__["default"])(methodName + '() in ' + displayName + ' must return a plain object. Instead received ' + value + '.'); + } +} + +/***/ }), + +/***/ "./node_modules/react-redux/es/utils/warning.js": +/*!******************************************************!*\ + !*** ./node_modules/react-redux/es/utils/warning.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ +} + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/BrowserRouter.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-router-dom/es/BrowserRouter.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +/* harmony import */ var _Router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + +/** + * The public API for a that uses HTML5 history. + */ + +var BrowserRouter = function (_React$Component) { + _inherits(BrowserRouter, _React$Component); + + function BrowserRouter() { + var _temp, _this, _ret; + + _classCallCheck(this, BrowserRouter); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createBrowserHistory"])(_this.props), _temp), _possibleConstructorReturn(_this, _ret); + } + + BrowserRouter.prototype.componentWillMount = function componentWillMount() { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`."); + }; + + BrowserRouter.prototype.render = function render() { + return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Router__WEBPACK_IMPORTED_MODULE_4__["default"], { history: this.history, children: this.props.children }); + }; + + return BrowserRouter; +}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component); + +BrowserRouter.propTypes = { + basename: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, + forceRefresh: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool, + getUserConfirmation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func, + keyLength: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number, + children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node +}; + + +/* harmony default export */ __webpack_exports__["default"] = (BrowserRouter); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/HashRouter.js": +/*!********************************************************!*\ + !*** ./node_modules/react-router-dom/es/HashRouter.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +/* harmony import */ var _Router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + +/** + * The public API for a that uses window.location.hash. + */ + +var HashRouter = function (_React$Component) { + _inherits(HashRouter, _React$Component); + + function HashRouter() { + var _temp, _this, _ret; + + _classCallCheck(this, HashRouter); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createHashHistory"])(_this.props), _temp), _possibleConstructorReturn(_this, _ret); + } + + HashRouter.prototype.componentWillMount = function componentWillMount() { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`."); + }; + + HashRouter.prototype.render = function render() { + return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Router__WEBPACK_IMPORTED_MODULE_4__["default"], { history: this.history, children: this.props.children }); + }; + + return HashRouter; +}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component); + +HashRouter.propTypes = { + basename: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, + getUserConfirmation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func, + hashType: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf(["hashbang", "noslash", "slash"]), + children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node +}; + + +/* harmony default export */ __webpack_exports__["default"] = (HashRouter); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Link.js": +/*!**************************************************!*\ + !*** ./node_modules/react-router-dom/es/Link.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + +var isModifiedEvent = function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); +}; + +/** + * The public API for rendering a history-aware . + */ + +var Link = function (_React$Component) { + _inherits(Link, _React$Component); + + function Link() { + var _temp, _this, _ret; + + _classCallCheck(this, Link); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) { + if (_this.props.onClick) _this.props.onClick(event); + + if (!event.defaultPrevented && // onClick prevented default + event.button === 0 && // ignore everything but left clicks + !_this.props.target && // let browser handle "target=_blank" etc. + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + + var history = _this.context.router.history; + var _this$props = _this.props, + replace = _this$props.replace, + to = _this$props.to; + + + if (replace) { + history.replace(to); + } else { + history.push(to); + } + } + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + Link.prototype.render = function render() { + var _props = this.props, + replace = _props.replace, + to = _props.to, + innerRef = _props.innerRef, + props = _objectWithoutProperties(_props, ["replace", "to", "innerRef"]); // eslint-disable-line no-unused-vars + + invariant__WEBPACK_IMPORTED_MODULE_2___default()(this.context.router, "You should not use outside a "); + + invariant__WEBPACK_IMPORTED_MODULE_2___default()(to !== undefined, 'You must specify the "to" property'); + + var history = this.context.router.history; + + var location = typeof to === "string" ? Object(history__WEBPACK_IMPORTED_MODULE_3__["createLocation"])(to, null, null, history.location) : to; + + var href = history.createHref(location); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef })); + }; + + return Link; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Link.propTypes = { + onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + replace: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + to: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object]).isRequired, + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; +Link.defaultProps = { + replace: false +}; +Link.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + history: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + push: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + replace: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + createHref: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired + }).isRequired + }).isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Link); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/MemoryRouter.js": +/*!**********************************************************!*\ + !*** ./node_modules/react-router-dom/es/MemoryRouter.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_MemoryRouter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/MemoryRouter */ "./node_modules/react-router/es/MemoryRouter.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_MemoryRouter__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/NavLink.js": +/*!*****************************************************!*\ + !*** ./node_modules/react-router-dom/es/NavLink.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _Route__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router-dom/es/Route.js"); +/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Link */ "./node_modules/react-router-dom/es/Link.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + + + +/** + * A wrapper that knows if it's "active" or not. + */ +var NavLink = function NavLink(_ref) { + var to = _ref.to, + exact = _ref.exact, + strict = _ref.strict, + location = _ref.location, + activeClassName = _ref.activeClassName, + className = _ref.className, + activeStyle = _ref.activeStyle, + style = _ref.style, + getIsActive = _ref.isActive, + ariaCurrent = _ref["aria-current"], + rest = _objectWithoutProperties(_ref, ["to", "exact", "strict", "location", "activeClassName", "className", "activeStyle", "style", "isActive", "aria-current"]); + + var path = (typeof to === "undefined" ? "undefined" : _typeof(to)) === "object" ? to.pathname : to; + + // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 + var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Route__WEBPACK_IMPORTED_MODULE_2__["default"], { + path: escapedPath, + exact: exact, + strict: strict, + location: location, + children: function children(_ref2) { + var location = _ref2.location, + match = _ref2.match; + + var isActive = !!(getIsActive ? getIsActive(match, location) : match); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Link__WEBPACK_IMPORTED_MODULE_3__["default"], _extends({ + to: to, + className: isActive ? [className, activeClassName].filter(function (i) { + return i; + }).join(" ") : className, + style: isActive ? _extends({}, style, activeStyle) : style, + "aria-current": isActive && ariaCurrent || null + }, rest)); + } + }); +}; + +NavLink.propTypes = { + to: _Link__WEBPACK_IMPORTED_MODULE_3__["default"].propTypes.to, + exact: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + strict: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + location: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + activeClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + activeStyle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + style: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + isActive: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + "aria-current": prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(["page", "step", "location", "date", "time", "true"]) +}; + +NavLink.defaultProps = { + activeClassName: "active", + "aria-current": "page" +}; + +/* harmony default export */ __webpack_exports__["default"] = (NavLink); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Prompt.js": +/*!****************************************************!*\ + !*** ./node_modules/react-router-dom/es/Prompt.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_Prompt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/Prompt */ "./node_modules/react-router/es/Prompt.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_Prompt__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Redirect.js": +/*!******************************************************!*\ + !*** ./node_modules/react-router-dom/es/Redirect.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_Redirect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/Redirect */ "./node_modules/react-router/es/Redirect.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_Redirect__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Route.js": +/*!***************************************************!*\ + !*** ./node_modules/react-router-dom/es/Route.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_Route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/Route */ "./node_modules/react-router/es/Route.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_Route__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Router.js": +/*!****************************************************!*\ + !*** ./node_modules/react-router-dom/es/Router.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_Router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/Router */ "./node_modules/react-router/es/Router.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_Router__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/StaticRouter.js": +/*!**********************************************************!*\ + !*** ./node_modules/react-router-dom/es/StaticRouter.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_StaticRouter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/StaticRouter */ "./node_modules/react-router/es/StaticRouter.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_StaticRouter__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/Switch.js": +/*!****************************************************!*\ + !*** ./node_modules/react-router-dom/es/Switch.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_Switch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/Switch */ "./node_modules/react-router/es/Switch.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_Switch__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/generatePath.js": +/*!**********************************************************!*\ + !*** ./node_modules/react-router-dom/es/generatePath.js ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_generatePath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/generatePath */ "./node_modules/react-router/es/generatePath.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_generatePath__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/index.js": +/*!***************************************************!*\ + !*** ./node_modules/react-router-dom/es/index.js ***! + \***************************************************/ +/*! exports provided: BrowserRouter, HashRouter, Link, MemoryRouter, NavLink, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, withRouter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _BrowserRouter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BrowserRouter */ "./node_modules/react-router-dom/es/BrowserRouter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BrowserRouter", function() { return _BrowserRouter__WEBPACK_IMPORTED_MODULE_0__["default"]; }); + +/* harmony import */ var _HashRouter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./HashRouter */ "./node_modules/react-router-dom/es/HashRouter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HashRouter", function() { return _HashRouter__WEBPACK_IMPORTED_MODULE_1__["default"]; }); + +/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Link */ "./node_modules/react-router-dom/es/Link.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Link", function() { return _Link__WEBPACK_IMPORTED_MODULE_2__["default"]; }); + +/* harmony import */ var _MemoryRouter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MemoryRouter */ "./node_modules/react-router-dom/es/MemoryRouter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemoryRouter", function() { return _MemoryRouter__WEBPACK_IMPORTED_MODULE_3__["default"]; }); + +/* harmony import */ var _NavLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NavLink */ "./node_modules/react-router-dom/es/NavLink.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavLink", function() { return _NavLink__WEBPACK_IMPORTED_MODULE_4__["default"]; }); + +/* harmony import */ var _Prompt__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Prompt */ "./node_modules/react-router-dom/es/Prompt.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Prompt", function() { return _Prompt__WEBPACK_IMPORTED_MODULE_5__["default"]; }); + +/* harmony import */ var _Redirect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Redirect */ "./node_modules/react-router-dom/es/Redirect.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Redirect", function() { return _Redirect__WEBPACK_IMPORTED_MODULE_6__["default"]; }); + +/* harmony import */ var _Route__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router-dom/es/Route.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Route", function() { return _Route__WEBPACK_IMPORTED_MODULE_7__["default"]; }); + +/* harmony import */ var _Router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Router", function() { return _Router__WEBPACK_IMPORTED_MODULE_8__["default"]; }); + +/* harmony import */ var _StaticRouter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./StaticRouter */ "./node_modules/react-router-dom/es/StaticRouter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StaticRouter", function() { return _StaticRouter__WEBPACK_IMPORTED_MODULE_9__["default"]; }); + +/* harmony import */ var _Switch__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Switch */ "./node_modules/react-router-dom/es/Switch.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return _Switch__WEBPACK_IMPORTED_MODULE_10__["default"]; }); + +/* harmony import */ var _generatePath__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./generatePath */ "./node_modules/react-router-dom/es/generatePath.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generatePath", function() { return _generatePath__WEBPACK_IMPORTED_MODULE_11__["default"]; }); + +/* harmony import */ var _matchPath__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router-dom/es/matchPath.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matchPath", function() { return _matchPath__WEBPACK_IMPORTED_MODULE_12__["default"]; }); + +/* harmony import */ var _withRouter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./withRouter */ "./node_modules/react-router-dom/es/withRouter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withRouter", function() { return _withRouter__WEBPACK_IMPORTED_MODULE_13__["default"]; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/matchPath.js": +/*!*******************************************************!*\ + !*** ./node_modules/react-router-dom/es/matchPath.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_matchPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/matchPath */ "./node_modules/react-router/es/matchPath.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_matchPath__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router-dom/es/withRouter.js": +/*!********************************************************!*\ + !*** ./node_modules/react-router-dom/es/withRouter.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_router_es_withRouter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router/es/withRouter */ "./node_modules/react-router/es/withRouter.js"); +// Written in this round about way for babel-transform-imports + + +/* harmony default export */ __webpack_exports__["default"] = (react_router_es_withRouter__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/react-router/es/MemoryRouter.js": +/*!******************************************************!*\ + !*** ./node_modules/react-router/es/MemoryRouter.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +/* harmony import */ var _Router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router/es/Router.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + +/** + * The public API for a that stores location in memory. + */ + +var MemoryRouter = function (_React$Component) { + _inherits(MemoryRouter, _React$Component); + + function MemoryRouter() { + var _temp, _this, _ret; + + _classCallCheck(this, MemoryRouter); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = Object(history__WEBPACK_IMPORTED_MODULE_3__["createMemoryHistory"])(_this.props), _temp), _possibleConstructorReturn(_this, _ret); + } + + MemoryRouter.prototype.componentWillMount = function componentWillMount() { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`."); + }; + + MemoryRouter.prototype.render = function render() { + return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Router__WEBPACK_IMPORTED_MODULE_4__["default"], { history: this.history, children: this.props.children }); + }; + + return MemoryRouter; +}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component); + +MemoryRouter.propTypes = { + initialEntries: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array, + initialIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number, + getUserConfirmation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func, + keyLength: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number, + children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node +}; + + +/* harmony default export */ __webpack_exports__["default"] = (MemoryRouter); + +/***/ }), + +/***/ "./node_modules/react-router/es/Prompt.js": +/*!************************************************!*\ + !*** ./node_modules/react-router/es/Prompt.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_2__); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + +/** + * The public API for prompting the user before navigating away + * from a screen with a component. + */ + +var Prompt = function (_React$Component) { + _inherits(Prompt, _React$Component); + + function Prompt() { + _classCallCheck(this, Prompt); + + return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); + } + + Prompt.prototype.enable = function enable(message) { + if (this.unblock) this.unblock(); + + this.unblock = this.context.router.history.block(message); + }; + + Prompt.prototype.disable = function disable() { + if (this.unblock) { + this.unblock(); + this.unblock = null; + } + }; + + Prompt.prototype.componentWillMount = function componentWillMount() { + invariant__WEBPACK_IMPORTED_MODULE_2___default()(this.context.router, "You should not use outside a "); + + if (this.props.when) this.enable(this.props.message); + }; + + Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (nextProps.when) { + if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message); + } else { + this.disable(); + } + }; + + Prompt.prototype.componentWillUnmount = function componentWillUnmount() { + this.disable(); + }; + + Prompt.prototype.render = function render() { + return null; + }; + + return Prompt; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Prompt.propTypes = { + when: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + message: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]).isRequired +}; +Prompt.defaultProps = { + when: true +}; +Prompt.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + history: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + block: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired + }).isRequired + }).isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Prompt); + +/***/ }), + +/***/ "./node_modules/react-router/es/Redirect.js": +/*!**************************************************!*\ + !*** ./node_modules/react-router/es/Redirect.js ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +/* harmony import */ var _generatePath__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./generatePath */ "./node_modules/react-router/es/generatePath.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + + +/** + * The public API for updating the location programmatically + * with a component. + */ + +var Redirect = function (_React$Component) { + _inherits(Redirect, _React$Component); + + function Redirect() { + _classCallCheck(this, Redirect); + + return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); + } + + Redirect.prototype.isStatic = function isStatic() { + return this.context.router && this.context.router.staticContext; + }; + + Redirect.prototype.componentWillMount = function componentWillMount() { + invariant__WEBPACK_IMPORTED_MODULE_3___default()(this.context.router, "You should not use outside a "); + + if (this.isStatic()) this.perform(); + }; + + Redirect.prototype.componentDidMount = function componentDidMount() { + if (!this.isStatic()) this.perform(); + }; + + Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { + var prevTo = Object(history__WEBPACK_IMPORTED_MODULE_4__["createLocation"])(prevProps.to); + var nextTo = Object(history__WEBPACK_IMPORTED_MODULE_4__["createLocation"])(this.props.to); + + if (Object(history__WEBPACK_IMPORTED_MODULE_4__["locationsAreEqual"])(prevTo, nextTo)) { + warning__WEBPACK_IMPORTED_MODULE_2___default()(false, "You tried to redirect to the same route you're currently on: " + ("\"" + nextTo.pathname + nextTo.search + "\"")); + return; + } + + this.perform(); + }; + + Redirect.prototype.computeTo = function computeTo(_ref) { + var computedMatch = _ref.computedMatch, + to = _ref.to; + + if (computedMatch) { + if (typeof to === "string") { + return Object(_generatePath__WEBPACK_IMPORTED_MODULE_5__["default"])(to, computedMatch.params); + } else { + return _extends({}, to, { + pathname: Object(_generatePath__WEBPACK_IMPORTED_MODULE_5__["default"])(to.pathname, computedMatch.params) + }); + } + } + + return to; + }; + + Redirect.prototype.perform = function perform() { + var history = this.context.router.history; + var push = this.props.push; + + var to = this.computeTo(this.props); + + if (push) { + history.push(to); + } else { + history.replace(to); + } + }; + + Redirect.prototype.render = function render() { + return null; + }; + + return Redirect; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Redirect.propTypes = { + computedMatch: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, // private, from + push: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + from: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + to: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object]).isRequired +}; +Redirect.defaultProps = { + push: false +}; +Redirect.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + history: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + push: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + replace: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired + }).isRequired, + staticContext: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object + }).isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Redirect); + +/***/ }), + +/***/ "./node_modules/react-router/es/Route.js": +/*!***********************************************!*\ + !*** ./node_modules/react-router/es/Route.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _matchPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router/es/matchPath.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + +var isEmptyChildren = function isEmptyChildren(children) { + return react__WEBPACK_IMPORTED_MODULE_2___default.a.Children.count(children) === 0; +}; + +/** + * The public API for matching a single path and rendering. + */ + +var Route = function (_React$Component) { + _inherits(Route, _React$Component); + + function Route() { + var _temp, _this, _ret; + + _classCallCheck(this, Route); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { + match: _this.computeMatch(_this.props, _this.context.router) + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + Route.prototype.getChildContext = function getChildContext() { + return { + router: _extends({}, this.context.router, { + route: { + location: this.props.location || this.context.router.route.location, + match: this.state.match + } + }) + }; + }; + + Route.prototype.computeMatch = function computeMatch(_ref, router) { + var computedMatch = _ref.computedMatch, + location = _ref.location, + path = _ref.path, + strict = _ref.strict, + exact = _ref.exact, + sensitive = _ref.sensitive; + + if (computedMatch) return computedMatch; // already computed the match for us + + invariant__WEBPACK_IMPORTED_MODULE_1___default()(router, "You should not use or withRouter() outside a "); + + var route = router.route; + + var pathname = (location || route.location).pathname; + + return Object(_matchPath__WEBPACK_IMPORTED_MODULE_4__["default"])(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }, route.match); + }; + + Route.prototype.componentWillMount = function componentWillMount() { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored"); + + warning__WEBPACK_IMPORTED_MODULE_0___default()(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), "You should not use and in the same route; will be ignored"); + + warning__WEBPACK_IMPORTED_MODULE_0___default()(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), "You should not use and in the same route; will be ignored"); + }; + + Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'); + + warning__WEBPACK_IMPORTED_MODULE_0___default()(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'); + + this.setState({ + match: this.computeMatch(nextProps, nextContext.router) + }); + }; + + Route.prototype.render = function render() { + var match = this.state.match; + var _props = this.props, + children = _props.children, + component = _props.component, + render = _props.render; + var _context$router = this.context.router, + history = _context$router.history, + route = _context$router.route, + staticContext = _context$router.staticContext; + + var location = this.props.location || route.location; + var props = { match: match, location: location, history: history, staticContext: staticContext }; + + if (component) return match ? react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(component, props) : null; + + if (render) return match ? render(props) : null; + + if (typeof children === "function") return children(props); + + if (children && !isEmptyChildren(children)) return react__WEBPACK_IMPORTED_MODULE_2___default.a.Children.only(children); + + return null; + }; + + return Route; +}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component); + +Route.propTypes = { + computedMatch: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object, // private, from + path: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, + exact: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool, + strict: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool, + sensitive: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool, + component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func, + render: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func, + children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node]), + location: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object +}; +Route.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({ + history: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired, + route: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired, + staticContext: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object + }) +}; +Route.childContextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Route); + +/***/ }), + +/***/ "./node_modules/react-router/es/Router.js": +/*!************************************************!*\ + !*** ./node_modules/react-router/es/Router.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + +/** + * The public API for putting history on context. + */ + +var Router = function (_React$Component) { + _inherits(Router, _React$Component); + + function Router() { + var _temp, _this, _ret; + + _classCallCheck(this, Router); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { + match: _this.computeMatch(_this.props.history.location.pathname) + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + Router.prototype.getChildContext = function getChildContext() { + return { + router: _extends({}, this.context.router, { + history: this.props.history, + route: { + location: this.props.history.location, + match: this.state.match + } + }) + }; + }; + + Router.prototype.computeMatch = function computeMatch(pathname) { + return { + path: "/", + url: "/", + params: {}, + isExact: pathname === "/" + }; + }; + + Router.prototype.componentWillMount = function componentWillMount() { + var _this2 = this; + + var _props = this.props, + children = _props.children, + history = _props.history; + + + invariant__WEBPACK_IMPORTED_MODULE_1___default()(children == null || react__WEBPACK_IMPORTED_MODULE_2___default.a.Children.count(children) === 1, "A may have only one child element"); + + // Do this here so we can setState when a changes the + // location in componentWillMount. This happens e.g. when doing + // server rendering using a . + this.unlisten = history.listen(function () { + _this2.setState({ + match: _this2.computeMatch(history.location.pathname) + }); + }); + }; + + Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + warning__WEBPACK_IMPORTED_MODULE_0___default()(this.props.history === nextProps.history, "You cannot change "); + }; + + Router.prototype.componentWillUnmount = function componentWillUnmount() { + this.unlisten(); + }; + + Router.prototype.render = function render() { + var children = this.props.children; + + return children ? react__WEBPACK_IMPORTED_MODULE_2___default.a.Children.only(children) : null; + }; + + return Router; +}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component); + +Router.propTypes = { + history: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired, + children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node +}; +Router.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object +}; +Router.childContextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Router); + +/***/ }), + +/***/ "./node_modules/react-router/es/StaticRouter.js": +/*!******************************************************!*\ + !*** ./node_modules/react-router/es/StaticRouter.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js"); +/* harmony import */ var _Router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router/es/Router.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + + +var addLeadingSlash = function addLeadingSlash(path) { + return path.charAt(0) === "/" ? path : "/" + path; +}; + +var addBasename = function addBasename(basename, location) { + if (!basename) return location; + + return _extends({}, location, { + pathname: addLeadingSlash(basename) + location.pathname + }); +}; + +var stripBasename = function stripBasename(basename, location) { + if (!basename) return location; + + var base = addLeadingSlash(basename); + + if (location.pathname.indexOf(base) !== 0) return location; + + return _extends({}, location, { + pathname: location.pathname.substr(base.length) + }); +}; + +var createURL = function createURL(location) { + return typeof location === "string" ? location : Object(history__WEBPACK_IMPORTED_MODULE_4__["createPath"])(location); +}; + +var staticHandler = function staticHandler(methodName) { + return function () { + invariant__WEBPACK_IMPORTED_MODULE_1___default()(false, "You cannot %s with ", methodName); + }; +}; + +var noop = function noop() {}; + +/** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ + +var StaticRouter = function (_React$Component) { + _inherits(StaticRouter, _React$Component); + + function StaticRouter() { + var _temp, _this, _ret; + + _classCallCheck(this, StaticRouter); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) { + return addLeadingSlash(_this.props.basename + createURL(path)); + }, _this.handlePush = function (location) { + var _this$props = _this.props, + basename = _this$props.basename, + context = _this$props.context; + + context.action = "PUSH"; + context.location = addBasename(basename, Object(history__WEBPACK_IMPORTED_MODULE_4__["createLocation"])(location)); + context.url = createURL(context.location); + }, _this.handleReplace = function (location) { + var _this$props2 = _this.props, + basename = _this$props2.basename, + context = _this$props2.context; + + context.action = "REPLACE"; + context.location = addBasename(basename, Object(history__WEBPACK_IMPORTED_MODULE_4__["createLocation"])(location)); + context.url = createURL(context.location); + }, _this.handleListen = function () { + return noop; + }, _this.handleBlock = function () { + return noop; + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + StaticRouter.prototype.getChildContext = function getChildContext() { + return { + router: { + staticContext: this.props.context + } + }; + }; + + StaticRouter.prototype.componentWillMount = function componentWillMount() { + warning__WEBPACK_IMPORTED_MODULE_0___default()(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`."); + }; + + StaticRouter.prototype.render = function render() { + var _props = this.props, + basename = _props.basename, + context = _props.context, + location = _props.location, + props = _objectWithoutProperties(_props, ["basename", "context", "location"]); + + var history = { + createHref: this.createHref, + action: "POP", + location: stripBasename(basename, Object(history__WEBPACK_IMPORTED_MODULE_4__["createLocation"])(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler("go"), + goBack: staticHandler("goBack"), + goForward: staticHandler("goForward"), + listen: this.handleListen, + block: this.handleBlock + }; + + return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_Router__WEBPACK_IMPORTED_MODULE_5__["default"], _extends({}, props, { history: history })); + }; + + return StaticRouter; +}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component); + +StaticRouter.propTypes = { + basename: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, + context: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired, + location: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object]) +}; +StaticRouter.defaultProps = { + basename: "", + location: "/" +}; +StaticRouter.childContextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired +}; + + +/* harmony default export */ __webpack_exports__["default"] = (StaticRouter); + +/***/ }), + +/***/ "./node_modules/react-router/es/Switch.js": +/*!************************************************!*\ + !*** ./node_modules/react-router/es/Switch.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! warning */ "./node_modules/warning/warning.js"); +/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js"); +/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _matchPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router/es/matchPath.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + + + + + + +/** + * The public API for rendering the first that matches. + */ + +var Switch = function (_React$Component) { + _inherits(Switch, _React$Component); + + function Switch() { + _classCallCheck(this, Switch); + + return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); + } + + Switch.prototype.componentWillMount = function componentWillMount() { + invariant__WEBPACK_IMPORTED_MODULE_3___default()(this.context.router, "You should not use outside a "); + }; + + Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + warning__WEBPACK_IMPORTED_MODULE_2___default()(!(nextProps.location && !this.props.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'); + + warning__WEBPACK_IMPORTED_MODULE_2___default()(!(!nextProps.location && this.props.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'); + }; + + Switch.prototype.render = function render() { + var route = this.context.router.route; + var children = this.props.children; + + var location = this.props.location || route.location; + + var match = void 0, + child = void 0; + react__WEBPACK_IMPORTED_MODULE_0___default.a.Children.forEach(children, function (element) { + if (match == null && react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(element)) { + var _element$props = element.props, + pathProp = _element$props.path, + exact = _element$props.exact, + strict = _element$props.strict, + sensitive = _element$props.sensitive, + from = _element$props.from; + + var path = pathProp || from; + + child = element; + match = Object(_matchPath__WEBPACK_IMPORTED_MODULE_4__["default"])(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }, route.match); + } + }); + + return match ? react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(child, { location: location, computedMatch: match }) : null; + }; + + return Switch; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Switch.contextTypes = { + router: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + route: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired + }).isRequired +}; +Switch.propTypes = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + location: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + + +/* harmony default export */ __webpack_exports__["default"] = (Switch); + +/***/ }), + +/***/ "./node_modules/react-router/es/generatePath.js": +/*!******************************************************!*\ + !*** ./node_modules/react-router/es/generatePath.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-to-regexp */ "./node_modules/path-to-regexp/index.js"); +/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_to_regexp__WEBPACK_IMPORTED_MODULE_0__); + + +var patternCache = {}; +var cacheLimit = 10000; +var cacheCount = 0; + +var compileGenerator = function compileGenerator(pattern) { + var cacheKey = pattern; + var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {}); + + if (cache[pattern]) return cache[pattern]; + + var compiledGenerator = path_to_regexp__WEBPACK_IMPORTED_MODULE_0___default.a.compile(pattern); + + if (cacheCount < cacheLimit) { + cache[pattern] = compiledGenerator; + cacheCount++; + } + + return compiledGenerator; +}; + +/** + * Public API for generating a URL pathname from a pattern and parameters. + */ +var generatePath = function generatePath() { + var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "/"; + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (pattern === "/") { + return pattern; + } + var generator = compileGenerator(pattern); + return generator(params, { pretty: true }); +}; + +/* harmony default export */ __webpack_exports__["default"] = (generatePath); + +/***/ }), + +/***/ "./node_modules/react-router/es/matchPath.js": +/*!***************************************************!*\ + !*** ./node_modules/react-router/es/matchPath.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-to-regexp */ "./node_modules/path-to-regexp/index.js"); +/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_to_regexp__WEBPACK_IMPORTED_MODULE_0__); + + +var patternCache = {}; +var cacheLimit = 10000; +var cacheCount = 0; + +var compilePath = function compilePath(pattern, options) { + var cacheKey = "" + options.end + options.strict + options.sensitive; + var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {}); + + if (cache[pattern]) return cache[pattern]; + + var keys = []; + var re = path_to_regexp__WEBPACK_IMPORTED_MODULE_0___default()(pattern, keys, options); + var compiledPattern = { re: re, keys: keys }; + + if (cacheCount < cacheLimit) { + cache[pattern] = compiledPattern; + cacheCount++; + } + + return compiledPattern; +}; + +/** + * Public API for matching a URL pathname to a path pattern. + */ +var matchPath = function matchPath(pathname) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var parent = arguments[2]; + + if (typeof options === "string") options = { path: options }; + + var _options = options, + path = _options.path, + _options$exact = _options.exact, + exact = _options$exact === undefined ? false : _options$exact, + _options$strict = _options.strict, + strict = _options$strict === undefined ? false : _options$strict, + _options$sensitive = _options.sensitive, + sensitive = _options$sensitive === undefined ? false : _options$sensitive; + + + if (path == null) return parent; + + var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }), + re = _compilePath.re, + keys = _compilePath.keys; + + var match = re.exec(pathname); + + if (!match) return null; + + var url = match[0], + values = match.slice(1); + + var isExact = pathname === url; + + if (exact && !isExact) return null; + + return { + path: path, // the path pattern used to match + url: path === "/" && url === "" ? "/" : url, // the matched portion of the URL + isExact: isExact, // whether or not we matched exactly + params: keys.reduce(function (memo, key, index) { + memo[key.name] = values[index]; + return memo; + }, {}) + }; +}; + +/* harmony default export */ __webpack_exports__["default"] = (matchPath); + +/***/ }), + +/***/ "./node_modules/react-router/es/withRouter.js": +/*!****************************************************!*\ + !*** ./node_modules/react-router/es/withRouter.js ***! + \****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"); +/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _Route__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router/es/Route.js"); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + + + + + +/** + * A public higher-order component to access the imperative API + */ +var withRouter = function withRouter(Component) { + var C = function C(props) { + var wrappedComponentRef = props.wrappedComponentRef, + remainingProps = _objectWithoutProperties(props, ["wrappedComponentRef"]); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Route__WEBPACK_IMPORTED_MODULE_3__["default"], { + children: function children(routeComponentProps) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, _extends({}, remainingProps, routeComponentProps, { + ref: wrappedComponentRef + })); + } + }); + }; + + C.displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; + C.WrappedComponent = Component; + C.propTypes = { + wrappedComponentRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func + }; + + return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_2___default()(C, Component); +}; + +/* harmony default export */ __webpack_exports__["default"] = (withRouter); + +/***/ }), + +/***/ "./node_modules/react-toastify/dist/ReactToastify.css": +/*!************************************************************!*\ + !*** ./node_modules/react-toastify/dist/ReactToastify.css ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../css-loader!../../postcss-loader/lib!../../sass-loader/lib/loader.js!./ReactToastify.css */ "./node_modules/css-loader/index.js!./node_modules/postcss-loader/lib/index.js!./node_modules/sass-loader/lib/loader.js!./node_modules/react-toastify/dist/ReactToastify.css"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(true) { + module.hot.accept(/*! !../../css-loader!../../postcss-loader/lib!../../sass-loader/lib/loader.js!./ReactToastify.css */ "./node_modules/css-loader/index.js!./node_modules/postcss-loader/lib/index.js!./node_modules/sass-loader/lib/loader.js!./node_modules/react-toastify/dist/ReactToastify.css", function() { + var newContent = __webpack_require__(/*! !../../css-loader!../../postcss-loader/lib!../../sass-loader/lib/loader.js!./ReactToastify.css */ "./node_modules/css-loader/index.js!./node_modules/postcss-loader/lib/index.js!./node_modules/sass-loader/lib/loader.js!./node_modules/react-toastify/dist/ReactToastify.css"); + + if(typeof newContent === 'string') newContent = [[module.i, newContent, '']]; + + var locals = (function(a, b) { + var key, idx = 0; + + for(key in a) { + if(!b || a[key] !== b[key]) return false; + idx++; + } + + for(key in b) idx--; + + return idx === 0; + }(content.locals, newContent.locals)); + + if(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.'); + + update(newContent); + }); + + module.hot.dispose(function() { update(); }); +} + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/components/CloseButton.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-toastify/lib/components/CloseButton.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function CloseButton(_ref) { + var closeToast = _ref.closeToast, + type = _ref.type, + ariaLabel = _ref.ariaLabel; + + return _react2.default.createElement( + 'button', + { + className: 'Toastify__close-button Toastify__close-button--' + type, + type: 'button', + onClick: closeToast, + 'aria-label': ariaLabel + }, + '\u2716' + ); +} + +CloseButton.propTypes = { + closeToast: _propTypes2.default.func, + arialLabel: _propTypes2.default.string +}; + +CloseButton.defaultProps = { + ariaLabel: 'close' +}; + +exports.default = CloseButton; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/components/ProgressBar.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-toastify/lib/components/ProgressBar.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _constant = __webpack_require__(/*! ./../utils/constant */ "./node_modules/react-toastify/lib/utils/constant.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function ProgressBar(_ref) { + var delay = _ref.delay, + isRunning = _ref.isRunning, + closeToast = _ref.closeToast, + type = _ref.type, + hide = _ref.hide, + className = _ref.className, + rtl = _ref.rtl; + + var style = { + animationDuration: delay + 'ms', + animationPlayState: isRunning ? 'running' : 'paused', + opacity: hide ? 0 : 1 + }; + + var classNames = (0, _classnames2.default)('Toastify__progress-bar', 'Toastify__progress-bar--' + type, { + 'Toastify__progress-bar--rtl': rtl + }, className); + + return _react2.default.createElement('div', { className: classNames, style: style, onAnimationEnd: closeToast }); +} + +ProgressBar.propTypes = { + /** + * The animation delay which determine when to close the toast + */ + delay: _propTypes2.default.number.isRequired, + + /** + * Whether or not the animation is running or paused + */ + isRunning: _propTypes2.default.bool.isRequired, + + /** + * Func to close the current toast + */ + closeToast: _propTypes2.default.func.isRequired, + + /** + * Support rtl content + */ + rtl: _propTypes2.default.bool.isRequired, + + /** + * Optional type : info, success ... + */ + type: _propTypes2.default.string, + + /** + * Hide or not the progress bar + */ + hide: _propTypes2.default.bool, + + /** + * Optionnal className + */ + className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]) +}; + +ProgressBar.defaultProps = { + type: _constant.TYPE.DEFAULT, + hide: false +}; + +exports.default = ProgressBar; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/components/Toast.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-toastify/lib/components/Toast.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _ProgressBar = __webpack_require__(/*! ./ProgressBar */ "./node_modules/react-toastify/lib/components/ProgressBar.js"); + +var _ProgressBar2 = _interopRequireDefault(_ProgressBar); + +var _constant = __webpack_require__(/*! ./../utils/constant */ "./node_modules/react-toastify/lib/utils/constant.js"); + +var _propValidator = __webpack_require__(/*! ./../utils/propValidator */ "./node_modules/react-toastify/lib/utils/propValidator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function getX(e) { + return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX; +} + +function getY(e) { + return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY; +} + +var noop = function noop() {}; + +var Toast = function (_Component) { + _inherits(Toast, _Component); + + function Toast() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Toast); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Toast.__proto__ || Object.getPrototypeOf(Toast)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + isRunning: true, + preventExitTransition: false + }, _this.flag = { + canCloseOnClick: true, + canDrag: false + }, _this.drag = { + start: 0, + x: 0, + y: 0, + deltaX: 0, + removalDistance: 0 + }, _this.ref = null, _this.pauseToast = function () { + _this.setState({ isRunning: false }); + }, _this.playToast = function () { + _this.setState({ isRunning: true }); + }, _this.onDragStart = function (e) { + _this.flag.canCloseOnClick = true; + _this.flag.canDrag = true; + + _this.ref.style.transition = ''; + + _this.drag.start = _this.drag.x = getX(e.nativeEvent); + _this.drag.removalDistance = _this.ref.offsetWidth * (_this.props.draggablePercent / 100); + }, _this.onDragMove = function (e) { + if (_this.flag.canDrag) { + if (_this.state.isRunning) { + _this.pauseToast(); + } + + _this.drag.x = getX(e); + _this.drag.deltaX = _this.drag.x - _this.drag.start; + + // prevent false positif during a toast click + _this.drag.start !== _this.drag.x && (_this.flag.canCloseOnClick = false); + + _this.ref.style.transform = 'translateX(' + _this.drag.deltaX + 'px)'; + _this.ref.style.opacity = 1 - Math.abs(_this.drag.deltaX / _this.drag.removalDistance); + } + }, _this.onDragEnd = function (e) { + if (_this.flag.canDrag) { + _this.flag.canDrag = false; + + if (Math.abs(_this.drag.deltaX) > _this.drag.removalDistance) { + _this.setState({ + preventExitTransition: true + }, _this.props.closeToast); + return; + } + + _this.drag.y = getY(e); + _this.ref.style.transition = 'transform 0.2s, opacity 0.2s'; + _this.ref.style.transform = 'translateX(0)'; + _this.ref.style.opacity = 1; + } + }, _this.onDragTransitionEnd = function () { + var _this$ref$getBounding = _this.ref.getBoundingClientRect(), + top = _this$ref$getBounding.top, + bottom = _this$ref$getBounding.bottom, + left = _this$ref$getBounding.left, + right = _this$ref$getBounding.right; + + if (_this.props.pauseOnHover && _this.drag.x >= left && _this.drag.x <= right && _this.drag.y >= top && _this.drag.y <= bottom) { + _this.pauseToast(); + } else { + _this.playToast(); + } + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Toast, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.props.onOpen(this.props.children.props); + if (this.props.draggable) { + this.bindDragEvents(); + } + } + }, { + key: 'bindDragEvents', + value: function bindDragEvents() { + document.addEventListener('mousemove', this.onDragMove); + document.addEventListener('mouseup', this.onDragEnd); + + document.addEventListener('touchmove', this.onDragMove); + document.addEventListener('touchend', this.onDragEnd); + } + }, { + key: 'unbindDragEvents', + value: function unbindDragEvents() { + document.removeEventListener('mousemove', this.onDragMove); + document.removeEventListener('mouseup', this.onDragEnd); + + document.removeEventListener('touchmove', this.onDragMove); + document.removeEventListener('touchend', this.onDragEnd); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (prevProps.draggable !== this.props.draggable) { + this.props.draggable ? this.bindDragEvents() : this.unbindDragEvents(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.props.onClose(this.props.children.props); + if (this.props.draggable) { + this.unbindDragEvents(); + } + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + closeButton = _props.closeButton, + children = _props.children, + autoClose = _props.autoClose, + pauseOnHover = _props.pauseOnHover, + closeOnClick = _props.closeOnClick, + type = _props.type, + hideProgressBar = _props.hideProgressBar, + closeToast = _props.closeToast, + Transition = _props.transition, + position = _props.position, + onExited = _props.onExited, + className = _props.className, + bodyClassName = _props.bodyClassName, + progressClassName = _props.progressClassName, + updateId = _props.updateId, + role = _props.role, + rtl = _props.rtl; + + + var toastProps = { + className: (0, _classnames2.default)('Toastify__toast', 'Toastify__toast--' + type, { + 'Toastify__toast--rtl': rtl + }, className) + }; + + if (autoClose && pauseOnHover) { + toastProps.onMouseEnter = this.pauseToast; + toastProps.onMouseLeave = this.playToast; + } + + // prevent toast from closing when user drags the toast + if (closeOnClick) { + toastProps.onClick = function () { + return _this2.flag.canCloseOnClick && closeToast(); + }; + } + + return _react2.default.createElement( + Transition, + { + 'in': this.props.in, + appear: true, + unmountOnExit: true, + onExited: onExited, + position: position, + preventExitTransition: this.state.preventExitTransition + }, + _react2.default.createElement( + 'div', + _extends({}, toastProps, { + ref: function ref(_ref2) { + return _this2.ref = _ref2; + }, + onMouseDown: this.onDragStart, + onTouchStart: this.onDragStart, + onTransitionEnd: this.onDragTransitionEnd + }), + _react2.default.createElement( + 'div', + _extends({}, this.props.in && { role: role }, { + className: (0, _classnames2.default)('Toastify__toast-body', bodyClassName) + }), + children + ), + closeButton !== false && closeButton, + autoClose !== false && _react2.default.createElement(_ProgressBar2.default, _extends({}, updateId ? { key: 'pb-' + updateId } : {}, { + rtl: rtl, + delay: autoClose, + isRunning: this.state.isRunning, + closeToast: closeToast, + hide: hideProgressBar, + type: type, + className: progressClassName + })) + ) + ); + } + }]); + + return Toast; +}(_react.Component); + +Toast.propTypes = { + closeButton: _propValidator.falseOrElement.isRequired, + autoClose: _propValidator.falseOrDelay.isRequired, + children: _propTypes2.default.node.isRequired, + closeToast: _propTypes2.default.func.isRequired, + position: _propTypes2.default.oneOf((0, _propValidator.objectValues)(_constant.POSITION)).isRequired, + pauseOnHover: _propTypes2.default.bool.isRequired, + closeOnClick: _propTypes2.default.bool.isRequired, + transition: _propTypes2.default.func.isRequired, + isDocumentHidden: _propTypes2.default.bool.isRequired, + rtl: _propTypes2.default.bool.isRequired, + hideProgressBar: _propTypes2.default.bool.isRequired, + draggable: _propTypes2.default.bool.isRequired, + draggablePercent: _propTypes2.default.number.isRequired, + in: _propTypes2.default.bool, + onExited: _propTypes2.default.func, + onOpen: _propTypes2.default.func, + onClose: _propTypes2.default.func, + type: _propTypes2.default.oneOf((0, _propValidator.objectValues)(_constant.TYPE)), + className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + bodyClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + progressClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + updateId: _propTypes2.default.number, + ariaLabel: _propTypes2.default.string +}; +Toast.defaultProps = { + type: _constant.TYPE.DEFAULT, + in: true, + onOpen: noop, + onClose: noop, + className: null, + bodyClassName: null, + progressClassName: null, + updateId: null, + role: 'alert' +}; +exports.default = Toast; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/components/ToastContainer.js": +/*!**********************************************************************!*\ + !*** ./node_modules/react-toastify/lib/components/ToastContainer.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _TransitionGroup = __webpack_require__(/*! react-transition-group/TransitionGroup */ "./node_modules/react-transition-group/TransitionGroup.js"); + +var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup); + +var _Toast = __webpack_require__(/*! ./Toast */ "./node_modules/react-toastify/lib/components/Toast.js"); + +var _Toast2 = _interopRequireDefault(_Toast); + +var _CloseButton = __webpack_require__(/*! ./CloseButton */ "./node_modules/react-toastify/lib/components/CloseButton.js"); + +var _CloseButton2 = _interopRequireDefault(_CloseButton); + +var _Transitions = __webpack_require__(/*! ./Transitions */ "./node_modules/react-toastify/lib/components/Transitions.js"); + +var _constant = __webpack_require__(/*! ./../utils/constant */ "./node_modules/react-toastify/lib/utils/constant.js"); + +var _EventManager = __webpack_require__(/*! ./../utils/EventManager */ "./node_modules/react-toastify/lib/utils/EventManager.js"); + +var _EventManager2 = _interopRequireDefault(_EventManager); + +var _propValidator = __webpack_require__(/*! ./../utils/propValidator */ "./node_modules/react-toastify/lib/utils/propValidator.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ToastContainer = function (_Component) { + _inherits(ToastContainer, _Component); + + function ToastContainer() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, ToastContainer); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ToastContainer.__proto__ || Object.getPrototypeOf(ToastContainer)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + toast: [], + isDocumentHidden: false + }, _this.collection = {}, _this.isToastActive = function (id) { + return _this.state.toast.indexOf(parseInt(id, 10)) !== -1; + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + /** + * Hold toast ids + */ + + + /** + * Hold toast's informations: + * - what to render + * - position + * - raw content + * - options + */ + + + _createClass(ToastContainer, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + var SHOW = _constant.ACTION.SHOW, + CLEAR = _constant.ACTION.CLEAR, + MOUNTED = _constant.ACTION.MOUNTED; + + _EventManager2.default.on(SHOW, function (content, options) { + return _this2.show(content, options); + }).on(CLEAR, function (id) { + return id !== null ? _this2.removeToast(id) : _this2.clear(); + }).emit(MOUNTED, this); + + //this.props.pauseOnVisibilityChange && + // document.addEventListener('visibilitychange', this.isDocumentHidden); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + _EventManager2.default.off(_constant.ACTION.SHOW); + _EventManager2.default.off(_constant.ACTION.CLEAR); + + // this.props.pauseOnVisibilityChange && + // document.removeEventListener('visibilitychange', this.isDocumentHidden); + } + + //isDocumentHidden = () => this.setState({ isDocumentHidden: document.hidden }); + + }, { + key: 'removeToast', + value: function removeToast(id) { + this.setState({ + toast: this.state.toast.filter(function (v) { + return v !== parseInt(id, 10); + }) + }, this.dispatchChange); + } + }, { + key: 'dispatchChange', + value: function dispatchChange() { + _EventManager2.default.emit(_constant.ACTION.ON_CHANGE, this.state.toast.length); + } + }, { + key: 'makeCloseButton', + value: function makeCloseButton(toastClose, toastId, type) { + var _this3 = this; + + var closeButton = this.props.closeButton; + + if ((0, _react.isValidElement)(toastClose) || toastClose === false) { + closeButton = toastClose; + } + + return closeButton === false ? false : (0, _react.cloneElement)(closeButton, { + closeToast: function closeToast() { + return _this3.removeToast(toastId); + }, + type: type + }); + } + }, { + key: 'getAutoCloseDelay', + value: function getAutoCloseDelay(toastAutoClose) { + return toastAutoClose === false || (0, _propValidator.isValidDelay)(toastAutoClose) ? toastAutoClose : this.props.autoClose; + } + }, { + key: 'canBeRendered', + value: function canBeRendered(content) { + return (0, _react.isValidElement)(content) || typeof content === 'string' || typeof content === 'number' || typeof content === 'function'; + } + }, { + key: 'parseClassName', + value: function parseClassName(prop) { + if (typeof prop === 'string') { + return prop; + } else if (prop !== null && (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object' && 'toString' in prop) { + return prop.toString(); + } + + return null; + } + }, { + key: 'show', + value: function show(content, options) { + var _this4 = this; + + if (!this.canBeRendered(content)) { + throw new Error('The element you provided cannot be rendered. You provided an element of type ' + (typeof content === 'undefined' ? 'undefined' : _typeof(content))); + } + var toastId = options.toastId; + var closeToast = function closeToast() { + return _this4.removeToast(toastId); + }; + var toastOptions = { + id: toastId, + type: options.type, + closeToast: closeToast, + updateId: options.updateId, + rtl: this.props.rtl, + position: options.position || this.props.position, + transition: options.transition || this.props.transition, + className: this.parseClassName(options.className || this.props.toastClassName), + bodyClassName: this.parseClassName(options.bodyClassName || this.props.bodyClassName), + closeButton: this.makeCloseButton(options.closeButton, toastId, options.type), + pauseOnHover: options.pauseOnHover !== null ? options.pauseOnHover : this.props.pauseOnHover, + draggable: options.draggable !== null ? options.draggable : this.props.draggable, + draggablePercent: options.draggable !== null ? options.draggablePercent : this.props.draggablePercent, + closeOnClick: options.closeOnClick !== null ? options.closeOnClick : this.props.closeOnClick, + progressClassName: this.parseClassName(options.progressClassName || this.props.progressClassName), + autoClose: this.getAutoCloseDelay(options.autoClose !== false ? parseInt(options.autoClose, 10) : options.autoClose), + hideProgressBar: typeof options.hideProgressBar === 'boolean' ? options.hideProgressBar : this.props.hideProgressBar + }; + + typeof options.onOpen === 'function' && (toastOptions.onOpen = options.onOpen); + + typeof options.onClose === 'function' && (toastOptions.onClose = options.onClose); + + // add closeToast function to react component only + if ((0, _react.isValidElement)(content) && typeof content.type !== 'string' && typeof content.type !== 'number') { + content = (0, _react.cloneElement)(content, { + closeToast: closeToast + }); + } else if (typeof content === 'function') { + content = content({ closeToast: closeToast }); + } + + this.collection = _extends({}, this.collection, _defineProperty({}, toastId, { + position: toastOptions.position, + options: toastOptions, + content: content + })); + + this.setState({ + toast: toastOptions.updateId !== null ? [].concat(_toConsumableArray(this.state.toast)) : [].concat(_toConsumableArray(this.state.toast), [toastId]) + }, this.dispatchChange); + } + }, { + key: 'makeToast', + value: function makeToast(content, options) { + return _react2.default.createElement( + _Toast2.default, + _extends({}, options, { + isDocumentHidden: this.state.isDocumentHidden, + key: 'toast-' + options.id + }), + content + ); + } + }, { + key: 'clear', + value: function clear() { + this.setState({ toast: [] }); + } + }, { + key: 'renderToast', + value: function renderToast() { + var _this5 = this; + + var toastToRender = {}; + var _props = this.props, + className = _props.className, + style = _props.style, + newestOnTop = _props.newestOnTop; + + var collection = newestOnTop ? Object.keys(this.collection).reverse() : Object.keys(this.collection); + + // group toast by position + collection.forEach(function (toastId) { + var toast = _this5.collection[toastId]; + toastToRender[toast.position] || (toastToRender[toast.position] = []); + + if (_this5.state.toast.indexOf(parseInt(toastId, 10)) !== -1) { + toastToRender[toast.position].push(_this5.makeToast(toast.content, toast.options)); + } else { + toastToRender[toast.position].push(null); + delete _this5.collection[toastId]; + } + }); + + return Object.keys(toastToRender).map(function (position) { + var disablePointer = toastToRender[position].length === 1 && toastToRender[position][0] === null; + var props = { + className: (0, _classnames2.default)('Toastify__toast-container', 'Toastify__toast-container--' + position, { 'Toastify__toast-container--rtl': _this5.props.rtl }, _this5.parseClassName(className)), + style: disablePointer ? _extends({}, style, { pointerEvents: 'none' }) : _extends({}, style) + }; + + return _react2.default.createElement( + _TransitionGroup2.default, + _extends({}, props, { key: 'container-' + position }), + toastToRender[position] + ); + }); + } + }, { + key: 'render', + value: function render() { + return _react2.default.createElement( + 'div', + { className: 'Toastify' }, + this.renderToast() + ); + } + }]); + + return ToastContainer; +}(_react.Component); + +ToastContainer.propTypes = { + /** + * Set toast position + */ + position: _propTypes2.default.oneOf((0, _propValidator.objectValues)(_constant.POSITION)), + + /** + * Disable or set autoClose delay + */ + autoClose: _propValidator.falseOrDelay, + + /** + * Disable or set a custom react element for the close button + */ + closeButton: _propValidator.falseOrElement, + + /** + * Hide or not progress bar when autoClose is enabled + */ + hideProgressBar: _propTypes2.default.bool, + + /** + * Pause toast duration on hover + */ + pauseOnHover: _propTypes2.default.bool, + + /** + * Dismiss toast on click + */ + closeOnClick: _propTypes2.default.bool, + + /** + * Newest on top + */ + newestOnTop: _propTypes2.default.bool, + + /** + * An optional className + */ + className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + + /** + * An optional style + */ + style: _propTypes2.default.object, + + /** + * An optional className for the toast + */ + toastClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + + /** + * An optional className for the toast body + */ + bodyClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + + /** + * An optional className for the toast progress bar + */ + progressClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]), + + /** + * Define enter and exit transition using react-transition-group + */ + transition: _propTypes2.default.func, + + /** + * Support rtl display + */ + rtl: _propTypes2.default.bool, + + /** + * Allow toast to be draggable + */ + draggable: _propTypes2.default.bool, + + /** + * The percentage of the toast's width it takes for a drag to dismiss a toast + */ + draggablePercent: _propTypes2.default.number, + + /** + * ⚠️ NOT WORKING ATM, has been disabled until I fix it ⚠️ + * pause on document visibility change + */ + pauseOnVisibilityChange: _propTypes2.default.bool +}; +ToastContainer.defaultProps = { + position: _constant.POSITION.TOP_RIGHT, + transition: _Transitions.Bounce, + rtl: false, + pauseOnVisibilityChange: true, + autoClose: 5000, + hideProgressBar: false, + closeButton: _react2.default.createElement(_CloseButton2.default, null), + pauseOnHover: true, + closeOnClick: true, + newestOnTop: false, + draggable: true, + draggablePercent: 80, + className: null, + style: null, + toastClassName: null, + bodyClassName: null, + progressClassName: null +}; +exports.default = ToastContainer; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/components/Transitions.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-toastify/lib/components/Transitions.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Flip = exports.Zoom = exports.Slide = exports.Bounce = undefined; + +var _cssTransition = __webpack_require__(/*! ./../utils/cssTransition */ "./node_modules/react-toastify/lib/utils/cssTransition.js"); + +var _cssTransition2 = _interopRequireDefault(_cssTransition); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Bounce = (0, _cssTransition2.default)({ + enter: 'Toastify__bounce-enter', + exit: 'Toastify__bounce-exit', + appendPosition: true +}); + +var Slide = (0, _cssTransition2.default)({ + enter: 'Toastify__slide-enter', + exit: 'Toastify__slide-exit', + duration: [450, 750], + appendPosition: true +}); + +var Zoom = (0, _cssTransition2.default)({ + enter: 'Toastify__zoom-enter', + exit: 'Toastify__zoom-exit' +}); + +var Flip = (0, _cssTransition2.default)({ + enter: 'Toastify__flip-enter', + exit: 'Toastify__flip-exit' +}); + +exports.Bounce = Bounce; +exports.Slide = Slide; +exports.Zoom = Zoom; +exports.Flip = Flip; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/react-toastify/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Flip = exports.Zoom = exports.Slide = exports.Bounce = exports.cssTransition = exports.toast = exports.ToastContainer = undefined; + +var _ToastContainer = __webpack_require__(/*! ./components/ToastContainer */ "./node_modules/react-toastify/lib/components/ToastContainer.js"); + +var _ToastContainer2 = _interopRequireDefault(_ToastContainer); + +var _Transitions = __webpack_require__(/*! ./components/Transitions */ "./node_modules/react-toastify/lib/components/Transitions.js"); + +var _toaster = __webpack_require__(/*! ./toaster */ "./node_modules/react-toastify/lib/toaster.js"); + +var _toaster2 = _interopRequireDefault(_toaster); + +var _cssTransition = __webpack_require__(/*! ./utils/cssTransition */ "./node_modules/react-toastify/lib/utils/cssTransition.js"); + +var _cssTransition2 = _interopRequireDefault(_cssTransition); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.ToastContainer = _ToastContainer2.default; +exports.toast = _toaster2.default; +exports.cssTransition = _cssTransition2.default; +exports.Bounce = _Transitions.Bounce; +exports.Slide = _Transitions.Slide; +exports.Zoom = _Transitions.Zoom; +exports.Flip = _Transitions.Flip; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/toaster.js": +/*!****************************************************!*\ + !*** ./node_modules/react-toastify/lib/toaster.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _EventManager = __webpack_require__(/*! ./utils/EventManager */ "./node_modules/react-toastify/lib/utils/EventManager.js"); + +var _EventManager2 = _interopRequireDefault(_EventManager); + +var _constant = __webpack_require__(/*! ./utils/constant */ "./node_modules/react-toastify/lib/utils/constant.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var defaultOptions = { + type: _constant.TYPE.DEFAULT, + autoClose: null, + closeButton: null, + hideProgressBar: null, + position: null, + pauseOnHover: null, + closeOnClick: null, + className: null, + bodyClassName: null, + progressClassName: null, + transition: null, + updateId: null, + draggable: null +}; + +var container = null; +var queue = []; +var toastId = 0; + +/** + * Merge provided options with the defaults settings and generate the toastId + * @param {*} options + */ +function mergeOptions(options, type) { + return _extends({}, defaultOptions, options, { + type: type, + toastId: ++toastId + }); +} + +/** + * Dispatch toast. If the container is not mounted, the toast is enqueued + * @param {*} content + * @param {*} options + */ +function emitEvent(content, options) { + if (container !== null) { + _EventManager2.default.emit(_constant.ACTION.SHOW, content, options); + } else { + queue.push({ action: _constant.ACTION.SHOW, content: content, options: options }); + } + + return options.toastId; +} + +var toaster = _extends(function (content, options) { + return emitEvent(content, mergeOptions(options, options && options.type || _constant.TYPE.DEFAULT)); +}, { + success: function success(content, options) { + return emitEvent(content, mergeOptions(options, _constant.TYPE.SUCCESS)); + }, + info: function info(content, options) { + return emitEvent(content, mergeOptions(options, _constant.TYPE.INFO)); + }, + warn: function warn(content, options) { + return emitEvent(content, mergeOptions(options, _constant.TYPE.WARNING)); + }, + warning: function warning(content, options) { + return emitEvent(content, mergeOptions(options, _constant.TYPE.WARNING)); + }, + error: function error(content, options) { + return emitEvent(content, mergeOptions(options, _constant.TYPE.ERROR)); + }, + dismiss: function dismiss() { + var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + return container && _EventManager2.default.emit(_constant.ACTION.CLEAR, id); + }, + isActive: function isActive() { + return false; + }, + update: function update(id, options) { + setTimeout(function () { + if (container && typeof container.collection[id] !== 'undefined') { + var _container$collection = container.collection[id], + oldOptions = _container$collection.options, + oldContent = _container$collection.content; + + var updateId = oldOptions.updateId !== null ? oldOptions.updateId + 1 : 1; + + var nextOptions = _extends({}, oldOptions, options, { + toastId: id, + updateId: updateId + }); + var content = typeof nextOptions.render !== 'undefined' ? nextOptions.render : oldContent; + delete nextOptions.render; + emitEvent(content, nextOptions); + } + }, 0); + }, + onChange: function onChange(callback) { + if (typeof callback === 'function') { + _EventManager2.default.on(_constant.ACTION.ON_CHANGE, callback); + } + } +}, { + POSITION: _constant.POSITION, + TYPE: _constant.TYPE +}); + +/** + * Wait until the ToastContainer is mounted to dispatch the toast + * and attach isActive method + */ +_EventManager2.default.on(_constant.ACTION.MOUNTED, function (containerInstance) { + container = containerInstance; + + toaster.isActive = function (id) { + return container.isToastActive(id); + }; + + queue.forEach(function (item) { + _EventManager2.default.emit(item.action, item.content, item.options); + }); + queue = []; +}); + +exports.default = toaster; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/utils/EventManager.js": +/*!***************************************************************!*\ + !*** ./node_modules/react-toastify/lib/utils/EventManager.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var eventManager = { + eventList: new Map(), + + on: function on(event, callback) { + this.eventList.has(event) || this.eventList.set(event, []); + + this.eventList.get(event).push(callback); + + return this; + }, + off: function off() { + var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + return this.eventList.delete(event); + }, + emit: function emit(event) { + var _this = this; + + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (!this.eventList.has(event)) { + return false; + } + + this.eventList.get(event).forEach(function (callback) { + return setTimeout(function () { + return callback.call.apply(callback, [_this].concat(_toConsumableArray(args))); + }, 0); + }); + + return true; + } +}; + +exports.default = eventManager; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/utils/constant.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-toastify/lib/utils/constant.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var POSITION = exports.POSITION = { + TOP_LEFT: 'top-left', + TOP_RIGHT: 'top-right', + TOP_CENTER: 'top-center', + BOTTOM_LEFT: 'bottom-left', + BOTTOM_RIGHT: 'bottom-right', + BOTTOM_CENTER: 'bottom-center' +}; + +var TYPE = exports.TYPE = { + INFO: 'info', + SUCCESS: 'success', + WARNING: 'warning', + ERROR: 'error', + DEFAULT: 'default' +}; +var ACTION = exports.ACTION = { + SHOW: 'SHOW_TOAST', + CLEAR: 'CLEAR_TOAST', + MOUNTED: 'CONTAINER_MOUNTED', + ON_CHANGE: 'ON_CHANGE' +}; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/utils/cssTransition.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-toastify/lib/utils/cssTransition.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +exports.default = function (_ref) { + var enter = _ref.enter, + exit = _ref.exit, + _ref$duration = _ref.duration, + duration = _ref$duration === undefined ? 750 : _ref$duration, + _ref$appendPosition = _ref.appendPosition, + appendPosition = _ref$appendPosition === undefined ? false : _ref$appendPosition; + + return function Animation(_ref2) { + var children = _ref2.children, + position = _ref2.position, + preventExitTransition = _ref2.preventExitTransition, + props = _objectWithoutProperties(_ref2, ['children', 'position', 'preventExitTransition']); + + var enterClassName = appendPosition ? enter + '--' + position : enter; + var exitClassName = appendPosition ? exit + '--' + position : exit; + var enterDuration = void 0, + exitDuration = void 0; + + if (Array.isArray(duration) && duration.length === 2) { + var _duration = _slicedToArray(duration, 2); + + enterDuration = _duration[0]; + exitDuration = _duration[1]; + } else { + enterDuration = exitDuration = duration; + } + + var onEnter = function onEnter(node) { + node.classList.add(enterClassName); + node.style.animationFillMode = 'forwards'; + node.style.animationDuration = enterDuration * 0.001 + 's'; + }; + var onEntered = function onEntered(node) { + node.classList.remove(enterClassName); + node.style.cssText = ''; + }; + var onExit = function onExit(node) { + node.classList.add(exitClassName); + node.style.animationFillMode = 'forwards'; + node.style.animationDuration = exitDuration * 0.001 + 's'; + }; + + return _react2.default.createElement( + _Transition2.default, + _extends({}, props, { + timeout: preventExitTransition ? 0 : { + enter: enterDuration, + exit: exitDuration + }, + onEnter: onEnter, + onEntered: onEntered, + onExit: preventExitTransition ? noop : onExit + }), + children + ); + }; +}; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _Transition = __webpack_require__(/*! react-transition-group/Transition */ "./node_modules/react-transition-group/Transition.js"); + +var _Transition2 = _interopRequireDefault(_Transition); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var noop = function noop() {}; + +/***/ }), + +/***/ "./node_modules/react-toastify/lib/utils/propValidator.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-toastify/lib/utils/propValidator.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.falseOrElement = exports.falseOrDelay = undefined; +exports.isValidDelay = isValidDelay; +exports.objectValues = objectValues; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +function isValidDelay(val) { + return typeof val === 'number' && !isNaN(val) && val > 0; +} + +function objectValues(obj) { + return Object.keys(obj).map(function (key) { + return obj[key]; + }); +} + +function withRequired(fn) { + fn.isRequired = function (props, propName, componentName) { + var prop = props[propName]; + + if (typeof prop === 'undefined') { + return new Error('The prop ' + propName + ' is marked as required in \n ' + componentName + ', but its value is undefined.'); + } + + fn(props, propName, componentName); + }; + return fn; +} + +var falseOrDelay = exports.falseOrDelay = withRequired(function (props, propName, componentName) { + var prop = props[propName]; + + if (prop !== false && !isValidDelay(prop)) { + return new Error(componentName + ' expect ' + propName + ' \n to be a valid Number > 0 or equal to false. ' + prop + ' given.'); + } + + return null; +}); + +var falseOrElement = exports.falseOrElement = withRequired(function (props, propName, componentName) { + var prop = props[propName]; + + if (prop !== false && !(0, _react.isValidElement)(prop)) { + return new Error(componentName + ' expect ' + propName + ' \n to be a valid react element or equal to false. ' + prop + ' given.'); + } + + return null; +}); + +/***/ }), + +/***/ "./node_modules/react-transition-group/Transition.js": +/*!***********************************************************!*\ + !*** ./node_modules/react-transition-group/Transition.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined; + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var PropTypes = _interopRequireWildcard(_propTypes); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js"); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"); + +var _PropTypes = __webpack_require__(/*! ./utils/PropTypes */ "./node_modules/react-transition-group/utils/PropTypes.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var UNMOUNTED = exports.UNMOUNTED = 'unmounted'; +var EXITED = exports.EXITED = 'exited'; +var ENTERING = exports.ENTERING = 'entering'; +var ENTERED = exports.ENTERED = 'entered'; +var EXITING = exports.EXITING = 'exiting'; + +/** + * The Transition component lets you describe a transition from one component + * state to another _over time_ with a simple declarative API. Most commonly + * it's used to animate the mounting and unmounting of a component, but can also + * be used to describe in-place transition states as well. + * + * By default the `Transition` component does not alter the behavior of the + * component it renders, it only tracks "enter" and "exit" states for the components. + * It's up to you to give meaning and effect to those states. For example we can + * add styles to a component when it enters or exits: + * + * ```jsx + * import Transition from 'react-transition-group/Transition'; + * + * const duration = 300; + * + * const defaultStyle = { + * transition: `opacity ${duration}ms ease-in-out`, + * opacity: 0, + * } + * + * const transitionStyles = { + * entering: { opacity: 0 }, + * entered: { opacity: 1 }, + * }; + * + * const Fade = ({ in: inProp }) => ( + * + * {(state) => ( + *
    + * I'm a fade Transition! + *
    + * )} + *
    + * ); + * ``` + * + * As noted the `Transition` component doesn't _do_ anything by itself to its child component. + * What it does do is track transition states over time so you can update the + * component (such as by adding styles or classes) when it changes states. + * + * There are 4 main states a Transition can be in: + * - `'entering'` + * - `'entered'` + * - `'exiting'` + * - `'exited'` + * + * Transition state is toggled via the `in` prop. When `true` the component begins the + * "Enter" stage. During this stage, the component will shift from its current transition state, + * to `'entering'` for the duration of the transition and then to the `'entered'` stage once + * it's complete. Let's take the following example: + * + * ```jsx + * state = { in: false }; + * + * toggleEnterState = () => { + * this.setState({ in: true }); + * } + * + * render() { + * return ( + *
    + * + * + *
    + * ); + * } + * ``` + * + * When the button is clicked the component will shift to the `'entering'` state and + * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`. + * + * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`. + * + * ## Timing + * + * Timing is often the trickiest part of animation, mistakes can result in slight delays + * that are hard to pin down. A common example is when you want to add an exit transition, + * you should set the desired final styles when the state is `'exiting'`. That's when the + * transition to those styles will start and, if you matched the `timeout` prop with the + * CSS Transition duration, it will end exactly when the state changes to `'exited'`. + * + * > **Note**: For simpler transitions the `Transition` component might be enough, but + * > take into account that it's platform-agnostic, while the `CSSTransition` component + * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215) + * > in order to make more complex transitions more predictable. For example, even though + * > classes `example-enter` and `example-enter-active` are applied immediately one after + * > another, you can still transition from one to the other because of the forced reflow + * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171) + * > for more info). Take this into account when choosing between `Transition` and + * > `CSSTransition`. + * + * ## Example + * + * + * + */ + +var Transition = function (_React$Component) { + _inherits(Transition, _React$Component); + + function Transition(props, context) { + _classCallCheck(this, Transition); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); + + var parentGroup = context.transitionGroup; + // In the context of a TransitionGroup all enters are really appears + var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; + + var initialStatus = void 0; + + _this.appearStatus = null; + + if (props.in) { + if (appear) { + initialStatus = EXITED; + _this.appearStatus = ENTERING; + } else { + initialStatus = ENTERED; + } + } else { + if (props.unmountOnExit || props.mountOnEnter) { + initialStatus = UNMOUNTED; + } else { + initialStatus = EXITED; + } + } + + _this.state = { status: initialStatus }; + + _this.nextCallback = null; + return _this; + } + + Transition.prototype.getChildContext = function getChildContext() { + return { transitionGroup: null // allows for nested Transitions + }; + }; + + Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { + var nextIn = _ref.in; + + if (nextIn && prevState.status === UNMOUNTED) { + return { status: EXITED }; + } + return null; + }; + + // getSnapshotBeforeUpdate(prevProps) { + // let nextStatus = null + + // if (prevProps !== this.props) { + // const { status } = this.state + + // if (this.props.in) { + // if (status !== ENTERING && status !== ENTERED) { + // nextStatus = ENTERING + // } + // } else { + // if (status === ENTERING || status === ENTERED) { + // nextStatus = EXITING + // } + // } + // } + + // return { nextStatus } + // } + + Transition.prototype.componentDidMount = function componentDidMount() { + this.updateStatus(true, this.appearStatus); + }; + + Transition.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { + var nextStatus = null; + if (prevProps !== this.props) { + var status = this.state.status; + + + if (this.props.in) { + if (status !== ENTERING && status !== ENTERED) { + nextStatus = ENTERING; + } + } else { + if (status === ENTERING || status === ENTERED) { + nextStatus = EXITING; + } + } + } + this.updateStatus(false, nextStatus); + }; + + Transition.prototype.componentWillUnmount = function componentWillUnmount() { + this.cancelNextCallback(); + }; + + Transition.prototype.getTimeouts = function getTimeouts() { + var timeout = this.props.timeout; + + var exit = void 0, + enter = void 0, + appear = void 0; + + exit = enter = appear = timeout; + + if (timeout != null && typeof timeout !== 'number') { + exit = timeout.exit; + enter = timeout.enter; + appear = timeout.appear; + } + return { exit: exit, enter: enter, appear: appear }; + }; + + Transition.prototype.updateStatus = function updateStatus() { + var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var nextStatus = arguments[1]; + + if (nextStatus !== null) { + // nextStatus will always be ENTERING or EXITING. + this.cancelNextCallback(); + var node = _reactDom2.default.findDOMNode(this); + + if (nextStatus === ENTERING) { + this.performEnter(node, mounting); + } else { + this.performExit(node); + } + } else if (this.props.unmountOnExit && this.state.status === EXITED) { + this.setState({ status: UNMOUNTED }); + } + }; + + Transition.prototype.performEnter = function performEnter(node, mounting) { + var _this2 = this; + + var enter = this.props.enter; + + var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting; + + var timeouts = this.getTimeouts(); + + // no enter animation skip right to ENTERED + // if we are mounting and running this it means appear _must_ be set + if (!mounting && !enter) { + this.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node); + }); + return; + } + + this.props.onEnter(node, appearing); + + this.safeSetState({ status: ENTERING }, function () { + _this2.props.onEntering(node, appearing); + + // FIXME: appear timeout? + _this2.onTransitionEnd(node, timeouts.enter, function () { + _this2.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node, appearing); + }); + }); + }); + }; + + Transition.prototype.performExit = function performExit(node) { + var _this3 = this; + + var exit = this.props.exit; + + var timeouts = this.getTimeouts(); + + // no exit animation skip right to EXITED + if (!exit) { + this.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + return; + } + this.props.onExit(node); + + this.safeSetState({ status: EXITING }, function () { + _this3.props.onExiting(node); + + _this3.onTransitionEnd(node, timeouts.exit, function () { + _this3.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + }); + }); + }; + + Transition.prototype.cancelNextCallback = function cancelNextCallback() { + if (this.nextCallback !== null) { + this.nextCallback.cancel(); + this.nextCallback = null; + } + }; + + Transition.prototype.safeSetState = function safeSetState(nextState, callback) { + // This shouldn't be necessary, but there are weird race conditions with + // setState callbacks and unmounting in testing, so always make sure that + // we can cancel any pending setState callbacks after we unmount. + callback = this.setNextCallback(callback); + this.setState(nextState, callback); + }; + + Transition.prototype.setNextCallback = function setNextCallback(callback) { + var _this4 = this; + + var active = true; + + this.nextCallback = function (event) { + if (active) { + active = false; + _this4.nextCallback = null; + + callback(event); + } + }; + + this.nextCallback.cancel = function () { + active = false; + }; + + return this.nextCallback; + }; + + Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) { + this.setNextCallback(handler); + + if (node) { + if (this.props.addEndListener) { + this.props.addEndListener(node, this.nextCallback); + } + if (timeout != null) { + setTimeout(this.nextCallback, timeout); + } + } else { + setTimeout(this.nextCallback, 0); + } + }; + + Transition.prototype.render = function render() { + var status = this.state.status; + if (status === UNMOUNTED) { + return null; + } + + var _props = this.props, + children = _props.children, + childProps = _objectWithoutProperties(_props, ['children']); + // filter props for Transtition + + + delete childProps.in; + delete childProps.mountOnEnter; + delete childProps.unmountOnExit; + delete childProps.appear; + delete childProps.enter; + delete childProps.exit; + delete childProps.timeout; + delete childProps.addEndListener; + delete childProps.onEnter; + delete childProps.onEntering; + delete childProps.onEntered; + delete childProps.onExit; + delete childProps.onExiting; + delete childProps.onExited; + + if (typeof children === 'function') { + return children(status, childProps); + } + + var child = _react2.default.Children.only(children); + return _react2.default.cloneElement(child, childProps); + }; + + return Transition; +}(_react2.default.Component); + +Transition.contextTypes = { + transitionGroup: PropTypes.object +}; +Transition.childContextTypes = { + transitionGroup: function transitionGroup() {} +}; + + +Transition.propTypes = true ? { + /** + * A `function` child can be used instead of a React element. + * This function is called with the current transition status + * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used + * to apply context specific props to a component. + * + * ```jsx + * + * {(status) => ( + * + * )} + * + * ``` + */ + children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired, + + /** + * Show the component; triggers the enter or exit states + */ + in: PropTypes.bool, + + /** + * By default the child component is mounted immediately along with + * the parent `Transition` component. If you want to "lazy mount" the component on the + * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay + * mounted, even on "exited", unless you also specify `unmountOnExit`. + */ + mountOnEnter: PropTypes.bool, + + /** + * By default the child component stays mounted after it reaches the `'exited'` state. + * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting. + */ + unmountOnExit: PropTypes.bool, + + /** + * Normally a component is not transitioned if it is shown when the `` component mounts. + * If you want to transition on the first mount set `appear` to `true`, and the + * component will transition in as soon as the `` mounts. + * + * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition. + */ + appear: PropTypes.bool, + + /** + * Enable or disable enter transitions. + */ + enter: PropTypes.bool, + + /** + * Enable or disable exit transitions. + */ + exit: PropTypes.bool, + + /** + * The duration of the transition, in milliseconds. + * Required unless `addEndListener` is provided + * + * You may specify a single timeout for all transitions like: `timeout={500}`, + * or individually like: + * + * ```jsx + * timeout={{ + * enter: 300, + * exit: 500, + * }} + * ``` + * + * @type {number | { enter?: number, exit?: number }} + */ + timeout: function timeout(props) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var pt = _PropTypes.timeoutsShape; + if (!props.addEndListener) pt = pt.isRequired; + return pt.apply(undefined, [props].concat(args)); + }, + + /** + * Add a custom transition end trigger. Called with the transitioning + * DOM node and a `done` callback. Allows for more fine grained transition end + * logic. **Note:** Timeouts are still used as a fallback if provided. + * + * ```jsx + * addEndListener={(node, done) => { + * // use the css transitionend event to mark the finish of a transition + * node.addEventListener('transitionend', done, false); + * }} + * ``` + */ + addEndListener: PropTypes.func, + + /** + * Callback fired before the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEnter: PropTypes.func, + + /** + * Callback fired after the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEntering: PropTypes.func, + + /** + * Callback fired after the "entered" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEntered: PropTypes.func, + + /** + * Callback fired before the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExit: PropTypes.func, + + /** + * Callback fired after the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExiting: PropTypes.func, + + /** + * Callback fired after the "exited" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExited: PropTypes.func + + // Name the function so it is clearer in the documentation +} : undefined;function noop() {} + +Transition.defaultProps = { + in: false, + mountOnEnter: false, + unmountOnExit: false, + appear: false, + enter: true, + exit: true, + + onEnter: noop, + onEntering: noop, + onEntered: noop, + + onExit: noop, + onExiting: noop, + onExited: noop +}; + +Transition.UNMOUNTED = 0; +Transition.EXITED = 1; +Transition.ENTERING = 2; +Transition.ENTERED = 3; +Transition.EXITING = 4; + +exports.default = (0, _reactLifecyclesCompat.polyfill)(Transition); + +/***/ }), + +/***/ "./node_modules/react-transition-group/TransitionGroup.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-transition-group/TransitionGroup.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"); + +var _ChildMapping = __webpack_require__(/*! ./utils/ChildMapping */ "./node_modules/react-transition-group/utils/ChildMapping.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var values = Object.values || function (obj) { + return Object.keys(obj).map(function (k) { + return obj[k]; + }); +}; + +var propTypes = { + /** + * `` renders a `
    ` by default. You can change this + * behavior by providing a `component` prop. + * If you use React v16+ and would like to avoid a wrapping `
    ` element + * you can pass in `component={null}`. This is useful if the wrapping div + * borks your css styles. + */ + component: _propTypes2.default.any, + /** + * A set of `` components, that are toggled `in` and out as they + * leave. the `` will inject specific transition props, so + * remember to spread them through if you are wrapping the `` as + * with our `` example. + */ + children: _propTypes2.default.node, + + /** + * A convenience prop that enables or disables appear animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + appear: _propTypes2.default.bool, + /** + * A convenience prop that enables or disables enter animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + enter: _propTypes2.default.bool, + /** + * A convenience prop that enables or disables exit animations + * for all children. Note that specifying this will override any defaults set + * on individual children Transitions. + */ + exit: _propTypes2.default.bool, + + /** + * You may need to apply reactive updates to a child as it is exiting. + * This is generally done by using `cloneElement` however in the case of an exiting + * child the element has already been removed and not accessible to the consumer. + * + * If you do need to update a child as it leaves you can provide a `childFactory` + * to wrap every child, even the ones that are leaving. + * + * @type Function(child: ReactElement) -> ReactElement + */ + childFactory: _propTypes2.default.func +}; + +var defaultProps = { + component: 'div', + childFactory: function childFactory(child) { + return child; + } + + /** + * The `` component manages a set of `` components + * in a list. Like with the `` component, ``, is a + * state machine for managing the mounting and unmounting of components over + * time. + * + * Consider the example below using the `Fade` CSS transition from before. + * As items are removed or added to the TodoList the `in` prop is toggled + * automatically by the ``. You can use _any_ `` + * component in a ``, not just css. + * + * ## Example + * + * + * + * Note that `` does not define any animation behavior! + * Exactly _how_ a list item animates is up to the individual `` + * components. This means you can mix and match animations across different + * list items. + */ +}; +var TransitionGroup = function (_React$Component) { + _inherits(TransitionGroup, _React$Component); + + function TransitionGroup(props, context) { + _classCallCheck(this, TransitionGroup); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); + + var handleExited = _this.handleExited.bind(_this); + + // Initial children should all be entering, dependent on appear + _this.state = { + handleExited: handleExited, + firstRender: true + }; + return _this; + } + + TransitionGroup.prototype.getChildContext = function getChildContext() { + return { + transitionGroup: { isMounting: !this.appeared } + }; + }; + + TransitionGroup.prototype.componentDidMount = function componentDidMount() { + this.appeared = true; + }; + + TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) { + var prevChildMapping = _ref.children, + handleExited = _ref.handleExited, + firstRender = _ref.firstRender; + + return { + children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited), + firstRender: false + }; + }; + + TransitionGroup.prototype.handleExited = function handleExited(child, node) { + var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children); + + if (child.key in currentChildMapping) return; + + if (child.props.onExited) { + child.props.onExited(node); + } + + this.setState(function (state) { + var children = _extends({}, state.children); + + delete children[child.key]; + return { children: children }; + }); + }; + + TransitionGroup.prototype.render = function render() { + var _props = this.props, + Component = _props.component, + childFactory = _props.childFactory, + props = _objectWithoutProperties(_props, ['component', 'childFactory']); + + var children = values(this.state.children).map(childFactory); + + delete props.appear; + delete props.enter; + delete props.exit; + + if (Component === null) { + return children; + } + return _react2.default.createElement( + Component, + props, + children + ); + }; + + return TransitionGroup; +}(_react2.default.Component); + +TransitionGroup.childContextTypes = { + transitionGroup: _propTypes2.default.object.isRequired +}; + + +TransitionGroup.propTypes = true ? propTypes : undefined; +TransitionGroup.defaultProps = defaultProps; + +exports.default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup); +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/react-transition-group/utils/ChildMapping.js": +/*!*******************************************************************!*\ + !*** ./node_modules/react-transition-group/utils/ChildMapping.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.getChildMapping = getChildMapping; +exports.mergeChildMappings = mergeChildMappings; +exports.getInitialChildMapping = getInitialChildMapping; +exports.getNextChildMapping = getNextChildMapping; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +/** + * Given `this.props.children`, return an object mapping key to child. + * + * @param {*} children `this.props.children` + * @return {object} Mapping of key to child + */ +function getChildMapping(children, mapFn) { + var mapper = function mapper(child) { + return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child; + }; + + var result = Object.create(null); + if (children) _react.Children.map(children, function (c) { + return c; + }).forEach(function (child) { + // run the map function here instead so that the key is the computed one + result[child.key] = mapper(child); + }); + return result; +} + +/** + * When you're adding or removing children some may be added or removed in the + * same render pass. We want to show *both* since we want to simultaneously + * animate elements in and out. This function takes a previous set of keys + * and a new set of keys and merges them with its best guess of the correct + * ordering. In the future we may expose some of the utilities in + * ReactMultiChild to make this easy, but for now React itself does not + * directly have this concept of the union of prevChildren and nextChildren + * so we implement it here. + * + * @param {object} prev prev children as returned from + * `ReactTransitionChildMapping.getChildMapping()`. + * @param {object} next next children as returned from + * `ReactTransitionChildMapping.getChildMapping()`. + * @return {object} a key set that contains all keys in `prev` and all keys + * in `next` in a reasonable order. + */ +function mergeChildMappings(prev, next) { + prev = prev || {}; + next = next || {}; + + function getValueForKey(key) { + return key in next ? next[key] : prev[key]; + } + + // For each key of `next`, the list of keys to insert before that key in + // the combined list + var nextKeysPending = Object.create(null); + + var pendingKeys = []; + for (var prevKey in prev) { + if (prevKey in next) { + if (pendingKeys.length) { + nextKeysPending[prevKey] = pendingKeys; + pendingKeys = []; + } + } else { + pendingKeys.push(prevKey); + } + } + + var i = void 0; + var childMapping = {}; + for (var nextKey in next) { + if (nextKeysPending[nextKey]) { + for (i = 0; i < nextKeysPending[nextKey].length; i++) { + var pendingNextKey = nextKeysPending[nextKey][i]; + childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey); + } + } + childMapping[nextKey] = getValueForKey(nextKey); + } + + // Finally, add the keys which didn't appear before any key in `next` + for (i = 0; i < pendingKeys.length; i++) { + childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); + } + + return childMapping; +} + +function getProp(child, prop, props) { + return props[prop] != null ? props[prop] : child.props[prop]; +} + +function getInitialChildMapping(props, onExited) { + return getChildMapping(props.children, function (child) { + return (0, _react.cloneElement)(child, { + onExited: onExited.bind(null, child), + in: true, + appear: getProp(child, 'appear', props), + enter: getProp(child, 'enter', props), + exit: getProp(child, 'exit', props) + }); + }); +} + +function getNextChildMapping(nextProps, prevChildMapping, onExited) { + var nextChildMapping = getChildMapping(nextProps.children); + var children = mergeChildMappings(prevChildMapping, nextChildMapping); + + Object.keys(children).forEach(function (key) { + var child = children[key]; + + if (!(0, _react.isValidElement)(child)) return; + + var hasPrev = key in prevChildMapping; + var hasNext = key in nextChildMapping; + + var prevChild = prevChildMapping[key]; + var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; + + // item is new (entering) + if (hasNext && (!hasPrev || isLeaving)) { + // console.log('entering', key) + children[key] = (0, _react.cloneElement)(child, { + onExited: onExited.bind(null, child), + in: true, + exit: getProp(child, 'exit', nextProps), + enter: getProp(child, 'enter', nextProps) + }); + } else if (!hasNext && hasPrev && !isLeaving) { + // item is old (exiting) + // console.log('leaving', key) + children[key] = (0, _react.cloneElement)(child, { in: false }); + } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) { + // item hasn't changed transition states + // copy over the last transition props; + // console.log('unchanged', key) + children[key] = (0, _react.cloneElement)(child, { + onExited: onExited.bind(null, child), + in: prevChild.props.in, + exit: getProp(child, 'exit', nextProps), + enter: getProp(child, 'enter', nextProps) + }); + } + }); + + return children; +} + +/***/ }), + +/***/ "./node_modules/react-transition-group/utils/PropTypes.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-transition-group/utils/PropTypes.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.classNamesShape = exports.timeoutsShape = undefined; +exports.transitionTimeout = transitionTimeout; + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function transitionTimeout(transitionType) { + var timeoutPropName = 'transition' + transitionType + 'Timeout'; + var enabledPropName = 'transition' + transitionType; + + return function (props) { + // If the transition is enabled + if (props[enabledPropName]) { + // If no timeout duration is provided + if (props[timeoutPropName] == null) { + return new Error(timeoutPropName + ' wasn\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); + + // If the duration isn't a number + } else if (typeof props[timeoutPropName] !== 'number') { + return new Error(timeoutPropName + ' must be a number (in milliseconds)'); + } + } + + return null; + }; +} + +var timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ + enter: _propTypes2.default.number, + exit: _propTypes2.default.number +}).isRequired]); + +var classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ + enter: _propTypes2.default.string, + exit: _propTypes2.default.string, + active: _propTypes2.default.string +}), _propTypes2.default.shape({ + enter: _propTypes2.default.string, + enterDone: _propTypes2.default.string, + enterActive: _propTypes2.default.string, + exit: _propTypes2.default.string, + exitDone: _propTypes2.default.string, + exitActive: _propTypes2.default.string +})]); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** @license React v16.4.1 + * react.development.js + * + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + + +if (true) { + (function() { +'use strict'; + +var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); +var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js"); +var emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ "./node_modules/fbjs/lib/emptyObject.js"); +var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js"); +var emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js"); +var checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js"); + +// TODO: this is special because it gets imported during build. + +var ReactVersion = '16.4.1'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; + +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_TIMEOUT_TYPE = hasSymbol ? Symbol.for('react.timeout') : 0xead1; + +var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; +var FAUX_ITERATOR_SYMBOL = '@@iterator'; + +function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable === 'undefined') { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === 'function') { + return maybeIterator; + } + return null; +} + +// Relying on the `invariant()` implementation lets us +// have preserve the format and params in the www builds. + +// Exports ReactDOM.createRoot + + +// Experimental error-boundary API that can recover from errors within a single +// render phase + +// Suspense +var enableSuspense = false; +// Helps identify side effects in begin-phase lifecycle hooks and setState reducers: + + +// In some cases, StrictMode should also double-render lifecycles. +// This can be confusing for tests though, +// And it can be bad for performance in production. +// This feature flag can be used to control the behavior: + + +// To preserve the "Pause on caught exceptions" behavior of the debugger, we +// replay the begin phase of a failed component inside invokeGuardedCallback. + + +// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6: + + +// Warn about legacy context API + + +// Gather advanced timing metrics for Profiler subtrees. + + +// Only used in www builds. + +/** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * 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 lowPriorityWarning = function () {}; + +{ + var printWarning = function (format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.warn(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) {} + }; + + lowPriorityWarning = function (condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +var lowPriorityWarning$1 = lowPriorityWarning; + +var didWarnStateUpdateForUnmountedComponent = {}; + +function warnNoop(publicInstance, callerName) { + { + var _constructor = publicInstance.constructor; + var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass'; + var warningKey = componentName + '.' + callerName; + if (didWarnStateUpdateForUnmountedComponent[warningKey]) { + return; + } + warning(false, "Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName); + didWarnStateUpdateForUnmountedComponent[warningKey] = true; + } +} + +/** + * 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; + }, + + /** + * 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. + * @param {?function} callback Called after component is updated. + * @param {?string} callerName name of the calling function in the public API. + * @internal + */ + enqueueForceUpdate: function (publicInstance, callback, callerName) { + warnNoop(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. + * @param {?function} callback Called after component is updated. + * @param {?string} callerName name of the calling function in the public API. + * @internal + */ + enqueueReplaceState: function (publicInstance, completeState, callback, callerName) { + warnNoop(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. + * @param {?function} callback Called after component is updated. + * @param {?string} Name of the calling function in the public API. + * @internal + */ + enqueueSetState: function (publicInstance, partialState, callback, callerName) { + warnNoop(publicInstance, 'setState'); + } +}; + +/** + * Base class helpers for the updating state of a component. + */ +function Component(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; +} + +Component.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 + */ +Component.prototype.setState = function (partialState, callback) { + !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : void 0; + this.updater.enqueueSetState(this, partialState, 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 + */ +Component.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(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. + */ +{ + 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) { + Object.defineProperty(Component.prototype, methodName, { + get: function () { + lowPriorityWarning$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]); + return undefined; + } + }); + }; + for (var fnName in deprecatedAPIs) { + if (deprecatedAPIs.hasOwnProperty(fnName)) { + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + } + } +} + +function ComponentDummy() {} +ComponentDummy.prototype = Component.prototype; + +/** + * Convenience component with default shallow equality check for sCU. + */ +function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; +} + +var pureComponentPrototype = PureComponent.prototype = new ComponentDummy(); +pureComponentPrototype.constructor = PureComponent; +// Avoid an extra prototype jump for these methods. +_assign(pureComponentPrototype, Component.prototype); +pureComponentPrototype.isPureReactComponent = true; + +// an immutable object with a single mutable value +function createRef() { + var refObject = { + current: null + }; + { + Object.seal(refObject); + } + return refObject; +} + +/** + * 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 +}; + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true +}; + +var specialPropKeyWarningShown = void 0; +var specialPropRefWarningShown = void 0; + +function hasValidRef(config) { + { + if (hasOwnProperty.call(config, 'ref')) { + var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.ref !== undefined; +} + +function hasValidKey(config) { + { + if (hasOwnProperty.call(config, 'key')) { + var getter = Object.getOwnPropertyDescriptor(config, 'key').get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.key !== undefined; +} + +function defineKeyPropWarningGetter(props, displayName) { + var warnAboutAccessingKey = function () { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + 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)', displayName); + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, 'key', { + get: warnAboutAccessingKey, + configurable: true + }); +} + +function defineRefPropWarningGetter(props, displayName) { + var warnAboutAccessingRef = function () { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + 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)', displayName); + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, 'ref', { + get: warnAboutAccessingRef, + configurable: true + }); +} + +/** + * 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 allows 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 + }; + + { + // 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. + 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 + }); + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + + return element; +}; + +/** + * Create and return a new ReactElement of the given type. + * See https://reactjs.org/docs/react-api.html#createelement + */ +function createElement(type, config, children) { + var propName = void 0; + + // Reserved names are extracted + var props = {}; + + var key = null; + var ref = null; + var self = null; + var source = null; + + if (config != null) { + if (hasValidRef(config)) { + ref = config.ref; + } + if (hasValidKey(config)) { + key = '' + 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 (hasOwnProperty.call(config, 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]; + } + { + if (Object.freeze) { + Object.freeze(childArray); + } + } + 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 (key || ref) { + if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { + var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + } + } + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); +} + +/** + * Return a function that produces ReactElements of a given type. + * See https://reactjs.org/docs/react-api.html#createfactory + */ + + +function cloneAndReplaceKey(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://reactjs.org/docs/react-api.html#cloneelement + */ +function cloneElement(element, config, children) { + !!(element === null || element === undefined) ? invariant(false, 'React.cloneElement(...): The argument must be a React element, but you passed %s.', element) : void 0; + + var propName = void 0; + + // 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 (hasValidRef(config)) { + // Silently steal the ref from the parent. + ref = config.ref; + owner = ReactCurrentOwner.current; + } + if (hasValidKey(config)) { + key = '' + config.key; + } + + // Remaining properties override existing props + var defaultProps = void 0; + if (element.type && element.type.defaultProps) { + defaultProps = element.type.defaultProps; + } + for (propName in config) { + if (hasOwnProperty.call(config, 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://reactjs.org/docs/react-api.html#isvalidelement + * @param {?object} object + * @return {boolean} True if `object` is a valid component. + * @final + */ +function isValidElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} + +var ReactDebugCurrentFrame = {}; + +{ + // Component that is being worked on + ReactDebugCurrentFrame.getCurrentStack = null; + + ReactDebugCurrentFrame.getStackAddendum = function () { + var impl = ReactDebugCurrentFrame.getCurrentStack; + if (impl) { + return impl(); + } + return null; + }; +} + +var SEPARATOR = '.'; +var SUBSEPARATOR = ':'; + +/** + * Escape and wrap key so it is safe to use as a reactid + * + * @param {string} 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; +} + +/** + * TODO: Test that a single child and an array with one item have the same key + * pattern. + */ + +var didWarnAboutMaps = false; + +var userProvidedKeyEscapeRegex = /\/+/g; +function escapeUserProvidedKey(text) { + return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); +} + +var POOL_SIZE = 10; +var traverseContextPool = []; +function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) { + if (traverseContextPool.length) { + var traverseContext = traverseContextPool.pop(); + traverseContext.result = mapResult; + traverseContext.keyPrefix = keyPrefix; + traverseContext.func = mapFunction; + traverseContext.context = mapContext; + traverseContext.count = 0; + return traverseContext; + } else { + return { + result: mapResult, + keyPrefix: keyPrefix, + func: mapFunction, + context: mapContext, + count: 0 + }; + } +} + +function releaseTraverseContext(traverseContext) { + traverseContext.result = null; + traverseContext.keyPrefix = null; + traverseContext.func = null; + traverseContext.context = null; + traverseContext.count = 0; + if (traverseContextPool.length < POOL_SIZE) { + traverseContextPool.push(traverseContext); + } +} + +/** + * @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; + } + + var invokeCallback = false; + + if (children === null) { + invokeCallback = true; + } else { + switch (type) { + case 'string': + case 'number': + invokeCallback = true; + break; + case 'object': + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + } + } + } + + if (invokeCallback) { + 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 = void 0; + var nextName = void 0; + 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 (typeof iteratorFn === 'function') { + { + // Warn about using Maps as children + if (iteratorFn === children.entries) { + !didWarnAboutMaps ? warning(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.%s', ReactDebugCurrentFrame.getStackAddendum()) : void 0; + didWarnAboutMaps = true; + } + } + + var iterator = iteratorFn.call(children); + var step = void 0; + var ii = 0; + while (!(step = iterator.next()).done) { + child = step.value; + nextName = nextNamePrefix + getComponentKey(child, ii++); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } else if (type === 'object') { + var addendum = ''; + { + addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum(); + } + var childrenString = '' + children; + 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); + } + } + + 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); +} + +/** + * 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 (typeof component === 'object' && component !== null && component.key != null) { + // Explicit key + return escape(component.key); + } + // Implicit key determined by the index in the set + return index.toString(36); +} + +function forEachSingleChild(bookKeeping, child, name) { + var func = bookKeeping.func, + context = bookKeeping.context; + + func.call(context, child, bookKeeping.count++); +} + +/** + * Iterates through children that are typically specified as `props.children`. + * + * See https://reactjs.org/docs/react-api.html#reactchildrenforeach + * + * 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 = getPooledTraverseContext(null, null, forEachFunc, forEachContext); + traverseAllChildren(children, forEachSingleChild, traverseContext); + releaseTraverseContext(traverseContext); +} + +function mapSingleChildIntoContext(bookKeeping, child, childKey) { + var result = bookKeeping.result, + keyPrefix = bookKeeping.keyPrefix, + func = bookKeeping.func, + 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 (isValidElement(mappedChild)) { + mappedChild = 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 = getPooledTraverseContext(array, escapedPrefix, func, context); + traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); + releaseTraverseContext(traverseContext); +} + +/** + * Maps children that are typically specified as `props.children`. + * + * See https://reactjs.org/docs/react-api.html#reactchildrenmap + * + * 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; +} + +/** + * Count the number of children that are typically specified as + * `props.children`. + * + * See https://reactjs.org/docs/react-api.html#reactchildrencount + * + * @param {?*} children Children tree container. + * @return {number} The number of children. + */ +function countChildren(children) { + return traverseAllChildren(children, emptyFunction.thatReturnsNull, null); +} + +/** + * Flatten a children object (typically specified as `props.children`) and + * return an array with appropriately re-keyed children. + * + * See https://reactjs.org/docs/react-api.html#reactchildrentoarray + */ +function toArray(children) { + var result = []; + mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); + return result; +} + +/** + * Returns the first child in a collection of children and verifies that there + * is only one child in the collection. + * + * See https://reactjs.org/docs/react-api.html#reactchildrenonly + * + * 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) { + !isValidElement(children) ? invariant(false, 'React.Children.only expected to receive a single React element child.') : void 0; + return children; +} + +function createContext(defaultValue, calculateChangedBits) { + if (calculateChangedBits === undefined) { + calculateChangedBits = null; + } else { + { + !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warning(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0; + } + } + + var context = { + $$typeof: REACT_CONTEXT_TYPE, + _calculateChangedBits: calculateChangedBits, + _defaultValue: defaultValue, + _currentValue: defaultValue, + // As a workaround to support multiple concurrent renderers, we categorize + // some renderers as primary and others as secondary. We only expect + // there to be two concurrent renderers at most: React Native (primary) and + // Fabric (secondary); React DOM (primary) and React ART (secondary). + // Secondary renderers store their context values on separate fields. + _currentValue2: defaultValue, + _changedBits: 0, + _changedBits2: 0, + // These are circular + Provider: null, + Consumer: null + }; + + context.Provider = { + $$typeof: REACT_PROVIDER_TYPE, + _context: context + }; + context.Consumer = context; + + { + context._currentRenderer = null; + context._currentRenderer2 = null; + } + + return context; +} + +function forwardRef(render) { + { + !(typeof render === 'function') ? warning(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render) : void 0; + + if (render != null) { + !(render.defaultProps == null && render.propTypes == null) ? warning(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0; + } + } + + return { + $$typeof: REACT_FORWARD_REF_TYPE, + render: render + }; +} + +var describeComponentFrame = function (name, source, ownerName) { + return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); +}; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || + // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_ASYNC_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_TIMEOUT_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); +} + +function getComponentName(fiber) { + var type = fiber.type; + + if (typeof type === 'function') { + return type.displayName || type.name; + } + if (typeof type === 'string') { + return type; + } + switch (type) { + case REACT_ASYNC_MODE_TYPE: + return 'AsyncMode'; + case REACT_CONTEXT_TYPE: + return 'Context.Consumer'; + case REACT_FRAGMENT_TYPE: + return 'ReactFragment'; + case REACT_PORTAL_TYPE: + return 'ReactPortal'; + case REACT_PROFILER_TYPE: + return 'Profiler(' + fiber.pendingProps.id + ')'; + case REACT_PROVIDER_TYPE: + return 'Context.Provider'; + case REACT_STRICT_MODE_TYPE: + return 'StrictMode'; + case REACT_TIMEOUT_TYPE: + return 'Timeout'; + } + if (typeof type === 'object' && type !== null) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + var functionName = type.render.displayName || type.render.name || ''; + return functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef'; + } + } + return null; +} + +/** + * 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. + */ + +var currentlyValidatingElement = void 0; +var propTypesMisspellWarningShown = void 0; + +var getDisplayName = function () {}; +var getStackAddendum = function () {}; + +{ + currentlyValidatingElement = null; + + propTypesMisspellWarningShown = false; + + getDisplayName = function (element) { + if (element == null) { + return '#empty'; + } else if (typeof element === 'string' || typeof element === 'number') { + return '#text'; + } else if (typeof element.type === 'string') { + return element.type; + } + + var type = element.type; + if (type === REACT_FRAGMENT_TYPE) { + return 'React.Fragment'; + } else if (typeof type === 'object' && type !== null && type.$$typeof === REACT_FORWARD_REF_TYPE) { + var functionName = type.render.displayName || type.render.name || ''; + return functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef'; + } else { + return type.displayName || type.name || 'Unknown'; + } + }; + + getStackAddendum = function () { + var stack = ''; + if (currentlyValidatingElement) { + var name = getDisplayName(currentlyValidatingElement); + var owner = currentlyValidatingElement._owner; + stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner)); + } + stack += ReactDebugCurrentFrame.getStackAddendum() || ''; + return stack; + }; +} + +function getDeclarationErrorAddendum() { + if (ReactCurrentOwner.current) { + var name = getComponentName(ReactCurrentOwner.current); + if (name) { + return '\n\nCheck the render method of `' + name + '`.'; + } + } + return ''; +} + +function getSourceInfoErrorAddendum(elementProps) { + if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) { + var source = elementProps.__source; + var fileName = source.fileName.replace(/^.*[\\\/]/, ''); + var lineNumber = source.lineNumber; + return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.'; + } + 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 = {}; + +function getCurrentComponentErrorInfo(parentType) { + var info = getDeclarationErrorAddendum(); + + if (!info) { + var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = '\n\nCheck the top-level render call using <' + parentName + '>.'; + } + } + return info; +} + +/** + * 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. Error statuses are cached so a warning + * will only be shown once. + * + * @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 currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { + return; + } + ownerHasKeyUseWarning[currentComponentErrorInfo] = true; + + // 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. + var childOwner = ''; + if (element && element._owner && element._owner !== ReactCurrentOwner.current) { + // Give the component that originally created this child. + childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.'; + } + + currentlyValidatingElement = element; + { + warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, getStackAddendum()); + } + currentlyValidatingElement = null; +} + +/** + * 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 (isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (isValidElement(node)) { + // This element was passed in a valid location. + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + if (typeof iteratorFn === 'function') { + // Entry iterators used to provide implicit keys, + // but now we print a separate warning for them later. + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step = void 0; + while (!(step = iterator.next()).done) { + if (isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } +} + +/** + * Given an element, validate that its props follow the propTypes definition, + * provided by the type. + * + * @param {ReactElement} element + */ +function validatePropTypes(element) { + var type = element.type; + var name = void 0, + propTypes = void 0; + if (typeof type === 'function') { + // Class or functional component + name = type.displayName || type.name; + propTypes = type.propTypes; + } else if (typeof type === 'object' && type !== null && type.$$typeof === REACT_FORWARD_REF_TYPE) { + // ForwardRef + var functionName = type.render.displayName || type.render.name || ''; + name = functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef'; + propTypes = type.propTypes; + } else { + return; + } + if (propTypes) { + currentlyValidatingElement = element; + checkPropTypes(propTypes, element.props, 'prop', name, getStackAddendum); + currentlyValidatingElement = null; + } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) { + propTypesMisspellWarningShown = true; + warning(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown'); + } + if (typeof type.getDefaultProps === 'function') { + !type.getDefaultProps.isReactClassApproved ? warning(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; + } +} + +/** + * Given a fragment, validate that it can only be provided with fragment props + * @param {ReactElement} fragment + */ +function validateFragmentProps(fragment) { + currentlyValidatingElement = fragment; + + var keys = Object.keys(fragment.props); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key !== 'children' && key !== 'key') { + warning(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.%s', key, getStackAddendum()); + break; + } + } + + if (fragment.ref !== null) { + warning(false, 'Invalid attribute `ref` supplied to `React.Fragment`.%s', getStackAddendum()); + } + + currentlyValidatingElement = null; +} + +function createElementWithValidation(type, props, children) { + var validType = isValidElementType(type); + + // We warn in this case but don't throw. We expect the element creation to + // succeed and there will likely be errors in render. + if (!validType) { + var info = ''; + if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { + info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports."; + } + + var sourceInfo = getSourceInfoErrorAddendum(props); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } + + info += getStackAddendum() || ''; + + var typeString = void 0; + if (type === null) { + typeString = 'null'; + } else if (Array.isArray(type)) { + typeString = 'array'; + } else { + typeString = typeof type; + } + + warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info); + } + + var element = 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); + } + } + + if (type === REACT_FRAGMENT_TYPE) { + validateFragmentProps(element); + } else { + validatePropTypes(element); + } + + return element; +} + +function createFactoryWithValidation(type) { + var validatedFactory = createElementWithValidation.bind(null, type); + validatedFactory.type = type; + // Legacy hook: remove it + { + Object.defineProperty(validatedFactory, 'type', { + enumerable: false, + get: function () { + lowPriorityWarning$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.'); + Object.defineProperty(this, 'type', { + value: type + }); + return type; + } + }); + } + + return validatedFactory; +} + +function cloneElementWithValidation(element, props, children) { + var newElement = cloneElement.apply(this, arguments); + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], newElement.type); + } + validatePropTypes(newElement); + return newElement; +} + +var React = { + Children: { + map: mapChildren, + forEach: forEachChildren, + count: countChildren, + toArray: toArray, + only: onlyChild + }, + + createRef: createRef, + Component: Component, + PureComponent: PureComponent, + + createContext: createContext, + forwardRef: forwardRef, + + Fragment: REACT_FRAGMENT_TYPE, + StrictMode: REACT_STRICT_MODE_TYPE, + unstable_AsyncMode: REACT_ASYNC_MODE_TYPE, + unstable_Profiler: REACT_PROFILER_TYPE, + + createElement: createElementWithValidation, + cloneElement: cloneElementWithValidation, + createFactory: createFactoryWithValidation, + isValidElement: isValidElement, + + version: ReactVersion, + + __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: { + ReactCurrentOwner: ReactCurrentOwner, + // Used by renderers to avoid bundling object-assign twice in UMD bundles: + assign: _assign + } +}; + +if (enableSuspense) { + React.Timeout = REACT_TIMEOUT_TYPE; +} + +{ + _assign(React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, { + // These should not be included in production. + ReactDebugCurrentFrame: ReactDebugCurrentFrame, + // Shim for React DOM 16.0.0 which still destructured (but not used) this. + // TODO: remove in React 17.0. + ReactComponentTreeHook: {} + }); +} + + + +var React$2 = Object.freeze({ + default: React +}); + +var React$3 = ( React$2 && React ) || React$2; + +// TODO: decide on the top-level export form. +// This is hacky but makes it work with both Rollup and Jest. +var react = React$3.default ? React$3.default : React$3; + +module.exports = react; + })(); +} + + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +if (false) {} else { + module.exports = __webpack_require__(/*! ./cjs/react.development.js */ "./node_modules/react/cjs/react.development.js"); +} + + +/***/ }), + +/***/ "./node_modules/reactstrap/dist/reactstrap.es.js": +/*!*******************************************************!*\ + !*** ./node_modules/reactstrap/dist/reactstrap.es.js ***! + \*******************************************************/ +/*! exports provided: Alert, Container, Row, Col, Navbar, NavbarBrand, NavbarToggler, Nav, NavItem, NavDropdown, NavLink, Breadcrumb, BreadcrumbItem, Button, ButtonDropdown, ButtonGroup, ButtonToolbar, Dropdown, DropdownItem, DropdownMenu, DropdownToggle, Fade, Badge, Card, CardLink, CardGroup, CardDeck, CardColumns, CardBody, CardBlock, CardFooter, CardHeader, CardImg, CardImgOverlay, Carousel, UncontrolledCarousel, CarouselControl, CarouselItem, CarouselIndicators, CarouselCaption, CardSubtitle, CardText, CardTitle, Popover, PopoverContent, PopoverBody, PopoverTitle, PopoverHeader, Progress, Modal, ModalHeader, ModalBody, ModalFooter, PopperContent, PopperTargetHelper, Tooltip, Table, ListGroup, Form, FormFeedback, FormGroup, FormText, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupButtonDropdown, InputGroupText, Label, CustomInput, Media, Pagination, PaginationItem, PaginationLink, TabContent, TabPane, Jumbotron, Collapse, ListGroupItem, ListGroupItemText, ListGroupItemHeading, UncontrolledAlert, UncontrolledButtonDropdown, UncontrolledCollapse, UncontrolledDropdown, UncontrolledNavDropdown, UncontrolledTooltip, Util */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Alert", function() { return Alert; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Container", function() { return Container; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Row", function() { return Row; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Col", function() { return Col; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Navbar", function() { return Navbar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavbarBrand", function() { return NavbarBrand; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavbarToggler", function() { return NavbarToggler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return Nav; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavItem", function() { return NavItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavDropdown", function() { return NavDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavLink", function() { return NavLink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return Breadcrumb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return BreadcrumbItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return Button; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonDropdown", function() { return ButtonDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return ButtonGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonToolbar", function() { return ButtonToolbar; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownItem", function() { return DropdownItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownMenu", function() { return DropdownMenu; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownToggle", function() { return DropdownToggle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fade", function() { return Fade; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return Badge; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Card", function() { return Card; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardLink", function() { return CardLink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardGroup", function() { return CardGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardDeck", function() { return CardDeck; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardColumns", function() { return CardColumns; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardBody", function() { return CardBody; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardBlock", function() { return CardBlock; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardFooter", function() { return CardFooter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardHeader", function() { return CardHeader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardImg", function() { return CardImg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardImgOverlay", function() { return CardImgOverlay; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return Carousel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledCarousel", function() { return UncontrolledCarousel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselControl", function() { return CarouselControl; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return CarouselItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselIndicators", function() { return CarouselIndicators; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselCaption", function() { return CarouselCaption; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardSubtitle", function() { return CardSubtitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardText", function() { return CardText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CardTitle", function() { return CardTitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return Popover; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopoverContent", function() { return PopoverContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopoverBody", function() { return PopoverBody; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopoverTitle", function() { return PopoverTitle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopoverHeader", function() { return PopoverHeader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Progress", function() { return Progress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return Modal; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalHeader", function() { return ModalHeader; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalBody", function() { return ModalBody; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalFooter", function() { return ModalFooter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopperContent", function() { return PopperContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopperTargetHelper", function() { return PopperTargetHelper; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return Tooltip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return Table; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroup", function() { return ListGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Form", function() { return Form; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormFeedback", function() { return FormFeedback; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return FormGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormText", function() { return FormText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return Input; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroup", function() { return InputGroup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroupAddon", function() { return InputGroupAddon; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroupButton", function() { return InputGroupButton; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroupButtonDropdown", function() { return InputGroupButtonDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroupText", function() { return InputGroupText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return Label; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomInput", function() { return CustomInput; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Media", function() { return Media; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Pagination", function() { return Pagination; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationItem", function() { return PaginationItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationLink", function() { return PaginationLink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabContent", function() { return TabContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabPane", function() { return TabPane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Jumbotron", function() { return Jumbotron; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Collapse", function() { return Collapse; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroupItem", function() { return ListGroupItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroupItemText", function() { return ListGroupItemText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroupItemHeading", function() { return ListGroupItemHeading; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledAlert", function() { return UncontrolledAlert; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledButtonDropdown", function() { return UncontrolledButtonDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledCollapse", function() { return UncontrolledCollapse; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledDropdown", function() { return UncontrolledDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledNavDropdown", function() { return UncontrolledNavDropdown; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UncontrolledTooltip", function() { return UncontrolledTooltip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Util", function() { return utils; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); +/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js"); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var lodash_isfunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash.isfunction */ "./node_modules/lodash.isfunction/index.js"); +/* harmony import */ var lodash_isfunction__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_isfunction__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var lodash_isobject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash.isobject */ "./node_modules/lodash.isobject/index.js"); +/* harmony import */ var lodash_isobject__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isobject__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js"); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var react_popper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-popper */ "./node_modules/react-popper/lib/react-popper.js"); +/* harmony import */ var lodash_tonumber__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash.tonumber */ "./node_modules/lodash.tonumber/index.js"); +/* harmony import */ var lodash_tonumber__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_tonumber__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"); + + + + + + + + + + +// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443 +function getScrollbarWidth() { + var scrollDiv = document.createElement('div'); + // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113 + scrollDiv.style.position = 'absolute'; + scrollDiv.style.top = '-9999px'; + scrollDiv.style.width = '50px'; + scrollDiv.style.height = '50px'; + scrollDiv.style.overflow = 'scroll'; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; +} + +function setScrollbarWidth(padding) { + document.body.style.paddingRight = padding > 0 ? padding + 'px' : null; +} + +function isBodyOverflowing() { + return document.body.clientWidth < window.innerWidth; +} + +function getOriginalBodyPadding() { + var style = window.getComputedStyle(document.body, null); + + return parseInt(style && style.getPropertyValue('padding-right') || 0, 10); +} + +function conditionallyUpdateScrollbar() { + var scrollbarWidth = getScrollbarWidth(); + // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433 + var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0]; + var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0; + + if (isBodyOverflowing()) { + setScrollbarWidth(bodyPadding + scrollbarWidth); + } +} + +var globalCssModule = void 0; + +function setGlobalCssModule(cssModule) { + globalCssModule = cssModule; +} + +function mapToCssModules() { + var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var cssModule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalCssModule; + + if (!cssModule) return className; + return className.split(' ').map(function (c) { + return cssModule[c] || c; + }).join(' '); +} + +/** + * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`. + */ +function omit(obj, omitKeys) { + var result = {}; + Object.keys(obj).forEach(function (key) { + if (omitKeys.indexOf(key) === -1) { + result[key] = obj[key]; + } + }); + return result; +} + +/** + * Returns a filtered copy of an object with only the specified keys. + */ +function pick(obj, keys) { + var pickKeys = Array.isArray(keys) ? keys : [keys]; + var length = pickKeys.length; + var key = void 0; + var result = {}; + + while (length > 0) { + length -= 1; + key = pickKeys[length]; + result[key] = obj[key]; + } + return result; +} + +var warned = {}; + +function warnOnce(message) { + if (!warned[message]) { + /* istanbul ignore else */ + if (typeof console !== 'undefined') { + console.error(message); // eslint-disable-line no-console + } + warned[message] = true; + } +} + +function deprecated(propType, explanation) { + return function validate(props, propName, componentName) { + if (props[propName] !== null && typeof props[propName] !== 'undefined') { + warnOnce('"' + propName + '" property of "' + componentName + '" has been deprecated.\n' + explanation); + } + + for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + + return propType.apply(undefined, [props, propName, componentName].concat(rest)); + }; +} + +function DOMElement(props, propName, componentName) { + if (!(props[propName] instanceof Element)) { + return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.'); + } +} + +/* eslint key-spacing: ["error", { afterColon: true, align: "value" }] */ +// These are all setup to match what is in the bootstrap _variables.scss +// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss +var TransitionTimeouts = { + Fade: 150, // $transition-fade + Collapse: 350, // $transition-collapse + Modal: 300, // $modal-transition + Carousel: 600 // $carousel-transition +}; + +// Duplicated Transition.propType keys to ensure that Reactstrap builds +// for distribution properly exclude these keys for nested child HTML attributes +// since `react-transition-group` removes propTypes in production builds. +var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']; + +var TransitionStatuses = { + ENTERING: 'entering', + ENTERED: 'entered', + EXITING: 'exiting', + EXITED: 'exited' +}; + +var keyCodes = { + esc: 27, + space: 32, + tab: 9, + up: 38, + down: 40 +}; + +var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +function findDOMElements(target) { + if (lodash_isfunction__WEBPACK_IMPORTED_MODULE_3___default()(target)) { + return target(); + } + if (typeof target === 'string' && canUseDOM) { + var selection = document.querySelectorAll(target); + if (!selection.length) { + selection = document.querySelectorAll('#' + target); + } + if (!selection.length) { + throw new Error('The target \'' + target + '\' could not be identified in the dom, tip: check spelling'); + } + return selection; + } + return target; +} + +function isArrayOrNodeList(els) { + return Array.isArray(els) || canUseDOM && typeof els.length === 'number'; +} + +function getTarget(target) { + var els = findDOMElements(target); + if (isArrayOrNodeList(els)) { + return els[0]; + } + return els; +} + +var defaultToggleEvents = ['touchstart', 'click']; + +function addMultipleEventListeners(_els, handler, _events) { + var els = _els; + if (!isArrayOrNodeList(els)) { + els = [els]; + } + + var events = _events; + if (typeof events === 'string') { + events = events.split(/\s+/); + } + + if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) { + throw new Error('\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\n The second must be a function.\n The third is a string or an array of strings that represents DOM events\n '); + } + events.forEach(function (event) { + els.forEach(function (el) { + el.addEventListener(event, handler); + }); + }); + return function removeEvents() { + events.forEach(function (event) { + els.forEach(function (el) { + el.removeEventListener(event, handler); + }); + }); + }; +} + +var utils = Object.freeze({ + getScrollbarWidth: getScrollbarWidth, + setScrollbarWidth: setScrollbarWidth, + isBodyOverflowing: isBodyOverflowing, + getOriginalBodyPadding: getOriginalBodyPadding, + conditionallyUpdateScrollbar: conditionallyUpdateScrollbar, + setGlobalCssModule: setGlobalCssModule, + mapToCssModules: mapToCssModules, + omit: omit, + pick: pick, + warnOnce: warnOnce, + deprecated: deprecated, + DOMElement: DOMElement, + TransitionTimeouts: TransitionTimeouts, + TransitionPropTypeKeys: TransitionPropTypeKeys, + TransitionStatuses: TransitionStatuses, + keyCodes: keyCodes, + PopperPlacements: PopperPlacements, + canUseDOM: canUseDOM, + findDOMElements: findDOMElements, + isArrayOrNodeList: isArrayOrNodeList, + getTarget: getTarget, + defaultToggleEvents: defaultToggleEvents, + addMultipleEventListeners: addMultipleEventListeners +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + + + + + + + + + + + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + + + +var inherits = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; +}; + + + + + + + + + +var objectWithoutProperties = function (obj, keys) { + var target = {}; + + for (var i in obj) { + if (keys.indexOf(i) >= 0) continue; + if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; + target[i] = obj[i]; + } + + return target; +}; + +var possibleConstructorReturn = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; +}; + +var propTypes = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + fluid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps = { + tag: 'div' +}; + +var Container = function Container(props) { + var className = props.className, + cssModule = props.cssModule, + fluid = props.fluid, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'fluid', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, fluid ? 'container-fluid' : 'container'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Container.propTypes = propTypes; +Container.defaultProps = defaultProps; + +var propTypes$1 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + noGutters: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$1 = { + tag: 'div' +}; + +var Row = function Row(props) { + var className = props.className, + cssModule = props.cssModule, + noGutters = props.noGutters, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'noGutters', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, noGutters ? 'no-gutters' : null, 'row'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Row.propTypes = propTypes$1; +Row.defaultProps = defaultProps$1; + +var colWidths = ['xs', 'sm', 'md', 'lg', 'xl']; +var stringOrNumberProp = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]); + +var columnProps = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + push: deprecated(stringOrNumberProp, 'Please use the prop "order"'), + pull: deprecated(stringOrNumberProp, 'Please use the prop "order"'), + order: stringOrNumberProp, + offset: stringOrNumberProp +})]); + +var propTypes$2 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + xs: columnProps, + sm: columnProps, + md: columnProps, + lg: columnProps, + xl: columnProps, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + widths: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array +}; + +var defaultProps$2 = { + tag: 'div', + widths: colWidths +}; + +var getColumnSizeClass = function getColumnSizeClass(isXs, colWidth, colSize) { + if (colSize === true || colSize === '') { + return isXs ? 'col' : 'col-' + colWidth; + } else if (colSize === 'auto') { + return isXs ? 'col-auto' : 'col-' + colWidth + '-auto'; + } + + return isXs ? 'col-' + colSize : 'col-' + colWidth + '-' + colSize; +}; + +var Col = function Col(props) { + var className = props.className, + cssModule = props.cssModule, + widths = props.widths, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'widths', 'tag']); + + var colClasses = []; + + widths.forEach(function (colWidth, i) { + var columnProp = props[colWidth]; + + delete attributes[colWidth]; + + if (!columnProp && columnProp !== '') { + return; + } + + var isXs = !i; + + if (lodash_isobject__WEBPACK_IMPORTED_MODULE_4___default()(columnProp)) { + var _classNames; + + var colSizeInterfix = isXs ? '-' : '-' + colWidth + '-'; + var colClass = getColumnSizeClass(isXs, colWidth, columnProp.size); + + colClasses.push(mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()((_classNames = {}, defineProperty(_classNames, colClass, columnProp.size || columnProp.size === ''), defineProperty(_classNames, 'order' + colSizeInterfix + columnProp.order, columnProp.order || columnProp.order === 0), defineProperty(_classNames, 'offset' + colSizeInterfix + columnProp.offset, columnProp.offset || columnProp.offset === 0), _classNames)), cssModule)); + } else { + var _colClass = getColumnSizeClass(isXs, colWidth, columnProp); + colClasses.push(_colClass); + } + }); + + if (!colClasses.length) { + colClasses.push('col'); + } + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, colClasses), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Col.propTypes = propTypes$2; +Col.defaultProps = defaultProps$2; + +var propTypes$3 = { + light: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + dark: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + inverse: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, 'Please use the prop "dark"'), + full: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + sticky: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + role: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + toggleable: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), 'Please use the prop "expand"'), + expand: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]) +}; + +var defaultProps$3 = { + tag: 'nav', + expand: false +}; + +var getExpandClass = function getExpandClass(expand) { + if (expand === false) { + return false; + } else if (expand === true || expand === 'xs') { + return 'navbar-expand'; + } + + return 'navbar-expand-' + expand; +}; + +// To better maintain backwards compatibility while toggleable is deprecated. +// We must map breakpoints to the next breakpoint so that toggleable and expand do the same things at the same breakpoint. +var toggleableToExpand = { + xs: 'sm', + sm: 'md', + md: 'lg', + lg: 'xl' +}; + +var getToggleableClass = function getToggleableClass(toggleable) { + if (toggleable === undefined || toggleable === 'xl') { + return false; + } else if (toggleable === false) { + return 'navbar-expand'; + } + + return 'navbar-expand-' + (toggleable === true ? 'sm' : toggleableToExpand[toggleable] || toggleable); +}; + +var Navbar = function Navbar(props) { + var _classNames; + + var toggleable = props.toggleable, + expand = props.expand, + className = props.className, + cssModule = props.cssModule, + light = props.light, + dark = props.dark, + inverse = props.inverse, + fixed = props.fixed, + sticky = props.sticky, + color = props.color, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['toggleable', 'expand', 'className', 'cssModule', 'light', 'dark', 'inverse', 'fixed', 'sticky', 'color', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'navbar', getExpandClass(expand) || getToggleableClass(toggleable), (_classNames = { + 'navbar-light': light, + 'navbar-dark': inverse || dark + }, defineProperty(_classNames, 'bg-' + color, color), defineProperty(_classNames, 'fixed-' + fixed, fixed), defineProperty(_classNames, 'sticky-' + sticky, sticky), _classNames)), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Navbar.propTypes = propTypes$3; +Navbar.defaultProps = defaultProps$3; + +var propTypes$4 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$4 = { + tag: 'a' +}; + +var NavbarBrand = function NavbarBrand(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'navbar-brand'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +NavbarBrand.propTypes = propTypes$4; +NavbarBrand.defaultProps = defaultProps$4; + +var propTypes$5 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + type: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node +}; + +var defaultProps$5 = { + tag: 'button', + type: 'button' +}; + +var NavbarToggler = function NavbarToggler(props) { + var className = props.className, + cssModule = props.cssModule, + children = props.children, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'children', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'navbar-toggler'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({}, attributes, { className: classes }), + children || react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('span', { className: mapToCssModules('navbar-toggler-icon', cssModule) }) + ); +}; + +NavbarToggler.propTypes = propTypes$5; +NavbarToggler.defaultProps = defaultProps$5; + +var propTypes$6 = { + tabs: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + pills: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + vertical: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + horizontal: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + justified: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + fill: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + navbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + card: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$6 = { + tag: 'ul', + vertical: false +}; + +var getVerticalClass = function getVerticalClass(vertical) { + if (vertical === false) { + return false; + } else if (vertical === true || vertical === 'xs') { + return 'flex-column'; + } + + return 'flex-' + vertical + '-column'; +}; + +var Nav = function Nav(props) { + var className = props.className, + cssModule = props.cssModule, + tabs = props.tabs, + pills = props.pills, + vertical = props.vertical, + horizontal = props.horizontal, + justified = props.justified, + fill = props.fill, + navbar = props.navbar, + card = props.card, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tabs', 'pills', 'vertical', 'horizontal', 'justified', 'fill', 'navbar', 'card', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, navbar ? 'navbar-nav' : 'nav', horizontal ? 'justify-content-' + horizontal : false, getVerticalClass(vertical), { + 'nav-tabs': tabs, + 'card-header-tabs': card && tabs, + 'nav-pills': pills, + 'card-header-pills': card && pills, + 'nav-justified': justified, + 'nav-fill': fill + }), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Nav.propTypes = propTypes$6; +Nav.defaultProps = defaultProps$6; + +var propTypes$7 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$7 = { + tag: 'li' +}; + +var NavItem = function NavItem(props) { + var className = props.className, + cssModule = props.cssModule, + active = props.active, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'active', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'nav-item', active ? 'active' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +NavItem.propTypes = propTypes$7; +NavItem.defaultProps = defaultProps$7; + +/* eslint react/no-find-dom-node: 0 */ +// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md + +var propTypes$8 = { + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + dropup: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, 'Please use the prop "direction" with the value "up".'), + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['up', 'down', 'left', 'right']), + group: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + nav: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + addonType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['prepend', 'append'])]), + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + inNavbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + setActiveFromChild: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var defaultProps$8 = { + isOpen: false, + direction: 'down', + nav: false, + active: false, + addonType: false, + inNavbar: false, + setActiveFromChild: false +}; + +var childContextTypes = { + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired, + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['up', 'down', 'left', 'right']).isRequired, + inNavbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired +}; + +var Dropdown = function (_React$Component) { + inherits(Dropdown, _React$Component); + + function Dropdown(props) { + classCallCheck(this, Dropdown); + + var _this = possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, props)); + + _this.addEvents = _this.addEvents.bind(_this); + _this.handleDocumentClick = _this.handleDocumentClick.bind(_this); + _this.handleKeyDown = _this.handleKeyDown.bind(_this); + _this.removeEvents = _this.removeEvents.bind(_this); + _this.toggle = _this.toggle.bind(_this); + return _this; + } + + createClass(Dropdown, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + toggle: this.props.toggle, + isOpen: this.props.isOpen, + direction: this.props.direction === 'down' && this.props.dropup ? 'up' : this.props.direction, + inNavbar: this.props.inNavbar + }; + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + this.handleProps(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (this.props.isOpen !== prevProps.isOpen) { + this.handleProps(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.removeEvents(); + } + }, { + key: 'getContainer', + value: function getContainer() { + return react_dom__WEBPACK_IMPORTED_MODULE_5___default.a.findDOMNode(this); + } + }, { + key: 'addEvents', + value: function addEvents() { + var _this2 = this; + + ['click', 'touchstart', 'keyup'].forEach(function (event) { + return document.addEventListener(event, _this2.handleDocumentClick, true); + }); + } + }, { + key: 'removeEvents', + value: function removeEvents() { + var _this3 = this; + + ['click', 'touchstart', 'keyup'].forEach(function (event) { + return document.removeEventListener(event, _this3.handleDocumentClick, true); + }); + } + }, { + key: 'handleDocumentClick', + value: function handleDocumentClick(e) { + if (e && (e.which === 3 || e.type === 'keyup' && e.which !== keyCodes.tab)) return; + var container = this.getContainer(); + + if (container.contains(e.target) && container !== e.target && (e.type !== 'keyup' || e.which === keyCodes.tab)) { + return; + } + + this.toggle(e); + } + }, { + key: 'handleKeyDown', + value: function handleKeyDown(e) { + if ([keyCodes.esc, keyCodes.up, keyCodes.down, keyCodes.space].indexOf(e.which) === -1 || /button/i.test(e.target.tagName) && e.which === keyCodes.space || /input|textarea/i.test(e.target.tagName)) { + return; + } + + e.preventDefault(); + if (this.props.disabled) return; + + var container = this.getContainer(); + + if (e.which === keyCodes.space && this.props.isOpen && container !== e.target) { + e.target.click(); + } + + if (e.which === keyCodes.esc || !this.props.isOpen) { + this.toggle(e); + container.querySelector('[aria-expanded]').focus(); + return; + } + + var menuClass = mapToCssModules('dropdown-menu', this.props.cssModule); + var itemClass = mapToCssModules('dropdown-item', this.props.cssModule); + var disabledClass = mapToCssModules('disabled', this.props.cssModule); + + var items = container.querySelectorAll('.' + menuClass + ' .' + itemClass + ':not(.' + disabledClass + ')'); + + if (!items.length) return; + + var index = -1; + for (var i = 0; i < items.length; i += 1) { + if (items[i] === e.target) { + index = i; + break; + } + } + + if (e.which === keyCodes.up && index > 0) { + index -= 1; + } + + if (e.which === keyCodes.down && index < items.length - 1) { + index += 1; + } + + if (index < 0) { + index = 0; + } + + items[index].focus(); + } + }, { + key: 'handleProps', + value: function handleProps() { + if (this.props.isOpen) { + this.addEvents(); + } else { + this.removeEvents(); + } + } + }, { + key: 'toggle', + value: function toggle(e) { + if (this.props.disabled) { + return e && e.preventDefault(); + } + + return this.props.toggle(e); + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _omit = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'direction']), + className = _omit.className, + cssModule = _omit.cssModule, + dropup = _omit.dropup, + isOpen = _omit.isOpen, + group = _omit.group, + size = _omit.size, + nav = _omit.nav, + setActiveFromChild = _omit.setActiveFromChild, + active = _omit.active, + addonType = _omit.addonType, + attrs = objectWithoutProperties(_omit, ['className', 'cssModule', 'dropup', 'isOpen', 'group', 'size', 'nav', 'setActiveFromChild', 'active', 'addonType']); + + var direction = this.props.direction === 'down' && dropup ? 'up' : this.props.direction; + + attrs.tag = attrs.tag || (nav ? 'li' : 'div'); + + var subItemIsActive = false; + if (setActiveFromChild) { + react__WEBPACK_IMPORTED_MODULE_0___default.a.Children.map(this.props.children[1].props.children, function (dropdownItem) { + if (dropdownItem.props.active) subItemIsActive = true; + }); + } + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, direction !== 'down' && 'drop' + direction, nav && active ? 'active' : false, setActiveFromChild && subItemIsActive ? 'active' : false, (_classNames = {}, defineProperty(_classNames, 'input-group-' + addonType, addonType), defineProperty(_classNames, 'btn-group', group), defineProperty(_classNames, 'btn-group-' + size, !!size), defineProperty(_classNames, 'dropdown', !group && !addonType), defineProperty(_classNames, 'show', isOpen), defineProperty(_classNames, 'nav-item', nav), _classNames)), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_popper__WEBPACK_IMPORTED_MODULE_6__["Manager"], _extends({}, attrs, { className: classes, onKeyDown: this.handleKeyDown })); + } + }]); + return Dropdown; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Dropdown.propTypes = propTypes$8; +Dropdown.defaultProps = defaultProps$8; +Dropdown.childContextTypes = childContextTypes; + +function NavDropdown(props) { + warnOnce('The "NavDropdown" component has been deprecated.\nPlease use component "Dropdown" with nav prop.'); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Dropdown, _extends({ nav: true }, props)); +} + +var propTypes$9 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + href: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any +}; + +var defaultProps$9 = { + tag: 'a' +}; + +var NavLink = function (_React$Component) { + inherits(NavLink, _React$Component); + + function NavLink(props) { + classCallCheck(this, NavLink); + + var _this = possibleConstructorReturn(this, (NavLink.__proto__ || Object.getPrototypeOf(NavLink)).call(this, props)); + + _this.onClick = _this.onClick.bind(_this); + return _this; + } + + createClass(NavLink, [{ + key: 'onClick', + value: function onClick(e) { + if (this.props.disabled) { + e.preventDefault(); + return; + } + + if (this.props.href === '#') { + e.preventDefault(); + } + + if (this.props.onClick) { + this.props.onClick(e); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + className = _props.className, + cssModule = _props.cssModule, + active = _props.active, + Tag = _props.tag, + innerRef = _props.innerRef, + attributes = objectWithoutProperties(_props, ['className', 'cssModule', 'active', 'tag', 'innerRef']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'nav-link', { + disabled: attributes.disabled, + active: active + }), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { ref: innerRef, onClick: this.onClick, className: classes })); + } + }]); + return NavLink; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +NavLink.propTypes = propTypes$9; +NavLink.defaultProps = defaultProps$9; + +var propTypes$10 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + listTag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + listClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + 'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var defaultProps$10 = { + tag: 'nav', + listTag: 'ol', + 'aria-label': 'breadcrumb' +}; + +var Breadcrumb = function Breadcrumb(props) { + var className = props.className, + listClassName = props.listClassName, + cssModule = props.cssModule, + children = props.children, + Tag = props.tag, + ListTag = props.listTag, + label = props['aria-label'], + attributes = objectWithoutProperties(props, ['className', 'listClassName', 'cssModule', 'children', 'tag', 'listTag', 'aria-label']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className), cssModule); + + var listClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('breadcrumb', listClassName), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({}, attributes, { className: classes, 'aria-label': label }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + ListTag, + { className: listClasses }, + children + ) + ); +}; + +Breadcrumb.propTypes = propTypes$10; +Breadcrumb.defaultProps = defaultProps$10; + +var propTypes$11 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$11 = { + tag: 'li' +}; + +var BreadcrumbItem = function BreadcrumbItem(props) { + var className = props.className, + cssModule = props.cssModule, + active = props.active, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'active', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, active ? 'active' : false, 'breadcrumb-item'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes, 'aria-current': active ? 'page' : undefined })); +}; + +BreadcrumbItem.propTypes = propTypes$11; +BreadcrumbItem.defaultProps = defaultProps$11; + +var propTypes$12 = { + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + block: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + outline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$12 = { + color: 'secondary', + tag: 'button' +}; + +var Button = function (_React$Component) { + inherits(Button, _React$Component); + + function Button(props) { + classCallCheck(this, Button); + + var _this = possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).call(this, props)); + + _this.onClick = _this.onClick.bind(_this); + return _this; + } + + createClass(Button, [{ + key: 'onClick', + value: function onClick(e) { + if (this.props.disabled) { + e.preventDefault(); + return; + } + + if (this.props.onClick) { + this.props.onClick(e); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + active = _props.active, + block = _props.block, + className = _props.className, + cssModule = _props.cssModule, + color = _props.color, + outline = _props.outline, + size = _props.size, + Tag = _props.tag, + innerRef = _props.innerRef, + attributes = objectWithoutProperties(_props, ['active', 'block', 'className', 'cssModule', 'color', 'outline', 'size', 'tag', 'innerRef']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'btn', 'btn' + (outline ? '-outline' : '') + '-' + color, size ? 'btn-' + size : false, block ? 'btn-block' : false, { active: active, disabled: this.props.disabled }), cssModule); + + if (attributes.href && Tag === 'button') { + Tag = 'a'; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({ + type: Tag === 'button' && attributes.onClick ? 'button' : undefined + }, attributes, { + className: classes, + ref: innerRef, + onClick: this.onClick + })); + } + }]); + return Button; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Button.propTypes = propTypes$12; +Button.defaultProps = defaultProps$12; + +var propTypes$13 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node +}; + +var ButtonDropdown = function ButtonDropdown(props) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Dropdown, _extends({ group: true }, props)); +}; + +ButtonDropdown.propTypes = propTypes$13; + +var propTypes$14 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + 'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + role: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + vertical: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var defaultProps$13 = { + tag: 'div', + role: 'group' +}; + +var ButtonGroup = function ButtonGroup(props) { + var className = props.className, + cssModule = props.cssModule, + size = props.size, + vertical = props.vertical, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'size', 'vertical', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, size ? 'btn-group-' + size : false, vertical ? 'btn-group-vertical' : 'btn-group'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ButtonGroup.propTypes = propTypes$14; +ButtonGroup.defaultProps = defaultProps$13; + +var propTypes$15 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + 'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + role: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var defaultProps$14 = { + tag: 'div', + role: 'toolbar' +}; + +var ButtonToolbar = function ButtonToolbar(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'btn-toolbar'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ButtonToolbar.propTypes = propTypes$15; +ButtonToolbar.defaultProps = defaultProps$14; + +var propTypes$16 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + divider: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var contextTypes = { + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func +}; + +var defaultProps$15 = { + tag: 'button', + toggle: true +}; + +var DropdownItem = function (_React$Component) { + inherits(DropdownItem, _React$Component); + + function DropdownItem(props) { + classCallCheck(this, DropdownItem); + + var _this = possibleConstructorReturn(this, (DropdownItem.__proto__ || Object.getPrototypeOf(DropdownItem)).call(this, props)); + + _this.onClick = _this.onClick.bind(_this); + _this.getTabIndex = _this.getTabIndex.bind(_this); + return _this; + } + + createClass(DropdownItem, [{ + key: 'onClick', + value: function onClick(e) { + if (this.props.disabled || this.props.header || this.props.divider) { + e.preventDefault(); + return; + } + + if (this.props.onClick) { + this.props.onClick(e); + } + + if (this.props.toggle) { + this.context.toggle(e); + } + } + }, { + key: 'getTabIndex', + value: function getTabIndex() { + if (this.props.disabled || this.props.header || this.props.divider) { + return '-1'; + } + + return '0'; + } + }, { + key: 'render', + value: function render() { + var tabIndex = this.getTabIndex(); + + var _omit = omit(this.props, ['toggle']), + className = _omit.className, + cssModule = _omit.cssModule, + divider = _omit.divider, + Tag = _omit.tag, + header = _omit.header, + active = _omit.active, + props = objectWithoutProperties(_omit, ['className', 'cssModule', 'divider', 'tag', 'header', 'active']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, { + disabled: props.disabled, + 'dropdown-item': !divider && !header, + active: active, + 'dropdown-header': header, + 'dropdown-divider': divider + }), cssModule); + + if (Tag === 'button') { + if (header) { + Tag = 'h6'; + } else if (divider) { + Tag = 'div'; + } else if (props.href) { + Tag = 'a'; + } + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({ + type: Tag === 'button' && (props.onClick || this.props.toggle) ? 'button' : undefined + }, props, { + tabIndex: tabIndex, + className: classes, + onClick: this.onClick + })); + } + }]); + return DropdownItem; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +DropdownItem.propTypes = propTypes$16; +DropdownItem.defaultProps = defaultProps$15; +DropdownItem.contextTypes = contextTypes; + +var propTypes$17 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node.isRequired, + right: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + flip: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + modifiers: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + persist: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var defaultProps$16 = { + tag: 'div', + flip: true +}; + +var contextTypes$1 = { + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired, + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['up', 'down', 'left', 'right']).isRequired, + inNavbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired +}; + +var noFlipModifier = { flip: { enabled: false } }; + +var directionPositionMap = { + up: 'top', + left: 'left', + right: 'right', + down: 'bottom' +}; + +var DropdownMenu = function DropdownMenu(props, context) { + var className = props.className, + cssModule = props.cssModule, + right = props.right, + tag = props.tag, + flip = props.flip, + modifiers = props.modifiers, + persist = props.persist, + attrs = objectWithoutProperties(props, ['className', 'cssModule', 'right', 'tag', 'flip', 'modifiers', 'persist']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'dropdown-menu', { + 'dropdown-menu-right': right, + show: context.isOpen + }), cssModule); + + var Tag = tag; + + if (persist || context.isOpen && !context.inNavbar) { + Tag = react_popper__WEBPACK_IMPORTED_MODULE_6__["Popper"]; + + var position1 = directionPositionMap[context.direction] || 'bottom'; + var position2 = right ? 'end' : 'start'; + attrs.placement = position1 + '-' + position2; + attrs.component = tag; + attrs.modifiers = !flip ? _extends({}, modifiers, noFlipModifier) : modifiers; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({ + tabIndex: '-1', + role: 'menu' + }, attrs, { + 'aria-hidden': !context.isOpen, + className: classes, + 'x-placement': attrs.placement + })); +}; + +DropdownMenu.propTypes = propTypes$17; +DropdownMenu.defaultProps = defaultProps$16; +DropdownMenu.contextTypes = contextTypes$1; + +var propTypes$18 = { + caret: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + 'aria-haspopup': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + split: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + nav: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var defaultProps$17 = { + 'aria-haspopup': true, + color: 'secondary' +}; + +var contextTypes$2 = { + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + inNavbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired +}; + +var DropdownToggle = function (_React$Component) { + inherits(DropdownToggle, _React$Component); + + function DropdownToggle(props) { + classCallCheck(this, DropdownToggle); + + var _this = possibleConstructorReturn(this, (DropdownToggle.__proto__ || Object.getPrototypeOf(DropdownToggle)).call(this, props)); + + _this.onClick = _this.onClick.bind(_this); + return _this; + } + + createClass(DropdownToggle, [{ + key: 'onClick', + value: function onClick(e) { + if (this.props.disabled) { + e.preventDefault(); + return; + } + + if (this.props.nav && !this.props.tag) { + e.preventDefault(); + } + + if (this.props.onClick) { + this.props.onClick(e); + } + + this.context.toggle(e); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + className = _props.className, + color = _props.color, + cssModule = _props.cssModule, + caret = _props.caret, + split = _props.split, + nav = _props.nav, + tag = _props.tag, + props = objectWithoutProperties(_props, ['className', 'color', 'cssModule', 'caret', 'split', 'nav', 'tag']); + + var ariaLabel = props['aria-label'] || 'Toggle Dropdown'; + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, { + 'dropdown-toggle': caret || split, + 'dropdown-toggle-split': split, + 'nav-link': nav + }), cssModule); + var children = props.children || react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { className: 'sr-only' }, + ariaLabel + ); + + var Tag = void 0; + + if (nav && !tag) { + Tag = 'a'; + props.href = '#'; + } else if (!tag) { + Tag = Button; + props.color = color; + props.cssModule = cssModule; + } else { + Tag = tag; + } + + if (this.context.inNavbar) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, props, { + className: classes, + onClick: this.onClick, + 'aria-expanded': this.context.isOpen, + children: children + })); + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_popper__WEBPACK_IMPORTED_MODULE_6__["Target"], _extends({}, props, { + className: classes, + component: Tag, + onClick: this.onClick, + 'aria-expanded': this.context.isOpen, + children: children + })); + } + }]); + return DropdownToggle; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +DropdownToggle.propTypes = propTypes$18; +DropdownToggle.defaultProps = defaultProps$17; +DropdownToggle.contextTypes = contextTypes$2; + +function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +var PropTypes$1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + exports.__esModule = true; + exports.classNamesShape = exports.timeoutsShape = undefined; + exports.transitionTimeout = transitionTimeout; + + var _propTypes2 = _interopRequireDefault(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function transitionTimeout(transitionType) { + var timeoutPropName = 'transition' + transitionType + 'Timeout'; + var enabledPropName = 'transition' + transitionType; + + return function (props) { + // If the transition is enabled + if (props[enabledPropName]) { + // If no timeout duration is provided + if (props[timeoutPropName] == null) { + return new Error(timeoutPropName + ' wasn\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); + + // If the duration isn't a number + } else if (typeof props[timeoutPropName] !== 'number') { + return new Error(timeoutPropName + ' must be a number (in milliseconds)'); + } + } + + return null; + }; + } + + var timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({ + enter: _propTypes2.default.number, + exit: _propTypes2.default.number + }).isRequired]); + + var classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ + enter: _propTypes2.default.string, + exit: _propTypes2.default.string, + active: _propTypes2.default.string + }), _propTypes2.default.shape({ + enter: _propTypes2.default.string, + enterDone: _propTypes2.default.string, + enterActive: _propTypes2.default.string, + exit: _propTypes2.default.string, + exitDone: _propTypes2.default.string, + exitActive: _propTypes2.default.string + })]); +}); + +unwrapExports(PropTypes$1); + +var Transition_1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + exports.__esModule = true; + exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined; + + var PropTypes$$1 = _interopRequireWildcard(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a); + + var _react2 = _interopRequireDefault(react__WEBPACK_IMPORTED_MODULE_0___default.a); + + var _reactDom2 = _interopRequireDefault(react_dom__WEBPACK_IMPORTED_MODULE_5___default.a); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {};if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; + } + }newObj.default = obj;return newObj; + } + } + + function _objectWithoutProperties(obj, keys) { + var target = {};for (var i in obj) { + if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i]; + }return target; + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + }return call && ((typeof call === 'undefined' ? 'undefined' : _typeof(call)) === "object" || typeof call === "function") ? call : self; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass))); + }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + + var UNMOUNTED = exports.UNMOUNTED = 'unmounted'; + var EXITED = exports.EXITED = 'exited'; + var ENTERING = exports.ENTERING = 'entering'; + var ENTERED = exports.ENTERED = 'entered'; + var EXITING = exports.EXITING = 'exiting'; + + /** + * The Transition component lets you describe a transition from one component + * state to another _over time_ with a simple declarative API. Most commonly + * it's used to animate the mounting and unmounting of a component, but can also + * be used to describe in-place transition states as well. + * + * By default the `Transition` component does not alter the behavior of the + * component it renders, it only tracks "enter" and "exit" states for the components. + * It's up to you to give meaning and effect to those states. For example we can + * add styles to a component when it enters or exits: + * + * ```jsx + * import Transition from 'react-transition-group/Transition'; + * + * const duration = 300; + * + * const defaultStyle = { + * transition: `opacity ${duration}ms ease-in-out`, + * opacity: 0, + * } + * + * const transitionStyles = { + * entering: { opacity: 0 }, + * entered: { opacity: 1 }, + * }; + * + * const Fade = ({ in: inProp }) => ( + * + * {(state) => ( + *
    + * I'm a fade Transition! + *
    + * )} + *
    + * ); + * ``` + * + * As noted the `Transition` component doesn't _do_ anything by itself to its child component. + * What it does do is track transition states over time so you can update the + * component (such as by adding styles or classes) when it changes states. + * + * There are 4 main states a Transition can be in: + * - `'entering'` + * - `'entered'` + * - `'exiting'` + * - `'exited'` + * + * Transition state is toggled via the `in` prop. When `true` the component begins the + * "Enter" stage. During this stage, the component will shift from its current transition state, + * to `'entering'` for the duration of the transition and then to the `'entered'` stage once + * it's complete. Let's take the following example: + * + * ```jsx + * state = { in: false }; + * + * toggleEnterState = () => { + * this.setState({ in: true }); + * } + * + * render() { + * return ( + *
    + * + * + *
    + * ); + * } + * ``` + * + * When the button is clicked the component will shift to the `'entering'` state and + * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`. + * + * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`. + * + * ## Timing + * + * Timing is often the trickiest part of animation, mistakes can result in slight delays + * that are hard to pin down. A common example is when you want to add an exit transition, + * you should set the desired final styles when the state is `'exiting'`. That's when the + * transition to those styles will start and, if you matched the `timeout` prop with the + * CSS Transition duration, it will end exactly when the state changes to `'exited'`. + * + * > **Note**: For simpler transitions the `Transition` component might be enough, but + * > take into account that it's platform-agnostic, while the `CSSTransition` component + * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215) + * > in order to make more complex transitions more predictable. For example, even though + * > classes `example-enter` and `example-enter-active` are applied immediately one after + * > another, you can still transition from one to the other because of the forced reflow + * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171) + * > for more info). Take this into account when choosing between `Transition` and + * > `CSSTransition`. + * + * ## Example + * + * + * + */ + + var Transition = function (_React$Component) { + _inherits(Transition, _React$Component); + + function Transition(props, context) { + _classCallCheck(this, Transition); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context)); + + var parentGroup = context.transitionGroup; + // In the context of a TransitionGroup all enters are really appears + var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; + + var initialStatus = void 0; + _this.nextStatus = null; + + if (props.in) { + if (appear) { + initialStatus = EXITED; + _this.nextStatus = ENTERING; + } else { + initialStatus = ENTERED; + } + } else { + if (props.unmountOnExit || props.mountOnEnter) { + initialStatus = UNMOUNTED; + } else { + initialStatus = EXITED; + } + } + + _this.state = { status: initialStatus }; + + _this.nextCallback = null; + return _this; + } + + Transition.prototype.getChildContext = function getChildContext() { + return { transitionGroup: null }; // allows for nested Transitions + }; + + Transition.prototype.componentDidMount = function componentDidMount() { + this.updateStatus(true); + }; + + Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var _ref = this.pendingState || this.state, + status = _ref.status; + + if (nextProps.in) { + if (status === UNMOUNTED) { + this.setState({ status: EXITED }); + } + if (status !== ENTERING && status !== ENTERED) { + this.nextStatus = ENTERING; + } + } else { + if (status === ENTERING || status === ENTERED) { + this.nextStatus = EXITING; + } + } + }; + + Transition.prototype.componentDidUpdate = function componentDidUpdate() { + this.updateStatus(); + }; + + Transition.prototype.componentWillUnmount = function componentWillUnmount() { + this.cancelNextCallback(); + }; + + Transition.prototype.getTimeouts = function getTimeouts() { + var timeout = this.props.timeout; + + var exit = void 0, + enter = void 0, + appear = void 0; + + exit = enter = appear = timeout; + + if (timeout != null && typeof timeout !== 'number') { + exit = timeout.exit; + enter = timeout.enter; + appear = timeout.appear; + } + return { exit: exit, enter: enter, appear: appear }; + }; + + Transition.prototype.updateStatus = function updateStatus() { + var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + var nextStatus = this.nextStatus; + + if (nextStatus !== null) { + this.nextStatus = null; + // nextStatus will always be ENTERING or EXITING. + this.cancelNextCallback(); + var node = _reactDom2.default.findDOMNode(this); + + if (nextStatus === ENTERING) { + this.performEnter(node, mounting); + } else { + this.performExit(node); + } + } else if (this.props.unmountOnExit && this.state.status === EXITED) { + this.setState({ status: UNMOUNTED }); + } + }; + + Transition.prototype.performEnter = function performEnter(node, mounting) { + var _this2 = this; + + var enter = this.props.enter; + + var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting; + + var timeouts = this.getTimeouts(); + + // no enter animation skip right to ENTERED + // if we are mounting and running this it means appear _must_ be set + if (!mounting && !enter) { + this.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node); + }); + return; + } + + this.props.onEnter(node, appearing); + + this.safeSetState({ status: ENTERING }, function () { + _this2.props.onEntering(node, appearing); + + // FIXME: appear timeout? + _this2.onTransitionEnd(node, timeouts.enter, function () { + _this2.safeSetState({ status: ENTERED }, function () { + _this2.props.onEntered(node, appearing); + }); + }); + }); + }; + + Transition.prototype.performExit = function performExit(node) { + var _this3 = this; + + var exit = this.props.exit; + + var timeouts = this.getTimeouts(); + + // no exit animation skip right to EXITED + if (!exit) { + this.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + return; + } + this.props.onExit(node); + + this.safeSetState({ status: EXITING }, function () { + _this3.props.onExiting(node); + + _this3.onTransitionEnd(node, timeouts.exit, function () { + _this3.safeSetState({ status: EXITED }, function () { + _this3.props.onExited(node); + }); + }); + }); + }; + + Transition.prototype.cancelNextCallback = function cancelNextCallback() { + if (this.nextCallback !== null) { + this.nextCallback.cancel(); + this.nextCallback = null; + } + }; + + Transition.prototype.safeSetState = function safeSetState(nextState, callback) { + var _this4 = this; + + // We need to track pending updates for instances where a cWRP fires quickly + // after cDM and before the state flushes, which would double trigger a + // transition + this.pendingState = nextState; + + // This shouldn't be necessary, but there are weird race conditions with + // setState callbacks and unmounting in testing, so always make sure that + // we can cancel any pending setState callbacks after we unmount. + callback = this.setNextCallback(callback); + this.setState(nextState, function () { + _this4.pendingState = null; + callback(); + }); + }; + + Transition.prototype.setNextCallback = function setNextCallback(callback) { + var _this5 = this; + + var active = true; + + this.nextCallback = function (event) { + if (active) { + active = false; + _this5.nextCallback = null; + + callback(event); + } + }; + + this.nextCallback.cancel = function () { + active = false; + }; + + return this.nextCallback; + }; + + Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) { + this.setNextCallback(handler); + + if (node) { + if (this.props.addEndListener) { + this.props.addEndListener(node, this.nextCallback); + } + if (timeout != null) { + setTimeout(this.nextCallback, timeout); + } + } else { + setTimeout(this.nextCallback, 0); + } + }; + + Transition.prototype.render = function render() { + var status = this.state.status; + if (status === UNMOUNTED) { + return null; + } + + var _props = this.props, + children = _props.children, + childProps = _objectWithoutProperties(_props, ['children']); + // filter props for Transtition + + + delete childProps.in; + delete childProps.mountOnEnter; + delete childProps.unmountOnExit; + delete childProps.appear; + delete childProps.enter; + delete childProps.exit; + delete childProps.timeout; + delete childProps.addEndListener; + delete childProps.onEnter; + delete childProps.onEntering; + delete childProps.onEntered; + delete childProps.onExit; + delete childProps.onExiting; + delete childProps.onExited; + + if (typeof children === 'function') { + return children(status, childProps); + } + + var child = _react2.default.Children.only(children); + return _react2.default.cloneElement(child, childProps); + }; + + return Transition; + }(_react2.default.Component); + + Transition.contextTypes = { + transitionGroup: PropTypes$$1.object + }; + Transition.childContextTypes = { + transitionGroup: function transitionGroup() {} + }; + + Transition.propTypes = true ? { + /** + * A `function` child can be used instead of a React element. + * This function is called with the current transition status + * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used + * to apply context specific props to a component. + * + * ```jsx + * + * {(status) => ( + * + * )} + * + * ``` + */ + children: PropTypes$$1.oneOfType([PropTypes$$1.func.isRequired, PropTypes$$1.element.isRequired]).isRequired, + + /** + * Show the component; triggers the enter or exit states + */ + in: PropTypes$$1.bool, + + /** + * By default the child component is mounted immediately along with + * the parent `Transition` component. If you want to "lazy mount" the component on the + * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay + * mounted, even on "exited", unless you also specify `unmountOnExit`. + */ + mountOnEnter: PropTypes$$1.bool, + + /** + * By default the child component stays mounted after it reaches the `'exited'` state. + * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting. + */ + unmountOnExit: PropTypes$$1.bool, + + /** + * Normally a component is not transitioned if it is shown when the `` component mounts. + * If you want to transition on the first mount set `appear` to `true`, and the + * component will transition in as soon as the `` mounts. + * + * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition. + */ + appear: PropTypes$$1.bool, + + /** + * Enable or disable enter transitions. + */ + enter: PropTypes$$1.bool, + + /** + * Enable or disable exit transitions. + */ + exit: PropTypes$$1.bool, + + /** + * The duration of the transition, in milliseconds. + * Required unless `addEndListener` is provided + * + * You may specify a single timeout for all transitions like: `timeout={500}`, + * or individually like: + * + * ```jsx + * timeout={{ + * enter: 300, + * exit: 500, + * }} + * ``` + * + * @type {number | { enter?: number, exit?: number }} + */ + timeout: function timeout(props) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var pt = PropTypes$1.timeoutsShape; + if (!props.addEndListener) pt = pt.isRequired; + return pt.apply(undefined, [props].concat(args)); + }, + + /** + * Add a custom transition end trigger. Called with the transitioning + * DOM node and a `done` callback. Allows for more fine grained transition end + * logic. **Note:** Timeouts are still used as a fallback if provided. + * + * ```jsx + * addEndListener={(node, done) => { + * // use the css transitionend event to mark the finish of a transition + * node.addEventListener('transitionend', done, false); + * }} + * ``` + */ + addEndListener: PropTypes$$1.func, + + /** + * Callback fired before the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEnter: PropTypes$$1.func, + + /** + * Callback fired after the "entering" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) + */ + onEntering: PropTypes$$1.func, + + /** + * Callback fired after the "entered" status is applied. An extra parameter + * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount + * + * @type Function(node: HtmlElement, isAppearing: bool) -> void + */ + onEntered: PropTypes$$1.func, + + /** + * Callback fired before the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExit: PropTypes$$1.func, + + /** + * Callback fired after the "exiting" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExiting: PropTypes$$1.func, + + /** + * Callback fired after the "exited" status is applied. + * + * @type Function(node: HtmlElement) -> void + */ + onExited: PropTypes$$1.func + } : undefined; + + // Name the function so it is clearer in the documentation + function noop() {} + + Transition.defaultProps = { + in: false, + mountOnEnter: false, + unmountOnExit: false, + appear: false, + enter: true, + exit: true, + + onEnter: noop, + onEntering: noop, + onEntered: noop, + + onExit: noop, + onExiting: noop, + onExited: noop + }; + + Transition.UNMOUNTED = 0; + Transition.EXITED = 1; + Transition.ENTERING = 2; + Transition.ENTERED = 3; + Transition.EXITING = 4; + + exports.default = Transition; +}); + +var Transition = unwrapExports(Transition_1); + +var propTypes$19 = _extends({}, Transition.propTypes, { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node), prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node]), + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]), + baseClass: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + baseClassActive: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}); + +var defaultProps$18 = _extends({}, Transition.defaultProps, { + tag: 'div', + baseClass: 'fade', + baseClassActive: 'show', + timeout: TransitionTimeouts.Fade, + appear: true, + enter: true, + exit: true, + in: true +}); + +function Fade(props) { + var Tag = props.tag, + baseClass = props.baseClass, + baseClassActive = props.baseClassActive, + className = props.className, + cssModule = props.cssModule, + children = props.children, + innerRef = props.innerRef, + otherProps = objectWithoutProperties(props, ['tag', 'baseClass', 'baseClassActive', 'className', 'cssModule', 'children', 'innerRef']); + + // In NODE_ENV=production the Transition.propTypes are wrapped which results in an + // empty object "{}". This is the result of the `react-transition-group` babel + // configuration settings. Therefore, to ensure that production builds work without + // error, we can either explicitly define keys or use the Transition.defaultProps. + // Using the Transition.defaultProps excludes any required props. Thus, the best + // solution is to explicitly define required props in our utilities and reference these. + // This also gives us more flexibility in the future to remove the prop-types + // dependency in distribution builds (Similar to how `react-transition-group` does). + // Note: Without omitting the `react-transition-group` props, the resulting child + // Tag component would inherit the Transition properties as attributes for the HTML + // element which results in errors/warnings for non-valid attributes. + + var transitionProps = pick(otherProps, TransitionPropTypeKeys); + var childProps = omit(otherProps, TransitionPropTypeKeys); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Transition, + transitionProps, + function (status) { + var isActive = status === 'entered'; + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, baseClass, isActive && baseClassActive), cssModule); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({ className: classes }, childProps, { ref: innerRef }), + children + ); + } + ); +} + +Fade.propTypes = propTypes$19; +Fade.defaultProps = defaultProps$18; + +var propTypes$20 = { + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + pill: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$19 = { + color: 'secondary', + pill: false, + tag: 'span' +}; + +var Badge = function Badge(props) { + var className = props.className, + cssModule = props.cssModule, + color = props.color, + pill = props.pill, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'color', 'pill', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'badge', 'badge-' + color, pill ? 'badge-pill' : false), cssModule); + + if (attributes.href && Tag === 'span') { + Tag = 'a'; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Badge.propTypes = propTypes$20; +Badge.defaultProps = defaultProps$19; + +var propTypes$21 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + inverse: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + block: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, 'Please use the props "body"'), + body: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + outline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +var defaultProps$20 = { + tag: 'div' +}; + +var Card = function Card(props) { + var className = props.className, + cssModule = props.cssModule, + color = props.color, + block = props.block, + body = props.body, + inverse = props.inverse, + outline = props.outline, + Tag = props.tag, + innerRef = props.innerRef, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'color', 'block', 'body', 'inverse', 'outline', 'tag', 'innerRef']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card', inverse ? 'text-white' : false, block || body ? 'card-body' : false, color ? (outline ? 'border' : 'bg') + '-' + color : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes, ref: innerRef })); +}; + +Card.propTypes = propTypes$21; +Card.defaultProps = defaultProps$20; + +var propTypes$22 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$21 = { + tag: 'div' +}; + +var CardGroup = function CardGroup(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-group'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardGroup.propTypes = propTypes$22; +CardGroup.defaultProps = defaultProps$21; + +var propTypes$23 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$22 = { + tag: 'div' +}; + +var CardDeck = function CardDeck(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-deck'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardDeck.propTypes = propTypes$23; +CardDeck.defaultProps = defaultProps$22; + +var propTypes$24 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$23 = { + tag: 'div' +}; + +var CardColumns = function CardColumns(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-columns'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardColumns.propTypes = propTypes$24; +CardColumns.defaultProps = defaultProps$23; + +var propTypes$25 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$24 = { + tag: 'div' +}; + +var CardBody = function CardBody(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-body'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardBody.propTypes = propTypes$25; +CardBody.defaultProps = defaultProps$24; + +function CardBlock(props) { + warnOnce('The "CardBlock" component has been deprecated.\nPlease use component "CardBody".'); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CardBody, props); +} + +var propTypes$26 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$25 = { + tag: 'a' +}; + +var CardLink = function CardLink(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + innerRef = props.innerRef, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'innerRef']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-link'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { ref: innerRef, className: classes })); +}; + +CardLink.propTypes = propTypes$26; +CardLink.defaultProps = defaultProps$25; + +var propTypes$27 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$26 = { + tag: 'div' +}; + +var CardFooter = function CardFooter(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-footer'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardFooter.propTypes = propTypes$27; +CardFooter.defaultProps = defaultProps$26; + +var propTypes$28 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$27 = { + tag: 'div' +}; + +var CardHeader = function CardHeader(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-header'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardHeader.propTypes = propTypes$28; +CardHeader.defaultProps = defaultProps$27; + +var propTypes$29 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + top: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + bottom: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$28 = { + tag: 'img' +}; + +var CardImg = function CardImg(props) { + var className = props.className, + cssModule = props.cssModule, + top = props.top, + bottom = props.bottom, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'top', 'bottom', 'tag']); + + + var cardImgClassName = 'card-img'; + if (top) { + cardImgClassName = 'card-img-top'; + } + if (bottom) { + cardImgClassName = 'card-img-bottom'; + } + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, cardImgClassName), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardImg.propTypes = propTypes$29; +CardImg.defaultProps = defaultProps$28; + +var propTypes$30 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$29 = { + tag: 'div' +}; + +var CardImgOverlay = function CardImgOverlay(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-img-overlay'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardImgOverlay.propTypes = propTypes$30; +CardImgOverlay.defaultProps = defaultProps$29; + +var CarouselItem = function (_React$Component) { + inherits(CarouselItem, _React$Component); + + function CarouselItem(props) { + classCallCheck(this, CarouselItem); + + var _this = possibleConstructorReturn(this, (CarouselItem.__proto__ || Object.getPrototypeOf(CarouselItem)).call(this, props)); + + _this.state = { + startAnimation: false + }; + + _this.onEnter = _this.onEnter.bind(_this); + _this.onEntering = _this.onEntering.bind(_this); + _this.onExit = _this.onExit.bind(_this); + _this.onExiting = _this.onExiting.bind(_this); + _this.onExited = _this.onExited.bind(_this); + return _this; + } + + createClass(CarouselItem, [{ + key: 'onEnter', + value: function onEnter(node, isAppearing) { + this.setState({ startAnimation: false }); + this.props.onEnter(node, isAppearing); + } + }, { + key: 'onEntering', + value: function onEntering(node, isAppearing) { + // getting this variable triggers a reflow + var offsetHeight = node.offsetHeight; + this.setState({ startAnimation: true }); + this.props.onEntering(node, isAppearing); + return offsetHeight; + } + }, { + key: 'onExit', + value: function onExit(node) { + this.setState({ startAnimation: false }); + this.props.onExit(node); + } + }, { + key: 'onExiting', + value: function onExiting(node) { + this.setState({ startAnimation: true }); + node.dispatchEvent(new CustomEvent('slide.bs.carousel')); + this.props.onExiting(node); + } + }, { + key: 'onExited', + value: function onExited(node) { + node.dispatchEvent(new CustomEvent('slid.bs.carousel')); + this.props.onExited(node); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + isIn = _props.in, + children = _props.children, + cssModule = _props.cssModule, + slide = _props.slide, + Tag = _props.tag, + className = _props.className, + transitionProps = objectWithoutProperties(_props, ['in', 'children', 'cssModule', 'slide', 'tag', 'className']); + + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Transition, + _extends({}, transitionProps, { + enter: slide, + exit: slide, + 'in': isIn, + onEnter: this.onEnter, + onEntering: this.onEntering, + onExit: this.onExit, + onExiting: this.onExiting, + onExited: this.onExited + }), + function (status) { + var direction = _this2.context.direction; + + var isActive = status === TransitionStatuses.ENTERED || status === TransitionStatuses.EXITING; + var directionClassName = (status === TransitionStatuses.ENTERING || status === TransitionStatuses.EXITING) && _this2.state.startAnimation && (direction === 'right' ? 'carousel-item-left' : 'carousel-item-right'); + var orderClassName = status === TransitionStatuses.ENTERING && (direction === 'right' ? 'carousel-item-next' : 'carousel-item-prev'); + var itemClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'carousel-item', isActive && 'active', directionClassName, orderClassName), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + { className: itemClasses }, + children + ); + } + ); + } + }]); + return CarouselItem; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +CarouselItem.propTypes = _extends({}, Transition.propTypes, { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + in: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + slide: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}); + +CarouselItem.defaultProps = _extends({}, Transition.defaultProps, { + tag: 'div', + timeout: TransitionTimeouts.Carousel, + slide: true +}); + +CarouselItem.contextTypes = { + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var Carousel = function (_React$Component) { + inherits(Carousel, _React$Component); + + function Carousel(props) { + classCallCheck(this, Carousel); + + var _this = possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, props)); + + _this.handleKeyPress = _this.handleKeyPress.bind(_this); + _this.renderItems = _this.renderItems.bind(_this); + _this.hoverStart = _this.hoverStart.bind(_this); + _this.hoverEnd = _this.hoverEnd.bind(_this); + _this.state = { + direction: 'right', + indicatorClicked: false + }; + return _this; + } + + createClass(Carousel, [{ + key: 'getChildContext', + value: function getChildContext() { + return { direction: this.state.direction }; + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + // Set up the cycle + if (this.props.ride === 'carousel') { + this.setInterval(); + } + + // TODO: move this to the specific carousel like bootstrap. Currently it will trigger ALL carousels on the page. + document.addEventListener('keyup', this.handleKeyPress); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + this.setInterval(nextProps); + // Calculate the direction to turn + if (this.props.activeIndex + 1 === nextProps.activeIndex) { + this.setState({ direction: 'right' }); + } else if (this.props.activeIndex - 1 === nextProps.activeIndex) { + this.setState({ direction: 'left' }); + } else if (this.props.activeIndex > nextProps.activeIndex) { + this.setState({ direction: this.state.indicatorClicked ? 'left' : 'right' }); + } else if (this.props.activeIndex !== nextProps.activeIndex) { + this.setState({ direction: this.state.indicatorClicked ? 'right' : 'left' }); + } + this.setState({ indicatorClicked: false }); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.clearInterval(); + document.removeEventListener('keyup', this.handleKeyPress); + } + }, { + key: 'setInterval', + value: function (_setInterval) { + function setInterval() { + return _setInterval.apply(this, arguments); + } + + setInterval.toString = function () { + return _setInterval.toString(); + }; + + return setInterval; + }(function () { + var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props; + + // make sure not to have multiple intervals going... + this.clearInterval(); + if (props.interval) { + this.cycleInterval = setInterval(function () { + props.next(); + }, parseInt(props.interval, 10)); + } + }) + }, { + key: 'clearInterval', + value: function (_clearInterval) { + function clearInterval() { + return _clearInterval.apply(this, arguments); + } + + clearInterval.toString = function () { + return _clearInterval.toString(); + }; + + return clearInterval; + }(function () { + clearInterval(this.cycleInterval); + }) + }, { + key: 'hoverStart', + value: function hoverStart() { + if (this.props.pause === 'hover') { + this.clearInterval(); + } + if (this.props.mouseEnter) { + var _props; + + (_props = this.props).mouseEnter.apply(_props, arguments); + } + } + }, { + key: 'hoverEnd', + value: function hoverEnd() { + if (this.props.pause === 'hover') { + this.setInterval(); + } + if (this.props.mouseLeave) { + var _props2; + + (_props2 = this.props).mouseLeave.apply(_props2, arguments); + } + } + }, { + key: 'handleKeyPress', + value: function handleKeyPress(evt) { + if (this.props.keyboard) { + if (evt.keyCode === 37) { + this.props.previous(); + } else if (evt.keyCode === 39) { + this.props.next(); + } + } + } + }, { + key: 'renderItems', + value: function renderItems(carouselItems, className) { + var _this2 = this; + + var slide = this.props.slide; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { role: 'listbox', className: className }, + carouselItems.map(function (item, index) { + var isIn = index === _this2.props.activeIndex; + return react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(item, { + in: isIn, + slide: slide + }); + }) + ); + } + }, { + key: 'render', + value: function render() { + var _this3 = this; + + var _props3 = this.props, + cssModule = _props3.cssModule, + slide = _props3.slide, + className = _props3.className; + + var outerClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'carousel', slide && 'slide'), cssModule); + + var innerClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('carousel-inner'), cssModule); + + // filter out booleans, null, or undefined + var children = this.props.children.filter(function (child) { + return child !== null && child !== undefined && typeof child !== 'boolean'; + }); + + var slidesOnly = children.every(function (child) { + return child.type === CarouselItem; + }); + + // Rendering only slides + if (slidesOnly) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: outerClasses, onMouseEnter: this.hoverStart, onMouseLeave: this.hoverEnd }, + this.renderItems(children, innerClasses) + ); + } + + // Rendering slides and controls + if (children[0] instanceof Array) { + var _carouselItems = children[0]; + var _controlLeft = children[1]; + var _controlRight = children[2]; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: outerClasses, onMouseEnter: this.hoverStart, onMouseLeave: this.hoverEnd }, + this.renderItems(_carouselItems, innerClasses), + _controlLeft, + _controlRight + ); + } + + // Rendering indicators, slides and controls + var indicators = children[0]; + var wrappedOnClick = function wrappedOnClick(e) { + if (typeof indicators.props.onClickHandler === 'function') { + _this3.setState({ indicatorClicked: true }, function () { + return indicators.props.onClickHandler(e); + }); + } + }; + var wrappedIndicators = react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(indicators, { onClickHandler: wrappedOnClick }); + var carouselItems = children[1]; + var controlLeft = children[2]; + var controlRight = children[3]; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: outerClasses, onMouseEnter: this.hoverStart, onMouseLeave: this.hoverEnd }, + wrappedIndicators, + this.renderItems(carouselItems, innerClasses), + controlLeft, + controlRight + ); + } + }]); + return Carousel; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Carousel.propTypes = { + // the current active slide of the carousel + activeIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, + // a function which should advance the carousel to the next slide (via activeIndex) + next: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + // a function which should advance the carousel to the previous slide (via activeIndex) + previous: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + // controls if the left and right arrow keys should control the carousel + keyboard: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + /* If set to "hover", pauses the cycling of the carousel on mouseenter and resumes the cycling of the carousel on + * mouseleave. If set to false, hovering over the carousel won't pause it. (default: "hover") + */ + pause: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['hover', false]), + // Autoplays the carousel after the user manually cycles the first item. If "carousel", autoplays the carousel on load. + // This is how bootstrap defines it... I would prefer a bool named autoplay or something... + ride: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['carousel']), + // the interval at which the carousel automatically cycles (default: 5000) + // eslint-disable-next-line react/no-unused-prop-types + interval: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool]), + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array, + // called when the mouse enters the Carousel + mouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + // called when the mouse exits the Carousel + mouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + // controls whether the slide animation on the Carousel works or not + slide: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +Carousel.defaultProps = { + interval: 5000, + pause: 'hover', + keyboard: true, + slide: true +}; + +Carousel.childContextTypes = { + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var CarouselControl = function CarouselControl(props) { + var direction = props.direction, + onClickHandler = props.onClickHandler, + cssModule = props.cssModule, + directionText = props.directionText, + className = props.className; + + + var anchorClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'carousel-control-' + direction), cssModule); + + var iconClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('carousel-control-' + direction + '-icon'), cssModule); + + var screenReaderClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('sr-only'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'a', + { + className: anchorClasses, + role: 'button', + tabIndex: '0', + onClick: function onClick(e) { + e.preventDefault(); + onClickHandler(); + } + }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('span', { className: iconClasses, 'aria-hidden': 'true' }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { className: screenReaderClasses }, + directionText || direction + ) + ); +}; + +CarouselControl.propTypes = { + direction: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['prev', 'next']).isRequired, + onClickHandler: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + directionText: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var CarouselIndicators = function CarouselIndicators(props) { + var items = props.items, + activeIndex = props.activeIndex, + cssModule = props.cssModule, + onClickHandler = props.onClickHandler, + className = props.className; + + + var listClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'carousel-indicators'), cssModule); + var indicators = items.map(function (item, idx) { + var indicatorClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()({ active: activeIndex === idx }), cssModule); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('li', { + key: '' + (item.key || item.src) + item.caption + item.altText, + onClick: function onClick(e) { + e.preventDefault(); + onClickHandler(idx); + }, + className: indicatorClasses + }); + }); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'ol', + { className: listClasses }, + indicators + ); +}; + +CarouselIndicators.propTypes = { + items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, + activeIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + onClickHandler: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var CarouselCaption = function CarouselCaption(props) { + var captionHeader = props.captionHeader, + captionText = props.captionText, + cssModule = props.cssModule, + className = props.className; + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'carousel-caption', 'd-none', 'd-md-block'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: classes }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'h3', + null, + captionHeader + ), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'p', + null, + captionText + ) + ); +}; + +CarouselCaption.propTypes = { + captionHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + captionText: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var propTypes$31 = { + items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, + indicators: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + controls: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + autoPlay: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + activeIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, + next: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + previous: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + goToIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func +}; + +var UncontrolledCarousel = function (_Component) { + inherits(UncontrolledCarousel, _Component); + + function UncontrolledCarousel(props) { + classCallCheck(this, UncontrolledCarousel); + + var _this = possibleConstructorReturn(this, (UncontrolledCarousel.__proto__ || Object.getPrototypeOf(UncontrolledCarousel)).call(this, props)); + + _this.animating = false; + _this.state = { activeIndex: 0 }; + _this.next = _this.next.bind(_this); + _this.previous = _this.previous.bind(_this); + _this.goToIndex = _this.goToIndex.bind(_this); + _this.onExiting = _this.onExiting.bind(_this); + _this.onExited = _this.onExited.bind(_this); + return _this; + } + + createClass(UncontrolledCarousel, [{ + key: 'onExiting', + value: function onExiting() { + this.animating = true; + } + }, { + key: 'onExited', + value: function onExited() { + this.animating = false; + } + }, { + key: 'next', + value: function next() { + if (this.animating) return; + var nextIndex = this.state.activeIndex === this.props.items.length - 1 ? 0 : this.state.activeIndex + 1; + this.setState({ activeIndex: nextIndex }); + } + }, { + key: 'previous', + value: function previous() { + if (this.animating) return; + var nextIndex = this.state.activeIndex === 0 ? this.props.items.length - 1 : this.state.activeIndex - 1; + this.setState({ activeIndex: nextIndex }); + } + }, { + key: 'goToIndex', + value: function goToIndex(newIndex) { + if (this.animating) return; + this.setState({ activeIndex: newIndex }); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + autoPlay = _props.autoPlay, + indicators = _props.indicators, + controls = _props.controls, + items = _props.items, + goToIndex = _props.goToIndex, + props = objectWithoutProperties(_props, ['autoPlay', 'indicators', 'controls', 'items', 'goToIndex']); + var activeIndex = this.state.activeIndex; + + + var slides = items.map(function (item) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + CarouselItem, + { + onExiting: _this2.onExiting, + onExited: _this2.onExited, + key: item.src + }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('img', { className: 'd-block w-100', src: item.src, alt: item.altText }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CarouselCaption, { captionText: item.caption, captionHeader: item.header || item.caption }) + ); + }); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Carousel, + _extends({ + activeIndex: activeIndex, + next: this.next, + previous: this.previous, + ride: autoPlay ? 'carousel' : undefined + }, props), + indicators && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CarouselIndicators, { + items: items, + activeIndex: props.activeIndex || activeIndex, + onClickHandler: goToIndex || this.goToIndex + }), + slides, + controls && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CarouselControl, { + direction: 'prev', + directionText: 'Previous', + onClickHandler: props.previous || this.previous + }), + controls && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CarouselControl, { + direction: 'next', + directionText: 'Next', + onClickHandler: props.next || this.next + }) + ); + } + }]); + return UncontrolledCarousel; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +UncontrolledCarousel.propTypes = propTypes$31; +UncontrolledCarousel.defaultProps = { + controls: true, + indicators: true, + autoPlay: true +}; + +var propTypes$32 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$30 = { + tag: 'h6' +}; + +var CardSubtitle = function CardSubtitle(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-subtitle'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardSubtitle.propTypes = propTypes$32; +CardSubtitle.defaultProps = defaultProps$30; + +var propTypes$33 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$31 = { + tag: 'p' +}; + +var CardText = function CardText(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-text'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardText.propTypes = propTypes$33; +CardText.defaultProps = defaultProps$31; + +var propTypes$34 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$32 = { + tag: 'h5' +}; + +var CardTitle = function CardTitle(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'card-title'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +CardTitle.propTypes = propTypes$34; +CardTitle.defaultProps = defaultProps$32; + +var propTypes$35 = { + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]).isRequired, + type: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired, + label: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + inline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + valid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + invalid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + bsSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +function CustomInput(props) { + var className = props.className, + label = props.label, + inline = props.inline, + valid = props.valid, + invalid = props.invalid, + cssModule = props.cssModule, + children = props.children, + bsSize = props.bsSize, + attributes = objectWithoutProperties(props, ['className', 'label', 'inline', 'valid', 'invalid', 'cssModule', 'children', 'bsSize']); + + + var type = attributes.type; + + var customClass = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'custom-' + type, bsSize ? 'custom-' + type + '-' + bsSize : false), cssModule); + + var validationClassNames = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(invalid && 'is-invalid', valid && 'is-valid'), cssModule); + + if (type === 'select') { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'select', + _extends({}, attributes, { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(validationClassNames, customClass) }), + children + ); + } + + if (type === 'file') { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: customClass }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('input', _extends({}, attributes, { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(validationClassNames, mapToCssModules('custom-file-input', cssModule)) })), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'label', + { className: mapToCssModules('custom-file-label', cssModule), htmlFor: attributes.id }, + label || 'Choose file' + ) + ); + } + + if (type !== 'checkbox' && type !== 'radio') { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('input', _extends({}, attributes, { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(validationClassNames, customClass) })); + } + + var wrapperClasses = classnames__WEBPACK_IMPORTED_MODULE_2___default()(customClass, mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('custom-control', { 'custom-control-inline': inline }), cssModule)); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: wrapperClasses }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('input', _extends({}, attributes, { + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(validationClassNames, mapToCssModules('custom-control-input', cssModule)) + })), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'label', + { className: mapToCssModules('custom-control-label', cssModule), htmlFor: attributes.id }, + label + ), + children + ); +} + +CustomInput.propTypes = propTypes$35; + +var propTypes$36 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node.isRequired, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + placement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + placementPrefix: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + hideArrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + fallbackPlacement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array]), + flip: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + container: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]), + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]).isRequired, + modifiers: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$33 = { + placement: 'auto', + hideArrow: false, + isOpen: false, + offset: 0, + fallbackPlacement: 'flip', + flip: true, + container: 'body', + modifiers: {} +}; + +var childContextTypes$1 = { + popperManager: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; + +var PopperContent = function (_React$Component) { + inherits(PopperContent, _React$Component); + + function PopperContent(props) { + classCallCheck(this, PopperContent); + + var _this = possibleConstructorReturn(this, (PopperContent.__proto__ || Object.getPrototypeOf(PopperContent)).call(this, props)); + + _this.handlePlacementChange = _this.handlePlacementChange.bind(_this); + _this.setTargetNode = _this.setTargetNode.bind(_this); + _this.getTargetNode = _this.getTargetNode.bind(_this); + _this.state = {}; + return _this; + } + + createClass(PopperContent, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + popperManager: { + setTargetNode: this.setTargetNode, + getTargetNode: this.getTargetNode + } + }; + } + }, { + key: 'componentDidMount', + value: function componentDidMount() { + this.handleProps(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps) { + if (this.props.isOpen !== prevProps.isOpen) { + this.handleProps(); + } else if (this._element) { + // rerender + this.renderIntoSubtree(); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.hide(); + } + }, { + key: 'setTargetNode', + value: function setTargetNode(node) { + this.targetNode = node; + } + }, { + key: 'getTargetNode', + value: function getTargetNode() { + return this.targetNode; + } + }, { + key: 'getContainerNode', + value: function getContainerNode() { + return getTarget(this.props.container); + } + }, { + key: 'handlePlacementChange', + value: function handlePlacementChange(data) { + if (this.state.placement !== data.placement) { + this.setState({ placement: data.placement }); + } + return data; + } + }, { + key: 'handleProps', + value: function handleProps() { + if (this.props.container !== 'inline') { + if (this.props.isOpen) { + this.show(); + } else { + this.hide(); + } + } + } + }, { + key: 'hide', + value: function hide() { + if (this._element) { + this.getContainerNode().removeChild(this._element); + react_dom__WEBPACK_IMPORTED_MODULE_5___default.a.unmountComponentAtNode(this._element); + this._element = null; + } + } + }, { + key: 'show', + value: function show() { + this._element = document.createElement('div'); + this.getContainerNode().appendChild(this._element); + this.renderIntoSubtree(); + if (this._element.childNodes && this._element.childNodes[0] && this._element.childNodes[0].focus) { + this._element.childNodes[0].focus(); + } + } + }, { + key: 'renderIntoSubtree', + value: function renderIntoSubtree() { + react_dom__WEBPACK_IMPORTED_MODULE_5___default.a.unstable_renderSubtreeIntoContainer(this, this.renderChildren(), this._element); + } + }, { + key: 'renderChildren', + value: function renderChildren() { + var _props = this.props, + cssModule = _props.cssModule, + children = _props.children, + isOpen = _props.isOpen, + flip = _props.flip, + target = _props.target, + offset = _props.offset, + fallbackPlacement = _props.fallbackPlacement, + placementPrefix = _props.placementPrefix, + hideArrow = _props.hideArrow, + className = _props.className, + tag = _props.tag, + container = _props.container, + modifiers = _props.modifiers, + attrs = objectWithoutProperties(_props, ['cssModule', 'children', 'isOpen', 'flip', 'target', 'offset', 'fallbackPlacement', 'placementPrefix', 'hideArrow', 'className', 'tag', 'container', 'modifiers']); + + var arrowClassName = mapToCssModules('arrow', cssModule); + var placement = (this.state.placement || attrs.placement).split('-')[0]; + var popperClassName = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, placementPrefix ? placementPrefix + '-' + placement : placement), this.props.cssModule); + + var extendedModifiers = _extends({ + offset: { offset: offset }, + flip: { enabled: flip, behavior: fallbackPlacement }, + update: { + enabled: true, + order: 950, + fn: this.handlePlacementChange + } + }, modifiers); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + react_popper__WEBPACK_IMPORTED_MODULE_6__["Popper"], + _extends({ modifiers: extendedModifiers }, attrs, { component: tag, className: popperClassName, 'x-placement': this.state.placement || attrs.placement }), + children, + !hideArrow && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_popper__WEBPACK_IMPORTED_MODULE_6__["Arrow"], { className: arrowClassName }) + ); + } + }, { + key: 'render', + value: function render() { + this.setTargetNode(getTarget(this.props.target)); + + if (this.props.container === 'inline') { + return this.props.isOpen ? this.renderChildren() : null; + } + + return null; + } + }]); + return PopperContent; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +PopperContent.propTypes = propTypes$36; +PopperContent.defaultProps = defaultProps$33; +PopperContent.childContextTypes = childContextTypes$1; + +var PopperTargetHelper = function PopperTargetHelper(props, context) { + context.popperManager.setTargetNode(getTarget(props.target)); + return null; +}; + +PopperTargetHelper.contextTypes = { + popperManager: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired +}; + +PopperTargetHelper.propTypes = { + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]).isRequired +}; + +var propTypes$37 = { + placement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(PopperPlacements), + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]).isRequired, + container: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]), + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + hideArrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + innerClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + placementPrefix: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + delay: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ show: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, hide: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number }), prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + modifiers: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]) +}; + +var DEFAULT_DELAYS = { + show: 0, + hide: 0 +}; + +var defaultProps$34 = { + isOpen: false, + hideArrow: false, + placement: 'right', + placementPrefix: 'bs-popover', + delay: DEFAULT_DELAYS, + toggle: function toggle() {} +}; + +var Popover = function (_React$Component) { + inherits(Popover, _React$Component); + + function Popover(props) { + classCallCheck(this, Popover); + + var _this = possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).call(this, props)); + + _this.addTargetEvents = _this.addTargetEvents.bind(_this); + _this.handleDocumentClick = _this.handleDocumentClick.bind(_this); + _this.removeTargetEvents = _this.removeTargetEvents.bind(_this); + _this.getRef = _this.getRef.bind(_this); + _this.toggle = _this.toggle.bind(_this); + _this.show = _this.show.bind(_this); + _this.hide = _this.hide.bind(_this); + return _this; + } + + createClass(Popover, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this._target = getTarget(this.props.target); + this.handleProps(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.handleProps(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.clearShowTimeout(); + this.clearHideTimeout(); + this.removeTargetEvents(); + } + }, { + key: 'getRef', + value: function getRef(ref) { + this._popover = ref; + } + }, { + key: 'getDelay', + value: function getDelay(key) { + var delay = this.props.delay; + + if ((typeof delay === 'undefined' ? 'undefined' : _typeof(delay)) === 'object') { + return isNaN(delay[key]) ? DEFAULT_DELAYS[key] : delay[key]; + } + return delay; + } + }, { + key: 'handleProps', + value: function handleProps() { + if (this.props.isOpen) { + this.show(); + } else { + this.hide(); + } + } + }, { + key: 'show', + value: function show() { + this.clearHideTimeout(); + this.addTargetEvents(); + if (!this.props.isOpen) { + this.clearShowTimeout(); + this._showTimeout = setTimeout(this.toggle, this.getDelay('show')); + } + } + }, { + key: 'hide', + value: function hide() { + this.clearShowTimeout(); + this.removeTargetEvents(); + if (this.props.isOpen) { + this.clearHideTimeout(); + this._hideTimeout = setTimeout(this.toggle, this.getDelay('hide')); + } + } + }, { + key: 'clearShowTimeout', + value: function clearShowTimeout() { + clearTimeout(this._showTimeout); + this._showTimeout = undefined; + } + }, { + key: 'clearHideTimeout', + value: function clearHideTimeout() { + clearTimeout(this._hideTimeout); + this._hideTimeout = undefined; + } + }, { + key: 'handleDocumentClick', + value: function handleDocumentClick(e) { + if (e.target !== this._target && !this._target.contains(e.target) && e.target !== this._popover && !(this._popover && this._popover.contains(e.target))) { + if (this._hideTimeout) { + this.clearHideTimeout(); + } + + if (this.props.isOpen) { + this.toggle(e); + } + } + } + }, { + key: 'addTargetEvents', + value: function addTargetEvents() { + var _this2 = this; + + ['click', 'touchstart'].forEach(function (event) { + return document.addEventListener(event, _this2.handleDocumentClick, true); + }); + } + }, { + key: 'removeTargetEvents', + value: function removeTargetEvents() { + var _this3 = this; + + ['click', 'touchstart'].forEach(function (event) { + return document.removeEventListener(event, _this3.handleDocumentClick, true); + }); + } + }, { + key: 'toggle', + value: function toggle(e) { + if (this.props.disabled) { + return e && e.preventDefault(); + } + + return this.props.toggle(e); + } + }, { + key: 'render', + value: function render() { + if (!this.props.isOpen) { + return null; + } + + var attributes = omit(this.props, Object.keys(propTypes$37)); + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('popover-inner', this.props.innerClassName), this.props.cssModule); + + var popperClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('popover', 'show', this.props.className), this.props.cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + PopperContent, + { + className: popperClasses, + target: this.props.target, + isOpen: this.props.isOpen, + hideArrow: this.props.hideArrow, + placement: this.props.placement, + placementPrefix: this.props.placementPrefix, + container: this.props.container, + modifiers: this.props.modifiers, + offset: this.props.offset + }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('div', _extends({}, attributes, { className: classes, ref: this.getRef })) + ); + } + }]); + return Popover; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Popover.propTypes = propTypes$37; +Popover.defaultProps = defaultProps$34; + +var propTypes$38 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$35 = { + tag: 'h3' +}; + +var PopoverHeader = function PopoverHeader(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'popover-header'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +PopoverHeader.propTypes = propTypes$38; +PopoverHeader.defaultProps = defaultProps$35; + +function PopoverTitle(props) { + warnOnce('The "PopoverTitle" component has been deprecated.\nPlease use component "PopoverHeader".'); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(PopoverHeader, props); +} + +var propTypes$39 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$36 = { + tag: 'div' +}; + +var PopoverBody = function PopoverBody(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'popover-body'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +PopoverBody.propTypes = propTypes$39; +PopoverBody.defaultProps = defaultProps$36; + +function PopoverContent(props) { + warnOnce('The "PopoverContent" component has been deprecated.\nPlease use component "PopoverBody".'); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(PopoverBody, props); +} + +var propTypes$40 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + bar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + multi: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + value: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + max: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + animated: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + striped: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + barClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$37 = { + tag: 'div', + value: 0, + max: 100 +}; + +var Progress = function Progress(props) { + var children = props.children, + className = props.className, + barClassName = props.barClassName, + cssModule = props.cssModule, + value = props.value, + max = props.max, + animated = props.animated, + striped = props.striped, + color = props.color, + bar = props.bar, + multi = props.multi, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['children', 'className', 'barClassName', 'cssModule', 'value', 'max', 'animated', 'striped', 'color', 'bar', 'multi', 'tag']); + + + var percent = lodash_tonumber__WEBPACK_IMPORTED_MODULE_7___default()(value) / lodash_tonumber__WEBPACK_IMPORTED_MODULE_7___default()(max) * 100; + + var progressClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'progress'), cssModule); + + var progressBarClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('progress-bar', bar ? className || barClassName : barClassName, animated ? 'progress-bar-animated' : null, color ? 'bg-' + color : null, striped || animated ? 'progress-bar-striped' : null), cssModule); + + var ProgressBar = multi ? children : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('div', { + className: progressBarClasses, + style: { width: percent + '%' }, + role: 'progressbar', + 'aria-valuenow': value, + 'aria-valuemin': '0', + 'aria-valuemax': max, + children: children + }); + + if (bar) { + return ProgressBar; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: progressClasses, children: ProgressBar })); +}; + +Progress.propTypes = propTypes$40; +Progress.defaultProps = defaultProps$37; + +var propTypes$42 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node.isRequired, + node: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any +}; + +var Portal = function (_React$Component) { + inherits(Portal, _React$Component); + + function Portal() { + classCallCheck(this, Portal); + return possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments)); + } + + createClass(Portal, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.defaultNode) { + document.body.removeChild(this.defaultNode); + } + this.defaultNode = null; + } + }, { + key: 'render', + value: function render() { + if (!canUseDOM) { + return null; + } + + if (!this.props.node && !this.defaultNode) { + this.defaultNode = document.createElement('div'); + document.body.appendChild(this.defaultNode); + } + + return react_dom__WEBPACK_IMPORTED_MODULE_5___default.a.createPortal(this.props.children, this.props.node || this.defaultNode); + } + }]); + return Portal; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Portal.propTypes = propTypes$42; + +function noop() {} + +var FadePropTypes = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape(Fade.propTypes); + +var propTypes$41 = { + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + centered: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + keyboard: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + role: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + labelledBy: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + backdrop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['static'])]), + onEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + onExit: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + onOpened: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + onClosed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + wrapClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + modalClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + backdropClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + contentClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + external: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + fade: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + backdropTransition: FadePropTypes, + modalTransition: FadePropTypes, + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +var propsToOmit = Object.keys(propTypes$41); + +var defaultProps$38 = { + isOpen: false, + autoFocus: true, + centered: false, + role: 'dialog', + backdrop: true, + keyboard: true, + zIndex: 1050, + fade: true, + onOpened: noop, + onClosed: noop, + modalTransition: { + timeout: TransitionTimeouts.Modal + }, + backdropTransition: { + mountOnEnter: true, + timeout: TransitionTimeouts.Fade // uses standard fade transition + } +}; + +var Modal = function (_React$Component) { + inherits(Modal, _React$Component); + + function Modal(props) { + classCallCheck(this, Modal); + + var _this = possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, props)); + + _this._element = null; + _this._originalBodyPadding = null; + _this.handleBackdropMouseDown = _this.handleBackdropMouseDown.bind(_this); + _this.handleBackdropMouseUp = _this.handleBackdropMouseUp.bind(_this); + _this.handleEscape = _this.handleEscape.bind(_this); + _this.onOpened = _this.onOpened.bind(_this); + _this.onClosed = _this.onClosed.bind(_this); + + _this.state = { + isOpen: props.isOpen + }; + + if (props.isOpen) { + _this.init(); + } + return _this; + } + + createClass(Modal, [{ + key: 'componentDidMount', + value: function componentDidMount() { + if (this.props.onEnter) { + this.props.onEnter(); + } + + if (this.state.isOpen && this.props.autoFocus) { + this.setFocus(); + } + + this._isMounted = true; + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + if (nextProps.isOpen && !this.props.isOpen) { + this.setState({ isOpen: nextProps.isOpen }); + } + } + }, { + key: 'componentWillUpdate', + value: function componentWillUpdate(nextProps, nextState) { + if (nextState.isOpen && !this.state.isOpen) { + this.init(); + } + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) { + this.setFocus(); + } + + if (this._element && prevProps.zIndex !== this.props.zIndex) { + this._element.style.zIndex = this.props.zIndex; + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.props.onExit) { + this.props.onExit(); + } + + if (this.state.isOpen) { + this.destroy(); + } + + this._isMounted = false; + } + }, { + key: 'onOpened', + value: function onOpened(node, isAppearing) { + this.props.onOpened(); + (this.props.modalTransition.onEntered || noop)(node, isAppearing); + } + }, { + key: 'onClosed', + value: function onClosed(node) { + // so all methods get called before it is unmounted + this.props.onClosed(); + (this.props.modalTransition.onExited || noop)(node); + this.destroy(); + + if (this._isMounted) { + this.setState({ isOpen: false }); + } + } + }, { + key: 'setFocus', + value: function setFocus() { + if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') { + this._dialog.parentNode.focus(); + } + } + }, { + key: 'handleBackdropMouseDown', + value: function handleBackdropMouseDown(e) { + this._mouseDownElement = e.target; + } + }, { + key: 'handleBackdropMouseUp', + value: function handleBackdropMouseUp(e) { + if (e.target === this._mouseDownElement) { + e.stopPropagation(); + if (!this.props.isOpen || this.props.backdrop !== true) return; + + var container = this._dialog; + + if (e.target && !container.contains(e.target) && this.props.toggle) { + this.props.toggle(e); + } + } + } + }, { + key: 'handleEscape', + value: function handleEscape(e) { + if (this.props.isOpen && this.props.keyboard && e.keyCode === 27 && this.props.toggle) { + this.props.toggle(e); + } + } + }, { + key: 'init', + value: function init() { + this._element = document.createElement('div'); + this._element.setAttribute('tabindex', '-1'); + this._element.style.position = 'relative'; + this._element.style.zIndex = this.props.zIndex; + this._originalBodyPadding = getOriginalBodyPadding(); + + conditionallyUpdateScrollbar(); + + document.body.appendChild(this._element); + + if (!this.bodyClassAdded) { + document.body.className = classnames__WEBPACK_IMPORTED_MODULE_2___default()(document.body.className, mapToCssModules('modal-open', this.props.cssModule)); + this.bodyClassAdded = true; + } + } + }, { + key: 'destroy', + value: function destroy() { + if (this._element) { + document.body.removeChild(this._element); + this._element = null; + } + + if (this.bodyClassAdded) { + var modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule); + // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened` + var modalOpenClassNameRegex = new RegExp('(^| )' + modalOpenClassName + '( |$)'); + document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim(); + this.bodyClassAdded = false; + } + + setScrollbarWidth(this._originalBodyPadding); + } + }, { + key: 'renderModalDialog', + value: function renderModalDialog() { + var _classNames, + _this2 = this; + + var attributes = omit(this.props, propsToOmit); + var dialogBaseClass = 'modal-dialog'; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + _extends({}, attributes, { + className: mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(dialogBaseClass, this.props.className, (_classNames = {}, defineProperty(_classNames, 'modal-' + this.props.size, this.props.size), defineProperty(_classNames, dialogBaseClass + '-centered', this.props.centered), _classNames)), this.props.cssModule), + role: 'document', + ref: function ref(c) { + _this2._dialog = c; + } + }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { + className: mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('modal-content', this.props.contentClassName), this.props.cssModule) + }, + this.props.children + ) + ); + } + }, { + key: 'render', + value: function render() { + if (this.state.isOpen) { + var _props = this.props, + wrapClassName = _props.wrapClassName, + modalClassName = _props.modalClassName, + backdropClassName = _props.backdropClassName, + cssModule = _props.cssModule, + isOpen = _props.isOpen, + backdrop = _props.backdrop, + role = _props.role, + labelledBy = _props.labelledBy, + external = _props.external, + innerRef = _props.innerRef; + + + var modalAttributes = { + onMouseDown: this.handleBackdropMouseDown, + onMouseUp: this.handleBackdropMouseUp, + onKeyUp: this.handleEscape, + style: { display: 'block' }, + 'aria-labelledby': labelledBy, + role: role, + tabIndex: '-1' + }; + + var hasTransition = this.props.fade; + var modalTransition = _extends({}, Fade.defaultProps, this.props.modalTransition, { + baseClass: hasTransition ? this.props.modalTransition.baseClass : '', + timeout: hasTransition ? this.props.modalTransition.timeout : 0 + }); + var backdropTransition = _extends({}, Fade.defaultProps, this.props.backdropTransition, { + baseClass: hasTransition ? this.props.backdropTransition.baseClass : '', + timeout: hasTransition ? this.props.backdropTransition.timeout : 0 + }); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Portal, + { node: this._element }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'div', + { className: mapToCssModules(wrapClassName) }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Fade, + _extends({}, modalAttributes, modalTransition, { + 'in': isOpen, + onEntered: this.onOpened, + onExited: this.onClosed, + cssModule: cssModule, + className: mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('modal', modalClassName), cssModule), + innerRef: innerRef + }), + external, + this.renderModalDialog() + ), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Fade, _extends({}, backdropTransition, { + 'in': isOpen && !!backdrop, + cssModule: cssModule, + className: mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('modal-backdrop', backdropClassName), cssModule) + })) + ) + ); + } + + return null; + } + }]); + return Modal; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Modal.propTypes = propTypes$41; +Modal.defaultProps = defaultProps$38; + +var propTypes$43 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + wrapTag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + closeAriaLabel: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var defaultProps$39 = { + tag: 'h5', + wrapTag: 'div', + closeAriaLabel: 'Close' +}; + +var ModalHeader = function ModalHeader(props) { + var closeButton = void 0; + var className = props.className, + cssModule = props.cssModule, + children = props.children, + toggle = props.toggle, + Tag = props.tag, + WrapTag = props.wrapTag, + closeAriaLabel = props.closeAriaLabel, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'children', 'toggle', 'tag', 'wrapTag', 'closeAriaLabel']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'modal-header'), cssModule); + + if (toggle) { + closeButton = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'button', + { type: 'button', onClick: toggle, className: mapToCssModules('close', cssModule), 'aria-label': closeAriaLabel }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { 'aria-hidden': 'true' }, + String.fromCharCode(215) + ) + ); + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + WrapTag, + _extends({}, attributes, { className: classes }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + { className: mapToCssModules('modal-title', cssModule) }, + children + ), + closeButton + ); +}; + +ModalHeader.propTypes = propTypes$43; +ModalHeader.defaultProps = defaultProps$39; + +var propTypes$44 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$40 = { + tag: 'div' +}; + +var ModalBody = function ModalBody(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'modal-body'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ModalBody.propTypes = propTypes$44; +ModalBody.defaultProps = defaultProps$40; + +var propTypes$45 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$41 = { + tag: 'div' +}; + +var ModalFooter = function ModalFooter(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'modal-footer'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ModalFooter.propTypes = propTypes$45; +ModalFooter.defaultProps = defaultProps$41; + +var propTypes$46 = { + placement: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(PopperPlacements), + target: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]).isRequired, + container: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, DOMElement]), + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + hideArrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + innerClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + autohide: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + placementPrefix: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + delay: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ show: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, hide: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number }), prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + modifiers: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object]) +}; + +var DEFAULT_DELAYS$1 = { + show: 0, + hide: 250 +}; + +var defaultProps$42 = { + isOpen: false, + hideArrow: false, + placement: 'top', + placementPrefix: 'bs-tooltip', + delay: DEFAULT_DELAYS$1, + autohide: true, + toggle: function toggle() {} +}; + +var Tooltip = function (_React$Component) { + inherits(Tooltip, _React$Component); + + function Tooltip(props) { + classCallCheck(this, Tooltip); + + var _this = possibleConstructorReturn(this, (Tooltip.__proto__ || Object.getPrototypeOf(Tooltip)).call(this, props)); + + _this.addTargetEvents = _this.addTargetEvents.bind(_this); + _this.handleDocumentClick = _this.handleDocumentClick.bind(_this); + _this.removeTargetEvents = _this.removeTargetEvents.bind(_this); + _this.toggle = _this.toggle.bind(_this); + _this.onMouseOverTooltip = _this.onMouseOverTooltip.bind(_this); + _this.onMouseLeaveTooltip = _this.onMouseLeaveTooltip.bind(_this); + _this.onMouseOverTooltipContent = _this.onMouseOverTooltipContent.bind(_this); + _this.onMouseLeaveTooltipContent = _this.onMouseLeaveTooltipContent.bind(_this); + _this.show = _this.show.bind(_this); + _this.hide = _this.hide.bind(_this); + _this.onEscKeyDown = _this.onEscKeyDown.bind(_this); + return _this; + } + + createClass(Tooltip, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this._target = getTarget(this.props.target); + this.addTargetEvents(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.removeTargetEvents(); + } + }, { + key: 'onMouseOverTooltip', + value: function onMouseOverTooltip(e) { + if (this._hideTimeout) { + this.clearHideTimeout(); + } + this._showTimeout = setTimeout(this.show.bind(this, e), this.getDelay('show')); + } + }, { + key: 'onMouseLeaveTooltip', + value: function onMouseLeaveTooltip(e) { + if (this._showTimeout) { + this.clearShowTimeout(); + } + this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide')); + } + }, { + key: 'onMouseOverTooltipContent', + value: function onMouseOverTooltipContent() { + if (this.props.autohide) { + return; + } + if (this._hideTimeout) { + this.clearHideTimeout(); + } + } + }, { + key: 'onMouseLeaveTooltipContent', + value: function onMouseLeaveTooltipContent(e) { + if (this.props.autohide) { + return; + } + if (this._showTimeout) { + this.clearShowTimeout(); + } + e.persist(); + this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide')); + } + }, { + key: 'onEscKeyDown', + value: function onEscKeyDown(e) { + if (e.key === 'Escape') { + this.hide(e); + } + } + }, { + key: 'getDelay', + value: function getDelay(key) { + var delay = this.props.delay; + + if ((typeof delay === 'undefined' ? 'undefined' : _typeof(delay)) === 'object') { + return isNaN(delay[key]) ? DEFAULT_DELAYS$1[key] : delay[key]; + } + return delay; + } + }, { + key: 'show', + value: function show(e) { + if (!this.props.isOpen) { + this.clearShowTimeout(); + this.toggle(e); + } + } + }, { + key: 'hide', + value: function hide(e) { + if (this.props.isOpen) { + this.clearHideTimeout(); + this.toggle(e); + } + } + }, { + key: 'clearShowTimeout', + value: function clearShowTimeout() { + clearTimeout(this._showTimeout); + this._showTimeout = undefined; + } + }, { + key: 'clearHideTimeout', + value: function clearHideTimeout() { + clearTimeout(this._hideTimeout); + this._hideTimeout = undefined; + } + }, { + key: 'handleDocumentClick', + value: function handleDocumentClick(e) { + if (e.target === this._target || this._target.contains(e.target)) { + if (this._hideTimeout) { + this.clearHideTimeout(); + } + + if (!this.props.isOpen) { + this.toggle(e); + } + } else if (this.props.isOpen && e.target.getAttribute('role') !== 'tooltip') { + if (this._showTimeout) { + this.clearShowTimeout(); + } + this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide')); + } + } + }, { + key: 'addTargetEvents', + value: function addTargetEvents() { + var _this2 = this; + + this._target.addEventListener('mouseover', this.onMouseOverTooltip, true); + this._target.addEventListener('mouseout', this.onMouseLeaveTooltip, true); + this._target.addEventListener('keydown', this.onEscKeyDown, true); + this._target.addEventListener('focusin', this.show, true); + this._target.addEventListener('focusout', this.hide, true); + + ['click', 'touchstart'].forEach(function (event) { + return document.addEventListener(event, _this2.handleDocumentClick, true); + }); + } + }, { + key: 'removeTargetEvents', + value: function removeTargetEvents() { + var _this3 = this; + + this._target.removeEventListener('mouseover', this.onMouseOverTooltip, true); + this._target.removeEventListener('mouseout', this.onMouseLeaveTooltip, true); + this._target.addEventListener('keydown', this.onEscKeyDown, true); + this._target.addEventListener('focusin', this.show, true); + this._target.addEventListener('focusout', this.hide, true); + + ['click', 'touchstart'].forEach(function (event) { + return document.removeEventListener(event, _this3.handleDocumentClick, true); + }); + } + }, { + key: 'toggle', + value: function toggle(e) { + if (this.props.disabled) { + return e && e.preventDefault(); + } + + return this.props.toggle(e); + } + }, { + key: 'render', + value: function render() { + if (!this.props.isOpen) { + return null; + } + + var attributes = omit(this.props, Object.keys(propTypes$46)); + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('tooltip-inner', this.props.innerClassName), this.props.cssModule); + + var popperClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('tooltip', 'show', this.props.className), this.props.cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + PopperContent, + { + className: popperClasses, + target: this.props.target, + isOpen: this.props.isOpen, + hideArrow: this.props.hideArrow, + placement: this.props.placement, + placementPrefix: this.props.placementPrefix, + container: this.props.container, + modifiers: this.props.modifiers, + offset: this.props.offset, + cssModule: this.props.cssModule + }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('div', _extends({}, attributes, { + ref: this.props.innerRef, + className: classes, + role: 'tooltip', + 'aria-hidden': this.props.isOpen, + onMouseOver: this.onMouseOverTooltipContent, + onMouseLeave: this.onMouseLeaveTooltipContent, + onKeyDown: this.onEscKeyDown + })) + ); + } + }]); + return Tooltip; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Tooltip.propTypes = propTypes$46; +Tooltip.defaultProps = defaultProps$42; + +var propTypes$47 = { + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + bordered: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + borderless: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + striped: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + inverse: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, 'Please use the prop "dark"'), + dark: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + hover: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + responsive: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + responsiveTag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]) +}; + +var defaultProps$43 = { + tag: 'table', + responsiveTag: 'div' +}; + +var Table = function Table(props) { + var className = props.className, + cssModule = props.cssModule, + size = props.size, + bordered = props.bordered, + borderless = props.borderless, + striped = props.striped, + inverse = props.inverse, + dark = props.dark, + hover = props.hover, + responsive = props.responsive, + Tag = props.tag, + ResponsiveTag = props.responsiveTag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'size', 'bordered', 'borderless', 'striped', 'inverse', 'dark', 'hover', 'responsive', 'tag', 'responsiveTag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, borderless ? 'table-borderless' : false, striped ? 'table-striped' : false, dark || inverse ? 'table-dark' : false, hover ? 'table-hover' : false), cssModule); + + var table = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); + + if (responsive) { + var responsiveClassName = responsive === true ? 'table-responsive' : 'table-responsive-' + responsive; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + ResponsiveTag, + { className: responsiveClassName }, + table + ); + } + + return table; +}; + +Table.propTypes = propTypes$47; +Table.defaultProps = defaultProps$43; + +var propTypes$48 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + flush: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$44 = { + tag: 'ul' +}; + +var ListGroup = function ListGroup(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + flush = props.flush, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'flush']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'list-group', flush ? 'list-group-flush' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ListGroup.propTypes = propTypes$48; +ListGroup.defaultProps = defaultProps$44; + +var propTypes$49 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + inline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$45 = { + tag: 'form' +}; + +var Form = function (_Component) { + inherits(Form, _Component); + + function Form(props) { + classCallCheck(this, Form); + + var _this = possibleConstructorReturn(this, (Form.__proto__ || Object.getPrototypeOf(Form)).call(this, props)); + + _this.getRef = _this.getRef.bind(_this); + _this.submit = _this.submit.bind(_this); + return _this; + } + + createClass(Form, [{ + key: 'getRef', + value: function getRef(ref) { + if (this.props.innerRef) { + this.props.innerRef(ref); + } + this.ref = ref; + } + }, { + key: 'submit', + value: function submit() { + if (this.ref) { + this.ref.submit(); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + className = _props.className, + cssModule = _props.cssModule, + inline = _props.inline, + Tag = _props.tag, + innerRef = _props.innerRef, + attributes = objectWithoutProperties(_props, ['className', 'cssModule', 'inline', 'tag', 'innerRef']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, inline ? 'form-inline' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { ref: innerRef, className: classes })); + } + }]); + return Form; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +Form.propTypes = propTypes$49; +Form.defaultProps = defaultProps$45; + +var propTypes$50 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + valid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tooltip: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var defaultProps$46 = { + tag: 'div', + valid: undefined +}; + +var FormFeedback = function FormFeedback(props) { + var className = props.className, + cssModule = props.cssModule, + valid = props.valid, + tooltip = props.tooltip, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'valid', 'tooltip', 'tag']); + + + var validMode = tooltip ? 'tooltip' : 'feedback'; + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, valid ? 'valid-' + validMode : 'invalid-' + validMode), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +FormFeedback.propTypes = propTypes$50; +FormFeedback.defaultProps = defaultProps$46; + +var propTypes$51 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + row: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + check: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + inline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$47 = { + tag: 'div' +}; + +var FormGroup = function FormGroup(props) { + var className = props.className, + cssModule = props.cssModule, + row = props.row, + disabled = props.disabled, + check = props.check, + inline = props.inline, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'row', 'disabled', 'check', 'inline', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'position-relative', row ? 'row' : false, check ? 'form-check' : 'form-group', check && inline ? 'form-check-inline' : false, check && disabled ? 'disabled' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +FormGroup.propTypes = propTypes$51; +FormGroup.defaultProps = defaultProps$47; + +var propTypes$52 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + inline: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$48 = { + tag: 'small', + color: 'muted' +}; + +var FormText = function FormText(props) { + var className = props.className, + cssModule = props.cssModule, + inline = props.inline, + color = props.color, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'inline', 'color', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, !inline ? 'form-text' : false, color ? 'text-' + color : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +FormText.propTypes = propTypes$52; +FormText.defaultProps = defaultProps$48; + +/* eslint react/prefer-stateless-function: 0 */ + +var propTypes$53 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + type: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + bsSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + state: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, 'Please use the props "valid" and "invalid" to indicate the state.'), + valid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + invalid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + static: deprecated(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, 'Please use the prop "plaintext"'), + plaintext: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + addon: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$49 = { + type: 'text' +}; + +var Input = function (_React$Component) { + inherits(Input, _React$Component); + + function Input(props) { + classCallCheck(this, Input); + + var _this = possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props)); + + _this.getRef = _this.getRef.bind(_this); + _this.focus = _this.focus.bind(_this); + return _this; + } + + createClass(Input, [{ + key: 'getRef', + value: function getRef(ref) { + if (this.props.innerRef) { + this.props.innerRef(ref); + } + this.ref = ref; + } + }, { + key: 'focus', + value: function focus() { + if (this.ref) { + this.ref.focus(); + } + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + className = _props.className, + cssModule = _props.cssModule, + type = _props.type, + bsSize = _props.bsSize, + state = _props.state, + valid = _props.valid, + invalid = _props.invalid, + tag = _props.tag, + addon = _props.addon, + staticInput = _props.static, + plaintext = _props.plaintext, + innerRef = _props.innerRef, + attributes = objectWithoutProperties(_props, ['className', 'cssModule', 'type', 'bsSize', 'state', 'valid', 'invalid', 'tag', 'addon', 'static', 'plaintext', 'innerRef']); + + + var checkInput = ['radio', 'checkbox'].indexOf(type) > -1; + var isNotaNumber = new RegExp('\\D', 'g'); + + var fileInput = type === 'file'; + var textareaInput = type === 'textarea'; + var selectInput = type === 'select'; + var Tag = tag || (selectInput || textareaInput ? type : 'input'); + + var formControlClass = 'form-control'; + + if (plaintext || staticInput) { + formControlClass = formControlClass + '-plaintext'; + Tag = tag || 'p'; + } else if (fileInput) { + formControlClass = formControlClass + '-file'; + } else if (checkInput) { + if (addon) { + formControlClass = null; + } else { + formControlClass = 'form-check-input'; + } + } + + if (state && typeof valid === 'undefined' && typeof invalid === 'undefined') { + if (state === 'danger') { + invalid = true; + } else if (state === 'success') { + valid = true; + } + } + + if (attributes.size && isNotaNumber.test(attributes.size)) { + warnOnce('Please use the prop "bsSize" instead of the "size" to bootstrap\'s input sizing.'); + bsSize = attributes.size; + delete attributes.size; + } + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? 'form-control-' + bsSize : false, formControlClass), cssModule); + + if (Tag === 'input' || tag && typeof tag === 'function') { + attributes.type = type; + } + + if (attributes.children && !(plaintext || staticInput || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) { + warnOnce('Input with a type of "' + type + '" cannot have children. Please use "value"/"defaultValue" instead.'); + delete attributes.children; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { ref: innerRef, className: classes })); + } + }]); + return Input; +}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component); + +Input.propTypes = propTypes$53; +Input.defaultProps = defaultProps$49; + +var propTypes$54 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$50 = { + tag: 'div' +}; + +var InputGroup = function InputGroup(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + size = props.size, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'size']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'input-group', size ? 'input-group-' + size : null), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +InputGroup.propTypes = propTypes$54; +InputGroup.defaultProps = defaultProps$50; + +var propTypes$56 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$52 = { + tag: 'span' +}; + +var InputGroupText = function InputGroupText(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'input-group-text'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +InputGroupText.propTypes = propTypes$56; +InputGroupText.defaultProps = defaultProps$52; + +var propTypes$55 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + addonType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['prepend', 'append']).isRequired, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$51 = { + tag: 'div' +}; + +var InputGroupAddon = function InputGroupAddon(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + addonType = props.addonType, + children = props.children, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'addonType', 'children']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'input-group-' + addonType), cssModule); + + // Convenience to assist with transition + if (typeof children === 'string') { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({}, attributes, { className: classes }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(InputGroupText, { children: children }) + ); + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes, children: children })); +}; + +InputGroupAddon.propTypes = propTypes$55; +InputGroupAddon.defaultProps = defaultProps$51; + +var propTypes$57 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + addonType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['prepend', 'append']).isRequired, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + groupClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + groupAttributes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var InputGroupButton = function InputGroupButton(props) { + warnOnce('The "InputGroupButton" component has been deprecated.\nPlease use component "InputGroupAddon".'); + + var children = props.children, + groupClassName = props.groupClassName, + groupAttributes = props.groupAttributes, + propsWithoutGroup = objectWithoutProperties(props, ['children', 'groupClassName', 'groupAttributes']); + + + if (typeof children === 'string') { + var cssModule = propsWithoutGroup.cssModule, + tag = propsWithoutGroup.tag, + addonType = propsWithoutGroup.addonType, + attributes = objectWithoutProperties(propsWithoutGroup, ['cssModule', 'tag', 'addonType']); + + + var allGroupAttributes = _extends({}, groupAttributes, { + cssModule: cssModule, + tag: tag, + addonType: addonType + }); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + InputGroupAddon, + _extends({}, allGroupAttributes, { className: groupClassName }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Button, _extends({}, attributes, { children: children })) + ); + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(InputGroupAddon, _extends({}, props, { children: children })); +}; + +InputGroupButton.propTypes = propTypes$57; + +var propTypes$58 = { + addonType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['prepend', 'append']).isRequired, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node +}; + +var InputGroupButtonDropdown = function InputGroupButtonDropdown(props) { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Dropdown, props); +}; + +InputGroupButtonDropdown.propTypes = propTypes$58; + +var colWidths$1 = ['xs', 'sm', 'md', 'lg', 'xl']; + +var stringOrNumberProp$1 = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]); + +var columnProps$1 = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({ + size: stringOrNumberProp$1, + push: deprecated(stringOrNumberProp$1, 'Please use the prop "order"'), + pull: deprecated(stringOrNumberProp$1, 'Please use the prop "order"'), + order: stringOrNumberProp$1, + offset: stringOrNumberProp$1 +})]); + +var propTypes$59 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + hidden: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + check: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + for: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + xs: columnProps$1, + sm: columnProps$1, + md: columnProps$1, + lg: columnProps$1, + xl: columnProps$1, + widths: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array +}; + +var defaultProps$53 = { + tag: 'label', + widths: colWidths$1 +}; + +var getColumnSizeClass$1 = function getColumnSizeClass(isXs, colWidth, colSize) { + if (colSize === true || colSize === '') { + return isXs ? 'col' : 'col-' + colWidth; + } else if (colSize === 'auto') { + return isXs ? 'col-auto' : 'col-' + colWidth + '-auto'; + } + + return isXs ? 'col-' + colSize : 'col-' + colWidth + '-' + colSize; +}; + +var Label = function Label(props) { + var className = props.className, + cssModule = props.cssModule, + hidden = props.hidden, + widths = props.widths, + Tag = props.tag, + check = props.check, + size = props.size, + htmlFor = props.for, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'hidden', 'widths', 'tag', 'check', 'size', 'for']); + + + var colClasses = []; + + widths.forEach(function (colWidth, i) { + var columnProp = props[colWidth]; + + delete attributes[colWidth]; + + if (!columnProp && columnProp !== '') { + return; + } + + var isXs = !i; + var colClass = void 0; + + if (lodash_isobject__WEBPACK_IMPORTED_MODULE_4___default()(columnProp)) { + var _classNames; + + var colSizeInterfix = isXs ? '-' : '-' + colWidth + '-'; + colClass = getColumnSizeClass$1(isXs, colWidth, columnProp.size); + + colClasses.push(mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()((_classNames = {}, defineProperty(_classNames, colClass, columnProp.size || columnProp.size === ''), defineProperty(_classNames, 'order' + colSizeInterfix + columnProp.order, columnProp.order || columnProp.order === 0), defineProperty(_classNames, 'offset' + colSizeInterfix + columnProp.offset, columnProp.offset || columnProp.offset === 0), _classNames))), cssModule); + } else { + colClass = getColumnSizeClass$1(isXs, colWidth, columnProp); + colClasses.push(colClass); + } + }); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, hidden ? 'sr-only' : false, check ? 'form-check-label' : false, size ? 'col-form-label-' + size : false, colClasses, colClasses.length ? 'col-form-label' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({ htmlFor: htmlFor }, attributes, { className: classes })); +}; + +Label.propTypes = propTypes$59; +Label.defaultProps = defaultProps$53; + +var propTypes$60 = { + body: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + bottom: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + heading: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + list: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + middle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + object: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + right: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + top: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool +}; + +var Media = function Media(props) { + var body = props.body, + bottom = props.bottom, + className = props.className, + cssModule = props.cssModule, + heading = props.heading, + left = props.left, + list = props.list, + middle = props.middle, + object = props.object, + right = props.right, + tag = props.tag, + top = props.top, + attributes = objectWithoutProperties(props, ['body', 'bottom', 'className', 'cssModule', 'heading', 'left', 'list', 'middle', 'object', 'right', 'tag', 'top']); + + + var defaultTag = void 0; + if (heading) { + defaultTag = 'h4'; + } else if (attributes.href) { + defaultTag = 'a'; + } else if (attributes.src || object) { + defaultTag = 'img'; + } else if (list) { + defaultTag = 'ul'; + } else { + defaultTag = 'div'; + } + var Tag = tag || defaultTag; + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, { + 'media-body': body, + 'media-heading': heading, + 'media-left': left, + 'media-right': right, + 'media-top': top, + 'media-bottom': bottom, + 'media-middle': middle, + 'media-object': object, + 'media-list': list, + media: !body && !heading && !left && !right && !top && !bottom && !middle && !object && !list + }), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Media.propTypes = propTypes$60; + +var propTypes$61 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + listClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + listTag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + 'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string +}; + +var defaultProps$54 = { + tag: 'nav', + listTag: 'ul', + 'aria-label': 'pagination' +}; + +var Pagination = function Pagination(props) { + var className = props.className, + listClassName = props.listClassName, + cssModule = props.cssModule, + size = props.size, + Tag = props.tag, + ListTag = props.listTag, + label = props['aria-label'], + attributes = objectWithoutProperties(props, ['className', 'listClassName', 'cssModule', 'size', 'tag', 'listTag', 'aria-label']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className), cssModule); + + var listClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(listClassName, 'pagination', defineProperty({}, 'pagination-' + size, !!size)), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + { className: classes, 'aria-label': label }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ListTag, _extends({}, attributes, { className: listClasses })) + ); +}; + +Pagination.propTypes = propTypes$61; +Pagination.defaultProps = defaultProps$54; + +var propTypes$62 = { + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]) +}; + +var defaultProps$55 = { + tag: 'li' +}; + +var PaginationItem = function PaginationItem(props) { + var active = props.active, + className = props.className, + cssModule = props.cssModule, + disabled = props.disabled, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['active', 'className', 'cssModule', 'disabled', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'page-item', { + active: active, + disabled: disabled + }), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +PaginationItem.propTypes = propTypes$62; +PaginationItem.defaultProps = defaultProps$55; + +var propTypes$63 = { + 'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + next: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + previous: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]) +}; + +var defaultProps$56 = { + tag: 'a' +}; + +var PaginationLink = function PaginationLink(props) { + var className = props.className, + cssModule = props.cssModule, + next = props.next, + previous = props.previous, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'next', 'previous', 'tag']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'page-link'), cssModule); + + var defaultAriaLabel = void 0; + if (previous) { + defaultAriaLabel = 'Previous'; + } else if (next) { + defaultAriaLabel = 'Next'; + } + var ariaLabel = props['aria-label'] || defaultAriaLabel; + + var defaultCaret = void 0; + if (previous) { + defaultCaret = '\xAB'; + } else if (next) { + defaultCaret = '\xBB'; + } + + var children = props.children; + if (children && Array.isArray(children) && children.length === 0) { + children = null; + } + + if (!attributes.href && Tag === 'a') { + Tag = 'button'; + } + + if (previous || next) { + children = [react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { + 'aria-hidden': 'true', + key: 'caret' + }, + children || defaultCaret + ), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { + className: 'sr-only', + key: 'sr' + }, + ariaLabel + )]; + } + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({}, attributes, { + className: classes, + 'aria-label': ariaLabel + }), + children + ); +}; + +PaginationLink.propTypes = propTypes$63; +PaginationLink.defaultProps = defaultProps$56; + +var propTypes$64 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + activeTab: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$57 = { + tag: 'div' +}; + +var childContextTypes$2 = { + activeTabId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any +}; + +var TabContent = function (_Component) { + inherits(TabContent, _Component); + createClass(TabContent, null, [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, prevState) { + if (prevState.activeTab !== nextProps.activeTab) { + return { + activeTab: nextProps.activeTab + }; + } + return null; + } + }]); + + function TabContent(props) { + classCallCheck(this, TabContent); + + var _this = possibleConstructorReturn(this, (TabContent.__proto__ || Object.getPrototypeOf(TabContent)).call(this, props)); + + _this.state = { + activeTab: _this.props.activeTab + }; + return _this; + } + + createClass(TabContent, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + activeTabId: this.state.activeTab + }; + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + className = _props.className, + cssModule = _props.cssModule, + Tag = _props.tag; + + + var attributes = omit(this.props, Object.keys(propTypes$64)); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('tab-content', className), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); + } + }]); + return TabContent; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_8__["polyfill"])(TabContent); +TabContent.propTypes = propTypes$64; +TabContent.defaultProps = defaultProps$57; +TabContent.childContextTypes = childContextTypes$2; + +var propTypes$65 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + tabId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any +}; + +var defaultProps$58 = { + tag: 'div' +}; + +var contextTypes$3 = { + activeTabId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any +}; + +function TabPane(props, context) { + var className = props.className, + cssModule = props.cssModule, + tabId = props.tabId, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tabId', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('tab-pane', className, { active: tabId === context.activeTabId }), cssModule); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +} +TabPane.propTypes = propTypes$65; +TabPane.defaultProps = defaultProps$58; +TabPane.contextTypes = contextTypes$3; + +var propTypes$66 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + fluid: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$59 = { + tag: 'div' +}; + +var Jumbotron = function Jumbotron(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + fluid = props.fluid, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'fluid']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'jumbotron', fluid ? 'jumbotron-fluid' : false), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +Jumbotron.propTypes = propTypes$66; +Jumbotron.defaultProps = defaultProps$59; + +var propTypes$67 = { + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + closeClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + closeAriaLabel: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + fade: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + toggle: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + transition: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape(Fade.propTypes), + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]) +}; + +var defaultProps$60 = { + color: 'success', + isOpen: true, + tag: 'div', + closeAriaLabel: 'Close', + fade: true, + transition: _extends({}, Fade.defaultProps, { + unmountOnExit: true + }) +}; + +function Alert(props) { + var className = props.className, + closeClassName = props.closeClassName, + closeAriaLabel = props.closeAriaLabel, + cssModule = props.cssModule, + Tag = props.tag, + color = props.color, + isOpen = props.isOpen, + toggle = props.toggle, + children = props.children, + transition = props.transition, + fade = props.fade, + innerRef = props.innerRef, + attributes = objectWithoutProperties(props, ['className', 'closeClassName', 'closeAriaLabel', 'cssModule', 'tag', 'color', 'isOpen', 'toggle', 'children', 'transition', 'fade', 'innerRef']); + + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'alert', 'alert-' + color, { 'alert-dismissible': toggle }), cssModule); + + var closeClasses = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()('close', closeClassName), cssModule); + + var alertTransition = _extends({}, Fade.defaultProps, transition, { + baseClass: fade ? transition.baseClass : '', + timeout: fade ? transition.timeout : 0 + }); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Fade, + _extends({}, attributes, alertTransition, { tag: Tag, className: classes, 'in': isOpen, role: 'alert', innerRef: innerRef }), + toggle ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'button', + { type: 'button', className: closeClasses, 'aria-label': closeAriaLabel, onClick: toggle }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + 'span', + { 'aria-hidden': 'true' }, + '\xD7' + ) + ) : null, + children + ); +} + +Alert.propTypes = propTypes$67; +Alert.defaultProps = defaultProps$60; + +var _transitionStatusToCl; + +var propTypes$68 = _extends({}, Transition.propTypes, { + isOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node), prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node]), + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, + navbar: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object, + innerRef: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}); + +var defaultProps$61 = _extends({}, Transition.defaultProps, { + isOpen: false, + appear: false, + enter: true, + exit: true, + tag: 'div', + timeout: TransitionTimeouts.Collapse +}); + +var transitionStatusToClassHash = (_transitionStatusToCl = {}, defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERING, 'collapsing'), defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERED, 'collapse show'), defineProperty(_transitionStatusToCl, TransitionStatuses.EXITING, 'collapsing'), defineProperty(_transitionStatusToCl, TransitionStatuses.EXITED, 'collapse'), _transitionStatusToCl); + +function getTransitionClass(status) { + return transitionStatusToClassHash[status] || 'collapse'; +} + +function getHeight(node) { + return node.scrollHeight; +} + +var Collapse = function (_Component) { + inherits(Collapse, _Component); + + function Collapse(props) { + classCallCheck(this, Collapse); + + var _this = possibleConstructorReturn(this, (Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call(this, props)); + + _this.state = { + height: null + }; + + ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach(function (name) { + _this[name] = _this[name].bind(_this); + }); + return _this; + } + + createClass(Collapse, [{ + key: 'onEntering', + value: function onEntering(node, isAppearing) { + this.setState({ height: getHeight(node) }); + this.props.onEntering(node, isAppearing); + } + }, { + key: 'onEntered', + value: function onEntered(node, isAppearing) { + this.setState({ height: null }); + this.props.onEntered(node, isAppearing); + } + }, { + key: 'onExit', + value: function onExit(node) { + this.setState({ height: getHeight(node) }); + this.props.onExit(node); + } + }, { + key: 'onExiting', + value: function onExiting(node) { + // getting this variable triggers a reflow + var _unused = node.offsetHeight; // eslint-disable-line no-unused-vars + this.setState({ height: 0 }); + this.props.onExiting(node); + } + }, { + key: 'onExited', + value: function onExited(node) { + this.setState({ height: null }); + this.props.onExited(node); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + Tag = _props.tag, + isOpen = _props.isOpen, + className = _props.className, + navbar = _props.navbar, + cssModule = _props.cssModule, + children = _props.children, + innerRef = _props.innerRef, + otherProps = objectWithoutProperties(_props, ['tag', 'isOpen', 'className', 'navbar', 'cssModule', 'children', 'innerRef']); + var height = this.state.height; + + // In NODE_ENV=production the Transition.propTypes are wrapped which results in an + // empty object "{}". This is the result of the `react-transition-group` babel + // configuration settings. Therefore, to ensure that production builds work without + // error, we can either explicitly define keys or use the Transition.defaultProps. + // Using the Transition.defaultProps excludes any required props. Thus, the best + // solution is to explicitly define required props in our utilities and reference these. + // This also gives us more flexibility in the future to remove the prop-types + // dependency in distribution builds (Similar to how `react-transition-group` does). + // Note: Without omitting the `react-transition-group` props, the resulting child + // Tag component would inherit the Transition properties as attributes for the HTML + // element which results in errors/warnings for non-valid attributes. + + var transitionProps = pick(otherProps, TransitionPropTypeKeys); + var childProps = omit(otherProps, TransitionPropTypeKeys); + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Transition, + _extends({}, transitionProps, { + 'in': isOpen, + onEntering: this.onEntering, + onEntered: this.onEntered, + onExit: this.onExit, + onExiting: this.onExiting, + onExited: this.onExited + }), + function (status) { + var collapseClass = getTransitionClass(status); + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, collapseClass, navbar && 'navbar-collapse'), cssModule); + var style = height === null ? null : { height: height }; + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + Tag, + _extends({}, childProps, { + style: _extends({}, childProps.style, style), + className: classes, + ref: _this2.props.innerRef + }), + children + ); + } + ); + } + }]); + return Collapse; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +Collapse.propTypes = propTypes$68; +Collapse.defaultProps = defaultProps$61; + +var propTypes$69 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + disabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, + action: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$62 = { + tag: 'li' +}; + +var handleDisabledOnClick = function handleDisabledOnClick(e) { + e.preventDefault(); +}; + +var ListGroupItem = function ListGroupItem(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + active = props.active, + disabled = props.disabled, + action = props.action, + color = props.color, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag', 'active', 'disabled', 'action', 'color']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, active ? 'active' : false, disabled ? 'disabled' : false, action ? 'list-group-item-action' : false, color ? 'list-group-item-' + color : false, 'list-group-item'), cssModule); + + // Prevent click event when disabled. + if (disabled) { + attributes.onClick = handleDisabledOnClick; + } + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ListGroupItem.propTypes = propTypes$69; +ListGroupItem.defaultProps = defaultProps$62; + +var propTypes$70 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$63 = { + tag: 'h5' +}; + +var ListGroupItemHeading = function ListGroupItemHeading(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'list-group-item-heading'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ListGroupItemHeading.propTypes = propTypes$70; +ListGroupItemHeading.defaultProps = defaultProps$63; + +var propTypes$71 = { + tag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]), + className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any, + cssModule: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object +}; + +var defaultProps$64 = { + tag: 'p' +}; + +var ListGroupItemText = function ListGroupItemText(props) { + var className = props.className, + cssModule = props.cssModule, + Tag = props.tag, + attributes = objectWithoutProperties(props, ['className', 'cssModule', 'tag']); + + var classes = mapToCssModules(classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'list-group-item-text'), cssModule); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tag, _extends({}, attributes, { className: classes })); +}; + +ListGroupItemText.propTypes = propTypes$71; +ListGroupItemText.defaultProps = defaultProps$64; + +var UncontrolledAlert = function (_Component) { + inherits(UncontrolledAlert, _Component); + + function UncontrolledAlert(props) { + classCallCheck(this, UncontrolledAlert); + + var _this = possibleConstructorReturn(this, (UncontrolledAlert.__proto__ || Object.getPrototypeOf(UncontrolledAlert)).call(this, props)); + + _this.state = { isOpen: true }; + _this.toggle = _this.toggle.bind(_this); + return _this; + } + + createClass(UncontrolledAlert, [{ + key: 'toggle', + value: function toggle() { + this.setState({ isOpen: !this.state.isOpen }); + } + }, { + key: 'render', + value: function render() { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Alert, _extends({ isOpen: this.state.isOpen, toggle: this.toggle }, this.props)); + } + }]); + return UncontrolledAlert; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +var UncontrolledButtonDropdown = function (_Component) { + inherits(UncontrolledButtonDropdown, _Component); + + function UncontrolledButtonDropdown(props) { + classCallCheck(this, UncontrolledButtonDropdown); + + var _this = possibleConstructorReturn(this, (UncontrolledButtonDropdown.__proto__ || Object.getPrototypeOf(UncontrolledButtonDropdown)).call(this, props)); + + _this.state = { isOpen: false }; + _this.toggle = _this.toggle.bind(_this); + return _this; + } + + createClass(UncontrolledButtonDropdown, [{ + key: 'toggle', + value: function toggle() { + this.setState({ isOpen: !this.state.isOpen }); + } + }, { + key: 'render', + value: function render() { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ButtonDropdown, _extends({ isOpen: this.state.isOpen, toggle: this.toggle }, this.props)); + } + }]); + return UncontrolledButtonDropdown; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +var propTypes$72 = { + toggler: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired, + toggleEvents: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string) +}; + +var defaultProps$65 = { + toggleEvents: defaultToggleEvents +}; + +var UncontrolledCollapse = function (_Component) { + inherits(UncontrolledCollapse, _Component); + + function UncontrolledCollapse(props) { + classCallCheck(this, UncontrolledCollapse); + + var _this = possibleConstructorReturn(this, (UncontrolledCollapse.__proto__ || Object.getPrototypeOf(UncontrolledCollapse)).call(this, props)); + + _this.togglers = null; + _this.removeEventListeners = null; + _this.toggle = _this.toggle.bind(_this); + + _this.state = { + isOpen: false + }; + return _this; + } + + createClass(UncontrolledCollapse, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.togglers = findDOMElements(this.props.toggler); + if (this.togglers.length) { + this.removeEventListeners = addMultipleEventListeners(this.togglers, this.toggle, this.props.toggleEvents); + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + if (this.togglers.length && this.removeEventListeners) { + this.removeEventListeners(); + } + } + }, { + key: 'toggle', + value: function toggle(e) { + this.setState(function (_ref) { + var isOpen = _ref.isOpen; + return { isOpen: !isOpen }; + }); + e.preventDefault(); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + toggleEvents = _props.toggleEvents, + rest = objectWithoutProperties(_props, ['toggleEvents']); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Collapse, _extends({ isOpen: this.state.isOpen }, rest)); + } + }]); + return UncontrolledCollapse; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +UncontrolledCollapse.propTypes = propTypes$72; +UncontrolledCollapse.defaultProps = defaultProps$65; + +var UncontrolledDropdown = function (_Component) { + inherits(UncontrolledDropdown, _Component); + + function UncontrolledDropdown(props) { + classCallCheck(this, UncontrolledDropdown); + + var _this = possibleConstructorReturn(this, (UncontrolledDropdown.__proto__ || Object.getPrototypeOf(UncontrolledDropdown)).call(this, props)); + + _this.state = { isOpen: false }; + _this.toggle = _this.toggle.bind(_this); + return _this; + } + + createClass(UncontrolledDropdown, [{ + key: 'toggle', + value: function toggle() { + this.setState({ isOpen: !this.state.isOpen }); + } + }, { + key: 'render', + value: function render() { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Dropdown, _extends({ isOpen: this.state.isOpen, toggle: this.toggle }, this.props)); + } + }]); + return UncontrolledDropdown; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + +var UncontrolledNavDropdown = function UncontrolledNavDropdown(props) { + warnOnce('The "UncontrolledNavDropdown" component has been deprecated.\nPlease use component "UncontrolledDropdown" with nav prop.'); + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(UncontrolledDropdown, _extends({ nav: true }, props)); +}; + +var UncontrolledTooltip = function (_Component) { + inherits(UncontrolledTooltip, _Component); + + function UncontrolledTooltip(props) { + classCallCheck(this, UncontrolledTooltip); + + var _this = possibleConstructorReturn(this, (UncontrolledTooltip.__proto__ || Object.getPrototypeOf(UncontrolledTooltip)).call(this, props)); + + _this.state = { isOpen: false }; + _this.toggle = _this.toggle.bind(_this); + return _this; + } + + createClass(UncontrolledTooltip, [{ + key: 'toggle', + value: function toggle() { + this.setState({ isOpen: !this.state.isOpen }); + } + }, { + key: 'render', + value: function render() { + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Tooltip, _extends({ isOpen: this.state.isOpen, toggle: this.toggle }, this.props)); + } + }]); + return UncontrolledTooltip; +}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]); + + + + +/***/ }), + +/***/ "./node_modules/readable-stream/duplex-browser.js": +/*!********************************************************!*\ + !*** ./node_modules/readable-stream/duplex-browser.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": +/*!************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + + + +/**/ + +var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); +/**/ + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); +/**/ + +var Readable = __webpack_require__(/*! ./_stream_readable */ "./node_modules/readable-stream/lib/_stream_readable.js"); +var Writable = __webpack_require__(/*! ./_stream_writable */ "./node_modules/readable-stream/lib/_stream_writable.js"); + +util.inherits(Duplex, Readable); + +{ + // avoid scope creep, the keys array can then be collected + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); +} + +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + pna.nextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + pna.nextTick(cb, err); +}; + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": +/*!*****************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + + + +module.exports = PassThrough; + +var Transform = __webpack_require__(/*! ./_stream_transform */ "./node_modules/readable-stream/lib/_stream_transform.js"); + +/**/ +var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_readable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +/**/ + +var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); +/**/ + +module.exports = Readable; + +/**/ +var isArray = __webpack_require__(/*! isarray */ "./node_modules/readable-stream/node_modules/isarray/index.js"); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ + +/**/ + +var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +/**/ +var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); +/**/ + +/**/ +var debugUtil = __webpack_require__(/*! util */ 1); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ "./node_modules/readable-stream/lib/internal/streams/BufferList.js"); +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js"); +var StringDecoder; + +util.inherits(Readable, Stream); + +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} + +function ReadableState(options, stream) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var readableHwm = options.readableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; + +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + + return needMoreData(state); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ "./node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js").StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + pna.nextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this, unpipeInfo); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + pna.nextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + pna.nextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + + var state = this._readableState; + var paused = false; + + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + + _this.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return this; +}; + +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._readableState.highWaterMark; + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + pna.nextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"))) + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_transform.js": +/*!***************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + + + +module.exports = Transform; + +var Duplex = __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + +/**/ +var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); +/**/ + +util.inherits(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return this.emit('error', new Error('write callback called multiple times')); + } + + ts.writechunk = null; + ts.writecb = null; + + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); + + cb(er); + + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} + +function prefinish() { + var _this = this; + + if (typeof this._flush === 'function') { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this2 = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this2.emit('close'); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); + + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_writable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + + + +/**/ + +var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); +/**/ + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = __webpack_require__(/*! core-util-is */ "./node_modules/core-util-is/lib/util.js"); +util.inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits_browser.js"); +/**/ + +/**/ +var internalUtil = { + deprecate: __webpack_require__(/*! util-deprecate */ "./node_modules/util-deprecate/browser.js") +}; +/**/ + +/**/ +var Stream = __webpack_require__(/*! ./internal/streams/stream */ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js"); +/**/ + +/**/ + +var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +var destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ "./node_modules/readable-stream/lib/internal/streams/destroy.js"); + +util.inherits(Writable, Stream); + +function nop() {} + +function WritableState(options, stream) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var writableHwm = options.writableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ "./node_modules/readable-stream/lib/_stream_duplex.js"); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + pna.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + pna.nextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} + +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + pna.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + pna.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + pna.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js": +/*!*************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = __webpack_require__(/*! safe-buffer */ "./node_modules/safe-buffer/index.js").Buffer; +var util = __webpack_require__(/*! util */ 2); + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); + +if (util && util.inspect && util.inspect.custom) { + module.exports.prototype[util.inspect.custom] = function () { + var obj = util.inspect({ length: this.length }); + return this.constructor.name + ' ' + obj; + }; +} + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!**********************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/**/ + +var pna = __webpack_require__(/*! process-nextick-args */ "./node_modules/process-nextick-args/index.js"); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + pna.nextTick(emitErrorNT, this, err); + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + pna.nextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + + return this; +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! events */ "./node_modules/events/events.js").EventEmitter; + + +/***/ }), + +/***/ "./node_modules/readable-stream/node_modules/isarray/index.js": +/*!********************************************************************!*\ + !*** ./node_modules/readable-stream/node_modules/isarray/index.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), + +/***/ "./node_modules/readable-stream/passthrough.js": +/*!*****************************************************!*\ + !*** ./node_modules/readable-stream/passthrough.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./readable */ "./node_modules/readable-stream/readable-browser.js").PassThrough + + +/***/ }), + +/***/ "./node_modules/readable-stream/readable-browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/readable-stream/readable-browser.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ "./node_modules/readable-stream/lib/_stream_readable.js"); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/readable-stream/lib/_stream_writable.js"); +exports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ "./node_modules/readable-stream/lib/_stream_duplex.js"); +exports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ "./node_modules/readable-stream/lib/_stream_transform.js"); +exports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ "./node_modules/readable-stream/lib/_stream_passthrough.js"); + + +/***/ }), + +/***/ "./node_modules/readable-stream/transform.js": +/*!***************************************************!*\ + !*** ./node_modules/readable-stream/transform.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./readable */ "./node_modules/readable-stream/readable-browser.js").Transform + + +/***/ }), + +/***/ "./node_modules/readable-stream/writable-browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/readable-stream/writable-browser.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ "./node_modules/readable-stream/lib/_stream_writable.js"); + + +/***/ }), + +/***/ "./node_modules/redux-devtools-dock-monitor/lib/DockMonitor.js": +/*!*********************************************************************!*\ + !*** ./node_modules/redux-devtools-dock-monitor/lib/DockMonitor.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactDock = __webpack_require__(/*! react-dock */ "./node_modules/react-dock/lib/index.js"); + +var _reactDock2 = _interopRequireDefault(_reactDock); + +var _constants = __webpack_require__(/*! ./constants */ "./node_modules/redux-devtools-dock-monitor/lib/constants.js"); + +var _actions = __webpack_require__(/*! ./actions */ "./node_modules/redux-devtools-dock-monitor/lib/actions.js"); + +var _reducers = __webpack_require__(/*! ./reducers */ "./node_modules/redux-devtools-dock-monitor/lib/reducers.js"); + +var _reducers2 = _interopRequireDefault(_reducers); + +var _parseKey = __webpack_require__(/*! parse-key */ "./node_modules/parse-key/parse-key.js"); + +var _parseKey2 = _interopRequireDefault(_parseKey); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var DockMonitor = function (_Component) { + _inherits(DockMonitor, _Component); + + function DockMonitor(props) { + _classCallCheck(this, DockMonitor); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props)); + + _this.handleKeyDown = _this.handleKeyDown.bind(_this); + _this.handleSizeChange = _this.handleSizeChange.bind(_this); + + var childrenCount = _react.Children.count(props.children); + if (childrenCount === 0) { + console.error(' requires at least one monitor inside. ' + 'Why don’t you try ? You can get it at ' + 'https://github.com/gaearon/redux-devtools-log-monitor.'); + } else if (childrenCount > 1 && !props.changeMonitorKey) { + console.error('You specified multiple monitors inside ' + 'but did not provide `changeMonitorKey` prop to change them. ' + 'Try specifying ' + 'and then press Ctrl-M.'); + } + return _this; + } + + DockMonitor.prototype.componentDidMount = function componentDidMount() { + window.addEventListener('keydown', this.handleKeyDown); + }; + + DockMonitor.prototype.componentWillUnmount = function componentWillUnmount() { + window.removeEventListener('keydown', this.handleKeyDown); + }; + + DockMonitor.prototype.matchesKey = function matchesKey(key, event) { + if (!key) { + return false; + } + + var charCode = event.keyCode || event.which; + var char = String.fromCharCode(charCode); + return key.name.toUpperCase() === char.toUpperCase() && key.alt === event.altKey && key.ctrl === event.ctrlKey && key.meta === event.metaKey && key.shift === event.shiftKey; + }; + + DockMonitor.prototype.handleKeyDown = function handleKeyDown(e) { + // Ignore regular keys when focused on a field + // and no modifiers are active. + if (!e.ctrlKey && !e.metaKey && !e.altKey && (e.target.tagName === 'INPUT' || e.target.tagName === 'SELECT' || e.target.tagName === 'TEXTAREA' || e.target.isContentEditable)) { + return; + } + + var visibilityKey = (0, _parseKey2.default)(this.props.toggleVisibilityKey); + var positionKey = (0, _parseKey2.default)(this.props.changePositionKey); + + var monitorKey = void 0; + if (this.props.changeMonitorKey) { + monitorKey = (0, _parseKey2.default)(this.props.changeMonitorKey); + } + + if (this.matchesKey(visibilityKey, e)) { + e.preventDefault(); + this.props.dispatch((0, _actions.toggleVisibility)()); + } else if (this.matchesKey(positionKey, e)) { + e.preventDefault(); + this.props.dispatch((0, _actions.changePosition)()); + } else if (this.matchesKey(monitorKey, e)) { + e.preventDefault(); + this.props.dispatch((0, _actions.changeMonitor)()); + } + }; + + DockMonitor.prototype.handleSizeChange = function handleSizeChange(requestedSize) { + this.props.dispatch((0, _actions.changeSize)(requestedSize)); + }; + + DockMonitor.prototype.renderChild = function renderChild(child, index, otherProps) { + var monitorState = this.props.monitorState; + var childMonitorIndex = monitorState.childMonitorIndex, + childMonitorStates = monitorState.childMonitorStates; + + + if (index !== childMonitorIndex) { + return null; + } + + return (0, _react.cloneElement)(child, _extends({ + monitorState: childMonitorStates[index] + }, otherProps)); + }; + + DockMonitor.prototype.render = function render() { + var _this2 = this; + + var _props = this.props, + monitorState = _props.monitorState, + children = _props.children, + fluid = _props.fluid, + rest = _objectWithoutProperties(_props, ['monitorState', 'children', 'fluid']); + + var position = monitorState.position, + isVisible = monitorState.isVisible, + size = monitorState.size; + + + return _react2.default.createElement( + _reactDock2.default, + { position: position, + isVisible: isVisible, + size: size, + fluid: fluid, + onSizeChange: this.handleSizeChange, + dimMode: 'none' }, + _react.Children.map(children, function (child, index) { + return _this2.renderChild(child, index, rest); + }) + ); + }; + + return DockMonitor; +}(_react.Component); + +DockMonitor.update = _reducers2.default; +DockMonitor.propTypes = { + defaultPosition: _propTypes2.default.oneOf(_constants.POSITIONS), + defaultIsVisible: _propTypes2.default.bool.isRequired, + defaultSize: _propTypes2.default.number.isRequired, + toggleVisibilityKey: _propTypes2.default.string.isRequired, + changePositionKey: _propTypes2.default.string.isRequired, + changeMonitorKey: _propTypes2.default.string, + fluid: _propTypes2.default.bool, + + dispatch: _propTypes2.default.func, + monitorState: _propTypes2.default.shape({ + position: _propTypes2.default.oneOf(_constants.POSITIONS).isRequired, + size: _propTypes2.default.number.isRequired, + isVisible: _propTypes2.default.bool.isRequired, + childMonitorState: _propTypes2.default.any + }) +}; +DockMonitor.defaultProps = { + defaultIsVisible: true, + defaultPosition: 'right', + defaultSize: 0.3, + fluid: true +}; +exports.default = DockMonitor; + +/***/ }), + +/***/ "./node_modules/redux-devtools-dock-monitor/lib/actions.js": +/*!*****************************************************************!*\ + !*** ./node_modules/redux-devtools-dock-monitor/lib/actions.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.toggleVisibility = toggleVisibility; +exports.changePosition = changePosition; +exports.changeSize = changeSize; +exports.changeMonitor = changeMonitor; +var TOGGLE_VISIBILITY = exports.TOGGLE_VISIBILITY = '@@redux-devtools-log-monitor/TOGGLE_VISIBILITY'; +function toggleVisibility() { + return { type: TOGGLE_VISIBILITY }; +} + +var CHANGE_POSITION = exports.CHANGE_POSITION = '@@redux-devtools-log-monitor/CHANGE_POSITION'; +function changePosition() { + return { type: CHANGE_POSITION }; +} + +var CHANGE_SIZE = exports.CHANGE_SIZE = '@@redux-devtools-log-monitor/CHANGE_SIZE'; +function changeSize(size) { + return { type: CHANGE_SIZE, size: size }; +} + +var CHANGE_MONITOR = exports.CHANGE_MONITOR = '@@redux-devtools-log-monitor/CHANGE_MONITOR'; +function changeMonitor() { + return { type: CHANGE_MONITOR }; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools-dock-monitor/lib/constants.js": +/*!*******************************************************************!*\ + !*** ./node_modules/redux-devtools-dock-monitor/lib/constants.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +var POSITIONS = exports.POSITIONS = ['left', 'top', 'right', 'bottom']; + +/***/ }), + +/***/ "./node_modules/redux-devtools-dock-monitor/lib/index.js": +/*!***************************************************************!*\ + !*** ./node_modules/redux-devtools-dock-monitor/lib/index.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = undefined; + +var _DockMonitor = __webpack_require__(/*! ./DockMonitor */ "./node_modules/redux-devtools-dock-monitor/lib/DockMonitor.js"); + +var _DockMonitor2 = _interopRequireDefault(_DockMonitor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _DockMonitor2.default; + +/***/ }), + +/***/ "./node_modules/redux-devtools-dock-monitor/lib/reducers.js": +/*!******************************************************************!*\ + !*** ./node_modules/redux-devtools-dock-monitor/lib/reducers.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = reducer; + +var _actions = __webpack_require__(/*! ./actions */ "./node_modules/redux-devtools-dock-monitor/lib/actions.js"); + +var _constants = __webpack_require__(/*! ./constants */ "./node_modules/redux-devtools-dock-monitor/lib/constants.js"); + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +function position(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.defaultPosition; + var action = arguments[2]; + + return action.type === _actions.CHANGE_POSITION ? _constants.POSITIONS[(_constants.POSITIONS.indexOf(state) + 1) % _constants.POSITIONS.length] : state; +} + +function size(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.defaultSize; + var action = arguments[2]; + + return action.type === _actions.CHANGE_SIZE ? action.size : state; +} + +function isVisible(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.defaultIsVisible; + var action = arguments[2]; + + return action.type === _actions.TOGGLE_VISIBILITY ? !state : state; +} + +function childMonitorStates(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var action = arguments[2]; + + return _react.Children.map(props.children, function (child, index) { + return child.type.update(child.props, state[index], action); + }); +} + +function childMonitorIndex(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var action = arguments[2]; + + switch (action.type) { + case _actions.CHANGE_MONITOR: + return (state + 1) % _react.Children.count(props.children); + default: + return state; + } +} + +function reducer(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var action = arguments[2]; + + if (!state.childMonitorStates) { + _react.Children.forEach(props.children, function (child, index) { + if (typeof child.type.update !== 'function') { + console.error('Child of with the index ' + index + ' ' + ('(' + (child.type.displayName || child.type.name || child.type) + ') ') + 'does not appear to be a valid Redux DevTools monitor.'); + } + }); + } + + return { + position: position(props, state.position, action), + isVisible: isVisible(props, state.isVisible, action), + size: size(props, state.size, action), + childMonitorIndex: childMonitorIndex(props, state.childMonitorIndex, action), + childMonitorStates: childMonitorStates(props, state.childMonitorStates, action) + }; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools-instrument/lib/instrument.js": +/*!******************************************************************!*\ + !*** ./node_modules/redux-devtools-instrument/lib/instrument.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.INIT_ACTION = exports.ActionCreators = exports.ActionTypes = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.liftAction = liftAction; +exports.liftReducerWith = liftReducerWith; +exports.unliftState = unliftState; +exports.unliftStore = unliftStore; +exports.default = instrument; + +var _difference = __webpack_require__(/*! lodash/difference */ "./node_modules/lodash/difference.js"); + +var _difference2 = _interopRequireDefault(_difference); + +var _union = __webpack_require__(/*! lodash/union */ "./node_modules/lodash/union.js"); + +var _union2 = _interopRequireDefault(_union); + +var _isPlainObject = __webpack_require__(/*! lodash/isPlainObject */ "./node_modules/lodash/isPlainObject.js"); + +var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + +var _symbolObservable = __webpack_require__(/*! symbol-observable */ "./node_modules/symbol-observable/es/index.js"); + +var _symbolObservable2 = _interopRequireDefault(_symbolObservable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ActionTypes = exports.ActionTypes = { + PERFORM_ACTION: 'PERFORM_ACTION', + RESET: 'RESET', + ROLLBACK: 'ROLLBACK', + COMMIT: 'COMMIT', + SWEEP: 'SWEEP', + TOGGLE_ACTION: 'TOGGLE_ACTION', + SET_ACTIONS_ACTIVE: 'SET_ACTIONS_ACTIVE', + JUMP_TO_STATE: 'JUMP_TO_STATE', + JUMP_TO_ACTION: 'JUMP_TO_ACTION', + REORDER_ACTION: 'REORDER_ACTION', + IMPORT_STATE: 'IMPORT_STATE', + LOCK_CHANGES: 'LOCK_CHANGES', + PAUSE_RECORDING: 'PAUSE_RECORDING' +}; + +/** + * Action creators to change the History state. + */ +var ActionCreators = exports.ActionCreators = { + performAction: function performAction(action) { + if (!(0, _isPlainObject2.default)(action)) { + throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); + } + + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); + } + + return { type: ActionTypes.PERFORM_ACTION, action: action, timestamp: Date.now() }; + }, + reset: function reset() { + return { type: ActionTypes.RESET, timestamp: Date.now() }; + }, + rollback: function rollback() { + return { type: ActionTypes.ROLLBACK, timestamp: Date.now() }; + }, + commit: function commit() { + return { type: ActionTypes.COMMIT, timestamp: Date.now() }; + }, + sweep: function sweep() { + return { type: ActionTypes.SWEEP }; + }, + toggleAction: function toggleAction(id) { + return { type: ActionTypes.TOGGLE_ACTION, id: id }; + }, + setActionsActive: function setActionsActive(start, end) { + var active = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + return { type: ActionTypes.SET_ACTIONS_ACTIVE, start: start, end: end, active: active }; + }, + reorderAction: function reorderAction(actionId, beforeActionId) { + return { type: ActionTypes.REORDER_ACTION, actionId: actionId, beforeActionId: beforeActionId }; + }, + jumpToState: function jumpToState(index) { + return { type: ActionTypes.JUMP_TO_STATE, index: index }; + }, + jumpToAction: function jumpToAction(actionId) { + return { type: ActionTypes.JUMP_TO_ACTION, actionId: actionId }; + }, + importState: function importState(nextLiftedState, noRecompute) { + return { type: ActionTypes.IMPORT_STATE, nextLiftedState: nextLiftedState, noRecompute: noRecompute }; + }, + lockChanges: function lockChanges(status) { + return { type: ActionTypes.LOCK_CHANGES, status: status }; + }, + pauseRecording: function pauseRecording(status) { + return { type: ActionTypes.PAUSE_RECORDING, status: status }; + } +}; + +var INIT_ACTION = exports.INIT_ACTION = { type: '@@INIT' }; + +/** + * Computes the next entry with exceptions catching. + */ +function computeWithTryCatch(reducer, action, state) { + var nextState = state; + var nextError = void 0; + try { + nextState = reducer(state, action); + } catch (err) { + nextError = err.toString(); + if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof window.chrome !== 'undefined' || typeof window.process !== 'undefined' && window.process.type === 'renderer')) { + // In Chrome, rethrowing provides better source map support + setTimeout(function () { + throw err; + }); + } else { + console.error(err); + } + } + + return { + state: nextState, + error: nextError + }; +} + +/** + * Computes the next entry in the log by applying an action. + */ +function computeNextEntry(reducer, action, state, shouldCatchErrors) { + if (!shouldCatchErrors) { + return { state: reducer(state, action) }; + } + return computeWithTryCatch(reducer, action, state); +} + +/** + * Runs the reducer on invalidated actions to get a fresh computation log. + */ +function recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, shouldCatchErrors) { + // Optimization: exit early and return the same reference + // if we know nothing could have changed. + if (!computedStates || minInvalidatedStateIndex === -1 || minInvalidatedStateIndex >= computedStates.length && computedStates.length === stagedActionIds.length) { + return computedStates; + } + + var nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex); + for (var i = minInvalidatedStateIndex; i < stagedActionIds.length; i++) { + var actionId = stagedActionIds[i]; + var action = actionsById[actionId].action; + + var previousEntry = nextComputedStates[i - 1]; + var previousState = previousEntry ? previousEntry.state : committedState; + + var shouldSkip = skippedActionIds.indexOf(actionId) > -1; + var entry = void 0; + if (shouldSkip) { + entry = previousEntry; + } else { + if (shouldCatchErrors && previousEntry && previousEntry.error) { + entry = { + state: previousState, + error: 'Interrupted by an error up the chain' + }; + } else { + entry = computeNextEntry(reducer, action, previousState, shouldCatchErrors); + } + } + nextComputedStates.push(entry); + } + + return nextComputedStates; +} + +/** + * Lifts an app's action into an action on the lifted store. + */ +function liftAction(action) { + return ActionCreators.performAction(action); +} + +/** + * Creates a history state reducer from an app's reducer. + */ +function liftReducerWith(reducer, initialCommittedState, monitorReducer, options) { + var initialLiftedState = { + monitorState: monitorReducer(undefined, {}), + nextActionId: 1, + actionsById: { 0: liftAction(INIT_ACTION) }, + stagedActionIds: [0], + skippedActionIds: [], + committedState: initialCommittedState, + currentStateIndex: 0, + computedStates: [], + isLocked: options.shouldStartLocked === true, + isPaused: options.shouldRecordChanges === false + }; + + /** + * Manages how the history actions modify the history state. + */ + return function (liftedState, liftedAction) { + var _ref = liftedState || initialLiftedState, + monitorState = _ref.monitorState, + actionsById = _ref.actionsById, + nextActionId = _ref.nextActionId, + stagedActionIds = _ref.stagedActionIds, + skippedActionIds = _ref.skippedActionIds, + committedState = _ref.committedState, + currentStateIndex = _ref.currentStateIndex, + computedStates = _ref.computedStates, + isLocked = _ref.isLocked, + isPaused = _ref.isPaused; + + if (!liftedState) { + // Prevent mutating initialLiftedState + actionsById = _extends({}, actionsById); + } + + function commitExcessActions(n) { + // Auto-commits n-number of excess actions. + var excess = n; + var idsToDelete = stagedActionIds.slice(1, excess + 1); + + for (var i = 0; i < idsToDelete.length; i++) { + if (computedStates[i + 1].error) { + // Stop if error is found. Commit actions up to error. + excess = i; + idsToDelete = stagedActionIds.slice(1, excess + 1); + break; + } else { + delete actionsById[idsToDelete[i]]; + } + } + + skippedActionIds = skippedActionIds.filter(function (id) { + return idsToDelete.indexOf(id) === -1; + }); + stagedActionIds = [0].concat(stagedActionIds.slice(excess + 1)); + committedState = computedStates[excess].state; + computedStates = computedStates.slice(excess); + currentStateIndex = currentStateIndex > excess ? currentStateIndex - excess : 0; + } + + function computePausedAction(shouldInit) { + var _extends2; + + var computedState = void 0; + if (shouldInit) { + computedState = computedStates[currentStateIndex]; + monitorState = monitorReducer(monitorState, liftedAction); + } else { + computedState = computeNextEntry(reducer, liftedAction.action, computedStates[currentStateIndex].state, false); + } + if (!options.pauseActionType || nextActionId === 1) { + return { + monitorState: monitorState, + actionsById: { 0: liftAction(INIT_ACTION) }, + nextActionId: 1, + stagedActionIds: [0], + skippedActionIds: [], + committedState: computedState.state, + currentStateIndex: 0, + computedStates: [computedState], + isLocked: isLocked, + isPaused: true + }; + } + if (shouldInit) { + if (currentStateIndex === stagedActionIds.length - 1) { + currentStateIndex++; + } + stagedActionIds = [].concat(stagedActionIds, [nextActionId]); + nextActionId++; + } + return { + monitorState: monitorState, + actionsById: _extends({}, actionsById, (_extends2 = {}, _extends2[nextActionId - 1] = liftAction({ type: options.pauseActionType }), _extends2)), + nextActionId: nextActionId, + stagedActionIds: stagedActionIds, + skippedActionIds: skippedActionIds, + committedState: committedState, + currentStateIndex: currentStateIndex, + computedStates: [].concat(computedStates.slice(0, stagedActionIds.length - 1), [computedState]), + isLocked: isLocked, + isPaused: true + }; + } + + // By default, agressively recompute every state whatever happens. + // This has O(n) performance, so we'll override this to a sensible + // value whenever we feel like we don't have to recompute the states. + var minInvalidatedStateIndex = 0; + + if (/^@@redux\/(INIT|REPLACE)/.test(liftedAction.type)) { + if (options.shouldHotReload === false) { + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + committedState = computedStates.length === 0 ? initialCommittedState : computedStates[currentStateIndex].state; + currentStateIndex = 0; + computedStates = []; + } + + // Recompute states on hot reload and init. + minInvalidatedStateIndex = 0; + + if (options.maxAge && stagedActionIds.length > options.maxAge) { + // States must be recomputed before committing excess. + computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, options.shouldCatchErrors); + + commitExcessActions(stagedActionIds.length - options.maxAge); + + // Avoid double computation. + minInvalidatedStateIndex = Infinity; + } + } else { + switch (liftedAction.type) { + case ActionTypes.PERFORM_ACTION: + { + if (isLocked) return liftedState || initialLiftedState; + if (isPaused) return computePausedAction(); + + // Auto-commit as new actions come in. + if (options.maxAge && stagedActionIds.length === options.maxAge) { + commitExcessActions(1); + } + + if (currentStateIndex === stagedActionIds.length - 1) { + currentStateIndex++; + } + var actionId = nextActionId++; + // Mutation! This is the hottest path, and we optimize on purpose. + // It is safe because we set a new key in a cache dictionary. + actionsById[actionId] = liftedAction; + stagedActionIds = [].concat(stagedActionIds, [actionId]); + // Optimization: we know that only the new action needs computing. + minInvalidatedStateIndex = stagedActionIds.length - 1; + break; + } + case ActionTypes.RESET: + { + // Get back to the state the store was created with. + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + committedState = initialCommittedState; + currentStateIndex = 0; + computedStates = []; + break; + } + case ActionTypes.COMMIT: + { + // Consider the last committed state the new starting point. + // Squash any staged actions into a single committed state. + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + committedState = computedStates[currentStateIndex].state; + currentStateIndex = 0; + computedStates = []; + break; + } + case ActionTypes.ROLLBACK: + { + // Forget about any staged actions. + // Start again from the last committed state. + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + currentStateIndex = 0; + computedStates = []; + break; + } + case ActionTypes.TOGGLE_ACTION: + { + // Toggle whether an action with given ID is skipped. + // Being skipped means it is a no-op during the computation. + var _actionId = liftedAction.id; + + var index = skippedActionIds.indexOf(_actionId); + if (index === -1) { + skippedActionIds = [_actionId].concat(skippedActionIds); + } else { + skippedActionIds = skippedActionIds.filter(function (id) { + return id !== _actionId; + }); + } + // Optimization: we know history before this action hasn't changed + minInvalidatedStateIndex = stagedActionIds.indexOf(_actionId); + break; + } + case ActionTypes.SET_ACTIONS_ACTIVE: + { + // Toggle whether an action with given ID is skipped. + // Being skipped means it is a no-op during the computation. + var start = liftedAction.start, + end = liftedAction.end, + active = liftedAction.active; + + var actionIds = []; + for (var i = start; i < end; i++) { + actionIds.push(i); + }if (active) { + skippedActionIds = (0, _difference2.default)(skippedActionIds, actionIds); + } else { + skippedActionIds = (0, _union2.default)(skippedActionIds, actionIds); + } + + // Optimization: we know history before this action hasn't changed + minInvalidatedStateIndex = stagedActionIds.indexOf(start); + break; + } + case ActionTypes.JUMP_TO_STATE: + { + // Without recomputing anything, move the pointer that tell us + // which state is considered the current one. Useful for sliders. + currentStateIndex = liftedAction.index; + // Optimization: we know the history has not changed. + minInvalidatedStateIndex = Infinity; + break; + } + case ActionTypes.JUMP_TO_ACTION: + { + // Jumps to a corresponding state to a specific action. + // Useful when filtering actions. + var _index = stagedActionIds.indexOf(liftedAction.actionId); + if (_index !== -1) currentStateIndex = _index; + minInvalidatedStateIndex = Infinity; + break; + } + case ActionTypes.SWEEP: + { + // Forget any actions that are currently being skipped. + stagedActionIds = (0, _difference2.default)(stagedActionIds, skippedActionIds); + skippedActionIds = []; + currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1); + break; + } + case ActionTypes.REORDER_ACTION: + { + // Recompute actions in a new order. + var _actionId2 = liftedAction.actionId; + var idx = stagedActionIds.indexOf(_actionId2); + // do nothing in case the action is already removed or trying to move the first action + if (idx < 1) break; + var beforeActionId = liftedAction.beforeActionId; + var newIdx = stagedActionIds.indexOf(beforeActionId); + if (newIdx < 1) { + // move to the beginning or to the end + var count = stagedActionIds.length; + newIdx = beforeActionId > stagedActionIds[count - 1] ? count : 1; + } + var diff = idx - newIdx; + + if (diff > 0) { + // move left + stagedActionIds = [].concat(stagedActionIds.slice(0, newIdx), [_actionId2], stagedActionIds.slice(newIdx, idx), stagedActionIds.slice(idx + 1)); + minInvalidatedStateIndex = newIdx; + } else if (diff < 0) { + // move right + stagedActionIds = [].concat(stagedActionIds.slice(0, idx), stagedActionIds.slice(idx + 1, newIdx), [_actionId2], stagedActionIds.slice(newIdx)); + minInvalidatedStateIndex = idx; + } + break; + } + case ActionTypes.IMPORT_STATE: + { + if (Array.isArray(liftedAction.nextLiftedState)) { + // recompute array of actions + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + currentStateIndex = liftedAction.nextLiftedState.length; + computedStates = []; + committedState = liftedAction.preloadedState; + minInvalidatedStateIndex = 0; + // iterate through actions + liftedAction.nextLiftedState.forEach(function (action) { + actionsById[nextActionId] = liftAction(action); + stagedActionIds.push(nextActionId); + nextActionId++; + }); + } else { + var _liftedAction$nextLif = liftedAction.nextLiftedState; + // Completely replace everything. + + monitorState = _liftedAction$nextLif.monitorState; + actionsById = _liftedAction$nextLif.actionsById; + nextActionId = _liftedAction$nextLif.nextActionId; + stagedActionIds = _liftedAction$nextLif.stagedActionIds; + skippedActionIds = _liftedAction$nextLif.skippedActionIds; + committedState = _liftedAction$nextLif.committedState; + currentStateIndex = _liftedAction$nextLif.currentStateIndex; + computedStates = _liftedAction$nextLif.computedStates; + + + if (liftedAction.noRecompute) { + minInvalidatedStateIndex = Infinity; + } + } + + break; + } + case ActionTypes.LOCK_CHANGES: + { + isLocked = liftedAction.status; + minInvalidatedStateIndex = Infinity; + break; + } + case ActionTypes.PAUSE_RECORDING: + { + isPaused = liftedAction.status; + if (isPaused) { + return computePausedAction(true); + } + // Commit when unpausing + actionsById = { 0: liftAction(INIT_ACTION) }; + nextActionId = 1; + stagedActionIds = [0]; + skippedActionIds = []; + committedState = computedStates[currentStateIndex].state; + currentStateIndex = 0; + computedStates = []; + break; + } + default: + { + // If the action is not recognized, it's a monitor action. + // Optimization: a monitor action can't change history. + minInvalidatedStateIndex = Infinity; + break; + } + } + } + + computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, options.shouldCatchErrors); + monitorState = monitorReducer(monitorState, liftedAction); + return { + monitorState: monitorState, + actionsById: actionsById, + nextActionId: nextActionId, + stagedActionIds: stagedActionIds, + skippedActionIds: skippedActionIds, + committedState: committedState, + currentStateIndex: currentStateIndex, + computedStates: computedStates, + isLocked: isLocked, + isPaused: isPaused + }; + }; +} + +/** + * Provides an app's view into the state of the lifted store. + */ +function unliftState(liftedState) { + var computedStates = liftedState.computedStates, + currentStateIndex = liftedState.currentStateIndex; + var state = computedStates[currentStateIndex].state; + + return state; +} + +/** + * Provides an app's view into the lifted store. + */ +function unliftStore(liftedStore, liftReducer) { + var _extends3; + + var lastDefinedState = void 0; + + function getState() { + var state = unliftState(liftedStore.getState()); + if (state !== undefined) { + lastDefinedState = state; + } + return lastDefinedState; + } + + return _extends({}, liftedStore, (_extends3 = { + + liftedStore: liftedStore, + + dispatch: function dispatch(action) { + liftedStore.dispatch(liftAction(action)); + return action; + }, + + + getState: getState, + + replaceReducer: function replaceReducer(nextReducer) { + liftedStore.replaceReducer(liftReducer(nextReducer)); + } + }, _extends3[_symbolObservable2.default] = function () { + return _extends({}, liftedStore[_symbolObservable2.default](), { + subscribe: function subscribe(observer) { + if ((typeof observer === 'undefined' ? 'undefined' : _typeof(observer)) !== 'object') { + throw new TypeError('Expected the observer to be an object.'); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = liftedStore.subscribe(observeState); + return { unsubscribe: unsubscribe }; + } + }); + }, _extends3)); +} + +/** + * Redux instrumentation store enhancer. + */ +function instrument() { + var monitorReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () { + return null; + }; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + /* eslint-disable no-eq-null */ + if (options.maxAge != null && options.maxAge < 2) { + /* eslint-enable */ + throw new Error('DevTools.instrument({ maxAge }) option, if specified, ' + 'may not be less than 2.'); + } + + return function (createStore) { + return function (reducer, initialState, enhancer) { + + function liftReducer(r) { + if (typeof r !== 'function') { + if (r && typeof r.default === 'function') { + throw new Error('Expected the reducer to be a function. ' + 'Instead got an object with a "default" field. ' + 'Did you pass a module instead of the default export? ' + 'Try passing require(...).default instead.'); + } + throw new Error('Expected the reducer to be a function.'); + } + return liftReducerWith(r, initialState, monitorReducer, options); + } + + var liftedStore = createStore(liftReducer(reducer), enhancer); + if (liftedStore.liftedStore) { + throw new Error('DevTools instrumentation should not be applied more than once. ' + 'Check your store configuration.'); + } + + return unliftStore(liftedStore, liftReducer); + }; + }; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitor.js": +/*!*******************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitor.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _function = __webpack_require__(/*! react-pure-render/function */ "./node_modules/react-pure-render/function.js"); + +var _function2 = _interopRequireDefault(_function); + +var _reduxDevtoolsThemes = __webpack_require__(/*! redux-devtools-themes */ "./node_modules/redux-devtools-themes/lib/index.js"); + +var themes = _interopRequireWildcard(_reduxDevtoolsThemes); + +var _reduxDevtools = __webpack_require__(/*! redux-devtools */ "./node_modules/redux-devtools/lib/index.js"); + +var _actions = __webpack_require__(/*! ./actions */ "./node_modules/redux-devtools-log-monitor/lib/actions.js"); + +var _reducers = __webpack_require__(/*! ./reducers */ "./node_modules/redux-devtools-log-monitor/lib/reducers.js"); + +var _reducers2 = _interopRequireDefault(_reducers); + +var _LogMonitorButtonBar = __webpack_require__(/*! ./LogMonitorButtonBar */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorButtonBar.js"); + +var _LogMonitorButtonBar2 = _interopRequireDefault(_LogMonitorButtonBar); + +var _LogMonitorEntryList = __webpack_require__(/*! ./LogMonitorEntryList */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryList.js"); + +var _LogMonitorEntryList2 = _interopRequireDefault(_LogMonitorEntryList); + +var _lodash = __webpack_require__(/*! lodash.debounce */ "./node_modules/lodash.debounce/index.js"); + +var _lodash2 = _interopRequireDefault(_lodash); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var toggleAction = _reduxDevtools.ActionCreators.toggleAction; +var setActionsActive = _reduxDevtools.ActionCreators.setActionsActive; + + +var styles = { + container: { + fontFamily: 'monaco, Consolas, Lucida Console, monospace', + position: 'relative', + overflowY: 'hidden', + width: '100%', + height: '100%', + minWidth: 300, + direction: 'ltr' + }, + elements: { + position: 'absolute', + left: 0, + right: 0, + top: 0, + bottom: 0, + overflowX: 'hidden', + overflowY: 'auto' + } +}; + +var LogMonitor = function (_Component) { + _inherits(LogMonitor, _Component); + + function LogMonitor(props) { + _classCallCheck(this, LogMonitor); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props)); + + _this.shouldComponentUpdate = _function2.default; + _this.updateScrollTop = (0, _lodash2.default)(function () { + var node = _this.node; + _this.props.dispatch((0, _actions.updateScrollTop)(node ? node.scrollTop : 0)); + }, 500); + + _this.handleToggleAction = _this.handleToggleAction.bind(_this); + _this.handleToggleConsecutiveAction = _this.handleToggleConsecutiveAction.bind(_this); + _this.getRef = _this.getRef.bind(_this); + return _this; + } + + LogMonitor.prototype.scroll = function scroll() { + var node = this.node; + if (!node) { + return; + } + if (this.scrollDown) { + var offsetHeight = node.offsetHeight; + var scrollHeight = node.scrollHeight; + + node.scrollTop = scrollHeight - offsetHeight; + this.scrollDown = false; + } + }; + + LogMonitor.prototype.componentDidMount = function componentDidMount() { + var node = this.node; + if (!node || !this.props.monitorState) { + return; + } + + if (this.props.preserveScrollTop) { + node.scrollTop = this.props.monitorState.initialScrollTop; + node.addEventListener('scroll', this.updateScrollTop); + } else { + this.scrollDown = true; + this.scroll(); + } + }; + + LogMonitor.prototype.componentWillUnmount = function componentWillUnmount() { + var node = this.node; + if (node && this.props.preserveScrollTop) { + node.removeEventListener('scroll', this.updateScrollTop); + } + }; + + LogMonitor.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var node = this.node; + if (!node) { + this.scrollDown = true; + } else if (this.props.stagedActionIds.length < nextProps.stagedActionIds.length) { + var scrollTop = node.scrollTop; + var offsetHeight = node.offsetHeight; + var scrollHeight = node.scrollHeight; + + + this.scrollDown = Math.abs(scrollHeight - (scrollTop + offsetHeight)) < 20; + } else { + this.scrollDown = false; + } + }; + + LogMonitor.prototype.componentDidUpdate = function componentDidUpdate() { + this.scroll(); + }; + + LogMonitor.prototype.handleToggleAction = function handleToggleAction(id) { + this.props.dispatch(toggleAction(id)); + }; + + LogMonitor.prototype.handleToggleConsecutiveAction = function handleToggleConsecutiveAction(id) { + var _props = this.props; + var monitorState = _props.monitorState; + var actionsById = _props.actionsById; + var consecutiveToggleStartId = monitorState.consecutiveToggleStartId; + + if (consecutiveToggleStartId && actionsById[consecutiveToggleStartId]) { + var skippedActionIds = this.props.skippedActionIds; + + var start = Math.min(consecutiveToggleStartId, id); + var end = Math.max(consecutiveToggleStartId, id); + var active = skippedActionIds.indexOf(consecutiveToggleStartId) > -1; + this.props.dispatch(setActionsActive(start, end + 1, active)); + this.props.dispatch((0, _actions.startConsecutiveToggle)(null)); + } else if (id > 0) { + this.props.dispatch((0, _actions.startConsecutiveToggle)(id)); + } + }; + + LogMonitor.prototype.getTheme = function getTheme() { + var theme = this.props.theme; + + if (typeof theme !== 'string') { + return theme; + } + + if (typeof themes[theme] !== 'undefined') { + return themes[theme]; + } + + console.warn('DevTools theme ' + theme + ' not found, defaulting to nicinabox'); + return themes.nicinabox; + }; + + LogMonitor.prototype.getRef = function getRef(node) { + this.node = node; + }; + + LogMonitor.prototype.render = function render() { + var theme = this.getTheme(); + var consecutiveToggleStartId = this.props.monitorState.consecutiveToggleStartId; + var _props2 = this.props; + var dispatch = _props2.dispatch; + var actionsById = _props2.actionsById; + var skippedActionIds = _props2.skippedActionIds; + var stagedActionIds = _props2.stagedActionIds; + var computedStates = _props2.computedStates; + var currentStateIndex = _props2.currentStateIndex; + var select = _props2.select; + var expandActionRoot = _props2.expandActionRoot; + var expandStateRoot = _props2.expandStateRoot; + var markStateDiff = _props2.markStateDiff; + + + var entryListProps = { + theme: theme, + actionsById: actionsById, + skippedActionIds: skippedActionIds, + stagedActionIds: stagedActionIds, + computedStates: computedStates, + currentStateIndex: currentStateIndex, + consecutiveToggleStartId: consecutiveToggleStartId, + select: select, + expandActionRoot: expandActionRoot, + expandStateRoot: expandStateRoot, + markStateDiff: markStateDiff, + onActionClick: this.handleToggleAction, + onActionShiftClick: this.handleToggleConsecutiveAction + }; + + return _react2.default.createElement( + 'div', + { style: _extends({}, styles.container, { backgroundColor: theme.base00 }) }, + !this.props.hideMainButtons && _react2.default.createElement(_LogMonitorButtonBar2.default, { + theme: theme, + dispatch: dispatch, + hasStates: computedStates.length > 1, + hasSkippedActions: skippedActionIds.length > 0 + }), + _react2.default.createElement( + 'div', + { + style: this.props.hideMainButtons ? styles.elements : _extends({}, styles.elements, { top: 30 }), + ref: this.getRef + }, + _react2.default.createElement(_LogMonitorEntryList2.default, entryListProps) + ) + ); + }; + + return LogMonitor; +}(_react.Component); + +LogMonitor.update = _reducers2.default; +LogMonitor.propTypes = { + dispatch: _propTypes2.default.func, + computedStates: _propTypes2.default.array, + actionsById: _propTypes2.default.object, + stagedActionIds: _propTypes2.default.array, + skippedActionIds: _propTypes2.default.array, + monitorState: _propTypes2.default.shape({ + initialScrollTop: _propTypes2.default.number, + consecutiveToggleStartId: _propTypes2.default.number + }), + + preserveScrollTop: _propTypes2.default.bool, + select: _propTypes2.default.func, + theme: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]), + expandActionRoot: _propTypes2.default.bool, + expandStateRoot: _propTypes2.default.bool, + markStateDiff: _propTypes2.default.bool, + hideMainButtons: _propTypes2.default.bool +}; +LogMonitor.defaultProps = { + select: function select(state) { + return state; + }, + theme: 'nicinabox', + preserveScrollTop: true, + expandActionRoot: true, + expandStateRoot: true, + markStateDiff: false +}; +exports.default = LogMonitor; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorButton.js": +/*!*************************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitorButton.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _brighten = __webpack_require__(/*! ./brighten */ "./node_modules/redux-devtools-log-monitor/lib/brighten.js"); + +var _brighten2 = _interopRequireDefault(_brighten); + +var _function = __webpack_require__(/*! react-pure-render/function */ "./node_modules/react-pure-render/function.js"); + +var _function2 = _interopRequireDefault(_function); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var styles = { + base: { + cursor: 'pointer', + fontWeight: 'bold', + borderRadius: 3, + padding: 4, + marginLeft: 3, + marginRight: 3, + marginTop: 5, + marginBottom: 5, + flexGrow: 1, + display: 'inline-block', + fontSize: '0.8em', + color: 'white', + textDecoration: 'none' + } +}; + +var LogMonitorButton = function (_React$Component) { + _inherits(LogMonitorButton, _React$Component); + + function LogMonitorButton(props) { + _classCallCheck(this, LogMonitorButton); + + var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); + + _this.shouldComponentUpdate = _function2.default; + + + _this.handleMouseEnter = _this.handleMouseEnter.bind(_this); + _this.handleMouseLeave = _this.handleMouseLeave.bind(_this); + _this.handleMouseDown = _this.handleMouseDown.bind(_this); + _this.handleMouseUp = _this.handleMouseUp.bind(_this); + _this.onClick = _this.onClick.bind(_this); + + _this.state = { + hovered: false, + active: false + }; + return _this; + } + + LogMonitorButton.prototype.handleMouseEnter = function handleMouseEnter() { + this.setState({ hovered: true }); + }; + + LogMonitorButton.prototype.handleMouseLeave = function handleMouseLeave() { + this.setState({ hovered: false }); + }; + + LogMonitorButton.prototype.handleMouseDown = function handleMouseDown() { + this.setState({ active: true }); + }; + + LogMonitorButton.prototype.handleMouseUp = function handleMouseUp() { + this.setState({ active: false }); + }; + + LogMonitorButton.prototype.onClick = function onClick() { + if (!this.props.enabled) { + return; + } + if (this.props.onClick) { + this.props.onClick(); + } + }; + + LogMonitorButton.prototype.render = function render() { + var style = _extends({}, styles.base, { + backgroundColor: this.props.theme.base02 + }); + if (this.props.enabled && this.state.hovered) { + style = _extends({}, style, { + backgroundColor: (0, _brighten2.default)(this.props.theme.base02, 0.2) + }); + } + if (!this.props.enabled) { + style = _extends({}, style, { + opacity: 0.2, + cursor: 'text', + backgroundColor: 'transparent' + }); + } + return _react2.default.createElement( + 'a', + { onMouseEnter: this.handleMouseEnter, + onMouseLeave: this.handleMouseLeave, + onMouseDown: this.handleMouseDown, + onMouseUp: this.handleMouseUp, + onClick: this.onClick, + style: style }, + this.props.children + ); + }; + + return LogMonitorButton; +}(_react2.default.Component); + +exports.default = LogMonitorButton; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorButtonBar.js": +/*!****************************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitorButtonBar.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _function = __webpack_require__(/*! react-pure-render/function */ "./node_modules/react-pure-render/function.js"); + +var _function2 = _interopRequireDefault(_function); + +var _reduxDevtools = __webpack_require__(/*! redux-devtools */ "./node_modules/redux-devtools/lib/index.js"); + +var _LogMonitorButton = __webpack_require__(/*! ./LogMonitorButton */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorButton.js"); + +var _LogMonitorButton2 = _interopRequireDefault(_LogMonitorButton); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var reset = _reduxDevtools.ActionCreators.reset; +var rollback = _reduxDevtools.ActionCreators.rollback; +var commit = _reduxDevtools.ActionCreators.commit; +var sweep = _reduxDevtools.ActionCreators.sweep; + + +var style = { + textAlign: 'center', + borderBottomWidth: 1, + borderBottomStyle: 'solid', + borderColor: 'transparent', + zIndex: 1, + display: 'flex', + flexDirection: 'row' +}; + +var LogMonitorButtonBar = function (_Component) { + _inherits(LogMonitorButtonBar, _Component); + + function LogMonitorButtonBar(props) { + _classCallCheck(this, LogMonitorButtonBar); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props)); + + _this.shouldComponentUpdate = _function2.default; + + _this.handleReset = _this.handleReset.bind(_this); + _this.handleRollback = _this.handleRollback.bind(_this); + _this.handleSweep = _this.handleSweep.bind(_this); + _this.handleCommit = _this.handleCommit.bind(_this); + return _this; + } + + LogMonitorButtonBar.prototype.handleRollback = function handleRollback() { + this.props.dispatch(rollback()); + }; + + LogMonitorButtonBar.prototype.handleSweep = function handleSweep() { + this.props.dispatch(sweep()); + }; + + LogMonitorButtonBar.prototype.handleCommit = function handleCommit() { + this.props.dispatch(commit()); + }; + + LogMonitorButtonBar.prototype.handleReset = function handleReset() { + this.props.dispatch(reset()); + }; + + LogMonitorButtonBar.prototype.render = function render() { + var _props = this.props; + var theme = _props.theme; + var hasStates = _props.hasStates; + var hasSkippedActions = _props.hasSkippedActions; + + return _react2.default.createElement( + 'div', + { style: _extends({}, style, { borderColor: theme.base02 }) }, + _react2.default.createElement( + _LogMonitorButton2.default, + { + theme: theme, + onClick: this.handleReset, + enabled: true }, + 'Reset' + ), + _react2.default.createElement( + _LogMonitorButton2.default, + { + theme: theme, + onClick: this.handleRollback, + enabled: hasStates }, + 'Revert' + ), + _react2.default.createElement( + _LogMonitorButton2.default, + { + theme: theme, + onClick: this.handleSweep, + enabled: hasSkippedActions }, + 'Sweep' + ), + _react2.default.createElement( + _LogMonitorButton2.default, + { + theme: theme, + onClick: this.handleCommit, + enabled: hasStates }, + 'Commit' + ) + ); + }; + + return LogMonitorButtonBar; +}(_react.Component); + +LogMonitorButtonBar.propTypes = { + dispatch: _propTypes2.default.func, + theme: _propTypes2.default.object +}; +exports.default = LogMonitorButtonBar; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntry.js": +/*!************************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntry.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactJsonTree = __webpack_require__(/*! react-json-tree */ "./node_modules/react-json-tree/lib/index.js"); + +var _reactJsonTree2 = _interopRequireDefault(_reactJsonTree); + +var _LogMonitorEntryAction = __webpack_require__(/*! ./LogMonitorEntryAction */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryAction.js"); + +var _LogMonitorEntryAction2 = _interopRequireDefault(_LogMonitorEntryAction); + +var _function = __webpack_require__(/*! react-pure-render/function */ "./node_modules/react-pure-render/function.js"); + +var _function2 = _interopRequireDefault(_function); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var styles = { + entry: { + display: 'block', + WebkitUserSelect: 'none' + }, + + root: { + marginLeft: 0 + } +}; + +var getDeepItem = function getDeepItem(data, path) { + return path.reduce(function (obj, key) { + return obj && obj[key]; + }, data); +}; +var dataIsEqual = function dataIsEqual(data, previousData, keyPath) { + var path = [].concat(keyPath).reverse().slice(1); + + return getDeepItem(data, path) === getDeepItem(previousData, path); +}; + +var LogMonitorEntry = function (_Component) { + _inherits(LogMonitorEntry, _Component); + + function LogMonitorEntry(props) { + _classCallCheck(this, LogMonitorEntry); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props)); + + _this.shouldComponentUpdate = _function2.default; + + _this.handleActionClick = _this.handleActionClick.bind(_this); + _this.shouldExpandNode = _this.shouldExpandNode.bind(_this); + return _this; + } + + LogMonitorEntry.prototype.printState = function printState(state, error) { + var _this2 = this; + + var errorText = error; + if (!errorText) { + try { + var _ret = function () { + var data = _this2.props.select(state); + var theme = void 0; + + if (_this2.props.markStateDiff) { + (function () { + var previousData = typeof _this2.props.previousState !== 'undefined' ? _this2.props.select(_this2.props.previousState) : undefined; + var getValueStyle = function getValueStyle(_ref, nodeType, keyPath) { + var style = _ref.style; + return { + style: _extends({}, style, { + backgroundColor: dataIsEqual(data, previousData, keyPath) ? 'transparent' : _this2.props.theme.base01 + }) + }; + }; + var getNestedNodeStyle = function getNestedNodeStyle(_ref2, keyPath) { + var style = _ref2.style; + return { + style: _extends({}, style, keyPath.length > 1 ? {} : styles.root) + }; + }; + theme = { + extend: _this2.props.theme, + tree: styles.tree, + value: getValueStyle, + nestedNode: getNestedNodeStyle + }; + })(); + } else { + theme = _this2.props.theme; + } + + return { + v: _react2.default.createElement(_reactJsonTree2.default, { + theme: theme, + data: data, + invertTheme: false, + keyPath: ['state'], + shouldExpandNode: _this2.shouldExpandNode }) + }; + }(); + + if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; + } catch (err) { + errorText = 'Error selecting state.'; + } + } + + return _react2.default.createElement( + 'div', + { style: { + color: this.props.theme.base08, + paddingTop: 20, + paddingLeft: 30, + paddingRight: 30, + paddingBottom: 35 + } }, + errorText + ); + }; + + LogMonitorEntry.prototype.handleActionClick = function handleActionClick(e) { + var _props = this.props; + var actionId = _props.actionId; + var onActionClick = _props.onActionClick; + var onActionShiftClick = _props.onActionShiftClick; + + if (actionId > 0) { + if (e.shiftKey) { + onActionShiftClick(actionId); + } else { + onActionClick(actionId); + } + } + }; + + LogMonitorEntry.prototype.shouldExpandNode = function shouldExpandNode(keyName, data, level) { + return this.props.expandStateRoot && level === 0; + }; + + LogMonitorEntry.prototype.render = function render() { + var _props2 = this.props; + var actionId = _props2.actionId; + var error = _props2.error; + var action = _props2.action; + var state = _props2.state; + var collapsed = _props2.collapsed; + var selected = _props2.selected; + var inFuture = _props2.inFuture; + + var styleEntry = { + opacity: collapsed ? 0.5 : 1, + cursor: actionId > 0 ? 'pointer' : 'default' + }; + + return _react2.default.createElement( + 'div', + { style: { + opacity: selected ? 0.4 : inFuture ? 0.6 : 1, // eslint-disable-line no-nested-ternary + textDecoration: collapsed ? 'line-through' : 'none', + color: this.props.theme.base06 + } }, + _react2.default.createElement(_LogMonitorEntryAction2.default, { + theme: this.props.theme, + collapsed: collapsed, + action: action, + expandActionRoot: this.props.expandActionRoot, + onClick: this.handleActionClick, + style: _extends({}, styles.entry, styleEntry) }), + !collapsed && _react2.default.createElement( + 'div', + { style: { paddingLeft: 16 } }, + this.printState(state, error) + ) + ); + }; + + return LogMonitorEntry; +}(_react.Component); + +LogMonitorEntry.propTypes = { + state: _propTypes2.default.object.isRequired, + action: _propTypes2.default.object.isRequired, + actionId: _propTypes2.default.number.isRequired, + select: _propTypes2.default.func.isRequired, + inFuture: _propTypes2.default.bool, + error: _propTypes2.default.string, + onActionClick: _propTypes2.default.func.isRequired, + onActionShiftClick: _propTypes2.default.func.isRequired, + collapsed: _propTypes2.default.bool, + selected: _propTypes2.default.bool, + expandActionRoot: _propTypes2.default.bool, + expandStateRoot: _propTypes2.default.bool +}; +exports.default = LogMonitorEntry; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryAction.js": +/*!******************************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryAction.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _reactJsonTree = __webpack_require__(/*! react-json-tree */ "./node_modules/react-json-tree/lib/index.js"); + +var _reactJsonTree2 = _interopRequireDefault(_reactJsonTree); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var styles = { + actionBar: { + paddingTop: 8, + paddingBottom: 7, + paddingLeft: 16 + }, + payload: { + margin: 0, + paddingLeft: 16, + overflow: 'auto' + } +}; + +var LogMonitorAction = function (_Component) { + _inherits(LogMonitorAction, _Component); + + function LogMonitorAction(props) { + _classCallCheck(this, LogMonitorAction); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props)); + + _this.shouldExpandNode = _this.shouldExpandNode.bind(_this); + return _this; + } + + LogMonitorAction.prototype.renderPayload = function renderPayload(payload) { + return _react2.default.createElement( + 'div', + { style: _extends({}, styles.payload, { + backgroundColor: this.props.theme.base00 + }) }, + Object.keys(payload).length > 0 ? _react2.default.createElement(_reactJsonTree2.default, { theme: this.props.theme, + invertTheme: false, + keyPath: ['action'], + data: payload, + shouldExpandNode: this.shouldExpandNode }) : '' + ); + }; + + LogMonitorAction.prototype.shouldExpandNode = function shouldExpandNode(keyName, data, level) { + return this.props.expandActionRoot && level === 0; + }; + + LogMonitorAction.prototype.render = function render() { + var _props$action = this.props.action; + var type = _props$action.type; + + var payload = _objectWithoutProperties(_props$action, ['type']); + + return _react2.default.createElement( + 'div', + { style: _extends({ + backgroundColor: this.props.theme.base02, + color: this.props.theme.base06 + }, this.props.style) }, + _react2.default.createElement( + 'div', + { style: styles.actionBar, + onClick: this.props.onClick }, + type !== null && type.toString() + ), + !this.props.collapsed ? this.renderPayload(payload) : '' + ); + }; + + return LogMonitorAction; +}(_react.Component); + +exports.default = LogMonitorAction; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryList.js": +/*!****************************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntryList.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _LogMonitorEntry = __webpack_require__(/*! ./LogMonitorEntry */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitorEntry.js"); + +var _LogMonitorEntry2 = _interopRequireDefault(_LogMonitorEntry); + +var _function = __webpack_require__(/*! react-pure-render/function */ "./node_modules/react-pure-render/function.js"); + +var _function2 = _interopRequireDefault(_function); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var LogMonitorEntryList = function (_Component) { + _inherits(LogMonitorEntryList, _Component); + + function LogMonitorEntryList() { + var _temp, _this, _ret; + + _classCallCheck(this, LogMonitorEntryList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.shouldComponentUpdate = _function2.default, _temp), _possibleConstructorReturn(_this, _ret); + } + + LogMonitorEntryList.prototype.render = function render() { + var elements = []; + var _props = this.props; + var theme = _props.theme; + var actionsById = _props.actionsById; + var computedStates = _props.computedStates; + var currentStateIndex = _props.currentStateIndex; + var consecutiveToggleStartId = _props.consecutiveToggleStartId; + var select = _props.select; + var skippedActionIds = _props.skippedActionIds; + var stagedActionIds = _props.stagedActionIds; + var expandActionRoot = _props.expandActionRoot; + var expandStateRoot = _props.expandStateRoot; + var markStateDiff = _props.markStateDiff; + var onActionClick = _props.onActionClick; + var onActionShiftClick = _props.onActionShiftClick; + + + for (var i = 0; i < stagedActionIds.length; i++) { + var actionId = stagedActionIds[i]; + var action = actionsById[actionId].action; + var _computedStates$i = computedStates[i]; + var state = _computedStates$i.state; + var error = _computedStates$i.error; + + var previousState = void 0; + if (i > 0) { + previousState = computedStates[i - 1].state; + } + elements.push(_react2.default.createElement(_LogMonitorEntry2.default, { key: actionId, + theme: theme, + select: select, + action: action, + actionId: actionId, + state: state, + previousState: previousState, + collapsed: skippedActionIds.indexOf(actionId) > -1, + inFuture: i > currentStateIndex, + selected: consecutiveToggleStartId === i, + error: error, + expandActionRoot: expandActionRoot, + expandStateRoot: expandStateRoot, + markStateDiff: markStateDiff, + onActionClick: onActionClick, + onActionShiftClick: onActionShiftClick })); + } + + return _react2.default.createElement( + 'div', + null, + elements + ); + }; + + return LogMonitorEntryList; +}(_react.Component); + +LogMonitorEntryList.propTypes = { + actionsById: _propTypes2.default.object, + computedStates: _propTypes2.default.array, + stagedActionIds: _propTypes2.default.array, + skippedActionIds: _propTypes2.default.array, + currentStateIndex: _propTypes2.default.number, + consecutiveToggleStartId: _propTypes2.default.number, + + select: _propTypes2.default.func.isRequired, + onActionClick: _propTypes2.default.func.isRequired, + theme: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]), + expandActionRoot: _propTypes2.default.bool, + expandStateRoot: _propTypes2.default.bool +}; +exports.default = LogMonitorEntryList; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/actions.js": +/*!****************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/actions.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.updateScrollTop = updateScrollTop; +exports.startConsecutiveToggle = startConsecutiveToggle; +var UPDATE_SCROLL_TOP = exports.UPDATE_SCROLL_TOP = '@@redux-devtools-log-monitor/UPDATE_SCROLL_TOP'; +function updateScrollTop(scrollTop) { + return { type: UPDATE_SCROLL_TOP, scrollTop: scrollTop }; +} + +var START_CONSECUTIVE_TOGGLE = exports.START_CONSECUTIVE_TOGGLE = '@@redux-devtools-log-monitor/START_CONSECUTIVE_TOGGLE'; +function startConsecutiveToggle(id) { + return { type: START_CONSECUTIVE_TOGGLE, id: id }; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/brighten.js": +/*!*****************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/brighten.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (hexColor, lightness) { + var hex = String(hexColor).replace(/[^0-9a-f]/gi, ''); + if (hex.length < 6) { + hex = hex.replace(/(.)/g, '$1$1'); + } + var lum = lightness || 0; + + var rgb = '#'; + var c = void 0; + for (var i = 0; i < 3; ++i) { + c = parseInt(hex.substr(i * 2, 2), 16); + c = Math.round(Math.min(Math.max(0, c + c * lum), 255)).toString(16); + rgb += ('00' + c).substr(c.length); + } + return rgb; +}; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/index.js": +/*!**************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/index.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = undefined; + +var _LogMonitor = __webpack_require__(/*! ./LogMonitor */ "./node_modules/redux-devtools-log-monitor/lib/LogMonitor.js"); + +var _LogMonitor2 = _interopRequireDefault(_LogMonitor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _LogMonitor2.default; + +/***/ }), + +/***/ "./node_modules/redux-devtools-log-monitor/lib/reducers.js": +/*!*****************************************************************!*\ + !*** ./node_modules/redux-devtools-log-monitor/lib/reducers.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = reducer; + +var _actions = __webpack_require__(/*! ./actions */ "./node_modules/redux-devtools-log-monitor/lib/actions.js"); + +function initialScrollTop(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var action = arguments[2]; + + if (!props.preserveScrollTop) { + return 0; + } + + return action.type === _actions.UPDATE_SCROLL_TOP ? action.scrollTop : state; +} + +function startConsecutiveToggle(props, state, action) { + return action.type === _actions.START_CONSECUTIVE_TOGGLE ? action.id : state; +} + +function reducer(props) { + var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var action = arguments[2]; + + return { + initialScrollTop: initialScrollTop(props, state.initialScrollTop, action), + consecutiveToggleStartId: startConsecutiveToggle(props, state.consecutiveToggleStartId, action) + }; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools-themes/lib/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/redux-devtools-themes/lib/index.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; } + +function _interopExportWildcard(obj, defaults) { var newObj = defaults({}, obj); delete newObj['default']; return newObj; } + +function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } + +var _base16 = __webpack_require__(/*! base16 */ "./node_modules/base16/lib/index.js"); + +_defaults(exports, _interopExportWildcard(_base16, _defaults)); + +var _nicinabox = __webpack_require__(/*! ./nicinabox */ "./node_modules/redux-devtools-themes/lib/nicinabox.js"); + +exports.nicinabox = _interopRequire(_nicinabox); + +/***/ }), + +/***/ "./node_modules/redux-devtools-themes/lib/nicinabox.js": +/*!*************************************************************!*\ + !*** ./node_modules/redux-devtools-themes/lib/nicinabox.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports['default'] = { + scheme: 'nicinabox', + author: 'nicinabox (http://github.com/nicinabox)', + base00: '#2A2F3A', + base01: '#3C444F', + base02: '#4F5A65', + base03: '#BEBEBE', + base04: '#b0b0b0', // based on ocean theme + base05: '#d0d0d0', // based on ocean theme + base06: '#FFFFFF', + base07: '#f5f5f5', // based on ocean theme + base08: '#fb9fb1', // based on ocean theme + base09: '#FC6D24', + base0A: '#ddb26f', // based on ocean theme + base0B: '#A1C659', + base0C: '#12cfc0', // based on ocean theme + base0D: '#6FB3D2', + base0E: '#D381C3', + base0F: '#deaf8f' // based on ocean theme +}; +module.exports = exports['default']; + +/***/ }), + +/***/ "./node_modules/redux-devtools/lib/createDevTools.js": +/*!***********************************************************!*\ + !*** ./node_modules/redux-devtools/lib/createDevTools.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.default = createDevTools; + +var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js"); + +var _reduxDevtoolsInstrument = __webpack_require__(/*! redux-devtools-instrument */ "./node_modules/redux-devtools-instrument/lib/instrument.js"); + +var _reduxDevtoolsInstrument2 = _interopRequireDefault(_reduxDevtoolsInstrument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function createDevTools(children) { + var _class, _temp; + + var monitorElement = _react.Children.only(children); + var monitorProps = monitorElement.props; + var Monitor = monitorElement.type; + var ConnectedMonitor = (0, _reactRedux.connect)(function (state) { + return state; + })(Monitor); + + return _temp = _class = function (_Component) { + _inherits(DevTools, _Component); + + function DevTools(props, context) { + _classCallCheck(this, DevTools); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); + + if (!props.store && !context.store) { + console.error('Redux DevTools could not render. You must pass the Redux store ' + 'to either as a "store" prop or by wrapping it in a ' + '.'); + return _possibleConstructorReturn(_this); + } + + if (context.store) { + _this.liftedStore = context.store.liftedStore; + } else { + _this.liftedStore = props.store.liftedStore; + } + + if (!_this.liftedStore) { + console.error('Redux DevTools could not render. Did you forget to include ' + 'DevTools.instrument() in your store enhancer chain before ' + 'using createStore()?'); + } + return _this; + } + + DevTools.prototype.render = function render() { + if (!this.liftedStore) { + return null; + } + + return _react2.default.createElement(ConnectedMonitor, _extends({}, monitorProps, { + store: this.liftedStore })); + }; + + return DevTools; + }(_react.Component), _class.contextTypes = { + store: _propTypes2.default.object + }, _class.propTypes = { + store: _propTypes2.default.object + }, _class.instrument = function (options) { + return (0, _reduxDevtoolsInstrument2.default)(function (state, action) { + return Monitor.update(monitorProps, state, action); + }, options); + }, _temp; +} + +/***/ }), + +/***/ "./node_modules/redux-devtools/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/redux-devtools/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _reduxDevtoolsInstrument = __webpack_require__(/*! redux-devtools-instrument */ "./node_modules/redux-devtools-instrument/lib/instrument.js"); + +Object.defineProperty(exports, 'instrument', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_reduxDevtoolsInstrument).default; + } +}); +Object.defineProperty(exports, 'ActionCreators', { + enumerable: true, + get: function get() { + return _reduxDevtoolsInstrument.ActionCreators; + } +}); +Object.defineProperty(exports, 'ActionTypes', { + enumerable: true, + get: function get() { + return _reduxDevtoolsInstrument.ActionTypes; + } +}); + +var _persistState = __webpack_require__(/*! ./persistState */ "./node_modules/redux-devtools/lib/persistState.js"); + +Object.defineProperty(exports, 'persistState', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_persistState).default; + } +}); + +var _createDevTools = __webpack_require__(/*! ./createDevTools */ "./node_modules/redux-devtools/lib/createDevTools.js"); + +Object.defineProperty(exports, 'createDevTools', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_createDevTools).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ "./node_modules/redux-devtools/lib/persistState.js": +/*!*********************************************************!*\ + !*** ./node_modules/redux-devtools/lib/persistState.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +exports.default = persistState; + +var _mapValues = __webpack_require__(/*! lodash/mapValues */ "./node_modules/lodash/mapValues.js"); + +var _mapValues2 = _interopRequireDefault(_mapValues); + +var _identity = __webpack_require__(/*! lodash/identity */ "./node_modules/lodash/identity.js"); + +var _identity2 = _interopRequireDefault(_identity); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function persistState(sessionId) { + var deserializeState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _identity2.default; + var deserializeAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _identity2.default; + + if (!sessionId) { + return function (next) { + return function () { + return next.apply(undefined, arguments); + }; + }; + } + + function deserialize(state) { + return _extends({}, state, { + actionsById: (0, _mapValues2.default)(state.actionsById, function (liftedAction) { + return _extends({}, liftedAction, { + action: deserializeAction(liftedAction.action) + }); + }), + committedState: deserializeState(state.committedState), + computedStates: state.computedStates.map(function (computedState) { + return _extends({}, computedState, { + state: deserializeState(computedState.state) + }); + }) + }); + } + + return function (next) { + return function (reducer, initialState, enhancer) { + var key = 'redux-dev-session-' + sessionId; + + var finalInitialState = void 0; + try { + var json = localStorage.getItem(key); + if (json) { + finalInitialState = deserialize(JSON.parse(json)) || initialState; + next(reducer, initialState); + } + } catch (e) { + console.warn('Could not read debug session from localStorage:', e); + try { + localStorage.removeItem(key); + } finally { + finalInitialState = undefined; + } + } + + var store = next(reducer, finalInitialState, enhancer); + + return _extends({}, store, { + dispatch: function dispatch(action) { + store.dispatch(action); + + try { + localStorage.setItem(key, JSON.stringify(store.getState())); + } catch (e) { + console.warn('Could not write debug session to localStorage:', e); + } + + return action; + } + }); + }; + }; +} + +/***/ }), + +/***/ "./node_modules/redux-promise-middleware/dist/es/index.js": +/*!****************************************************************!*\ + !*** ./node_modules/redux-promise-middleware/dist/es/index.js ***! + \****************************************************************/ +/*! exports provided: PENDING, FULFILLED, REJECTED, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PENDING", function() { return PENDING; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FULFILLED", function() { return FULFILLED; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REJECTED", function() { return REJECTED; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return promiseMiddleware; }); +/* harmony import */ var _isPromise_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isPromise.js */ "./node_modules/redux-promise-middleware/dist/es/isPromise.js"); +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + +/** + * Note to contributors: Please also remember to check and make sure + * that `index.d.ts` is also up to date with the implementation when + * you add new features or modify existing ones. + */ + +// The default async action types +var PENDING = 'PENDING'; +var FULFILLED = 'FULFILLED'; +var REJECTED = 'REJECTED'; +var defaultTypes = [PENDING, FULFILLED, REJECTED]; + +/** + * Function: promiseMiddleware + * Description: The main promiseMiddleware accepts a configuration + * object and returns the middleware. + */ +function promiseMiddleware() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var PROMISE_TYPE_SUFFIXES = config.promiseTypeSuffixes || defaultTypes; + var PROMISE_TYPE_DELIMITER = config.promiseTypeDelimiter || '_'; + + return function (ref) { + var dispatch = ref.dispatch; + + + return function (next) { + return function (action) { + + /** + * Instantiate variables to hold: + * (1) the promise + * (2) the data for optimistic updates + */ + var promise = void 0; + var data = void 0; + + /** + * There are multiple ways to dispatch a promise. The first step is to + * determine if the promise is defined: + * (a) explicitly (action.payload.promise is the promise) + * (b) implicitly (action.payload is the promise) + * (c) as an async function (returns a promise when called) + * + * If the promise is not defined in one of these three ways, we don't do + * anything and move on to the next middleware in the middleware chain. + */ + + // Step 1a: Is there a payload? + if (action.payload) { + var PAYLOAD = action.payload; + + // Step 1.1: Is the promise implicitly defined? + if (Object(_isPromise_js__WEBPACK_IMPORTED_MODULE_0__["default"])(PAYLOAD)) { + promise = PAYLOAD; + } + + // Step 1.2: Is the promise explicitly defined? + else if (Object(_isPromise_js__WEBPACK_IMPORTED_MODULE_0__["default"])(PAYLOAD.promise)) { + promise = PAYLOAD.promise; + data = PAYLOAD.data; + } + + // Step 1.3: Is the promise returned by an async function? + else if (typeof PAYLOAD === 'function' || typeof PAYLOAD.promise === 'function') { + promise = PAYLOAD.promise ? PAYLOAD.promise() : PAYLOAD(); + data = PAYLOAD.promise ? PAYLOAD.data : undefined; + + // Step 1.3.1: Is the return of action.payload a promise? + if (!Object(_isPromise_js__WEBPACK_IMPORTED_MODULE_0__["default"])(promise)) { + + // If not, move on to the next middleware. + return next(_extends({}, action, { + payload: promise + })); + } + } + + // Step 1.4: If there's no promise, move on to the next middleware. + else { + return next(action); + } + + // Step 1b: If there's no payload, move on to the next middleware. + } else { + return next(action); + } + + /** + * Instantiate and define constants for: + * (1) the action type + * (2) the action meta + */ + var TYPE = action.type; + var META = action.meta; + + /** + * Instantiate and define constants for the action type suffixes. + * These are appended to the end of the action type. + */ + + var _PROMISE_TYPE_SUFFIXE = _slicedToArray(PROMISE_TYPE_SUFFIXES, 3), + _PENDING = _PROMISE_TYPE_SUFFIXE[0], + _FULFILLED = _PROMISE_TYPE_SUFFIXE[1], + _REJECTED = _PROMISE_TYPE_SUFFIXE[2]; + + /** + * Function: getAction + * Description: This function constructs and returns a rejected + * or fulfilled action object. The action object is based off the Flux + * Standard Action (FSA). + * + * Given an original action with the type FOO: + * + * The rejected object model will be: + * { + * error: true, + * type: 'FOO_REJECTED', + * payload: ..., + * meta: ... (optional) + * } + * + * The fulfilled object model will be: + * { + * type: 'FOO_FULFILLED', + * payload: ..., + * meta: ... (optional) + * } + */ + + + var getAction = function getAction(newPayload, isRejected) { + return _extends({ + // Concatentate the type string property. + type: [TYPE, isRejected ? _REJECTED : _FULFILLED].join(PROMISE_TYPE_DELIMITER) + + }, newPayload === null || typeof newPayload === 'undefined' ? {} : { + payload: newPayload + }, META !== undefined ? { meta: META } : {}, isRejected ? { + error: true + } : {}); + }; + + /** + * Function: handleReject + * Calls: getAction to construct the rejected action + * Description: This function dispatches the rejected action and returns + * the original Error object. Please note the developer is responsible + * for constructing and throwing an Error object. The middleware does not + * construct any Errors. + */ + var handleReject = function handleReject(reason) { + var rejectedAction = getAction(reason, true); + dispatch(rejectedAction); + + throw reason; + }; + + /** + * Function: handleFulfill + * Calls: getAction to construct the fullfilled action + * Description: This function dispatches the fulfilled action and + * returns the success object. The success object should + * contain the value and the dispatched action. + */ + var handleFulfill = function handleFulfill() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + var resolvedAction = getAction(value, false); + dispatch(resolvedAction); + + return { value: value, action: resolvedAction }; + }; + + /** + * First, dispatch the pending action: + * This object describes the pending state of a promise and will include + * any data (for optimistic updates) and/or meta from the original action. + */ + next(_extends({ + // Concatentate the type string. + type: [TYPE, _PENDING].join(PROMISE_TYPE_DELIMITER) + + }, data !== undefined ? { payload: data } : {}, META !== undefined ? { meta: META } : {})); + + /** + * Second, dispatch a rejected or fulfilled action and move on to the + * next middleware. + */ + return promise.then(handleFulfill, handleReject); + }; + }; + }; +} + +/***/ }), + +/***/ "./node_modules/redux-promise-middleware/dist/es/isPromise.js": +/*!********************************************************************!*\ + !*** ./node_modules/redux-promise-middleware/dist/es/isPromise.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isPromise; }); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function isPromise(value) { + if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { + return value && typeof value.then === 'function'; + } + + return false; +} + +/***/ }), + +/***/ "./node_modules/redux-thunk/es/index.js": +/*!**********************************************!*\ + !*** ./node_modules/redux-thunk/es/index.js ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +function createThunkMiddleware(extraArgument) { + return function (_ref) { + var dispatch = _ref.dispatch, + getState = _ref.getState; + return function (next) { + return function (action) { + if (typeof action === 'function') { + return action(dispatch, getState, extraArgument); + } + + return next(action); + }; + }; + }; +} + +var thunk = createThunkMiddleware(); +thunk.withExtraArgument = createThunkMiddleware; + +/* harmony default export */ __webpack_exports__["default"] = (thunk); + +/***/ }), + +/***/ "./node_modules/redux/es/redux.js": +/*!****************************************!*\ + !*** ./node_modules/redux/es/redux.js ***! + \****************************************/ +/*! exports provided: createStore, combineReducers, bindActionCreators, applyMiddleware, compose, __DO_NOT_USE__ActionTypes */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return createStore; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return combineReducers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return bindActionCreators; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return applyMiddleware; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__DO_NOT_USE__ActionTypes", function() { return ActionTypes; }); +/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! symbol-observable */ "./node_modules/symbol-observable/es/index.js"); + + +/** + * These are private action types reserved by Redux. + * For any unknown actions, you must return the current state. + * If the current state is undefined, you must return the initial state. + * Do not reference these action types directly in your code. + */ +var ActionTypes = { + INIT: '@@redux/INIT' + Math.random().toString(36).substring(7).split('').join('.'), + REPLACE: '@@redux/REPLACE' + Math.random().toString(36).substring(7).split('').join('.') +}; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ +function isPlainObject(obj) { + if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) return false; + + var proto = obj; + while (Object.getPrototypeOf(proto) !== null) { + proto = Object.getPrototypeOf(proto); + } + + return Object.getPrototypeOf(obj) === proto; +} + +/** + * Creates a Redux store that holds the state tree. + * The only way to change the data in the store is to call `dispatch()` on it. + * + * There should only be a single store in your app. To specify how different + * parts of the state tree respond to actions, you may combine several reducers + * into a single reducer function by using `combineReducers`. + * + * @param {Function} reducer A function that returns the next state tree, given + * the current state tree and the action to handle. + * + * @param {any} [preloadedState] The initial state. You may optionally specify it + * to hydrate the state from the server in universal apps, or to restore a + * previously serialized user session. + * If you use `combineReducers` to produce the root reducer function, this must be + * an object with the same shape as `combineReducers` keys. + * + * @param {Function} [enhancer] The store enhancer. You may optionally specify it + * to enhance the store with third-party capabilities such as middleware, + * time travel, persistence, etc. The only store enhancer that ships with Redux + * is `applyMiddleware()`. + * + * @returns {Store} A Redux store that lets you read the state, dispatch actions + * and subscribe to changes. + */ +function createStore(reducer, preloadedState, enhancer) { + var _ref2; + + if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { + enhancer = preloadedState; + preloadedState = undefined; + } + + if (typeof enhancer !== 'undefined') { + if (typeof enhancer !== 'function') { + throw new Error('Expected the enhancer to be a function.'); + } + + return enhancer(createStore)(reducer, preloadedState); + } + + if (typeof reducer !== 'function') { + throw new Error('Expected the reducer to be a function.'); + } + + var currentReducer = reducer; + var currentState = preloadedState; + var currentListeners = []; + var nextListeners = currentListeners; + var isDispatching = false; + + function ensureCanMutateNextListeners() { + if (nextListeners === currentListeners) { + nextListeners = currentListeners.slice(); + } + } + + /** + * Reads the state tree managed by the store. + * + * @returns {any} The current state tree of your application. + */ + function getState() { + if (isDispatching) { + throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.'); + } + + return currentState; + } + + /** + * Adds a change listener. It will be called any time an action is dispatched, + * and some part of the state tree may potentially have changed. You may then + * call `getState()` to read the current state tree inside the callback. + * + * You may call `dispatch()` from a change listener, with the following + * caveats: + * + * 1. The subscriptions are snapshotted just before every `dispatch()` call. + * If you subscribe or unsubscribe while the listeners are being invoked, this + * will not have any effect on the `dispatch()` that is currently in progress. + * However, the next `dispatch()` call, whether nested or not, will use a more + * recent snapshot of the subscription list. + * + * 2. The listener should not expect to see all state changes, as the state + * might have been updated multiple times during a nested `dispatch()` before + * the listener is called. It is, however, guaranteed that all subscribers + * registered before the `dispatch()` started will be called with the latest + * state by the time it exits. + * + * @param {Function} listener A callback to be invoked on every dispatch. + * @returns {Function} A function to remove this change listener. + */ + function subscribe(listener) { + if (typeof listener !== 'function') { + throw new Error('Expected the listener to be a function.'); + } + + if (isDispatching) { + throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.'); + } + + var isSubscribed = true; + + ensureCanMutateNextListeners(); + nextListeners.push(listener); + + return function unsubscribe() { + if (!isSubscribed) { + return; + } + + if (isDispatching) { + throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.'); + } + + isSubscribed = false; + + ensureCanMutateNextListeners(); + var index = nextListeners.indexOf(listener); + nextListeners.splice(index, 1); + }; + } + + /** + * Dispatches an action. It is the only way to trigger a state change. + * + * The `reducer` function, used to create the store, will be called with the + * current state tree and the given `action`. Its return value will + * be considered the **next** state of the tree, and the change listeners + * will be notified. + * + * The base implementation only supports plain object actions. If you want to + * dispatch a Promise, an Observable, a thunk, or something else, you need to + * wrap your store creating function into the corresponding middleware. For + * example, see the documentation for the `redux-thunk` package. Even the + * middleware will eventually dispatch plain object actions using this method. + * + * @param {Object} action A plain object representing “what changed”. It is + * a good idea to keep actions serializable so you can record and replay user + * sessions, or use the time travelling `redux-devtools`. An action must have + * a `type` property which may not be `undefined`. It is a good idea to use + * string constants for action types. + * + * @returns {Object} For convenience, the same action object you dispatched. + * + * Note that, if you use a custom middleware, it may wrap `dispatch()` to + * return something else (for example, a Promise you can await). + */ + function dispatch(action) { + if (!isPlainObject(action)) { + throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); + } + + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); + } + + if (isDispatching) { + throw new Error('Reducers may not dispatch actions.'); + } + + try { + isDispatching = true; + currentState = currentReducer(currentState, action); + } finally { + isDispatching = false; + } + + var listeners = currentListeners = nextListeners; + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + listener(); + } + + return action; + } + + /** + * Replaces the reducer currently used by the store to calculate the state. + * + * You might need this if your app implements code splitting and you want to + * load some of the reducers dynamically. You might also need this if you + * implement a hot reloading mechanism for Redux. + * + * @param {Function} nextReducer The reducer for the store to use instead. + * @returns {void} + */ + function replaceReducer(nextReducer) { + if (typeof nextReducer !== 'function') { + throw new Error('Expected the nextReducer to be a function.'); + } + + currentReducer = nextReducer; + dispatch({ type: ActionTypes.REPLACE }); + } + + /** + * Interoperability point for observable/reactive libraries. + * @returns {observable} A minimal observable of state changes. + * For more information, see the observable proposal: + * https://github.com/tc39/proposal-observable + */ + function observable() { + var _ref; + + var outerSubscribe = subscribe; + return _ref = { + /** + * The minimal observable subscription method. + * @param {Object} observer Any object that can be used as an observer. + * The observer object should have a `next` method. + * @returns {subscription} An object with an `unsubscribe` method that can + * be used to unsubscribe the observable from the store, and prevent further + * emission of values from the observable. + */ + subscribe: function subscribe(observer) { + if ((typeof observer === 'undefined' ? 'undefined' : _typeof(observer)) !== 'object' || observer === null) { + throw new TypeError('Expected the observer to be an object.'); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = outerSubscribe(observeState); + return { unsubscribe: unsubscribe }; + } + }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_0__["default"]] = function () { + return this; + }, _ref; + } + + // When a store is created, an "INIT" action is dispatched so that every + // reducer returns their initial state. This effectively populates + // the initial state tree. + dispatch({ type: ActionTypes.INIT }); + + return _ref2 = { + dispatch: dispatch, + subscribe: subscribe, + getState: getState, + replaceReducer: replaceReducer + }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_0__["default"]] = observable, _ref2; +} + +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + } catch (e) {} // eslint-disable-line no-empty +} + +function getUndefinedStateErrorMessage(key, action) { + var actionType = action && action.type; + var actionDescription = actionType && 'action "' + String(actionType) + '"' || 'an action'; + + return 'Given ' + actionDescription + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.'; +} + +function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { + var reducerKeys = Object.keys(reducers); + var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; + + if (reducerKeys.length === 0) { + return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; + } + + if (!isPlainObject(inputState)) { + return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); + } + + var unexpectedKeys = Object.keys(inputState).filter(function (key) { + return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; + }); + + unexpectedKeys.forEach(function (key) { + unexpectedKeyCache[key] = true; + }); + + if (action && action.type === ActionTypes.REPLACE) return; + + if (unexpectedKeys.length > 0) { + return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); + } +} + +function assertReducerShape(reducers) { + Object.keys(reducers).forEach(function (key) { + var reducer = reducers[key]; + var initialState = reducer(undefined, { type: ActionTypes.INIT }); + + if (typeof initialState === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.'); + } + + var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); + if (typeof reducer(undefined, { type: type }) === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + ActionTypes.INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.'); + } + }); +} + +/** + * Turns an object whose values are different reducer functions, into a single + * reducer function. It will call every child reducer, and gather their results + * into a single state object, whose keys correspond to the keys of the passed + * reducer functions. + * + * @param {Object} reducers An object whose values correspond to different + * reducer functions that need to be combined into one. One handy way to obtain + * it is to use ES6 `import * as reducers` syntax. The reducers may never return + * undefined for any action. Instead, they should return their initial state + * if the state passed to them was undefined, and the current state for any + * unrecognized action. + * + * @returns {Function} A reducer function that invokes every reducer inside the + * passed object, and builds a state object with the same shape. + */ +function combineReducers(reducers) { + var reducerKeys = Object.keys(reducers); + var finalReducers = {}; + for (var i = 0; i < reducerKeys.length; i++) { + var key = reducerKeys[i]; + + if (true) { + if (typeof reducers[key] === 'undefined') { + warning('No reducer provided for key "' + key + '"'); + } + } + + if (typeof reducers[key] === 'function') { + finalReducers[key] = reducers[key]; + } + } + var finalReducerKeys = Object.keys(finalReducers); + + var unexpectedKeyCache = void 0; + if (true) { + unexpectedKeyCache = {}; + } + + var shapeAssertionError = void 0; + try { + assertReducerShape(finalReducers); + } catch (e) { + shapeAssertionError = e; + } + + return function combination() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var action = arguments[1]; + + if (shapeAssertionError) { + throw shapeAssertionError; + } + + if (true) { + var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache); + if (warningMessage) { + warning(warningMessage); + } + } + + var hasChanged = false; + var nextState = {}; + for (var _i = 0; _i < finalReducerKeys.length; _i++) { + var _key = finalReducerKeys[_i]; + var reducer = finalReducers[_key]; + var previousStateForKey = state[_key]; + var nextStateForKey = reducer(previousStateForKey, action); + if (typeof nextStateForKey === 'undefined') { + var errorMessage = getUndefinedStateErrorMessage(_key, action); + throw new Error(errorMessage); + } + nextState[_key] = nextStateForKey; + hasChanged = hasChanged || nextStateForKey !== previousStateForKey; + } + return hasChanged ? nextState : state; + }; +} + +function bindActionCreator(actionCreator, dispatch) { + return function () { + return dispatch(actionCreator.apply(this, arguments)); + }; +} + +/** + * Turns an object whose values are action creators, into an object with the + * same keys, but with every function wrapped into a `dispatch` call so they + * may be invoked directly. This is just a convenience method, as you can call + * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. + * + * For convenience, you can also pass a single function as the first argument, + * and get a function in return. + * + * @param {Function|Object} actionCreators An object whose values are action + * creator functions. One handy way to obtain it is to use ES6 `import * as` + * syntax. You may also pass a single function. + * + * @param {Function} dispatch The `dispatch` function available on your Redux + * store. + * + * @returns {Function|Object} The object mimicking the original object, but with + * every action creator wrapped into the `dispatch` call. If you passed a + * function as `actionCreators`, the return value will also be a single + * function. + */ +function bindActionCreators(actionCreators, dispatch) { + if (typeof actionCreators === 'function') { + return bindActionCreator(actionCreators, dispatch); + } + + if ((typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) !== 'object' || actionCreators === null) { + throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); + } + + var keys = Object.keys(actionCreators); + var boundActionCreators = {}; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var actionCreator = actionCreators[key]; + if (typeof actionCreator === 'function') { + boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); + } + } + return boundActionCreators; +} + +/** + * Composes single-argument functions from right to left. The rightmost + * function can take multiple arguments as it provides the signature for + * the resulting composite function. + * + * @param {...Function} funcs The functions to compose. + * @returns {Function} A function obtained by composing the argument functions + * from right to left. For example, compose(f, g, h) is identical to doing + * (...args) => f(g(h(...args))). + */ + +function compose() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + if (funcs.length === 0) { + return function (arg) { + return arg; + }; + } + + if (funcs.length === 1) { + return funcs[0]; + } + + return funcs.reduce(function (a, b) { + return function () { + return a(b.apply(undefined, arguments)); + }; + }); +} + +/** + * Creates a store enhancer that applies middleware to the dispatch method + * of the Redux store. This is handy for a variety of tasks, such as expressing + * asynchronous actions in a concise manner, or logging every action payload. + * + * See `redux-thunk` package as an example of the Redux middleware. + * + * Because middleware is potentially asynchronous, this should be the first + * store enhancer in the composition chain. + * + * Note that each middleware will be given the `dispatch` and `getState` functions + * as named arguments. + * + * @param {...Function} middlewares The middleware chain to be applied. + * @returns {Function} A store enhancer applying the middleware. + */ +function applyMiddleware() { + for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { + middlewares[_key] = arguments[_key]; + } + + return function (createStore) { + return function () { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + var store = createStore.apply(undefined, args); + var _dispatch = function dispatch() { + throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.'); + }; + + var middlewareAPI = { + getState: store.getState, + dispatch: function dispatch() { + return _dispatch.apply(undefined, arguments); + } + }; + var chain = middlewares.map(function (middleware) { + return middleware(middlewareAPI); + }); + _dispatch = compose.apply(undefined, chain)(store.dispatch); + + return _extends({}, store, { + dispatch: _dispatch + }); + }; + }; +} + +/* + * This is a dummy function to check if the function name has been altered by minification. + * If the function has been minified and NODE_ENV !== 'production', warn the user. + */ +function isCrushed() {} + +if ('development' !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') { + warning("You are currently using minified code outside of NODE_ENV === 'production'. " + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.'); +} + + + + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime-module.js": +/*!************************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime-module.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// This method of obtaining a reference to the global object needs to be +// kept identical to the way it is obtained in runtime.js +var g = (function() { return this })() || Function("return this")(); + +// Use `getOwnPropertyNames` because not all browsers support calling +// `hasOwnProperty` on the global `self` object in a worker. See #183. +var hadRuntime = g.regeneratorRuntime && + Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; + +// Save the old regeneratorRuntime in case it needs to be restored later. +var oldRuntime = hadRuntime && g.regeneratorRuntime; + +// Force reevalutation of runtime.js. +g.regeneratorRuntime = undefined; + +module.exports = __webpack_require__(/*! ./runtime */ "./node_modules/regenerator-runtime/runtime.js"); + +if (hadRuntime) { + // Restore the original runtime. + g.regeneratorRuntime = oldRuntime; +} else { + // Remove the global property added by runtime.js. + try { + delete g.regeneratorRuntime; + } catch(e) { + g.regeneratorRuntime = undefined; + } +} + + +/***/ }), + +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +!(function(global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; +})( + // In sloppy mode, unbound `this` refers to the global object, fallback to + // Function constructor if we're in global strict mode. That is sadly a form + // of indirect eval which violates Content Security Policy. + (function() { return this })() || Function("return this")() +); + + +/***/ }), + +/***/ "./node_modules/resolve-pathname/index.js": +/*!************************************************!*\ + !*** ./node_modules/resolve-pathname/index.js ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; +} + +// About 1.5x faster than the two-arg version of Array#splice() +function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); +} + +// This implementation is based heavily on node's url.parse +function resolvePathname(to) { + var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + var toParts = to && to.split('/') || []; + var fromParts = from && from.split('/') || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash = void 0; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) { + fromParts.unshift('..'); + }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; +} + +/* harmony default export */ __webpack_exports__["default"] = (resolvePathname); + +/***/ }), + +/***/ "./node_modules/safe-buffer/index.js": +/*!*******************************************!*\ + !*** ./node_modules/safe-buffer/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js") +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} + + +/***/ }), + +/***/ "./node_modules/sanitize-html/dist/index.js": +/*!**************************************************!*\ + !*** ./node_modules/sanitize-html/dist/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var htmlparser = __webpack_require__(/*! htmlparser2 */ "./node_modules/htmlparser2/lib/index.js"); +var extend = __webpack_require__(/*! xtend */ "./node_modules/xtend/immutable.js"); +var quoteRegexp = __webpack_require__(/*! lodash.escaperegexp */ "./node_modules/lodash.escaperegexp/index.js"); +var cloneDeep = __webpack_require__(/*! lodash.clonedeep */ "./node_modules/lodash.clonedeep/index.js"); +var mergeWith = __webpack_require__(/*! lodash.mergewith */ "./node_modules/lodash.mergewith/index.js"); +var isString = __webpack_require__(/*! lodash.isstring */ "./node_modules/lodash.isstring/index.js"); +var isPlainObject = __webpack_require__(/*! lodash.isplainobject */ "./node_modules/lodash.isplainobject/index.js"); +var srcset = __webpack_require__(/*! srcset */ "./node_modules/srcset/index.js"); +var postcss = __webpack_require__(/*! postcss */ "./node_modules/sanitize-html/node_modules/postcss/lib/postcss.js"); +var url = __webpack_require__(/*! url */ "./node_modules/url/url.js"); + +function each(obj, cb) { + if (obj) Object.keys(obj).forEach(function (key) { + cb(obj[key], key); + }); +} + +// Avoid false positives with .__proto__, .hasOwnProperty, etc. +function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); +} + +// Returns those elements of `a` for which `cb(a)` returns truthy +function filter(a, cb) { + var n = []; + each(a, function (v) { + if (cb(v)) { + n.push(v); + } + }); + return n; +} + +module.exports = sanitizeHtml; + +// A valid attribute name. +// We use a tolerant definition based on the set of strings defined by +// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state +// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state . +// The characters accepted are ones which can be appended to the attribute +// name buffer without triggering a parse error: +// * unexpected-equals-sign-before-attribute-name +// * unexpected-null-character +// * unexpected-character-in-attribute-name +// We exclude the empty string because it's impossible to get to the after +// attribute name state with an empty attribute name buffer. +var VALID_HTML_ATTRIBUTE_NAME = /^[^\0\t\n\f\r /<=>]+$/; + +// Ignore the _recursing flag; it's there for recursive +// invocation as a guard against this exploit: +// https://github.com/fb55/htmlparser2/issues/105 + +function sanitizeHtml(html, options, _recursing) { + var result = ''; + + function Frame(tag, attribs) { + var that = this; + this.tag = tag; + this.attribs = attribs || {}; + this.tagPosition = result.length; + this.text = ''; // Node inner text + + this.updateParentNodeText = function () { + if (stack.length) { + var parentFrame = stack[stack.length - 1]; + parentFrame.text += that.text; + } + }; + } + + if (!options) { + options = sanitizeHtml.defaults; + options.parser = htmlParserDefaults; + } else { + options = extend(sanitizeHtml.defaults, options); + if (options.parser) { + options.parser = extend(htmlParserDefaults, options.parser); + } else { + options.parser = htmlParserDefaults; + } + } + + // Tags that contain something other than HTML, or where discarding + // the text when the tag is disallowed makes sense for other reasons. + // If we are not allowing these tags, we should drop their content too. + // For other tags you would drop the tag but keep its content. + var nonTextTagsArray = options.nonTextTags || ['script', 'style', 'textarea']; + var allowedAttributesMap; + var allowedAttributesGlobMap; + if (options.allowedAttributes) { + allowedAttributesMap = {}; + allowedAttributesGlobMap = {}; + each(options.allowedAttributes, function (attributes, tag) { + allowedAttributesMap[tag] = []; + var globRegex = []; + attributes.forEach(function (obj) { + if (isString(obj) && obj.indexOf('*') >= 0) { + globRegex.push(quoteRegexp(obj).replace(/\\\*/g, '.*')); + } else { + allowedAttributesMap[tag].push(obj); + } + }); + allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$'); + }); + } + var allowedClassesMap = {}; + each(options.allowedClasses, function (classes, tag) { + // Implicitly allows the class attribute + if (allowedAttributesMap) { + if (!has(allowedAttributesMap, tag)) { + allowedAttributesMap[tag] = []; + } + allowedAttributesMap[tag].push('class'); + } + + allowedClassesMap[tag] = classes; + }); + + var transformTagsMap = {}; + var transformTagsAll; + each(options.transformTags, function (transform, tag) { + var transFun; + if (typeof transform === 'function') { + transFun = transform; + } else if (typeof transform === "string") { + transFun = sanitizeHtml.simpleTransform(transform); + } + if (tag === '*') { + transformTagsAll = transFun; + } else { + transformTagsMap[tag] = transFun; + } + }); + + var depth = 0; + var stack = []; + var skipMap = {}; + var transformMap = {}; + var skipText = false; + var skipTextDepth = 0; + + var parser = new htmlparser.Parser({ + onopentag: function onopentag(name, attribs) { + if (skipText) { + skipTextDepth++; + return; + } + var frame = new Frame(name, attribs); + stack.push(frame); + + var skip = false; + var hasText = frame.text ? true : false; + var transformedTag; + if (has(transformTagsMap, name)) { + transformedTag = transformTagsMap[name](name, attribs); + + frame.attribs = attribs = transformedTag.attribs; + + if (transformedTag.text !== undefined) { + frame.innerText = transformedTag.text; + } + + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + if (transformTagsAll) { + transformedTag = transformTagsAll(name, attribs); + + frame.attribs = attribs = transformedTag.attribs; + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + + if (options.allowedTags && options.allowedTags.indexOf(name) === -1) { + skip = true; + if (nonTextTagsArray.indexOf(name) !== -1) { + skipText = true; + skipTextDepth = 1; + } + skipMap[depth] = true; + } + depth++; + if (skip) { + // We want the contents but not this tag + return; + } + result += '<' + name; + if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) { + each(attribs, function (value, a) { + if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) { + // This prevents part of an attribute name in the output from being + // interpreted as the end of an attribute, or end of a tag. + delete frame.attribs[a]; + return; + } + var parsed; + // check allowedAttributesMap for the element and attribute and modify the value + // as necessary if there are specific values defined. + var passedAllowedAttributesMapCheck = false; + if (!allowedAttributesMap || has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1 || allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1 || has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a) || allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a)) { + passedAllowedAttributesMapCheck = true; + } else if (allowedAttributesMap && allowedAttributesMap[name]) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = allowedAttributesMap[name][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var o = _step.value; + + if (isPlainObject(o) && o.name && o.name === a) { + passedAllowedAttributesMapCheck = true; + var newValue = ''; + if (o.multiple === true) { + // verify the values that are allowed + var splitStrArray = value.split(' '); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = splitStrArray[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var s = _step2.value; + + if (o.values.indexOf(s) !== -1) { + if (newValue === '') { + newValue = s; + } else { + newValue += ' ' + s; + } + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } else if (o.values.indexOf(value) >= 0) { + // verified an allowed value matches the entire attribute value + newValue = value; + } + value = newValue; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + if (passedAllowedAttributesMapCheck) { + if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) { + if (naughtyHref(name, value)) { + delete frame.attribs[a]; + return; + } + } + if (name === 'iframe' && a === 'src') { + try { + // naughtyHref is in charge of whether protocol relative URLs + // are cool. We should just accept them + parsed = url.parse(value, false, true); + if (options.allowedIframeHostnames) { + var whitelistedHostnames = options.allowedIframeHostnames.find(function (hostname) { + return hostname === parsed.hostname; + }); + if (!whitelistedHostnames) { + delete frame.attribs[a]; + return; + } + } + } catch (e) { + // Unparseable iframe src + delete frame.attribs[a]; + return; + } + } + if (a === 'srcset') { + try { + parsed = srcset.parse(value); + each(parsed, function (value) { + if (naughtyHref('srcset', value.url)) { + value.evil = true; + } + }); + parsed = filter(parsed, function (v) { + return !v.evil; + }); + if (!parsed.length) { + delete frame.attribs[a]; + return; + } else { + value = srcset.stringify(filter(parsed, function (v) { + return !v.evil; + })); + frame.attribs[a] = value; + } + } catch (e) { + // Unparseable srcset + delete frame.attribs[a]; + return; + } + } + if (a === 'class') { + value = filterClasses(value, allowedClassesMap[name]); + if (!value.length) { + delete frame.attribs[a]; + return; + } + } + if (a === 'style') { + try { + var abstractSyntaxTree = postcss.parse(name + " {" + value + "}"); + var filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles); + + value = stringifyStyleAttributes(filteredAST); + + if (value.length === 0) { + delete frame.attribs[a]; + return; + } + } catch (e) { + delete frame.attribs[a]; + return; + } + } + result += ' ' + a; + if (value.length) { + result += '="' + escapeHtml(value) + '"'; + } + } else { + delete frame.attribs[a]; + } + }); + } + if (options.selfClosing.indexOf(name) !== -1) { + result += " />"; + } else { + result += ">"; + if (frame.innerText && !hasText && !options.textFilter) { + result += frame.innerText; + } + } + }, + ontext: function ontext(text) { + if (skipText) { + return; + } + var lastFrame = stack[stack.length - 1]; + var tag; + + if (lastFrame) { + tag = lastFrame.tag; + // If inner text was set by transform function then let's use it + text = lastFrame.innerText !== undefined ? lastFrame.innerText : text; + } + + if (tag === 'script' || tag === 'style') { + // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing + // script tags is, by definition, game over for XSS protection, so if that's + // your concern, don't allow them. The same is essentially true for style tags + // which have their own collection of XSS vectors. + result += text; + } else { + var escaped = escapeHtml(text); + if (options.textFilter) { + result += options.textFilter(escaped); + } else { + result += escaped; + } + } + if (stack.length) { + var frame = stack[stack.length - 1]; + frame.text += text; + } + }, + onclosetag: function onclosetag(name) { + + if (skipText) { + skipTextDepth--; + if (!skipTextDepth) { + skipText = false; + } else { + return; + } + } + + var frame = stack.pop(); + if (!frame) { + // Do not crash on bad markup + return; + } + skipText = false; + depth--; + if (skipMap[depth]) { + delete skipMap[depth]; + frame.updateParentNodeText(); + return; + } + + if (transformMap[depth]) { + name = transformMap[depth]; + delete transformMap[depth]; + } + + if (options.exclusiveFilter && options.exclusiveFilter(frame)) { + result = result.substr(0, frame.tagPosition); + return; + } + + frame.updateParentNodeText(); + + if (options.selfClosing.indexOf(name) !== -1) { + // Already output /> + return; + } + + result += ""; + } + }, options.parser); + parser.write(html); + parser.end(); + + return result; + + function escapeHtml(s) { + if (typeof s !== 'string') { + s = s + ''; + } + return s.replace(/\&/g, '&').replace(//g, '>').replace(/\"/g, '"'); + } + + function naughtyHref(name, href) { + // Browsers ignore character codes of 32 (space) and below in a surprising + // number of situations. Start reading here: + // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab + href = href.replace(/[\x00-\x20]+/g, ''); + // Clobber any comments in URLs, which the browser might + // interpret inside an XML data island, allowing + // a javascript: URL to be snuck through + href = href.replace(/<\!\-\-.*?\-\-\>/g, ''); + // Case insensitive so we don't get faked out by JAVASCRIPT #1 + var matches = href.match(/^([a-zA-Z]+)\:/); + if (!matches) { + // Protocol-relative URL starting with any combination of '/' and '\' + if (href.match(/^[\/\\]{2}/)) { + return !options.allowProtocolRelative; + } + + // No scheme + return false; + } + var scheme = matches[1].toLowerCase(); + + if (has(options.allowedSchemesByTag, name)) { + return options.allowedSchemesByTag[name].indexOf(scheme) === -1; + } + + return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1; + } + + /** + * Filters user input css properties by whitelisted regex attributes. + * + * @param {object} abstractSyntaxTree - Object representation of CSS attributes. + * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }. + * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i). + * @return {object} - Abstract Syntax Tree with filtered style attributes. + */ + function filterCss(abstractSyntaxTree, allowedStyles) { + if (!allowedStyles) { + return abstractSyntaxTree; + } + + var filteredAST = cloneDeep(abstractSyntaxTree); + var astRules = abstractSyntaxTree.nodes[0]; + var selectedRule; + + // Merge global and tag-specific styles into new AST. + if (allowedStyles[astRules.selector] && allowedStyles['*']) { + selectedRule = mergeWith(cloneDeep(allowedStyles[astRules.selector]), allowedStyles['*'], function (objValue, srcValue) { + if (Array.isArray(objValue)) { + return objValue.concat(srcValue); + } + }); + } else { + selectedRule = allowedStyles[astRules.selector] || allowedStyles['*']; + } + + if (selectedRule) { + filteredAST.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []); + } + + return filteredAST; + } + + /** + * Extracts the style attribues from an AbstractSyntaxTree and formats those + * values in the inline style attribute format. + * + * @param {AbstractSyntaxTree} filteredAST + * @return {string} - Example: "color:yellow;text-align:center;font-family:helvetica;" + */ + function stringifyStyleAttributes(filteredAST) { + return filteredAST.nodes[0].nodes.reduce(function (extractedAttributes, attributeObject) { + extractedAttributes.push(attributeObject.prop + ':' + attributeObject.value + ';'); + return extractedAttributes; + }, []).join(''); + } + + /** + * Filters the existing attributes for the given property. Discards any attributes + * which don't match the whitelist. + * + * @param {object} selectedRule - Example: { color: red, font-family: helvetica } + * @param {array} allowedDeclarationsList - List of declarations which pass whitelisting. + * @param {object} attributeObject - Object representing the current css property. + * @property {string} attributeObject.type - Typically 'declaration'. + * @property {string} attributeObject.prop - The CSS property, i.e 'color'. + * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'. + * @return {function} - When used in Array.reduce, will return an array of Declaration objects + */ + function filterDeclarations(selectedRule) { + return function (allowedDeclarationsList, attributeObject) { + // If this property is whitelisted... + if (selectedRule.hasOwnProperty(attributeObject.prop)) { + var matchesRegex = selectedRule[attributeObject.prop].some(function (regularExpression) { + return regularExpression.test(attributeObject.value); + }); + + if (matchesRegex) { + allowedDeclarationsList.push(attributeObject); + } + } + return allowedDeclarationsList; + }; + } + + function filterClasses(classes, allowed) { + if (!allowed) { + // The class attribute is allowed without filtering on this tag + return classes; + } + classes = classes.split(/\s+/); + return classes.filter(function (clss) { + return allowed.indexOf(clss) !== -1; + }).join(' '); + } +} + +// Defaults are accessible to you so that you can use them as a starting point +// programmatically if you wish + +var htmlParserDefaults = { + decodeEntities: true +}; +sanitizeHtml.defaults = { + allowedTags: ['h3', 'h4', 'h5', 'h6', 'blockquote', 'p', 'a', 'ul', 'ol', 'nl', 'li', 'b', 'i', 'strong', 'em', 'strike', 'code', 'hr', 'br', 'div', 'table', 'thead', 'caption', 'tbody', 'tr', 'th', 'td', 'pre', 'iframe'], + allowedAttributes: { + a: ['href', 'name', 'target'], + // We don't currently allow img itself by default, but this + // would make sense if we did. You could add srcset here, + // and if you do the URL is checked for safety + img: ['src'] + }, + // Lots of these won't come up by default because we don't allow them + selfClosing: ['img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta'], + // URL schemes we permit + allowedSchemes: ['http', 'https', 'ftp', 'mailto'], + allowedSchemesByTag: {}, + allowedSchemesAppliedToAttributes: ['href', 'src', 'cite'], + allowProtocolRelative: true +}; + +sanitizeHtml.simpleTransform = function (newTagName, newAttribs, merge) { + merge = merge === undefined ? true : merge; + newAttribs = newAttribs || {}; + + return function (tagName, attribs) { + var attrib; + if (merge) { + for (attrib in newAttribs) { + attribs[attrib] = newAttribs[attrib]; + } + } else { + attribs = newAttribs; + } + + return { + tagName: newTagName, + attribs: attribs + }; + }; +}; + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js": +/*!************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _container = __webpack_require__(/*! ./container */ "./node_modules/sanitize-html/node_modules/postcss/lib/container.js"); + +var _container2 = _interopRequireDefault(_container); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Represents an at-rule. + * + * If it’s followed in the CSS by a {} block, this node will have + * a nodes property representing its children. + * + * @extends Container + * + * @example + * const root = postcss.parse('@charset "UTF-8"; @media print {}'); + * + * const charset = root.first; + * charset.type //=> 'atrule' + * charset.nodes //=> undefined + * + * const media = root.last; + * media.nodes //=> [] + */ +var AtRule = function (_Container) { + _inherits(AtRule, _Container); + + function AtRule(defaults) { + _classCallCheck(this, AtRule); + + var _this = _possibleConstructorReturn(this, _Container.call(this, defaults)); + + _this.type = 'atrule'; + return _this; + } + + AtRule.prototype.append = function append() { + var _Container$prototype$; + + if (!this.nodes) this.nodes = []; + + for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) { + children[_key] = arguments[_key]; + } + + return (_Container$prototype$ = _Container.prototype.append).call.apply(_Container$prototype$, [this].concat(children)); + }; + + AtRule.prototype.prepend = function prepend() { + var _Container$prototype$2; + + if (!this.nodes) this.nodes = []; + + for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + children[_key2] = arguments[_key2]; + } + + return (_Container$prototype$2 = _Container.prototype.prepend).call.apply(_Container$prototype$2, [this].concat(children)); + }; + + /** + * @memberof AtRule# + * @member {string} name - the at-rule’s name immediately follows the `@` + * + * @example + * const root = postcss.parse('@media print {}'); + * media.name //=> 'media' + * const media = root.first; + */ + + /** + * @memberof AtRule# + * @member {string} params - the at-rule’s parameters, the values + * that follow the at-rule’s name but precede + * any {} block + * + * @example + * const root = postcss.parse('@media print, screen {}'); + * const media = root.first; + * media.params //=> 'print, screen' + */ + + /** + * @memberof AtRule# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains true if the last child has + * an (optional) semicolon. + * * `afterName`: the space between the at-rule name and its parameters. + * + * PostCSS cleans at-rule parameters from comments and extra spaces, + * but it stores origin content in raws properties. + * As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * @example + * const root = postcss.parse(' @media\nprint {\n}') + * root.first.first.raws //=> { before: ' ', + * // between: ' ', + * // afterName: '\n', + * // after: '\n' } + */ + + + return AtRule; +}(_container2.default); + +exports.default = AtRule; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/comment.js": +/*!************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/comment.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _node = __webpack_require__(/*! ./node */ "./node_modules/sanitize-html/node_modules/postcss/lib/node.js"); + +var _node2 = _interopRequireDefault(_node); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Represents a comment between declarations or statements (rule and at-rules). + * + * Comments inside selectors, at-rule parameters, or declaration values + * will be stored in the `raws` properties explained above. + * + * @extends Node + */ +var Comment = function (_Node) { + _inherits(Comment, _Node); + + function Comment(defaults) { + _classCallCheck(this, Comment); + + var _this = _possibleConstructorReturn(this, _Node.call(this, defaults)); + + _this.type = 'comment'; + return _this; + } + + /** + * @memberof Comment# + * @member {string} text - the comment’s text + */ + + /** + * @memberof Comment# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. + * * `left`: the space symbols between `/*` and the comment’s text. + * * `right`: the space symbols between the comment’s text. + */ + + + return Comment; +}(_node2.default); + +exports.default = Comment; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/container.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/container.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _declaration = __webpack_require__(/*! ./declaration */ "./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js"); + +var _declaration2 = _interopRequireDefault(_declaration); + +var _comment = __webpack_require__(/*! ./comment */ "./node_modules/sanitize-html/node_modules/postcss/lib/comment.js"); + +var _comment2 = _interopRequireDefault(_comment); + +var _node = __webpack_require__(/*! ./node */ "./node_modules/sanitize-html/node_modules/postcss/lib/node.js"); + +var _node2 = _interopRequireDefault(_node); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function cleanSource(nodes) { + return nodes.map(function (i) { + if (i.nodes) i.nodes = cleanSource(i.nodes); + delete i.source; + return i; + }); +} + +/** + * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes + * inherit some common methods to help work with their children. + * + * Note that all containers can store any content. If you write a rule inside + * a rule, PostCSS will parse it. + * + * @extends Node + * @abstract + */ + +var Container = function (_Node) { + _inherits(Container, _Node); + + function Container() { + _classCallCheck(this, Container); + + return _possibleConstructorReturn(this, _Node.apply(this, arguments)); + } + + Container.prototype.push = function push(child) { + child.parent = this; + this.nodes.push(child); + return this; + }; + + /** + * Iterates through the container’s immediate children, + * calling `callback` for each child. + * + * Returning `false` in the callback will break iteration. + * + * This method only iterates through the container’s immediate children. + * If you need to recursively iterate through all the container’s descendant + * nodes, use {@link Container#walk}. + * + * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe + * if you are mutating the array of child nodes during iteration. + * PostCSS will adjust the current index to match the mutations. + * + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * const root = postcss.parse('a { color: black; z-index: 1 }'); + * const rule = root.first; + * + * for ( let decl of rule.nodes ) { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }); + * // Cycle will be infinite, because cloneBefore moves the current node + * // to the next index + * } + * + * rule.each(decl => { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }); + * // Will be executed only for color and z-index + * }); + */ + + + Container.prototype.each = function each(callback) { + if (!this.lastEach) this.lastEach = 0; + if (!this.indexes) this.indexes = {}; + + this.lastEach += 1; + var id = this.lastEach; + this.indexes[id] = 0; + + if (!this.nodes) return undefined; + + var index = void 0, + result = void 0; + while (this.indexes[id] < this.nodes.length) { + index = this.indexes[id]; + result = callback(this.nodes[index], index); + if (result === false) break; + + this.indexes[id] += 1; + } + + delete this.indexes[id]; + + return result; + }; + + /** + * Traverses the container’s descendant nodes, calling callback + * for each node. + * + * Like container.each(), this method is safe to use + * if you are mutating arrays during iteration. + * + * If you only need to iterate through the container’s immediate children, + * use {@link Container#each}. + * + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * root.walk(node => { + * // Traverses all descendant nodes. + * }); + */ + + + Container.prototype.walk = function walk(callback) { + return this.each(function (child, i) { + var result = callback(child, i); + if (result !== false && child.walk) { + result = child.walk(callback); + } + return result; + }); + }; + + /** + * Traverses the container’s descendant nodes, calling callback + * for each declaration node. + * + * If you pass a filter, iteration will only happen over declarations + * with matching properties. + * + * Like {@link Container#each}, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param {string|RegExp} [prop] - string or regular expression + * to filter declarations by property name + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * root.walkDecls(decl => { + * checkPropertySupport(decl.prop); + * }); + * + * root.walkDecls('border-radius', decl => { + * decl.remove(); + * }); + * + * root.walkDecls(/^background/, decl => { + * decl.value = takeFirstColorFromGradient(decl.value); + * }); + */ + + + Container.prototype.walkDecls = function walkDecls(prop, callback) { + if (!callback) { + callback = prop; + return this.walk(function (child, i) { + if (child.type === 'decl') { + return callback(child, i); + } + }); + } else if (prop instanceof RegExp) { + return this.walk(function (child, i) { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i); + } + }); + } else { + return this.walk(function (child, i) { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i); + } + }); + } + }; + + /** + * Traverses the container’s descendant nodes, calling callback + * for each rule node. + * + * If you pass a filter, iteration will only happen over rules + * with matching selectors. + * + * Like {@link Container#each}, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param {string|RegExp} [selector] - string or regular expression + * to filter rules by selector + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * const selectors = []; + * root.walkRules(rule => { + * selectors.push(rule.selector); + * }); + * console.log(`Your CSS uses ${selectors.length} selectors`); + */ + + + Container.prototype.walkRules = function walkRules(selector, callback) { + if (!callback) { + callback = selector; + + return this.walk(function (child, i) { + if (child.type === 'rule') { + return callback(child, i); + } + }); + } else if (selector instanceof RegExp) { + return this.walk(function (child, i) { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i); + } + }); + } else { + return this.walk(function (child, i) { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i); + } + }); + } + }; + + /** + * Traverses the container’s descendant nodes, calling callback + * for each at-rule node. + * + * If you pass a filter, iteration will only happen over at-rules + * that have matching names. + * + * Like {@link Container#each}, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param {string|RegExp} [name] - string or regular expression + * to filter at-rules by name + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * root.walkAtRules(rule => { + * if ( isOld(rule.name) ) rule.remove(); + * }); + * + * let first = false; + * root.walkAtRules('charset', rule => { + * if ( !first ) { + * first = true; + * } else { + * rule.remove(); + * } + * }); + */ + + + Container.prototype.walkAtRules = function walkAtRules(name, callback) { + if (!callback) { + callback = name; + return this.walk(function (child, i) { + if (child.type === 'atrule') { + return callback(child, i); + } + }); + } else if (name instanceof RegExp) { + return this.walk(function (child, i) { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i); + } + }); + } else { + return this.walk(function (child, i) { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i); + } + }); + } + }; + + /** + * Traverses the container’s descendant nodes, calling callback + * for each comment node. + * + * Like {@link Container#each}, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param {childIterator} callback - iterator receives each node and index + * + * @return {false|undefined} returns `false` if iteration was broke + * + * @example + * root.walkComments(comment => { + * comment.remove(); + * }); + */ + + + Container.prototype.walkComments = function walkComments(callback) { + return this.walk(function (child, i) { + if (child.type === 'comment') { + return callback(child, i); + } + }); + }; + + /** + * Inserts new nodes to the end of the container. + * + * @param {...(Node|object|string|Node[])} children - new nodes + * + * @return {Node} this node for methods chain + * + * @example + * const decl1 = postcss.decl({ prop: 'color', value: 'black' }); + * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' }); + * rule.append(decl1, decl2); + * + * root.append({ name: 'charset', params: '"UTF-8"' }); // at-rule + * root.append({ selector: 'a' }); // rule + * rule.append({ prop: 'color', value: 'black' }); // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}'); + * root.first.append('color: black; z-index: 1'); + */ + + + Container.prototype.append = function append() { + for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) { + children[_key] = arguments[_key]; + } + + for (var _iterator = children, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var child = _ref; + + var nodes = this.normalize(child, this.last); + for (var _iterator2 = nodes, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { + var _ref2; + + if (_isArray2) { + if (_i2 >= _iterator2.length) break; + _ref2 = _iterator2[_i2++]; + } else { + _i2 = _iterator2.next(); + if (_i2.done) break; + _ref2 = _i2.value; + } + + var node = _ref2; + this.nodes.push(node); + } + } + return this; + }; + + /** + * Inserts new nodes to the start of the container. + * + * @param {...(Node|object|string|Node[])} children - new nodes + * + * @return {Node} this node for methods chain + * + * @example + * const decl1 = postcss.decl({ prop: 'color', value: 'black' }); + * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' }); + * rule.prepend(decl1, decl2); + * + * root.append({ name: 'charset', params: '"UTF-8"' }); // at-rule + * root.append({ selector: 'a' }); // rule + * rule.append({ prop: 'color', value: 'black' }); // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}'); + * root.first.append('color: black; z-index: 1'); + */ + + + Container.prototype.prepend = function prepend() { + for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + children[_key2] = arguments[_key2]; + } + + children = children.reverse(); + for (var _iterator3 = children, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { + var _ref3; + + if (_isArray3) { + if (_i3 >= _iterator3.length) break; + _ref3 = _iterator3[_i3++]; + } else { + _i3 = _iterator3.next(); + if (_i3.done) break; + _ref3 = _i3.value; + } + + var child = _ref3; + + var nodes = this.normalize(child, this.first, 'prepend').reverse(); + for (var _iterator4 = nodes, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { + var _ref4; + + if (_isArray4) { + if (_i4 >= _iterator4.length) break; + _ref4 = _iterator4[_i4++]; + } else { + _i4 = _iterator4.next(); + if (_i4.done) break; + _ref4 = _i4.value; + } + + var node = _ref4; + this.nodes.unshift(node); + }for (var id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length; + } + } + return this; + }; + + Container.prototype.cleanRaws = function cleanRaws(keepBetween) { + _Node.prototype.cleanRaws.call(this, keepBetween); + if (this.nodes) { + for (var _iterator5 = this.nodes, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { + var _ref5; + + if (_isArray5) { + if (_i5 >= _iterator5.length) break; + _ref5 = _iterator5[_i5++]; + } else { + _i5 = _iterator5.next(); + if (_i5.done) break; + _ref5 = _i5.value; + } + + var node = _ref5; + node.cleanRaws(keepBetween); + } + } + }; + + /** + * Insert new node before old node within the container. + * + * @param {Node|number} exist - child or child’s index. + * @param {Node|object|string|Node[]} add - new node + * + * @return {Node} this node for methods chain + * + * @example + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })); + */ + + + Container.prototype.insertBefore = function insertBefore(exist, add) { + exist = this.index(exist); + + var type = exist === 0 ? 'prepend' : false; + var nodes = this.normalize(add, this.nodes[exist], type).reverse(); + for (var _iterator6 = nodes, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { + var _ref6; + + if (_isArray6) { + if (_i6 >= _iterator6.length) break; + _ref6 = _iterator6[_i6++]; + } else { + _i6 = _iterator6.next(); + if (_i6.done) break; + _ref6 = _i6.value; + } + + var node = _ref6; + this.nodes.splice(exist, 0, node); + }var index = void 0; + for (var id in this.indexes) { + index = this.indexes[id]; + if (exist <= index) { + this.indexes[id] = index + nodes.length; + } + } + + return this; + }; + + /** + * Insert new node after old node within the container. + * + * @param {Node|number} exist - child or child’s index + * @param {Node|object|string|Node[]} add - new node + * + * @return {Node} this node for methods chain + */ + + + Container.prototype.insertAfter = function insertAfter(exist, add) { + exist = this.index(exist); + + var nodes = this.normalize(add, this.nodes[exist]).reverse(); + for (var _iterator7 = nodes, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { + var _ref7; + + if (_isArray7) { + if (_i7 >= _iterator7.length) break; + _ref7 = _iterator7[_i7++]; + } else { + _i7 = _iterator7.next(); + if (_i7.done) break; + _ref7 = _i7.value; + } + + var node = _ref7; + this.nodes.splice(exist + 1, 0, node); + }var index = void 0; + for (var id in this.indexes) { + index = this.indexes[id]; + if (exist < index) { + this.indexes[id] = index + nodes.length; + } + } + + return this; + }; + + /** + * Removes node from the container and cleans the parent properties + * from the node and its children. + * + * @param {Node|number} child - child or child’s index + * + * @return {Node} this node for methods chain + * + * @example + * rule.nodes.length //=> 5 + * rule.removeChild(decl); + * rule.nodes.length //=> 4 + * decl.parent //=> undefined + */ + + + Container.prototype.removeChild = function removeChild(child) { + child = this.index(child); + this.nodes[child].parent = undefined; + this.nodes.splice(child, 1); + + var index = void 0; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + + return this; + }; + + /** + * Removes all children from the container + * and cleans their parent properties. + * + * @return {Node} this node for methods chain + * + * @example + * rule.removeAll(); + * rule.nodes.length //=> 0 + */ + + + Container.prototype.removeAll = function removeAll() { + for (var _iterator8 = this.nodes, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) { + var _ref8; + + if (_isArray8) { + if (_i8 >= _iterator8.length) break; + _ref8 = _iterator8[_i8++]; + } else { + _i8 = _iterator8.next(); + if (_i8.done) break; + _ref8 = _i8.value; + } + + var node = _ref8; + node.parent = undefined; + }this.nodes = []; + return this; + }; + + /** + * Passes all declaration values within the container that match pattern + * through callback, replacing those values with the returned result + * of callback. + * + * This method is useful if you are using a custom unit or function + * and need to iterate through all values. + * + * @param {string|RegExp} pattern - replace pattern + * @param {object} opts - options to speed up the search + * @param {string|string[]} opts.props - an array of property names + * @param {string} opts.fast - string that’s used + * to narrow down values and speed up + the regexp search + * @param {function|string} callback - string to replace pattern + * or callback that returns a new + * value. + * The callback will receive + * the same arguments as those + * passed to a function parameter + * of `String#replace`. + * + * @return {Node} this node for methods chain + * + * @example + * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => { + * return 15 * parseInt(string) + 'px'; + * }); + */ + + + Container.prototype.replaceValues = function replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts; + opts = {}; + } + + this.walkDecls(function (decl) { + if (opts.props && opts.props.indexOf(decl.prop) === -1) return; + if (opts.fast && decl.value.indexOf(opts.fast) === -1) return; + + decl.value = decl.value.replace(pattern, callback); + }); + + return this; + }; + + /** + * Returns `true` if callback returns `true` + * for all of the container’s children. + * + * @param {childCondition} condition - iterator returns true or false. + * + * @return {boolean} is every child pass condition + * + * @example + * const noPrefixes = rule.every(i => i.prop[0] !== '-'); + */ + + + Container.prototype.every = function every(condition) { + return this.nodes.every(condition); + }; + + /** + * Returns `true` if callback returns `true` for (at least) one + * of the container’s children. + * + * @param {childCondition} condition - iterator returns true or false. + * + * @return {boolean} is some child pass condition + * + * @example + * const hasPrefix = rule.some(i => i.prop[0] === '-'); + */ + + + Container.prototype.some = function some(condition) { + return this.nodes.some(condition); + }; + + /** + * Returns a `child`’s index within the {@link Container#nodes} array. + * + * @param {Node} child - child of the current container. + * + * @return {number} child index + * + * @example + * rule.index( rule.nodes[2] ) //=> 2 + */ + + + Container.prototype.index = function index(child) { + if (typeof child === 'number') { + return child; + } else { + return this.nodes.indexOf(child); + } + }; + + /** + * The container’s first child. + * + * @type {Node} + * + * @example + * rule.first == rules.nodes[0]; + */ + + + Container.prototype.normalize = function normalize(nodes, sample) { + var _this2 = this; + + if (typeof nodes === 'string') { + var parse = __webpack_require__(/*! ./parse */ "./node_modules/sanitize-html/node_modules/postcss/lib/parse.js"); + nodes = cleanSource(parse(nodes).nodes); + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0); + for (var _iterator9 = nodes, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) { + var _ref9; + + if (_isArray9) { + if (_i9 >= _iterator9.length) break; + _ref9 = _iterator9[_i9++]; + } else { + _i9 = _iterator9.next(); + if (_i9.done) break; + _ref9 = _i9.value; + } + + var i = _ref9; + + if (i.parent) i.parent.removeChild(i, 'ignore'); + } + } else if (nodes.type === 'root') { + nodes = nodes.nodes.slice(0); + for (var _iterator10 = nodes, _isArray10 = Array.isArray(_iterator10), _i11 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) { + var _ref10; + + if (_isArray10) { + if (_i11 >= _iterator10.length) break; + _ref10 = _iterator10[_i11++]; + } else { + _i11 = _iterator10.next(); + if (_i11.done) break; + _ref10 = _i11.value; + } + + var _i10 = _ref10; + + if (_i10.parent) _i10.parent.removeChild(_i10, 'ignore'); + } + } else if (nodes.type) { + nodes = [nodes]; + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation'); + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value); + } + nodes = [new _declaration2.default(nodes)]; + } else if (nodes.selector) { + var Rule = __webpack_require__(/*! ./rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/rule.js"); + nodes = [new Rule(nodes)]; + } else if (nodes.name) { + var AtRule = __webpack_require__(/*! ./at-rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js"); + nodes = [new AtRule(nodes)]; + } else if (nodes.text) { + nodes = [new _comment2.default(nodes)]; + } else { + throw new Error('Unknown node type in node creation'); + } + + var processed = nodes.map(function (i) { + if (typeof i.before !== 'function') i = _this2.rebuild(i); + + if (i.parent) i.parent.removeChild(i); + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/[^\s]/g, ''); + } + } + i.parent = _this2; + return i; + }); + + return processed; + }; + + Container.prototype.rebuild = function rebuild(node, parent) { + var _this3 = this; + + var fix = void 0; + if (node.type === 'root') { + var Root = __webpack_require__(/*! ./root */ "./node_modules/sanitize-html/node_modules/postcss/lib/root.js"); + fix = new Root(); + } else if (node.type === 'atrule') { + var AtRule = __webpack_require__(/*! ./at-rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js"); + fix = new AtRule(); + } else if (node.type === 'rule') { + var Rule = __webpack_require__(/*! ./rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/rule.js"); + fix = new Rule(); + } else if (node.type === 'decl') { + fix = new _declaration2.default(); + } else if (node.type === 'comment') { + fix = new _comment2.default(); + } + + for (var i in node) { + if (i === 'nodes') { + fix.nodes = node.nodes.map(function (j) { + return _this3.rebuild(j, fix); + }); + } else if (i === 'parent' && parent) { + fix.parent = parent; + } else if (node.hasOwnProperty(i)) { + fix[i] = node[i]; + } + } + + return fix; + }; + + /** + * @memberof Container# + * @member {Node[]} nodes - an array containing the container’s children + * + * @example + * const root = postcss.parse('a { color: black }'); + * root.nodes.length //=> 1 + * root.nodes[0].selector //=> 'a' + * root.nodes[0].nodes[0].prop //=> 'color' + */ + + _createClass(Container, [{ + key: 'first', + get: function get() { + if (!this.nodes) return undefined; + return this.nodes[0]; + } + + /** + * The container’s last child. + * + * @type {Node} + * + * @example + * rule.last == rule.nodes[rule.nodes.length - 1]; + */ + + }, { + key: 'last', + get: function get() { + if (!this.nodes) return undefined; + return this.nodes[this.nodes.length - 1]; + } + }]); + + return Container; +}(_node2.default); + +exports.default = Container; + +/** + * @callback childCondition + * @param {Node} node - container child + * @param {number} index - child index + * @param {Node[]} nodes - all container children + * @return {boolean} + */ + +/** + * @callback childIterator + * @param {Node} node - container child + * @param {number} index - child index + * @return {false|undefined} returning `false` will break iteration + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _supportsColor = __webpack_require__(/*! supports-color */ 4); + +var _supportsColor2 = _interopRequireDefault(_supportsColor); + +var _chalk = __webpack_require__(/*! chalk */ 5); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _terminalHighlight = __webpack_require__(/*! ./terminal-highlight */ "./node_modules/sanitize-html/node_modules/postcss/lib/terminal-highlight.js"); + +var _terminalHighlight2 = _interopRequireDefault(_terminalHighlight); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * The CSS parser throws this error for broken CSS. + * + * Custom parsers can throw this error for broken custom syntax using + * the {@link Node#error} method. + * + * PostCSS will use the input source map to detect the original error location. + * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. + * + * If you need the position in the PostCSS input + * (e.g., to debug the previous compiler), use `error.input.file`. + * + * @example + * // Catching and checking syntax error + * try { + * postcss.parse('a{') + * } catch (error) { + * if ( error.name === 'CssSyntaxError' ) { + * error //=> CssSyntaxError + * } + * } + * + * @example + * // Raising error from plugin + * throw node.error('Unknown variable', { plugin: 'postcss-vars' }); + */ +var CssSyntaxError = function () { + + /** + * @param {string} message - error message + * @param {number} [line] - source line of the error + * @param {number} [column] - source column of the error + * @param {string} [source] - source code of the broken file + * @param {string} [file] - absolute path to the broken file + * @param {string} [plugin] - PostCSS plugin name, if error came from plugin + */ + function CssSyntaxError(message, line, column, source, file, plugin) { + _classCallCheck(this, CssSyntaxError); + + /** + * @member {string} - Always equal to `'CssSyntaxError'`. You should + * always check error type + * by `error.name === 'CssSyntaxError'` instead of + * `error instanceof CssSyntaxError`, because + * npm could have several PostCSS versions. + * + * @example + * if ( error.name === 'CssSyntaxError' ) { + * error //=> CssSyntaxError + * } + */ + this.name = 'CssSyntaxError'; + /** + * @member {string} - Error message. + * + * @example + * error.message //=> 'Unclosed block' + */ + this.reason = message; + + if (file) { + /** + * @member {string} - Absolute path to the broken file. + * + * @example + * error.file //=> 'a.sass' + * error.input.file //=> 'a.css' + */ + this.file = file; + } + if (source) { + /** + * @member {string} - Source code of the broken file. + * + * @example + * error.source //=> 'a { b {} }' + * error.input.column //=> 'a b { }' + */ + this.source = source; + } + if (plugin) { + /** + * @member {string} - Plugin name, if error came from plugin. + * + * @example + * error.plugin //=> 'postcss-vars' + */ + this.plugin = plugin; + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + /** + * @member {number} - Source line of the error. + * + * @example + * error.line //=> 2 + * error.input.line //=> 4 + */ + this.line = line; + /** + * @member {number} - Source column of the error. + * + * @example + * error.column //=> 1 + * error.input.column //=> 4 + */ + this.column = column; + } + + this.setMessage(); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError); + } + } + + CssSyntaxError.prototype.setMessage = function setMessage() { + /** + * @member {string} - Full error text in the GNU error format + * with plugin, file, line and column. + * + * @example + * error.message //=> 'a.css:1:1: Unclosed block' + */ + this.message = this.plugin ? this.plugin + ': ' : ''; + this.message += this.file ? this.file : ''; + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column; + } + this.message += ': ' + this.reason; + }; + + /** + * Returns a few lines of CSS source that caused the error. + * + * If the CSS has an input source map without `sourceContent`, + * this method will return an empty string. + * + * @param {boolean} [color] whether arrow will be colored red by terminal + * color codes. By default, PostCSS will detect + * color support by `process.stdout.isTTY` + * and `process.env.NODE_DISABLE_COLORS`. + * + * @example + * error.showSourceCode() //=> " 4 | } + * // 5 | a { + * // > 6 | bad + * // | ^ + * // 7 | } + * // 8 | b {" + * + * @return {string} few lines of CSS source that caused the error + */ + + + CssSyntaxError.prototype.showSourceCode = function showSourceCode(color) { + var _this = this; + + if (!this.source) return ''; + + var css = this.source; + if (typeof color === 'undefined') color = _supportsColor2.default.stdout; + if (color) css = (0, _terminalHighlight2.default)(css); + + var lines = css.split(/\r?\n/); + var start = Math.max(this.line - 3, 0); + var end = Math.min(this.line + 2, lines.length); + + var maxWidth = String(end).length; + + function mark(text) { + if (color && _chalk2.default.red) { + return _chalk2.default.red.bold(text); + } else { + return text; + } + } + function aside(text) { + if (color && _chalk2.default.gray) { + return _chalk2.default.gray(text); + } else { + return text; + } + } + + return lines.slice(start, end).map(function (line, index) { + var number = start + 1 + index; + var gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '; + if (number === _this.line) { + var spacing = aside(gutter.replace(/\d/g, ' ')) + line.slice(0, _this.column - 1).replace(/[^\t]/g, ' '); + return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^'); + } else { + return ' ' + aside(gutter) + line; + } + }).join('\n'); + }; + + /** + * Returns error position, message and source code of the broken part. + * + * @example + * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block + * // > 1 | a { + * // | ^" + * + * @return {string} error position, message and source code + */ + + + CssSyntaxError.prototype.toString = function toString() { + var code = this.showSourceCode(); + if (code) { + code = '\n\n' + code + '\n'; + } + return this.name + ': ' + this.message + code; + }; + + /** + * @memberof CssSyntaxError# + * @member {Input} input - Input object with PostCSS internal information + * about input file. If input has source map + * from previous tool, PostCSS will use origin + * (for example, Sass) source. You can use this + * object to get PostCSS input source. + * + * @example + * error.input.file //=> 'a.css' + * error.file //=> 'a.sass' + */ + + return CssSyntaxError; +}(); + +exports.default = CssSyntaxError; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js": +/*!****************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _node = __webpack_require__(/*! ./node */ "./node_modules/sanitize-html/node_modules/postcss/lib/node.js"); + +var _node2 = _interopRequireDefault(_node); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Represents a CSS declaration. + * + * @extends Node + * + * @example + * const root = postcss.parse('a { color: black }'); + * const decl = root.first.first; + * decl.type //=> 'decl' + * decl.toString() //=> ' color: black' + */ +var Declaration = function (_Node) { + _inherits(Declaration, _Node); + + function Declaration(defaults) { + _classCallCheck(this, Declaration); + + var _this = _possibleConstructorReturn(this, _Node.call(this, defaults)); + + _this.type = 'decl'; + return _this; + } + + /** + * @memberof Declaration# + * @member {string} prop - the declaration’s property name + * + * @example + * const root = postcss.parse('a { color: black }'); + * const decl = root.first.first; + * decl.prop //=> 'color' + */ + + /** + * @memberof Declaration# + * @member {string} value - the declaration’s value + * + * @example + * const root = postcss.parse('a { color: black }'); + * const decl = root.first.first; + * decl.value //=> 'black' + */ + + /** + * @memberof Declaration# + * @member {boolean} important - `true` if the declaration + * has an !important annotation. + * + * @example + * const root = postcss.parse('a { color: black !important; color: red }'); + * root.first.first.important //=> true + * root.first.last.important //=> undefined + */ + + /** + * @memberof Declaration# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `between`: the symbols between the property and value + * for declarations. + * * `important`: the content of the important statement, + * if it is not just `!important`. + * + * PostCSS cleans declaration from comments and extra spaces, + * but it stores origin content in raws properties. + * As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * @example + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + */ + + return Declaration; +}(_node2.default); + +exports.default = Declaration; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/input.js": +/*!**********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/input.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _cssSyntaxError = __webpack_require__(/*! ./css-syntax-error */ "./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js"); + +var _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError); + +var _previousMap = __webpack_require__(/*! ./previous-map */ "./node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js"); + +var _previousMap2 = _interopRequireDefault(_previousMap); + +var _path = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js"); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var sequence = 0; + +/** + * Represents the source CSS. + * + * @example + * const root = postcss.parse(css, { from: file }); + * const input = root.source.input; + */ + +var Input = function () { + + /** + * @param {string} css - input CSS source + * @param {object} [opts] - {@link Processor#process} options + */ + function Input(css) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Input); + + if (css === null || (typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && !css.toString) { + throw new Error('PostCSS received ' + css + ' instead of CSS string'); + } + + /** + * @member {string} - input CSS source + * + * @example + * const input = postcss.parse('a{}', { from: file }).input; + * input.css //=> "a{}"; + */ + this.css = css.toString(); + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.css = this.css.slice(1); + } + + if (opts.from) { + if (/^\w+:\/\//.test(opts.from)) { + /** + * @member {string} - The absolute path to the CSS source file + * defined with the `from` option. + * + * @example + * const root = postcss.parse(css, { from: 'a.css' }); + * root.source.input.file //=> '/home/ai/a.css' + */ + this.file = opts.from; + } else { + this.file = _path2.default.resolve(opts.from); + } + } + + var map = new _previousMap2.default(this.css, opts); + if (map.text) { + /** + * @member {PreviousMap} - The input source map passed from + * a compilation step before PostCSS + * (for example, from Sass compiler). + * + * @example + * root.source.input.map.consumer().sources //=> ['a.sass'] + */ + this.map = map; + var file = map.consumer().file; + if (!this.file && file) this.file = this.mapResolve(file); + } + + if (!this.file) { + sequence += 1; + /** + * @member {string} - The unique ID of the CSS source. It will be + * created if `from` option is not provided + * (because PostCSS does not know the file path). + * + * @example + * const root = postcss.parse(css); + * root.source.input.file //=> undefined + * root.source.input.id //=> "" + */ + this.id = ''; + } + if (this.map) this.map.file = this.from; + } + + Input.prototype.error = function error(message, line, column) { + var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + + var result = void 0; + var origin = this.origin(line, column); + if (origin) { + result = new _cssSyntaxError2.default(message, origin.line, origin.column, origin.source, origin.file, opts.plugin); + } else { + result = new _cssSyntaxError2.default(message, line, column, this.css, this.file, opts.plugin); + } + + result.input = { line: line, column: column, source: this.css }; + if (this.file) result.input.file = this.file; + + return result; + }; + + /** + * Reads the input source map and returns a symbol position + * in the input source (e.g., in a Sass file that was compiled + * to CSS before being passed to PostCSS). + * + * @param {number} line - line in input CSS + * @param {number} column - column in input CSS + * + * @return {filePosition} position in input source + * + * @example + * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 } + */ + + + Input.prototype.origin = function origin(line, column) { + if (!this.map) return false; + var consumer = this.map.consumer(); + + var from = consumer.originalPositionFor({ line: line, column: column }); + if (!from.source) return false; + + var result = { + file: this.mapResolve(from.source), + line: from.line, + column: from.column + }; + + var source = consumer.sourceContentFor(from.source); + if (source) result.source = source; + + return result; + }; + + Input.prototype.mapResolve = function mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file; + } else { + return _path2.default.resolve(this.map.consumer().sourceRoot || '.', file); + } + }; + + /** + * The CSS source identifier. Contains {@link Input#file} if the user + * set the `from` option, or {@link Input#id} if they did not. + * @type {string} + * + * @example + * const root = postcss.parse(css, { from: 'a.css' }); + * root.source.input.from //=> "/home/ai/a.css" + * + * const root = postcss.parse(css); + * root.source.input.from //=> "" + */ + + + _createClass(Input, [{ + key: 'from', + get: function get() { + return this.file || this.id; + } + }]); + + return Input; +}(); + +exports.default = Input; + +/** + * @typedef {object} filePosition + * @property {string} file - path to file + * @property {number} line - source line in file + * @property {number} column - source column in file + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js": +/*!****************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _mapGenerator = __webpack_require__(/*! ./map-generator */ "./node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js"); + +var _mapGenerator2 = _interopRequireDefault(_mapGenerator); + +var _stringify2 = __webpack_require__(/*! ./stringify */ "./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js"); + +var _stringify3 = _interopRequireDefault(_stringify2); + +var _warnOnce = __webpack_require__(/*! ./warn-once */ "./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js"); + +var _warnOnce2 = _interopRequireDefault(_warnOnce); + +var _result = __webpack_require__(/*! ./result */ "./node_modules/sanitize-html/node_modules/postcss/lib/result.js"); + +var _result2 = _interopRequireDefault(_result); + +var _parse = __webpack_require__(/*! ./parse */ "./node_modules/sanitize-html/node_modules/postcss/lib/parse.js"); + +var _parse2 = _interopRequireDefault(_parse); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function isPromise(obj) { + return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.then === 'function'; +} + +/** + * A Promise proxy for the result of PostCSS transformations. + * + * A `LazyResult` instance is returned by {@link Processor#process}. + * + * @example + * const lazy = postcss([cssnext]).process(css); + */ + +var LazyResult = function () { + function LazyResult(processor, css, opts) { + _classCallCheck(this, LazyResult); + + this.stringified = false; + this.processed = false; + + var root = void 0; + if ((typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && css !== null && css.type === 'root') { + root = css; + } else if (css instanceof LazyResult || css instanceof _result2.default) { + root = css.root; + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {}; + if (!opts.map.inline) opts.map.inline = false; + opts.map.prev = css.map; + } + } else { + var parser = _parse2.default; + if (opts.syntax) parser = opts.syntax.parse; + if (opts.parser) parser = opts.parser; + if (parser.parse) parser = parser.parse; + + try { + root = parser(css, opts); + } catch (error) { + this.error = error; + } + } + + this.result = new _result2.default(processor, root, opts); + } + + /** + * Returns a {@link Processor} instance, which will be used + * for CSS transformations. + * @type {Processor} + */ + + + /** + * Processes input CSS through synchronous plugins + * and calls {@link Result#warnings()}. + * + * @return {Warning[]} warnings from plugins + */ + LazyResult.prototype.warnings = function warnings() { + return this.sync().warnings(); + }; + + /** + * Alias for the {@link LazyResult#css} property. + * + * @example + * lazy + '' === lazy.css; + * + * @return {string} output CSS + */ + + + LazyResult.prototype.toString = function toString() { + return this.css; + }; + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls `onFulfilled` with a Result instance. If a plugin throws + * an error, the `onRejected` callback will be executed. + * + * It implements standard Promise API. + * + * @param {onFulfilled} onFulfilled - callback will be executed + * when all plugins will finish work + * @param {onRejected} onRejected - callback will be executed on any error + * + * @return {Promise} Promise API to make queue + * + * @example + * postcss([cssnext]).process(css, { from: cssPath }).then(result => { + * console.log(result.css); + * }); + */ + + + LazyResult.prototype.then = function then(onFulfilled, onRejected) { + if (!('from' in this.opts)) { + (0, _warnOnce2.default)('Without `from` option PostCSS could generate wrong ' + 'source map and will not find Browserslist config. ' + 'Set it to CSS file path or to `undefined` to prevent ' + 'this warning.'); + } + return this.async().then(onFulfilled, onRejected); + }; + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onRejected for each error thrown in any plugin. + * + * It implements standard Promise API. + * + * @param {onRejected} onRejected - callback will be executed on any error + * + * @return {Promise} Promise API to make queue + * + * @example + * postcss([cssnext]).process(css).then(result => { + * console.log(result.css); + * }).catch(error => { + * console.error(error); + * }); + */ + + + LazyResult.prototype.catch = function _catch(onRejected) { + return this.async().catch(onRejected); + }; + + LazyResult.prototype.handleError = function handleError(error, plugin) { + try { + this.error = error; + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if (plugin.postcssVersion) { + var pluginName = plugin.postcssPlugin; + var pluginVer = plugin.postcssVersion; + var runtimeVer = this.result.processor.version; + var a = pluginVer.split('.'); + var b = runtimeVer.split('.'); + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + console.error('Unknown error from PostCSS plugin. ' + 'Your current PostCSS version ' + 'is ' + runtimeVer + ', but ' + pluginName + ' ' + 'uses ' + pluginVer + '. Perhaps this is ' + 'the source of the error below.'); + } + } + } catch (err) { + if (console && console.error) console.error(err); + } + }; + + LazyResult.prototype.asyncTick = function asyncTick(resolve, reject) { + var _this = this; + + if (this.plugin >= this.processor.plugins.length) { + this.processed = true; + return resolve(); + } + + try { + var plugin = this.processor.plugins[this.plugin]; + var promise = this.run(plugin); + this.plugin += 1; + + if (isPromise(promise)) { + promise.then(function () { + _this.asyncTick(resolve, reject); + }).catch(function (error) { + _this.handleError(error, plugin); + _this.processed = true; + reject(error); + }); + } else { + this.asyncTick(resolve, reject); + } + } catch (error) { + this.processed = true; + reject(error); + } + }; + + LazyResult.prototype.async = function async() { + var _this2 = this; + + if (this.processed) { + return new Promise(function (resolve, reject) { + if (_this2.error) { + reject(_this2.error); + } else { + resolve(_this2.stringify()); + } + }); + } + if (this.processing) { + return this.processing; + } + + this.processing = new Promise(function (resolve, reject) { + if (_this2.error) return reject(_this2.error); + _this2.plugin = 0; + _this2.asyncTick(resolve, reject); + }).then(function () { + _this2.processed = true; + return _this2.stringify(); + }); + + return this.processing; + }; + + LazyResult.prototype.sync = function sync() { + if (this.processed) return this.result; + this.processed = true; + + if (this.processing) { + throw new Error('Use process(css).then(cb) to work with async plugins'); + } + + if (this.error) throw this.error; + + for (var _iterator = this.result.processor.plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var plugin = _ref; + + var promise = this.run(plugin); + if (isPromise(promise)) { + throw new Error('Use process(css).then(cb) to work with async plugins'); + } + } + + return this.result; + }; + + LazyResult.prototype.run = function run(plugin) { + this.result.lastPlugin = plugin; + + try { + return plugin(this.result.root, this.result); + } catch (error) { + this.handleError(error, plugin); + throw error; + } + }; + + LazyResult.prototype.stringify = function stringify() { + if (this.stringified) return this.result; + this.stringified = true; + + this.sync(); + + var opts = this.result.opts; + var str = _stringify3.default; + if (opts.syntax) str = opts.syntax.stringify; + if (opts.stringifier) str = opts.stringifier; + if (str.stringify) str = str.stringify; + + var map = new _mapGenerator2.default(str, this.result.root, this.result.opts); + var data = map.generate(); + this.result.css = data[0]; + this.result.map = data[1]; + + return this.result; + }; + + _createClass(LazyResult, [{ + key: 'processor', + get: function get() { + return this.result.processor; + } + + /** + * Options from the {@link Processor#process} call. + * @type {processOptions} + */ + + }, { + key: 'opts', + get: function get() { + return this.result.opts; + } + + /** + * Processes input CSS through synchronous plugins, converts `Root` + * to a CSS string and returns {@link Result#css}. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use {@link LazyResult#then}. + * + * @type {string} + * @see Result#css + */ + + }, { + key: 'css', + get: function get() { + return this.stringify().css; + } + + /** + * An alias for the `css` property. Use it with syntaxes + * that generate non-CSS output. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use {@link LazyResult#then}. + * + * @type {string} + * @see Result#content + */ + + }, { + key: 'content', + get: function get() { + return this.stringify().content; + } + + /** + * Processes input CSS through synchronous plugins + * and returns {@link Result#map}. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. This is why this method is only + * for debug purpose, you should always use {@link LazyResult#then}. + * + * @type {SourceMapGenerator} + * @see Result#map + */ + + }, { + key: 'map', + get: function get() { + return this.stringify().map; + } + + /** + * Processes input CSS through synchronous plugins + * and returns {@link Result#root}. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * This is why this method is only for debug purpose, + * you should always use {@link LazyResult#then}. + * + * @type {Root} + * @see Result#root + */ + + }, { + key: 'root', + get: function get() { + return this.sync().root; + } + + /** + * Processes input CSS through synchronous plugins + * and returns {@link Result#messages}. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * This is why this method is only for debug purpose, + * you should always use {@link LazyResult#then}. + * + * @type {Message[]} + * @see Result#messages + */ + + }, { + key: 'messages', + get: function get() { + return this.sync().messages; + } + }]); + + return LazyResult; +}(); + +exports.default = LazyResult; + +/** + * @callback onFulfilled + * @param {Result} result + */ + +/** + * @callback onRejected + * @param {Error} error + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/list.js": +/*!*********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/list.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +/** + * Contains helpers for safely splitting lists of CSS values, + * preserving parentheses and quotes. + * + * @example + * const list = postcss.list; + * + * @namespace list + */ +var list = { + split: function split(string, separators, last) { + var array = []; + var current = ''; + var split = false; + + var func = 0; + var quote = false; + var escape = false; + + for (var i = 0; i < string.length; i++) { + var letter = string[i]; + + if (quote) { + if (escape) { + escape = false; + } else if (letter === '\\') { + escape = true; + } else if (letter === quote) { + quote = false; + } + } else if (letter === '"' || letter === '\'') { + quote = letter; + } else if (letter === '(') { + func += 1; + } else if (letter === ')') { + if (func > 0) func -= 1; + } else if (func === 0) { + if (separators.indexOf(letter) !== -1) split = true; + } + + if (split) { + if (current !== '') array.push(current.trim()); + current = ''; + split = false; + } else { + current += letter; + } + } + + if (last || current !== '') array.push(current.trim()); + return array; + }, + + + /** + * Safely splits space-separated values (such as those for `background`, + * `border-radius`, and other shorthand properties). + * + * @param {string} string - space-separated values + * + * @return {string[]} split values + * + * @example + * postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] + */ + space: function space(string) { + var spaces = [' ', '\n', '\t']; + return list.split(string, spaces); + }, + + + /** + * Safely splits comma-separated values (such as those for `transition-*` + * and `background` properties). + * + * @param {string} string - comma-separated values + * + * @return {string[]} split values + * + * @example + * postcss.list.comma('black, linear-gradient(white, black)') + * //=> ['black', 'linear-gradient(white, black)'] + */ + comma: function comma(string) { + var comma = ','; + return list.split(string, [comma], true); + } +}; + +exports.default = list; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js": +/*!******************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) { + +exports.__esModule = true; + +var _sourceMap = __webpack_require__(/*! source-map */ "./node_modules/sanitize-html/node_modules/source-map/source-map.js"); + +var _sourceMap2 = _interopRequireDefault(_sourceMap); + +var _path = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js"); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var MapGenerator = function () { + function MapGenerator(stringify, root, opts) { + _classCallCheck(this, MapGenerator); + + this.stringify = stringify; + this.mapOpts = opts.map || {}; + this.root = root; + this.opts = opts; + } + + MapGenerator.prototype.isMap = function isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map; + } else { + return this.previous().length > 0; + } + }; + + MapGenerator.prototype.previous = function previous() { + var _this = this; + + if (!this.previousMaps) { + this.previousMaps = []; + this.root.walk(function (node) { + if (node.source && node.source.input.map) { + var map = node.source.input.map; + if (_this.previousMaps.indexOf(map) === -1) { + _this.previousMaps.push(map); + } + } + }); + } + + return this.previousMaps; + }; + + MapGenerator.prototype.isInline = function isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline; + } + + var annotation = this.mapOpts.annotation; + if (typeof annotation !== 'undefined' && annotation !== true) { + return false; + } + + if (this.previous().length) { + return this.previous().some(function (i) { + return i.inline; + }); + } else { + return true; + } + }; + + MapGenerator.prototype.isSourcesContent = function isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent; + } + if (this.previous().length) { + return this.previous().some(function (i) { + return i.withContent(); + }); + } else { + return true; + } + }; + + MapGenerator.prototype.clearAnnotation = function clearAnnotation() { + if (this.mapOpts.annotation === false) return; + + var node = void 0; + for (var i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i]; + if (node.type !== 'comment') continue; + if (node.text.indexOf('# sourceMappingURL=') === 0) { + this.root.removeChild(i); + } + } + }; + + MapGenerator.prototype.setSourcesContent = function setSourcesContent() { + var _this2 = this; + + var already = {}; + this.root.walk(function (node) { + if (node.source) { + var from = node.source.input.from; + if (from && !already[from]) { + already[from] = true; + var relative = _this2.relative(from); + _this2.map.setSourceContent(relative, node.source.input.css); + } + } + }); + }; + + MapGenerator.prototype.applyPrevMaps = function applyPrevMaps() { + for (var _iterator = this.previous(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var prev = _ref; + + var from = this.relative(prev.file); + var root = prev.root || _path2.default.dirname(prev.file); + var map = void 0; + + if (this.mapOpts.sourcesContent === false) { + map = new _sourceMap2.default.SourceMapConsumer(prev.text); + if (map.sourcesContent) { + map.sourcesContent = map.sourcesContent.map(function () { + return null; + }); + } + } else { + map = prev.consumer(); + } + + this.map.applySourceMap(map, from, this.relative(root)); + } + }; + + MapGenerator.prototype.isAnnotation = function isAnnotation() { + if (this.isInline()) { + return true; + } else if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation; + } else if (this.previous().length) { + return this.previous().some(function (i) { + return i.annotation; + }); + } else { + return true; + } + }; + + MapGenerator.prototype.toBase64 = function toBase64(str) { + if (Buffer) { + if (Buffer.from && Buffer.from !== Uint8Array.from) { + return Buffer.from(str).toString('base64'); + } else { + return new Buffer(str).toString('base64'); + } + } else { + return window.btoa(unescape(encodeURIComponent(str))); + } + }; + + MapGenerator.prototype.addAnnotation = function addAnnotation() { + var content = void 0; + + if (this.isInline()) { + + content = 'data:application/json;base64,' + this.toBase64(this.map.toString()); + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation; + } else { + content = this.outputFile() + '.map'; + } + + var eol = '\n'; + if (this.css.indexOf('\r\n') !== -1) eol = '\r\n'; + + this.css += eol + '/*# sourceMappingURL=' + content + ' */'; + }; + + MapGenerator.prototype.outputFile = function outputFile() { + if (this.opts.to) { + return this.relative(this.opts.to); + } else if (this.opts.from) { + return this.relative(this.opts.from); + } else { + return 'to.css'; + } + }; + + MapGenerator.prototype.generateMap = function generateMap() { + this.generateString(); + if (this.isSourcesContent()) this.setSourcesContent(); + if (this.previous().length > 0) this.applyPrevMaps(); + if (this.isAnnotation()) this.addAnnotation(); + + if (this.isInline()) { + return [this.css]; + } else { + return [this.css, this.map]; + } + }; + + MapGenerator.prototype.relative = function relative(file) { + if (file.indexOf('<') === 0) return file; + if (/^\w+:\/\//.test(file)) return file; + + var from = this.opts.to ? _path2.default.dirname(this.opts.to) : '.'; + + if (typeof this.mapOpts.annotation === 'string') { + from = _path2.default.dirname(_path2.default.resolve(from, this.mapOpts.annotation)); + } + + file = _path2.default.relative(from, file); + if (_path2.default.sep === '\\') { + return file.replace(/\\/g, '/'); + } else { + return file; + } + }; + + MapGenerator.prototype.sourcePath = function sourcePath(node) { + if (this.mapOpts.from) { + return this.mapOpts.from; + } else { + return this.relative(node.source.input.from); + } + }; + + MapGenerator.prototype.generateString = function generateString() { + var _this3 = this; + + this.css = ''; + this.map = new _sourceMap2.default.SourceMapGenerator({ file: this.outputFile() }); + + var line = 1; + var column = 1; + + var lines = void 0, + last = void 0; + this.stringify(this.root, function (str, node, type) { + _this3.css += str; + + if (node && type !== 'end') { + if (node.source && node.source.start) { + _this3.map.addMapping({ + source: _this3.sourcePath(node), + generated: { line: line, column: column - 1 }, + original: { + line: node.source.start.line, + column: node.source.start.column - 1 + } + }); + } else { + _this3.map.addMapping({ + source: '', + original: { line: 1, column: 0 }, + generated: { line: line, column: column - 1 } + }); + } + } + + lines = str.match(/\n/g); + if (lines) { + line += lines.length; + last = str.lastIndexOf('\n'); + column = str.length - last; + } else { + column += str.length; + } + + if (node && type !== 'start') { + if (node.source && node.source.end) { + _this3.map.addMapping({ + source: _this3.sourcePath(node), + generated: { line: line, column: column - 1 }, + original: { + line: node.source.end.line, + column: node.source.end.column + } + }); + } else { + _this3.map.addMapping({ + source: '', + original: { line: 1, column: 0 }, + generated: { line: line, column: column - 1 } + }); + } + } + }); + }; + + MapGenerator.prototype.generate = function generate() { + this.clearAnnotation(); + + if (this.isMap()) { + return this.generateMap(); + } else { + var result = ''; + this.stringify(this.root, function (i) { + result += i; + }); + return [result]; + } + }; + + return MapGenerator; +}(); + +exports.default = MapGenerator; +module.exports = exports['default']; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/node.js": +/*!*********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/node.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _cssSyntaxError = __webpack_require__(/*! ./css-syntax-error */ "./node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js"); + +var _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError); + +var _stringifier = __webpack_require__(/*! ./stringifier */ "./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js"); + +var _stringifier2 = _interopRequireDefault(_stringifier); + +var _stringify = __webpack_require__(/*! ./stringify */ "./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js"); + +var _stringify2 = _interopRequireDefault(_stringify); + +var _warnOnce = __webpack_require__(/*! ./warn-once */ "./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js"); + +var _warnOnce2 = _interopRequireDefault(_warnOnce); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var cloneNode = function cloneNode(obj, parent) { + var cloned = new obj.constructor(); + + for (var i in obj) { + if (!obj.hasOwnProperty(i)) continue; + var value = obj[i]; + var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent; + } else if (i === 'source') { + cloned[i] = value; + } else if (value instanceof Array) { + cloned[i] = value.map(function (j) { + return cloneNode(j, cloned); + }); + } else { + if (type === 'object' && value !== null) value = cloneNode(value); + cloned[i] = value; + } + } + + return cloned; +}; + +/** + * All node classes inherit the following common methods. + * + * @abstract + */ + +var Node = function () { + + /** + * @param {object} [defaults] - value for node properties + */ + function Node() { + var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, Node); + + this.raws = {}; + if ((typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) !== 'object' && typeof defaults !== 'undefined') { + throw new Error('PostCSS nodes constructor accepts object, not ' + JSON.stringify(defaults)); + } + for (var name in defaults) { + this[name] = defaults[name]; + } + } + + /** + * Returns a CssSyntaxError instance containing the original position + * of the node in the source, showing line and column numbers and also + * a small excerpt to facilitate debugging. + * + * If present, an input source map will be used to get the original position + * of the source, even from a previous compilation step + * (e.g., from Sass compilation). + * + * This method produces very useful error messages. + * + * @param {string} message - error description + * @param {object} [opts] - options + * @param {string} opts.plugin - plugin name that created this error. + * PostCSS will set it automatically. + * @param {string} opts.word - a word inside a node’s string that should + * be highlighted as the source of the error + * @param {number} opts.index - an index inside a node’s string that should + * be highlighted as the source of the error + * + * @return {CssSyntaxError} error object to throw it + * + * @example + * if ( !variables[name] ) { + * throw decl.error('Unknown variable ' + name, { word: name }); + * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black + * // color: $black + * // a + * // ^ + * // background: white + * } + */ + + + Node.prototype.error = function error(message) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (this.source) { + var pos = this.positionBy(opts); + return this.source.input.error(message, pos.line, pos.column, opts); + } else { + return new _cssSyntaxError2.default(message); + } + }; + + /** + * This method is provided as a convenience wrapper for {@link Result#warn}. + * + * @param {Result} result - the {@link Result} instance + * that will receive the warning + * @param {string} text - warning message + * @param {object} [opts] - options + * @param {string} opts.plugin - plugin name that created this warning. + * PostCSS will set it automatically. + * @param {string} opts.word - a word inside a node’s string that should + * be highlighted as the source of the warning + * @param {number} opts.index - an index inside a node’s string that should + * be highlighted as the source of the warning + * + * @return {Warning} created warning object + * + * @example + * const plugin = postcss.plugin('postcss-deprecated', () => { + * return (root, result) => { + * root.walkDecls('bad', decl => { + * decl.warn(result, 'Deprecated property bad'); + * }); + * }; + * }); + */ + + + Node.prototype.warn = function warn(result, text, opts) { + var data = { node: this }; + for (var i in opts) { + data[i] = opts[i]; + }return result.warn(text, data); + }; + + /** + * Removes the node from its parent and cleans the parent properties + * from the node and its children. + * + * @example + * if ( decl.prop.match(/^-webkit-/) ) { + * decl.remove(); + * } + * + * @return {Node} node to make calls chain + */ + + + Node.prototype.remove = function remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + }; + + /** + * Returns a CSS string representing the node. + * + * @param {stringifier|syntax} [stringifier] - a syntax to use + * in string generation + * + * @return {string} CSS string of this node + * + * @example + * postcss.rule({ selector: 'a' }).toString() //=> "a {}" + */ + + + Node.prototype.toString = function toString() { + var stringifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _stringify2.default; + + if (stringifier.stringify) stringifier = stringifier.stringify; + var result = ''; + stringifier(this, function (i) { + result += i; + }); + return result; + }; + + /** + * Returns a clone of the node. + * + * The resulting cloned node and its (cloned) children will have + * a clean parent and code style properties. + * + * @param {object} [overrides] - new properties to override in the clone. + * + * @example + * const cloned = decl.clone({ prop: '-moz-' + decl.prop }); + * cloned.raws.before //=> undefined + * cloned.parent //=> undefined + * cloned.toString() //=> -moz-transform: scale(0) + * + * @return {Node} clone of the node + */ + + + Node.prototype.clone = function clone() { + var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var cloned = cloneNode(this); + for (var name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + }; + + /** + * Shortcut to clone the node and insert the resulting cloned node + * before the current node. + * + * @param {object} [overrides] - new properties to override in the clone. + * + * @example + * decl.cloneBefore({ prop: '-moz-' + decl.prop }); + * + * @return {Node} - new node + */ + + + Node.prototype.cloneBefore = function cloneBefore() { + var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var cloned = this.clone(overrides); + this.parent.insertBefore(this, cloned); + return cloned; + }; + + /** + * Shortcut to clone the node and insert the resulting cloned node + * after the current node. + * + * @param {object} [overrides] - new properties to override in the clone. + * + * @return {Node} - new node + */ + + + Node.prototype.cloneAfter = function cloneAfter() { + var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var cloned = this.clone(overrides); + this.parent.insertAfter(this, cloned); + return cloned; + }; + + /** + * Inserts node(s) before the current node and removes the current node. + * + * @param {...Node} nodes - node(s) to replace current one + * + * @example + * if ( atrule.name == 'mixin' ) { + * atrule.replaceWith(mixinRules[atrule.params]); + * } + * + * @return {Node} current node to methods chain + */ + + + Node.prototype.replaceWith = function replaceWith() { + if (this.parent) { + for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) { + nodes[_key] = arguments[_key]; + } + + for (var _iterator = nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var node = _ref; + + this.parent.insertBefore(this, node); + } + + this.remove(); + } + + return this; + }; + + Node.prototype.moveTo = function moveTo(newParent) { + (0, _warnOnce2.default)('Node#moveTo was deprecated. Use Container#append.'); + this.cleanRaws(this.root() === newParent.root()); + this.remove(); + newParent.append(this); + return this; + }; + + Node.prototype.moveBefore = function moveBefore(otherNode) { + (0, _warnOnce2.default)('Node#moveBefore was deprecated. Use Node#before.'); + this.cleanRaws(this.root() === otherNode.root()); + this.remove(); + otherNode.parent.insertBefore(otherNode, this); + return this; + }; + + Node.prototype.moveAfter = function moveAfter(otherNode) { + (0, _warnOnce2.default)('Node#moveAfter was deprecated. Use Node#after.'); + this.cleanRaws(this.root() === otherNode.root()); + this.remove(); + otherNode.parent.insertAfter(otherNode, this); + return this; + }; + + /** + * Returns the next child of the node’s parent. + * Returns `undefined` if the current node is the last child. + * + * @return {Node|undefined} next node + * + * @example + * if ( comment.text === 'delete next' ) { + * const next = comment.next(); + * if ( next ) { + * next.remove(); + * } + * } + */ + + + Node.prototype.next = function next() { + if (!this.parent) return undefined; + var index = this.parent.index(this); + return this.parent.nodes[index + 1]; + }; + + /** + * Returns the previous child of the node’s parent. + * Returns `undefined` if the current node is the first child. + * + * @return {Node|undefined} previous node + * + * @example + * const annotation = decl.prev(); + * if ( annotation.type == 'comment' ) { + * readAnnotation(annotation.text); + * } + */ + + + Node.prototype.prev = function prev() { + if (!this.parent) return undefined; + var index = this.parent.index(this); + return this.parent.nodes[index - 1]; + }; + + /** + * Insert new node before current node to current node’s parent. + * + * Just alias for `node.parent.insertBefore(node, add)`. + * + * @param {Node|object|string|Node[]} add - new node + * + * @return {Node} this node for methods chain. + * + * @example + * decl.before('content: ""'); + */ + + + Node.prototype.before = function before(add) { + this.parent.insertBefore(this, add); + return this; + }; + + /** + * Insert new node after current node to current node’s parent. + * + * Just alias for `node.parent.insertAfter(node, add)`. + * + * @param {Node|object|string|Node[]} add - new node + * + * @return {Node} this node for methods chain. + * + * @example + * decl.after('color: black'); + */ + + + Node.prototype.after = function after(add) { + this.parent.insertAfter(this, add); + return this; + }; + + Node.prototype.toJSON = function toJSON() { + var fixed = {}; + + for (var name in this) { + if (!this.hasOwnProperty(name)) continue; + if (name === 'parent') continue; + var value = this[name]; + + if (value instanceof Array) { + fixed[name] = value.map(function (i) { + if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && i.toJSON) { + return i.toJSON(); + } else { + return i; + } + }); + } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.toJSON) { + fixed[name] = value.toJSON(); + } else { + fixed[name] = value; + } + } + + return fixed; + }; + + /** + * Returns a {@link Node#raws} value. If the node is missing + * the code style property (because the node was manually built or cloned), + * PostCSS will try to autodetect the code style property by looking + * at other nodes in the tree. + * + * @param {string} prop - name of code style property + * @param {string} [defaultType] - name of default value, it can be missed + * if the value is the same as prop + * + * @example + * const root = postcss.parse('a { background: white }'); + * root.nodes[0].append({ prop: 'color', value: 'black' }); + * root.nodes[0].nodes[1].raws.before //=> undefined + * root.nodes[0].nodes[1].raw('before') //=> ' ' + * + * @return {string} code style value + */ + + + Node.prototype.raw = function raw(prop, defaultType) { + var str = new _stringifier2.default(); + return str.raw(this, prop, defaultType); + }; + + /** + * Finds the Root instance of the node’s tree. + * + * @example + * root.nodes[0].nodes[0].root() === root + * + * @return {Root} root parent + */ + + + Node.prototype.root = function root() { + var result = this; + while (result.parent) { + result = result.parent; + }return result; + }; + + Node.prototype.cleanRaws = function cleanRaws(keepBetween) { + delete this.raws.before; + delete this.raws.after; + if (!keepBetween) delete this.raws.between; + }; + + Node.prototype.positionInside = function positionInside(index) { + var string = this.toString(); + var column = this.source.start.column; + var line = this.source.start.line; + + for (var i = 0; i < index; i++) { + if (string[i] === '\n') { + column = 1; + line += 1; + } else { + column += 1; + } + } + + return { line: line, column: column }; + }; + + Node.prototype.positionBy = function positionBy(opts) { + var pos = this.source.start; + if (opts.index) { + pos = this.positionInside(opts.index); + } else if (opts.word) { + var index = this.toString().indexOf(opts.word); + if (index !== -1) pos = this.positionInside(index); + } + return pos; + }; + + /** + * @memberof Node# + * @member {string} type - String representing the node’s type. + * Possible values are `root`, `atrule`, `rule`, + * `decl`, or `comment`. + * + * @example + * postcss.decl({ prop: 'color', value: 'black' }).type //=> 'decl' + */ + + /** + * @memberof Node# + * @member {Container} parent - the node’s parent node. + * + * @example + * root.nodes[0].parent == root; + */ + + /** + * @memberof Node# + * @member {source} source - the input source of the node + * + * The property is used in source map generation. + * + * If you create a node manually (e.g., with `postcss.decl()`), + * that node will not have a `source` property and will be absent + * from the source map. For this reason, the plugin developer should + * consider cloning nodes to create new ones (in which case the new node’s + * source will reference the original, cloned node) or setting + * the `source` property manually. + * + * ```js + * // Bad + * const prefixed = postcss.decl({ + * prop: '-moz-' + decl.prop, + * value: decl.value + * }); + * + * // Good + * const prefixed = decl.clone({ prop: '-moz-' + decl.prop }); + * ``` + * + * ```js + * if ( atrule.name == 'add-link' ) { + * const rule = postcss.rule({ selector: 'a', source: atrule.source }); + * atrule.parent.insertBefore(atrule, rule); + * } + * ``` + * + * @example + * decl.source.input.from //=> '/home/ai/a.sass' + * decl.source.start //=> { line: 10, column: 2 } + * decl.source.end //=> { line: 10, column: 12 } + */ + + /** + * @memberof Node# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains true if the last child has + * an (optional) semicolon. + * * `afterName`: the space between the at-rule name and its parameters. + * * `left`: the space symbols between `/*` and the comment’s text. + * * `right`: the space symbols between the comment’s text + * and */. + * * `important`: the content of the important statement, + * if it is not just `!important`. + * + * PostCSS cleans selectors, declaration values and at-rule parameters + * from comments and extra spaces, but it stores origin content in raws + * properties. As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * @example + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + */ + + return Node; +}(); + +exports.default = Node; + +/** + * @typedef {object} position + * @property {number} line - source line in file + * @property {number} column - source column in file + */ + +/** + * @typedef {object} source + * @property {Input} input - {@link Input} with input file + * @property {position} start - The starting position of the node’s source + * @property {position} end - The ending position of the node’s source + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/parse.js": +/*!**********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/parse.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = parse; + +var _parser = __webpack_require__(/*! ./parser */ "./node_modules/sanitize-html/node_modules/postcss/lib/parser.js"); + +var _parser2 = _interopRequireDefault(_parser); + +var _input = __webpack_require__(/*! ./input */ "./node_modules/sanitize-html/node_modules/postcss/lib/input.js"); + +var _input2 = _interopRequireDefault(_input); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parse(css, opts) { + if (opts && opts.safe) { + throw new Error('Option safe was removed. ' + 'Use parser: require("postcss-safe-parser")'); + } + + var input = new _input2.default(css, opts); + var parser = new _parser2.default(input); + try { + parser.parse(); + } catch (e) { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += '\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser'; + } else if (/\.sass/i.test(opts.from)) { + e.message += '\nYou tried to parse Sass with ' + 'the standard CSS parser; ' + 'try again with the postcss-sass parser'; + } else if (/\.less$/i.test(opts.from)) { + e.message += '\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser'; + } + } + throw e; + } + + return parser.root; +} +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/parser.js": +/*!***********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/parser.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _declaration = __webpack_require__(/*! ./declaration */ "./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js"); + +var _declaration2 = _interopRequireDefault(_declaration); + +var _tokenize = __webpack_require__(/*! ./tokenize */ "./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js"); + +var _tokenize2 = _interopRequireDefault(_tokenize); + +var _comment = __webpack_require__(/*! ./comment */ "./node_modules/sanitize-html/node_modules/postcss/lib/comment.js"); + +var _comment2 = _interopRequireDefault(_comment); + +var _atRule = __webpack_require__(/*! ./at-rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js"); + +var _atRule2 = _interopRequireDefault(_atRule); + +var _root = __webpack_require__(/*! ./root */ "./node_modules/sanitize-html/node_modules/postcss/lib/root.js"); + +var _root2 = _interopRequireDefault(_root); + +var _rule = __webpack_require__(/*! ./rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/rule.js"); + +var _rule2 = _interopRequireDefault(_rule); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Parser = function () { + function Parser(input) { + _classCallCheck(this, Parser); + + this.input = input; + + this.root = new _root2.default(); + this.current = this.root; + this.spaces = ''; + this.semicolon = false; + + this.createTokenizer(); + this.root.source = { input: input, start: { line: 1, column: 1 } }; + } + + Parser.prototype.createTokenizer = function createTokenizer() { + this.tokenizer = (0, _tokenize2.default)(this.input); + }; + + Parser.prototype.parse = function parse() { + var token = void 0; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + + switch (token[0]) { + + case 'space': + this.spaces += token[1]; + break; + + case ';': + this.freeSemicolon(token); + break; + + case '}': + this.end(token); + break; + + case 'comment': + this.comment(token); + break; + + case 'at-word': + this.atrule(token); + break; + + case '{': + this.emptyRule(token); + break; + + default: + this.other(token); + break; + } + } + this.endFile(); + }; + + Parser.prototype.comment = function comment(token) { + var node = new _comment2.default(); + this.init(node, token[2], token[3]); + node.source.end = { line: token[4], column: token[5] }; + + var text = token[1].slice(2, -2); + if (/^\s*$/.test(text)) { + node.text = ''; + node.raws.left = text; + node.raws.right = ''; + } else { + var match = text.match(/^(\s*)([^]*[^\s])(\s*)$/); + node.text = match[2]; + node.raws.left = match[1]; + node.raws.right = match[3]; + } + }; + + Parser.prototype.emptyRule = function emptyRule(token) { + var node = new _rule2.default(); + this.init(node, token[2], token[3]); + node.selector = ''; + node.raws.between = ''; + this.current = node; + }; + + Parser.prototype.other = function other(start) { + var end = false; + var type = null; + var colon = false; + var bracket = null; + var brackets = []; + + var tokens = []; + var token = start; + while (token) { + type = token[0]; + tokens.push(token); + + if (type === '(' || type === '[') { + if (!bracket) bracket = token; + brackets.push(type === '(' ? ')' : ']'); + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens); + return; + } else { + break; + } + } else if (type === '{') { + this.rule(tokens); + return; + } else if (type === '}') { + this.tokenizer.back(tokens.pop()); + end = true; + break; + } else if (type === ':') { + colon = true; + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop(); + if (brackets.length === 0) bracket = null; + } + + token = this.tokenizer.nextToken(); + } + + if (this.tokenizer.endOfFile()) end = true; + if (brackets.length > 0) this.unclosedBracket(bracket); + + if (end && colon) { + while (tokens.length) { + token = tokens[tokens.length - 1][0]; + if (token !== 'space' && token !== 'comment') break; + this.tokenizer.back(tokens.pop()); + } + this.decl(tokens); + return; + } else { + this.unknownWord(tokens); + } + }; + + Parser.prototype.rule = function rule(tokens) { + tokens.pop(); + + var node = new _rule2.default(); + this.init(node, tokens[0][2], tokens[0][3]); + + node.raws.between = this.spacesAndCommentsFromEnd(tokens); + this.raw(node, 'selector', tokens); + this.current = node; + }; + + Parser.prototype.decl = function decl(tokens) { + var node = new _declaration2.default(); + this.init(node); + + var last = tokens[tokens.length - 1]; + if (last[0] === ';') { + this.semicolon = true; + tokens.pop(); + } + if (last[4]) { + node.source.end = { line: last[4], column: last[5] }; + } else { + node.source.end = { line: last[2], column: last[3] }; + } + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens); + node.raws.before += tokens.shift()[1]; + } + node.source.start = { line: tokens[0][2], column: tokens[0][3] }; + + node.prop = ''; + while (tokens.length) { + var type = tokens[0][0]; + if (type === ':' || type === 'space' || type === 'comment') { + break; + } + node.prop += tokens.shift()[1]; + } + + node.raws.between = ''; + + var token = void 0; + while (tokens.length) { + token = tokens.shift(); + + if (token[0] === ':') { + node.raws.between += token[1]; + break; + } else { + node.raws.between += token[1]; + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0]; + node.prop = node.prop.slice(1); + } + node.raws.between += this.spacesAndCommentsFromStart(tokens); + this.precheckMissedSemicolon(tokens); + + for (var i = tokens.length - 1; i > 0; i--) { + token = tokens[i]; + if (token[1].toLowerCase() === '!important') { + node.important = true; + var string = this.stringFrom(tokens, i); + string = this.spacesFromEnd(tokens) + string; + if (string !== ' !important') node.raws.important = string; + break; + } else if (token[1].toLowerCase() === 'important') { + var cache = tokens.slice(0); + var str = ''; + for (var j = i; j > 0; j--) { + var _type = cache[j][0]; + if (str.trim().indexOf('!') === 0 && _type !== 'space') { + break; + } + str = cache.pop()[1] + str; + } + if (str.trim().indexOf('!') === 0) { + node.important = true; + node.raws.important = str; + tokens = cache; + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break; + } + } + + this.raw(node, 'value', tokens); + + if (node.value.indexOf(':') !== -1) this.checkMissedSemicolon(tokens); + }; + + Parser.prototype.atrule = function atrule(token) { + var node = new _atRule2.default(); + node.name = token[1].slice(1); + if (node.name === '') { + this.unnamedAtrule(node, token); + } + this.init(node, token[2], token[3]); + + var prev = void 0; + var shift = void 0; + var last = false; + var open = false; + var params = []; + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + + if (token[0] === ';') { + node.source.end = { line: token[2], column: token[3] }; + this.semicolon = true; + break; + } else if (token[0] === '{') { + open = true; + break; + } else if (token[0] === '}') { + if (params.length > 0) { + shift = params.length - 1; + prev = params[shift]; + while (prev && prev[0] === 'space') { + prev = params[--shift]; + } + if (prev) { + node.source.end = { line: prev[4], column: prev[5] }; + } + } + this.end(token); + break; + } else { + params.push(token); + } + + if (this.tokenizer.endOfFile()) { + last = true; + break; + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params); + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params); + this.raw(node, 'params', params); + if (last) { + token = params[params.length - 1]; + node.source.end = { line: token[4], column: token[5] }; + this.spaces = node.raws.between; + node.raws.between = ''; + } + } else { + node.raws.afterName = ''; + node.params = ''; + } + + if (open) { + node.nodes = []; + this.current = node; + } + }; + + Parser.prototype.end = function end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.semicolon = false; + + this.current.raws.after = (this.current.raws.after || '') + this.spaces; + this.spaces = ''; + + if (this.current.parent) { + this.current.source.end = { line: token[2], column: token[3] }; + this.current = this.current.parent; + } else { + this.unexpectedClose(token); + } + }; + + Parser.prototype.endFile = function endFile() { + if (this.current.parent) this.unclosedBlock(); + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces; + }; + + Parser.prototype.freeSemicolon = function freeSemicolon(token) { + this.spaces += token[1]; + if (this.current.nodes) { + var prev = this.current.nodes[this.current.nodes.length - 1]; + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces; + this.spaces = ''; + } + } + }; + + // Helpers + + Parser.prototype.init = function init(node, line, column) { + this.current.push(node); + + node.source = { start: { line: line, column: column }, input: this.input }; + node.raws.before = this.spaces; + this.spaces = ''; + if (node.type !== 'comment') this.semicolon = false; + }; + + Parser.prototype.raw = function raw(node, prop, tokens) { + var token = void 0, + type = void 0; + var length = tokens.length; + var value = ''; + var clean = true; + var next = void 0, + prev = void 0; + var pattern = /^([.|#])?([\w])+/i; + + for (var i = 0; i < length; i += 1) { + token = tokens[i]; + type = token[0]; + + if (type === 'comment' && node.type === 'rule') { + prev = tokens[i - 1]; + next = tokens[i + 1]; + + if (prev[0] !== 'space' && next[0] !== 'space' && pattern.test(prev[1]) && pattern.test(next[1])) { + value += token[1]; + } else { + clean = false; + } + + continue; + } + + if (type === 'comment' || type === 'space' && i === length - 1) { + clean = false; + } else { + value += token[1]; + } + } + if (!clean) { + var raw = tokens.reduce(function (all, i) { + return all + i[1]; + }, ''); + node.raws[prop] = { value: value, raw: raw }; + } + node[prop] = value; + }; + + Parser.prototype.spacesAndCommentsFromEnd = function spacesAndCommentsFromEnd(tokens) { + var lastTokenType = void 0; + var spaces = ''; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + }; + + Parser.prototype.spacesAndCommentsFromStart = function spacesAndCommentsFromStart(tokens) { + var next = void 0; + var spaces = ''; + while (tokens.length) { + next = tokens[0][0]; + if (next !== 'space' && next !== 'comment') break; + spaces += tokens.shift()[1]; + } + return spaces; + }; + + Parser.prototype.spacesFromEnd = function spacesFromEnd(tokens) { + var lastTokenType = void 0; + var spaces = ''; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== 'space') break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + }; + + Parser.prototype.stringFrom = function stringFrom(tokens, from) { + var result = ''; + for (var i = from; i < tokens.length; i++) { + result += tokens[i][1]; + } + tokens.splice(from, tokens.length - from); + return result; + }; + + Parser.prototype.colon = function colon(tokens) { + var brackets = 0; + var token = void 0, + type = void 0, + prev = void 0; + for (var i = 0; i < tokens.length; i++) { + token = tokens[i]; + type = token[0]; + + if (type === '(') { + brackets += 1; + } else if (type === ')') { + brackets -= 1; + } else if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token); + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue; + } else { + return i; + } + } + + prev = token; + } + return false; + }; + + // Errors + + Parser.prototype.unclosedBracket = function unclosedBracket(bracket) { + throw this.input.error('Unclosed bracket', bracket[2], bracket[3]); + }; + + Parser.prototype.unknownWord = function unknownWord(tokens) { + throw this.input.error('Unknown word', tokens[0][2], tokens[0][3]); + }; + + Parser.prototype.unexpectedClose = function unexpectedClose(token) { + throw this.input.error('Unexpected }', token[2], token[3]); + }; + + Parser.prototype.unclosedBlock = function unclosedBlock() { + var pos = this.current.source.start; + throw this.input.error('Unclosed block', pos.line, pos.column); + }; + + Parser.prototype.doubleColon = function doubleColon(token) { + throw this.input.error('Double colon', token[2], token[3]); + }; + + Parser.prototype.unnamedAtrule = function unnamedAtrule(node, token) { + throw this.input.error('At-rule without name', token[2], token[3]); + }; + + Parser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) { + // Hook for Safe Parser + tokens; + }; + + Parser.prototype.checkMissedSemicolon = function checkMissedSemicolon(tokens) { + var colon = this.colon(tokens); + if (colon === false) return; + + var founded = 0; + var token = void 0; + for (var j = colon - 1; j >= 0; j--) { + token = tokens[j]; + if (token[0] !== 'space') { + founded += 1; + if (founded === 2) break; + } + } + throw this.input.error('Missed semicolon', token[2], token[3]); + }; + + return Parser; +}(); + +exports.default = Parser; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/postcss.js": +/*!************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/postcss.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _declaration = __webpack_require__(/*! ./declaration */ "./node_modules/sanitize-html/node_modules/postcss/lib/declaration.js"); + +var _declaration2 = _interopRequireDefault(_declaration); + +var _processor = __webpack_require__(/*! ./processor */ "./node_modules/sanitize-html/node_modules/postcss/lib/processor.js"); + +var _processor2 = _interopRequireDefault(_processor); + +var _stringify = __webpack_require__(/*! ./stringify */ "./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js"); + +var _stringify2 = _interopRequireDefault(_stringify); + +var _comment = __webpack_require__(/*! ./comment */ "./node_modules/sanitize-html/node_modules/postcss/lib/comment.js"); + +var _comment2 = _interopRequireDefault(_comment); + +var _atRule = __webpack_require__(/*! ./at-rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js"); + +var _atRule2 = _interopRequireDefault(_atRule); + +var _vendor = __webpack_require__(/*! ./vendor */ "./node_modules/sanitize-html/node_modules/postcss/lib/vendor.js"); + +var _vendor2 = _interopRequireDefault(_vendor); + +var _parse = __webpack_require__(/*! ./parse */ "./node_modules/sanitize-html/node_modules/postcss/lib/parse.js"); + +var _parse2 = _interopRequireDefault(_parse); + +var _list = __webpack_require__(/*! ./list */ "./node_modules/sanitize-html/node_modules/postcss/lib/list.js"); + +var _list2 = _interopRequireDefault(_list); + +var _rule = __webpack_require__(/*! ./rule */ "./node_modules/sanitize-html/node_modules/postcss/lib/rule.js"); + +var _rule2 = _interopRequireDefault(_rule); + +var _root = __webpack_require__(/*! ./root */ "./node_modules/sanitize-html/node_modules/postcss/lib/root.js"); + +var _root2 = _interopRequireDefault(_root); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Create a new {@link Processor} instance that will apply `plugins` + * as CSS processors. + * + * @param {Array.|Processor} plugins - PostCSS + * plugins. See {@link Processor#use} for plugin format. + * + * @return {Processor} Processor to process multiple CSS + * + * @example + * import postcss from 'postcss'; + * + * postcss(plugins).process(css, { from, to }).then(result => { + * console.log(result.css); + * }); + * + * @namespace postcss + */ +function postcss() { + for (var _len = arguments.length, plugins = Array(_len), _key = 0; _key < _len; _key++) { + plugins[_key] = arguments[_key]; + } + + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0]; + } + return new _processor2.default(plugins); +} + +/** + * Creates a PostCSS plugin with a standard API. + * + * The newly-wrapped function will provide both the name and PostCSS + * version of the plugin. + * + * ```js + * const processor = postcss([replace]); + * processor.plugins[0].postcssPlugin //=> 'postcss-replace' + * processor.plugins[0].postcssVersion //=> '5.1.0' + * ``` + * + * The plugin function receives 2 arguments: {@link Root} + * and {@link Result} instance. The function should mutate the provided + * `Root` node. Alternatively, you can create a new `Root` node + * and override the `result.root` property. + * + * ```js + * const cleaner = postcss.plugin('postcss-cleaner', () => { + * return (root, result) => { + * result.root = postcss.root(); + * }; + * }); + * ``` + * + * As a convenience, plugins also expose a `process` method so that you can use + * them as standalone tools. + * + * ```js + * cleaner.process(css, processOpts, pluginOpts); + * // This is equivalent to: + * postcss([ cleaner(pluginOpts) ]).process(css, processOpts); + * ``` + * + * Asynchronous plugins should return a `Promise` instance. + * + * ```js + * postcss.plugin('postcss-import', () => { + * return (root, result) => { + * return new Promise( (resolve, reject) => { + * fs.readFile('base.css', (base) => { + * root.prepend(base); + * resolve(); + * }); + * }); + * }; + * }); + * ``` + * + * Add warnings using the {@link Node#warn} method. + * Send data to other plugins using the {@link Result#messages} array. + * + * ```js + * postcss.plugin('postcss-caniuse-test', () => { + * return (root, result) => { + * root.walkDecls(decl => { + * if ( !caniuse.support(decl.prop) ) { + * decl.warn(result, 'Some browsers do not support ' + decl.prop); + * } + * }); + * }; + * }); + * ``` + * + * @param {string} name - PostCSS plugin name. Same as in `name` + * property in `package.json`. It will be saved + * in `plugin.postcssPlugin` property. + * @param {function} initializer - will receive plugin options + * and should return {@link pluginFunction} + * + * @return {Plugin} PostCSS plugin + */ +postcss.plugin = function plugin(name, initializer) { + var creator = function creator() { + var transformer = initializer.apply(undefined, arguments); + transformer.postcssPlugin = name; + transformer.postcssVersion = new _processor2.default().version; + return transformer; + }; + + var cache = void 0; + Object.defineProperty(creator, 'postcss', { + get: function get() { + if (!cache) cache = creator(); + return cache; + } + }); + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts); + }; + + return creator; +}; + +/** + * Default function to convert a node tree into a CSS string. + * + * @param {Node} node - start node for stringifing. Usually {@link Root}. + * @param {builder} builder - function to concatenate CSS from node’s parts + * or generate string and source map + * + * @return {void} + * + * @function + */ +postcss.stringify = _stringify2.default; + +/** + * Parses source css and returns a new {@link Root} node, + * which contains the source CSS nodes. + * + * @param {string|toString} css - string with input CSS or any object + * with toString() method, like a Buffer + * @param {processOptions} [opts] - options with only `from` and `map` keys + * + * @return {Root} PostCSS AST + * + * @example + * // Simple CSS concatenation with source map support + * const root1 = postcss.parse(css1, { from: file1 }); + * const root2 = postcss.parse(css2, { from: file2 }); + * root1.append(root2).toResult().css; + * + * @function + */ +postcss.parse = _parse2.default; + +/** + * @member {vendor} - Contains the {@link vendor} module. + * + * @example + * postcss.vendor.unprefixed('-moz-tab') //=> ['tab'] + */ +postcss.vendor = _vendor2.default; + +/** + * @member {list} - Contains the {@link list} module. + * + * @example + * postcss.list.space('5px calc(10% + 5px)') //=> ['5px', 'calc(10% + 5px)'] + */ +postcss.list = _list2.default; + +/** + * Creates a new {@link Comment} node. + * + * @param {object} [defaults] - properties for the new node. + * + * @return {Comment} new Comment node + * + * @example + * postcss.comment({ text: 'test' }) + */ +postcss.comment = function (defaults) { + return new _comment2.default(defaults); +}; + +/** + * Creates a new {@link AtRule} node. + * + * @param {object} [defaults] - properties for the new node. + * + * @return {AtRule} new AtRule node + * + * @example + * postcss.atRule({ name: 'charset' }).toString() //=> "@charset" + */ +postcss.atRule = function (defaults) { + return new _atRule2.default(defaults); +}; + +/** + * Creates a new {@link Declaration} node. + * + * @param {object} [defaults] - properties for the new node. + * + * @return {Declaration} new Declaration node + * + * @example + * postcss.decl({ prop: 'color', value: 'red' }).toString() //=> "color: red" + */ +postcss.decl = function (defaults) { + return new _declaration2.default(defaults); +}; + +/** + * Creates a new {@link Rule} node. + * + * @param {object} [defaults] - properties for the new node. + * + * @return {Rule} new Rule node + * + * @example + * postcss.rule({ selector: 'a' }).toString() //=> "a {\n}" + */ +postcss.rule = function (defaults) { + return new _rule2.default(defaults); +}; + +/** + * Creates a new {@link Root} node. + * + * @param {object} [defaults] - properties for the new node. + * + * @return {Root} new Root node + * + * @example + * postcss.root({ after: '\n' }).toString() //=> "\n" + */ +postcss.root = function (defaults) { + return new _root2.default(defaults); +}; + +exports.default = postcss; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) { + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _sourceMap = __webpack_require__(/*! source-map */ "./node_modules/sanitize-html/node_modules/source-map/source-map.js"); + +var _sourceMap2 = _interopRequireDefault(_sourceMap); + +var _path = __webpack_require__(/*! path */ "./node_modules/path-browserify/index.js"); + +var _path2 = _interopRequireDefault(_path); + +var _fs = __webpack_require__(/*! fs */ 6); + +var _fs2 = _interopRequireDefault(_fs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function fromBase64(str) { + if (Buffer) { + if (Buffer.from && Buffer.from !== Uint8Array.from) { + return Buffer.from(str, 'base64').toString(); + } else { + return new Buffer(str, 'base64').toString(); + } + } else { + return window.atob(str); + } +} + +/** + * Source map information from input CSS. + * For example, source map after Sass compiler. + * + * This class will automatically find source map in input CSS or in file system + * near input file (according `from` option). + * + * @example + * const root = postcss.parse(css, { from: 'a.sass.css' }); + * root.input.map //=> PreviousMap + */ + +var PreviousMap = function () { + + /** + * @param {string} css - input CSS source + * @param {processOptions} [opts] - {@link Processor#process} options + */ + function PreviousMap(css, opts) { + _classCallCheck(this, PreviousMap); + + this.loadAnnotation(css); + /** + * @member {boolean} - Was source map inlined by data-uri to input CSS. + */ + this.inline = this.startWith(this.annotation, 'data:'); + + var prev = opts.map ? opts.map.prev : undefined; + var text = this.loadMap(opts.from, prev); + if (text) this.text = text; + } + + /** + * Create a instance of `SourceMapGenerator` class + * from the `source-map` library to work with source map information. + * + * It is lazy method, so it will create object only on first call + * and then it will use cache. + * + * @return {SourceMapGenerator} object with source map information + */ + + + PreviousMap.prototype.consumer = function consumer() { + if (!this.consumerCache) { + this.consumerCache = new _sourceMap2.default.SourceMapConsumer(this.text); + } + return this.consumerCache; + }; + + /** + * Does source map contains `sourcesContent` with input source text. + * + * @return {boolean} Is `sourcesContent` present + */ + + + PreviousMap.prototype.withContent = function withContent() { + return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); + }; + + PreviousMap.prototype.startWith = function startWith(string, start) { + if (!string) return false; + return string.substr(0, start.length) === start; + }; + + PreviousMap.prototype.loadAnnotation = function loadAnnotation(css) { + var match = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//); + if (match) this.annotation = match[1].trim(); + }; + + PreviousMap.prototype.decodeInline = function decodeInline(text) { + // data:application/json;charset=utf-8;base64, + // data:application/json;charset=utf8;base64, + // data:application/json;base64, + var baseUri = /^data:application\/json;(?:charset=utf-?8;)?base64,/; + var uri = 'data:application/json,'; + + if (this.startWith(text, uri)) { + return decodeURIComponent(text.substr(uri.length)); + } else if (baseUri.test(text)) { + return fromBase64(text.substr(RegExp.lastMatch.length)); + } else { + var encoding = text.match(/data:application\/json;([^,]+),/)[1]; + throw new Error('Unsupported source map encoding ' + encoding); + } + }; + + PreviousMap.prototype.loadMap = function loadMap(file, prev) { + if (prev === false) return false; + + if (prev) { + if (typeof prev === 'string') { + return prev; + } else if (typeof prev === 'function') { + var prevPath = prev(file); + if (prevPath && _fs2.default.existsSync && _fs2.default.existsSync(prevPath)) { + return _fs2.default.readFileSync(prevPath, 'utf-8').toString().trim(); + } else { + throw new Error('Unable to load previous source map: ' + prevPath.toString()); + } + } else if (prev instanceof _sourceMap2.default.SourceMapConsumer) { + return _sourceMap2.default.SourceMapGenerator.fromSourceMap(prev).toString(); + } else if (prev instanceof _sourceMap2.default.SourceMapGenerator) { + return prev.toString(); + } else if (this.isMap(prev)) { + return JSON.stringify(prev); + } else { + throw new Error('Unsupported previous source map format: ' + prev.toString()); + } + } else if (this.inline) { + return this.decodeInline(this.annotation); + } else if (this.annotation) { + var map = this.annotation; + if (file) map = _path2.default.join(_path2.default.dirname(file), map); + + this.root = _path2.default.dirname(map); + if (_fs2.default.existsSync && _fs2.default.existsSync(map)) { + return _fs2.default.readFileSync(map, 'utf-8').toString().trim(); + } else { + return false; + } + } + }; + + PreviousMap.prototype.isMap = function isMap(map) { + if ((typeof map === 'undefined' ? 'undefined' : _typeof(map)) !== 'object') return false; + return typeof map.mappings === 'string' || typeof map._mappings === 'string'; + }; + + return PreviousMap; +}(); + +exports.default = PreviousMap; +module.exports = exports['default']; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer)) + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/processor.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/processor.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _lazyResult = __webpack_require__(/*! ./lazy-result */ "./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js"); + +var _lazyResult2 = _interopRequireDefault(_lazyResult); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Contains plugins to process CSS. Create one `Processor` instance, + * initialize its plugins, and then use that instance on numerous CSS files. + * + * @example + * const processor = postcss([autoprefixer, precss]); + * processor.process(css1).then(result => console.log(result.css)); + * processor.process(css2).then(result => console.log(result.css)); + */ +var Processor = function () { + + /** + * @param {Array.|Processor} plugins - PostCSS + * plugins. See {@link Processor#use} for plugin format. + */ + function Processor() { + var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + _classCallCheck(this, Processor); + + /** + * @member {string} - Current PostCSS version. + * + * @example + * if ( result.processor.version.split('.')[0] !== '6' ) { + * throw new Error('This plugin works only with PostCSS 6'); + * } + */ + this.version = '6.0.23'; + /** + * @member {pluginFunction[]} - Plugins added to this processor. + * + * @example + * const processor = postcss([autoprefixer, precss]); + * processor.plugins.length //=> 2 + */ + this.plugins = this.normalize(plugins); + } + + /** + * Adds a plugin to be used as a CSS processor. + * + * PostCSS plugin can be in 4 formats: + * * A plugin created by {@link postcss.plugin} method. + * * A function. PostCSS will pass the function a @{link Root} + * as the first argument and current {@link Result} instance + * as the second. + * * An object with a `postcss` method. PostCSS will use that method + * as described in #2. + * * Another {@link Processor} instance. PostCSS will copy plugins + * from that instance into this one. + * + * Plugins can also be added by passing them as arguments when creating + * a `postcss` instance (see [`postcss(plugins)`]). + * + * Asynchronous plugins should return a `Promise` instance. + * + * @param {Plugin|pluginFunction|Processor} plugin - PostCSS plugin + * or {@link Processor} + * with plugins + * + * @example + * const processor = postcss() + * .use(autoprefixer) + * .use(precss); + * + * @return {Processes} current processor to make methods chain + */ + + + Processor.prototype.use = function use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])); + return this; + }; + + /** + * Parses source CSS and returns a {@link LazyResult} Promise proxy. + * Because some plugins can be asynchronous it doesn’t make + * any transformations. Transformations will be applied + * in the {@link LazyResult} methods. + * + * @param {string|toString|Result} css - String with input CSS or + * any object with a `toString()` + * method, like a Buffer. + * Optionally, send a {@link Result} + * instance and the processor will + * take the {@link Root} from it. + * @param {processOptions} [opts] - options + * + * @return {LazyResult} Promise proxy + * + * @example + * processor.process(css, { from: 'a.css', to: 'a.out.css' }) + * .then(result => { + * console.log(result.css); + * }); + */ + + + Processor.prototype.process = function process(css) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + return new _lazyResult2.default(this, css, opts); + }; + + Processor.prototype.normalize = function normalize(plugins) { + var normalized = []; + for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var i = _ref; + + if (i.postcss) i = i.postcss; + + if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins); + } else if (typeof i === 'function') { + normalized.push(i); + } else if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && (i.parse || i.stringify)) { + throw new Error('PostCSS syntaxes cannot be used as plugins. ' + 'Instead, please use one of the ' + 'syntax/parser/stringifier options as ' + 'outlined in your PostCSS ' + 'runner documentation.'); + } else { + throw new Error(i + ' is not a PostCSS plugin'); + } + } + return normalized; + }; + + return Processor; +}(); + +exports.default = Processor; + +/** + * @callback builder + * @param {string} part - part of generated CSS connected to this node + * @param {Node} node - AST node + * @param {"start"|"end"} [type] - node’s part type + */ + +/** + * @callback parser + * + * @param {string|toString} css - string with input CSS or any object + * with toString() method, like a Buffer + * @param {processOptions} [opts] - options with only `from` and `map` keys + * + * @return {Root} PostCSS AST + */ + +/** + * @callback stringifier + * + * @param {Node} node - start node for stringifing. Usually {@link Root}. + * @param {builder} builder - function to concatenate CSS from node’s parts + * or generate string and source map + * + * @return {void} + */ + +/** + * @typedef {object} syntax + * @property {parser} parse - function to generate AST by string + * @property {stringifier} stringify - function to generate string by AST + */ + +/** + * @typedef {object} toString + * @property {function} toString + */ + +/** + * @callback pluginFunction + * @param {Root} root - parsed input CSS + * @param {Result} result - result to set warnings or check other plugins + */ + +/** + * @typedef {object} Plugin + * @property {function} postcss - PostCSS plugin function + */ + +/** + * @typedef {object} processOptions + * @property {string} from - the path of the CSS source file. + * You should always set `from`, + * because it is used in source map + * generation and syntax error messages. + * @property {string} to - the path where you’ll put the output + * CSS file. You should always set `to` + * to generate correct source maps. + * @property {parser} parser - function to generate AST by string + * @property {stringifier} stringifier - class to generate string by AST + * @property {syntax} syntax - object with `parse` and `stringify` + * @property {object} map - source map options + * @property {boolean} map.inline - does source map should + * be embedded in the output + * CSS as a base64-encoded + * comment + * @property {string|object|false|function} map.prev - source map content + * from a previous + * processing step + * (for example, Sass). + * PostCSS will try to find + * previous map + * automatically, so you + * could disable it by + * `false` value. + * @property {boolean} map.sourcesContent - does PostCSS should set + * the origin content to map + * @property {string|false} map.annotation - does PostCSS should set + * annotation comment to map + * @property {string} map.from - override `from` in map’s + * `sources` + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/result.js": +/*!***********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/result.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _warning = __webpack_require__(/*! ./warning */ "./node_modules/sanitize-html/node_modules/postcss/lib/warning.js"); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Provides the result of the PostCSS transformations. + * + * A Result instance is returned by {@link LazyResult#then} + * or {@link Root#toResult} methods. + * + * @example + * postcss([cssnext]).process(css).then(function (result) { + * console.log(result.css); + * }); + * + * @example + * var result2 = postcss.parse(css).toResult(); + */ +var Result = function () { + + /** + * @param {Processor} processor - processor used for this transformation. + * @param {Root} root - Root node after all transformations. + * @param {processOptions} opts - options from the {@link Processor#process} + * or {@link Root#toResult} + */ + function Result(processor, root, opts) { + _classCallCheck(this, Result); + + /** + * @member {Processor} - The Processor instance used + * for this transformation. + * + * @example + * for ( let plugin of result.processor.plugins) { + * if ( plugin.postcssPlugin === 'postcss-bad' ) { + * throw 'postcss-good is incompatible with postcss-bad'; + * } + * }); + */ + this.processor = processor; + /** + * @member {Message[]} - Contains messages from plugins + * (e.g., warnings or custom messages). + * Each message should have type + * and plugin properties. + * + * @example + * postcss.plugin('postcss-min-browser', () => { + * return (root, result) => { + * var browsers = detectMinBrowsersByCanIUse(root); + * result.messages.push({ + * type: 'min-browser', + * plugin: 'postcss-min-browser', + * browsers: browsers + * }); + * }; + * }); + */ + this.messages = []; + /** + * @member {Root} - Root node after all transformations. + * + * @example + * root.toResult().root == root; + */ + this.root = root; + /** + * @member {processOptions} - Options from the {@link Processor#process} + * or {@link Root#toResult} call + * that produced this Result instance. + * + * @example + * root.toResult(opts).opts == opts; + */ + this.opts = opts; + /** + * @member {string} - A CSS string representing of {@link Result#root}. + * + * @example + * postcss.parse('a{}').toResult().css //=> "a{}" + */ + this.css = undefined; + /** + * @member {SourceMapGenerator} - An instance of `SourceMapGenerator` + * class from the `source-map` library, + * representing changes + * to the {@link Result#root} instance. + * + * @example + * result.map.toJSON() //=> { version: 3, file: 'a.css', … } + * + * @example + * if ( result.map ) { + * fs.writeFileSync(result.opts.to + '.map', result.map.toString()); + * } + */ + this.map = undefined; + } + + /** + * Returns for @{link Result#css} content. + * + * @example + * result + '' === result.css + * + * @return {string} string representing of {@link Result#root} + */ + + + Result.prototype.toString = function toString() { + return this.css; + }; + + /** + * Creates an instance of {@link Warning} and adds it + * to {@link Result#messages}. + * + * @param {string} text - warning message + * @param {Object} [opts] - warning options + * @param {Node} opts.node - CSS node that caused the warning + * @param {string} opts.word - word in CSS source that caused the warning + * @param {number} opts.index - index in CSS node string that caused + * the warning + * @param {string} opts.plugin - name of the plugin that created + * this warning. {@link Result#warn} fills + * this property automatically. + * + * @return {Warning} created warning + */ + + + Result.prototype.warn = function warn(text) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin; + } + } + + var warning = new _warning2.default(text, opts); + this.messages.push(warning); + + return warning; + }; + + /** + * Returns warnings from plugins. Filters {@link Warning} instances + * from {@link Result#messages}. + * + * @example + * result.warnings().forEach(warn => { + * console.warn(warn.toString()); + * }); + * + * @return {Warning[]} warnings from plugins + */ + + + Result.prototype.warnings = function warnings() { + return this.messages.filter(function (i) { + return i.type === 'warning'; + }); + }; + + /** + * An alias for the {@link Result#css} property. + * Use it with syntaxes that generate non-CSS output. + * @type {string} + * + * @example + * result.css === result.content; + */ + + + _createClass(Result, [{ + key: 'content', + get: function get() { + return this.css; + } + }]); + + return Result; +}(); + +exports.default = Result; + +/** + * @typedef {object} Message + * @property {string} type - message type + * @property {string} plugin - source PostCSS plugin name + */ + +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/root.js": +/*!*********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/root.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _container = __webpack_require__(/*! ./container */ "./node_modules/sanitize-html/node_modules/postcss/lib/container.js"); + +var _container2 = _interopRequireDefault(_container); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Represents a CSS file and contains all its parsed nodes. + * + * @extends Container + * + * @example + * const root = postcss.parse('a{color:black} b{z-index:2}'); + * root.type //=> 'root' + * root.nodes.length //=> 2 + */ +var Root = function (_Container) { + _inherits(Root, _Container); + + function Root(defaults) { + _classCallCheck(this, Root); + + var _this = _possibleConstructorReturn(this, _Container.call(this, defaults)); + + _this.type = 'root'; + if (!_this.nodes) _this.nodes = []; + return _this; + } + + Root.prototype.removeChild = function removeChild(child, ignore) { + var index = this.index(child); + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before; + } + + return _Container.prototype.removeChild.call(this, child); + }; + + Root.prototype.normalize = function normalize(child, sample, type) { + var nodes = _Container.prototype.normalize.call(this, child); + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before; + } else { + delete sample.raws.before; + } + } else if (this.first !== sample) { + for (var _iterator = nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var node = _ref; + + node.raws.before = sample.raws.before; + } + } + } + + return nodes; + }; + + /** + * Returns a {@link Result} instance representing the root’s CSS. + * + * @param {processOptions} [opts] - options with only `to` and `map` keys + * + * @return {Result} result with current root’s CSS + * + * @example + * const root1 = postcss.parse(css1, { from: 'a.css' }); + * const root2 = postcss.parse(css2, { from: 'b.css' }); + * root1.append(root2); + * const result = root1.toResult({ to: 'all.css', map: true }); + */ + + + Root.prototype.toResult = function toResult() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var LazyResult = __webpack_require__(/*! ./lazy-result */ "./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js"); + var Processor = __webpack_require__(/*! ./processor */ "./node_modules/sanitize-html/node_modules/postcss/lib/processor.js"); + + var lazy = new LazyResult(new Processor(), this, opts); + return lazy.stringify(); + }; + + /** + * @memberof Root# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `after`: the space symbols after the last child to the end of file. + * * `semicolon`: is the last child has an (optional) semicolon. + * + * @example + * postcss.parse('a {}\n').raws //=> { after: '\n' } + * postcss.parse('a {}').raws //=> { after: '' } + */ + + return Root; +}(_container2.default); + +exports.default = Root; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/rule.js": +/*!*********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/rule.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _container = __webpack_require__(/*! ./container */ "./node_modules/sanitize-html/node_modules/postcss/lib/container.js"); + +var _container2 = _interopRequireDefault(_container); + +var _list = __webpack_require__(/*! ./list */ "./node_modules/sanitize-html/node_modules/postcss/lib/list.js"); + +var _list2 = _interopRequireDefault(_list); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Represents a CSS rule: a selector followed by a declaration block. + * + * @extends Container + * + * @example + * const root = postcss.parse('a{}'); + * const rule = root.first; + * rule.type //=> 'rule' + * rule.toString() //=> 'a{}' + */ +var Rule = function (_Container) { + _inherits(Rule, _Container); + + function Rule(defaults) { + _classCallCheck(this, Rule); + + var _this = _possibleConstructorReturn(this, _Container.call(this, defaults)); + + _this.type = 'rule'; + if (!_this.nodes) _this.nodes = []; + return _this; + } + + /** + * An array containing the rule’s individual selectors. + * Groups of selectors are split at commas. + * + * @type {string[]} + * + * @example + * const root = postcss.parse('a, b { }'); + * const rule = root.first; + * + * rule.selector //=> 'a, b' + * rule.selectors //=> ['a', 'b'] + * + * rule.selectors = ['a', 'strong']; + * rule.selector //=> 'a, strong' + */ + + + _createClass(Rule, [{ + key: 'selectors', + get: function get() { + return _list2.default.comma(this.selector); + }, + set: function set(values) { + var match = this.selector ? this.selector.match(/,\s*/) : null; + var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen'); + this.selector = values.join(sep); + } + + /** + * @memberof Rule# + * @member {string} selector - the rule’s full selector represented + * as a string + * + * @example + * const root = postcss.parse('a, b { }'); + * const rule = root.first; + * rule.selector //=> 'a, b' + */ + + /** + * @memberof Rule# + * @member {object} raws - Information to generate byte-to-byte equal + * node string as it was in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains `true` if the last child has + * an (optional) semicolon. + * * `ownSemicolon`: contains `true` if there is semicolon after rule. + * + * PostCSS cleans selectors from comments and extra spaces, + * but it stores origin content in raws properties. + * As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * @example + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '', between: ' ', after: '\n' } + */ + + }]); + + return Rule; +}(_container2.default); + +exports.default = Rule; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js": +/*!****************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var defaultRaw = { + colon: ': ', + indent: ' ', + beforeDecl: '\n', + beforeRule: '\n', + beforeOpen: ' ', + beforeClose: '\n', + beforeComment: '\n', + after: '\n', + emptyBody: '', + commentLeft: ' ', + commentRight: ' ' +}; + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1); +} + +var Stringifier = function () { + function Stringifier(builder) { + _classCallCheck(this, Stringifier); + + this.builder = builder; + } + + Stringifier.prototype.stringify = function stringify(node, semicolon) { + this[node.type](node, semicolon); + }; + + Stringifier.prototype.root = function root(node) { + this.body(node); + if (node.raws.after) this.builder(node.raws.after); + }; + + Stringifier.prototype.comment = function comment(node) { + var left = this.raw(node, 'left', 'commentLeft'); + var right = this.raw(node, 'right', 'commentRight'); + this.builder('/*' + left + node.text + right + '*/', node); + }; + + Stringifier.prototype.decl = function decl(node, semicolon) { + var between = this.raw(node, 'between', 'colon'); + var string = node.prop + between + this.rawValue(node, 'value'); + + if (node.important) { + string += node.raws.important || ' !important'; + } + + if (semicolon) string += ';'; + this.builder(string, node); + }; + + Stringifier.prototype.rule = function rule(node) { + this.block(node, this.rawValue(node, 'selector')); + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end'); + } + }; + + Stringifier.prototype.atrule = function atrule(node, semicolon) { + var name = '@' + node.name; + var params = node.params ? this.rawValue(node, 'params') : ''; + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName; + } else if (params) { + name += ' '; + } + + if (node.nodes) { + this.block(node, name + params); + } else { + var end = (node.raws.between || '') + (semicolon ? ';' : ''); + this.builder(name + params + end, node); + } + }; + + Stringifier.prototype.body = function body(node) { + var last = node.nodes.length - 1; + while (last > 0) { + if (node.nodes[last].type !== 'comment') break; + last -= 1; + } + + var semicolon = this.raw(node, 'semicolon'); + for (var i = 0; i < node.nodes.length; i++) { + var child = node.nodes[i]; + var before = this.raw(child, 'before'); + if (before) this.builder(before); + this.stringify(child, last !== i || semicolon); + } + }; + + Stringifier.prototype.block = function block(node, start) { + var between = this.raw(node, 'between', 'beforeOpen'); + this.builder(start + between + '{', node, 'start'); + + var after = void 0; + if (node.nodes && node.nodes.length) { + this.body(node); + after = this.raw(node, 'after'); + } else { + after = this.raw(node, 'after', 'emptyBody'); + } + + if (after) this.builder(after); + this.builder('}', node, 'end'); + }; + + Stringifier.prototype.raw = function raw(node, own, detect) { + var value = void 0; + if (!detect) detect = own; + + // Already had + if (own) { + value = node.raws[own]; + if (typeof value !== 'undefined') return value; + } + + var parent = node.parent; + + // Hack for first rule in CSS + if (detect === 'before') { + if (!parent || parent.type === 'root' && parent.first === node) { + return ''; + } + } + + // Floating child without parent + if (!parent) return defaultRaw[detect]; + + // Detect style by other nodes + var root = node.root(); + if (!root.rawCache) root.rawCache = {}; + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect]; + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect); + } else { + var method = 'raw' + capitalize(detect); + if (this[method]) { + value = this[method](root, node); + } else { + root.walk(function (i) { + value = i.raws[own]; + if (typeof value !== 'undefined') return false; + }); + } + } + + if (typeof value === 'undefined') value = defaultRaw[detect]; + + root.rawCache[detect] = value; + return value; + }; + + Stringifier.prototype.rawSemicolon = function rawSemicolon(root) { + var value = void 0; + root.walk(function (i) { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon; + if (typeof value !== 'undefined') return false; + } + }); + return value; + }; + + Stringifier.prototype.rawEmptyBody = function rawEmptyBody(root) { + var value = void 0; + root.walk(function (i) { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after; + if (typeof value !== 'undefined') return false; + } + }); + return value; + }; + + Stringifier.prototype.rawIndent = function rawIndent(root) { + if (root.raws.indent) return root.raws.indent; + var value = void 0; + root.walk(function (i) { + var p = i.parent; + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + var parts = i.raws.before.split('\n'); + value = parts[parts.length - 1]; + value = value.replace(/[^\s]/g, ''); + return false; + } + } + }); + return value; + }; + + Stringifier.prototype.rawBeforeComment = function rawBeforeComment(root, node) { + var value = void 0; + root.walkComments(function (i) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.indexOf('\n') !== -1) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + }); + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl'); + } else if (value) { + value = value.replace(/[^\s]/g, ''); + } + return value; + }; + + Stringifier.prototype.rawBeforeDecl = function rawBeforeDecl(root, node) { + var value = void 0; + root.walkDecls(function (i) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.indexOf('\n') !== -1) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + }); + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule'); + } else if (value) { + value = value.replace(/[^\s]/g, ''); + } + return value; + }; + + Stringifier.prototype.rawBeforeRule = function rawBeforeRule(root) { + var value = void 0; + root.walk(function (i) { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before; + if (value.indexOf('\n') !== -1) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + } + }); + if (value) value = value.replace(/[^\s]/g, ''); + return value; + }; + + Stringifier.prototype.rawBeforeClose = function rawBeforeClose(root) { + var value = void 0; + root.walk(function (i) { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after; + if (value.indexOf('\n') !== -1) { + value = value.replace(/[^\n]+$/, ''); + } + return false; + } + } + }); + if (value) value = value.replace(/[^\s]/g, ''); + return value; + }; + + Stringifier.prototype.rawBeforeOpen = function rawBeforeOpen(root) { + var value = void 0; + root.walk(function (i) { + if (i.type !== 'decl') { + value = i.raws.between; + if (typeof value !== 'undefined') return false; + } + }); + return value; + }; + + Stringifier.prototype.rawColon = function rawColon(root) { + var value = void 0; + root.walkDecls(function (i) { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, ''); + return false; + } + }); + return value; + }; + + Stringifier.prototype.beforeAfter = function beforeAfter(node, detect) { + var value = void 0; + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl'); + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment'); + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule'); + } else { + value = this.raw(node, null, 'beforeClose'); + } + + var buf = node.parent; + var depth = 0; + while (buf && buf.type !== 'root') { + depth += 1; + buf = buf.parent; + } + + if (value.indexOf('\n') !== -1) { + var indent = this.raw(node, null, 'indent'); + if (indent.length) { + for (var step = 0; step < depth; step++) { + value += indent; + } + } + } + + return value; + }; + + Stringifier.prototype.rawValue = function rawValue(node, prop) { + var value = node[prop]; + var raw = node.raws[prop]; + if (raw && raw.value === value) { + return raw.raw; + } else { + return value; + } + }; + + return Stringifier; +}(); + +exports.default = Stringifier; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/stringify.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = stringify; + +var _stringifier = __webpack_require__(/*! ./stringifier */ "./node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js"); + +var _stringifier2 = _interopRequireDefault(_stringifier); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function stringify(node, builder) { + var str = new _stringifier2.default(builder); + str.stringify(node); +} +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/terminal-highlight.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/terminal-highlight.js ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _chalk = __webpack_require__(/*! chalk */ 5); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _tokenize = __webpack_require__(/*! ./tokenize */ "./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js"); + +var _tokenize2 = _interopRequireDefault(_tokenize); + +var _input = __webpack_require__(/*! ./input */ "./node_modules/sanitize-html/node_modules/postcss/lib/input.js"); + +var _input2 = _interopRequireDefault(_input); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var HIGHLIGHT_THEME = { + 'brackets': _chalk2.default.cyan, + 'at-word': _chalk2.default.cyan, + 'call': _chalk2.default.cyan, + 'comment': _chalk2.default.gray, + 'string': _chalk2.default.green, + 'class': _chalk2.default.yellow, + 'hash': _chalk2.default.magenta, + '(': _chalk2.default.cyan, + ')': _chalk2.default.cyan, + '{': _chalk2.default.yellow, + '}': _chalk2.default.yellow, + '[': _chalk2.default.yellow, + ']': _chalk2.default.yellow, + ':': _chalk2.default.yellow, + ';': _chalk2.default.yellow +}; + +function getTokenType(_ref, processor) { + var type = _ref[0], + value = _ref[1]; + + if (type === 'word') { + if (value[0] === '.') { + return 'class'; + } + if (value[0] === '#') { + return 'hash'; + } + } + + if (!processor.endOfFile()) { + var next = processor.nextToken(); + processor.back(next); + if (next[0] === 'brackets' || next[0] === '(') return 'call'; + } + + return type; +} + +function terminalHighlight(css) { + var processor = (0, _tokenize2.default)(new _input2.default(css), { ignoreErrors: true }); + var result = ''; + + var _loop = function _loop() { + var token = processor.nextToken(); + var color = HIGHLIGHT_THEME[getTokenType(token, processor)]; + if (color) { + result += token[1].split(/\r?\n/).map(function (i) { + return color(i); + }).join('\n'); + } else { + result += token[1]; + } + }; + + while (!processor.endOfFile()) { + _loop(); + } + return result; +} + +exports.default = terminalHighlight; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js": +/*!*************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = tokenizer; +var SINGLE_QUOTE = 39; +var DOUBLE_QUOTE = 34; +var BACKSLASH = 92; +var SLASH = 47; +var NEWLINE = 10; +var SPACE = 32; +var FEED = 12; +var TAB = 9; +var CR = 13; +var OPEN_SQUARE = 91; +var CLOSE_SQUARE = 93; +var OPEN_PARENTHESES = 40; +var CLOSE_PARENTHESES = 41; +var OPEN_CURLY = 123; +var CLOSE_CURLY = 125; +var SEMICOLON = 59; +var ASTERISK = 42; +var COLON = 58; +var AT = 64; + +var RE_AT_END = /[ \n\t\r\f\{\}\(\)'"\\;/\[\]#]/g; +var RE_WORD_END = /[ \n\t\r\f\(\)\{\}:;@!'"\\\]\[#]|\/(?=\*)/g; +var RE_BAD_BRACKET = /.[\\\/\("'\n]/; +var RE_HEX_ESCAPE = /[a-f0-9]/i; + +function tokenizer(input) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var css = input.css.valueOf(); + var ignore = options.ignoreErrors; + + var code = void 0, + next = void 0, + quote = void 0, + lines = void 0, + last = void 0, + content = void 0, + escape = void 0, + nextLine = void 0, + nextOffset = void 0, + escaped = void 0, + escapePos = void 0, + prev = void 0, + n = void 0, + currentToken = void 0; + + var length = css.length; + var offset = -1; + var line = 1; + var pos = 0; + var buffer = []; + var returned = []; + + function unclosed(what) { + throw input.error('Unclosed ' + what, line, pos - offset); + } + + function endOfFile() { + return returned.length === 0 && pos >= length; + } + + function nextToken() { + if (returned.length) return returned.pop(); + if (pos >= length) return; + + code = css.charCodeAt(pos); + if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) { + offset = pos; + line += 1; + } + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: + next = pos; + do { + next += 1; + code = css.charCodeAt(next); + if (code === NEWLINE) { + offset = next; + line += 1; + } + } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED); + + currentToken = ['space', css.slice(pos, next)]; + pos = next - 1; + break; + + case OPEN_SQUARE: + currentToken = ['[', '[', line, pos - offset]; + break; + + case CLOSE_SQUARE: + currentToken = [']', ']', line, pos - offset]; + break; + + case OPEN_CURLY: + currentToken = ['{', '{', line, pos - offset]; + break; + + case CLOSE_CURLY: + currentToken = ['}', '}', line, pos - offset]; + break; + + case COLON: + currentToken = [':', ':', line, pos - offset]; + break; + + case SEMICOLON: + currentToken = [';', ';', line, pos - offset]; + break; + + case OPEN_PARENTHESES: + prev = buffer.length ? buffer.pop()[1] : ''; + n = css.charCodeAt(pos + 1); + if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) { + next = pos; + do { + escaped = false; + next = css.indexOf(')', next + 1); + if (next === -1) { + if (ignore) { + next = pos; + break; + } else { + unclosed('bracket'); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + + currentToken = ['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset]; + + pos = next; + } else { + next = css.indexOf(')', pos + 1); + content = css.slice(pos, next + 1); + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', line, pos - offset]; + } else { + currentToken = ['brackets', content, line, pos - offset, line, next - offset]; + pos = next; + } + } + + break; + + case CLOSE_PARENTHESES: + currentToken = [')', ')', line, pos - offset]; + break; + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: + quote = code === SINGLE_QUOTE ? '\'' : '"'; + next = pos; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + if (ignore) { + next = pos + 1; + break; + } else { + unclosed('string'); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + + content = css.slice(pos, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + + currentToken = ['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset]; + + offset = nextOffset; + line = nextLine; + pos = next; + break; + + case AT: + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_AT_END.lastIndex - 2; + } + + currentToken = ['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]; + + pos = next; + break; + + case BACKSLASH: + next = pos; + escape = true; + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1; + escape = !escape; + } + code = css.charCodeAt(next + 1); + if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) { + next += 1; + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1; + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1; + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]; + + pos = next; + break; + + default: + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1; + if (next === 0) { + if (ignore) { + next = css.length; + } else { + unclosed('comment'); + } + } + + content = css.slice(pos, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + + currentToken = ['comment', content, line, pos - offset, nextLine, next - nextOffset]; + + offset = nextOffset; + line = nextLine; + pos = next; + } else { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_WORD_END.lastIndex - 2; + } + + currentToken = ['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]; + + buffer.push(currentToken); + + pos = next; + } + + break; + } + + pos++; + return currentToken; + } + + function back(token) { + returned.push(token); + } + + return { + back: back, + nextToken: nextToken, + endOfFile: endOfFile + }; +} +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/vendor.js": +/*!***********************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/vendor.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +/** + * Contains helpers for working with vendor prefixes. + * + * @example + * const vendor = postcss.vendor; + * + * @namespace vendor + */ +var vendor = { + + /** + * Returns the vendor prefix extracted from an input string. + * + * @param {string} prop - string with or without vendor prefix + * + * @return {string} vendor prefix or empty string + * + * @example + * postcss.vendor.prefix('-moz-tab-size') //=> '-moz-' + * postcss.vendor.prefix('tab-size') //=> '' + */ + prefix: function prefix(prop) { + var match = prop.match(/^(-\w+-)/); + if (match) { + return match[0]; + } else { + return ''; + } + }, + + + /** + * Returns the input string stripped of its vendor prefix. + * + * @param {string} prop - string with or without vendor prefix + * + * @return {string} string name without vendor prefixes + * + * @example + * postcss.vendor.unprefixed('-moz-tab-size') //=> 'tab-size' + */ + unprefixed: function unprefixed(prop) { + return prop.replace(/^-\w+-/, ''); + } +}; + +exports.default = vendor; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = warnOnce; +var printed = {}; + +function warnOnce(message) { + if (printed[message]) return; + printed[message] = true; + + if (typeof console !== 'undefined' && console.warn) console.warn(message); +} +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/postcss/lib/warning.js": +/*!************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/postcss/lib/warning.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Represents a plugin’s warning. It can be created using {@link Node#warn}. + * + * @example + * if ( decl.important ) { + * decl.warn(result, 'Avoid !important', { word: '!important' }); + * } + */ +var Warning = function () { + + /** + * @param {string} text - warning message + * @param {Object} [opts] - warning options + * @param {Node} opts.node - CSS node that caused the warning + * @param {string} opts.word - word in CSS source that caused the warning + * @param {number} opts.index - index in CSS node string that caused + * the warning + * @param {string} opts.plugin - name of the plugin that created + * this warning. {@link Result#warn} fills + * this property automatically. + */ + function Warning(text) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Warning); + + /** + * @member {string} - Type to filter warnings from + * {@link Result#messages}. Always equal + * to `"warning"`. + * + * @example + * const nonWarning = result.messages.filter(i => i.type !== 'warning') + */ + this.type = 'warning'; + /** + * @member {string} - The warning message. + * + * @example + * warning.text //=> 'Try to avoid !important' + */ + this.text = text; + + if (opts.node && opts.node.source) { + var pos = opts.node.positionBy(opts); + /** + * @member {number} - Line in the input file + * with this warning’s source + * + * @example + * warning.line //=> 5 + */ + this.line = pos.line; + /** + * @member {number} - Column in the input file + * with this warning’s source. + * + * @example + * warning.column //=> 6 + */ + this.column = pos.column; + } + + for (var opt in opts) { + this[opt] = opts[opt]; + } + } + + /** + * Returns a warning position and message. + * + * @example + * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important' + * + * @return {string} warning position and message + */ + + + Warning.prototype.toString = function toString() { + if (this.node) { + return this.node.error(this.text, { + plugin: this.plugin, + index: this.index, + word: this.word + }).message; + } else if (this.plugin) { + return this.plugin + ': ' + this.text; + } else { + return this.text; + } + }; + + /** + * @memberof Warning# + * @member {string} plugin - The name of the plugin that created + * it will fill this property automatically. + * this warning. When you call {@link Node#warn} + * + * @example + * warning.plugin //=> 'postcss-important' + */ + + /** + * @memberof Warning# + * @member {Node} node - Contains the CSS node that caused the warning. + * + * @example + * warning.node.toString() //=> 'color: white !important' + */ + + return Warning; +}(); + +exports.default = Warning; +module.exports = exports['default']; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/array-set.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/array-set.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = __webpack_require__(/*! ./util */ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js"); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/base64-vlq.js": +/*!******************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/base64-vlq.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = __webpack_require__(/*! ./base64 */ "./node_modules/sanitize-html/node_modules/source-map/lib/base64.js"); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/base64.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/base64.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/binary-search.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/binary-search.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/mapping-list.js": +/*!********************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/mapping-list.js ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = __webpack_require__(/*! ./util */ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js"); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/quick-sort.js": +/*!******************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/quick-sort.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ +exports.quickSort = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); +}; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/source-map-consumer.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/source-map-consumer.js ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = __webpack_require__(/*! ./util */ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js"); +var binarySearch = __webpack_require__(/*! ./binary-search */ "./node_modules/sanitize-html/node_modules/source-map/lib/binary-search.js"); +var ArraySet = __webpack_require__(/*! ./array-set */ "./node_modules/sanitize-html/node_modules/source-map/lib/array-set.js").ArraySet; +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ "./node_modules/sanitize-html/node_modules/source-map/lib/base64-vlq.js"); +var quickSort = __webpack_require__(/*! ./quick-sort */ "./node_modules/sanitize-html/node_modules/source-map/lib/quick-sort.js").quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/source-map-generator.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/source-map-generator.js ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = __webpack_require__(/*! ./base64-vlq */ "./node_modules/sanitize-html/node_modules/source-map/lib/base64-vlq.js"); +var util = __webpack_require__(/*! ./util */ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js"); +var ArraySet = __webpack_require__(/*! ./array-set */ "./node_modules/sanitize-html/node_modules/source-map/lib/array-set.js").ArraySet; +var MappingList = __webpack_require__(/*! ./mapping-list */ "./node_modules/sanitize-html/node_modules/source-map/lib/mapping-list.js").MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/source-node.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/source-node.js ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = __webpack_require__(/*! ./source-map-generator */ "./node_modules/sanitize-html/node_modules/source-map/lib/source-map-generator.js").SourceMapGenerator; +var util = __webpack_require__(/*! ./util */ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js"); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/lib/util.js": +/*!************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/lib/util.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +} +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; + + +/***/ }), + +/***/ "./node_modules/sanitize-html/node_modules/source-map/source-map.js": +/*!**************************************************************************!*\ + !*** ./node_modules/sanitize-html/node_modules/source-map/source-map.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = __webpack_require__(/*! ./lib/source-map-generator */ "./node_modules/sanitize-html/node_modules/source-map/lib/source-map-generator.js").SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(/*! ./lib/source-map-consumer */ "./node_modules/sanitize-html/node_modules/source-map/lib/source-map-consumer.js").SourceMapConsumer; +exports.SourceNode = __webpack_require__(/*! ./lib/source-node */ "./node_modules/sanitize-html/node_modules/source-map/lib/source-node.js").SourceNode; + + +/***/ }), + +/***/ "./node_modules/setimmediate/setImmediate.js": +/*!***************************************************!*\ + !*** ./node_modules/setimmediate/setImmediate.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { + "use strict"; + + if (global.setImmediate) { + return; + } + + var nextHandle = 1; // Spec says greater than zero + var tasksByHandle = {}; + var currentlyRunningATask = false; + var doc = global.document; + var registerImmediate; + + function setImmediate(callback) { + // Callback can either be a function or a string + if (typeof callback !== "function") { + callback = new Function("" + callback); + } + // Copy function arguments + var args = new Array(arguments.length - 1); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i + 1]; + } + // Store and register the task + var task = { callback: callback, args: args }; + tasksByHandle[nextHandle] = task; + registerImmediate(nextHandle); + return nextHandle++; + } + + function clearImmediate(handle) { + delete tasksByHandle[handle]; + } + + function run(task) { + var callback = task.callback; + var args = task.args; + switch (args.length) { + case 0: + callback(); + break; + case 1: + callback(args[0]); + break; + case 2: + callback(args[0], args[1]); + break; + case 3: + callback(args[0], args[1], args[2]); + break; + default: + callback.apply(undefined, args); + break; + } + } + + function runIfPresent(handle) { + // From the spec: "Wait until any invocations of this algorithm started before this one have completed." + // So if we're currently running a task, we'll need to delay this invocation. + if (currentlyRunningATask) { + // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a + // "too much recursion" error. + setTimeout(runIfPresent, 0, handle); + } else { + var task = tasksByHandle[handle]; + if (task) { + currentlyRunningATask = true; + try { + run(task); + } finally { + clearImmediate(handle); + currentlyRunningATask = false; + } + } + } + } + + function installNextTickImplementation() { + registerImmediate = function(handle) { + process.nextTick(function () { runIfPresent(handle); }); + }; + } + + function canUsePostMessage() { + // The test against `importScripts` prevents this implementation from being installed inside a web worker, + // where `global.postMessage` means something completely different and can't be used for this purpose. + if (global.postMessage && !global.importScripts) { + var postMessageIsAsynchronous = true; + var oldOnMessage = global.onmessage; + global.onmessage = function() { + postMessageIsAsynchronous = false; + }; + global.postMessage("", "*"); + global.onmessage = oldOnMessage; + return postMessageIsAsynchronous; + } + } + + function installPostMessageImplementation() { + // Installs an event handler on `global` for the `message` event: see + // * https://developer.mozilla.org/en/DOM/window.postMessage + // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages + + var messagePrefix = "setImmediate$" + Math.random() + "$"; + var onGlobalMessage = function(event) { + if (event.source === global && + typeof event.data === "string" && + event.data.indexOf(messagePrefix) === 0) { + runIfPresent(+event.data.slice(messagePrefix.length)); + } + }; + + if (global.addEventListener) { + global.addEventListener("message", onGlobalMessage, false); + } else { + global.attachEvent("onmessage", onGlobalMessage); + } + + registerImmediate = function(handle) { + global.postMessage(messagePrefix + handle, "*"); + }; + } + + function installMessageChannelImplementation() { + var channel = new MessageChannel(); + channel.port1.onmessage = function(event) { + var handle = event.data; + runIfPresent(handle); + }; + + registerImmediate = function(handle) { + channel.port2.postMessage(handle); + }; + } + + function installReadyStateChangeImplementation() { + var html = doc.documentElement; + registerImmediate = function(handle) { + // Create a \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n\n attrs.forEach(function (_ref) {\n var _ref2 = slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = _extends({\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}, initial);\n\nif (!_default.autoReplaceSvg) _default.observeMutations = false;\n\nvar config = _extends({}, _default);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\n\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nvar domready = function (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n};\n\nvar d = UNITS_IN_GRID;\n\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\n\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n\n return css;\n}\n\nvar _uniqueId = 0;\n\nfunction nextUniqueId() {\n _uniqueId++;\n\n return _uniqueId;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return ('' + str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + (attributeName + '=\"' + htmlEscape(attributes[attributeName]) + '\" ');\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + (styleName + ': ' + styles[styleName] + ';');\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n\n var outer = {\n transform: 'translate(' + containerWidth / 2 + ' 256)'\n };\n var innerTranslate = 'translate(' + transform.x * 32 + ', ' + transform.y * 32 + ') ';\n var innerScale = 'scale(' + transform.size / 16 * (transform.flipX ? -1 : 1) + ', ' + transform.size / 16 * (transform.flipY ? -1 : 1) + ') ';\n var innerRotate = 'rotate(' + transform.rotate + ' 0 0)';\n var inner = {\n transform: innerTranslate + ' ' + innerScale + ' ' + innerRotate\n };\n var path = {\n transform: 'translate(' + iconWidth / 2 * -1 + ' -256)'\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === undefined ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === undefined ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === undefined ? false : _ref2$startCentered;\n\n var val = '';\n\n if (startCentered && IS_IE) {\n val += 'translate(' + (transform.x / d - width / 2) + 'em, ' + (transform.y / d - height / 2) + 'em) ';\n } else if (startCentered) {\n val += 'translate(calc(-50% + ' + transform.x / d + 'em), calc(-50% + ' + transform.y / d + 'em)) ';\n } else {\n val += 'translate(' + transform.x / d + 'em, ' + transform.y / d + 'em) ';\n }\n\n val += 'scale(' + transform.size / d * (transform.flipX ? -1 : 1) + ', ' + transform.size / d * (transform.flipY ? -1 : 1) + ') ';\n val += 'rotate(' + transform.rotate + 'deg) ';\n\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nvar makeIconMasking = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n\n\n var trans = transformForSvg({ transform: transform, containerWidth: maskWidth, iconWidth: mainWidth });\n\n var maskRect = {\n tag: 'rect',\n attributes: _extends({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroup = {\n tag: 'g',\n attributes: _extends({}, trans.inner),\n children: [{ tag: 'path', attributes: _extends({}, mainPath.attributes, trans.path, { fill: 'black' }) }]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _extends({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = 'mask-' + nextUniqueId();\n var clipId = 'clip-' + nextUniqueId();\n var maskTag = {\n tag: 'mask',\n attributes: _extends({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{ tag: 'clipPath', attributes: { id: clipId }, children: [maskPath] }, maskTag]\n };\n\n children.push(defs, { tag: 'rect', attributes: _extends({ fill: 'currentColor', 'clip-path': 'url(#' + clipId + ')', mask: 'url(#' + maskId + ')' }, ALL_SPACE) });\n\n return {\n children: children,\n attributes: attributes\n };\n};\n\nvar makeIconStandard = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({ transform: transform, containerWidth: main.width, iconWidth: main.width });\n children.push({\n tag: 'g',\n attributes: _extends({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _extends({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _extends({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n};\n\nvar asIcon = function (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_extends({}, styles, {\n 'transform-origin': offset.x + transform.x / 16 + 'em ' + (offset.y + transform.y / 16) + 'em'\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n};\n\nvar asSymbol = function (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n\n var id = symbol === true ? prefix + '-' + config.familyPrefix + '-' + iconName : symbol;\n\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _extends({}, attributes, { id: id }),\n children: children\n }]\n }];\n};\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === undefined ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var widthClass = 'fa-w-' + Math.ceil(width / height * 16);\n var attrClass = [config.replacementClass, iconName ? config.familyPrefix + '-' + iconName : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).concat(extra.classes).join(' ');\n\n var content = {\n children: [],\n attributes: _extends({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 ' + width + ' ' + height\n })\n };\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({ tag: 'title', attributes: { id: content.attributes['aria-labelledby'] || 'title-' + nextUniqueId() }, children: [title] });\n\n var args = _extends({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n transform: transform,\n symbol: symbol,\n styles: extra.styles\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === undefined ? false : _params$watchable2;\n\n\n var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _extends({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({ transform: transform, startCentered: true, width: width, height: height });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });\n }\n\n return val;\n}\n\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n\n var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });\n }\n\n return val;\n}\n\nvar noop$2 = function noop() {};\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { mark: noop$2, measure: noop$2 };\nvar preamble = 'FA \"5.1.0\"';\n\nvar begin = function begin(name) {\n p.mark(preamble + ' ' + name + ' begins');\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(preamble + ' ' + name + ' ends');\n p.measure(preamble + ' ' + name, preamble + ' ' + name + ' begins', preamble + ' ' + name + ' ends');\n};\n\nvar perf = { begin: begin, end: end };\n\n'use strict';\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4 (func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n'use strict';\n\n\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject (subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i, key, result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n }\n else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nvar styles$2 = namespace.styles;\nvar shims = namespace.shims;\n\n\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles$2, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n acc[icon[3]] = iconName;\n\n return acc;\n });\n\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n\n acc[iconName] = iconName;\n\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n\n return acc;\n });\n\n var hasRegular = 'far' in styles$2;\n\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = { prefix: prefix, iconName: iconName };\n\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return _byUnicode[prefix][unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return _byLigature[prefix][ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || { prefix: null, iconName: null };\n}\n\nvar styles$1 = namespace.styles;\n\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return { prefix: null, iconName: null, rest: [] };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === undefined ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === undefined ? [] : _abstractNodes$childr;\n\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return '<' + tag + ' ' + joinAttributes(attributes) + '>' + children.map(toHtml).join('') + '';\n }\n}\n\nvar noop$1 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? '' : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(config.familyPrefix + '-.*');\n\n delete abstract[0].attributes.style;\n\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, { toNode: [], toSvg: [] });\n\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$1;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = WINDOW.requestAnimationFrame || function (op) {\n return op();\n };\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n\n mutations.map(mutator);\n\n mark();\n\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation(operation) {\n disabled = true;\n operation();\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === undefined ? DOCUMENT.body : _options$observeMutat;\n\n\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n\n if (!IS_DOM) return;\n\n mo.observe(observeMutationsRoot, {\n childList: true, attributes: true, characterData: true, subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n\n mo.disconnect();\n}\n\nvar styleParser = function (node) {\n var style = node.getAttribute('style');\n\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nvar classParser = function (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nvar transformParser = function (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n};\n\nvar symbolParser = function (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n\n return symbol === null ? false : symbol === '' ? true : symbol;\n};\n\nvar attributesParser = function (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n\n var title = node.getAttribute('title');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();\n } else {\n extraAttributes['aria-hidden'] = 'true';\n }\n }\n\n return extraAttributes;\n};\n\nvar maskParser = function (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n};\n\nvar blankMeta = {\n iconName: null,\n title: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n extra: { classes: [], styles: {}, attributes: {} }\n};\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = { fill: 'currentColor' };\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\nvar OPACITY_ANIMATE = _extends({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\nvar DOT = {\n tag: 'circle',\n attributes: _extends({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, ANIMATION_BASE, { attributeName: 'r', values: '28;14;28;28;14;28;' }) }, { tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;1;1;0;1;' }) }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;0;0;0;1;' }) }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '0;0;1;1;0;0;' }) }]\n};\n\nvar missing = { tag: 'g', children: [RING, DOT, QUESTION, EXCLAMATION] };\n\nvar styles = namespace.styles;\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/;\nvar STYLE_TO_PREFIX = {\n 'Solid': 'fas',\n 'Regular': 'far',\n 'Light': 'fal',\n 'Brands': 'fab'\n};\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n '300': 'fal'\n};\n\nfunction findIcon(iconName, prefix) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles[prefix] && styles[prefix][iconName]) {\n var icon = styles[prefix][iconName];\n var width = icon[0];\n var height = icon[1];\n var vectorData = icon.slice(4);\n\n val = {\n found: true,\n width: width,\n height: height,\n icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }\n };\n } else if (iconName && prefix && !config.showMissingIcons) {\n throw new MissingIcon('Icon is missing for prefix ' + prefix + ' with icon name ' + iconName);\n }\n\n return val;\n}\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n extra = nodeMeta.extra;\n\n\n return [node, makeInlineSvgAbstract({\n icons: {\n main: findIcon(iconName, prefix),\n mask: findIcon(mask.iconName, mask.prefix)\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n title: title,\n extra: extra,\n watchable: true\n })];\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n\n\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return [node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })];\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n\n var end = perf.begin('searchPseudoElements');\n\n disableObservation(function () {\n toArray(root.querySelectorAll('*')).filter(function (n) {\n return n.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(n.tagName.toUpperCase()) && !n.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!n.parentNode || n.parentNode.tagName !== 'svg');\n }).forEach(function (node) {\n [':before', ':after'].forEach(function (pos) {\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === pos;\n })[0];\n\n var styles = WINDOW.getComputedStyle(node, pos);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n } else if (fontFamily) {\n var content = styles.getPropertyValue('content');\n var prefix = ~['Light', 'Regular', 'Solid'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1]] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var iconName = byUnicode(prefix, toHex(content.length === 3 ? content.substr(1, 1) : content));\n // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconName) {\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var extra = blankMeta.extra;\n\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = pos;\n var abstract = makeInlineSvgAbstract(_extends({}, blankMeta, {\n icons: {\n main: findIcon(iconName, prefix),\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconName,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElement('svg');\n\n if (pos === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n }\n }\n });\n });\n });\n\n end();\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!IS_DOM) return;\n\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);\n };\n var prefixes = Object.keys(styles);\n var prefixesDomQuery = ['.' + LAYERS_TEXT_CLASSNAME + ':not([' + DATA_FA_I2SVG + '])'].concat(prefixes.map(function (p) {\n return '.' + p + ':not([' + DATA_FA_I2SVG + '])';\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n\n mark();\n\n perform(mutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n\n if (typeof callback === 'function') callback();\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var mutation = generateMutation(node);\n\n if (mutation) {\n perform([mutation], callback);\n }\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible; }\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -.125em; }\\n .svg-inline--fa.fa-lg {\\n vertical-align: -.225em; }\\n .svg-inline--fa.fa-w-1 {\\n width: 0.0625em; }\\n .svg-inline--fa.fa-w-2 {\\n width: 0.125em; }\\n .svg-inline--fa.fa-w-3 {\\n width: 0.1875em; }\\n .svg-inline--fa.fa-w-4 {\\n width: 0.25em; }\\n .svg-inline--fa.fa-w-5 {\\n width: 0.3125em; }\\n .svg-inline--fa.fa-w-6 {\\n width: 0.375em; }\\n .svg-inline--fa.fa-w-7 {\\n width: 0.4375em; }\\n .svg-inline--fa.fa-w-8 {\\n width: 0.5em; }\\n .svg-inline--fa.fa-w-9 {\\n width: 0.5625em; }\\n .svg-inline--fa.fa-w-10 {\\n width: 0.625em; }\\n .svg-inline--fa.fa-w-11 {\\n width: 0.6875em; }\\n .svg-inline--fa.fa-w-12 {\\n width: 0.75em; }\\n .svg-inline--fa.fa-w-13 {\\n width: 0.8125em; }\\n .svg-inline--fa.fa-w-14 {\\n width: 0.875em; }\\n .svg-inline--fa.fa-w-15 {\\n width: 0.9375em; }\\n .svg-inline--fa.fa-w-16 {\\n width: 1em; }\\n .svg-inline--fa.fa-w-17 {\\n width: 1.0625em; }\\n .svg-inline--fa.fa-w-18 {\\n width: 1.125em; }\\n .svg-inline--fa.fa-w-19 {\\n width: 1.1875em; }\\n .svg-inline--fa.fa-w-20 {\\n width: 1.25em; }\\n .svg-inline--fa.fa-pull-left {\\n margin-right: .3em;\\n width: auto; }\\n .svg-inline--fa.fa-pull-right {\\n margin-left: .3em;\\n width: auto; }\\n .svg-inline--fa.fa-border {\\n height: 1.5em; }\\n .svg-inline--fa.fa-li {\\n width: 2em; }\\n .svg-inline--fa.fa-fw {\\n width: 1.25em; }\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0; }\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -.125em;\\n width: 1em; }\\n .fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.fa-layers-text, .fa-layers-counter {\\n display: inline-block;\\n position: absolute;\\n text-align: center; }\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: .25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right; }\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right; }\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left; }\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right; }\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left; }\\n\\n.fa-lg {\\n font-size: 1.33333em;\\n line-height: 0.75em;\\n vertical-align: -.0667em; }\\n\\n.fa-xs {\\n font-size: .75em; }\\n\\n.fa-sm {\\n font-size: .875em; }\\n\\n.fa-1x {\\n font-size: 1em; }\\n\\n.fa-2x {\\n font-size: 2em; }\\n\\n.fa-3x {\\n font-size: 3em; }\\n\\n.fa-4x {\\n font-size: 4em; }\\n\\n.fa-5x {\\n font-size: 5em; }\\n\\n.fa-6x {\\n font-size: 6em; }\\n\\n.fa-7x {\\n font-size: 7em; }\\n\\n.fa-8x {\\n font-size: 8em; }\\n\\n.fa-9x {\\n font-size: 9em; }\\n\\n.fa-10x {\\n font-size: 10em; }\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em; }\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0; }\\n .fa-ul > li {\\n position: relative; }\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit; }\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: .1em;\\n padding: .2em .25em .15em; }\\n\\n.fa-pull-left {\\n float: left; }\\n\\n.fa-pull-right {\\n float: right; }\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: .3em; }\\n\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: .3em; }\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear; }\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8); }\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg); }\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1); }\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1); }\\n\\n.fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1); }\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical {\\n -webkit-filter: none;\\n filter: none; }\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2em; }\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0; }\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1em; }\\n\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2em; }\\n\\n.fa-inverse {\\n color: #fff; }\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px; }\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto; }\\n\";\n\nvar css = function () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp('\\\\.' + dfp + '\\\\-', 'g');\n var rPatt = new RegExp('\\\\.' + drc, 'g');\n\n s = s.replace(dPatt, '.' + fp + '-').replace(rPatt, '.' + rc);\n }\n\n return s;\n};\n\nfunction define(prefix, icons) {\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function') {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n define('fa', icons);\n }\n}\n\nvar Library = function () {\n function Library() {\n classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n createClass(Library, [{\n key: 'add',\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _extends({}, _this.definitions[key] || {}, additions[key]);\n define(key, additions[key]);\n });\n }\n }, {\n key: 'reset',\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: '_pullDefinitions',\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? { 0: definition } : definition;\n\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n\n\n if (!additions[prefix]) additions[prefix] = {};\n\n additions[prefix][iconName] = icon;\n });\n\n return additions;\n }\n }]);\n return Library;\n}();\n\nfunction prepIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var vectorData = icon.slice(4);\n\n return {\n found: true,\n width: width,\n height: height,\n icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }\n };\n}\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n\n return val;\n}\n\nfunction findIconDefinition(params) {\n var _params$prefix = params.prefix,\n prefix = _params$prefix === undefined ? 'fa' : _params$prefix,\n iconName = params.iconName;\n\n\n if (!iconName) return;\n\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n\n var mask = params.mask;\n\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _extends({}, params, { mask: mask }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n\n disconnect();\n};\n\nvar _cssInserted = false;\n\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n\n var _params$node = params.node,\n node = _params$node === undefined ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === undefined ? function () {} : _params$callback;\n\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n onTree(node, callback);\n }\n },\n\n css: css,\n\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\n\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\n\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === undefined ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === undefined ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === undefined ? null : _params$mask,\n _params$title = params.title,\n title = _params$title === undefined ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === undefined ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === undefined ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === undefined ? {} : _params$styles;\n\n\n if (!iconDefinition) return;\n\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n\n\n return apiObject(_extends({ type: 'icon' }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();\n } else {\n attributes['aria-hidden'] = 'true';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: prepIcon(icon),\n mask: mask ? prepIcon(mask.icon) : { found: false, width: null, height: null, icon: {} }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _extends({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === undefined ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === undefined ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === undefined ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === undefined ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === undefined ? {} : _params$styles2;\n\n\n return apiObject({ type: 'text', content: content }, function () {\n ensureCss();\n\n return makeLayersTextAbstract({\n content: content,\n transform: _extends({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [config.familyPrefix + '-layers-text'].concat(toConsumableArray(classes))\n }\n });\n });\n};\n\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === undefined ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === undefined ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === undefined ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === undefined ? {} : _params$styles3;\n\n\n return apiObject({ type: 'counter', content: content }, function () {\n ensureCss();\n\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [config.familyPrefix + '-layers-counter'].concat(toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n return apiObject({ type: 'layer' }, function () {\n ensureCss();\n\n var children = [];\n\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n\n return [{\n tag: 'span',\n attributes: { class: config.familyPrefix + '-layers' },\n children: children\n }];\n });\n};\n\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === undefined ? DOCUMENT : _params$autoReplaceSv;\n\n\n if (Object.keys(namespace.styles).length > 0 && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ node: autoReplaceSvgRoot });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'arrow-left';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f060';\nvar svgPathData = 'M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faArrowLeft = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'asterisk';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f069';\nvar svgPathData = 'M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faAsterisk = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'ban';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f05e';\nvar svgPathData = 'M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faBan = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'bell';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0f3';\nvar svgPathData = 'M433.884 366.059C411.634 343.809 384 316.118 384 208c0-79.394-57.831-145.269-133.663-157.83A31.845 31.845 0 0 0 256 32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 6.75 2.095 13.008 5.663 18.17C121.831 62.731 64 128.606 64 208c0 108.118-27.643 135.809-49.893 158.059C-16.042 396.208 5.325 448 48.048 448H160c0 35.346 28.654 64 64 64s64-28.654 64-64h111.943c42.638 0 64.151-51.731 33.941-81.941zM224 472a8 8 0 0 1 0 16c-22.056 0-40-17.944-40-40h16c0 13.234 10.766 24 24 24z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faBell = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'book';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f02d';\nvar svgPathData = 'M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faBook = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'clock';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f017';\nvar svgPathData = 'M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faClock = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'eye';\nvar width = 576;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f06e';\nvar svgPathData = 'M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faEye = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'flag';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f024';\nvar svgPathData = 'M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faFlag = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'hdd';\nvar width = 576;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0a0';\nvar svgPathData = 'M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faHdd = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'heart';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f004';\nvar svgPathData = 'M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faHeart = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'home';\nvar width = 576;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f015';\nvar svgPathData = 'M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faHome = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'list';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f03a';\nvar svgPathData = 'M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faList = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'pencil-alt';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f303';\nvar svgPathData = 'M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faPencilAlt = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'plus';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f067';\nvar svgPathData = 'M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faPlus = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'road';\nvar width = 576;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f018';\nvar svgPathData = 'M567.3 383.6L429.9 78.2C426 69.5 417.4 64 408 64h-96.1l1.9 18.8c.7 7.1-4.8 13.2-11.9 13.2H274c-7.1 0-12.7-6.2-11.9-13.2L264 64h-96c-9.4 0-18 5.5-21.9 14.2L8.7 383.6C3.2 395.8 0 409.6 0 424c0 13.3 10.7 24 24 24h213.6c-7.1 0-12.7-6.2-11.9-13.2l10.8-104c.6-6.1 5.8-10.8 11.9-10.8h79.2c6.1 0 11.3 4.6 11.9 10.8l10.8 104c.7 7.1-4.8 13.2-11.9 13.2H552c13.2 0 24-10.7 24-24 0-13.9-3-27.7-8.7-40.4zM254.7 154.8l3.3-32c.6-6.1 5.8-10.8 11.9-10.8h36.2c6.1 0 11.3 4.6 11.9 10.8l3.3 32c.7 7.1-4.8 13.2-11.9 13.2h-42.8c-7.1 0-12.7-6.2-11.9-13.2zM321.8 288h-67.6c-7.1 0-12.7-6.2-11.9-13.2l7.4-72c.6-6.1 5.8-10.8 11.9-10.8h52.7c6.1 0 11.3 4.6 11.9 10.8l7.4 72c.9 7-4.7 13.2-11.8 13.2z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faRoad = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'save';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0c7';\nvar svgPathData = 'M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faSave = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sign-in-alt';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f2f6';\nvar svgPathData = 'M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faSignInAlt = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sign-out-alt';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f2f5';\nvar svgPathData = 'M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faSignOutAlt = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sort';\nvar width = 320;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0dc';\nvar svgPathData = 'M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faSort = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'sync';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f021';\nvar svgPathData = 'M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faSync = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'tachometer-alt';\nvar width = 576;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f3fd';\nvar svgPathData = 'M75.694 480a48.02 48.02 0 0 1-42.448-25.571C12.023 414.3 0 368.556 0 320 0 160.942 128.942 32 288 32s288 128.942 288 288c0 48.556-12.023 94.3-33.246 134.429A48.018 48.018 0 0 1 500.306 480H75.694zM512 288c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32zM288 128c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.673 14.327 32 32 32zM64 288c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32zm65.608-158.392c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32zm316.784 0c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32zm-87.078 31.534c-12.627-4.04-26.133 2.92-30.173 15.544l-45.923 143.511C250.108 322.645 224 350.264 224 384c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-19.773-8.971-37.447-23.061-49.187l45.919-143.498c4.039-12.625-2.92-26.133-15.544-30.173z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faTachometerAlt = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'tasks';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0ae';\nvar svgPathData = 'M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faTasks = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'th-list';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f00b';\nvar svgPathData = 'M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faThList = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'trash';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f1f8';\nvar svgPathData = 'M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faTrash = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'user';\nvar width = 448;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f007';\nvar svgPathData = 'M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faUser = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'user-plus';\nvar width = 640;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f234';\nvar svgPathData = 'M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faUserPlus = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar prefix = 'fas';\nvar iconName = 'wrench';\nvar width = 512;\nvar height = 512;\nvar ligatures = [];\nvar unicode = 'f0ad';\nvar svgPathData = 'M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z';\n\nexports.definition = { \n prefix: prefix,\n iconName: iconName,\n icon: [\n width,\n height,\n ligatures,\n unicode,\n svgPathData\n ]};\n \nexports.faWrench = exports.definition; \nexports.prefix = prefix;\nexports.iconName = iconName; \nexports.width = width;\nexports.height = height;\nexports.ligatures = ligatures;\nexports.unicode = unicode;\nexports.svgPathData = svgPathData;","import { icon, parse } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar humps = createCommonjsModule(function (module) {\n(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = humps.camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var children = (element.children || []).map(convert.bind(null, createElement));\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[humps.camelize(key)] = val;\n }\n }\n\n return acc;\n }, { attrs: {} });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === undefined ? {} : _extraProps$style,\n remaining = objectWithoutProperties(extraProps, ['style']);\n\n\n mixins.attrs['style'] = _extends({}, mixins.attrs['style'], existingStyle);\n\n return createElement.apply(undefined, [element.tag, _extends({}, mixins.attrs, remaining)].concat(toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? defineProperty({}, key, value) : {};\n}\n\nfunction classList(props) {\n var _classes;\n\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n 'fa-fw': props.fixedWidth,\n 'fa-inverse': props.inverse,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, defineProperty(_classes, 'fa-' + props.size, props.size !== null), defineProperty(_classes, 'fa-rotate-' + props.rotation, props.rotation !== null), defineProperty(_classes, 'fa-pull-' + props.pull, props.pull !== null), _classes);\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\nfunction normalizeIconArgs(icon$$1) {\n if (icon$$1 === null) {\n return null;\n }\n\n if ((typeof icon$$1 === 'undefined' ? 'undefined' : _typeof(icon$$1)) === 'object' && icon$$1.prefix && icon$$1.iconName) {\n return icon$$1;\n }\n\n if (Array.isArray(icon$$1) && icon$$1.length === 2) {\n return { prefix: icon$$1[0], iconName: icon$$1[1] };\n }\n\n if (typeof icon$$1 === 'string') {\n return { prefix: 'fas', iconName: icon$$1 };\n }\n}\n\nfunction FontAwesomeIcon(props) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className;\n\n\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(toConsumableArray(classList(props)), toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n\n var renderedIcon = icon(iconLookup, _extends({}, classes, transform, mask, {\n symbol: symbol\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n\n var extraProps = {};\n\n Object.keys(props).forEach(function (key) {\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n\n return convertCurry(abstract[0], extraProps);\n}\n\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\n\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n\n className: PropTypes.string,\n\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n\n fixedWidth: PropTypes.bool,\n\n inverse: PropTypes.bool,\n\n flip: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n\n listItem: PropTypes.bool,\n\n pull: PropTypes.oneOf(['right', 'left']),\n\n pulse: PropTypes.bool,\n\n rotation: PropTypes.oneOf([90, 180, 270]),\n\n size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n\n spin: PropTypes.bool,\n\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\n\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n transform: null\n};\n\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use strict';\n\n// there's 3 implementations written in increasing order of efficiency\n\n// 1 - no Set type is defined\nfunction uniqNoSet(arr) {\n\tvar ret = [];\n\n\tfor (var i = 0; i < arr.length; i++) {\n\t\tif (ret.indexOf(arr[i]) === -1) {\n\t\t\tret.push(arr[i]);\n\t\t}\n\t}\n\n\treturn ret;\n}\n\n// 2 - a simple Set type is defined\nfunction uniqSet(arr) {\n\tvar seen = new Set();\n\treturn arr.filter(function (el) {\n\t\tif (!seen.has(el)) {\n\t\t\tseen.add(el);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t});\n}\n\n// 3 - a standard Set type is defined and it has a forEach method\nfunction uniqSetWithForEach(arr) {\n\tvar ret = [];\n\n\t(new Set(arr)).forEach(function (el) {\n\t\tret.push(el);\n\t});\n\n\treturn ret;\n}\n\n// V8 currently has a broken implementation\n// https://github.com/joyent/node/issues/8449\nfunction doesForEachActuallyWork() {\n\tvar ret = false;\n\n\t(new Set([true])).forEach(function (el) {\n\t\tret = el;\n\t});\n\n\treturn ret === true;\n}\n\nif ('Set' in global) {\n\tif (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) {\n\t\tmodule.exports = uniqSetWithForEach;\n\t} else {\n\t\tmodule.exports = uniqSet;\n\t}\n} else {\n\tmodule.exports = uniqNoSet;\n}\n","'use strict';\n\nexports.__esModule = true;\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _keys = require('babel-runtime/core-js/object/keys');\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _isUndefined = require('lodash/isUndefined');\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nvar _isEqual = require('lodash/isEqual');\n\nvar _isEqual2 = _interopRequireDefault(_isEqual);\n\nvar _get = require('lodash/get');\n\nvar _get2 = _interopRequireDefault(_get);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar htmlValidationAttrs = ['min', 'max', 'minLength', 'maxLength', 'pattern', 'required', 'step'];\n\nvar htmlValidationTypes = ['email', 'date', 'datetime', 'number', 'tel', 'url'];\n\nvar AvBaseInput = function (_Component) {\n (0, _inherits3.default)(AvBaseInput, _Component);\n\n function AvBaseInput(props) {\n (0, _classCallCheck3.default)(this, AvBaseInput);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));\n\n _this.state = { value: _this.props.multiple ? [] : '' };\n _this.validations = {};\n _this.value = '';\n _this.onKeyUpHandler = _this.onKeyUpHandler.bind(_this);\n _this.onInputHandler = _this.onInputHandler.bind(_this);\n _this.onBlurHandler = _this.onBlurHandler.bind(_this);\n _this.onFocusHandler = _this.onFocusHandler.bind(_this);\n _this.onChangeHandler = _this.onChangeHandler.bind(_this);\n _this.validate = _this.validate.bind(_this);\n return _this;\n }\n\n AvBaseInput.prototype.componentWillMount = function componentWillMount() {\n this.value = this.props.value || this.getDefaultValue();\n this.setState({ value: this.value });\n this.updateValidations();\n };\n\n AvBaseInput.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.name !== this.props.name) {\n this.context.FormCtrl.unregister(this);\n }\n if (nextProps.type === 'checkbox') {\n if (nextProps.checked !== this.props.checked) {\n if (nextProps.checked) {\n this.value = nextProps.trueValue;\n } else {\n this.value = nextProps.falseValue;\n }\n this.setState({ value: this.value });\n }\n } else {\n if (nextProps.multiple !== this.props.multiple) {\n this.value = nextProps.multiple ? [] : '';\n this.setState({ value: this.value });\n }\n if (nextProps.value !== this.props.value) {\n this.value = nextProps.value;\n this.setState({ value: nextProps.value });\n }\n }\n\n if (!(0, _isEqual2.default)(nextProps, this.props)) {\n this.updateValidations(nextProps);\n }\n };\n\n AvBaseInput.prototype.componentWillUnmount = function componentWillUnmount() {\n this.context.FormCtrl.unregister(this);\n };\n\n AvBaseInput.prototype.onKeyUpHandler = function onKeyUpHandler(event) {\n var badInput = (0, _get2.default)(event, 'target.validity.badInput', false);\n if (badInput !== this.context.FormCtrl.isBad(this.props.name)) {\n this.context.FormCtrl.setBad(this.props.name, badInput);\n this.validate();\n }\n this.props.onKeyUp && this.props.onKeyUp(event);\n };\n\n AvBaseInput.prototype.onInputHandler = function onInputHandler(_value) {\n this.value = this.getFieldValue(_value);\n this.validateEvent('onInput', _value);\n !this.context.FormCtrl.isDirty(this.props.name) && this.context.FormCtrl.setDirty(this.props.name);\n };\n\n AvBaseInput.prototype.onBlurHandler = function onBlurHandler(_value) {\n this.value = this.getFieldValue(_value);\n this.validateEvent('onBlur', _value);\n !this.context.FormCtrl.isTouched(this.props.name) && this.context.FormCtrl.setTouched(this.props.name);\n };\n\n AvBaseInput.prototype.onFocusHandler = function onFocusHandler(_value) {\n this.value = this.getFieldValue(_value);\n this.validateEvent('onFocus', _value);\n };\n\n AvBaseInput.prototype.onChangeHandler = function onChangeHandler(_value) {\n this.value = this.getFieldValue(_value);\n this.validateEvent('onChange', _value);\n !this.context.FormCtrl.isDirty(this.props.name) && this.context.FormCtrl.setDirty(this.props.name);\n };\n\n AvBaseInput.prototype.getDefaultValue = function getDefaultValue() {\n var defaultValue = '';\n\n if (this.props.type === 'checkbox') {\n if (!(0, _isUndefined2.default)(this.props.defaultChecked)) {\n return this.props.defaultChecked ? this.props.trueValue : this.props.falseValue;\n }\n defaultValue = this.props.falseValue;\n }\n\n if (this.props.type === 'select' && this.props.multiple) {\n defaultValue = [];\n }\n\n var value = this.props.defaultValue || this.context.FormCtrl.getDefaultValue(this.props.name);\n\n if (this.props.type === 'checkbox' && value !== this.props.trueValue) {\n value = defaultValue;\n }\n\n return (0, _isUndefined2.default)(value) ? defaultValue : value;\n };\n\n AvBaseInput.prototype.getFieldValue = function getFieldValue(event) {\n if (this.props.type === 'checkbox') {\n return event.target.checked ? this.props.trueValue : this.props.falseValue;\n }\n\n if (this.props.type === 'select' && this.props.multiple) {\n /* // Something about this does not work when transpiled\n return [...event.target.options]\n .filter(({ selected }) => selected)\n .map(({ value }) => value); */\n var ret = [];\n var options = event.target.options;\n for (var i = 0; i < options.length; i++) {\n if (options[i].selected) {\n ret.push(options[i].value);\n }\n }\n return ret;\n }\n return event && event.target && !(0, _isUndefined2.default)(event.target.value) ? event.target.value : event;\n };\n\n AvBaseInput.prototype.getValidationEvent = function getValidationEvent() {\n var validationEvent = this.props.validationEvent ? this.props.validationEvent : this.context.FormCtrl.getValidationEvent();\n return Array.isArray(validationEvent) ? validationEvent : [validationEvent];\n };\n\n AvBaseInput.prototype.getValidatorProps = function getValidatorProps() {\n var _this2 = this;\n\n var validatity = this.context.FormCtrl.getInputState(this.props.name);\n var htmlValAttrs = (0, _keys2.default)(this.props.validate || {}).filter(function (val) {\n return htmlValidationAttrs.indexOf(val) > -1;\n }).reduce(function (result, item) {\n result[item] = _this2.props.validate[item].value || _this2.props.validate[item];\n return result;\n }, {});\n\n var newProps = (0, _extends3.default)({\n onKeyUp: this.onKeyUpHandler,\n onBlur: this.onBlurHandler,\n onInput: this.onInputHandler,\n onFocus: this.onFocusHandler,\n onChange: this.onChangeHandler,\n value: this.value\n }, htmlValAttrs);\n\n if (this.props.type === 'checkbox') {\n newProps.checked = this.value === this.props.trueValue;\n }\n\n if (this.props.state || validatity && validatity.errorMessage) {\n newProps.valid = !(validatity && validatity.errorMessage);\n }\n\n return newProps;\n };\n\n AvBaseInput.prototype.getValue = function getValue() {\n return this.value;\n };\n\n AvBaseInput.prototype.reset = function reset() {\n this.value = this.getDefaultValue();\n this.context.FormCtrl.setDirty(this.props.name, false);\n this.context.FormCtrl.setTouched(this.props.name, false);\n this.context.FormCtrl.setBad(this.props.name, false);\n this.setState({ value: this.value });\n this.validate();\n this.props.onReset && this.props.onReset(this.value);\n };\n\n AvBaseInput.prototype.validateEvent = function validateEvent(eventName, _event) {\n this.setState({ value: this.value });\n if (this.getValidationEvent().indexOf(eventName) > -1) {\n this.validate();\n }\n this.props[eventName] && this.props[eventName](_event, this.value);\n };\n\n AvBaseInput.prototype.validate = function validate() {\n this.context.FormCtrl.validate(this.props.name);\n };\n\n AvBaseInput.prototype.updateValidations = function updateValidations() {\n var _this3 = this;\n\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n this.validations = (0, _assign2.default)({}, props.validate);\n\n if (htmlValidationTypes.indexOf(props.type) > -1) {\n this.validations[props.type] = this.validations[props.type] || true;\n }\n\n (0, _keys2.default)(props).filter(function (val) {\n return htmlValidationAttrs.indexOf(val) > -1;\n }).forEach(function (attr) {\n if (props[attr]) {\n _this3.validations[attr] = _this3.validations[attr] || {\n value: props[attr]\n };\n } else {\n delete _this3.validations[attr];\n }\n });\n\n this.context.FormCtrl && this.context.FormCtrl.register(this);\n this.validate();\n };\n\n return AvBaseInput;\n}(_react.Component);\n\nAvBaseInput.propTypes = {\n name: _propTypes2.default.string.isRequired,\n validationEvent: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['', 'onInput', 'onChange', 'onBlur', 'onFocus']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['onInput', 'onChange', 'onBlur', 'onFocus']))]),\n validate: _propTypes2.default.object,\n value: _propTypes2.default.any,\n defaultValue: _propTypes2.default.any,\n trueValue: _propTypes2.default.any,\n falseValue: _propTypes2.default.any,\n checked: _propTypes2.default.bool,\n defaultChecked: _propTypes2.default.bool,\n state: _propTypes2.default.bool,\n type: _propTypes2.default.string,\n multiple: _propTypes2.default.bool,\n onKeyUp: _propTypes2.default.func,\n onInput: _propTypes2.default.func,\n onFocus: _propTypes2.default.func,\n onBlur: _propTypes2.default.func,\n onChange: _propTypes2.default.func,\n onReset: _propTypes2.default.func\n};\nAvBaseInput.contextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nAvBaseInput.defaultProps = {\n validationEvent: '',\n validate: {},\n trueValue: true,\n falseValue: false\n};\nexports.default = AvBaseInput;","'use strict';\n\nexports.__esModule = true;\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactstrap = require('reactstrap');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AvFeedback = function (_Component) {\n (0, _inherits3.default)(AvFeedback, _Component);\n\n function AvFeedback() {\n (0, _classCallCheck3.default)(this, AvFeedback);\n return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));\n }\n\n AvFeedback.prototype.render = function render() {\n var validation = this.context.Group.getInputState();\n return _react2.default.createElement(_reactstrap.FormFeedback, (0, _extends3.default)({ valid: !validation.error }, this.props));\n };\n\n return AvFeedback;\n}(_react.Component);\n\nAvFeedback.propTypes = (0, _assign2.default)({}, _reactstrap.FormFeedback.propTypes);\nAvFeedback.contextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired,\n Group: _propTypes2.default.object.isRequired\n};\nexports.default = AvFeedback;","'use strict';\n\nexports.__esModule = true;\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _AvInput = require('./AvInput');\n\nvar _AvInput2 = _interopRequireDefault(_AvInput);\n\nvar _AvGroup = require('./AvGroup');\n\nvar _AvGroup2 = _interopRequireDefault(_AvGroup);\n\nvar _AvFeedback = require('./AvFeedback');\n\nvar _AvFeedback2 = _interopRequireDefault(_AvFeedback);\n\nvar _reactstrap = require('reactstrap');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar colSizes = ['xs', 'sm', 'md', 'lg', 'xl'];\n\nvar AvField = function (_Component) {\n (0, _inherits3.default)(AvField, _Component);\n\n function AvField() {\n (0, _classCallCheck3.default)(this, AvField);\n return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));\n }\n\n AvField.prototype.getChildContext = function getChildContext() {\n var _this2 = this;\n\n this.FormCtrl = (0, _extends3.default)({}, this.context.FormCtrl);\n var registerValidator = this.FormCtrl.register;\n this.FormCtrl.register = function (input) {\n var updater = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : input && input.forceUpdate;\n\n registerValidator(input, function () {\n _this2.forceUpdate();\n if (updater) updater();\n });\n };\n return {\n FormCtrl: this.FormCtrl\n };\n };\n\n AvField.prototype.render = function render() {\n var row = false;\n var col = {};\n var labelCol = {};\n var _props = this.props,\n helpMessage = _props.helpMessage,\n label = _props.label,\n labelHidden = _props.labelHidden,\n inputClass = _props.inputClass,\n labelClass = _props.labelClass,\n children = _props.children,\n _props$id = _props.id,\n id = _props$id === undefined ? this.props.name : _props$id,\n size = _props.size,\n disabled = _props.disabled,\n readOnly = _props.readOnly,\n grid = _props.grid,\n labelAttrs = _props.labelAttrs,\n groupAttrs = _props.groupAttrs,\n attributes = (0, _objectWithoutProperties3.default)(_props, ['helpMessage', 'label', 'labelHidden', 'inputClass', 'labelClass', 'children', 'id', 'size', 'disabled', 'readOnly', 'grid', 'labelAttrs', 'groupAttrs']);\n\n\n if (grid) {\n colSizes.forEach(function (colSize) {\n if (grid[colSize]) {\n row = true;\n var sizeNum = parseInt(grid[colSize], 10);\n col[colSize] = sizeNum;\n labelCol[colSize] = 12 - sizeNum;\n }\n });\n }\n\n var input = _react2.default.createElement(\n _AvInput2.default,\n (0, _extends3.default)({\n id: id,\n className: inputClass,\n size: size,\n disabled: disabled,\n readOnly: readOnly\n }, attributes),\n children\n );\n\n var validation = this.context.FormCtrl.getInputState(this.props.name);\n\n var feedback = validation.errorMessage ? _react2.default.createElement(\n _AvFeedback2.default,\n null,\n validation.errorMessage\n ) : null;\n var help = helpMessage ? _react2.default.createElement(\n _reactstrap.FormText,\n null,\n helpMessage\n ) : null;\n\n return _react2.default.createElement(\n _AvGroup2.default,\n (0, _extends3.default)({ disabled: disabled, row: row }, groupAttrs),\n label && _react2.default.createElement(\n _reactstrap.Label,\n (0, _extends3.default)({\n 'for': id,\n className: labelClass,\n hidden: labelHidden,\n size: size\n }, labelCol, labelAttrs),\n label\n ),\n row ? _react2.default.createElement(\n _reactstrap.Col,\n col,\n input,\n feedback,\n help\n ) : input,\n !row && feedback,\n !row && help\n );\n };\n\n return AvField;\n}(_react.Component);\n\nAvField.propTypes = (0, _assign2.default)({}, _AvInput2.default.propTypes, {\n label: _propTypes2.default.node,\n labelHidden: _propTypes2.default.bool,\n disabled: _propTypes2.default.bool,\n readOnly: _propTypes2.default.bool,\n id: _propTypes2.default.string,\n inputClass: _propTypes2.default.string,\n labelClass: _propTypes2.default.string,\n helpMessage: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n errorMessage: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n labelAttrs: _propTypes2.default.object,\n groupAttrs: _propTypes2.default.object,\n grid: _propTypes2.default.object\n});\nAvField.contextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nAvField.childContextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nexports.default = AvField;","'use strict';\n\nexports.__esModule = true;\n\nvar _promise = require('babel-runtime/core-js/promise');\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _keys = require('babel-runtime/core-js/object/keys');\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _typeof2 = require('babel-runtime/helpers/typeof');\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _AvInputContainer = require('./AvInputContainer');\n\nvar _AvInputContainer2 = _interopRequireDefault(_AvInputContainer);\n\nvar _AvValidator = require('./AvValidator');\n\nvar _AvValidator2 = _interopRequireDefault(_AvValidator);\n\nvar _reactstrap = require('reactstrap');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _get2 = require('lodash/get');\n\nvar _get3 = _interopRequireDefault(_get2);\n\nvar _set2 = require('lodash/set');\n\nvar _set3 = _interopRequireDefault(_set2);\n\nvar _throttle2 = require('lodash/throttle');\n\nvar _throttle3 = _interopRequireDefault(_throttle2);\n\nvar _isString = require('lodash/isString');\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getInputErrorMessage = function getInputErrorMessage(input, ruleName) {\n var errorMessage = input && input.props && input.props.errorMessage;\n\n if ((typeof errorMessage === 'undefined' ? 'undefined' : (0, _typeof3.default)(errorMessage)) === 'object') {\n return errorMessage[ruleName];\n }\n return errorMessage;\n};\n\nvar AvForm = function (_InputContainer) {\n (0, _inherits3.default)(AvForm, _InputContainer);\n\n function AvForm() {\n var _this2 = this;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, AvForm);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _InputContainer.call.apply(_InputContainer, [this].concat(args))), _this), _this.state = {\n invalidInputs: {},\n dirtyInputs: {},\n touchedInputs: {},\n badInputs: {},\n submitted: false\n }, _this.validations = {}, _this.handleSubmit = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(e) {\n var values, _ref2, isValid, errors;\n\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (e && typeof e.preventDefault === 'function') {\n e.preventDefault();\n }\n\n values = _this.getValues();\n _context.next = 4;\n return _this.validateAll(values, false);\n\n case 4:\n _ref2 = _context.sent;\n isValid = _ref2.isValid;\n errors = _ref2.errors;\n\n\n _this.setTouched((0, _keys2.default)(_this._inputs), true, false);\n\n _this.updateInputs();\n\n _this.props.onSubmit(e, errors, values);\n if (isValid) {\n _this.props.onValidSubmit(e, values);\n } else {\n _this.props.onInvalidSubmit(e, errors, values);\n }\n\n !_this.state.submitted && _this.setState({ submitted: true });\n\n case 12:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, _this2);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(), _this.handleNonFormSubmission = function (event) {\n if (_this.props.onKeyDown(event) !== false) {\n if (event.type === 'keydown' && (event.which === 13 || event.keyCode === 13 || event.key === 'Enter')) {\n event.stopPropagation();\n event.preventDefault();\n _this.handleSubmit(event);\n }\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n AvForm.prototype.getChildContext = function getChildContext() {\n var _this3 = this;\n\n return {\n FormCtrl: {\n getDefaultValue: this.getDefaultValue.bind(this),\n getInputState: this.getInputState.bind(this),\n getInput: function getInput(name) {\n return _this3._inputs[name];\n },\n getInputValue: this.getValue.bind(this),\n getValues: this.getValues.bind(this),\n hasError: this.hasError.bind(this),\n isDirty: this.isDirty.bind(this),\n isTouched: this.isTouched.bind(this),\n isBad: this.isBad.bind(this),\n setDirty: this.setDirty.bind(this),\n setTouched: this.setTouched.bind(this),\n setBad: this.setBad.bind(this),\n register: this.registerInput.bind(this),\n unregister: this.unregisterInput.bind(this),\n validate: this.validateInput.bind(this),\n getValidationEvent: function getValidationEvent() {\n return _this3.props.validationEvent;\n },\n parent: this.context.FormCtrl || null\n }\n };\n };\n\n AvForm.prototype.componentWillMount = function componentWillMount() {\n _InputContainer.prototype.componentWillMount.call(this);\n\n this._validators = {};\n };\n\n AvForm.prototype.registerInput = function registerInput(input, updater) {\n _InputContainer.prototype.registerInput.call(this, input, updater);\n\n if ((0, _typeof3.default)(input.validations) === 'object') {\n this._validators[input.props.name] = this.compileValidationRules(input, input.validations);\n }\n };\n\n AvForm.prototype.unregisterInput = function unregisterInput(input) {\n _InputContainer.prototype.unregisterInput.call(this, input);\n\n delete this._validators[input.props.name];\n this.setError(input.props.name, false);\n this.setDirty(input.props.name, false);\n this.setTouched(input.props.name, false);\n this.setBad(input.props.name, false);\n };\n\n AvForm.prototype.render = function render() {\n var _props = this.props,\n Tag = _props.tag,\n omit1 = _props.errorMessage,\n omit2 = _props.model,\n omit3 = _props.onValidSubmit,\n omit4 = _props.onInvalidSubmit,\n omit5 = _props.validate,\n omit6 = _props.validateOne,\n omit7 = _props.validateAll,\n omit8 = _props.validationEvent,\n className = _props.className,\n attributes = (0, _objectWithoutProperties3.default)(_props, ['tag', 'errorMessage', 'model', 'onValidSubmit', 'onInvalidSubmit', 'validate', 'validateOne', 'validateAll', 'validationEvent', 'className']);\n\n\n var classes = (0, _classnames2.default)(className, this.state.submitted ? 'av-submitted' : false, (0, _keys2.default)(this.state.invalidInputs).length > 0 ? 'av-invalid' : 'av-valid');\n\n if (Tag !== 'form' && Tag !== _reactstrap.Form) {\n attributes.onKeyDown = this.handleNonFormSubmission;\n }\n\n return _react2.default.createElement(Tag, (0, _extends3.default)({ noValidate: true,\n action: '#'\n }, attributes, {\n className: classes,\n onSubmit: this.handleSubmit\n }));\n };\n\n AvForm.prototype.getValues = function getValues() {\n var _this4 = this;\n\n return (0, _keys2.default)(this._inputs).reduce(function (values, inputName) {\n (0, _set3.default)(values, inputName, _this4.getValue(inputName));\n\n return values;\n }, {});\n };\n\n AvForm.prototype.submit = function submit() {\n this.handleSubmit.apply(this, arguments);\n };\n\n AvForm.prototype.reset = function reset() {\n var _this5 = this;\n\n (0, _keys2.default)(this._inputs).forEach(function (inputName) {\n return _this5._inputs[inputName] && _this5._inputs[inputName].reset();\n });\n };\n\n AvForm.prototype.updateInputs = function updateInputs() {\n var _this6 = this;\n\n if (this.throttledUpdateInputs) {\n this.throttledUpdateInputs();\n return;\n }\n // this is just until a more intelligent way to determine which inputs need updated is implemented in v3\n this.throttledUpdateInputs = (0, _throttle3.default)(function () {\n (0, _keys2.default)(_this6._updaters).forEach(function (inputName) {\n return _this6._updaters[inputName] && _this6._inputs[inputName] && _this6._updaters[inputName].call(_this6._inputs[inputName]);\n });\n }, 250);\n this.updateInputs();\n };\n\n AvForm.prototype.validateInput = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(name) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.validateOne(name, this.getValues());\n\n case 2:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function validateInput(_x2) {\n return _ref3.apply(this, arguments);\n }\n\n return validateInput;\n }();\n\n AvForm.prototype.getInputState = function getInputState(inputName) {\n var errorMessage = void 0;\n var error = this.isTouched(inputName) && this.hasError(inputName);\n var color = void 0;\n\n if (error) {\n errorMessage = this.state.invalidInputs[inputName];\n color = 'danger';\n if (!(0, _isString2.default)(errorMessage)) {\n errorMessage = 'This field is invalid';\n }\n }\n\n return { color: color, error: error, errorMessage: errorMessage };\n };\n\n AvForm.prototype.hasError = function hasError(inputName) {\n return inputName ? !!this.state.invalidInputs[inputName] : (0, _keys2.default)(this.state.invalidInputs).length > 0;\n };\n\n AvForm.prototype.isDirty = function isDirty(inputName) {\n return inputName ? !!this.state.dirtyInputs[inputName] : (0, _keys2.default)(this.state.dirtyInputs).length > 0;\n };\n\n AvForm.prototype.isTouched = function isTouched(inputName) {\n return inputName ? !!this.state.touchedInputs[inputName] : (0, _keys2.default)(this.state.touchedInputs).length > 0;\n };\n\n AvForm.prototype.isBad = function isBad(inputName) {\n return inputName ? !!this.state.badInputs[inputName] : (0, _keys2.default)(this.state.badInputs).length > 0;\n };\n\n AvForm.prototype.setError = function setError(inputName) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var _this7 = this;\n\n var errText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : error;\n var update = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (error && !(0, _isString2.default)(errText) && typeof errText !== 'boolean') {\n errText = errText + '';\n }\n var changed = false;\n var currentError = this.hasError(inputName);\n var invalidInputs = this.state.invalidInputs;\n\n if (currentError === errText && error === !!currentError) return;\n if (error) {\n invalidInputs[inputName] = errText || true;\n changed = true;\n } else {\n delete invalidInputs[inputName];\n changed = true;\n }\n\n if (!changed) return;\n\n invalidInputs = (0, _extends3.default)({}, this.state.invalidInputs);\n this.setState({ invalidInputs: invalidInputs }, function () {\n if (update) _this7.updateInputs();\n });\n };\n\n AvForm.prototype.setDirty = function setDirty(inputs) {\n var _this8 = this;\n\n var dirty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var dirtyInputs = this.state.dirtyInputs;\n var changed = false;\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n inputs.forEach(function (inputName) {\n if (dirty && !dirtyInputs[inputName]) {\n dirtyInputs[inputName] = true;\n changed = true;\n } else if (!dirty && dirtyInputs[inputName]) {\n delete dirtyInputs[inputName];\n changed = true;\n }\n });\n\n if (!changed) return;\n\n dirtyInputs = (0, _extends3.default)({}, this.state.dirtyInputs);\n this.setState({ dirtyInputs: dirtyInputs }, function () {\n if (update) _this8.updateInputs();\n });\n };\n\n AvForm.prototype.setTouched = function setTouched(inputs) {\n var _this9 = this;\n\n var touched = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var touchedInputs = this.state.touchedInputs;\n var changed = false;\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n inputs.forEach(function (inputName) {\n if (touched && !touchedInputs[inputName]) {\n touchedInputs[inputName] = true;\n changed = true;\n } else if (!touched && touchedInputs[inputName]) {\n delete touchedInputs[inputName];\n changed = true;\n }\n });\n\n if (!changed) return;\n\n touchedInputs = (0, _extends3.default)({}, this.state.touchedInputs);\n this.setState({ touchedInputs: touchedInputs }, function () {\n if (update) _this9.updateInputs();\n });\n };\n\n AvForm.prototype.setBad = function setBad(inputs) {\n var _this10 = this;\n\n var isBad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var badInputs = this.state.badInputs;\n var changed = false;\n if (!Array.isArray(inputs)) {\n inputs = [inputs];\n }\n inputs.forEach(function (inputName) {\n if (isBad && !badInputs[inputName]) {\n badInputs[inputName] = true;\n changed = true;\n } else if (!isBad && badInputs[inputName]) {\n delete badInputs[inputName];\n changed = true;\n }\n });\n\n if (!changed) return;\n\n badInputs = (0, _extends3.default)({}, this.state.badInputs);\n this.setState({ badInputs: badInputs }, function () {\n if (update) _this10.updateInputs();\n });\n };\n\n AvForm.prototype.validateOne = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(inputName, context) {\n var update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var input, value, validate, isValid, result, error;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n input = this._inputs[inputName];\n\n if (!Array.isArray(input)) {\n _context3.next = 3;\n break;\n }\n\n throw new Error('Multiple inputs cannot use the same name: \"' + inputName + '\"');\n\n case 3:\n value = (0, _get3.default)(context, inputName);\n validate = input.validations;\n isValid = true;\n result = void 0;\n error = void 0;\n\n if (!(typeof validate === 'function')) {\n _context3.next = 14;\n break;\n }\n\n _context3.next = 11;\n return validate(value, context, input);\n\n case 11:\n result = _context3.sent;\n _context3.next = 21;\n break;\n\n case 14:\n if (!((typeof validate === 'undefined' ? 'undefined' : (0, _typeof3.default)(validate)) === 'object')) {\n _context3.next = 20;\n break;\n }\n\n _context3.next = 17;\n return this._validators[inputName](value, context);\n\n case 17:\n result = _context3.sent;\n _context3.next = 21;\n break;\n\n case 20:\n result = true;\n\n case 21:\n\n if (result !== true) {\n isValid = false;\n\n if ((0, _isString2.default)(result)) {\n error = result;\n }\n }\n\n this.setError(inputName, !isValid, error, update);\n\n return _context3.abrupt('return', isValid);\n\n case 24:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function validateOne(_x12, _x13) {\n return _ref4.apply(this, arguments);\n }\n\n return validateOne;\n }();\n\n AvForm.prototype.validateAll = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(context) {\n var update = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var errors, isValid, inputName, valid, formLevelValidation;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n errors = [];\n isValid = true;\n _context4.t0 = _regenerator2.default.keys(this._inputs);\n\n case 3:\n if ((_context4.t1 = _context4.t0()).done) {\n _context4.next = 12;\n break;\n }\n\n inputName = _context4.t1.value;\n\n if (!this._inputs.hasOwnProperty(inputName)) {\n _context4.next = 10;\n break;\n }\n\n _context4.next = 8;\n return this.validateOne(inputName, context, update);\n\n case 8:\n valid = _context4.sent;\n\n if (!valid) {\n isValid = false;\n errors.push(inputName);\n }\n\n case 10:\n _context4.next = 3;\n break;\n\n case 12:\n\n if (this.props.validate) {\n formLevelValidation = this.props.validate;\n\n if (!Array.isArray(formLevelValidation)) {\n formLevelValidation = [formLevelValidation];\n }\n\n if (!formLevelValidation.every(function (validationFn) {\n return validationFn(context);\n })) {\n isValid = false;\n errors.push('*');\n }\n }\n\n return _context4.abrupt('return', {\n isValid: isValid,\n errors: errors\n });\n\n case 14:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function validateAll(_x15) {\n return _ref5.apply(this, arguments);\n }\n\n return validateAll;\n }();\n\n AvForm.prototype.compileValidationRules = function compileValidationRules(input, ruleProp) {\n var _this11 = this;\n\n return function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(val, context) {\n var result, validations, _loop, rule;\n\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (!_this11.isBad(input.props.name)) {\n _context5.next = 2;\n break;\n }\n\n return _context5.abrupt('return', false);\n\n case 2:\n result = true;\n validations = [];\n\n _loop = function _loop(rule) {\n /* istanbul ignore else */\n if (ruleProp.hasOwnProperty(rule)) {\n var ruleResult = void 0;\n\n var promise = new _promise2.default(function (resolve, reject) {\n var callback = function callback(value) {\n return resolve({ value: value, rule: rule });\n };\n\n if (typeof ruleProp[rule] === 'function') {\n ruleResult = ruleProp[rule](val, context, input, callback);\n } else {\n if (typeof _AvValidator2.default[rule] !== 'function') {\n return reject(new Error('Invalid input validation rule: \"' + rule + '\"'));\n }\n\n ruleResult = _AvValidator2.default[rule](val, context, ruleProp[rule], input, callback);\n }\n\n if (ruleResult && typeof ruleResult.then === 'function') {\n ruleResult.then(callback);\n } else if (ruleResult !== undefined) {\n callback(ruleResult);\n } else {\n // they are using the callback\n }\n });\n\n validations.push(promise);\n }\n };\n\n for (rule in ruleProp) {\n _loop(rule);\n }\n\n _context5.next = 8;\n return _promise2.default.all(validations).then(function (results) {\n results.every(function (ruleResult) {\n if (result === true && ruleResult.value !== true) {\n result = (0, _isString2.default)(ruleResult.value) && ruleResult.value || getInputErrorMessage(input, ruleResult.rule) || getInputErrorMessage(_this11, ruleResult.rule) || false;\n }\n return result === true;\n });\n });\n\n case 8:\n return _context5.abrupt('return', result);\n\n case 9:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, _this11);\n }));\n\n return function (_x17, _x18) {\n return _ref6.apply(this, arguments);\n };\n }();\n };\n\n AvForm.prototype.getDefaultValue = function getDefaultValue(inputName) {\n return (0, _get3.default)(this.props.model, inputName);\n };\n\n AvForm.prototype.getValue = function getValue(inputName) {\n var input = this._inputs[inputName];\n\n if (!input) return undefined;\n\n if (Array.isArray(input)) {\n throw new Error('Multiple inputs cannot use the same name: \"' + inputName + '\"');\n }\n\n return input.getValue();\n };\n\n return AvForm;\n}(_AvInputContainer2.default);\n\nAvForm.childContextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nAvForm.contextTypes = {\n FormCtrl: _propTypes2.default.object\n};\nAvForm.propTypes = {\n tag: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.string]),\n className: _propTypes2.default.string,\n model: _propTypes2.default.object,\n method: _propTypes2.default.oneOf(['get', 'post']),\n onSubmit: _propTypes2.default.func,\n validate: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.array]),\n onValidSubmit: _propTypes2.default.func,\n onInvalidSubmit: _propTypes2.default.func,\n validationEvent: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['onInput', 'onChange', 'onBlur', 'onFocus']), _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['onInput', 'onChange', 'onBlur', 'onFocus']))]),\n errorMessage: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string, _propTypes2.default.node])\n};\nAvForm.defaultProps = {\n tag: _reactstrap.Form,\n model: {},\n validationEvent: ['onChange', 'onInput'],\n method: 'get',\n onSubmit: function onSubmit() {},\n onKeyDown: function onKeyDown() {},\n onValidSubmit: function onValidSubmit() {},\n onInvalidSubmit: function onInvalidSubmit() {}\n};\nexports.default = AvForm;","'use strict';\n\nexports.__esModule = true;\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactstrap = require('reactstrap');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AvGroup = function (_Component) {\n (0, _inherits3.default)(AvGroup, _Component);\n\n function AvGroup(props) {\n (0, _classCallCheck3.default)(this, AvGroup);\n\n var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));\n\n _this.state = { input: { props: {} } };\n return _this;\n }\n\n AvGroup.prototype.getChildContext = function getChildContext() {\n var _this2 = this;\n\n this.FormCtrl = (0, _extends3.default)({}, this.context.FormCtrl);\n var registerValidator = this.FormCtrl.register;\n this.FormCtrl.register = function (input) {\n _this2.setState({ input: input });\n registerValidator(input, _this2.update.bind(_this2, input));\n };\n return {\n Group: {\n getInput: function getInput() {\n return _this2.state.input;\n },\n getInputState: this.getInputState.bind(this)\n },\n FormCtrl: this.FormCtrl\n };\n };\n\n AvGroup.prototype.getInputState = function getInputState() {\n return this.context.FormCtrl.getInputState(this.state.input.props.name);\n };\n\n AvGroup.prototype.update = function update(input) {\n if (input && input.forceUpdate) input.forceUpdate();\n this.forceUpdate();\n };\n\n AvGroup.prototype.render = function render() {\n var validation = this.getInputState();\n var classname = (0, _classnames2.default)(this.props.className, validation.color && 'text-' + validation.color);\n return _react2.default.createElement(_reactstrap.FormGroup, (0, _extends3.default)({ className: classname }, this.props));\n };\n\n return AvGroup;\n}(_react.Component);\n\nAvGroup.propTypes = (0, _assign2.default)({}, _reactstrap.FormGroup.propTypes);\nAvGroup.contextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nAvGroup.childContextTypes = {\n Group: _propTypes2.default.object.isRequired,\n FormCtrl: _propTypes2.default.object.isRequired\n};\nexports.default = AvGroup;","'use strict';\n\nexports.__esModule = true;\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactstrap = require('reactstrap');\n\nvar _AvBaseInput2 = require('./AvBaseInput');\n\nvar _AvBaseInput3 = _interopRequireDefault(_AvBaseInput2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AvInput = function (_AvBaseInput) {\n (0, _inherits3.default)(AvInput, _AvBaseInput);\n\n function AvInput() {\n (0, _classCallCheck3.default)(this, AvInput);\n return (0, _possibleConstructorReturn3.default)(this, _AvBaseInput.apply(this, arguments));\n }\n\n AvInput.prototype.getValue = function getValue() {\n return this.props.valueParser ? this.props.valueParser(this.value) : this.value;\n };\n\n AvInput.prototype.getViewValue = function getViewValue() {\n return this.props.valueFormatter ? this.props.valueFormatter(this.value) : this.value;\n };\n\n AvInput.prototype.render = function render() {\n var _props = this.props,\n omit1 = _props.errorMessage,\n omit2 = _props.validate,\n omit3 = _props.validationEvent,\n omit4 = _props.state,\n omit5 = _props.trueValue,\n omit6 = _props.falseValue,\n omit7 = _props.valueParser,\n omit8 = _props.valueFormatter,\n className = _props.className,\n Tag = _props.tag,\n attributes = (0, _objectWithoutProperties3.default)(_props, ['errorMessage', 'validate', 'validationEvent', 'state', 'trueValue', 'falseValue', 'valueParser', 'valueFormatter', 'className', 'tag']);\n\n\n var touched = this.context.FormCtrl.isTouched(this.props.name);\n var hasError = this.context.FormCtrl.hasError(this.props.name);\n\n var classes = (0, _classnames2.default)(className, touched ? 'is-touched' : 'is-untouched', this.context.FormCtrl.isDirty(this.props.name) ? 'is-dirty' : 'is-pristine', this.context.FormCtrl.isBad(this.props.name) ? 'is-bad-input' : null, hasError ? 'av-invalid' : 'av-valid', touched && hasError && 'is-invalid');\n\n var value = this.getViewValue();\n\n return _react2.default.createElement(Tag, (0, _extends3.default)({}, attributes, this.getValidatorProps(), {\n className: classes,\n value: value\n }));\n };\n\n return AvInput;\n}(_AvBaseInput3.default);\n\nAvInput.defaultProps = (0, _assign2.default)({}, _AvBaseInput3.default.defaultProps, {\n tag: _reactstrap.Input\n});\nAvInput.contextTypes = _AvBaseInput3.default.contextTypes;\nexports.default = AvInput;","'use strict';\n\nexports.__esModule = true;\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validComponent(input) {\n var name = input && input.props ? input.props.name : undefined;\n\n if (!name) {\n throw new Error('Input ' + input + ' has no \"name\" prop');\n }\n\n return { name: name };\n}\n\nvar InputContainer = function (_Component) {\n (0, _inherits3.default)(InputContainer, _Component);\n\n function InputContainer() {\n (0, _classCallCheck3.default)(this, InputContainer);\n return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));\n }\n\n InputContainer.prototype.componentWillMount = function componentWillMount() {\n this._updaters = {};\n this._inputs = {};\n };\n\n InputContainer.prototype.getOldInputName = function getOldInputName(input) {\n for (var key in this._inputs) {\n if (this._inputs[key] === input) {\n return key;\n }\n }\n };\n\n InputContainer.prototype.registerInput = function registerInput(input) {\n var updater = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : input && input.forceUpdate;\n\n var _validComponent = validComponent(input, updater),\n name = _validComponent.name;\n\n var oldName = this.getOldInputName(input);\n if (oldName !== name) {\n if (oldName) {\n this.unregisterInput({ name: oldName });\n }\n this._updaters[name] = updater;\n this._inputs[name] = input;\n }\n };\n\n InputContainer.prototype.unregisterInput = function unregisterInput(input) {\n var _validComponent2 = validComponent(input),\n name = _validComponent2.name;\n\n delete this._updaters[name];\n delete this._inputs[name];\n };\n\n return InputContainer;\n}(_react.Component);\n\nexports.default = InputContainer;","'use strict';\n\nexports.__esModule = true;\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactstrap = require('reactstrap');\n\nvar _AvInput = require('./AvInput');\n\nvar _AvInput2 = _interopRequireDefault(_AvInput);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar radioPropTypes = (0, _assign2.default)({}, _AvInput2.default.propTypes);\ndelete radioPropTypes.name;\n\nvar AvRadio = function (_Component) {\n (0, _inherits3.default)(AvRadio, _Component);\n\n function AvRadio() {\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, AvRadio);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n AvRadio.prototype.componentDidMount = function componentDidMount() {\n this.context.FormCtrl && this.context.FormCtrl.register(this);\n };\n\n AvRadio.prototype.componentWillUnmount = function componentWillUnmount() {\n this.context.FormCtrl && this.context.FormCtrl.unregister(this);\n };\n\n AvRadio.prototype.render = function render() {\n var _props = this.props,\n className = _props.className,\n id = _props.id,\n attributes = (0, _objectWithoutProperties3.default)(_props, ['className', 'id']);\n\n\n var groupProps = this.context.Group.getProps();\n\n var touched = this.context.FormCtrl.isTouched(groupProps.name);\n var hasError = this.context.FormCtrl.hasError(groupProps.name);\n\n var classes = (0, _classnames2.default)(className, touched ? 'is-touched' : 'is-untouched', this.context.FormCtrl.isDirty(groupProps.name) ? 'is-dirty' : 'is-pristine', this.context.FormCtrl.isBad(groupProps.name) ? 'is-bad-input' : null, hasError ? 'av-invalid' : 'av-valid', touched && hasError && 'is-invalid');\n\n return _react2.default.createElement(\n _reactstrap.FormGroup,\n { check: true, inline: groupProps.inline, disabled: this.props.disabled },\n _react2.default.createElement(_reactstrap.Input, (0, _extends3.default)({\n name: groupProps.name,\n type: 'radio'\n }, attributes, {\n id: id || 'radio-' + groupProps.name + '-' + this.props.value,\n className: classes,\n onChange: this.onChangeHandler,\n checked: this.props.value === groupProps.value,\n value: this.props.value && this.props.value.toString(),\n required: groupProps.required\n })),\n _react2.default.createElement(\n _reactstrap.Label,\n { check: true, 'for': id || 'radio-' + groupProps.name + '-' + this.props.value },\n this.props.label\n )\n );\n };\n\n return AvRadio;\n}(_react.Component);\n\nAvRadio.contextTypes = (0, _assign2.default)({}, _AvInput2.default.contextTypes, {\n Group: _propTypes2.default.object.isRequired\n});\nAvRadio.propTypes = radioPropTypes;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.onChangeHandler = function (event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.context.Group.update(event, _this2.props.value);\n if (_this2.props.onChange) {\n var _props2;\n\n (_props2 = _this2.props).onChange.apply(_props2, [event].concat(args));\n }\n };\n};\n\nexports.default = AvRadio;","'use strict';\n\nexports.__esModule = true;\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _keys = require('babel-runtime/core-js/object/keys');\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _assign = require('babel-runtime/core-js/object/assign');\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _isEqual = require('lodash/isEqual');\n\nvar _isEqual2 = _interopRequireDefault(_isEqual);\n\nvar _reactstrap = require('reactstrap');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _AvFeedback = require('./AvFeedback');\n\nvar _AvFeedback2 = _interopRequireDefault(_AvFeedback);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar htmlValidationAttrs = ['required'];\n\nvar noop = function noop() {};\n\nvar AvRadioGroup = function (_Component) {\n (0, _inherits3.default)(AvRadioGroup, _Component);\n\n function AvRadioGroup() {\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, AvRadioGroup);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {\n invalidInputs: {},\n dirtyInputs: {},\n touchedInputs: {},\n badInputs: {},\n validate: {},\n value: ''\n }, _this._inputs = [], _this.value = '', _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n AvRadioGroup.prototype.getChildContext = function getChildContext() {\n var _this2 = this;\n\n if (!this.FormCtrl) {\n this.FormCtrl = (0, _extends3.default)({}, this.context.FormCtrl);\n this.FormCtrl.register = this.registerInput.bind(this);\n this.FormCtrl.unregister = this.unregisterInput.bind(this);\n this.FormCtrl.validate = noop;\n }\n\n var updateGroup = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(e, value) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this2.setState({ value: value });\n _this2.value = value;\n _context.next = 4;\n return _this2.validate();\n\n case 4:\n !_this2.context.FormCtrl.isTouched(_this2.props.name) && _this2.context.FormCtrl.setTouched(_this2.props.name);\n !_this2.context.FormCtrl.isDirty(_this2.props.name) && _this2.context.FormCtrl.setDirty(_this2.props.name);\n _this2.props.onChange && _this2.props.onChange(e, value);\n\n case 7:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, _this2);\n }));\n\n return function updateGroup(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n\n return {\n Group: {\n getProps: function getProps() {\n return {\n name: _this2.props.name,\n inline: _this2.props.inline,\n required: _this2.props.required,\n value: _this2.value\n };\n },\n update: updateGroup,\n getValue: function getValue() {\n return _this2.value;\n },\n getInputState: this.getInputState.bind(this)\n },\n FormCtrl: this.FormCtrl\n };\n };\n\n AvRadioGroup.prototype.componentWillMount = function componentWillMount() {\n this.value = this.props.value || this.getDefaultValue().value;\n this.setState({ value: this.value });\n this.updateValidations();\n };\n\n AvRadioGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.name !== this.props.name) {\n this.context.FormCtrl.unregister(this);\n }\n if (nextProps.value !== this.props.value) {\n this.value = nextProps.value;\n this.setState({ value: nextProps.value });\n }\n if (!(0, _isEqual2.default)(nextProps, this.props)) {\n this.updateValidations(nextProps);\n }\n };\n\n AvRadioGroup.prototype.componentWillUnmount = function componentWillUnmount() {\n this.context.FormCtrl.unregister(this);\n };\n\n AvRadioGroup.prototype.getValue = function getValue() {\n return this.value;\n };\n\n AvRadioGroup.prototype.getInputState = function getInputState() {\n return this.context.FormCtrl.getInputState(this.props.name);\n };\n\n AvRadioGroup.prototype.getDefaultValue = function getDefaultValue() {\n var key = 'defaultValue';\n\n var value = this.props[key] || this.context.FormCtrl.getDefaultValue(this.props.name) || '';\n\n return { key: key, value: value };\n };\n\n AvRadioGroup.prototype.validate = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.context.FormCtrl.validate(this.props.name);\n\n case 2:\n this.updateInputs();\n\n case 3:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function validate() {\n return _ref2.apply(this, arguments);\n }\n\n return validate;\n }();\n\n AvRadioGroup.prototype.update = function update() {\n this.forceUpdate();\n this.updateInputs();\n };\n\n AvRadioGroup.prototype.updateValidations = function updateValidations() {\n var _this3 = this;\n\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n\n this.validations = (0, _assign2.default)({}, props.validate);\n\n (0, _keys2.default)(props).filter(function (val) {\n return htmlValidationAttrs.indexOf(val) > -1;\n }).forEach(function (attr) {\n if (props[attr]) {\n _this3.validations[attr] = _this3.validations[attr] || {\n value: props[attr]\n };\n } else {\n delete _this3.validations[attr];\n }\n });\n\n this.context.FormCtrl.register(this, this.update.bind(this));\n this.validate();\n };\n\n AvRadioGroup.prototype.updateInputs = function updateInputs() {\n this._inputs.forEach(function (input) {\n return input.forceUpdate();\n });\n };\n\n AvRadioGroup.prototype.reset = function reset() {\n this.value = this.getDefaultValue().value;\n this.context.FormCtrl.setDirty(this.props.name, false);\n this.context.FormCtrl.setTouched(this.props.name, false);\n this.context.FormCtrl.setBad(this.props.name, false);\n this.setState({ value: this.value });\n this.validate();\n this.props.onReset && this.props.onReset(this.value);\n };\n\n AvRadioGroup.prototype.registerInput = function registerInput(input) {\n if (this._inputs.indexOf(input) < 0) {\n this._inputs.push(input);\n }\n };\n\n AvRadioGroup.prototype.unregisterInput = function unregisterInput(input) {\n this._inputs = this._inputs.filter(function (ipt) {\n return ipt !== input;\n });\n };\n\n AvRadioGroup.prototype.render = function render() {\n var legend = this.props.label ? _react2.default.createElement(\n 'legend',\n null,\n this.props.label\n ) : '';\n var validation = this.getInputState();\n var _props = this.props,\n omit1 = _props.errorMessage,\n omit2 = _props.validate,\n omit3 = _props.validationEvent,\n omit4 = _props.state,\n omit5 = _props.label,\n omit6 = _props.required,\n omit7 = _props.inline,\n children = _props.children,\n attributes = (0, _objectWithoutProperties3.default)(_props, ['errorMessage', 'validate', 'validationEvent', 'state', 'label', 'required', 'inline', 'children']);\n\n\n var touched = this.context.FormCtrl.isTouched(this.props.name);\n var hasError = this.context.FormCtrl.hasError(this.props.name);\n\n var classes = (0, _classnames2.default)('form-control border-0 p-0', touched ? 'is-touched' : 'is-untouched', this.context.FormCtrl.isDirty(this.props.name) ? 'is-dirty' : 'is-pristine', this.context.FormCtrl.isBad(this.props.name) ? 'is-bad-input' : null, hasError ? 'av-invalid' : 'av-valid', touched && hasError && 'is-invalid');\n\n return _react2.default.createElement(\n _reactstrap.FormGroup,\n (0, _extends3.default)({ tag: 'fieldset' }, attributes),\n legend,\n _react2.default.createElement(\n 'div',\n { className: classes },\n children\n ),\n _react2.default.createElement(\n _AvFeedback2.default,\n null,\n validation.errorMessage\n )\n );\n };\n\n return AvRadioGroup;\n}(_react.Component);\n\nAvRadioGroup.propTypes = (0, _assign2.default)({}, _reactstrap.FormGroup.propTypes, {\n name: _propTypes2.default.string.isRequired\n});\nAvRadioGroup.contextTypes = {\n FormCtrl: _propTypes2.default.object.isRequired\n};\nAvRadioGroup.childContextTypes = {\n Group: _propTypes2.default.object.isRequired,\n FormCtrl: _propTypes2.default.object.isRequired\n};\nexports.default = AvRadioGroup;","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$format = _ref.format,\n format = _ref$format === undefined ? 'MM/DD/YYYY' : _ref$format,\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? 'Format needs to be ' + format : _ref$errorMessage;\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var date = (0, _moment2.default)(value, [_utils.isoDateFormat, format], true);\n\n return date.isValid() || errorMessage;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setMin(value) {\n value.set('hours', 0);\n value.set('minutes', 0);\n value.set('seconds', 0);\n\n return value;\n}\n\nfunction setMax(value) {\n value.set('hours', 23);\n value.set('minutes', 59);\n value.set('seconds', 59);\n\n return value;\n}\n\nfunction getStartDate(start) {\n return setMin((0, _moment2.default)().add(start.value, start.units));\n}\n\nfunction getEndDate(end) {\n return setMax((0, _moment2.default)().add(end.value, end.units));\n}\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$format = _ref.format,\n format = _ref$format === undefined ? 'MM/DD/YYYY' : _ref$format,\n _ref$displayFormat = _ref.displayFormat,\n displayFormat = _ref$displayFormat === undefined ? 'MM/DD/YYYY' : _ref$displayFormat,\n _ref$start = _ref.start,\n start = _ref$start === undefined ? {} : _ref$start,\n _ref$end = _ref.end,\n end = _ref$end === undefined ? {} : _ref$end,\n errorMessage = _ref.errorMessage;\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var startDate = void 0;\n var endDate = void 0;\n\n var date = (0, _moment2.default)(value, [_utils.isoDateFormat, format], true);\n setMin(date);\n\n if (!(0, _utils.isEmpty)(start.units) && !(0, _utils.isEmpty)(end.units)) {\n startDate = getStartDate(start);\n endDate = getEndDate(end);\n } else {\n startDate = (0, _moment2.default)(start.value, start.format || format);\n endDate = setMax((0, _moment2.default)(end.value, end.format || format));\n }\n errorMessage = errorMessage || 'Date must be between ' + startDate.format(displayFormat) + ' and ' + endDate.format(displayFormat);\n return date.isValid() && (date.isBetween(startDate, endDate, 'day') || date.isSame(startDate, 'day') || date.isSame(endDate, 'day')) || errorMessage;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$pattern = _ref.pattern,\n pattern = _ref$pattern === undefined ? EMAIL_REGEXP : _ref$pattern,\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n return (0, _pattern2.default)(value, context, { value: pattern, errorMessage: errorMessage });\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _date = require('./date');\n\nvar _date2 = _interopRequireDefault(_date);\n\nvar _dateRange = require('./dateRange');\n\nvar _dateRange2 = _interopRequireDefault(_dateRange);\n\nvar _email = require('./email');\n\nvar _email2 = _interopRequireDefault(_email);\n\nvar _match = require('./match');\n\nvar _match2 = _interopRequireDefault(_match);\n\nvar _max = require('./max');\n\nvar _max2 = _interopRequireDefault(_max);\n\nvar _maxlength = require('./maxlength');\n\nvar _maxlength2 = _interopRequireDefault(_maxlength);\n\nvar _min = require('./min');\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _minlength = require('./minlength');\n\nvar _minlength2 = _interopRequireDefault(_minlength);\n\nvar _number = require('./number');\n\nvar _number2 = _interopRequireDefault(_number);\n\nvar _npi = require('./npi');\n\nvar _npi2 = _interopRequireDefault(_npi);\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nvar _phone = require('./phone');\n\nvar _phone2 = _interopRequireDefault(_phone);\n\nvar _required = require('./required');\n\nvar _required2 = _interopRequireDefault(_required);\n\nvar _step = require('./step');\n\nvar _step2 = _interopRequireDefault(_step);\n\nvar _url = require('./url');\n\nvar _url2 = _interopRequireDefault(_url);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n date: _date2.default,\n datetime: _date2.default,\n dateRange: _dateRange2.default,\n email: _email2.default,\n match: _match2.default,\n max: _max2.default,\n maxlength: _maxlength2.default,\n maxLength: _maxlength2.default,\n min: _min2.default,\n minlength: _minlength2.default,\n minLength: _minlength2.default,\n number: _number2.default,\n npi: _npi2.default,\n pattern: _pattern2.default,\n phone: _phone2.default,\n tel: _phone2.default,\n required: _required2.default,\n step: _step2.default,\n url: _url2.default\n};","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _utils = require('./utils');\n\nvar _get = require('lodash/get');\n\nvar _get2 = _interopRequireDefault(_get);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return (0, _utils.isEmpty)(value) || value === (0, _get2.default)(context, constraint.value) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var input = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n if (input.validations && input.validations.date || input.props && input.props.type && input.props.type.toLowerCase() === 'date') {\n return (0, _moment2.default)(value, [_utils.isoDateFormat, constraint.format || 'MM/DD/YYYY'], true).isSameOrBefore(constraint.value, 'day') || constraint.errorMessage || false;\n }\n\n var number = (0, _toNumber2.default)(value);\n\n return !isNaN(number) && isFinite(number) && number <= (0, _toNumber2.default)(constraint.value) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var length = value.length;\n\n return length <= (0, _toNumber2.default)(constraint.value) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var input = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n if (input.validations && input.validations.date || input.props && input.props.type && input.props.type.toLowerCase() === 'date') {\n return (0, _moment2.default)(value, [_utils.isoDateFormat, constraint.format || 'MM/DD/YYYY'], true).isSameOrAfter(constraint.value, 'day') || constraint.errorMessage || false;\n }\n\n var number = (0, _toNumber2.default)(value);\n\n return !isNaN(number) && isFinite(number) && number >= (0, _toNumber2.default)(constraint.value) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var length = value.length;\n\n return length >= (0, _toNumber2.default)(constraint.value) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _utils = require('./utils');\n\nvar INTEGER_REGEX = /^\\d*$/;\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n value = value + '';\n\n if (!INTEGER_REGEX.test(value) || value.length !== 10) {\n return errorMessage;\n }\n\n var firstDigit = value.charAt(0);\n if (['1', '2', '3', '4'].indexOf(firstDigit) < 0) {\n return errorMessage;\n }\n\n var digit = parseInt(value.charAt(9), 10);\n value = value.substring(0, 9);\n value = '80840' + value;\n\n var alternate = true;\n var total = 0;\n\n for (var i = value.length; i > 0; i--) {\n var next = parseInt(value.charAt(i - 1), 10);\n if (alternate) {\n next = next * 2;\n if (next > 9) {\n next = next % 10 + 1;\n }\n }\n total += next;\n alternate = !alternate;\n }\n\n var roundUp = Math.ceil(total / 10) * 10;\n var calculatedCheck = roundUp - total;\n\n return calculatedCheck === digit || errorMessage;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _isNumber = require('lodash/isNumber');\n\nvar _isNumber2 = _interopRequireDefault(_isNumber);\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var number = (0, _toNumber2.default)(value);\n\n return (0, _isNumber2.default)(number) && !isNaN(number) || errorMessage;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _isRegExp = require('lodash/isRegExp');\n\nvar _isRegExp2 = _interopRequireDefault(_isRegExp);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar REGEX = /^\\/(.*)\\/([gim]*)$/; // regular expression to test a regular expression\n\nfunction asRegExp(pattern) {\n // if regex then return it\n if ((0, _isRegExp2.default)(pattern)) {\n return pattern;\n }\n\n // if string then test for valid regex then convert to regex and return\n var match = pattern.match(REGEX);\n if (match) {\n return new RegExp(match[1], match[2]);\n }\n\n return new RegExp(pattern);\n}\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n var values = Array.isArray(constraint.value) ? constraint.value : [constraint.value];\n\n return values.some(function (expression) {\n return asRegExp(expression).test(value);\n }) || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NANP_REGEXP = /^(\\+?1[\\.\\-\\s]?)?\\(?[2-9]\\d{2}[\\)\\.\\-\\s]?\\s?[2-9]\\d{2}[\\.\\-\\s]?\\d{4}$/;\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$pattern = _ref.pattern,\n pattern = _ref$pattern === undefined ? NANP_REGEXP : _ref$pattern,\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n return (0, _pattern2.default)(value, context, { value: pattern, errorMessage: errorMessage });\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _utils = require('./utils');\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n return !(0, _utils.isEmpty)(value) || errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _toNumber = require('lodash/toNumber');\n\nvar _toNumber2 = _interopRequireDefault(_toNumber);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://stackoverflow.com/a/31711034/1873485\nfunction floatSafeRemainder(val, step) {\n var valDecCount = (val.toString().split('.')[1] || '').length;\n var stepDecCount = (step.toString().split('.')[1] || '').length;\n var decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n var valInt = parseInt(val.toFixed(decCount).replace('.', ''), 10);\n var stepInt = parseInt(step.toFixed(decCount).replace('.', ''), 10);\n return valInt % stepInt / Math.pow(10, decCount);\n}\n\nfunction validate(value, context) {\n var constraint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if ((0, _utils.isEmpty)(value)) return true;\n\n return floatSafeRemainder((0, _toNumber2.default)(value), (0, _toNumber2.default)(constraint.value)) === 0 || constraint.errorMessage || false;\n}","'use strict';\n\nexports.__esModule = true;\nexports.default = validate;\n\nvar _pattern = require('./pattern');\n\nvar _pattern2 = _interopRequireDefault(_pattern);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://gist.github.com/dperini/729294\nvar URL_REGEXP = new RegExp('^' +\n// protocol identifier\n'(?:(?:https?|ftps?|sftp)://)' +\n// user:pass authentication\n'(?:\\\\S+(?::\\\\S*)?@)?' + '(?:' +\n// IP address exclusion\n// private & local networks\n'(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})' + '(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})' + '(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})' +\n// IP address dotted notation octets\n// excludes loopback network 0.0.0.0\n// excludes reserved space >= 224.0.0.0\n// excludes network & broacast addresses\n// (first & last IP address of each class)\n'(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])' + '(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}' + '(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))' + '|' +\n// host name\n'(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)' +\n// domain name\n'(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*' +\n// TLD identifier\n'(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))' +\n// TLD may end with dot\n'\\\\.?' + ')' +\n// port number\n'(?::\\\\d{2,5})?' +\n// resource path\n'(?:[/?#]\\\\S*)?' + '$', 'i');\n\nfunction validate(value, context) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$pattern = _ref.pattern,\n pattern = _ref$pattern === undefined ? URL_REGEXP : _ref$pattern,\n _ref$errorMessage = _ref.errorMessage,\n errorMessage = _ref$errorMessage === undefined ? false : _ref$errorMessage;\n\n return (0, _pattern2.default)(value, context, { value: pattern, errorMessage: errorMessage });\n}","'use strict';\n\nexports.__esModule = true;\nexports.inputTypeOverride = exports.inputType = exports.isoDateFormat = undefined;\nexports.isEmpty = isEmpty;\n\nvar _isString = require('lodash/isString');\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _isUndefined = require('lodash/isUndefined');\n\nvar _isUndefined2 = _interopRequireDefault(_isUndefined);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global document */\nvar isoDateFormat = exports.isoDateFormat = 'YYYY-MM-DD';\n\nfunction isEmpty(value) {\n return (0, _isUndefined2.default)(value) || (0, _isString2.default)(value) && value.trim() === '' || value === false || Array.isArray(value) && value.length === 0;\n}\n\nvar inputType = exports.inputType = { date: false, number: false, time: false, month: false, week: false };\n\nvar inputTypeOverride = exports.inputTypeOverride = function inputTypeOverride(key, value) {\n inputType[key] = value;\n};\n\n/* istanbul ignore next */\nif (typeof document !== 'undefined' && typeof document.createElement === 'function') {\n var tester = document.createElement('input');\n\n for (var i in inputType) {\n if (inputType.hasOwnProperty(i)) {\n tester.setAttribute('type', i);\n tester.value = ':(';\n\n if (tester.type === i && tester.value === '') {\n inputType[i] = true;\n }\n }\n }\n}","'use strict';\n\nexports.__esModule = true;\nexports.AvValidator = exports.AvInputContainer = exports.AvBaseInput = exports.AvInput = exports.AvRadio = exports.AvRadioGroup = exports.AvGroup = exports.AvForm = exports.AvField = exports.AvFeedback = undefined;\n\nvar _AvFeedback = require('./AvFeedback');\n\nvar _AvFeedback2 = _interopRequireDefault(_AvFeedback);\n\nvar _AvField = require('./AvField');\n\nvar _AvField2 = _interopRequireDefault(_AvField);\n\nvar _AvForm = require('./AvForm');\n\nvar _AvForm2 = _interopRequireDefault(_AvForm);\n\nvar _AvGroup = require('./AvGroup');\n\nvar _AvGroup2 = _interopRequireDefault(_AvGroup);\n\nvar _AvRadioGroup = require('./AvRadioGroup');\n\nvar _AvRadioGroup2 = _interopRequireDefault(_AvRadioGroup);\n\nvar _AvRadio = require('./AvRadio');\n\nvar _AvRadio2 = _interopRequireDefault(_AvRadio);\n\nvar _AvInput = require('./AvInput');\n\nvar _AvInput2 = _interopRequireDefault(_AvInput);\n\nvar _AvBaseInput = require('./AvBaseInput');\n\nvar _AvBaseInput2 = _interopRequireDefault(_AvBaseInput);\n\nvar _AvInputContainer = require('./AvInputContainer');\n\nvar _AvInputContainer2 = _interopRequireDefault(_AvInputContainer);\n\nvar _AvValidator = require('./AvValidator');\n\nvar _AvValidator2 = _interopRequireDefault(_AvValidator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.AvFeedback = _AvFeedback2.default;\nexports.AvField = _AvField2.default;\nexports.AvForm = _AvForm2.default;\nexports.AvGroup = _AvGroup2.default;\nexports.AvRadioGroup = _AvRadioGroup2.default;\nexports.AvRadio = _AvRadio2.default;\nexports.AvInput = _AvInput2.default;\nexports.AvBaseInput = _AvBaseInput2.default;\nexports.AvInputContainer = _AvInputContainer2.default;\nexports.AvValidator = _AvValidator2.default;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/number/is-safe-integer\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-names\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'apathy',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#031A16',\n base01: '#0B342D',\n base02: '#184E45',\n base03: '#2B685E',\n base04: '#5F9C92',\n base05: '#81B5AC',\n base06: '#A7CEC8',\n base07: '#D2E7E4',\n base08: '#3E9688',\n base09: '#3E7996',\n base0A: '#3E4C96',\n base0B: '#883E96',\n base0C: '#963E4C',\n base0D: '#96883E',\n base0E: '#4C963E',\n base0F: '#3E965B'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ashes',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#1C2023',\n base01: '#393F45',\n base02: '#565E65',\n base03: '#747C84',\n base04: '#ADB3BA',\n base05: '#C7CCD1',\n base06: '#DFE2E5',\n base07: '#F3F4F5',\n base08: '#C7AE95',\n base09: '#C7C795',\n base0A: '#AEC795',\n base0B: '#95C7AE',\n base0C: '#95AEC7',\n base0D: '#AE95C7',\n base0E: '#C795AE',\n base0F: '#C79595'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier dune',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)',\n base00: '#20201d',\n base01: '#292824',\n base02: '#6e6b5e',\n base03: '#7d7a68',\n base04: '#999580',\n base05: '#a6a28c',\n base06: '#e8e4cf',\n base07: '#fefbec',\n base08: '#d73737',\n base09: '#b65611',\n base0A: '#cfb017',\n base0B: '#60ac39',\n base0C: '#1fad83',\n base0D: '#6684e1',\n base0E: '#b854d4',\n base0F: '#d43552'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier forest',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)',\n base00: '#1b1918',\n base01: '#2c2421',\n base02: '#68615e',\n base03: '#766e6b',\n base04: '#9c9491',\n base05: '#a8a19f',\n base06: '#e6e2e0',\n base07: '#f1efee',\n base08: '#f22c40',\n base09: '#df5320',\n base0A: '#d5911a',\n base0B: '#5ab738',\n base0C: '#00ad9c',\n base0D: '#407ee7',\n base0E: '#6666ea',\n base0F: '#c33ff3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier heath',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)',\n base00: '#1b181b',\n base01: '#292329',\n base02: '#695d69',\n base03: '#776977',\n base04: '#9e8f9e',\n base05: '#ab9bab',\n base06: '#d8cad8',\n base07: '#f7f3f7',\n base08: '#ca402b',\n base09: '#a65926',\n base0A: '#bb8a35',\n base0B: '#379a37',\n base0C: '#159393',\n base0D: '#516aec',\n base0E: '#7b59c0',\n base0F: '#cc33cc'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier lakeside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)',\n base00: '#161b1d',\n base01: '#1f292e',\n base02: '#516d7b',\n base03: '#5a7b8c',\n base04: '#7195a8',\n base05: '#7ea2b4',\n base06: '#c1e4f6',\n base07: '#ebf8ff',\n base08: '#d22d72',\n base09: '#935c25',\n base0A: '#8a8a0f',\n base0B: '#568c3b',\n base0C: '#2d8f6f',\n base0D: '#257fad',\n base0E: '#5d5db1',\n base0F: '#b72dd2'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier seaside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)',\n base00: '#131513',\n base01: '#242924',\n base02: '#5e6e5e',\n base03: '#687d68',\n base04: '#809980',\n base05: '#8ca68c',\n base06: '#cfe8cf',\n base07: '#f0fff0',\n base08: '#e6193c',\n base09: '#87711d',\n base0A: '#c3c322',\n base0B: '#29a329',\n base0C: '#1999b3',\n base0D: '#3d62f5',\n base0E: '#ad2bee',\n base0F: '#e619c3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bespin',\n author: 'jan t. sott',\n base00: '#28211c',\n base01: '#36312e',\n base02: '#5e5d5c',\n base03: '#666666',\n base04: '#797977',\n base05: '#8a8986',\n base06: '#9d9b97',\n base07: '#baae9e',\n base08: '#cf6a4c',\n base09: '#cf7d34',\n base0A: '#f9ee98',\n base0B: '#54be0d',\n base0C: '#afc4db',\n base0D: '#5ea6ea',\n base0E: '#9b859d',\n base0F: '#937121'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'brewer',\n author: 'timothée poisot (http://github.com/tpoisot)',\n base00: '#0c0d0e',\n base01: '#2e2f30',\n base02: '#515253',\n base03: '#737475',\n base04: '#959697',\n base05: '#b7b8b9',\n base06: '#dadbdc',\n base07: '#fcfdfe',\n base08: '#e31a1c',\n base09: '#e6550d',\n base0A: '#dca060',\n base0B: '#31a354',\n base0C: '#80b1d3',\n base0D: '#3182bd',\n base0E: '#756bb1',\n base0F: '#b15928'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bright',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#303030',\n base02: '#505050',\n base03: '#b0b0b0',\n base04: '#d0d0d0',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ffffff',\n base08: '#fb0120',\n base09: '#fc6d24',\n base0A: '#fda331',\n base0B: '#a1c659',\n base0C: '#76c7b7',\n base0D: '#6fb3d2',\n base0E: '#d381c3',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'chalk',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#f5f5f5',\n base08: '#fb9fb1',\n base09: '#eda987',\n base0A: '#ddb26f',\n base0B: '#acc267',\n base0C: '#12cfc0',\n base0D: '#6fc2ef',\n base0E: '#e1a3ee',\n base0F: '#deaf8f'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'codeschool',\n author: 'brettof86',\n base00: '#232c31',\n base01: '#1c3657',\n base02: '#2a343a',\n base03: '#3f4944',\n base04: '#84898c',\n base05: '#9ea7a6',\n base06: '#a7cfa3',\n base07: '#b5d8f6',\n base08: '#2a5491',\n base09: '#43820d',\n base0A: '#a03b1e',\n base0B: '#237986',\n base0C: '#b02f30',\n base0D: '#484d79',\n base0E: '#c59820',\n base0F: '#c98344'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'colors',\n author: 'mrmrs (http://clrs.cc)',\n base00: '#111111',\n base01: '#333333',\n base02: '#555555',\n base03: '#777777',\n base04: '#999999',\n base05: '#bbbbbb',\n base06: '#dddddd',\n base07: '#ffffff',\n base08: '#ff4136',\n base09: '#ff851b',\n base0A: '#ffdc00',\n base0B: '#2ecc40',\n base0C: '#7fdbff',\n base0D: '#0074d9',\n base0E: '#b10dc9',\n base0F: '#85144b'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'default',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#181818',\n base01: '#282828',\n base02: '#383838',\n base03: '#585858',\n base04: '#b8b8b8',\n base05: '#d8d8d8',\n base06: '#e8e8e8',\n base07: '#f8f8f8',\n base08: '#ab4642',\n base09: '#dc9656',\n base0A: '#f7ca88',\n base0B: '#a1b56c',\n base0C: '#86c1b9',\n base0D: '#7cafc2',\n base0E: '#ba8baf',\n base0F: '#a16946'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'eighties',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2d2d2d',\n base01: '#393939',\n base02: '#515151',\n base03: '#747369',\n base04: '#a09f93',\n base05: '#d3d0c8',\n base06: '#e8e6df',\n base07: '#f2f0ec',\n base08: '#f2777a',\n base09: '#f99157',\n base0A: '#ffcc66',\n base0B: '#99cc99',\n base0C: '#66cccc',\n base0D: '#6699cc',\n base0E: '#cc99cc',\n base0F: '#d27b53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'embers',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#16130F',\n base01: '#2C2620',\n base02: '#433B32',\n base03: '#5A5047',\n base04: '#8A8075',\n base05: '#A39A90',\n base06: '#BEB6AE',\n base07: '#DBD6D1',\n base08: '#826D57',\n base09: '#828257',\n base0A: '#6D8257',\n base0B: '#57826D',\n base0C: '#576D82',\n base0D: '#6D5782',\n base0E: '#82576D',\n base0F: '#825757'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'flat',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2C3E50',\n base01: '#34495E',\n base02: '#7F8C8D',\n base03: '#95A5A6',\n base04: '#BDC3C7',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ECF0F1',\n base08: '#E74C3C',\n base09: '#E67E22',\n base0A: '#F1C40F',\n base0B: '#2ECC71',\n base0C: '#1ABC9C',\n base0D: '#3498DB',\n base0E: '#9B59B6',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'google',\n author: 'seth wright (http://sethawright.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#CC342B',\n base09: '#F96A38',\n base0A: '#FBA922',\n base0B: '#198844',\n base0C: '#3971ED',\n base0D: '#3971ED',\n base0E: '#A36AC7',\n base0F: '#3971ED'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'grayscale',\n author: 'alexandre gavioli (https://github.com/alexx2/)',\n base00: '#101010',\n base01: '#252525',\n base02: '#464646',\n base03: '#525252',\n base04: '#ababab',\n base05: '#b9b9b9',\n base06: '#e3e3e3',\n base07: '#f7f7f7',\n base08: '#7c7c7c',\n base09: '#999999',\n base0A: '#a0a0a0',\n base0B: '#8e8e8e',\n base0C: '#868686',\n base0D: '#686868',\n base0E: '#747474',\n base0F: '#5e5e5e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'green screen',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#001100',\n base01: '#003300',\n base02: '#005500',\n base03: '#007700',\n base04: '#009900',\n base05: '#00bb00',\n base06: '#00dd00',\n base07: '#00ff00',\n base08: '#007700',\n base09: '#009900',\n base0A: '#007700',\n base0B: '#00bb00',\n base0C: '#005500',\n base0D: '#009900',\n base0E: '#00bb00',\n base0F: '#005500'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'harmonic16',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#0b1c2c',\n base01: '#223b54',\n base02: '#405c79',\n base03: '#627e99',\n base04: '#aabcce',\n base05: '#cbd6e2',\n base06: '#e5ebf1',\n base07: '#f7f9fb',\n base08: '#bf8b56',\n base09: '#bfbf56',\n base0A: '#8bbf56',\n base0B: '#56bf8b',\n base0C: '#568bbf',\n base0D: '#8b56bf',\n base0E: '#bf568b',\n base0F: '#bf5656'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'hopscotch',\n author: 'jan t. sott',\n base00: '#322931',\n base01: '#433b42',\n base02: '#5c545b',\n base03: '#797379',\n base04: '#989498',\n base05: '#b9b5b8',\n base06: '#d5d3d5',\n base07: '#ffffff',\n base08: '#dd464c',\n base09: '#fd8b19',\n base0A: '#fdcc59',\n base0B: '#8fc13e',\n base0C: '#149b93',\n base0D: '#1290bf',\n base0E: '#c85e7c',\n base0F: '#b33508'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\nvar _threezerotwofour = require('./threezerotwofour');\n\nexports.threezerotwofour = _interopRequire(_threezerotwofour);\n\nvar _apathy = require('./apathy');\n\nexports.apathy = _interopRequire(_apathy);\n\nvar _ashes = require('./ashes');\n\nexports.ashes = _interopRequire(_ashes);\n\nvar _atelierDune = require('./atelier-dune');\n\nexports.atelierDune = _interopRequire(_atelierDune);\n\nvar _atelierForest = require('./atelier-forest');\n\nexports.atelierForest = _interopRequire(_atelierForest);\n\nvar _atelierHeath = require('./atelier-heath');\n\nexports.atelierHeath = _interopRequire(_atelierHeath);\n\nvar _atelierLakeside = require('./atelier-lakeside');\n\nexports.atelierLakeside = _interopRequire(_atelierLakeside);\n\nvar _atelierSeaside = require('./atelier-seaside');\n\nexports.atelierSeaside = _interopRequire(_atelierSeaside);\n\nvar _bespin = require('./bespin');\n\nexports.bespin = _interopRequire(_bespin);\n\nvar _brewer = require('./brewer');\n\nexports.brewer = _interopRequire(_brewer);\n\nvar _bright = require('./bright');\n\nexports.bright = _interopRequire(_bright);\n\nvar _chalk = require('./chalk');\n\nexports.chalk = _interopRequire(_chalk);\n\nvar _codeschool = require('./codeschool');\n\nexports.codeschool = _interopRequire(_codeschool);\n\nvar _colors = require('./colors');\n\nexports.colors = _interopRequire(_colors);\n\nvar _default = require('./default');\n\nexports['default'] = _interopRequire(_default);\n\nvar _eighties = require('./eighties');\n\nexports.eighties = _interopRequire(_eighties);\n\nvar _embers = require('./embers');\n\nexports.embers = _interopRequire(_embers);\n\nvar _flat = require('./flat');\n\nexports.flat = _interopRequire(_flat);\n\nvar _google = require('./google');\n\nexports.google = _interopRequire(_google);\n\nvar _grayscale = require('./grayscale');\n\nexports.grayscale = _interopRequire(_grayscale);\n\nvar _greenscreen = require('./greenscreen');\n\nexports.greenscreen = _interopRequire(_greenscreen);\n\nvar _harmonic = require('./harmonic');\n\nexports.harmonic = _interopRequire(_harmonic);\n\nvar _hopscotch = require('./hopscotch');\n\nexports.hopscotch = _interopRequire(_hopscotch);\n\nvar _isotope = require('./isotope');\n\nexports.isotope = _interopRequire(_isotope);\n\nvar _marrakesh = require('./marrakesh');\n\nexports.marrakesh = _interopRequire(_marrakesh);\n\nvar _mocha = require('./mocha');\n\nexports.mocha = _interopRequire(_mocha);\n\nvar _monokai = require('./monokai');\n\nexports.monokai = _interopRequire(_monokai);\n\nvar _ocean = require('./ocean');\n\nexports.ocean = _interopRequire(_ocean);\n\nvar _paraiso = require('./paraiso');\n\nexports.paraiso = _interopRequire(_paraiso);\n\nvar _pop = require('./pop');\n\nexports.pop = _interopRequire(_pop);\n\nvar _railscasts = require('./railscasts');\n\nexports.railscasts = _interopRequire(_railscasts);\n\nvar _shapeshifter = require('./shapeshifter');\n\nexports.shapeshifter = _interopRequire(_shapeshifter);\n\nvar _solarized = require('./solarized');\n\nexports.solarized = _interopRequire(_solarized);\n\nvar _summerfruit = require('./summerfruit');\n\nexports.summerfruit = _interopRequire(_summerfruit);\n\nvar _tomorrow = require('./tomorrow');\n\nexports.tomorrow = _interopRequire(_tomorrow);\n\nvar _tube = require('./tube');\n\nexports.tube = _interopRequire(_tube);\n\nvar _twilight = require('./twilight');\n\nexports.twilight = _interopRequire(_twilight);","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'isotope',\n author: 'jan t. sott',\n base00: '#000000',\n base01: '#404040',\n base02: '#606060',\n base03: '#808080',\n base04: '#c0c0c0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#ff0000',\n base09: '#ff9900',\n base0A: '#ff0099',\n base0B: '#33ff00',\n base0C: '#00ffff',\n base0D: '#0066ff',\n base0E: '#cc00ff',\n base0F: '#3300ff'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'marrakesh',\n author: 'alexandre gavioli (http://github.com/alexx2/)',\n base00: '#201602',\n base01: '#302e00',\n base02: '#5f5b17',\n base03: '#6c6823',\n base04: '#86813b',\n base05: '#948e48',\n base06: '#ccc37a',\n base07: '#faf0a5',\n base08: '#c35359',\n base09: '#b36144',\n base0A: '#a88339',\n base0B: '#18974e',\n base0C: '#75a738',\n base0D: '#477ca1',\n base0E: '#8868b3',\n base0F: '#b3588e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'mocha',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#3B3228',\n base01: '#534636',\n base02: '#645240',\n base03: '#7e705a',\n base04: '#b8afad',\n base05: '#d0c8c6',\n base06: '#e9e1dd',\n base07: '#f5eeeb',\n base08: '#cb6077',\n base09: '#d28b71',\n base0A: '#f4bc87',\n base0B: '#beb55b',\n base0C: '#7bbda4',\n base0D: '#8ab3b5',\n base0E: '#a89bb9',\n base0F: '#bb9584'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'monokai',\n author: 'wimer hazenberg (http://www.monokai.nl)',\n base00: '#272822',\n base01: '#383830',\n base02: '#49483e',\n base03: '#75715e',\n base04: '#a59f85',\n base05: '#f8f8f2',\n base06: '#f5f4f1',\n base07: '#f9f8f5',\n base08: '#f92672',\n base09: '#fd971f',\n base0A: '#f4bf75',\n base0B: '#a6e22e',\n base0C: '#a1efe4',\n base0D: '#66d9ef',\n base0E: '#ae81ff',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ocean',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2b303b',\n base01: '#343d46',\n base02: '#4f5b66',\n base03: '#65737e',\n base04: '#a7adba',\n base05: '#c0c5ce',\n base06: '#dfe1e8',\n base07: '#eff1f5',\n base08: '#bf616a',\n base09: '#d08770',\n base0A: '#ebcb8b',\n base0B: '#a3be8c',\n base0C: '#96b5b4',\n base0D: '#8fa1b3',\n base0E: '#b48ead',\n base0F: '#ab7967'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'paraiso',\n author: 'jan t. sott',\n base00: '#2f1e2e',\n base01: '#41323f',\n base02: '#4f424c',\n base03: '#776e71',\n base04: '#8d8687',\n base05: '#a39e9b',\n base06: '#b9b6b0',\n base07: '#e7e9db',\n base08: '#ef6155',\n base09: '#f99b15',\n base0A: '#fec418',\n base0B: '#48b685',\n base0C: '#5bc4bf',\n base0D: '#06b6ef',\n base0E: '#815ba4',\n base0F: '#e96ba8'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'pop',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#eb008a',\n base09: '#f29333',\n base0A: '#f8ca12',\n base0B: '#37b349',\n base0C: '#00aabb',\n base0D: '#0e5a94',\n base0E: '#b31e8d',\n base0F: '#7a2d00'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'railscasts',\n author: 'ryan bates (http://railscasts.com)',\n base00: '#2b2b2b',\n base01: '#272935',\n base02: '#3a4055',\n base03: '#5a647e',\n base04: '#d4cfc9',\n base05: '#e6e1dc',\n base06: '#f4f1ed',\n base07: '#f9f7f3',\n base08: '#da4939',\n base09: '#cc7833',\n base0A: '#ffc66d',\n base0B: '#a5c261',\n base0C: '#519f50',\n base0D: '#6d9cbe',\n base0E: '#b6b3eb',\n base0F: '#bc9458'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'shapeshifter',\n author: 'tyler benziger (http://tybenz.com)',\n base00: '#000000',\n base01: '#040404',\n base02: '#102015',\n base03: '#343434',\n base04: '#555555',\n base05: '#ababab',\n base06: '#e0e0e0',\n base07: '#f9f9f9',\n base08: '#e92f2f',\n base09: '#e09448',\n base0A: '#dddd13',\n base0B: '#0ed839',\n base0C: '#23edda',\n base0D: '#3b48e3',\n base0E: '#f996e2',\n base0F: '#69542d'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'solarized',\n author: 'ethan schoonover (http://ethanschoonover.com/solarized)',\n base00: '#002b36',\n base01: '#073642',\n base02: '#586e75',\n base03: '#657b83',\n base04: '#839496',\n base05: '#93a1a1',\n base06: '#eee8d5',\n base07: '#fdf6e3',\n base08: '#dc322f',\n base09: '#cb4b16',\n base0A: '#b58900',\n base0B: '#859900',\n base0C: '#2aa198',\n base0D: '#268bd2',\n base0E: '#6c71c4',\n base0F: '#d33682'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'summerfruit',\n author: 'christopher corley (http://cscorley.github.io/)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#B0B0B0',\n base05: '#D0D0D0',\n base06: '#E0E0E0',\n base07: '#FFFFFF',\n base08: '#FF0086',\n base09: '#FD8900',\n base0A: '#ABA800',\n base0B: '#00C918',\n base0C: '#1faaaa',\n base0D: '#3777E6',\n base0E: '#AD00A1',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'threezerotwofour',\n author: 'jan t. sott (http://github.com/idleberg)',\n base00: '#090300',\n base01: '#3a3432',\n base02: '#4a4543',\n base03: '#5c5855',\n base04: '#807d7c',\n base05: '#a5a2a2',\n base06: '#d6d5d4',\n base07: '#f7f7f7',\n base08: '#db2d20',\n base09: '#e8bbd0',\n base0A: '#fded02',\n base0B: '#01a252',\n base0C: '#b5e4f4',\n base0D: '#01a0e4',\n base0E: '#a16a94',\n base0F: '#cdab53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'tomorrow',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#cc6666',\n base09: '#de935f',\n base0A: '#f0c674',\n base0B: '#b5bd68',\n base0C: '#8abeb7',\n base0D: '#81a2be',\n base0E: '#b294bb',\n base0F: '#a3685a'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'london tube',\n author: 'jan t. sott',\n base00: '#231f20',\n base01: '#1c3f95',\n base02: '#5a5758',\n base03: '#737171',\n base04: '#959ca1',\n base05: '#d9d8d8',\n base06: '#e7e7e8',\n base07: '#ffffff',\n base08: '#ee2e24',\n base09: '#f386a1',\n base0A: '#ffd204',\n base0B: '#00853e',\n base0C: '#85cebc',\n base0D: '#009ddc',\n base0E: '#98005d',\n base0F: '#b06110'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'twilight',\n author: 'david hart (http://hart-dev.com)',\n base00: '#1e1e1e',\n base01: '#323537',\n base02: '#464b50',\n base03: '#5f5a60',\n base04: '#838184',\n base05: '#a7a7a7',\n base06: '#c3c3c3',\n base07: '#ffffff',\n base08: '#cf6a4c',\n base09: '#cda869',\n base0A: '#f9ee98',\n base0B: '#8f9d6a',\n base0C: '#afc4db',\n base0D: '#7587a6',\n base0E: '#9b859d',\n base0F: '#9b703f'\n};\nmodule.exports = exports['default'];","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","require('../../modules/es6.number.is-safe-integer');\nmodule.exports = require('../../modules/_core').Number.isSafeInteger;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.get-own-property-names');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyNames(it) {\n return $Object.getOwnPropertyNames(it);\n};\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","exports = module.exports = require(\"../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".Toastify__toast-container {\\n z-index: 9999;\\n position: fixed;\\n padding: 4px;\\n width: 320px;\\n box-sizing: border-box;\\n color: #fff; }\\n\\n.Toastify__toast-container--top-left {\\n top: 1em;\\n left: 1em; }\\n\\n.Toastify__toast-container--top-center {\\n top: 1em;\\n left: 50%;\\n margin-left: -160px; }\\n\\n.Toastify__toast-container--top-right {\\n top: 1em;\\n right: 1em; }\\n\\n.Toastify__toast-container--bottom-left {\\n bottom: 1em;\\n left: 1em; }\\n\\n.Toastify__toast-container--bottom-center {\\n bottom: 1em;\\n left: 50%;\\n margin-left: -160px; }\\n\\n.Toastify__toast-container--bottom-right {\\n bottom: 1em;\\n right: 1em; }\\n\\n@media only screen and (max-width: 480px) {\\n .Toastify__toast-container {\\n width: 100vw;\\n padding: 0;\\n left: 0;\\n margin: 0; }\\n .Toastify__toast-container--top-left, .Toastify__toast-container--top-center, .Toastify__toast-container--top-right {\\n top: 0; }\\n .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center, .Toastify__toast-container--bottom-right {\\n bottom: 0; }\\n .Toastify__toast-container--rtl {\\n right: 0;\\n left: initial; } }\\n\\n.Toastify__toast {\\n position: relative;\\n min-height: 64px;\\n box-sizing: border-box;\\n margin-bottom: 1rem;\\n padding: 8px;\\n border-radius: 1px;\\n box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05);\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n max-height: 800px;\\n overflow: hidden;\\n font-family: sans-serif;\\n cursor: pointer;\\n direction: ltr; }\\n\\n.Toastify__toast--rtl {\\n direction: rtl; }\\n\\n.Toastify__toast--default {\\n background: #fff;\\n color: #aaa; }\\n\\n.Toastify__toast--info {\\n background: #3498db; }\\n\\n.Toastify__toast--success {\\n background: #07bc0c; }\\n\\n.Toastify__toast--warning {\\n background: #f1c40f; }\\n\\n.Toastify__toast--error {\\n background: #e74c3c; }\\n\\n.Toastify__toast-body {\\n margin: auto 0;\\n -ms-flex: 1;\\n flex: 1; }\\n\\n@media only screen and (max-width: 480px) {\\n .Toastify__toast {\\n margin-bottom: 0; } }\\n\\n.Toastify__close-button {\\n color: #fff;\\n font-weight: bold;\\n font-size: 14px;\\n background: transparent;\\n outline: none;\\n border: none;\\n padding: 0;\\n cursor: pointer;\\n opacity: 0.7;\\n transition: 0.3s ease;\\n -ms-flex-item-align: start;\\n align-self: flex-start; }\\n\\n.Toastify__close-button--default {\\n color: #000;\\n opacity: 0.3; }\\n\\n.Toastify__close-button:hover, .Toastify__close-button:focus {\\n opacity: 1; }\\n\\n@keyframes Toastify__trackProgress {\\n 0% {\\n width: 100%; }\\n 100% {\\n width: 0; } }\\n\\n.Toastify__progress-bar {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n width: 0;\\n height: 5px;\\n z-index: 9999;\\n opacity: 0.7;\\n animation: Toastify__trackProgress linear 1;\\n background-color: rgba(255, 255, 255, 0.7); }\\n\\n.Toastify__progress-bar--rtl {\\n right: 0;\\n left: initial; }\\n\\n.Toastify__progress-bar--default {\\n background: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55); }\\n\\n@keyframes Toastify__bounceInRight {\\n from,\\n 60%,\\n 75%,\\n 90%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\\n from {\\n opacity: 0;\\n transform: translate3d(3000px, 0, 0); }\\n 60% {\\n opacity: 1;\\n transform: translate3d(-25px, 0, 0); }\\n 75% {\\n transform: translate3d(10px, 0, 0); }\\n 90% {\\n transform: translate3d(-5px, 0, 0); }\\n to {\\n transform: none; } }\\n\\n@keyframes Toastify__bounceOutRight {\\n 20% {\\n opacity: 1;\\n transform: translate3d(-20px, 0, 0); }\\n to {\\n opacity: 0;\\n transform: translate3d(2000px, 0, 0); } }\\n\\n@keyframes Toastify__bounceInLeft {\\n from,\\n 60%,\\n 75%,\\n 90%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\\n 0% {\\n opacity: 0;\\n transform: translate3d(-3000px, 0, 0); }\\n 60% {\\n opacity: 1;\\n transform: translate3d(25px, 0, 0); }\\n 75% {\\n transform: translate3d(-10px, 0, 0); }\\n 90% {\\n transform: translate3d(5px, 0, 0); }\\n to {\\n transform: none; } }\\n\\n@keyframes Toastify__bounceOutLeft {\\n 20% {\\n opacity: 1;\\n transform: translate3d(20px, 0, 0); }\\n to {\\n opacity: 0;\\n transform: translate3d(-2000px, 0, 0); } }\\n\\n@keyframes Toastify__bounceInUp {\\n from,\\n 60%,\\n 75%,\\n 90%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\\n from {\\n opacity: 0;\\n transform: translate3d(0, 3000px, 0); }\\n 60% {\\n opacity: 1;\\n transform: translate3d(0, -20px, 0); }\\n 75% {\\n transform: translate3d(0, 10px, 0); }\\n 90% {\\n transform: translate3d(0, -5px, 0); }\\n to {\\n transform: translate3d(0, 0, 0); } }\\n\\n@keyframes Toastify__bounceOutUp {\\n 20% {\\n transform: translate3d(0, -10px, 0); }\\n 40%,\\n 45% {\\n opacity: 1;\\n transform: translate3d(0, 20px, 0); }\\n to {\\n opacity: 0;\\n transform: translate3d(0, -2000px, 0); } }\\n\\n@keyframes Toastify__bounceInDown {\\n from,\\n 60%,\\n 75%,\\n 90%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }\\n 0% {\\n opacity: 0;\\n transform: translate3d(0, -3000px, 0); }\\n 60% {\\n opacity: 1;\\n transform: translate3d(0, 25px, 0); }\\n 75% {\\n transform: translate3d(0, -10px, 0); }\\n 90% {\\n transform: translate3d(0, 5px, 0); }\\n to {\\n transform: none; } }\\n\\n@keyframes Toastify__bounceOutDown {\\n 20% {\\n transform: translate3d(0, 10px, 0); }\\n 40%,\\n 45% {\\n opacity: 1;\\n transform: translate3d(0, -20px, 0); }\\n to {\\n opacity: 0;\\n transform: translate3d(0, 2000px, 0); } }\\n\\n.Toastify__bounce-enter--top-left, .Toastify__bounce-enter--bottom-left {\\n animation-name: Toastify__bounceInLeft; }\\n\\n.Toastify__bounce-enter--top-right, .Toastify__bounce-enter--bottom-right {\\n animation-name: Toastify__bounceInRight; }\\n\\n.Toastify__bounce-enter--top-center {\\n animation-name: Toastify__bounceInDown; }\\n\\n.Toastify__bounce-enter--bottom-center {\\n animation-name: Toastify__bounceInUp; }\\n\\n.Toastify__bounce-exit--top-left, .Toastify__bounce-exit--bottom-left {\\n animation-name: Toastify__bounceOutLeft; }\\n\\n.Toastify__bounce-exit--top-right, .Toastify__bounce-exit--bottom-right {\\n animation-name: Toastify__bounceOutRight; }\\n\\n.Toastify__bounce-exit--top-center {\\n animation-name: Toastify__bounceOutUp; }\\n\\n.Toastify__bounce-exit--bottom-center {\\n animation-name: Toastify__bounceOutDown; }\\n\\n@keyframes Toastify__zoomIn {\\n from {\\n opacity: 0;\\n transform: scale3d(0.3, 0.3, 0.3); }\\n 50% {\\n opacity: 1; } }\\n\\n@keyframes Toastify__zoomOut {\\n from {\\n opacity: 1; }\\n 50% {\\n opacity: 0;\\n transform: scale3d(0.3, 0.3, 0.3); }\\n to {\\n opacity: 0; } }\\n\\n.Toastify__zoom-enter {\\n animation-name: Toastify__zoomIn; }\\n\\n.Toastify__zoom-exit {\\n animation-name: Toastify__zoomOut; }\\n\\n@keyframes Toastify__flipIn {\\n from {\\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n animation-timing-function: ease-in;\\n opacity: 0; }\\n 40% {\\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n animation-timing-function: ease-in; }\\n 60% {\\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\\n opacity: 1; }\\n 80% {\\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }\\n to {\\n transform: perspective(400px); } }\\n\\n@keyframes Toastify__flipOut {\\n from {\\n transform: perspective(400px); }\\n 30% {\\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\\n opacity: 1; }\\n to {\\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\\n opacity: 0; } }\\n\\n.Toastify__flip-enter {\\n animation-name: Toastify__flipIn; }\\n\\n.Toastify__flip-exit {\\n animation-name: Toastify__flipOut; }\\n\\n@keyframes Toastify__slideInRight {\\n from {\\n transform: translate3d(110%, 0, 0);\\n visibility: visible; }\\n to {\\n transform: translate3d(0, 0, 0); } }\\n\\n@keyframes Toastify__slideInLeft {\\n from {\\n transform: translate3d(-110%, 0, 0);\\n visibility: visible; }\\n to {\\n transform: translate3d(0, 0, 0); } }\\n\\n@keyframes Toastify__slideInUp {\\n from {\\n transform: translate3d(0, 110%, 0);\\n visibility: visible; }\\n to {\\n transform: translate3d(0, 0, 0); } }\\n\\n@keyframes Toastify__slideInDown {\\n from {\\n transform: translate3d(0, -110%, 0);\\n visibility: visible; }\\n to {\\n transform: translate3d(0, 0, 0); } }\\n\\n@keyframes Toastify__slideOutRight {\\n from {\\n transform: translate3d(0, 0, 0); }\\n to {\\n visibility: hidden;\\n transform: translate3d(110%, 0, 0); } }\\n\\n@keyframes Toastify__slideOutLeft {\\n from {\\n transform: translate3d(0, 0, 0); }\\n to {\\n visibility: hidden;\\n transform: translate3d(-110%, 0, 0); } }\\n\\n@keyframes Toastify__slideOutUp {\\n from {\\n transform: translate3d(0, 0, 0); }\\n to {\\n visibility: hidden;\\n transform: translate3d(0, 110%, 0); } }\\n\\n@keyframes Toastify__slideOutDown {\\n from {\\n transform: translate3d(0, 0, 0); }\\n to {\\n visibility: hidden;\\n transform: translate3d(0, -110%, 0); } }\\n\\n.Toastify__slide-enter--top-left, .Toastify__slide-enter--bottom-left {\\n animation-name: Toastify__slideInLeft; }\\n\\n.Toastify__slide-enter--top-right, .Toastify__slide-enter--bottom-right {\\n animation-name: Toastify__slideInRight; }\\n\\n.Toastify__slide-enter--top-center {\\n animation-name: Toastify__slideInDown; }\\n\\n.Toastify__slide-enter--bottom-center {\\n animation-name: Toastify__slideInUp; }\\n\\n.Toastify__slide-exit--top-left, .Toastify__slide-exit--bottom-left {\\n animation-name: Toastify__slideOutLeft; }\\n\\n.Toastify__slide-exit--top-right, .Toastify__slide-exit--bottom-right {\\n animation-name: Toastify__slideOutRight; }\\n\\n.Toastify__slide-exit--top-center {\\n animation-name: Toastify__slideOutUp; }\\n\\n.Toastify__slide-exit--bottom-center {\\n animation-name: Toastify__slideOutDown; }\\n\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n","/*\n Module dependencies\n*/\nvar ElementType = require('domelementtype');\nvar entities = require('entities');\n\n/*\n Boolean Attributes\n*/\nvar booleanAttributes = {\n __proto__: null,\n allowfullscreen: true,\n async: true,\n autofocus: true,\n autoplay: true,\n checked: true,\n controls: true,\n default: true,\n defer: true,\n disabled: true,\n hidden: true,\n ismap: true,\n loop: true,\n multiple: true,\n muted: true,\n open: true,\n readonly: true,\n required: true,\n reversed: true,\n scoped: true,\n seamless: true,\n selected: true,\n typemustmatch: true\n};\n\nvar unencodedElements = {\n __proto__: null,\n style: true,\n script: true,\n xmp: true,\n iframe: true,\n noembed: true,\n noframes: true,\n plaintext: true,\n noscript: true\n};\n\n/*\n Format attributes\n*/\nfunction formatAttrs(attributes, opts) {\n if (!attributes) return;\n\n var output = '',\n value;\n\n // Loop through the attributes\n for (var key in attributes) {\n value = attributes[key];\n if (output) {\n output += ' ';\n }\n\n if (!value && booleanAttributes[key]) {\n output += key;\n } else {\n output += key + '=\"' + (opts.decodeEntities ? entities.encodeXML(value) : value) + '\"';\n }\n }\n\n return output;\n}\n\n/*\n Self-enclosing tags (stolen from node-htmlparser)\n*/\nvar singleTag = {\n __proto__: null,\n area: true,\n base: true,\n basefont: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n frame: true,\n hr: true,\n img: true,\n input: true,\n isindex: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n};\n\n\nvar render = module.exports = function(dom, opts) {\n if (!Array.isArray(dom) && !dom.cheerio) dom = [dom];\n opts = opts || {};\n\n var output = '';\n\n for(var i = 0; i < dom.length; i++){\n var elem = dom[i];\n\n if (elem.type === 'root')\n output += render(elem.children, opts);\n else if (ElementType.isTag(elem))\n output += renderTag(elem, opts);\n else if (elem.type === ElementType.Directive)\n output += renderDirective(elem);\n else if (elem.type === ElementType.Comment)\n output += renderComment(elem);\n else if (elem.type === ElementType.CDATA)\n output += renderCdata(elem);\n else\n output += renderText(elem, opts);\n }\n\n return output;\n};\n\nfunction renderTag(elem, opts) {\n // Handle SVG\n if (elem.name === \"svg\") opts = {decodeEntities: opts.decodeEntities, xmlMode: true};\n\n var tag = '<' + elem.name,\n attribs = formatAttrs(elem.attribs, opts);\n\n if (attribs) {\n tag += ' ' + attribs;\n }\n\n if (\n opts.xmlMode\n && (!elem.children || elem.children.length === 0)\n ) {\n tag += '/>';\n } else {\n tag += '>';\n if (elem.children) {\n tag += render(elem.children, opts);\n }\n\n if (!singleTag[elem.name] || opts.xmlMode) {\n tag += '';\n }\n }\n\n return tag;\n}\n\nfunction renderDirective(elem) {\n return '<' + elem.data + '>';\n}\n\nfunction renderText(elem, opts) {\n var data = elem.data || '';\n\n // if entities weren't decoded, no need to encode them back\n if (opts.decodeEntities && !(elem.parent && elem.parent.name in unencodedElements)) {\n data = entities.encodeXML(data);\n }\n\n return data;\n}\n\nfunction renderCdata(elem) {\n return '';\n}\n\nfunction renderComment(elem) {\n return '';\n}\n","//Types of elements found in the DOM\nmodule.exports = {\n\tText: \"text\", //Text\n\tDirective: \"directive\", //\n\tComment: \"comment\", //\n\tScript: \"script\", // + diff --git a/front-end/build/www/manifest.webapp b/front-end/build/www/manifest.webapp new file mode 100644 index 0000000..23039f9 --- /dev/null +++ b/front-end/build/www/manifest.webapp @@ -0,0 +1,31 @@ +{ + "name": "payroll", + "short_name": "payroll", + "icons": [ + { + "src": "./content/images/hipster192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "./content/images/hipster256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "./content/images/hipster384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "./content/images/hipster512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#000000", + "background_color": "#e0e0e0", + "start_url": "/index.html", + "display": "standalone", + "orientation": "portrait" +} diff --git a/front-end/build/www/robots.txt b/front-end/build/www/robots.txt new file mode 100644 index 0000000..7cda274 --- /dev/null +++ b/front-end/build/www/robots.txt @@ -0,0 +1,11 @@ +# robotstxt.org/ + +User-agent: * +Disallow: /api/account +Disallow: /api/account/change-password +Disallow: /api/account/sessions +Disallow: /api/audits/ +Disallow: /api/logs/ +Disallow: /api/users/ +Disallow: /management/ +Disallow: /v2/api-docs/ diff --git a/front-end/build/www/swagger-ui/dist/css/print.css b/front-end/build/www/swagger-ui/dist/css/print.css new file mode 100644 index 0000000..f2e8446 --- /dev/null +++ b/front-end/build/www/swagger-ui/dist/css/print.css @@ -0,0 +1 @@ +.swagger-section pre code{display:block;padding:.5em;background:#f0f0f0}.swagger-section pre .clojure .built_in,.swagger-section pre .lisp .title,.swagger-section pre .nginx .title,.swagger-section pre .subst,.swagger-section pre .tag .title,.swagger-section pre code{color:#000}.swagger-section pre .addition,.swagger-section pre .aggregate,.swagger-section pre .apache .cbracket,.swagger-section pre .apache .tag,.swagger-section pre .bash .variable,.swagger-section pre .constant,.swagger-section pre .django .variable,.swagger-section pre .erlang_repl .function_or_atom,.swagger-section pre .flow,.swagger-section pre .markdown .header,.swagger-section pre .parent,.swagger-section pre .preprocessor,.swagger-section pre .ruby .symbol,.swagger-section pre .ruby .symbol .string,.swagger-section pre .rules .value,.swagger-section pre .rules .value .number,.swagger-section pre .smalltalk .class,.swagger-section pre .stream,.swagger-section pre .string,.swagger-section pre .tag .value,.swagger-section pre .template_tag,.swagger-section pre .tex .command,.swagger-section pre .tex .special,.swagger-section pre .title{color:#800}.swagger-section pre .annotation,.swagger-section pre .chunk,.swagger-section pre .comment,.swagger-section pre .diff .header,.swagger-section pre .markdown .blockquote,.swagger-section pre .template_comment{color:#888}.swagger-section pre .change,.swagger-section pre .date,.swagger-section pre .go .constant,.swagger-section pre .literal,.swagger-section pre .markdown .bullet,.swagger-section pre .markdown .link_url,.swagger-section pre .number,.swagger-section pre .regexp,.swagger-section pre .smalltalk .char,.swagger-section pre .smalltalk .symbol{color:#080}.swagger-section pre .apache .sqbracket,.swagger-section pre .array,.swagger-section pre .attr_selector,.swagger-section pre .clojure .attribute,.swagger-section pre .coffeescript .property,.swagger-section pre .decorator,.swagger-section pre .deletion,.swagger-section pre .doctype,.swagger-section pre .envvar,.swagger-section pre .erlang_repl .reserved,.swagger-section pre .filter .argument,.swagger-section pre .important,.swagger-section pre .javadoc,.swagger-section pre .label,.swagger-section pre .localvars,.swagger-section pre .markdown .link_label,.swagger-section pre .nginx .built_in,.swagger-section pre .pi,.swagger-section pre .prompt,.swagger-section pre .pseudo,.swagger-section pre .ruby .string,.swagger-section pre .shebang,.swagger-section pre .tex .formula,.swagger-section pre .vhdl .attribute{color:#88f}.swagger-section pre .aggregate,.swagger-section pre .apache .tag,.swagger-section pre .bash .variable,.swagger-section pre .built_in,.swagger-section pre .css .tag,.swagger-section pre .go .typename,.swagger-section pre .id,.swagger-section pre .javadoctag,.swagger-section pre .keyword,.swagger-section pre .markdown .strong,.swagger-section pre .phpdoc,.swagger-section pre .request,.swagger-section pre .smalltalk .class,.swagger-section pre .status,.swagger-section pre .tex .command,.swagger-section pre .title,.swagger-section pre .winutils,.swagger-section pre .yardoctag{font-weight:700}.swagger-section pre .markdown .emphasis{font-style:italic}.swagger-section pre .nginx .built_in{font-weight:400}.swagger-section pre .coffeescript .javascript,.swagger-section pre .javascript .xml,.swagger-section pre .tex .formula,.swagger-section pre .xml .cdata,.swagger-section pre .xml .css,.swagger-section pre .xml .javascript,.swagger-section pre .xml .vbscript{opacity:.5}.swagger-section .hljs{display:block;overflow-x:auto;padding:.5em;background:#f0f0f0}.swagger-section .hljs,.swagger-section .hljs-subst{color:#444}.swagger-section .hljs-attribute,.swagger-section .hljs-doctag,.swagger-section .hljs-keyword,.swagger-section .hljs-meta-keyword,.swagger-section .hljs-name,.swagger-section .hljs-selector-tag{font-weight:700}.swagger-section .hljs-addition,.swagger-section .hljs-built_in,.swagger-section .hljs-bullet,.swagger-section .hljs-code,.swagger-section .hljs-literal{color:#1f811f}.swagger-section .hljs-link,.swagger-section .hljs-regexp,.swagger-section .hljs-selector-attr,.swagger-section .hljs-selector-pseudo,.swagger-section .hljs-symbol,.swagger-section .hljs-template-variable,.swagger-section .hljs-variable{color:#bc6060}.swagger-section .hljs-deletion,.swagger-section .hljs-number,.swagger-section .hljs-quote,.swagger-section .hljs-selector-class,.swagger-section .hljs-selector-id,.swagger-section .hljs-string,.swagger-section .hljs-template-tag,.swagger-section .hljs-type{color:#800}.swagger-section .hljs-section,.swagger-section .hljs-title{color:#800;font-weight:700}.swagger-section .hljs-comment{color:#888}.swagger-section .hljs-meta{color:#2b6ea1}.swagger-section .hljs-emphasis{font-style:italic}.swagger-section .hljs-strong{font-weight:700}.swagger-section .swagger-ui-wrap{line-height:1;font-family:Droid Sans,sans-serif;min-width:760px;max-width:960px;margin-left:auto;margin-right:auto}.swagger-section .swagger-ui-wrap b,.swagger-section .swagger-ui-wrap strong{font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap blockquote,.swagger-section .swagger-ui-wrap q{quotes:none}.swagger-section .swagger-ui-wrap p{line-height:1.4em;padding:0 0 10px;color:#333}.swagger-section .swagger-ui-wrap blockquote:after,.swagger-section .swagger-ui-wrap blockquote:before,.swagger-section .swagger-ui-wrap q:after,.swagger-section .swagger-ui-wrap q:before{content:none}.swagger-section .swagger-ui-wrap .heading_with_menu h1,.swagger-section .swagger-ui-wrap .heading_with_menu h2,.swagger-section .swagger-ui-wrap .heading_with_menu h3,.swagger-section .swagger-ui-wrap .heading_with_menu h4,.swagger-section .swagger-ui-wrap .heading_with_menu h5,.swagger-section .swagger-ui-wrap .heading_with_menu h6{display:block;clear:none;float:left;-ms-box-sizing:border-box;box-sizing:border-box;width:60%}.swagger-section .swagger-ui-wrap table{border-collapse:collapse;border-spacing:0}.swagger-section .swagger-ui-wrap table thead tr th{padding:5px;font-size:.9em;color:#666;border-bottom:1px solid #999}.swagger-section .swagger-ui-wrap table tbody tr:last-child td{border-bottom:none}.swagger-section .swagger-ui-wrap table tbody tr.offset{background-color:#f0f0f0}.swagger-section .swagger-ui-wrap table tbody tr td{padding:6px;font-size:.9em;border-bottom:1px solid #ccc;vertical-align:top;line-height:1.3em}.swagger-section .swagger-ui-wrap ol{margin:0 0 10px;padding:0 0 0 18px;list-style-type:decimal}.swagger-section .swagger-ui-wrap ol li{padding:5px 0;font-size:.9em;color:#333}.swagger-section .swagger-ui-wrap ol,.swagger-section .swagger-ui-wrap ul{list-style:none}.swagger-section .swagger-ui-wrap h1 a,.swagger-section .swagger-ui-wrap h2 a,.swagger-section .swagger-ui-wrap h3 a,.swagger-section .swagger-ui-wrap h4 a,.swagger-section .swagger-ui-wrap h5 a,.swagger-section .swagger-ui-wrap h6 a{text-decoration:none}.swagger-section .swagger-ui-wrap h1 a:hover,.swagger-section .swagger-ui-wrap h2 a:hover,.swagger-section .swagger-ui-wrap h3 a:hover,.swagger-section .swagger-ui-wrap h4 a:hover,.swagger-section .swagger-ui-wrap h5 a:hover,.swagger-section .swagger-ui-wrap h6 a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap h1 span.divider,.swagger-section .swagger-ui-wrap h2 span.divider,.swagger-section .swagger-ui-wrap h3 span.divider,.swagger-section .swagger-ui-wrap h4 span.divider,.swagger-section .swagger-ui-wrap h5 span.divider,.swagger-section .swagger-ui-wrap h6 span.divider{color:#aaa}.swagger-section .swagger-ui-wrap a{color:#547f00}.swagger-section .swagger-ui-wrap a img{border:none}.swagger-section .swagger-ui-wrap article,.swagger-section .swagger-ui-wrap aside,.swagger-section .swagger-ui-wrap details,.swagger-section .swagger-ui-wrap figcaption,.swagger-section .swagger-ui-wrap figure,.swagger-section .swagger-ui-wrap footer,.swagger-section .swagger-ui-wrap header,.swagger-section .swagger-ui-wrap hgroup,.swagger-section .swagger-ui-wrap menu,.swagger-section .swagger-ui-wrap nav,.swagger-section .swagger-ui-wrap section,.swagger-section .swagger-ui-wrap summary{display:block}.swagger-section .swagger-ui-wrap pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#fcf6db;border:1px solid #e5e0c6;padding:10px}.swagger-section .swagger-ui-wrap pre code{line-height:1.6em;background:none}.swagger-section .swagger-ui-wrap .content>.content-type>div>label{clear:both;display:block;color:#0f6ab4;font-size:1.1em;margin:0;padding:15px 0 5px}.swagger-section .swagger-ui-wrap .content pre{font-size:12px;margin-top:5px;padding:5px}.swagger-section .swagger-ui-wrap .icon-btn{cursor:pointer}.swagger-section .swagger-ui-wrap .info_title{padding-bottom:10px;font-weight:700;font-size:25px}.swagger-section .swagger-ui-wrap .footer{margin-top:20px}.swagger-section .swagger-ui-wrap div.big p,.swagger-section .swagger-ui-wrap p.big{font-size:1em;margin-bottom:10px}.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input,.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input,.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea,.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input{width:500px!important}.swagger-section .swagger-ui-wrap .info_license,.swagger-section .swagger-ui-wrap .info_tos{padding-bottom:5px}.swagger-section .swagger-ui-wrap .message-fail{color:#c00}.swagger-section .swagger-ui-wrap .info_email,.swagger-section .swagger-ui-wrap .info_name,.swagger-section .swagger-ui-wrap .info_url{padding-bottom:5px}.swagger-section .swagger-ui-wrap .info_description{padding-bottom:10px;font-size:15px}.swagger-section .swagger-ui-wrap .markdown ol li,.swagger-section .swagger-ui-wrap .markdown ul li{padding:3px 0;line-height:1.4em;color:#333}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input{display:block;padding:4px;width:auto;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title{font-size:1.3em}.swagger-section .swagger-ui-wrap table.fullwidth{width:100%}.swagger-section .swagger-ui-wrap .model-signature{font-family:Droid Sans,sans-serif;font-size:1em;line-height:1.5em}.swagger-section .swagger-ui-wrap .model-signature .signature-nav a{text-decoration:none;color:#aaa}.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover{text-decoration:underline;color:#000}.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected{color:#000;text-decoration:none}.swagger-section .swagger-ui-wrap .model-signature .propType{color:#55a}.swagger-section .swagger-ui-wrap .model-signature pre:hover{background-color:#ffd}.swagger-section .swagger-ui-wrap .model-signature pre{font-size:.85em;line-height:1.2em;overflow:auto;height:200px;resize:vertical;cursor:pointer}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav{display:block;min-width:230px;margin:0;padding:0}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li{float:left;margin:0 5px 5px 0;padding:2px 5px 2px 0;border-right:1px solid #ddd}.swagger-section .swagger-ui-wrap .model-signature .propOpt{color:#555}.swagger-section .swagger-ui-wrap .model-signature .snippet small{font-size:.75em}.swagger-section .swagger-ui-wrap .model-signature .propOptKey{font-style:italic}.swagger-section .swagger-ui-wrap .model-signature .description .strong{font-weight:700;color:#000;font-size:.9em}.swagger-section .swagger-ui-wrap .model-signature .description div{font-size:.9em;line-height:1.5em;margin-left:1em}.swagger-section .swagger-ui-wrap .model-signature .description .stronger{font-weight:700;color:#000}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper{border-spacing:0;position:absolute;background-color:#fff;border:1px solid #bbb;display:none;font-size:11px;max-width:400px;line-height:30px;color:#000;padding:5px;margin-left:10px}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th{text-align:center;background-color:#eee;border:1px solid #bbb;font-size:11px;color:#666;font-weight:700;padding:5px;line-height:15px}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName{font-weight:700}.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:first-child,.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:last-child{display:inline}.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:not(:first-child):before{display:block;content:''}.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown>p:only-child{margin-right:-3px}.swagger-section .swagger-ui-wrap .model-signature .propName{font-weight:700}.swagger-section .swagger-ui-wrap .model-signature .signature-container{clear:both}.swagger-section .swagger-ui-wrap .body-textarea{width:300px;height:100px;border:1px solid #aaa}.swagger-section .swagger-ui-wrap .markdown li code,.swagger-section .swagger-ui-wrap .markdown p code{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#f0f0f0;color:#000;padding:1px 3px}.swagger-section .swagger-ui-wrap .required{font-weight:700}.swagger-section .swagger-ui-wrap .editor_holder{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;font-size:.9em}.swagger-section .swagger-ui-wrap .editor_holder label{font-weight:400!important}.swagger-section .swagger-ui-wrap .editor_holder label.required{font-weight:700!important}.swagger-section .swagger-ui-wrap input.parameter{width:300px;border:1px solid #aaa}.swagger-section .swagger-ui-wrap h1{color:#000;font-size:1.5em;line-height:1.3em;padding:10px 0;font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap .heading_with_menu{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap .heading_with_menu ul{display:block;clear:none;float:right;-ms-box-sizing:border-box;box-sizing:border-box;margin-top:10px}.swagger-section .swagger-ui-wrap h2{color:#000;font-size:1.3em;padding:10px 0}.swagger-section .swagger-ui-wrap h2 a{color:#000}.swagger-section .swagger-ui-wrap h2 span.sub{font-size:.7em;color:#999;font-style:italic}.swagger-section .swagger-ui-wrap h2 span.sub a{color:#777}.swagger-section .swagger-ui-wrap span.weak{color:#666}.swagger-section .swagger-ui-wrap .message-success{color:#89bf04}.swagger-section .swagger-ui-wrap caption,.swagger-section .swagger-ui-wrap td,.swagger-section .swagger-ui-wrap th{text-align:left;font-weight:400;vertical-align:middle}.swagger-section .swagger-ui-wrap .code{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea{font-family:Droid Sans,sans-serif;height:250px;padding:4px;display:block;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select{display:block;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label{display:block;float:left;clear:none;margin:0;padding:0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input{display:block;float:left;clear:none;margin:0 5px 0 0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label{color:#000}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label{display:block;clear:both;width:auto;padding:0 0 3px;color:#666}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr{padding-left:3px;color:#888}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints{margin-left:0;font-style:italic;font-size:.9em;margin:0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons{margin:0;padding:0}.swagger-section .swagger-ui-wrap span.blank,.swagger-section .swagger-ui-wrap span.empty{color:#888;font-style:italic}.swagger-section .swagger-ui-wrap .markdown h3{color:#547f00}.swagger-section .swagger-ui-wrap .markdown h4{color:#666}.swagger-section .swagger-ui-wrap .markdown pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#fcf6db;border:1px solid #e5e0c6;padding:10px;margin:0 0 10px}.swagger-section .swagger-ui-wrap .markdown pre code{line-height:1.6em;overflow:auto}.swagger-section .swagger-ui-wrap div.gist{margin:20px 0 25px!important}.swagger-section .swagger-ui-wrap ul#resources{font-family:Droid Sans,sans-serif;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource{border-bottom:1px solid #ddd}.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a,.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a,.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a{color:#555}.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child{border-bottom:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading{border:1px solid transparent;float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options{overflow:hidden;padding:0;display:block;clear:none;float:right;margin:14px 10px 0 0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li{float:left;clear:none;margin:0;padding:2px 10px;border-right:1px solid #ddd;color:#666;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a{color:#aaa;text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover{text-decoration:underline;color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child{padding-left:0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child{padding-left:0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2{color:#999;padding-left:0;display:block;clear:none;float:left;font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a{color:#999}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation{float:none;clear:both;overflow:hidden;display:block;margin:0 0 10px;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading{float:none;clear:both;overflow:hidden;display:block;margin:0;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3{display:block;clear:none;float:left;width:auto;margin:0;padding:0;line-height:1.1em;color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path{padding-left:10px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a{color:#000;text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a.toggleOperation.deprecated{text-decoration:line-through}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a{text-transform:uppercase;text-decoration:none;color:#fff;display:inline-block;width:50px;font-size:.7em;text-align:center;padding:7px 0 4px;border-radius:2px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span{margin:0;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options{overflow:hidden;padding:0;display:block;clear:none;float:right;margin:6px 10px 0 0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li{float:left;clear:none;margin:0;padding:2px 10px;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a{text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a .markdown p{color:inherit;padding:0;line-height:inherit}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a .nickname{color:#aaa;padding:0;line-height:inherit}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content{border-top:none;padding:10px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;margin:0 0 20px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4{font-size:1.1em;margin:0;padding:15px 0 5px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a{padding:4px 0 0 10px;display:inline-block;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit{display:block;clear:none;float:left;padding:6px 8px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber{background-image:url(../images/throbber.gif);width:128px;height:16px;display:block;clear:none;float:right}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type=text].error{outline:2px solid #000;outline-color:#c00}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form select[name=parameterContentType]{max-width:300px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;padding:10px;font-size:.9em;max-height:400px;overflow-y:auto}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading{background-color:#f9f2e9;border:1px solid #f0e0ca}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a{background-color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#f0e0ca;color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a{color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content{background-color:#faf5ee;border:1px solid #f0e0ca}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4{color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a{color:#dcb67f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading{background-color:#fcffcd;border:1px solid #000;border-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a{text-transform:uppercase;background-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#ffd20f;color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a{color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content{background-color:#fcffcd;border:1px solid #000;border-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4{color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a{color:#6fc992}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading{background-color:#f5e8e8;border:1px solid #e8c6c7}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a{text-transform:uppercase;background-color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#e8c6c7;color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a{color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content{background-color:#f7eded;border:1px solid #e8c6c7}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4{color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a{color:#c8787a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading{background-color:#e7f6ec;border:1px solid #c3e8d1}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a{background-color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3e8d1;color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a{color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content{background-color:#ebf7f0;border:1px solid #c3e8d1}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4{color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a{color:#6fc992}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading{background-color:#fce9e3;border:1px solid #f5d5c3}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a{background-color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#f0cecb;color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a{color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content{background-color:#faf0ef;border:1px solid #f0cecb}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4{color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a{color:#dcb67f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading{background-color:#e7f0f7;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a{background-color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3d9ec;color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content{background-color:#ebf3f9;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a{color:#6fa5d2}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading{background-color:#e7f0f7;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a{background-color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3d9ec;color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content{background-color:#ebf3f9;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a{color:#6fa5d2}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content{border-top:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child{padding-left:0}.swagger-section .swagger-ui-wrap p#colophon{margin:0 15px 40px;padding:10px 0;font-size:.8em;border-top:1px solid #ddd;font-family:Droid Sans,sans-serif;color:#999;font-style:italic}.swagger-section .swagger-ui-wrap p#colophon a{text-decoration:none;color:#547f00}.swagger-section .swagger-ui-wrap h3{color:#000;font-size:1.1em;padding:10px 0}.swagger-section .swagger-ui-wrap .markdown ol,.swagger-section .swagger-ui-wrap .markdown ul{font-family:Droid Sans,sans-serif;margin:5px 0 10px;padding:0 0 0 18px;list-style-type:disc}.swagger-section .swagger-ui-wrap form.form_box{background-color:#ebf3f9;border:1px solid #c3d9ec;padding:10px}.swagger-section .swagger-ui-wrap form.form_box label{color:#0f6ab4!important}.swagger-section .swagger-ui-wrap form.form_box input[type=submit]{display:block;padding:10px}.swagger-section .swagger-ui-wrap form.form_box p.weak{font-size:.8em}.swagger-section .swagger-ui-wrap form.form_box p{font-size:.9em;padding:0 0 15px;color:#7e7b6d}.swagger-section .swagger-ui-wrap form.form_box p a{color:#646257}.swagger-section .swagger-ui-wrap form.form_box p strong{color:#000}.swagger-section .swagger-ui-wrap .operation-status td.markdown>p:last-child{padding-bottom:0}.swagger-section .title{font-style:bold}.swagger-section .secondary_form{display:none}.swagger-section .main_image{display:block;margin-left:auto;margin-right:auto}.swagger-section .oauth_body{margin-left:100px;margin-right:100px}.swagger-section .oauth_submit{text-align:center;display:inline-block}.swagger-section .authorize-wrapper{margin:15px 0 10px}.swagger-section .authorize-wrapper_operation{float:right}.swagger-section .authorize__btn:hover{text-decoration:underline;cursor:pointer}.swagger-section .authorize__btn_operation:hover .authorize-scopes{display:block}.swagger-section .authorize-scopes{position:absolute;margin-top:20px;background:#fff;border:1px solid #ccc;border-radius:5px;display:none;font-size:13px;max-width:300px;line-height:30px;color:#000;padding:5px}.swagger-section .authorize-scopes .authorize__scope{text-decoration:none}.swagger-section .authorize__btn_operation{height:18px;vertical-align:middle;display:inline-block;background:url(../images/explorer_icons.png) no-repeat}.swagger-section .authorize__btn_operation_login{background-position:0 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section .authorize__btn_operation_logout{background-position:-30px 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section #auth_container{color:#fff;display:inline-block;border:none;padding:5px;width:87px;height:13px}.swagger-section #auth_container .authorize__btn{color:#fff}.swagger-section .auth_container{padding:0 0 10px;margin-bottom:5px;border-bottom:1px solid #ccc;font-size:.9em}.swagger-section .auth_container .auth__title{color:#547f00;font-size:1.2em}.swagger-section .auth_container .basic_auth__label{display:inline-block;width:60px}.swagger-section .auth_container .auth__description{color:#999;margin-bottom:5px}.swagger-section .auth_container .auth__button{margin-top:10px;height:30px}.swagger-section .auth_container .key_auth__field{margin:5px 0}.swagger-section .auth_container .key_auth__label{display:inline-block;width:60px}.swagger-section .api-popup-dialog{position:absolute;display:none}.swagger-section .api-popup-dialog-wrapper{z-index:2;width:500px;background:#fff;padding:20px;border:1px solid #ccc;border-radius:5px;font-size:13px;color:#777;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.swagger-section .api-popup-dialog-shadow{position:fixed;top:0;left:0;width:100%;height:100%;opacity:.2;background-color:gray;z-index:1}.swagger-section .api-popup-dialog .api-popup-title{font-size:24px;padding:10px 0}.swagger-section .api-popup-dialog .error-msg{padding-left:5px;padding-bottom:5px}.swagger-section .api-popup-dialog .api-popup-content{max-height:500px;overflow-y:auto}.swagger-section .api-popup-dialog .api-popup-authbtn,.swagger-section .api-popup-dialog .api-popup-cancel{height:30px}.swagger-section .api-popup-scopes{padding:10px 20px}.swagger-section .api-popup-scopes li{padding:5px 0;line-height:20px}.swagger-section .api-popup-scopes li input{position:relative;top:2px}.swagger-section .api-popup-scopes .api-scope-desc{padding-left:20px;font-style:italic}.swagger-section .api-popup-actions{padding-top:10px}.swagger-section fieldset{padding-bottom:10px;padding-left:20px}#header{display:none}.swagger-section .swagger-ui-wrap .model-signature pre{max-height:none}.swagger-section .swagger-ui-wrap .body-textarea,.swagger-section .swagger-ui-wrap input.parameter{width:100px}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options{display:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content{display:block!important} \ No newline at end of file diff --git a/front-end/build/www/swagger-ui/dist/css/reset.css b/front-end/build/www/swagger-ui/dist/css/reset.css new file mode 100644 index 0000000..40dc830 --- /dev/null +++ b/front-end/build/www/swagger-ui/dist/css/reset.css @@ -0,0 +1 @@ +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0} \ No newline at end of file diff --git a/front-end/build/www/swagger-ui/dist/css/screen.css b/front-end/build/www/swagger-ui/dist/css/screen.css new file mode 100644 index 0000000..1f069f6 --- /dev/null +++ b/front-end/build/www/swagger-ui/dist/css/screen.css @@ -0,0 +1 @@ +.swagger-section pre code{display:block;padding:.5em;background:#f0f0f0}.swagger-section pre .clojure .built_in,.swagger-section pre .lisp .title,.swagger-section pre .nginx .title,.swagger-section pre .subst,.swagger-section pre .tag .title,.swagger-section pre code{color:#000}.swagger-section pre .addition,.swagger-section pre .aggregate,.swagger-section pre .apache .cbracket,.swagger-section pre .apache .tag,.swagger-section pre .bash .variable,.swagger-section pre .constant,.swagger-section pre .django .variable,.swagger-section pre .erlang_repl .function_or_atom,.swagger-section pre .flow,.swagger-section pre .markdown .header,.swagger-section pre .parent,.swagger-section pre .preprocessor,.swagger-section pre .ruby .symbol,.swagger-section pre .ruby .symbol .string,.swagger-section pre .rules .value,.swagger-section pre .rules .value .number,.swagger-section pre .smalltalk .class,.swagger-section pre .stream,.swagger-section pre .string,.swagger-section pre .tag .value,.swagger-section pre .template_tag,.swagger-section pre .tex .command,.swagger-section pre .tex .special,.swagger-section pre .title{color:#800}.swagger-section pre .annotation,.swagger-section pre .chunk,.swagger-section pre .comment,.swagger-section pre .diff .header,.swagger-section pre .markdown .blockquote,.swagger-section pre .template_comment{color:#888}.swagger-section pre .change,.swagger-section pre .date,.swagger-section pre .go .constant,.swagger-section pre .literal,.swagger-section pre .markdown .bullet,.swagger-section pre .markdown .link_url,.swagger-section pre .number,.swagger-section pre .regexp,.swagger-section pre .smalltalk .char,.swagger-section pre .smalltalk .symbol{color:#080}.swagger-section pre .apache .sqbracket,.swagger-section pre .array,.swagger-section pre .attr_selector,.swagger-section pre .clojure .attribute,.swagger-section pre .coffeescript .property,.swagger-section pre .decorator,.swagger-section pre .deletion,.swagger-section pre .doctype,.swagger-section pre .envvar,.swagger-section pre .erlang_repl .reserved,.swagger-section pre .filter .argument,.swagger-section pre .important,.swagger-section pre .javadoc,.swagger-section pre .label,.swagger-section pre .localvars,.swagger-section pre .markdown .link_label,.swagger-section pre .nginx .built_in,.swagger-section pre .pi,.swagger-section pre .prompt,.swagger-section pre .pseudo,.swagger-section pre .ruby .string,.swagger-section pre .shebang,.swagger-section pre .tex .formula,.swagger-section pre .vhdl .attribute{color:#88f}.swagger-section pre .aggregate,.swagger-section pre .apache .tag,.swagger-section pre .bash .variable,.swagger-section pre .built_in,.swagger-section pre .css .tag,.swagger-section pre .go .typename,.swagger-section pre .id,.swagger-section pre .javadoctag,.swagger-section pre .keyword,.swagger-section pre .markdown .strong,.swagger-section pre .phpdoc,.swagger-section pre .request,.swagger-section pre .smalltalk .class,.swagger-section pre .status,.swagger-section pre .tex .command,.swagger-section pre .title,.swagger-section pre .winutils,.swagger-section pre .yardoctag{font-weight:700}.swagger-section pre .markdown .emphasis{font-style:italic}.swagger-section pre .nginx .built_in{font-weight:400}.swagger-section pre .coffeescript .javascript,.swagger-section pre .javascript .xml,.swagger-section pre .tex .formula,.swagger-section pre .xml .cdata,.swagger-section pre .xml .css,.swagger-section pre .xml .javascript,.swagger-section pre .xml .vbscript{opacity:.5}.swagger-section .hljs{display:block;overflow-x:auto;padding:.5em;background:#f0f0f0}.swagger-section .hljs,.swagger-section .hljs-subst{color:#444}.swagger-section .hljs-attribute,.swagger-section .hljs-doctag,.swagger-section .hljs-keyword,.swagger-section .hljs-meta-keyword,.swagger-section .hljs-name,.swagger-section .hljs-selector-tag{font-weight:700}.swagger-section .hljs-addition,.swagger-section .hljs-built_in,.swagger-section .hljs-bullet,.swagger-section .hljs-code,.swagger-section .hljs-literal{color:#1f811f}.swagger-section .hljs-link,.swagger-section .hljs-regexp,.swagger-section .hljs-selector-attr,.swagger-section .hljs-selector-pseudo,.swagger-section .hljs-symbol,.swagger-section .hljs-template-variable,.swagger-section .hljs-variable{color:#bc6060}.swagger-section .hljs-deletion,.swagger-section .hljs-number,.swagger-section .hljs-quote,.swagger-section .hljs-selector-class,.swagger-section .hljs-selector-id,.swagger-section .hljs-string,.swagger-section .hljs-template-tag,.swagger-section .hljs-type{color:#800}.swagger-section .hljs-section,.swagger-section .hljs-title{color:#800;font-weight:700}.swagger-section .hljs-comment{color:#888}.swagger-section .hljs-meta{color:#2b6ea1}.swagger-section .hljs-emphasis{font-style:italic}.swagger-section .hljs-strong{font-weight:700}.swagger-section .swagger-ui-wrap{line-height:1;font-family:Droid Sans,sans-serif;min-width:760px;max-width:960px;margin-left:auto;margin-right:auto}.swagger-section .swagger-ui-wrap b,.swagger-section .swagger-ui-wrap strong{font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap blockquote,.swagger-section .swagger-ui-wrap q{quotes:none}.swagger-section .swagger-ui-wrap p{line-height:1.4em;padding:0 0 10px;color:#333}.swagger-section .swagger-ui-wrap blockquote:after,.swagger-section .swagger-ui-wrap blockquote:before,.swagger-section .swagger-ui-wrap q:after,.swagger-section .swagger-ui-wrap q:before{content:none}.swagger-section .swagger-ui-wrap .heading_with_menu h1,.swagger-section .swagger-ui-wrap .heading_with_menu h2,.swagger-section .swagger-ui-wrap .heading_with_menu h3,.swagger-section .swagger-ui-wrap .heading_with_menu h4,.swagger-section .swagger-ui-wrap .heading_with_menu h5,.swagger-section .swagger-ui-wrap .heading_with_menu h6{display:block;clear:none;float:left;-ms-box-sizing:border-box;box-sizing:border-box;width:60%}.swagger-section .swagger-ui-wrap table{border-collapse:collapse;border-spacing:0}.swagger-section .swagger-ui-wrap table thead tr th{padding:5px;font-size:.9em;color:#666;border-bottom:1px solid #999}.swagger-section .swagger-ui-wrap table tbody tr:last-child td{border-bottom:none}.swagger-section .swagger-ui-wrap table tbody tr.offset{background-color:#f0f0f0}.swagger-section .swagger-ui-wrap table tbody tr td{padding:6px;font-size:.9em;border-bottom:1px solid #ccc;vertical-align:top;line-height:1.3em}.swagger-section .swagger-ui-wrap ol{margin:0 0 10px;padding:0 0 0 18px;list-style-type:decimal}.swagger-section .swagger-ui-wrap ol li{padding:5px 0;font-size:.9em;color:#333}.swagger-section .swagger-ui-wrap ol,.swagger-section .swagger-ui-wrap ul{list-style:none}.swagger-section .swagger-ui-wrap h1 a,.swagger-section .swagger-ui-wrap h2 a,.swagger-section .swagger-ui-wrap h3 a,.swagger-section .swagger-ui-wrap h4 a,.swagger-section .swagger-ui-wrap h5 a,.swagger-section .swagger-ui-wrap h6 a{text-decoration:none}.swagger-section .swagger-ui-wrap h1 a:hover,.swagger-section .swagger-ui-wrap h2 a:hover,.swagger-section .swagger-ui-wrap h3 a:hover,.swagger-section .swagger-ui-wrap h4 a:hover,.swagger-section .swagger-ui-wrap h5 a:hover,.swagger-section .swagger-ui-wrap h6 a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap h1 span.divider,.swagger-section .swagger-ui-wrap h2 span.divider,.swagger-section .swagger-ui-wrap h3 span.divider,.swagger-section .swagger-ui-wrap h4 span.divider,.swagger-section .swagger-ui-wrap h5 span.divider,.swagger-section .swagger-ui-wrap h6 span.divider{color:#aaa}.swagger-section .swagger-ui-wrap a{color:#547f00}.swagger-section .swagger-ui-wrap a img{border:none}.swagger-section .swagger-ui-wrap article,.swagger-section .swagger-ui-wrap aside,.swagger-section .swagger-ui-wrap details,.swagger-section .swagger-ui-wrap figcaption,.swagger-section .swagger-ui-wrap figure,.swagger-section .swagger-ui-wrap footer,.swagger-section .swagger-ui-wrap header,.swagger-section .swagger-ui-wrap hgroup,.swagger-section .swagger-ui-wrap menu,.swagger-section .swagger-ui-wrap nav,.swagger-section .swagger-ui-wrap section,.swagger-section .swagger-ui-wrap summary{display:block}.swagger-section .swagger-ui-wrap pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#fcf6db;border:1px solid #e5e0c6;padding:10px}.swagger-section .swagger-ui-wrap pre code{line-height:1.6em;background:none}.swagger-section .swagger-ui-wrap .content>.content-type>div>label{clear:both;display:block;color:#0f6ab4;font-size:1.1em;margin:0;padding:15px 0 5px}.swagger-section .swagger-ui-wrap .content pre{font-size:12px;margin-top:5px;padding:5px}.swagger-section .swagger-ui-wrap .icon-btn{cursor:pointer}.swagger-section .swagger-ui-wrap .info_title{padding-bottom:10px;font-weight:700;font-size:25px}.swagger-section .swagger-ui-wrap .footer{margin-top:20px}.swagger-section .swagger-ui-wrap div.big p,.swagger-section .swagger-ui-wrap p.big{font-size:1em;margin-bottom:10px}.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input,.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input,.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea,.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input{width:500px!important}.swagger-section .swagger-ui-wrap .info_license,.swagger-section .swagger-ui-wrap .info_tos{padding-bottom:5px}.swagger-section .swagger-ui-wrap .message-fail{color:#c00}.swagger-section .swagger-ui-wrap .info_email,.swagger-section .swagger-ui-wrap .info_name,.swagger-section .swagger-ui-wrap .info_url{padding-bottom:5px}.swagger-section .swagger-ui-wrap .info_description{padding-bottom:10px;font-size:15px}.swagger-section .swagger-ui-wrap .markdown ol li,.swagger-section .swagger-ui-wrap .markdown ul li{padding:3px 0;line-height:1.4em;color:#333}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input{display:block;padding:4px;width:auto;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title,.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title{font-size:1.3em}.swagger-section .swagger-ui-wrap table.fullwidth{width:100%}.swagger-section .swagger-ui-wrap .model-signature{font-family:Droid Sans,sans-serif;font-size:1em;line-height:1.5em}.swagger-section .swagger-ui-wrap .model-signature .signature-nav a{text-decoration:none;color:#aaa}.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover{text-decoration:underline;color:#000}.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected{color:#000;text-decoration:none}.swagger-section .swagger-ui-wrap .model-signature .propType{color:#55a}.swagger-section .swagger-ui-wrap .model-signature pre:hover{background-color:#ffd}.swagger-section .swagger-ui-wrap .model-signature pre{font-size:.85em;line-height:1.2em;overflow:auto;height:200px;resize:vertical;cursor:pointer}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav{display:block;min-width:230px;margin:0;padding:0}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li{float:left;margin:0 5px 5px 0;padding:2px 5px 2px 0;border-right:1px solid #ddd}.swagger-section .swagger-ui-wrap .model-signature .propOpt{color:#555}.swagger-section .swagger-ui-wrap .model-signature .snippet small{font-size:.75em}.swagger-section .swagger-ui-wrap .model-signature .propOptKey{font-style:italic}.swagger-section .swagger-ui-wrap .model-signature .description .strong{font-weight:700;color:#000;font-size:.9em}.swagger-section .swagger-ui-wrap .model-signature .description div{font-size:.9em;line-height:1.5em;margin-left:1em}.swagger-section .swagger-ui-wrap .model-signature .description .stronger{font-weight:700;color:#000}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper{border-spacing:0;position:absolute;background-color:#fff;border:1px solid #bbb;display:none;font-size:11px;max-width:400px;line-height:30px;color:#000;padding:5px;margin-left:10px}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th{text-align:center;background-color:#eee;border:1px solid #bbb;font-size:11px;color:#666;font-weight:700;padding:5px;line-height:15px}.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName{font-weight:700}.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:first-child,.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:last-child{display:inline}.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown>p:not(:first-child):before{display:block;content:''}.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown>p:only-child{margin-right:-3px}.swagger-section .swagger-ui-wrap .model-signature .propName{font-weight:700}.swagger-section .swagger-ui-wrap .model-signature .signature-container{clear:both}.swagger-section .swagger-ui-wrap .body-textarea{width:300px;height:100px;border:1px solid #aaa}.swagger-section .swagger-ui-wrap .markdown li code,.swagger-section .swagger-ui-wrap .markdown p code{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#f0f0f0;color:#000;padding:1px 3px}.swagger-section .swagger-ui-wrap .required{font-weight:700}.swagger-section .swagger-ui-wrap .editor_holder{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;font-size:.9em}.swagger-section .swagger-ui-wrap .editor_holder label{font-weight:400!important}.swagger-section .swagger-ui-wrap .editor_holder label.required{font-weight:700!important}.swagger-section .swagger-ui-wrap input.parameter{width:300px;border:1px solid #aaa}.swagger-section .swagger-ui-wrap h1{color:#000;font-size:1.5em;line-height:1.3em;padding:10px 0;font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap .heading_with_menu{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap .heading_with_menu ul{display:block;clear:none;float:right;-ms-box-sizing:border-box;box-sizing:border-box;margin-top:10px}.swagger-section .swagger-ui-wrap h2{color:#000;font-size:1.3em;padding:10px 0}.swagger-section .swagger-ui-wrap h2 a{color:#000}.swagger-section .swagger-ui-wrap h2 span.sub{font-size:.7em;color:#999;font-style:italic}.swagger-section .swagger-ui-wrap h2 span.sub a{color:#777}.swagger-section .swagger-ui-wrap span.weak{color:#666}.swagger-section .swagger-ui-wrap .message-success{color:#89bf04}.swagger-section .swagger-ui-wrap caption,.swagger-section .swagger-ui-wrap td,.swagger-section .swagger-ui-wrap th{text-align:left;font-weight:400;vertical-align:middle}.swagger-section .swagger-ui-wrap .code{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea{font-family:Droid Sans,sans-serif;height:250px;padding:4px;display:block;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select{display:block;clear:both}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label{display:block;float:left;clear:none;margin:0;padding:0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input{display:block;float:left;clear:none;margin:0 5px 0 0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label{color:#000}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label{display:block;clear:both;width:auto;padding:0 0 3px;color:#666}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr{padding-left:3px;color:#888}.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints{margin-left:0;font-style:italic;font-size:.9em;margin:0}.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons{margin:0;padding:0}.swagger-section .swagger-ui-wrap span.blank,.swagger-section .swagger-ui-wrap span.empty{color:#888;font-style:italic}.swagger-section .swagger-ui-wrap .markdown h3{color:#547f00}.swagger-section .swagger-ui-wrap .markdown h4{color:#666}.swagger-section .swagger-ui-wrap .markdown pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;background-color:#fcf6db;border:1px solid #e5e0c6;padding:10px;margin:0 0 10px}.swagger-section .swagger-ui-wrap .markdown pre code{line-height:1.6em;overflow:auto}.swagger-section .swagger-ui-wrap div.gist{margin:20px 0 25px!important}.swagger-section .swagger-ui-wrap ul#resources{font-family:Droid Sans,sans-serif;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource{border-bottom:1px solid #ddd}.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a,.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a,.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a{color:#555}.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child{border-bottom:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading{border:1px solid transparent;float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options{overflow:hidden;padding:0;display:block;clear:none;float:right;margin:14px 10px 0 0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li{float:left;clear:none;margin:0;padding:2px 10px;border-right:1px solid #ddd;color:#666;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a{color:#aaa;text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover{text-decoration:underline;color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child{padding-left:0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first,.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child{padding-left:0}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2{color:#999;padding-left:0;display:block;clear:none;float:left;font-family:Droid Sans,sans-serif;font-weight:700}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a{color:#999}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation{float:none;clear:both;overflow:hidden;display:block;margin:0 0 10px;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading{float:none;clear:both;overflow:hidden;display:block;margin:0;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3{display:block;clear:none;float:left;width:auto;margin:0;padding:0;line-height:1.1em;color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path{padding-left:10px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a{color:#000;text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a.toggleOperation.deprecated{text-decoration:line-through}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a{text-transform:uppercase;text-decoration:none;color:#fff;display:inline-block;width:50px;font-size:.7em;text-align:center;padding:7px 0 4px;border-radius:2px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span{margin:0;padding:0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options{overflow:hidden;padding:0;display:block;clear:none;float:right;margin:6px 10px 0 0}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li{float:left;clear:none;margin:0;padding:2px 10px;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a{text-decoration:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a .markdown p{color:inherit;padding:0;line-height:inherit}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a .nickname{color:#aaa;padding:0;line-height:inherit}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content{border-top:none;padding:10px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;margin:0 0 20px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4{font-size:1.1em;margin:0;padding:15px 0 5px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header{float:none;clear:both;overflow:hidden;display:block}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a{padding:4px 0 0 10px;display:inline-block;font-size:.9em}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit{display:block;clear:none;float:left;padding:6px 8px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber{background-image:url(../images/throbber.gif);width:128px;height:16px;display:block;clear:none;float:right}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type=text].error{outline:2px solid #000;outline-color:#c00}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form select[name=parameterContentType]{max-width:300px}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre{font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;padding:10px;font-size:.9em;max-height:400px;overflow-y:auto}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading{background-color:#f9f2e9;border:1px solid #f0e0ca}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a{background-color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#f0e0ca;color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a{color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content{background-color:#faf5ee;border:1px solid #f0e0ca}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4{color:#c5862b}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a{color:#dcb67f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading{background-color:#fcffcd;border:1px solid #000;border-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a{text-transform:uppercase;background-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#ffd20f;color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a{color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content{background-color:#fcffcd;border:1px solid #000;border-color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4{color:#ffd20f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a{color:#6fc992}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading{background-color:#f5e8e8;border:1px solid #e8c6c7}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a{text-transform:uppercase;background-color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#e8c6c7;color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a{color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content{background-color:#f7eded;border:1px solid #e8c6c7}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4{color:#a41e22}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a{color:#c8787a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading{background-color:#e7f6ec;border:1px solid #c3e8d1}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a{background-color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3e8d1;color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a{color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content{background-color:#ebf7f0;border:1px solid #c3e8d1}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4{color:#10a54a}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a{color:#6fc992}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading{background-color:#fce9e3;border:1px solid #f5d5c3}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a{background-color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#f0cecb;color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a{color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content{background-color:#faf0ef;border:1px solid #f0cecb}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4{color:#d38042}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a{color:#dcb67f}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading{background-color:#e7f0f7;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a{background-color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3d9ec;color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content{background-color:#ebf3f9;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a{color:#6fa5d2}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading{background-color:#e7f0f7;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a{background-color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li{border-right:1px solid #ddd;border-right-color:#c3d9ec;color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content{background-color:#ebf3f9;border:1px solid #c3d9ec}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4{color:#0f6ab4}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a{color:#6fa5d2}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content{border-top:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child{padding-right:0;border-right:none}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover{text-decoration:underline}.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first,.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child{padding-left:0}.swagger-section .swagger-ui-wrap p#colophon{margin:0 15px 40px;padding:10px 0;font-size:.8em;border-top:1px solid #ddd;font-family:Droid Sans,sans-serif;color:#999;font-style:italic}.swagger-section .swagger-ui-wrap p#colophon a{text-decoration:none;color:#547f00}.swagger-section .swagger-ui-wrap h3{color:#000;font-size:1.1em;padding:10px 0}.swagger-section .swagger-ui-wrap .markdown ol,.swagger-section .swagger-ui-wrap .markdown ul{font-family:Droid Sans,sans-serif;margin:5px 0 10px;padding:0 0 0 18px;list-style-type:disc}.swagger-section .swagger-ui-wrap form.form_box{background-color:#ebf3f9;border:1px solid #c3d9ec;padding:10px}.swagger-section .swagger-ui-wrap form.form_box label{color:#0f6ab4!important}.swagger-section .swagger-ui-wrap form.form_box input[type=submit]{display:block;padding:10px}.swagger-section .swagger-ui-wrap form.form_box p.weak{font-size:.8em}.swagger-section .swagger-ui-wrap form.form_box p{font-size:.9em;padding:0 0 15px;color:#7e7b6d}.swagger-section .swagger-ui-wrap form.form_box p a{color:#646257}.swagger-section .swagger-ui-wrap form.form_box p strong{color:#000}.swagger-section .swagger-ui-wrap .operation-status td.markdown>p:last-child{padding-bottom:0}.swagger-section .title{font-style:bold}.swagger-section .secondary_form{display:none}.swagger-section .main_image{display:block;margin-left:auto;margin-right:auto}.swagger-section .oauth_body{margin-left:100px;margin-right:100px}.swagger-section .oauth_submit{text-align:center;display:inline-block}.swagger-section .authorize-wrapper{margin:15px 0 10px}.swagger-section .authorize-wrapper_operation{float:right}.swagger-section .authorize__btn:hover{text-decoration:underline;cursor:pointer}.swagger-section .authorize__btn_operation:hover .authorize-scopes{display:block}.swagger-section .authorize-scopes{position:absolute;margin-top:20px;background:#fff;border:1px solid #ccc;border-radius:5px;display:none;font-size:13px;max-width:300px;line-height:30px;color:#000;padding:5px}.swagger-section .authorize-scopes .authorize__scope{text-decoration:none}.swagger-section .authorize__btn_operation{height:18px;vertical-align:middle;display:inline-block;background:url(../images/explorer_icons.png) no-repeat}.swagger-section .authorize__btn_operation_login{background-position:0 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section .authorize__btn_operation_logout{background-position:-30px 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section #auth_container{color:#fff;display:inline-block;border:none;padding:5px;width:87px;height:13px}.swagger-section #auth_container .authorize__btn{color:#fff}.swagger-section .auth_container{padding:0 0 10px;margin-bottom:5px;border-bottom:1px solid #ccc;font-size:.9em}.swagger-section .auth_container .auth__title{color:#547f00;font-size:1.2em}.swagger-section .auth_container .basic_auth__label{display:inline-block;width:60px}.swagger-section .auth_container .auth__description{color:#999;margin-bottom:5px}.swagger-section .auth_container .auth__button{margin-top:10px;height:30px}.swagger-section .auth_container .key_auth__field{margin:5px 0}.swagger-section .auth_container .key_auth__label{display:inline-block;width:60px}.swagger-section .api-popup-dialog{position:absolute;display:none}.swagger-section .api-popup-dialog-wrapper{z-index:2;width:500px;background:#fff;padding:20px;border:1px solid #ccc;border-radius:5px;font-size:13px;color:#777;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.swagger-section .api-popup-dialog-shadow{position:fixed;top:0;left:0;width:100%;height:100%;opacity:.2;background-color:gray;z-index:1}.swagger-section .api-popup-dialog .api-popup-title{font-size:24px;padding:10px 0}.swagger-section .api-popup-dialog .error-msg{padding-left:5px;padding-bottom:5px}.swagger-section .api-popup-dialog .api-popup-content{max-height:500px;overflow-y:auto}.swagger-section .api-popup-dialog .api-popup-authbtn,.swagger-section .api-popup-dialog .api-popup-cancel{height:30px}.swagger-section .api-popup-scopes{padding:10px 20px}.swagger-section .api-popup-scopes li{padding:5px 0;line-height:20px}.swagger-section .api-popup-scopes li input{position:relative;top:2px}.swagger-section .api-popup-scopes .api-scope-desc{padding-left:20px;font-style:italic}.swagger-section .api-popup-actions{padding-top:10px}.swagger-section fieldset{padding-bottom:10px;padding-left:20px}.swagger-section .access,.swagger-section .auth{float:right}.swagger-section .api-ic{height:18px;vertical-align:middle;display:inline-block;background:url(../images/explorer_icons.png) no-repeat}.swagger-section .api-ic .api_information_panel{position:relative;margin-top:20px;margin-left:-5px;background:#fff;border:1px solid #ccc;border-radius:5px;display:none;font-size:13px;max-width:300px;line-height:30px;color:#000;padding:5px}.swagger-section .api-ic .api_information_panel p .api-msg-enabled{color:green}.swagger-section .api-ic .api_information_panel p .api-msg-disabled{color:red}.swagger-section .api-ic:hover .api_information_panel{position:absolute;display:block}.swagger-section .ic-info{background-position:0 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section .ic-warning{background-position:-60px 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section .ic-error{background-position:-30px 0;width:18px;margin-top:-6px;margin-left:4px}.swagger-section .ic-off{background-position:-90px 0;width:58px;margin-top:-4px;cursor:pointer}.swagger-section .ic-on{background-position:-160px 0;width:58px;margin-top:-4px;cursor:pointer}.swagger-section #header{background-color:#89bf04;padding:9px 14px 19px;height:23px;min-width:775px}.swagger-section #input_baseUrl{width:400px}.swagger-section #api_selector{display:block;clear:none;float:right}.swagger-section #api_selector .input{display:inline-block;clear:none;margin:0 10px 0 0}.swagger-section #api_selector input{font-size:.9em;padding:3px;margin:0}.swagger-section #input_apiKey{width:200px}.swagger-section #auth_container .authorize__btn,.swagger-section #explore{display:block;text-decoration:none;font-weight:700;padding:6px 8px;font-size:.9em;color:#fff;background-color:#547f00;border-radius:4px}.swagger-section #auth_container .authorize__btn:hover,.swagger-section #explore:hover{background-color:#547f00}.swagger-section #header #logo{font-size:1.5em;font-weight:700;text-decoration:none;color:#fff}.swagger-section #header #logo .logo__img{display:block;float:left;margin-top:2px}.swagger-section #header #logo .logo__title{display:inline-block;padding:5px 0 0 10px}.swagger-section #content_message{margin:10px 15px;font-style:italic;color:#999}.swagger-section #message-bar{min-height:30px;text-align:center;padding-top:10px}.swagger-section .swagger-collapse:before{content:"-"}.swagger-section .swagger-expand:before{content:"+"}.swagger-section .error{outline-color:#c00;background-color:#f2dede} \ No newline at end of file diff --git a/front-end/build/www/swagger-ui/dist/css/style.css b/front-end/build/www/swagger-ui/dist/css/style.css new file mode 100644 index 0000000..52907e4 --- /dev/null +++ b/front-end/build/www/swagger-ui/dist/css/style.css @@ -0,0 +1 @@ +.swagger-section #header a#logo{font-size:1.5em;font-weight:700;text-decoration:none;padding:20px 0 20px 40px}#text-head{font-size:80px;font-family:Roboto,sans-serif;color:#fff;float:right;margin-right:20%}.navbar-fixed-top .navbar-brand,.navbar-fixed-top .navbar-nav,.navbar-header{height:auto}.navbar-inverse{background-color:#000;border-color:#000}#navbar-brand{margin-left:20%}.navtext{font-size:10px}.h1,h1{font-size:60px}.navbar-default .navbar-header .navbar-brand{color:#a2dfee}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a{color:#393939;font-family:Arvo,serif;font-size:1.5em}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover{color:#000}.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2{color:#525252;padding-left:0;display:block;clear:none;float:left;font-family:Arvo,serif;font-weight:700}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#0a0a0a}.container1{width:1500px;margin:auto;margin-top:0;background-repeat:no-repeat;background-position:-40px -20px;margin-bottom:210px}.container-inner{width:1200px;margin:auto;background-color:hsla(192,8%,88%,.75);padding-bottom:40px;padding-top:40px;border-radius:15px}.header-content{padding:0;width:1000px}.title1{font-size:80px;font-family:Vollkorn,serif;color:#404040;text-align:center;padding-top:40px;padding-bottom:100px}#icon{margin-top:-18px}.subtext{font-size:25px;font-style:italic;color:#08b;text-align:right;padding-right:250px}.bg-primary{background-color:#00468b}.navbar-default .nav>li>a,.navbar-default .nav>li>a:focus,.navbar-default .nav>li>a:focus:hover,.navbar-default .nav>li>a:hover{color:#08b}.text-faded{font-size:25px;font-family:Vollkorn,serif}.section-heading{font-family:Vollkorn,serif;font-size:45px;padding-bottom:10px}hr{border-color:#00468b;padding-bottom:10px}.description{margin-top:20px;padding-bottom:200px}.description li{font-family:Vollkorn,serif;font-size:25px;color:#525252;margin-left:28%;padding-top:5px}.gap{margin-top:200px}.troubleshootingtext{color:hsla(0,0%,100%,.7);padding-left:30%}.troubleshootingtext li{list-style-type:circle;font-size:25px;padding-bottom:5px}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.block.response_body.json:hover{cursor:pointer}.backdrop{color:blue}#myModal{height:100%}.modal-backdrop{bottom:0;position:fixed}.curl{padding:10px;font-family:Anonymous Pro,Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;font-size:.9em;max-height:400px;margin-top:5px;overflow-y:auto;background-color:#fcf6db;border:1px solid #e5e0c6;border-radius:4px}.curl_title{font-size:1.1em;margin:0;padding:15px 0 5px;font-family:Open Sans,Helvetica Neue,Arial,sans-serif;font-weight:500;line-height:1.1}.footer{display:none}.swagger-section .swagger-ui-wrap h2{padding:0}h2{margin:0;margin-bottom:5px}.markdown p,.swagger-section .swagger-ui-wrap .code{font-size:15px;font-family:Arvo,serif}.swagger-section .swagger-ui-wrap b{font-family:Arvo,serif}#signin:hover{cursor:pointer}.dropdown-menu{padding:15px}.navbar-right .dropdown-menu{left:0;right:auto}#signinbutton{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b}.navbar-default .nav>li .details{color:#000;text-transform:none;font-size:15px;font-weight:400;font-family:Open Sans,sans-serif;font-style:italic;line-height:20px;top:-2px}.navbar-default .nav>li .details:hover{color:#000}#signout{width:100%;height:32px;font-size:13px;font-weight:700;color:#08b} \ No newline at end of file diff --git a/front-end/build/www/swagger-ui/dist/css/typography.css b/front-end/build/www/swagger-ui/dist/css/typography.css new file mode 100644 index 0000000..e69de29 diff --git a/front-end/build/www/swagger-ui/dist/images/throbber.gif b/front-end/build/www/swagger-ui/dist/images/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..06393889242fb3ea9e0205fa84369ec7bb66d15a GIT binary patch literal 9257 zcmd^^X;@R|x`tQg5wbE8AV3mAn1TjmQ&en2CK8~ENEH<+P_)pZ24y2E+7O0>K^a6u zQ3;5MiU^7p6*M3qDk!2=YEcHMQ>nzEYP;R`e2C@r+U+?#XaC*&gKPcB#k$`o&;7mu zYNhYYXe|Uo84#4ZIko#rcU5K8*yFL{qT47O&^5fZH$ zVZ@%(l~vVHjnm;H@KL8@r%yUHoo;rbHI_4lIH(_nsTT>S2`DFOD~uCb9_dF4`#QgI zy7ldMcLs+A_s%|e1pRPrbX-tpeNP!9(IpMFTce`t_5U%lP99z%&i6`1d~ zWeM!Rxc50<+d$e^9LT`?B+aMK~apR zHm?q;p<7{wN2g|I^aGlSws;VP84j(z%aQwvAWv83Z$}p(% zZ^?2;gxg(ey_`V5J7{;!o;o;KslW@z5EP~JGs|U)J7dF&(ff#A=6vU?cGQ$-4+;Jf z-ggJEa!yStn`_EWvl)#yhm6XVs}UUbsi;+agri;mCfjH^Uy;lH+Zw^h)4N?oZgZz4 zJk(fTZ|Bi^;+s_M=~+d#vyoxEPzTlOS=mX@sbl*uRj>=MaMr}cFIY8i?UM61>86uB zV$DlOUCiUJwbzJMP@D$urzK|lL2-PC!p1l47V-ZG<5Ev0Z5h~Kx?`KOp7gkAjV93A z-Gc7MrlxTf?wF;CbNc@tCHJH{TB3c;#{SVu%97}tyAM2n&|9W_?qv}$*Jt*%7Yxb# zV0;d;7|lDEltJYS+U)#aiJO};?_Jyy_4%syQ(uy?-J-Yx-9O5nKRk@@XSS~X<(2u~ zV-LamWm~!iqtH9wkpf8mAXZhOD&L#aA_%)4h2M;1M5jt zIR>Us+%W-GXa_f^opKg=DSrAs)AXeRa;Hp0aC1OgbxQ%Qr_QvTleM1jkR!2mkcX$3 ztsR8~G9iqh(-FJ@F_rQBIYDXV_6s7G9SxaVF^laZqcx$!D97m|7t16j6@Jt6UdDRy49Qyvs|c>RuA|@b%}`*wU}2^7q;&Vtc6@lb zcXl)T!6nYDzmMJ~%n$KNXyNlCG)GkJ4!82;v6@d3>s5r~E+3!O?049JDr14Y^PeMI02R`0lJ^=oJ zYd|*u9|SU(j7hY?+<=(?fP*mtV*zFhOrz6%{VA?ozdm&(Jf^V zMfPZ?>l`mS3{Uq8IM;e!+1YjJy2!mzK$O|wPeU{*QSbs9m+@`f5KxO3PBnQ=%RsZg%go*fJ`*w9TL{-WgZVIA$!YV}3BRcfeXaR$x#b zW)Tpd#8E4)^MyYdkH;4_;ChJuw%n+Be7Ko4;w-nHvyo$d_0e-YiF78Df&)_)(}fcr_r0mPH(4RRYWIu+d@t0&Ss@O^s! zOKyX&13)%N@83r^;QsgN{rl(!0|RF1FA)b1{CRXAy&1ySz@>olPiR4r$aMdq&_=nK zq|cFs8phWJ1@%dZ-gXd{zDbTILD>)qEvH-NU*Rf1b2J1Ri79`rBFl@ z8E^0I)OqEi{pH(a24b9YPG;Kz@t-qZW;3Mpe`MRlmYx{7bH-XZ&`RQ7Rb^%}gc&X| zd}Q-FZf|RWxHU?PR!(C?80zu(^l>*h{#ulSiid(O!J(8P-41bNM3tnX@U6NS5yo0? zdcF)~xFE&+&|gZ$23dV5t~?$$&ymZ;F8j7GGMncGSsDo%>J`26=&l=X#rSKv_64;0 zr;k6no@=gV`P)K!=kaHl>q?!`X>(A;84tg^Md<`zA%qbRLby1Z=fn*ZRdNqs%Tq|3 zOt}lZu0q9oKJhgz&+^7PCt$=UFW=R*w?a1)ePoL*`R$Gxj?TU@12tTHsT$giHQU+sqf;fS0FpT!< z z#UR4L_rT;lfRLVo8|3$7cmuxwjY5rmYs&kR6z_LRhf9-=4QalKQYEWw^4-EBI3j$& zA>$Im_{ZA>0`)E_&m%x6a)BThkx=e|aMkOrK9zb1YzqpQ&WZ^$)2T>CwTCuYRn5y) z3fVXg-@R5&Bf4?WUTyD|hBDe2>xEh|o-y}o5Se~+Ob!5xN>CaAN!<4)F zwNh!Y7B?@AigokFYNJL`0Vz&-ekrY95-n3M<%GR<;SzXRmO7(zd+gf|$Thb%;pby2 zyd{5TJ?|JYUgpSlJ0=LB@k6#d&opuPGq^qJAIumfhigC2qAX0OEnYnT@O;bA?X1O5 zpLe9|%_H+Yki!Rv$7Kvjv8r7Z?$<>G)g*%D*V#s&kz>Z3V1 z3!ZKh9H8Nl9IdhEW_rY#oYdDCLTe+nQ{(d2pBX8%CmxL+1`|b#Vb!?IY!kT7$PDWAP9$FY=e9KSK{DEH|408! zl-$lv)U8$EB{~es&j>rYg%{{JRvIl8@NK}L=xDAEVv(o#W@3LUDc*m?yKSPR0O|nY zAh;*QuBdpja8HzP8Uw`ce-r*LrUA47ZvZ)ff3k4^>;dFcof}9eXeeM<0OVj&CKDVK zpUKKIF%hSmry!pwK68UX>zOF@dv}B4Gg)^2GQmN7@A?zG!xO6dT*Cq0+r{eY6}AfU zf`|~y!?^R*nB0!iTcg|CgM}ou^H*s~5)%h;Xh;PYOM!|Yhfk$w;@`1Dx1y!EZrM&^zMat!^Wz# z=Z{;Pa0w21oA1X3*9=`*c7o3ePa^k%Vzu>2C_7DaZJ8FW5GJv|t>`Ym;_S>7g_3XI zdRb!Ppd`ErK`pUDHRsJd9@)bu>}s1)nKsyAR7h21<1u{DX1gd_Vf;^zdUpFPeSHHR z7AMgw^{FlFlK91CGMafKt`$FLhq#^=->@Uok7pqW6&#Zs4*E(i5-jog43A*qC@!(8 z8&F}pofRcMVmcJd=f;fvlfAR!ZqeaTE?#TQ^jQM0ioaJf8m^!Kdv^`f5kEsD0=gX#4={QE1$3A4K~V$ITKEd){XVLx?i6K*D>JF6E=i znqF^X#&UX}rfB|#A9%y|sR5i6B5gyk>8@Q+xHg|^5iz7C2}YkGF)nuP4LX#k2tRBP z=!VnWnXea(K#Wvg2&0f{!mXuuWaPpsoZ)3TSaEp;i|_)CvP=4wjI; zH%7tcLM8dQXsHW*#|}%TG9yiGpyjBltpcpXkpl8zg~x zD{QG)2Z8x$vfjgDc(J6i|OHoLX&!<+m^<$S3DtA8Mf!{ z7;g1}0uqJ0Mxuy%=#BFX5;Xh9JkrA$d}neS9T;$F$kXn}ss zF{Jn}9EDk=>h)sMy$YXfhKIDxr7U@3xl+uI|N5y!>?{aVn703L1Qgb$ql%JT^lsGD%)~)(H?Spj$zNt)h)Raob z@KyVB@&ngE0rtMW4!UTqGX>{&KHJAWqb)oYq9O)e)nmN0jVa;LNbKXx04a+8&O;q) zHBzGejrqt7Dk$Z2VR%%K#`!((pXE*MR{jGtv|q$p5#v9N0f^6B9IB!Q6(y$TmHRLM zsYXm2jn3f{9T)KVVzotDx=Ng8q0Z*VDZOkd5C!p0PRoFt>NyVEc9*%YR&2>Nq~$AI zXOQfjJ&wpGMe~I8y=cC(QR4=W2GWccFK(3`d&gN+)qWtW-`*}mZI%KDRl4@rUv1%d zxFO82lhW$xQyYxJg8tOZyXm1As%kEFNn)eW{R61M>af@wr(YW{R@+eL2 zx?SovK+867$F%T;Dfeajw|kiQ81GcOnS$Y4+hp8g_w1P8_~79d9p$*M1_Ei81$H$Ti6oi?ZW)&tmsJa7RV1LKddm7R*qL54L7j zvCr1Mrb;l!=m^TbJun-C_6$7w81E1eAQC^6s4>rZ4&I5+yyu$kha%Z&d+|S7Ki#{2 zy}%Giz|eR|G?ychX%%=eL`W(aLarb(L4jd>J+wlX;xMV9H8J!l&i?~Mw7)jlIuLD% zyq+AK92j#kC`ycv$SJ|E7!FBParx#v<3_rZ-DLQ@>`#sdl5}immok8&`{YgF|+< z`tB>e%6G{=B4?V-be>`&*}0d*f?$yBX@w+rJht@O+=^zttqB2p=IiA17#YD$4-fih z@$gJ95mGmFhN!d;3Ag4#>3o`>%L{G=9<}qOJ$wDN)%)MN6bVsAPG4oKB3+8r6!Qf9 z3m8?jIpWcEJbt6|f?Y4nMXK(--YZ|GA2_aRS!do%J9S7?Q&4FYL@sPilq}e4tlYa& z?f+we^=FH^Z9|dnXZghblW!IYGIAT{``58&7vZBybh+GuIPP{h*J?&vf7i8rv6qgx zab9~l+K`tvC7pWtlS!5lt(n#Yl}PAR(v01oXjc0F?T0w>+*p#PtE?Tf_hMrEaZ!^V zbv_>=4xibc0TUxg^I>TS?HR4fdiWl`@6{7|WU9G68l7tOz2p>oIe~NNr!>Q&PHm`4 z98R?g(IT*nl#{_|*WO_h0X78;WwMp?A^Zi)W@BX5q==TdOl?~J6HK(0b(xD6?m3e3 z#+zMaSJb(W$h5+d+6vujSjyi_R80c9>7h;0YlUFDvN`iNGu&5HQ5^e>6x?&JSc4V$6_I1jJ4vnCVbkU`Gz=Uy#~OI( zlL-$UAE$pVCsD_rICM#Q!ltzcqDphp5L|ZrqUm>=H%x!RjMrF#*?BN2shvUg=H;)& zy~_xWl*k$~9Hl6PIq({dELPE-r4*YNs7?5{>dlC`EcK~lPKB_8V)G@H)UZFF8$tXT z@^raW#Hq4OJGFL2Aye|HU&_NL%dYans6?ltqEBz`Q|m=@Zh4=-p2r;}q(Nbsk$fUI zP|(Ns2>MDvZi1H7<55frlQn#%?`WY3g`+fRuC#UJx%#d!zxEu3=}zF514S=6f@?~$ zeuSB=6E7r3ya|; z@K7M3VBrls6c{M*M_{AB_fVjgQ|F(FuK(@=1eWeVMSpLglllqV6Rg-L_46;?^IskS z)x6|SR1^gGl6amWjkb1dX}^8DumNXNmhsfxKA#;bBBIZE@0gma5yQY(FX>|N~Y^mgq`xc zdxOf6r{9u#_e0gV3(fdBTdV2Sc4SN5ZmP?cB4?KR").attr(t);this.setElement(n,!1)}}}),e.sync=function(t,n,s){var r=E[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:r,dataType:"json"};if(s.url||(a.url=i.result(n,"url")||j()),null!=s.data||!n||"create"!==t&&"update"!==t&&"patch"!==t||(a.contentType="application/json",a.data=JSON.stringify(s.attrs||n.toJSON(s))),s.emulateJSON&&(a.contentType="application/x-www-form-urlencoded",a.data=a.data?{model:a.data}:{}),s.emulateHTTP&&("PUT"===r||"DELETE"===r||"PATCH"===r)){a.type="POST",s.emulateJSON&&(a.data._method=r);var o=s.beforeSend;s.beforeSend=function(t){if(t.setRequestHeader("X-HTTP-Method-Override",r),o)return o.apply(this,arguments)}}"GET"===a.type||s.emulateJSON||(a.processData=!1),"PATCH"===a.type&&x&&(a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")});var h=s.xhr=e.ajax(i.extend(a,s));return n.trigger("request",n,h,s),h};var x=!("undefined"==typeof window||!window.ActiveXObject||window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent),E={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var k=e.Router=function(t){t||(t={}),t.routes&&(this.routes=t.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},T=/\((.*?)\)/g,$=/(\(\?)?:\w+/g,S=/\*\w+/g,H=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend(k.prototype,o,{initialize:function(){},route:function(t,n,s){i.isRegExp(t)||(t=this._routeToRegExp(t)),i.isFunction(n)&&(s=n,n=""),s||(s=this[n]);var r=this;return e.history.route(t,function(i){var a=r._extractParameters(t,i);r.execute(s,a),r.trigger.apply(r,["route:"+n].concat(a)),r.trigger("route",n,a),e.history.trigger("route",r,n,a)}),this},execute:function(t,e){t&&t.apply(this,e)},navigate:function(t,i){return e.history.navigate(t,i),this},_bindRoutes:function(){if(this.routes){this.routes=i.result(this,"routes");for(var t,e=i.keys(this.routes);null!=(t=e.pop());)this.route(t,this.routes[t])}},_routeToRegExp:function(t){return t=t.replace(H,"\\$&").replace(T,"(?:$1)?").replace($,function(t,e){return e?t:"([^/?]+)"}).replace(S,"([^?]*?)"),new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var n=t.exec(e).slice(1);return i.map(n,function(t,e){return e===n.length-1?t||null:t?decodeURIComponent(t):null})}});var A=e.History=function(){this.handlers=[],i.bindAll(this,"checkUrl"),"undefined"!=typeof window&&(this.location=window.location,this.history=window.history)},I=/^[#\/]|\s+$/g,N=/^\/+|\/+$/g,R=/msie [\w.]+/,O=/\/$/,P=/#.*$/;A.started=!1,i.extend(A.prototype,o,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(null==t)if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(O,"");t.indexOf(i)||(t=t.slice(i.length))}else t=this.getHash();return t.replace(I,"")},start:function(t){if(A.started)throw new Error("Backbone.history has already been started");A.started=!0,this.options=i.extend({root:"/"},this.options,t),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var n=this.getFragment(),s=document.documentMode,r=R.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);if(this.root=("/"+this.root+"/").replace(N,"/"),r&&this._wantsHashChange){var a=e.$('