From 292cffbbd518051ef10f424b32a2d669876b1154 Mon Sep 17 00:00:00 2001 From: chenbolin Date: Tue, 27 Apr 2021 17:17:21 +0800 Subject: [PATCH 01/17] use monorepo, merge api client project --- .gitignore | 16 +- README.md | 61 +- package.json | 8 + packages/api/Dockerfile | 22 + packages/api/README.md | 1 + packages/api/package.json | 29 + packages/api/src/DAO.js | 107 + packages/api/src/index.js | 129 + packages/api/utils/config.js | 9 + packages/api/utils/dbInit.js | 53 + packages/api/utils/mongoScript.md | 8 + packages/client/.babelrc | 10 + packages/client/.editorconfig | 30 + packages/client/.eslintignore | 6 + packages/client/.eslintrc | 29 + packages/client/.reduxrc | 7 + packages/client/README.md | 6 + packages/client/bin/compile.js | 24 + packages/client/bin/server.js | 11 + packages/client/blueprints/.eslintrc | 11 + .../files/blueprints/__name__/files/.gitkeep | 1 + .../files/blueprints/__name__/index.js | 27 + packages/client/blueprints/blueprint/index.js | 13 + .../__route__/modules/__realname__.js | 24 + .../__route__/modules/__realname__.spec.js | 13 + packages/client/blueprints/duck/index.js | 31 + .../forms/__name__Form/__name__Form.js | 38 + .../__root__/forms/__name__Form/index.js | 2 + .../files/__test__/forms/__name__Form.spec.js | 5 + packages/client/blueprints/form/index.js | 5 + .../layouts/__name__Layout/__name__Layout.js | 16 + .../__root__/layouts/__name__Layout/index.js | 2 + .../__test__/layouts/__name__Layout.spec.js | 7 + packages/client/blueprints/layout/index.js | 5 + .../routes/__name__/__dumb__/__name__.js | 29 + .../__name__/__smart__/__name__Container.js | 37 + .../files/__root__/routes/__name__/index.js | 29 + .../routes/__name__/modules/__realname__.js | 64 + .../client/blueprints/route4list/index.js | 27 + .../__route__/__dumb__/__name__/__name__.js | 17 + .../__route__/__dumb__/__name__/index.js | 2 + .../__route__/__smart__/__name__Container.js | 33 + .../__dumb__/__name__/__name__.spec.js | 8 + .../__smart__/__name__Container.spec.js | 15 + packages/client/blueprints/smart/index.js | 41 + packages/client/build/karma.conf.js | 76 + packages/client/build/webpack-compiler.js | 35 + packages/client/build/webpack.config.js | 275 + packages/client/config/environments.js | 36 + packages/client/config/index.js | 136 + packages/client/node_modules/.bin/_mocha | 15 + packages/client/node_modules/.bin/_mocha.cmd | 7 + packages/client/node_modules/.bin/babel | 15 + .../client/node_modules/.bin/babel-doctor | 15 + .../client/node_modules/.bin/babel-doctor.cmd | 7 + .../node_modules/.bin/babel-external-helpers | 15 + .../.bin/babel-external-helpers.cmd | 7 + packages/client/node_modules/.bin/babel-node | 15 + .../client/node_modules/.bin/babel-node.cmd | 7 + packages/client/node_modules/.bin/babel.cmd | 7 + .../client/node_modules/.bin/better-npm-run | 15 + .../node_modules/.bin/better-npm-run.cmd | 7 + packages/client/node_modules/.bin/bnr | 15 + packages/client/node_modules/.bin/bnr.cmd | 7 + packages/client/node_modules/.bin/codecov | 15 + packages/client/node_modules/.bin/codecov.cmd | 7 + packages/client/node_modules/.bin/eslint | 15 + packages/client/node_modules/.bin/eslint.cmd | 7 + packages/client/node_modules/.bin/karma | 15 + packages/client/node_modules/.bin/karma.cmd | 7 + packages/client/node_modules/.bin/mocha | 15 + packages/client/node_modules/.bin/mocha.cmd | 7 + packages/client/node_modules/.bin/node-sass | 15 + .../client/node_modules/.bin/node-sass.cmd | 7 + packages/client/node_modules/.bin/nodemon | 15 + packages/client/node_modules/.bin/nodemon.cmd | 7 + packages/client/node_modules/.bin/phantomjs | 15 + .../client/node_modules/.bin/phantomjs.cmd | 7 + packages/client/node_modules/.bin/rimraf | 15 + packages/client/node_modules/.bin/rimraf.cmd | 7 + packages/client/node_modules/.bin/webpack | 15 + packages/client/node_modules/.bin/webpack.cmd | 7 + .../client/node_modules/immutable/LICENSE | 21 + .../client/node_modules/immutable/README.md | 474 + .../immutable/contrib/cursor/README.md | 33 + .../contrib/cursor/__tests__/Cursor.ts.skip | 400 + .../immutable/contrib/cursor/index.d.ts | 290 + .../immutable/contrib/cursor/index.js | 341 + .../immutable/dist/immutable-nonambient.d.ts | 2533 +++++ .../immutable/dist/immutable.d.ts | 2537 +++++ .../node_modules/immutable/dist/immutable.js | 4977 +++++++++ .../immutable/dist/immutable.js.flow | 670 ++ .../immutable/dist/immutable.min.js | 34 + .../node_modules/immutable/package.json | 111 + .../client/node_modules/rc-animate/HISTORY.md | 42 + .../client/node_modules/rc-animate/LICENSE.md | 9 + .../client/node_modules/rc-animate/README.md | 193 + .../node_modules/rc-animate/es/Animate.js | 340 + .../rc-animate/es/AnimateChild.js | 112 + .../node_modules/rc-animate/es/CSSMotion.js | 339 + .../rc-animate/es/CSSMotionList.js | 155 + .../rc-animate/es/ChildrenUtils.js | 101 + .../rc-animate/es/util/animate.js | 21 + .../node_modules/rc-animate/es/util/diff.js | 106 + .../node_modules/rc-animate/es/util/motion.js | 83 + .../node_modules/rc-animate/lib/Animate.js | 361 + .../rc-animate/lib/AnimateChild.js | 132 + .../node_modules/rc-animate/lib/CSSMotion.js | 361 + .../rc-animate/lib/CSSMotionList.js | 172 + .../rc-animate/lib/ChildrenUtils.js | 117 + .../rc-animate/lib/util/animate.js | 27 + .../node_modules/rc-animate/lib/util/diff.js | 115 + .../rc-animate/lib/util/motion.js | 91 + .../node_modules/rc-animate/package.json | 64 + .../client/node_modules/rc-tree/HISTORY.md | 70 + .../client/node_modules/rc-tree/LICENSE.md | 22 + .../client/node_modules/rc-tree/README.md | 143 + .../node_modules/rc-tree/assets/icons.png | Bin 0 -> 9968 bytes .../node_modules/rc-tree/assets/index.css | 171 + .../node_modules/rc-tree/assets/line.gif | Bin 0 -> 45 bytes .../node_modules/rc-tree/assets/loading.gif | Bin 0 -> 381 bytes .../node_modules/rc-tree/dist/rc-tree.css | 173 + .../node_modules/rc-tree/dist/rc-tree.css.map | 1 + .../node_modules/rc-tree/dist/rc-tree.js | 7538 +++++++++++++ .../node_modules/rc-tree/dist/rc-tree.js.map | 1 + .../node_modules/rc-tree/dist/rc-tree.min.css | 173 + .../rc-tree/dist/rc-tree.min.css.map | 1 + .../node_modules/rc-tree/dist/rc-tree.min.js | 1 + .../client/node_modules/rc-tree/es/Tree.js | 819 ++ .../node_modules/rc-tree/es/TreeNode.js | 602 + .../node_modules/rc-tree/es/contextTypes.js | 63 + .../client/node_modules/rc-tree/es/index.js | 7 + .../client/node_modules/rc-tree/es/util.js | 468 + .../client/node_modules/rc-tree/lib/Tree.js | 861 ++ .../node_modules/rc-tree/lib/TreeNode.js | 646 ++ .../node_modules/rc-tree/lib/contextTypes.js | 75 + .../client/node_modules/rc-tree/lib/index.js | 21 + .../client/node_modules/rc-tree/lib/util.js | 510 + .../client/node_modules/rc-tree/package.json | 96 + packages/client/nodemon.json | 4 + packages/client/package.json | 172 + .../server/lib/apply-express-middleware.js | 14 + packages/client/server/main.js | 61 + .../client/server/middleware/webpack-dev.js | 34 + .../client/server/middleware/webpack-hmr.js | 18 + .../client/src/containers/AppContainer.js | 25 + packages/client/src/index.html | 22 + .../src/layouts/CoreLayout/CoreLayout.js | 86 + .../src/layouts/CoreLayout/CoreLayout.scss | 75 + .../CoreLayout/assets/auto-news-logo.png | Bin 0 -> 1762 bytes .../client/src/layouts/CoreLayout/index.js | 3 + packages/client/src/main.js | 96 + packages/client/src/redux/Global.js | 306 + .../routes/About/assets/logo-auto-news.png | Bin 0 -> 4759 bytes .../src/routes/About/components/About.js | 182 + .../src/routes/About/components/About.scss | 80 + .../routes/About/containers/AboutContainer.js | 37 + packages/client/src/routes/About/index.js | 29 + .../client/src/routes/About/modules/about.js | 63 + .../src/routes/Filter/components/Filter.js | 51 + .../src/routes/Filter/components/Filter.scss | 21 + .../Filter/containers/FilterContainer.js | 38 + packages/client/src/routes/Filter/index.js | 29 + .../src/routes/Filter/modules/filter.js | 70 + .../src/routes/Monitor/components/Monitor.js | 63 + .../routes/Monitor/components/Monitor.scss | 12 + .../Monitor/components/assets/icon_Move2.png | Bin 0 -> 857 bytes .../widgets/MonitorCard/MonitorCard.js | 140 + .../widgets/MonitorCard/MonitorCard.scss | 84 + .../Monitor/containers/MonitorContainer.js | 38 + packages/client/src/routes/Monitor/index.js | 6 + .../src/routes/Monitor/modules/monitor.js | 65 + .../PastInquiry/components/PastInquiry.js | 130 + .../PastInquiry/components/PastInquiry.scss | 3 + .../PastInquiry/components/PastInquiryForm.js | 88 + .../containers/PastInquiryContainer.js | 38 + .../client/src/routes/PastInquiry/index.js | 29 + .../routes/PastInquiry/modules/pastInquiry.js | 138 + .../src/routes/Setting/components/Setting.js | 42 + .../routes/Setting/components/Setting.scss | 3 + .../Setting/components/widgets/SettingForm.js | 116 + .../Setting/containers/SettingContainer.js | 38 + packages/client/src/routes/Setting/index.js | 29 + .../src/routes/Setting/modules/setting.js | 107 + packages/client/src/routes/index.js | 98 + packages/client/src/static/favicon.ico | Bin 0 -> 82726 bytes packages/client/src/static/humans.txt | 9 + packages/client/src/static/robots.txt | 2 + packages/client/src/store/createStore.js | 65 + packages/client/src/store/reducers.js | 23 + packages/client/src/store/sagas.js | 18 + packages/client/src/styles/_base.scss | 12 + packages/client/src/styles/core.scss | 8 + packages/client/src/utils/config.js | 4 + packages/client/src/utils/request.js | 64 + packages/client/src/utils/validateMsg.js | 11 + packages/client/tests/.eslintrc | 11 + .../tests/components/Counter/Counter.spec.js | 80 + .../tests/components/Header/Header.spec.js | 38 + packages/client/tests/framework.spec.js | 45 + .../client/tests/layouts/CoreLayout.spec.js | 33 + .../routes/Home/components/HomeView.spec.js | 24 + .../client/tests/routes/Home/index.spec.js | 17 + packages/client/tests/test-bundler.js | 38 + packages/scrape/.gitignore | 10 + .../scrape/.python-version | 0 Dockerfile => packages/scrape/Dockerfile | 0 packages/scrape/README.md | 25 + .../scrape/autonews}/__init__.py | 0 .../scrape/autonews}/filters.py | 0 .../scrape/autonews}/items.py | 0 .../autonews}/lib/THUCTC_java_v1/THUCTC.md | 0 .../lib/THUCTC_java_v1/THULAC_java_v1.jar | Bin .../autonews}/lib/THUCTC_java_v1/demo.py | 0 .../lib/THUCTC_java_v1/liblinear-1.8.jar | Bin .../scrape/autonews}/lib/hanlp-1.3.2/demo.py | 0 .../autonews}/lib/hanlp-1.3.2/hanlp-1.3.2.jar | Bin .../lib/hanlp-1.3.2/hanlp.properties | 0 .../scrape/autonews}/middlewares.py | 0 .../scrape/autonews}/pipelines.py | 0 .../scrape/autonews}/settings.py | 0 .../scrape/autonews}/spiders/__init__.py | 0 .../scrape/autonews}/spiders/cjrb.py | 0 .../scrape/autonews}/spiders/hbrb.py | 0 .../scrape/autonews}/spiders/rmw_hb.py | 0 .../scrape/autonews}/spiders/rmw_hb_detail.py | 0 .../scrape/autonews}/spiders/txdcw.py | 0 .../scrape/requirements.txt | 0 .../scrape/run_all_spiders.py | 0 scrapy.cfg => packages/scrape/scrapy.cfg | 0 .../scrape/scrapy_scheduler.py | 0 setup.py => packages/scrape/setup.py | 0 renovate.json | 4 + yarn.lock | 9831 +++++++++++++++++ 234 files changed, 42927 insertions(+), 30 deletions(-) create mode 100644 package.json create mode 100644 packages/api/Dockerfile create mode 100644 packages/api/README.md create mode 100644 packages/api/package.json create mode 100644 packages/api/src/DAO.js create mode 100644 packages/api/src/index.js create mode 100644 packages/api/utils/config.js create mode 100644 packages/api/utils/dbInit.js create mode 100644 packages/api/utils/mongoScript.md create mode 100644 packages/client/.babelrc create mode 100644 packages/client/.editorconfig create mode 100644 packages/client/.eslintignore create mode 100644 packages/client/.eslintrc create mode 100644 packages/client/.reduxrc create mode 100644 packages/client/README.md create mode 100644 packages/client/bin/compile.js create mode 100644 packages/client/bin/server.js create mode 100644 packages/client/blueprints/.eslintrc create mode 100644 packages/client/blueprints/blueprint/files/blueprints/__name__/files/.gitkeep create mode 100644 packages/client/blueprints/blueprint/files/blueprints/__name__/index.js create mode 100644 packages/client/blueprints/blueprint/index.js create mode 100644 packages/client/blueprints/duck/files/__root__/__routepath__/__route__/modules/__realname__.js create mode 100644 packages/client/blueprints/duck/files/__test__/__routepath__/__route__/modules/__realname__.spec.js create mode 100644 packages/client/blueprints/duck/index.js create mode 100644 packages/client/blueprints/form/files/__root__/forms/__name__Form/__name__Form.js create mode 100644 packages/client/blueprints/form/files/__root__/forms/__name__Form/index.js create mode 100644 packages/client/blueprints/form/files/__test__/forms/__name__Form.spec.js create mode 100644 packages/client/blueprints/form/index.js create mode 100644 packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/__name__Layout.js create mode 100644 packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/index.js create mode 100644 packages/client/blueprints/layout/files/__test__/layouts/__name__Layout.spec.js create mode 100644 packages/client/blueprints/layout/index.js create mode 100644 packages/client/blueprints/route4list/files/__root__/routes/__name__/__dumb__/__name__.js create mode 100644 packages/client/blueprints/route4list/files/__root__/routes/__name__/__smart__/__name__Container.js create mode 100644 packages/client/blueprints/route4list/files/__root__/routes/__name__/index.js create mode 100644 packages/client/blueprints/route4list/files/__root__/routes/__name__/modules/__realname__.js create mode 100644 packages/client/blueprints/route4list/index.js create mode 100644 packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/__name__.js create mode 100644 packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/index.js create mode 100644 packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__smart__/__name__Container.js create mode 100644 packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__dumb__/__name__/__name__.spec.js create mode 100644 packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__smart__/__name__Container.spec.js create mode 100644 packages/client/blueprints/smart/index.js create mode 100644 packages/client/build/karma.conf.js create mode 100644 packages/client/build/webpack-compiler.js create mode 100644 packages/client/build/webpack.config.js create mode 100644 packages/client/config/environments.js create mode 100644 packages/client/config/index.js create mode 100644 packages/client/node_modules/.bin/_mocha create mode 100644 packages/client/node_modules/.bin/_mocha.cmd create mode 100644 packages/client/node_modules/.bin/babel create mode 100644 packages/client/node_modules/.bin/babel-doctor create mode 100644 packages/client/node_modules/.bin/babel-doctor.cmd create mode 100644 packages/client/node_modules/.bin/babel-external-helpers create mode 100644 packages/client/node_modules/.bin/babel-external-helpers.cmd create mode 100644 packages/client/node_modules/.bin/babel-node create mode 100644 packages/client/node_modules/.bin/babel-node.cmd create mode 100644 packages/client/node_modules/.bin/babel.cmd create mode 100644 packages/client/node_modules/.bin/better-npm-run create mode 100644 packages/client/node_modules/.bin/better-npm-run.cmd create mode 100644 packages/client/node_modules/.bin/bnr create mode 100644 packages/client/node_modules/.bin/bnr.cmd create mode 100644 packages/client/node_modules/.bin/codecov create mode 100644 packages/client/node_modules/.bin/codecov.cmd create mode 100644 packages/client/node_modules/.bin/eslint create mode 100644 packages/client/node_modules/.bin/eslint.cmd create mode 100644 packages/client/node_modules/.bin/karma create mode 100644 packages/client/node_modules/.bin/karma.cmd create mode 100644 packages/client/node_modules/.bin/mocha create mode 100644 packages/client/node_modules/.bin/mocha.cmd create mode 100644 packages/client/node_modules/.bin/node-sass create mode 100644 packages/client/node_modules/.bin/node-sass.cmd create mode 100644 packages/client/node_modules/.bin/nodemon create mode 100644 packages/client/node_modules/.bin/nodemon.cmd create mode 100644 packages/client/node_modules/.bin/phantomjs create mode 100644 packages/client/node_modules/.bin/phantomjs.cmd create mode 100644 packages/client/node_modules/.bin/rimraf create mode 100644 packages/client/node_modules/.bin/rimraf.cmd create mode 100644 packages/client/node_modules/.bin/webpack create mode 100644 packages/client/node_modules/.bin/webpack.cmd create mode 100644 packages/client/node_modules/immutable/LICENSE create mode 100644 packages/client/node_modules/immutable/README.md create mode 100644 packages/client/node_modules/immutable/contrib/cursor/README.md create mode 100644 packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip create mode 100644 packages/client/node_modules/immutable/contrib/cursor/index.d.ts create mode 100644 packages/client/node_modules/immutable/contrib/cursor/index.js create mode 100644 packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts create mode 100644 packages/client/node_modules/immutable/dist/immutable.d.ts create mode 100644 packages/client/node_modules/immutable/dist/immutable.js create mode 100644 packages/client/node_modules/immutable/dist/immutable.js.flow create mode 100644 packages/client/node_modules/immutable/dist/immutable.min.js create mode 100644 packages/client/node_modules/immutable/package.json create mode 100644 packages/client/node_modules/rc-animate/HISTORY.md create mode 100644 packages/client/node_modules/rc-animate/LICENSE.md create mode 100644 packages/client/node_modules/rc-animate/README.md create mode 100644 packages/client/node_modules/rc-animate/es/Animate.js create mode 100644 packages/client/node_modules/rc-animate/es/AnimateChild.js create mode 100644 packages/client/node_modules/rc-animate/es/CSSMotion.js create mode 100644 packages/client/node_modules/rc-animate/es/CSSMotionList.js create mode 100644 packages/client/node_modules/rc-animate/es/ChildrenUtils.js create mode 100644 packages/client/node_modules/rc-animate/es/util/animate.js create mode 100644 packages/client/node_modules/rc-animate/es/util/diff.js create mode 100644 packages/client/node_modules/rc-animate/es/util/motion.js create mode 100644 packages/client/node_modules/rc-animate/lib/Animate.js create mode 100644 packages/client/node_modules/rc-animate/lib/AnimateChild.js create mode 100644 packages/client/node_modules/rc-animate/lib/CSSMotion.js create mode 100644 packages/client/node_modules/rc-animate/lib/CSSMotionList.js create mode 100644 packages/client/node_modules/rc-animate/lib/ChildrenUtils.js create mode 100644 packages/client/node_modules/rc-animate/lib/util/animate.js create mode 100644 packages/client/node_modules/rc-animate/lib/util/diff.js create mode 100644 packages/client/node_modules/rc-animate/lib/util/motion.js create mode 100644 packages/client/node_modules/rc-animate/package.json create mode 100644 packages/client/node_modules/rc-tree/HISTORY.md create mode 100644 packages/client/node_modules/rc-tree/LICENSE.md create mode 100644 packages/client/node_modules/rc-tree/README.md create mode 100644 packages/client/node_modules/rc-tree/assets/icons.png create mode 100644 packages/client/node_modules/rc-tree/assets/index.css create mode 100644 packages/client/node_modules/rc-tree/assets/line.gif create mode 100644 packages/client/node_modules/rc-tree/assets/loading.gif create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.css create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.css.map create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.js create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.js.map create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.css create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map create mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.js create mode 100644 packages/client/node_modules/rc-tree/es/Tree.js create mode 100644 packages/client/node_modules/rc-tree/es/TreeNode.js create mode 100644 packages/client/node_modules/rc-tree/es/contextTypes.js create mode 100644 packages/client/node_modules/rc-tree/es/index.js create mode 100644 packages/client/node_modules/rc-tree/es/util.js create mode 100644 packages/client/node_modules/rc-tree/lib/Tree.js create mode 100644 packages/client/node_modules/rc-tree/lib/TreeNode.js create mode 100644 packages/client/node_modules/rc-tree/lib/contextTypes.js create mode 100644 packages/client/node_modules/rc-tree/lib/index.js create mode 100644 packages/client/node_modules/rc-tree/lib/util.js create mode 100644 packages/client/node_modules/rc-tree/package.json create mode 100644 packages/client/nodemon.json create mode 100644 packages/client/package.json create mode 100644 packages/client/server/lib/apply-express-middleware.js create mode 100644 packages/client/server/main.js create mode 100644 packages/client/server/middleware/webpack-dev.js create mode 100644 packages/client/server/middleware/webpack-hmr.js create mode 100644 packages/client/src/containers/AppContainer.js create mode 100644 packages/client/src/index.html create mode 100644 packages/client/src/layouts/CoreLayout/CoreLayout.js create mode 100644 packages/client/src/layouts/CoreLayout/CoreLayout.scss create mode 100644 packages/client/src/layouts/CoreLayout/assets/auto-news-logo.png create mode 100644 packages/client/src/layouts/CoreLayout/index.js create mode 100644 packages/client/src/main.js create mode 100644 packages/client/src/redux/Global.js create mode 100644 packages/client/src/routes/About/assets/logo-auto-news.png create mode 100644 packages/client/src/routes/About/components/About.js create mode 100644 packages/client/src/routes/About/components/About.scss create mode 100644 packages/client/src/routes/About/containers/AboutContainer.js create mode 100644 packages/client/src/routes/About/index.js create mode 100644 packages/client/src/routes/About/modules/about.js create mode 100644 packages/client/src/routes/Filter/components/Filter.js create mode 100644 packages/client/src/routes/Filter/components/Filter.scss create mode 100644 packages/client/src/routes/Filter/containers/FilterContainer.js create mode 100644 packages/client/src/routes/Filter/index.js create mode 100644 packages/client/src/routes/Filter/modules/filter.js create mode 100644 packages/client/src/routes/Monitor/components/Monitor.js create mode 100644 packages/client/src/routes/Monitor/components/Monitor.scss create mode 100644 packages/client/src/routes/Monitor/components/assets/icon_Move2.png create mode 100644 packages/client/src/routes/Monitor/components/widgets/MonitorCard/MonitorCard.js create mode 100644 packages/client/src/routes/Monitor/components/widgets/MonitorCard/MonitorCard.scss create mode 100644 packages/client/src/routes/Monitor/containers/MonitorContainer.js create mode 100644 packages/client/src/routes/Monitor/index.js create mode 100644 packages/client/src/routes/Monitor/modules/monitor.js create mode 100644 packages/client/src/routes/PastInquiry/components/PastInquiry.js create mode 100644 packages/client/src/routes/PastInquiry/components/PastInquiry.scss create mode 100644 packages/client/src/routes/PastInquiry/components/PastInquiryForm.js create mode 100644 packages/client/src/routes/PastInquiry/containers/PastInquiryContainer.js create mode 100644 packages/client/src/routes/PastInquiry/index.js create mode 100644 packages/client/src/routes/PastInquiry/modules/pastInquiry.js create mode 100644 packages/client/src/routes/Setting/components/Setting.js create mode 100644 packages/client/src/routes/Setting/components/Setting.scss create mode 100644 packages/client/src/routes/Setting/components/widgets/SettingForm.js create mode 100644 packages/client/src/routes/Setting/containers/SettingContainer.js create mode 100644 packages/client/src/routes/Setting/index.js create mode 100644 packages/client/src/routes/Setting/modules/setting.js create mode 100644 packages/client/src/routes/index.js create mode 100644 packages/client/src/static/favicon.ico create mode 100644 packages/client/src/static/humans.txt create mode 100644 packages/client/src/static/robots.txt create mode 100644 packages/client/src/store/createStore.js create mode 100644 packages/client/src/store/reducers.js create mode 100644 packages/client/src/store/sagas.js create mode 100644 packages/client/src/styles/_base.scss create mode 100644 packages/client/src/styles/core.scss create mode 100644 packages/client/src/utils/config.js create mode 100644 packages/client/src/utils/request.js create mode 100644 packages/client/src/utils/validateMsg.js create mode 100644 packages/client/tests/.eslintrc create mode 100644 packages/client/tests/components/Counter/Counter.spec.js create mode 100644 packages/client/tests/components/Header/Header.spec.js create mode 100644 packages/client/tests/framework.spec.js create mode 100644 packages/client/tests/layouts/CoreLayout.spec.js create mode 100644 packages/client/tests/routes/Home/components/HomeView.spec.js create mode 100644 packages/client/tests/routes/Home/index.spec.js create mode 100644 packages/client/tests/test-bundler.js create mode 100644 packages/scrape/.gitignore rename .python-version => packages/scrape/.python-version (100%) rename Dockerfile => packages/scrape/Dockerfile (100%) create mode 100644 packages/scrape/README.md rename {autonews => packages/scrape/autonews}/__init__.py (100%) rename {autonews => packages/scrape/autonews}/filters.py (100%) rename {autonews => packages/scrape/autonews}/items.py (100%) rename {autonews => packages/scrape/autonews}/lib/THUCTC_java_v1/THUCTC.md (100%) rename {autonews => packages/scrape/autonews}/lib/THUCTC_java_v1/THULAC_java_v1.jar (100%) rename {autonews => packages/scrape/autonews}/lib/THUCTC_java_v1/demo.py (100%) rename {autonews => packages/scrape/autonews}/lib/THUCTC_java_v1/liblinear-1.8.jar (100%) rename {autonews => packages/scrape/autonews}/lib/hanlp-1.3.2/demo.py (100%) rename {autonews => packages/scrape/autonews}/lib/hanlp-1.3.2/hanlp-1.3.2.jar (100%) rename {autonews => packages/scrape/autonews}/lib/hanlp-1.3.2/hanlp.properties (100%) rename {autonews => packages/scrape/autonews}/middlewares.py (100%) rename {autonews => packages/scrape/autonews}/pipelines.py (100%) rename {autonews => packages/scrape/autonews}/settings.py (100%) rename {autonews => packages/scrape/autonews}/spiders/__init__.py (100%) rename {autonews => packages/scrape/autonews}/spiders/cjrb.py (100%) rename {autonews => packages/scrape/autonews}/spiders/hbrb.py (100%) rename {autonews => packages/scrape/autonews}/spiders/rmw_hb.py (100%) rename {autonews => packages/scrape/autonews}/spiders/rmw_hb_detail.py (100%) rename {autonews => packages/scrape/autonews}/spiders/txdcw.py (100%) rename requirements.txt => packages/scrape/requirements.txt (100%) rename run_all_spiders.py => packages/scrape/run_all_spiders.py (100%) rename scrapy.cfg => packages/scrape/scrapy.cfg (100%) rename scrapy_scheduler.py => packages/scrape/scrapy_scheduler.py (100%) rename setup.py => packages/scrape/setup.py (100%) create mode 100644 renovate.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 9f1e7a9..047a2ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,6 @@ -/.idea/ -/eggs/ -/build/ -/logs/ -/project.egg-info/ -/dbs/ -/autonews/lib/hanlp-1.3.2/data/ -/autonews/lib/THUCTC_java_v1/news_model/ -/autonews/lib/THUCTC_java_v1/dbs/ -/autonews/lib/jdk-6u45-linux-x64.bin +.DS_STORE +*.log +npm-debug.log* + +/node_modules +/dist diff --git a/README.md b/README.md index f98a984..c681fee 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,46 @@ -# Auto News 新闻监控系统爬虫 +# Autonews -## 安装 -- install pyenv: `brew pyenv` -- install virtualenv: -- install python: `$ pyenv install 3.6.1` -- install requirements: `$ pip install -r requirements.txt` -- create new virtualenv: `$ pyenv virtualenv 3.6.1 playground` -- activate a virtualenv: `$ pyenv activate playground` +新闻源监控系统(Autonews System),是一个实时监控、收录新闻更新的工具,主要功能如下: -## 运行 -- 运行调度: `python scrapy_scheduler.py` -- 运行所有爬虫: `python run_all_spiders.py` +- 准实时监控新闻更新并汇总反应到界面,免除人工值守,反复刷新监控 +- 汇总分散的新闻,提供一处界面总览当日新闻全局,供网络新闻编辑和新闻关注者查阅、筛选、处理 +- 查询往期内容,为新闻专题、汇总专题、旧闻查阅提供数据参考 +- (开发中的功能……) -## 常用命令 -- 新建爬虫:`scrapy gensipder ` +目前监控对象如下: +- 腾讯·大楚网新闻,包括: 要闻/宜昌/襄阳/黄石/十堰/孝感/荆门/荆州/黄冈/恩施/随州/潜江/仙桃 +- 三峡晚报 +- 楚天都市报 +- 湖北日报 +- 楚天金报 +- 楚天快报 +- 楚天时报 +- 长江日报 +- 武汉晚报 +- 武汉晨报 +- 人民网-湖北频道 +- 黄石日报(待添加)添加中…… + +## Develop -## 使用scrapyd -- 命令`scrapyd`启动 scrapyd,默认在[localhost:6800](http://localhost:6800/)建立监控界面 +## 运行 +- run mongoDB server: `mongod --config /usr/local/etc/mongod.conf` +- init db: `node utils/dbInit.js` +- 运行HTTP服务:`node server/index.js` +- 运行爬虫:参照项目 autonews-scrapy +- 编译客户端:`npm run deploy:prod` +- 客户端 dev 环境:运行`npm start`,打开 [localhost:3091/autonews/](http://localhost:3091/autonews/) +- 打开客户端: [localhost:3090/autonews/](http://localhost:3090/autonews/) + +## Release Note +请见[About](http://www.berlinchan.com/autonews/about) -## Build docker image -- lib目录下放置[jdk-6u45-linux-x64.bin](http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jre-6u45-oth-JPR) -- lib目录下放置[hanlp model]() -- lib目录下放置[THUCTC model]() -- docker build -t autonews-scrapy . +## 常用命令 +- 备份mongodb:`mongodump -h 127.0.0.1:27017 -d auto-news -o C:\data\backup\` +- 恢复mongodb:`mongorestore -h 127.0.0.1:27017 -d auto-news C:\data\backup\auto-news` +- 构建docker image:`docker build -t autonews-api .` +- 运行 API docker:`docker run -d --name autonews-api-container --restart always -p 3090:3090 autonews-api` +- 运行 scrapy docker(爬虫项目):`docker run -d --name autonews-scarpy-container --restart always --link autonews-api autonews-scrapy` +- stop all Docker container: `docker stop $(docker ps -a -q)` +- remove all Docker container: `docker rm $(docker ps -a -q)` +- 使用 [qydev.com](http://qydev.com) 的内网穿透: `ngrok -config=ngrok.cfg -subdomain autonews 3090` diff --git a/package.json b/package.json new file mode 100644 index 0000000..83efd0a --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "private": true, + "workspaces": [ + "packages/*" + ], + "scripts": { + } +} diff --git a/packages/api/Dockerfile b/packages/api/Dockerfile new file mode 100644 index 0000000..6c0cffb --- /dev/null +++ b/packages/api/Dockerfile @@ -0,0 +1,22 @@ +# Use an official Python runtime as a base image +FROM node:7.9 + +# Set the working directory to /app +WORKDIR /autonews + +# Copy the current directory contents into the container at /app +ADD ./server /autonews/server +ADD ./utils /autonews/utils +ADD ./package.json /autonews + +# Install any needed packages specified in requirements.txt +RUN npm i --registry=https://registry.npm.taobao.org + +# Make port 80 available to the world outside this container +EXPOSE 3090 + +# Define environment variable +ENV NAME autonews-api + +# Run app.py when the container launches +CMD ["node", "./server/index.js"] diff --git a/packages/api/README.md b/packages/api/README.md new file mode 100644 index 0000000..1807b92 --- /dev/null +++ b/packages/api/README.md @@ -0,0 +1 @@ +# Autonews API diff --git a/packages/api/package.json b/packages/api/package.json new file mode 100644 index 0000000..a68d527 --- /dev/null +++ b/packages/api/package.json @@ -0,0 +1,29 @@ +{ + "name": "autonews-api", + "version": "0.3.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "MIT", + "dependencies": { + "kcors": "^1.3.2", + "koa": "^2.0.1", + "koa-compress": "^2.0.0", + "koa-conditional-get": "^2.0.0", + "koa-etag": "^3.0.0", + "koa-route": "^3.2.0", + "koa-socket": "^4.4.0", + "koa-static": "^3.0.0", + "moment": "^2.18.1", + "monk": "^4.0.0", + "prop-types": "^15.5.10", + "raw-body": "^2.2.0" + }, + "devDependencies": { + "colors": "^1.1.2", + "koa-convert": "^1.2.0" + } +} diff --git a/packages/api/src/DAO.js b/packages/api/src/DAO.js new file mode 100644 index 0000000..24b17f9 --- /dev/null +++ b/packages/api/src/DAO.js @@ -0,0 +1,107 @@ +/** + * Created by Berlin on 2017/3/17. + */ + +const config = require('../utils/config'); +const monk = require('monk'); +const db = monk(config.DB_SERVER); +const moment = require('moment'); + +//查询来源列表 +function getOrigin() { + return db.get('origin').find({}); +} + +//获取当日 news list +async function getTodayList(origin_key) { + const todayDate = new Date(moment().format('YYYY-MM-DD')); + const tomorrowDate = new Date(moment().add({days: 1}).format('YYYY-MM-DD')); + let origin_key_array = []; + if (origin_key) { + origin_key_array = origin_key.split(','); + } else { + const allOrigin = await db.get('origin').find({}, {fields: 'key'}); + allOrigin.forEach(item => origin_key_array.push(item.key)); + } + + return db.get('detail').find( + { + "date": { + $gte: new Date(Date.parse(todayDate) - 28800000), + $lt: new Date(Date.parse(tomorrowDate) - 28800000) + }, //减去8小时? + "origin_key": {$in: origin_key_array} + }, + {sort: {'date': -1}, fields: '_id title subTitle url date nlpSentiment'} + ); +} + +/* + * 查询往期数据 + * + * 参数: + * beginDate: 开始时间 + * endDate: 结束时间 + * origin_key: 来源key,多个以","分割 + * keyword: 标题关键字 + * current: 查询页面 + * pageSize: 每页数量 + */ +async function pastInquiry(origin = '', beginDate, endDate, keyword = '', current = 1, pageSize = 20) { + let origin_key_array = origin.split(','); + let query = { + "date": { + $gte: new Date(Date.parse(beginDate) - 28800000), + $lt: new Date(Date.parse(endDate) - 28800000) + }, //减去8小时? + "origin_key": {$in: origin_key_array}, + }; + if (keyword) { + query['title'] = eval(`/${keyword}/i`); + } + + let detailList = await db.get('detail').find( + query, + { + sort: {'date': -1}, + fields: '-content', + limit: parseInt(pageSize), + skip: (parseInt(current) - 1) * parseInt(pageSize), + } + ); + let totalList = await db.get('detail').count(query); + + return { + list: detailList, + pagination: {current: parseInt(current), pageSize: parseInt(pageSize), total: parseInt(totalList)}, + }; +} + +/* + * 通过 id 查询 news detail + * + * 参数: + * id:对应数据库 detail collection _id field + */ +function getNewsDetailById(id) { + return db.get('detail').findOne({"_id": id}); +} + +/* + * 根据id查询已筛选的列表 + * 参数: + * id:以逗号","分割的 id 字符串 + */ +function getFilteredList(id) { + let idList = id.split(','); + return db.get('detail').find({_id: {$in: idList}}, {fields: '-content'}); +} + + +module.exports = { + getOrigin, + getTodayList, + pastInquiry, + getNewsDetailById, + getFilteredList, +}; \ No newline at end of file diff --git a/packages/api/src/index.js b/packages/api/src/index.js new file mode 100644 index 0000000..7a38bc1 --- /dev/null +++ b/packages/api/src/index.js @@ -0,0 +1,129 @@ +/** + * Created by Berlin Local on 2017/3/6. + * 伺服 Web Client 的 http 服务器 + * 承载 static file 与 API + */ + +const Koa = require('koa'); +const IO = require('koa-socket'); +const cors = require('kcors'); +const route = require('koa-route'); +const rawBody = require('raw-body'); +const config = require('../utils/config'); +const {getOrigin, getTodayList, pastInquiry, getNewsDetailById, getFilteredList} = require('./DAO'); +const conditional = require('koa-conditional-get'); +const etag = require('koa-etag'); +const compress = require('koa-compress'); +const convert = require('koa-convert');// convert generator to async, support koa2 +const moment = require('moment'); + +const app = new Koa(); +const io = new IO(); + +app.use(compress({ + filter: function (content_type) { + return /[text|json|javascript]/i.test(content_type) + }, + threshold: 2048, + flush: require('zlib').Z_SYNC_FLUSH, +})); +app.use(conditional()); +app.use(etag()); + +//static serve +app.use(require('koa-static')('../public', {index: 'index.html'})); + +// Origin verification generator +function verifyOrigin(ctx) { + let validOrigins = [ + 'http://www.berlinchan.com', + 'http://localhost:3091', + ]; + + const origin = ctx.headers.origin; + if (!(validOrigins.indexOf(origin) !== -1)) return false; + return origin; +} +app.use(convert(cors({origin: verifyOrigin}))); + +io.attach(app); + +//route +//查询来源列表 +app.use(route.get('/getOrigin', async function (ctx, next) { + await getOrigin().then(doc => { + ctx.status = 200; + ctx.set('Expires', moment().add({days: 2}).utc()); + ctx.body = {data: doc, msg: 'success'}; + }); +})); +//按(开始时间: date,结束时间: date,origin_key: string)查询list +app.use(route.get('/getTodayList', async function (ctx, next) { + await getTodayList(ctx.query.origin_key).then(doc => { + ctx.status = 200; + ctx.body = {data: doc, msg: 'success'}; + }); +})); +//按(开始时间: date,结束时间: date,origin_key: string)查询detail +app.use(route.get('/pastInquiry', async function (ctx, next) { + await pastInquiry(ctx.query.origin, ctx.query.beginDate, ctx.query.endDate, ctx.query.keyword, ctx.query.current, ctx.query.pageSize).then(doc => { + ctx.status = 200; + ctx.body = { + data: doc, + msg: 'success' + }; + }); +})); +// getDetailById +app.use(route.get('/getNewsDetailById', async function (ctx, next) { + await getNewsDetailById(ctx.query.id).then(doc => { + ctx.status = 200; + ctx.body = { + data: doc, + msg: 'success' + }; + }); +})); +app.use(route.post('/listItem_added', async function (ctx) { + ctx.status = 200; + ctx.req.body = await rawBody(ctx.req, {limit: '10kb', encoding: 'utf8'}); + ctx.req.body = JSON.parse(ctx.req.body); + ctx.body = {data: undefined, msg: 'success'}; + //broadcast socket event + app.io.broadcast('action', + {type: 'socket_global_ON_News_Added', data: ctx.req.body}); +})); +// 查询已筛选项目详情 +app.use(route.get('/getFilteredList', async function (ctx) { + await getFilteredList(ctx.query.id).then(doc => { + ctx.status = 200; + ctx.body = { + data: doc, + msg: 'success' + }; + }); +})); + + +// koa-socket events +app.io.on('connection', async (ctx, id) => { + console.log('connect client: ', id); + //广播客户端连接数 + app.io.broadcast('action', + {type: 'socket_Global_SET_clientCount', data: app.io.connections.size}); +}); + +// redux actions handler +app.io.on('action', (action) => { + switch (action.type) { + case 'socket/demo': + console.log(action.msg); + app.io.broadcast('action', + {type: 'Monitor_EMIT_RECEIVED', msg: 'good day!'}); + break; + default: + } +}); + + +app.listen(process.env.PORT || config.HTTP_PORT); diff --git a/packages/api/utils/config.js b/packages/api/utils/config.js new file mode 100644 index 0000000..b376b71 --- /dev/null +++ b/packages/api/utils/config.js @@ -0,0 +1,9 @@ +/** + * Created by Berlin Chan on 2017/3/7. + * 全局配置 + */ + +module.exports = { + HTTP_PORT: 3090,//HTTP server port + DB_SERVER: 'mongodb://localhost:27017/auto-news',// docker: Mac Win +}; diff --git a/packages/api/utils/dbInit.js b/packages/api/utils/dbInit.js new file mode 100644 index 0000000..1fb6d88 --- /dev/null +++ b/packages/api/utils/dbInit.js @@ -0,0 +1,53 @@ +/** + * Created by berlin on 2017/3/15. + * 处理数据库连接与数据读写 + */ + +const config = require('./config'); +const monk = require('monk'); +const db = monk(config.DB_SERVER); +const colors = require('colors'); + +// reCreate collection & index +async function initDb() { + await db.get('origin').drop() + .then(result => { + return db.get('origin').insert( + [ + {"_id": monk.id("58cb5e1237e1e826b4530627"), "key": "ctdsb", "name": "楚天都市报"}, + {"_id": monk.id("58cb5e1237e1e826b4530628"), "key": "hbrb", "name": "湖北日报"}, + {"_id": monk.id("58cb5e1237e1e826b4530629"), "key": "sxwb", "name": "三峡晚报"}, + {"_id": monk.id("58cb5e1237e1e826b453062a"), "key": "ctkb", "name": "楚天快报"}, + {"_id": monk.id("58cb5e1237e1e826b453062b"), "key": "ctjb", "name": "楚天金报"}, + {"_id": monk.id("58cb5e1237e1e826b453062c"), "key": "txdcw", "name": "腾讯大楚网"}, + {"_id": monk.id("58cb5e1237e1e826b453062d"), "key": "ctsb", "name": "楚天时报"}, + {"_id": monk.id("58d53490fc20345298a738bc"), "key": "whwb", "name": "武汉晚报"}, + {"_id": monk.id("58d55029fc20345298a738bd"), "key": "cjrb", "name": "长江日报"}, + {"_id": monk.id("58d55038fc20345298a738be"), "key": "whcb", "name": "武汉晨报"}, + {"_id": monk.id("58e92e6bc587da6d85b94ec3"), "key": "rmw_hb", "name": "人民网-湖北频道"}, + ] + ); + }) + .then(result => { + db.get('origin').index({'key': 1}, {unique: true, background: true}); + db.get('origin').index({'name': 1}, {unique: true, background: true}); + }) + .then(result => { + console.log('Create collection:', 'origin'.yellow, ' OK.'); + }); + await db.get('detail').drop() + .then(result => { + db.get('detail').index({'title': 1}, {background: true}); + db.get('detail').index({'origin_key': 1}, {background: true}); + db.get('detail').index({'date': -1}, {background: true}); + }) + .then(result => { + console.log('Create collection:', 'detail'.yellow, ' OK.'); + }); + await db.close(); +} + +initDb().then(result => { + console.log('DB init complete.'.green); // outputs green text + process.exit(0); +}); diff --git a/packages/api/utils/mongoScript.md b/packages/api/utils/mongoScript.md new file mode 100644 index 0000000..71f7ec3 --- /dev/null +++ b/packages/api/utils/mongoScript.md @@ -0,0 +1,8 @@ +## 删除重复记录 + + db.list.aggregate([{$group:{_id:"$title", dups:{$push:"$_id"}, count: {$sum: 1}}}, + {$match:{count: {$gt: 1}}} + ]).forEach(function(doc){ + doc.dups.shift(); + db.list.remove({_id : {$in: doc.dups}}); + }); \ No newline at end of file diff --git a/packages/client/.babelrc b/packages/client/.babelrc new file mode 100644 index 0000000..9fa2dbb --- /dev/null +++ b/packages/client/.babelrc @@ -0,0 +1,10 @@ +// NOTE: These options are overriden by the babel-loader configuration +// for webpack, which can be found in ~/build/webpack.config. +// +// Why? The react-transform-hmr plugin depends on HMR (and throws if +// module.hot is disabled), so keeping it and related plugins contained +// within webpack helps prevent unexpected errors. +{ + "presets": ["es2015", "react", "stage-0"], + "plugins": ["transform-runtime",["import", {"style": "css","libraryName": "antd"}]] +} diff --git a/packages/client/.editorconfig b/packages/client/.editorconfig new file mode 100644 index 0000000..90913b4 --- /dev/null +++ b/packages/client/.editorconfig @@ -0,0 +1,30 @@ +# http://editorconfig.org + +# A special property that should be specified at the top of the file outside of +# any sections. Set to true to stop .editor config file search on current file +root = true + +[*] +# Indentation style +# Possible values - tab, space +indent_style = space + +# Indentation size in single-spaced characters +# Possible values - an integer, tab +indent_size = 2 + +# Line ending file format +# Possible values - lf, crlf, cr +end_of_line = lf + +# File character encoding +# Possible values - latin1, utf-8, utf-16be, utf-16le +charset = utf-8 + +# Denotes whether to trim whitespace at the end of lines +# Possible values - true, false +trim_trailing_whitespace = true + +# Denotes whether file should end with a newline +# Possible values - true, false +insert_final_newline = true diff --git a/packages/client/.eslintignore b/packages/client/.eslintignore new file mode 100644 index 0000000..f517d4c --- /dev/null +++ b/packages/client/.eslintignore @@ -0,0 +1,6 @@ +blueprints/**/files/** +coverage/** +node_modules/** +dist/** +*.spec.js +src/index.html diff --git a/packages/client/.eslintrc b/packages/client/.eslintrc new file mode 100644 index 0000000..845a271 --- /dev/null +++ b/packages/client/.eslintrc @@ -0,0 +1,29 @@ +{ + "parser" : "babel-eslint", + "extends" : [ + "standard", + "standard-react" + ], + "plugins": [ + "babel", + "react", + "promise" + ], + "env" : { + "browser" : true + }, + "globals" : { + "__DEV__" : false, + "__PROD__" : false, + "__DEBUG__" : false, + "__COVERAGE__" : false, + "__BASENAME__" : false + }, + "rules": { + "semi" : [2, "never"], + "max-len": [2, 120, 2], + "generator-star-spacing": 0, + "babel/generator-star-spacing": 1, + "jsx-quotes": [2, "prefer-single"] + } +} diff --git a/packages/client/.reduxrc b/packages/client/.reduxrc new file mode 100644 index 0000000..ef88436 --- /dev/null +++ b/packages/client/.reduxrc @@ -0,0 +1,7 @@ +{ + "sourceBase":"src", + "testBase":"tests", + "smartPath":"containers", + "dumbPath":"components", + "fileCasing":"pascal" +} diff --git a/packages/client/README.md b/packages/client/README.md new file mode 100644 index 0000000..f1e9fa8 --- /dev/null +++ b/packages/client/README.md @@ -0,0 +1,6 @@ +# Autonews Web Client + +## Develop +- 编译客户端:`npm run deploy:prod` +- 客户端 dev 环境:运行`npm start`,打开 [localhost:3091/autonews/](http://localhost:3091/autonews/) +- 打开客户端: [localhost:3090/autonews/](http://localhost:3090/autonews/) diff --git a/packages/client/bin/compile.js b/packages/client/bin/compile.js new file mode 100644 index 0000000..76126d4 --- /dev/null +++ b/packages/client/bin/compile.js @@ -0,0 +1,24 @@ +import fs from 'fs-extra' +import _debug from 'debug' +import webpackCompiler from '../build/webpack-compiler' +import webpackConfig from '../build/webpack.config' +import config from '../config' + +const debug = _debug('app:bin:compile') +const paths = config.utils_paths + +;(async function () { + try { + debug('Run compiler') + const stats = await webpackCompiler(webpackConfig) + if (stats.warnings.length && config.compiler_fail_on_warning) { + debug('Config set to fail on warning, exiting with status code "1".') + process.exit(1) + } + debug('Copy static assets to dist folder.') + fs.copySync(paths.client('static'), paths.dist()) + } catch (e) { + debug('Compiler encountered an error.', e) + process.exit(1) + } +})() diff --git a/packages/client/bin/server.js b/packages/client/bin/server.js new file mode 100644 index 0000000..07f2dae --- /dev/null +++ b/packages/client/bin/server.js @@ -0,0 +1,11 @@ +import config from '../config' +import server from '../server/main' +import _debug from 'debug' + +const debug = _debug('app:bin:server') +const port = config.server_port +const host = config.server_host + +server.listen(port) +debug(`Server is now running at http://${host}:${port}.`) +debug(`Server accessible via localhost:${port} if you are using the project defaults.`) diff --git a/packages/client/blueprints/.eslintrc b/packages/client/blueprints/.eslintrc new file mode 100644 index 0000000..a62af02 --- /dev/null +++ b/packages/client/blueprints/.eslintrc @@ -0,0 +1,11 @@ +{ + "extends" : "../.eslintrc", + "env" : { + "mocha" : true + }, + "globals" : { + "expect" : false, + "should" : false, + "sinon" : false + } +} diff --git a/packages/client/blueprints/blueprint/files/blueprints/__name__/files/.gitkeep b/packages/client/blueprints/blueprint/files/blueprints/__name__/files/.gitkeep new file mode 100644 index 0000000..d5c8373 --- /dev/null +++ b/packages/client/blueprints/blueprint/files/blueprints/__name__/files/.gitkeep @@ -0,0 +1 @@ +put your files here diff --git a/packages/client/blueprints/blueprint/files/blueprints/__name__/index.js b/packages/client/blueprints/blueprint/files/blueprints/__name__/index.js new file mode 100644 index 0000000..1946eef --- /dev/null +++ b/packages/client/blueprints/blueprint/files/blueprints/__name__/index.js @@ -0,0 +1,27 @@ +const path = require('path') + +module.exports = { + locals: function (options) { + // Return custom template variables here. + return {} + }, + + fileMapTokens: function (options) { + // Return custom tokens to be replaced in your files + return { + __token__: function (options) { + // logic to determine value goes here + return 'value' + } + } + }, + + // Should probably never need to be overriden + + filesPath: function () { + return path.join(this.path, 'files') + }, + + beforeInstall: function (options) {}, + afterInstall: function (options) {} +} diff --git a/packages/client/blueprints/blueprint/index.js b/packages/client/blueprints/blueprint/index.js new file mode 100644 index 0000000..d0660e1 --- /dev/null +++ b/packages/client/blueprints/blueprint/index.js @@ -0,0 +1,13 @@ +module.exports = { + description () { + return 'generates a blueprint and definition' + }, + + beforeInstall () { + console.log('Before installation hook!') + }, + + afterInstall () { + console.log('After installation hook!') + } +} diff --git a/packages/client/blueprints/duck/files/__root__/__routepath__/__route__/modules/__realname__.js b/packages/client/blueprints/duck/files/__root__/__routepath__/__route__/modules/__realname__.js new file mode 100644 index 0000000..27b044e --- /dev/null +++ b/packages/client/blueprints/duck/files/__root__/__routepath__/__route__/modules/__realname__.js @@ -0,0 +1,24 @@ +// ------------------------------------ +// Constants +// ------------------------------------ +export const constants = {} + +// ------------------------------------ +// Actions +// ------------------------------------ +export const actions = {} + +// ------------------------------------ +// Action Handlers +// ------------------------------------ +const ACTION_HANDLERS = {} + +// ------------------------------------ +// Reducer +// ------------------------------------ +const initialState = {} +export default function counterReducer (state = initialState, action) { + const handler = ACTION_HANDLERS[action.type] + + return handler ? handler(state, action) : state +} diff --git a/packages/client/blueprints/duck/files/__test__/__routepath__/__route__/modules/__realname__.spec.js b/packages/client/blueprints/duck/files/__test__/__routepath__/__route__/modules/__realname__.spec.js new file mode 100644 index 0000000..f802b4e --- /dev/null +++ b/packages/client/blueprints/duck/files/__test__/__routepath__/__route__/modules/__realname__.spec.js @@ -0,0 +1,13 @@ +import { + default as <%= camelEntityName%>Reducer +} from '<%= importPath %>/modules/<%= realEntityName %>' + +describe('(Redux Module) <%= pascalEntityName %>', () => { + describe('(Reducer)', () => { + it('Should be a function.', () => { + expect(<%= camelEntityName %>Reducer).to.be.a('function') + }) + }) +}) + + diff --git a/packages/client/blueprints/duck/index.js b/packages/client/blueprints/duck/index.js new file mode 100644 index 0000000..3cb053d --- /dev/null +++ b/packages/client/blueprints/duck/index.js @@ -0,0 +1,31 @@ +module.exports = { + description () { + return 'generates a redux duck' + }, + + locals (options) { + var route = options.entity.options.route || options.entity.options.r + route = route || '' + var routePath = route ? 'routes/' : 'store' + var importPath = routePath + route + return { + importPath, + realEntityName: options.entity.name + } + }, + + fileMapTokens (options) { + var route = options.entity.options.route || options.entity.options.r + return { + __routepath__ () { + return route ? 'routes' : 'store' + }, + __realname__ () { + return options.entity.name + }, + __route__ () { + return route || '' + } + } + } +} diff --git a/packages/client/blueprints/form/files/__root__/forms/__name__Form/__name__Form.js b/packages/client/blueprints/form/files/__root__/forms/__name__Form/__name__Form.js new file mode 100644 index 0000000..88e03d5 --- /dev/null +++ b/packages/client/blueprints/form/files/__root__/forms/__name__Form/__name__Form.js @@ -0,0 +1,38 @@ +import React from 'react' +import { reduxForm } from 'redux-form' + +export const fields = [] + +const validate = (values) => { + const errors = {} + return errors +} + +type Props = { + handleSubmit: Function, + fields: Object, +} +export class <%= pascalEntityName %> extends React.Component { + props: Props; + + defaultProps = { + fields: {}, + } + + render() { + const { fields, handleSubmit } = this.props + + return ( +
+
+ ) + } +} + +<%= pascalEntityName %> = reduxForm({ + form: '<%= pascalEntityName %>', + fields, + validate +})(<%= pascalEntityName %>) + +export default <%= pascalEntityName %> diff --git a/packages/client/blueprints/form/files/__root__/forms/__name__Form/index.js b/packages/client/blueprints/form/files/__root__/forms/__name__Form/index.js new file mode 100644 index 0000000..b477e64 --- /dev/null +++ b/packages/client/blueprints/form/files/__root__/forms/__name__Form/index.js @@ -0,0 +1,2 @@ +import <%= pascalEntityName %>Form from './<%= pascalEntityName %>Form' +export default <%= pascalEntityName %>Form diff --git a/packages/client/blueprints/form/files/__test__/forms/__name__Form.spec.js b/packages/client/blueprints/form/files/__test__/forms/__name__Form.spec.js new file mode 100644 index 0000000..88f2c10 --- /dev/null +++ b/packages/client/blueprints/form/files/__test__/forms/__name__Form.spec.js @@ -0,0 +1,5 @@ +describe('(Form) <%= pascalEntityName %>', () => { + it('exists', () => { + + }) +}) diff --git a/packages/client/blueprints/form/index.js b/packages/client/blueprints/form/index.js new file mode 100644 index 0000000..a6a8d19 --- /dev/null +++ b/packages/client/blueprints/form/index.js @@ -0,0 +1,5 @@ +module.exports = { + description () { + return 'generates a connected redux-form form component' + } +} diff --git a/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/__name__Layout.js b/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/__name__Layout.js new file mode 100644 index 0000000..c6a2894 --- /dev/null +++ b/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/__name__Layout.js @@ -0,0 +1,16 @@ +import React from 'react' +import PropTypes from 'prop-types'; + +function <%= pascalEntityName %> ({ children }) { + return ( +
+ {children} +
+ ) +} + +<%= pascalEntityName %>.propTypes = { + children: PropTypes.element +} + +export default <%= pascalEntityName %> diff --git a/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/index.js b/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/index.js new file mode 100644 index 0000000..0ea5be8 --- /dev/null +++ b/packages/client/blueprints/layout/files/__root__/layouts/__name__Layout/index.js @@ -0,0 +1,2 @@ +import <%= pascalEntityName %>Layout from './<%= pascalEntityName %>Layout' +export default <%= pascalEntityName %>Layout diff --git a/packages/client/blueprints/layout/files/__test__/layouts/__name__Layout.spec.js b/packages/client/blueprints/layout/files/__test__/layouts/__name__Layout.spec.js new file mode 100644 index 0000000..8348943 --- /dev/null +++ b/packages/client/blueprints/layout/files/__test__/layouts/__name__Layout.spec.js @@ -0,0 +1,7 @@ +import React from 'react' + +describe('(Layout) <%= pascalEntityName %>', () => { + it('should exist', () => { + + }) +}) diff --git a/packages/client/blueprints/layout/index.js b/packages/client/blueprints/layout/index.js new file mode 100644 index 0000000..31630e8 --- /dev/null +++ b/packages/client/blueprints/layout/index.js @@ -0,0 +1,5 @@ +module.exports = { + description () { + return 'generates a functional layout component' + } +} diff --git a/packages/client/blueprints/route4list/files/__root__/routes/__name__/__dumb__/__name__.js b/packages/client/blueprints/route4list/files/__root__/routes/__name__/__dumb__/__name__.js new file mode 100644 index 0000000..8483244 --- /dev/null +++ b/packages/client/blueprints/route4list/files/__root__/routes/__name__/__dumb__/__name__.js @@ -0,0 +1,29 @@ +import React,{Component} from 'react' +import {Card, Table, Button, Modal, Popconfirm} from 'antd'; + +class <%= pascalEntityName %> extends Component +{ + constructor(props) { + super(props); + } + + static propTypes = {}; + + componentDidMount() + { + this.props.fetch<%= pascalEntityName %>(); + } + + render() + { + return( +
+ hello <%= pascalEntityName %> +
+ ) + } +} + +<%= pascalEntityName %>.defaultProps = {}; + +export default <%= pascalEntityName %> diff --git a/packages/client/blueprints/route4list/files/__root__/routes/__name__/__smart__/__name__Container.js b/packages/client/blueprints/route4list/files/__root__/routes/__name__/__smart__/__name__Container.js new file mode 100644 index 0000000..0bc6caf --- /dev/null +++ b/packages/client/blueprints/route4list/files/__root__/routes/__name__/__smart__/__name__Container.js @@ -0,0 +1,37 @@ +import { connect } from 'react-redux' +import { actions as <%= camelEntityName %>Actions } from '../modules/<%= camelEntityName %>' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import <%= pascalEntityName %> from '../<%= dumbPath %>/<%= pascalEntityName %>' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...<%= camelEntityName %>Actions, +}; + +const mapStateToProps = (state) => ({ + <%= realEntityName %>:state.<%= realEntityName %>, +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(<%= pascalEntityName %>) diff --git a/packages/client/blueprints/route4list/files/__root__/routes/__name__/index.js b/packages/client/blueprints/route4list/files/__root__/routes/__name__/index.js new file mode 100644 index 0000000..8ddf67d --- /dev/null +++ b/packages/client/blueprints/route4list/files/__root__/routes/__name__/index.js @@ -0,0 +1,29 @@ +import { injectReducer } from 'store/reducers' +import { injectSagas } from 'store/sagas' + +export default (store) => ({ + path: '<%= realEntityName %>', + breadcrumbName:'<%= pascalEntityName %>', + /* Async getComponent is only invoked when route matches */ + getComponent (nextState, cb) { + /* Webpack - use 'require.ensure' to create a split point + and embed an async module loader (jsonp) when bundling */ + require.ensure([ + './<%= smartPath %>/<%= pascalEntityName %>Container', + './modules/<%= camelEntityName %>' + ], (require) => { + /* Webpack - use require callback to define + dependencies for bundling */ + const <%= camelEntityName %> = require('./<%= smartPath %>/<%= pascalEntityName %>Container').default; + const reducer = require('./modules/<%= camelEntityName %>').default; + const sagas = require('./modules/<%= camelEntityName %>').sagas; + /* Add the reducer to the store on key '<%= realEntityName %>' */ + injectReducer(store, { key: '<%= camelEntityName %>', reducer }); + injectSagas(store, { key: '<%= camelEntityName %>', sagas }); + /* Return getComponent */ + cb(null, <%= camelEntityName %>); + + /* Webpack named bundle */ + }, '<%= realEntityName %>') + } +}) diff --git a/packages/client/blueprints/route4list/files/__root__/routes/__name__/modules/__realname__.js b/packages/client/blueprints/route4list/files/__root__/routes/__name__/modules/__realname__.js new file mode 100644 index 0000000..a185bc2 --- /dev/null +++ b/packages/client/blueprints/route4list/files/__root__/routes/__name__/modules/__realname__.js @@ -0,0 +1,64 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {startSubmit,stopSubmit} from 'redux-form' +import {message, notification} from 'antd'; +import config from 'utils/config' + + +// Constants +const <%= pascalEntityName %>_FETCH_REQUESTED = '<%= pascalEntityName %>_FETCH_REQUESTED'; +const <%= pascalEntityName %>_FETCH_SUCCESSED = '<%= pascalEntityName %>_FETCH_SUCCESSED'; +const <%= pascalEntityName %>_FETCH_FAILURE = '<%= pascalEntityName %>_FETCH_FAILURE'; + + +// Actions +function fetch<%= pascalEntityName %>() { + return { + type: <%= pascalEntityName %>_FETCH_REQUESTED +} +} + +export const actions = { + fetch<%= pascalEntityName %>, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [<%= pascalEntityName %>_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [<%= pascalEntityName %>_FETCH_SUCCESSED]: (state, payload) => state.setIn(['isFetching'], false), + [<%= pascalEntityName %>_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, + list: Immutable.fromJS([{key: '001'},]), +}); +export default function <%= camelEntityName %>Reducer (state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + + return handler ? handler(state, action) : state; +} + + +// Sagas + function* watchFetch<%= pascalEntityName %>() { + while (true) { + + yield take(<%= pascalEntityName %>_FETCH_REQUESTED) + // let {data, err} = yield call(asyncWait) + // if (!err) + + yield put({type: '<%= pascalEntityName %>_FETCH_SUCCESSED'}) + // else { + // + // yield put({type: '<%= pascalEntityName %>_FETCH_FAILURE', error: err.toString()}) + // } +} +} + + +export const sagas = [ +watchFetch<%= pascalEntityName %>, +]; diff --git a/packages/client/blueprints/route4list/index.js b/packages/client/blueprints/route4list/index.js new file mode 100644 index 0000000..27d2faf --- /dev/null +++ b/packages/client/blueprints/route4list/index.js @@ -0,0 +1,27 @@ +module.exports = { + description () { + return 'generates a route' + }, + + locals (options) { + return { + realEntityName: options.entity.name, + smartPath: options.settings.getSetting('smartPath'), + dumbPath: options.settings.getSetting('dumbPath') + } + }, + + fileMapTokens () { + return { + __realname__ (options) { + return options.entity.name + }, + __smart__ (options) { + return options.settings.getSetting('smartPath') + }, + __dumb__ (options) { + return options.settings.getSetting('dumbPath') + } + } + } +} diff --git a/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/__name__.js b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/__name__.js new file mode 100644 index 0000000..d45348d --- /dev/null +++ b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/__name__.js @@ -0,0 +1,17 @@ +import React from 'react' + +type Props = { + +}; +export class <%= pascalEntityName %> extends React.Component { + props: Props; + + render () { + return ( +
+ ) + } +} + +export default <%= pascalEntityName %> + diff --git a/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/index.js b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/index.js new file mode 100644 index 0000000..68d7dfb --- /dev/null +++ b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__dumb__/__name__/index.js @@ -0,0 +1,2 @@ +import <%= pascalEntityName %> from './<%= pascalEntityName %>' +export default <%= pascalEntityName %> diff --git a/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__smart__/__name__Container.js b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__smart__/__name__Container.js new file mode 100644 index 0000000..9e69da3 --- /dev/null +++ b/packages/client/blueprints/smart/files/__root__/__routepath__/__route__/__smart__/__name__Container.js @@ -0,0 +1,33 @@ +import { connect } from 'react-redux' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import <%= pascalEntityName %> from '../<%= dumbPath %>/<%= pascalEntityName %>' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = {} + +const mapStateToProps = (state) => ({ +}) + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(<%= pascalEntityName %>) diff --git a/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__dumb__/__name__/__name__.spec.js b/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__dumb__/__name__/__name__.spec.js new file mode 100644 index 0000000..c4fa99c --- /dev/null +++ b/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__dumb__/__name__/__name__.spec.js @@ -0,0 +1,8 @@ +import React from 'react' +import <%= pascalEntityName %> from '<%= importDumbPath %>/<%= pascalEntityName %>' + +describe('(Component) <%= pascalEntityName %>', () => { + it('should exist', () => { + + }) +}) diff --git a/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__smart__/__name__Container.spec.js b/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__smart__/__name__Container.spec.js new file mode 100644 index 0000000..e1beab5 --- /dev/null +++ b/packages/client/blueprints/smart/files/__test__/__routepath__/__route__/__smart__/__name__Container.spec.js @@ -0,0 +1,15 @@ +import React from 'react' +import <%= pascalEntityName %>Container from '<%= importSmartPath %>/<%= pascalEntityName %>Container' +import { render } from 'enzyme' + +describe('(View) <%= pascalEntityName %>', () => { + let _component + + beforeEach(() => { + _component = render(<<%= pascalEntityName %>Container />) + }) + + it('Component exist', () => { + expect(_component).to.exist + }) +}) diff --git a/packages/client/blueprints/smart/index.js b/packages/client/blueprints/smart/index.js new file mode 100644 index 0000000..bee29e8 --- /dev/null +++ b/packages/client/blueprints/smart/index.js @@ -0,0 +1,41 @@ +module.exports = { + description () { + return 'generates a smart (container) component' + }, + + locals (options) { + var dumbPath = options.settings.getSetting('dumbPath') + var smartPath = options.settings.getSetting('smartPath') + var route = options.entity.options.route || options.entity.options.r + route = route || '' + var routePath = route ? 'routes/' : '' + var importPath = routePath + route + var importDumbPath = importPath ? importPath + '/' + dumbPath : dumbPath + var importSmartPath = importPath ? importPath + '/' + smartPath : smartPath + return { + importSmartPath, + importDumbPath, + dumbPath, + smartPath, + routeName: options.entity.options.route + } + }, + + fileMapTokens (options) { + var route = options.entity.options.route || options.entity.options.r + return { + __routepath__ () { + return route ? 'routes' : '' + }, + __route__ () { + return route || '' + }, + __dumb__ () { + return options.settings.getSetting('dumbPath') + }, + __smart__ () { + return options.settings.getSetting('smartPath') + } + } + } +} diff --git a/packages/client/build/karma.conf.js b/packages/client/build/karma.conf.js new file mode 100644 index 0000000..c0aa30e --- /dev/null +++ b/packages/client/build/karma.conf.js @@ -0,0 +1,76 @@ +import { argv } from 'yargs' +import config from '../config' +import webpackConfig from './webpack.config' +import _debug from 'debug' + +const debug = _debug('app:karma') +debug('Create configuration.') + +const karmaConfig = { + basePath: '../', // project root in relation to bin/karma.js + files: [ + { + pattern: `./${config.dir_test}/test-bundler.js`, + watched: false, + served: true, + included: true + } + ], + singleRun: !argv.watch, + frameworks: ['mocha'], + reporters: ['mocha'], + preprocessors: { + [`${config.dir_test}/test-bundler.js`]: ['webpack'] + }, + browsers: ['PhantomJS'], + webpack: { + devtool: 'cheap-module-source-map', + resolve: { + ...webpackConfig.resolve, + alias: { + ...webpackConfig.resolve.alias, + sinon: 'sinon/pkg/sinon.js' + } + }, + plugins: webpackConfig.plugins, + module: { + noParse: [ + /\/sinon\.js/ + ], + loaders: webpackConfig.module.loaders.concat([ + { + test: /sinon(\\|\/)pkg(\\|\/)sinon\.js/, + loader: 'imports?define=>false,require=>false' + } + ]) + }, + // Enzyme fix, see: + // https://github.com/airbnb/enzyme/issues/47 + externals: { + ...webpackConfig.externals, + 'react/addons': true, + 'react/lib/ExecutionEnvironment': true, + 'react/lib/ReactContext': 'window' + }, + sassLoader: webpackConfig.sassLoader + }, + webpackMiddleware: { + noInfo: true + }, + coverageReporter: { + reporters: config.coverage_reporters + } +} + +if (config.globals.__COVERAGE__) { + karmaConfig.reporters.push('coverage') + karmaConfig.webpack.module.preLoaders = [{ + test: /\.(js|jsx)$/, + include: new RegExp(config.dir_client), + loader: 'isparta', + exclude: /node_modules/ + }] +} + +// cannot use `export default` because of Karma. +module.exports = (cfg) => cfg.set(karmaConfig) diff --git a/packages/client/build/webpack-compiler.js b/packages/client/build/webpack-compiler.js new file mode 100644 index 0000000..8ec10d6 --- /dev/null +++ b/packages/client/build/webpack-compiler.js @@ -0,0 +1,35 @@ +import webpack from 'webpack' +import _debug from 'debug' +import config from '../config' + +const debug = _debug('app:build:webpack-compiler') +const DEFAULT_STATS_FORMAT = config.compiler_stats + +export default function webpackCompiler (webpackConfig, statsFormat = DEFAULT_STATS_FORMAT) { + return new Promise((resolve, reject) => { + const compiler = webpack(webpackConfig) + + compiler.run((err, stats) => { + if (err) { + debug('Webpack compiler encountered a fatal error.', err) + return reject(err) + } + + const jsonStats = stats.toJson() + debug('Webpack compile completed.') + debug(stats.toString(statsFormat)) + + if (jsonStats.errors.length > 0) { + debug('Webpack compiler encountered errors.') + debug(jsonStats.errors.join('\n')) + return reject(new Error('Webpack compiler encountered errors')) + } else if (jsonStats.warnings.length > 0) { + debug('Webpack compiler encountered warnings.') + debug(jsonStats.warnings.join('\n')) + } else { + debug('No errors or warnings encountered.') + } + resolve(jsonStats) + }) + }) +} diff --git a/packages/client/build/webpack.config.js b/packages/client/build/webpack.config.js new file mode 100644 index 0000000..5a2863d --- /dev/null +++ b/packages/client/build/webpack.config.js @@ -0,0 +1,275 @@ +import webpack from 'webpack' +import cssnano from 'cssnano' +import HtmlWebpackPlugin from 'html-webpack-plugin' +import ExtractTextPlugin from 'extract-text-webpack-plugin' +import config from '../config' +import _debug from 'debug' + +const debug = _debug('app:webpack:config') +const paths = config.utils_paths +const {__DEV__, __PROD__, __TEST__} = config.globals + +debug('Create configuration.') +const webpackConfig = { + name: 'client', + target: 'web', + devtool: config.compiler_devtool, + resolve: { + root: paths.client(), + extensions: ['', '.js', '.jsx', '.json'] + }, + module: {} +} +// ------------------------------------ +// Entry Points +// ------------------------------------ +const APP_ENTRY_PATHS = [ + paths.client('main.js') +] + +webpackConfig.entry = { + app: __DEV__ + ? APP_ENTRY_PATHS.concat(`webpack-hot-middleware/client?path=${config.compiler_public_path}__webpack_hmr`) + : APP_ENTRY_PATHS, + vendor: config.compiler_vendor +} + +// ------------------------------------ +// Bundle Output +// ------------------------------------ +webpackConfig.output = { + filename: `[name].[${config.compiler_hash_type}].js`, + path: paths.dist(), + publicPath: config.compiler_public_path +} + +// ------------------------------------ +// Plugins +// ------------------------------------ +webpackConfig.plugins = [ + new webpack.DefinePlugin(config.globals), + new HtmlWebpackPlugin({ + template: paths.client('index.html'), + hash: false, + favicon: paths.client('static/favicon.ico'), + filename: 'index.html', + inject: 'body', + minify: { + collapseWhitespace: true + } + }) +] + +if (__DEV__) { + debug('Enable plugins for live development (HMR, NoErrors).') + webpackConfig.plugins.push( + new webpack.HotModuleReplacementPlugin(), + new webpack.NoErrorsPlugin() + ) +} else if (__PROD__) { + debug('Enable plugins for production (OccurenceOrder, Dedupe & UglifyJS).') + webpackConfig.plugins.push( + new webpack.optimize.OccurrenceOrderPlugin(), + new webpack.optimize.DedupePlugin(), + new webpack.optimize.UglifyJsPlugin({ + compress: { + unused: true, + dead_code: true, + warnings: false + } + }) + ) +} + +// Don't split bundles during testing, since we only want import one bundle +if (!__TEST__) { + webpackConfig.plugins.push( + new webpack.optimize.CommonsChunkPlugin({ + names: ['vendor'] + }) + ) +} + +// ------------------------------------ +// Pre-Loaders +// ------------------------------------ +/* +[ NOTE ] +We no longer use eslint-loader due to it severely impacting build +times for larger projects. `npm run lint` still exists to aid in +deploy processes (such as with CI), and it's recommended that you +use a linting plugin for your IDE in place of this loader. + +If you do wish to continue using the loader, you can uncomment +the code below and run `npm i --save-dev eslint-loader`. This code +will be removed in a future release. + +webpackConfig.module.preLoaders = [{ + test: /\.(js|jsx)$/, + loader: 'eslint', + exclude: /node_modules/ +}] + +webpackConfig.eslint = { + configFile: paths.Base('.eslintrc'), + emitWarning: __DEV__ +} +*/ + +// ------------------------------------ +// Loaders +// ------------------------------------ +// JavaScript / JSON +webpackConfig.module.loaders = [{ + test: /\.(js|jsx)$/, + exclude: /node_modules/, + loader: 'babel', + query: { + cacheDirectory: true, + plugins: ['transform-runtime'], + presets: ['es2015', 'react', 'stage-0'] + } +}, +{ + test: /\.json$/, + loader: 'json' +}] + +// ------------------------------------ +// Style Loaders +// ------------------------------------ +// We use cssnano with the postcss loader, so we tell +// css-loader not to duplicate minimization. +const BASE_CSS_LOADER = 'css?sourceMap&-minimize' + +// Add any packge names here whose styles need to be treated as CSS modules. +// These paths will be combined into a single regex. +const PATHS_TO_TREAT_AS_CSS_MODULES = [ + // 'react-toolbox', (example) +] + +// If config has CSS modules enabled, treat this project's styles as CSS modules. +if (config.compiler_css_modules) { + PATHS_TO_TREAT_AS_CSS_MODULES.push( + paths.client().replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&') // eslint-disable-line + ) +} + +const isUsingCSSModules = !!PATHS_TO_TREAT_AS_CSS_MODULES.length +const cssModulesRegex = new RegExp(`(${PATHS_TO_TREAT_AS_CSS_MODULES.join('|')})`) + +// Loaders for styles that need to be treated as CSS modules. +if (isUsingCSSModules) { + const cssModulesLoader = [ + BASE_CSS_LOADER, + 'modules', + 'importLoaders=1', + 'localIdentName=[name]__[local]___[hash:base64:5]' + ].join('&') + + webpackConfig.module.loaders.push({ + test: /\.scss$/, + include: cssModulesRegex, + loaders: [ + 'style', + cssModulesLoader, + 'postcss', + 'sass?sourceMap' + ] + }) + + webpackConfig.module.loaders.push({ + test: /\.css$/, + include: cssModulesRegex, + loaders: [ + 'style', + cssModulesLoader, + 'postcss' + ] + }) +} + +// Loaders for files that should not be treated as CSS modules. +const excludeCSSModules = isUsingCSSModules ? cssModulesRegex : false +webpackConfig.module.loaders.push({ + test: /\.scss$/, + exclude: excludeCSSModules, + loaders: [ + 'style', + BASE_CSS_LOADER, + 'postcss', + 'sass?sourceMap' + ] +}) +webpackConfig.module.loaders.push({ + test: /\.css$/, + exclude: excludeCSSModules, + loaders: [ + 'style', + BASE_CSS_LOADER, + 'postcss' + ] +}) + +// ------------------------------------ +// Style Configuration +// ------------------------------------ +webpackConfig.sassLoader = { + includePaths: paths.client('styles') +} + +webpackConfig.postcss = [ + cssnano({ + autoprefixer: { + add: true, + remove: true, + browsers: ['last 2 versions'] + }, + discardComments: { + removeAll: true + }, + discardUnused: false, + mergeIdents: false, + reduceIdents: false, + safe: true, + sourcemap: true + }) +] + +// File loaders +/* eslint-disable */ +webpackConfig.module.loaders.push( + { test: /\.woff(\?.*)?$/, loader: 'url?prefix=fonts/&name=[path][name].[ext]&limit=10000&mimetype=application/font-woff' }, + { test: /\.woff2(\?.*)?$/, loader: 'url?prefix=fonts/&name=[path][name].[ext]&limit=10000&mimetype=application/font-woff2' }, + { test: /\.otf(\?.*)?$/, loader: 'file?prefix=fonts/&name=[path][name].[ext]&limit=10000&mimetype=font/opentype' }, + { test: /\.ttf(\?.*)?$/, loader: 'url?prefix=fonts/&name=[path][name].[ext]&limit=10000&mimetype=application/octet-stream' }, + { test: /\.eot(\?.*)?$/, loader: 'file?prefix=fonts/&name=[path][name].[ext]' }, + { test: /\.svg(\?.*)?$/, loader: 'url?prefix=fonts/&name=[path][name].[ext]&limit=10000&mimetype=image/svg+xml' }, + { test: /\.(png|jpg)$/, loader: 'url?limit=8192' } +) +/* eslint-enable */ + +// ------------------------------------ +// Finalize Configuration +// ------------------------------------ +// when we don't know the public path (we know it only when HMR is enabled [in development]) we +// need to use the extractTextPlugin to fix this issue: +// http://stackoverflow.com/questions/34133808/webpack-ots-parsing-error-loading-fonts/34133809#34133809 +if (!__DEV__) { + debug('Apply ExtractTextPlugin to CSS loaders.') + webpackConfig.module.loaders.filter((loader) => + loader.loaders && loader.loaders.find((name) => /css/.test(name.split('?')[0])) + ).forEach((loader) => { + const [first, ...rest] = loader.loaders + loader.loader = ExtractTextPlugin.extract(first, rest.join('!')) + Reflect.deleteProperty(loader, 'loaders') + }) + + webpackConfig.plugins.push( + new ExtractTextPlugin('[name].[contenthash].css', { + allChunks: true + }) + ) +} + +export default webpackConfig diff --git a/packages/client/config/environments.js b/packages/client/config/environments.js new file mode 100644 index 0000000..05902be --- /dev/null +++ b/packages/client/config/environments.js @@ -0,0 +1,36 @@ +// Here is where you can define configuration overrides based on the execution environment. +// Supply a key to the default export matching the NODE_ENV that you wish to target, and +// the Base configuration will apply your overrides before exporting itself. +export default { + // ====================================================== + // Overrides when NODE_ENV === 'development' + // ====================================================== + // NOTE: In development, we use an explicit public path when the assets + // are served webpack by to fix this issue: + // http://stackoverflow.com/questions/34133808/webpack-ots-parsing-error-loading-fonts/34133809#34133809 + development: (config) => ({ + compiler_public_path: `http://${config.server_host}:${config.server_port}/`, + proxy: { + enabled: false, + options: { + host: 'http://localhost:8000', + match: /^\/api\/.*/ + } + } + }), + + // ====================================================== + // Overrides when NODE_ENV === 'production' + // ====================================================== + production: (config) => ({ + compiler_public_path: '/autonews/', + compiler_fail_on_warning: false, + compiler_hash_type: 'chunkhash', + compiler_devtool: null, + compiler_stats: { + chunks: true, + chunkModules: true, + colors: true + } + }) +} diff --git a/packages/client/config/index.js b/packages/client/config/index.js new file mode 100644 index 0000000..5129502 --- /dev/null +++ b/packages/client/config/index.js @@ -0,0 +1,136 @@ +/* eslint key-spacing:0 spaced-comment:0 */ +import path from 'path' +import _debug from 'debug' +import {argv} from 'yargs' +import ip from 'ip' + +const localip = ip.address() +const debug = _debug('app:config') +debug('Creating default configuration.') + +// ======================================================== +// Default Configuration +// ======================================================== +const config = { + env: process.env.NODE_ENV || 'development', + + // ---------------------------------- + // Project Structure + // ---------------------------------- + path_base: path.resolve(__dirname, '..'), + dir_client: 'src', + dir_dist: '../public', + dir_server: 'server', + dir_test: 'tests', + + // ---------------------------------- + // Server Configuration + // ---------------------------------- + server_host: localip, // use string 'localhost' to prevent exposure on local network + server_port: process.env.PORT || 3091, + + // ---------------------------------- + // Compiler Configuration + // ---------------------------------- + compiler_css_modules: true, + compiler_devtool: 'source-map', + compiler_hash_type: 'hash', + compiler_fail_on_warning: false, + compiler_quiet: false, + compiler_public_path: '/autonews/', + compiler_stats: { + chunks: false, + chunkModules: false, + colors: true + }, + compiler_vendor: [ + 'babel-polyfill', + 'history', + 'react', + 'react-redux', + 'react-router', + 'react-router-redux', + 'redux', + 'redux-saga', + 'immutable', + 'whatwg-fetch' + ], + + // ---------------------------------- + // Test Configuration + // ---------------------------------- + coverage_reporters: [ + {type: 'text-summary'}, + {type: 'lcov', dir: 'coverage'} + ] +} + +/************************************************ + ------------------------------------------------- + + All Internal Configuration Below + Edit at Your Own Risk + + ------------------------------------------------- + ************************************************/ + +// ------------------------------------ +// Environment +// ------------------------------------ +// N.B.: globals added here must _also_ be added to .eslintrc +config.globals = { + 'process.env': { + 'NODE_ENV': JSON.stringify(config.env) + }, + 'NODE_ENV': config.env, + '__DEV__': config.env === 'development', + '__PROD__': config.env === 'production', + '__TEST__': config.env === 'test', + '__DEBUG__': config.env === 'development' && !argv.no_debug, + '__COVERAGE__': !argv.watch && config.env === 'test', + '__BASENAME__': JSON.stringify(process.env.BASENAME || '/autonews/') +} + +// ------------------------------------ +// Validate Vendor Dependencies +// ------------------------------------ +const pkg = require('../package.json') + +config.compiler_vendor = config.compiler_vendor + .filter((dep) => { + if (pkg.dependencies[dep]) return true + + debug( + `Package "${dep}" was not found as an npm dependency in package.json; ` + + `it won't be included in the webpack vendor bundle. + Consider removing it from vendor_dependencies in ~/config/index.js` + ) + }) + +// ------------------------------------ +// Utilities +// ------------------------------------ +const resolve = path.resolve +const base = (...args) => + Reflect.apply(resolve, null, [config.path_base, ...args]) + +config.utils_paths = { + base: base, + client: base.bind(null, config.dir_client), + dist: base.bind(null, config.dir_dist) +} + +// ======================================================== +// Environment Configuration +// ======================================================== +debug(`Looking for environment overrides for NODE_ENV "${config.env}".`) +const environments = require('./environments').default +const overrides = environments[config.env] +if (overrides) { + debug('Found overrides, applying to default configuration.') + Object.assign(config, overrides(config)) +} else { + debug('No environment overrides found, defaults will be used.') +} + +export default config diff --git a/packages/client/node_modules/.bin/_mocha b/packages/client/node_modules/.bin/_mocha new file mode 100644 index 0000000..222f7da --- /dev/null +++ b/packages/client/node_modules/.bin/_mocha @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/mocha/bin/_mocha" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/mocha/bin/_mocha" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/_mocha.cmd b/packages/client/node_modules/.bin/_mocha.cmd new file mode 100644 index 0000000..f75d463 --- /dev/null +++ b/packages/client/node_modules/.bin/_mocha.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\mocha\bin\_mocha" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\mocha\bin\_mocha" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel b/packages/client/node_modules/.bin/babel new file mode 100644 index 0000000..c91472a --- /dev/null +++ b/packages/client/node_modules/.bin/babel @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/babel-cli/bin/babel.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/babel-doctor b/packages/client/node_modules/.bin/babel-doctor new file mode 100644 index 0000000..b5cf606 --- /dev/null +++ b/packages/client/node_modules/.bin/babel-doctor @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-doctor.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/babel-cli/bin/babel-doctor.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/babel-doctor.cmd b/packages/client/node_modules/.bin/babel-doctor.cmd new file mode 100644 index 0000000..645138c --- /dev/null +++ b/packages/client/node_modules/.bin/babel-doctor.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-doctor.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-doctor.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel-external-helpers b/packages/client/node_modules/.bin/babel-external-helpers new file mode 100644 index 0000000..85031db --- /dev/null +++ b/packages/client/node_modules/.bin/babel-external-helpers @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-external-helpers.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/babel-cli/bin/babel-external-helpers.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/babel-external-helpers.cmd b/packages/client/node_modules/.bin/babel-external-helpers.cmd new file mode 100644 index 0000000..b5f2e81 --- /dev/null +++ b/packages/client/node_modules/.bin/babel-external-helpers.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-external-helpers.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-external-helpers.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel-node b/packages/client/node_modules/.bin/babel-node new file mode 100644 index 0000000..3195ab8 --- /dev/null +++ b/packages/client/node_modules/.bin/babel-node @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-node.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/babel-cli/bin/babel-node.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/babel-node.cmd b/packages/client/node_modules/.bin/babel-node.cmd new file mode 100644 index 0000000..23dc259 --- /dev/null +++ b/packages/client/node_modules/.bin/babel-node.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-node.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-node.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel.cmd b/packages/client/node_modules/.bin/babel.cmd new file mode 100644 index 0000000..a59af85 --- /dev/null +++ b/packages/client/node_modules/.bin/babel.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/better-npm-run b/packages/client/node_modules/.bin/better-npm-run new file mode 100644 index 0000000..dbcadd7 --- /dev/null +++ b/packages/client/node_modules/.bin/better-npm-run @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/better-npm-run.cmd b/packages/client/node_modules/.bin/better-npm-run.cmd new file mode 100644 index 0000000..bc9358f --- /dev/null +++ b/packages/client/node_modules/.bin/better-npm-run.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/bnr b/packages/client/node_modules/.bin/bnr new file mode 100644 index 0000000..dbcadd7 --- /dev/null +++ b/packages/client/node_modules/.bin/bnr @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/bnr.cmd b/packages/client/node_modules/.bin/bnr.cmd new file mode 100644 index 0000000..bc9358f --- /dev/null +++ b/packages/client/node_modules/.bin/bnr.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/codecov b/packages/client/node_modules/.bin/codecov new file mode 100644 index 0000000..992a5cb --- /dev/null +++ b/packages/client/node_modules/.bin/codecov @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/codecov/bin/codecov" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/codecov/bin/codecov" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/codecov.cmd b/packages/client/node_modules/.bin/codecov.cmd new file mode 100644 index 0000000..d6cbcef --- /dev/null +++ b/packages/client/node_modules/.bin/codecov.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\codecov\bin\codecov" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\codecov\bin\codecov" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/eslint b/packages/client/node_modules/.bin/eslint new file mode 100644 index 0000000..52fdf27 --- /dev/null +++ b/packages/client/node_modules/.bin/eslint @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/eslint/bin/eslint.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/eslint/bin/eslint.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/eslint.cmd b/packages/client/node_modules/.bin/eslint.cmd new file mode 100644 index 0000000..2c35a91 --- /dev/null +++ b/packages/client/node_modules/.bin/eslint.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\eslint\bin\eslint.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\eslint\bin\eslint.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/karma b/packages/client/node_modules/.bin/karma new file mode 100644 index 0000000..19e0599 --- /dev/null +++ b/packages/client/node_modules/.bin/karma @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/karma/bin/karma" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/karma/bin/karma" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/karma.cmd b/packages/client/node_modules/.bin/karma.cmd new file mode 100644 index 0000000..9ce8d0c --- /dev/null +++ b/packages/client/node_modules/.bin/karma.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\karma\bin\karma" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\karma\bin\karma" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/mocha b/packages/client/node_modules/.bin/mocha new file mode 100644 index 0000000..2c09b45 --- /dev/null +++ b/packages/client/node_modules/.bin/mocha @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/mocha/bin/mocha" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/mocha/bin/mocha" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/mocha.cmd b/packages/client/node_modules/.bin/mocha.cmd new file mode 100644 index 0000000..b6b5c70 --- /dev/null +++ b/packages/client/node_modules/.bin/mocha.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\mocha\bin\mocha" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\mocha\bin\mocha" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/node-sass b/packages/client/node_modules/.bin/node-sass new file mode 100644 index 0000000..78039b8 --- /dev/null +++ b/packages/client/node_modules/.bin/node-sass @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/node-sass/bin/node-sass" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/node-sass/bin/node-sass" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/node-sass.cmd b/packages/client/node_modules/.bin/node-sass.cmd new file mode 100644 index 0000000..948df69 --- /dev/null +++ b/packages/client/node_modules/.bin/node-sass.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\node-sass\bin\node-sass" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\node-sass\bin\node-sass" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/nodemon b/packages/client/node_modules/.bin/nodemon new file mode 100644 index 0000000..cf4a03e --- /dev/null +++ b/packages/client/node_modules/.bin/nodemon @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/nodemon/bin/nodemon.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/nodemon/bin/nodemon.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/nodemon.cmd b/packages/client/node_modules/.bin/nodemon.cmd new file mode 100644 index 0000000..91d49c0 --- /dev/null +++ b/packages/client/node_modules/.bin/nodemon.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\nodemon\bin\nodemon.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\nodemon\bin\nodemon.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/phantomjs b/packages/client/node_modules/.bin/phantomjs new file mode 100644 index 0000000..e7c08dc --- /dev/null +++ b/packages/client/node_modules/.bin/phantomjs @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/phantomjs-prebuilt/bin/phantomjs" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/phantomjs-prebuilt/bin/phantomjs" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/phantomjs.cmd b/packages/client/node_modules/.bin/phantomjs.cmd new file mode 100644 index 0000000..3d1a1ee --- /dev/null +++ b/packages/client/node_modules/.bin/phantomjs.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\phantomjs-prebuilt\bin\phantomjs" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\phantomjs-prebuilt\bin\phantomjs" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/rimraf b/packages/client/node_modules/.bin/rimraf new file mode 100644 index 0000000..0df1e97 --- /dev/null +++ b/packages/client/node_modules/.bin/rimraf @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/rimraf/bin.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/rimraf/bin.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/rimraf.cmd b/packages/client/node_modules/.bin/rimraf.cmd new file mode 100644 index 0000000..cd719bd --- /dev/null +++ b/packages/client/node_modules/.bin/rimraf.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\rimraf\bin.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\rimraf\bin.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/webpack b/packages/client/node_modules/.bin/webpack new file mode 100644 index 0000000..f95aa81 --- /dev/null +++ b/packages/client/node_modules/.bin/webpack @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../../../../node_modules/webpack/bin/webpack.js" "$@" + ret=$? +else + node "$basedir/../../../../node_modules/webpack/bin/webpack.js" "$@" + ret=$? +fi +exit $ret diff --git a/packages/client/node_modules/.bin/webpack.cmd b/packages/client/node_modules/.bin/webpack.cmd new file mode 100644 index 0000000..cead068 --- /dev/null +++ b/packages/client/node_modules/.bin/webpack.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\webpack\bin\webpack.js" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\..\..\..\node_modules\webpack\bin\webpack.js" %* +) \ No newline at end of file diff --git a/packages/client/node_modules/immutable/LICENSE b/packages/client/node_modules/immutable/LICENSE new file mode 100644 index 0000000..cde61b6 --- /dev/null +++ b/packages/client/node_modules/immutable/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2014-present, Facebook, Inc. + +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. diff --git a/packages/client/node_modules/immutable/README.md b/packages/client/node_modules/immutable/README.md new file mode 100644 index 0000000..a42b346 --- /dev/null +++ b/packages/client/node_modules/immutable/README.md @@ -0,0 +1,474 @@ +Immutable collections for JavaScript +==================================== + +[![Build Status](https://travis-ci.org/facebook/immutable-js.svg)](https://travis-ci.org/facebook/immutable-js) + +[Immutable][] data cannot be changed once created, leading to much simpler +application development, no defensive copying, and enabling advanced memoization +and change detection techniques with simple logic. [Persistent][] data presents +a mutative API which does not update the data in-place, but instead always +yields new updated data. + +Immutable.js provides many Persistent Immutable data structures including: +`List`, `Stack`, `Map`, `OrderedMap`, `Set`, `OrderedSet` and `Record`. + +These data structures are highly efficient on modern JavaScript VMs by using +structural sharing via [hash maps tries][] and [vector tries][] as popularized +by Clojure and Scala, minimizing the need to copy or cache data. + +`Immutable` also provides a lazy `Seq`, allowing efficient +chaining of collection methods like `map` and `filter` without creating +intermediate representations. Create some `Seq` with `Range` and `Repeat`. + +Want to hear more? Watch the presentation about Immutable.js: + + + +[Persistent]: http://en.wikipedia.org/wiki/Persistent_data_structure +[Immutable]: http://en.wikipedia.org/wiki/Immutable_object +[hash maps tries]: http://en.wikipedia.org/wiki/Hash_array_mapped_trie +[vector tries]: http://hypirion.com/musings/understanding-persistent-vector-pt-1 + + +Getting started +--------------- + +Install `immutable` using npm. + +```shell +npm install immutable +``` + +Then require it into any module. + +```javascript +var Immutable = require('immutable'); +var map1 = Immutable.Map({a:1, b:2, c:3}); +var map2 = map1.set('b', 50); +map1.get('b'); // 2 +map2.get('b'); // 50 +``` + +### Browser + +To use `immutable` from a browser, download [dist/immutable.min.js](https://github.com/facebook/immutable-js/blob/master/dist/immutable.min.js) +or use a CDN such as [CDNJS](https://cdnjs.com/libraries/immutable) +or [jsDelivr](http://www.jsdelivr.com/#!immutable.js). + +Then, add it as a script tag to your page: + +```html + + +``` + +Or use an AMD loader (such as [RequireJS](http://requirejs.org/)): + +```javascript +require(['./immutable.min.js'], function (Immutable) { + var map1 = Immutable.Map({a:1, b:2, c:3}); + var map2 = map1.set('b', 50); + map1.get('b'); // 2 + map2.get('b'); // 50 +}); +``` + +If you're using [browserify](http://browserify.org/), the `immutable` npm module +also works from the browser. + +### TypeScript + +Use these Immutable collections and sequences as you would use native +collections in your [TypeScript](http://typescriptlang.org) programs while still taking +advantage of type generics, error detection, and auto-complete in your IDE. + +Just add a reference with a relative path to the type declarations at the top +of your file. + +```javascript +/// +import Immutable = require('immutable'); +var map1: Immutable.Map; +map1 = Immutable.Map({a:1, b:2, c:3}); +var map2 = map1.set('b', 50); +map1.get('b'); // 2 +map2.get('b'); // 50 +``` + + +The case for Immutability +------------------------- + +Much of what makes application development difficult is tracking mutation and +maintaining state. Developing with immutable data encourages you to think +differently about how data flows through your application. + +Subscribing to data events throughout your application creates a huge overhead of +book-keeping which can hurt performance, sometimes dramatically, and creates +opportunities for areas of your application to get out of sync with each other +due to easy to make programmer error. Since immutable data never changes, +subscribing to changes throughout the model is a dead-end and new data can only +ever be passed from above. + +This model of data flow aligns well with the architecture of [React][] +and especially well with an application designed using the ideas of [Flux][]. + +When data is passed from above rather than being subscribed to, and you're only +interested in doing work when something has changed, you can use equality. + +Immutable collections should be treated as *values* rather than *objects*. While +objects represents some thing which could change over time, a value represents +the state of that thing at a particular instance of time. This principle is most +important to understanding the appropriate use of immutable data. In order to +treat Immutable.js collections as values, it's important to use the +`Immutable.is()` function or `.equals()` method to determine value equality +instead of the `===` operator which determines object reference identity. + +```javascript +var map1 = Immutable.Map({a:1, b:2, c:3}); +var map2 = map1.set('b', 2); +assert(map1.equals(map2) === true); +var map3 = map1.set('b', 50); +assert(map1.equals(map3) === false); +``` + +Note: As a performance optimization `Immutable` attempts to return the existing +collection when an operation would result in an identical collection, allowing +for using `===` reference equality to determine if something definitely has not +changed. This can be extremely useful when used within memoization function +which would prefer to re-run the function if a deeper equality check could +potentially be more costly. The `===` equality check is also used internally by +`Immutable.is` and `.equals()` as a performance optimization. + +If an object is immutable, it can be "copied" simply by making another reference +to it instead of copying the entire object. Because a reference is much smaller +than the object itself, this results in memory savings and a potential boost in +execution speed for programs which rely on copies (such as an undo-stack). + +```javascript +var map1 = Immutable.Map({a:1, b:2, c:3}); +var clone = map1; +``` + +[React]: http://facebook.github.io/react/ +[Flux]: http://facebook.github.io/flux/docs/overview.html + + +JavaScript-first API +-------------------- + +While `immutable` is inspired by Clojure, Scala, Haskell and other functional +programming environments, it's designed to bring these powerful concepts to +JavaScript, and therefore has an Object-Oriented API that closely mirrors that +of [ES6][] [Array][], [Map][], and [Set][]. + +[ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla +[Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array +[Map]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map +[Set]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set + +The difference for the immutable collections is that methods which would mutate +the collection, like `push`, `set`, `unshift` or `splice` instead return a new +immutable collection. Methods which return new arrays like `slice` or `concat` +instead return new immutable collections. + +```javascript +var list1 = Immutable.List.of(1, 2); +var list2 = list1.push(3, 4, 5); +var list3 = list2.unshift(0); +var list4 = list1.concat(list2, list3); +assert(list1.size === 2); +assert(list2.size === 5); +assert(list3.size === 6); +assert(list4.size === 13); +assert(list4.get(0) === 1); +``` + +Almost all of the methods on [Array][] will be found in similar form on +`Immutable.List`, those of [Map][] found on `Immutable.Map`, and those of [Set][] +found on `Immutable.Set`, including collection operations like `forEach()` +and `map()`. + +```javascript +var alpha = Immutable.Map({a:1, b:2, c:3, d:4}); +alpha.map((v, k) => k.toUpperCase()).join(); +// 'A,B,C,D' +``` + +### Accepts raw JavaScript objects. + +Designed to inter-operate with your existing JavaScript, `immutable` +accepts plain JavaScript Arrays and Objects anywhere a method expects an +`Iterable` with no performance penalty. + +```javascript +var map1 = Immutable.Map({a:1, b:2, c:3, d:4}); +var map2 = Immutable.Map({c:10, a:20, t:30}); +var obj = {d:100, o:200, g:300}; +var map3 = map1.merge(map2, obj); +// Map { a: 20, b: 2, c: 10, d: 100, t: 30, o: 200, g: 300 } +``` + +This is possible because `immutable` can treat any JavaScript Array or Object +as an Iterable. You can take advantage of this in order to get sophisticated +collection methods on JavaScript Objects, which otherwise have a very sparse +native API. Because Seq evaluates lazily and does not cache intermediate +results, these operations can be extremely efficient. + +```javascript +var myObject = {a:1,b:2,c:3}; +Immutable.Seq(myObject).map(x => x * x).toObject(); +// { a: 1, b: 4, c: 9 } +``` + +Keep in mind, when using JS objects to construct Immutable Maps, that +JavaScript Object properties are always strings, even if written in a quote-less +shorthand, while Immutable Maps accept keys of any type. + +```js +var obj = { 1: "one" }; +Object.keys(obj); // [ "1" ] +obj["1"]; // "one" +obj[1]; // "one" + +var map = Immutable.fromJS(obj); +map.get("1"); // "one" +map.get(1); // undefined +``` + +Property access for JavaScript Objects first converts the key to a string, but +since Immutable Map keys can be of any type the argument to `get()` is +not altered. + + +### Converts back to raw JavaScript objects. + +All `immutable` Iterables can be converted to plain JavaScript Arrays and +Objects shallowly with `toArray()` and `toObject()` or deeply with `toJS()`. +All Immutable Iterables also implement `toJSON()` allowing them to be passed to +`JSON.stringify` directly. + +```javascript +var deep = Immutable.Map({ a: 1, b: 2, c: Immutable.List.of(3, 4, 5) }); +deep.toObject() // { a: 1, b: 2, c: List [ 3, 4, 5 ] } +deep.toArray() // [ 1, 2, List [ 3, 4, 5 ] ] +deep.toJS() // { a: 1, b: 2, c: [ 3, 4, 5 ] } +JSON.stringify(deep) // '{"a":1,"b":2,"c":[3,4,5]}' +``` + +### Embraces ES6 + +`Immutable` takes advantage of features added to JavaScript in [ES6][], +the latest standard version of ECMAScript (JavaScript), including [Iterators][], +[Arrow Functions][], [Classes][], and [Modules][]. It's also inspired by the +[Map][] and [Set][] collections added to ES6. The library is "transpiled" to ES3 +in order to support all modern browsers. + +All examples are presented in ES6. To run in all browsers, they need to be +translated to ES3. + +```js +// ES6 +foo.map(x => x * x); +// ES3 +foo.map(function (x) { return x * x; }); +``` + +[Iterators]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol +[Arrow Functions]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions +[Classes]: http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes +[Modules]: http://www.2ality.com/2014/09/es6-modules-final.html + + +Nested Structures +----------------- + +The collections in `immutable` are intended to be nested, allowing for deep +trees of data, similar to JSON. + +```javascript +var nested = Immutable.fromJS({a:{b:{c:[3,4,5]}}}); +// Map { a: Map { b: Map { c: List [ 3, 4, 5 ] } } } +``` + +A few power-tools allow for reading and operating on nested data. The +most useful are `mergeDeep`, `getIn`, `setIn`, and `updateIn`, found on `List`, +`Map` and `OrderedMap`. + +```javascript +var nested2 = nested.mergeDeep({a:{b:{d:6}}}); +// Map { a: Map { b: Map { c: List [ 3, 4, 5 ], d: 6 } } } +``` + +```javascript +nested2.getIn(['a', 'b', 'd']); // 6 + +var nested3 = nested2.updateIn(['a', 'b', 'd'], value => value + 1); +// Map { a: Map { b: Map { c: List [ 3, 4, 5 ], d: 7 } } } + +var nested4 = nested3.updateIn(['a', 'b', 'c'], list => list.push(6)); +// Map { a: Map { b: Map { c: List [ 3, 4, 5, 6 ], d: 7 } } } +``` + + +Lazy Seq +-------- + +`Seq` describes a lazy operation, allowing them to efficiently chain +use of all the Iterable methods (such as `map` and `filter`). + +**Seq is immutable** — Once a Seq is created, it cannot be +changed, appended to, rearranged or otherwise modified. Instead, any mutative +method called on a Seq will return a new Seq. + +**Seq is lazy** — Seq does as little work as necessary to respond to any +method call. + +For example, the following does not perform any work, because the resulting +Seq is never used: + + var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) + .filter(x => x % 2).map(x => x * x); + +Once the Seq is used, it performs only the work necessary. In this +example, no intermediate arrays are ever created, filter is called three times, +and map is only called twice: + + console.log(oddSquares.get(1)); // 9 + +Any collection can be converted to a lazy Seq with `.toSeq()`. + + var seq = Immutable.Map({a:1, b:1, c:1}).toSeq(); + +Seq allow for the efficient chaining of sequence operations, especially when +converting to a different concrete type (such as to a JS object): + + seq.flip().map(key => key.toUpperCase()).flip().toObject(); + // Map { A: 1, B: 1, C: 1 } + +As well as expressing logic that would otherwise seem memory-limited: + + Immutable.Range(1, Infinity) + .skip(1000) + .map(n => -n) + .filter(n => n % 2 === 0) + .take(2) + .reduce((r, n) => r * n, 1); + // 1006008 + +Note: An iterable is always iterated in the same order, however that order may +not always be well defined, as is the case for the `Map`. + + +Equality treats Collections as Data +----------------------------------- + +`Immutable` provides equality which treats immutable data structures as pure +data, performing a deep equality check if necessary. + +```javascript +var map1 = Immutable.Map({a:1, b:1, c:1}); +var map2 = Immutable.Map({a:1, b:1, c:1}); +assert(map1 !== map2); // two different instances +assert(Immutable.is(map1, map2)); // have equivalent values +assert(map1.equals(map2)); // alternatively use the equals method +``` + +`Immutable.is()` uses the same measure of equality as [Object.is][] +including if both are immutable and all keys and values are equal +using the same measure of equality. + +[Object.is]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + + +Batching Mutations +------------------ + +> If a tree falls in the woods, does it make a sound? +> +> If a pure function mutates some local data in order to produce an immutable +> return value, is that ok? +> +> — Rich Hickey, Clojure + +Applying a mutation to create a new immutable object results in some overhead, +which can add up to a minor performance penalty. If you need to apply a series +of mutations locally before returning, `Immutable` gives you the ability to +create a temporary mutable (transient) copy of a collection and apply a batch of +mutations in a performant manner by using `withMutations`. In fact, this is +exactly how `Immutable` applies complex mutations itself. + +As an example, building `list2` results in the creation of 1, not 3, new +immutable Lists. + +```javascript +var list1 = Immutable.List.of(1,2,3); +var list2 = list1.withMutations(function (list) { + list.push(4).push(5).push(6); +}); +assert(list1.size === 3); +assert(list2.size === 6); +``` + +Note: `immutable` also provides `asMutable` and `asImmutable`, but only +encourages their use when `withMutations` will not suffice. Use caution to not +return a mutable copy, which could result in undesired behavior. + +*Important!*: Only a select few methods can be used in `withMutations` including +`set`, `push` and `pop`. These methods can be applied directly against a +persistent data-structure where other methods like `map`, `filter`, `sort`, +and `splice` will always return new immutable data-structures and never mutate +a mutable collection. + + +Documentation +------------- + +[Read the docs](http://facebook.github.io/immutable-js/docs/) and eat your vegetables. + +Docs are automatically generated from [Immutable.d.ts](https://github.com/facebook/immutable-js/blob/master/type-definitions/Immutable.d.ts). +Please contribute! + +Also, don't miss the [Wiki](https://github.com/facebook/immutable-js/wiki) which +contains articles on specific topics. Can't find something? Open an [issue](https://github.com/facebook/immutable-js/issues). + + +Testing +------- + +If you are using the [Chai Assertion Library](http://chaijs.com/), [Chai Immutable](https://github.com/astorije/chai-immutable) provides a set of assertions to use against `Immutable` collections. + + +Contribution +------------ + +Use [Github issues](https://github.com/facebook/immutable-js/issues) for requests. + +We actively welcome pull requests, learn how to [contribute](./CONTRIBUTING.md). + + +Changelog +--------- + +Changes are tracked as [Github releases](https://github.com/facebook/immutable-js/releases). + + +Thanks +------ + +[Phil Bagwell](https://www.youtube.com/watch?v=K2NYwP90bNs), for his inspiration +and research in persistent data structures. + +[Hugh Jackson](https://github.com/hughfdjackson/), for providing the npm package +name. If you're looking for his unsupported package, see [this repository](https://github.com/hughfdjackson/immutable). + + +License +------- + +Immutable.js is [MIT-licensed](https://github.com/facebook/immutable-js/blob/master/LICENSE). diff --git a/packages/client/node_modules/immutable/contrib/cursor/README.md b/packages/client/node_modules/immutable/contrib/cursor/README.md new file mode 100644 index 0000000..3021432 --- /dev/null +++ b/packages/client/node_modules/immutable/contrib/cursor/README.md @@ -0,0 +1,33 @@ +Cursors +------- + +Cursors allow you to hold a reference to a path in a nested immutable data +structure, allowing you to pass smaller sections of a larger nested +collection to portions of your application while maintaining a central point +aware of changes to the entire data structure: an `onChange` function which is +called whenever a cursor or sub-cursor calls `update`. + +This is particularly useful when used in conjuction with component-based UI +libraries like [React](http://facebook.github.io/react/) or to simulate +"state" throughout an application while maintaining a single flow of logic. + + +```javascript +var Immutable = require('immutable'); +var Cursor = require('immutable/contrib/cursor'); + +var data = Immutable.fromJS({ a: { b: { c: 1 } } }); +var cursor = Cursor.from(data, ['a', 'b'], newData => { + data = newData; +}); + +// ... elsewhere ... + +cursor.get('c'); // 1 +cursor = cursor.update('c', x => x + 1); +cursor.get('c'); // 2 + +// ... back to data ... + +data.getIn(['a', 'b', 'c']); // 2 +``` diff --git a/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip b/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip new file mode 100644 index 0000000..32c33bb --- /dev/null +++ b/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip @@ -0,0 +1,400 @@ +/** + * 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. + */ + +/// +/// +/// + +jest.autoMockOff(); + +import Immutable = require('immutable'); +import Cursor = require('immutable/contrib/cursor'); + +describe('Cursor', () => { + + beforeEach(function () { + this.addMatchers({ + toValueEqual: function (expected) { + var actual = this.actual; + if (!Immutable.is(expected, this.actual)) { + this.message = 'Expected\n' + this.actual + '\nto equal\n' + expected; + return false; + } + return true; + } + }); + }); + + var json = { a: { b: { c: 1 } } }; + + it('gets from its path', () => { + var data = Immutable.fromJS(json); + var cursor = Cursor.from(data); + + expect(cursor.deref()).toBe(data); + + var deepCursor = cursor.cursor(['a', 'b']); + expect(deepCursor.deref().toJS()).toEqual(json.a.b); + expect(deepCursor.deref()).toBe(data.getIn(['a', 'b'])); + expect(deepCursor.get('c')).toBe(1); + + var leafCursor = deepCursor.cursor('c'); + expect(leafCursor.deref()).toBe(1); + + var missCursor = leafCursor.cursor('d'); + expect(missCursor.deref()).toBe(undefined); + }); + + it('gets return new cursors', () => { + var data = Immutable.fromJS(json); + var cursor = Cursor.from(data); + var deepCursor = cursor.getIn(['a', 'b']); + expect(deepCursor.deref()).toBe(data.getIn(['a', 'b'])); + }); + + it('gets return new cursors using List', () => { + var data = Immutable.fromJS(json); + var cursor = Cursor.from(data); + var deepCursor = cursor.getIn(Immutable.fromJS(['a', 'b'])); + expect(deepCursor.deref()).toBe(data.getIn(Immutable.fromJS(['a', 'b']))); + }); + + it('cursor return new cursors of correct type', () => { + var data = Immutable.fromJS({ a: [1, 2, 3] }); + var cursor = Cursor.from(data); + var deepCursor = cursor.cursor('a'); + expect(deepCursor.findIndex).toBeDefined(); + }); + + it('can be treated as a value', () => { + var data = Immutable.fromJS(json); + var cursor = Cursor.from(data, ['a', 'b']); + expect(cursor.toJS()).toEqual(json.a.b); + expect(cursor).toValueEqual(data.getIn(['a', 'b'])); + expect(cursor.size).toBe(1); + expect(cursor.get('c')).toBe(1); + }); + + it('can be value compared to a primitive', () => { + var data = Immutable.Map({ a: 'A' }); + var aCursor = Cursor.from(data, 'a'); + expect(aCursor.size).toBe(undefined); + expect(aCursor.deref()).toBe('A'); + expect(Immutable.is(aCursor, 'A')).toBe(true); + }); + + it('updates at its path', () => { + var onChange = jest.genMockFunction(); + + var data = Immutable.fromJS(json); + var aCursor = Cursor.from(data, 'a', onChange); + + var deepCursor = aCursor.cursor(['b', 'c']); + expect(deepCursor.deref()).toBe(1); + + // cursor edits return new cursors: + var newDeepCursor = deepCursor.update(x => x + 1); + expect(newDeepCursor.deref()).toBe(2); + var call1 = onChange.mock.calls[0]; + expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); + expect(call1[1]).toBe(data); + expect(call1[2]).toEqual(['a', 'b', 'c']); + + var newestDeepCursor = newDeepCursor.update(x => x + 1); + expect(newestDeepCursor.deref()).toBe(3); + var call2 = onChange.mock.calls[1]; + expect(call2[0]).toValueEqual(Immutable.fromJS({a:{b:{c:3}}})); + expect(call2[1]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); + expect(call2[2]).toEqual(['a', 'b', 'c']); + + // meanwhile, data is still immutable: + expect(data.toJS()).toEqual(json); + + // as is the original cursor. + expect(deepCursor.deref()).toBe(1); + var otherNewDeepCursor = deepCursor.update(x => x + 10); + expect(otherNewDeepCursor.deref()).toBe(11); + var call3 = onChange.mock.calls[2]; + expect(call3[0]).toValueEqual(Immutable.fromJS({a:{b:{c:11}}})); + expect(call3[1]).toBe(data); + expect(call3[2]).toEqual(['a', 'b', 'c']); + + // and update has been called exactly thrice. + expect(onChange.mock.calls.length).toBe(3); + }); + + it('updates with the return value of onChange', () => { + var onChange = jest.genMockFunction(); + + var data = Immutable.fromJS(json); + var deepCursor = Cursor.from(data, ['a', 'b', 'c'], onChange); + + onChange.mockReturnValueOnce(undefined); + // onChange returning undefined has no effect + var newCursor = deepCursor.update(x => x + 1); + expect(newCursor.deref()).toBe(2); + var call1 = onChange.mock.calls[0]; + expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); + expect(call1[1]).toBe(data); + expect(call1[2]).toEqual(['a', 'b', 'c']); + + onChange.mockReturnValueOnce(Immutable.fromJS({a:{b:{c:11}}})); + // onChange returning something else has an effect + newCursor = newCursor.update(x => 999); + expect(newCursor.deref()).toBe(11); + var call2 = onChange.mock.calls[1]; + expect(call2[0]).toValueEqual(Immutable.fromJS({a:{b:{c:999}}})); + expect(call2[1]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); + expect(call2[2]).toEqual(['a', 'b', 'c']); + + // and update has been called exactly twice + expect(onChange.mock.calls.length).toBe(2); + }); + + it('has map API for update shorthand', () => { + var onChange = jest.genMockFunction(); + + var data = Immutable.fromJS(json); + var aCursor = Cursor.from(data, 'a', onChange); + var bCursor = aCursor.cursor('b'); + var cCursor = bCursor.cursor('c'); + + expect(bCursor.set('c', 10).deref()).toValueEqual( + Immutable.fromJS({ c: 10 }) + ); + + var call1 = onChange.mock.calls[0]; + expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); + expect(call1[1]).toBe(data); + expect(call1[2]).toEqual(['a', 'b', 'c']); + }); + + it('creates maps as necessary', () => { + var data = Immutable.Map(); + var cursor = Cursor.from(data, ['a', 'b', 'c']); + expect(cursor.deref()).toBe(undefined); + cursor = cursor.set('d', 3); + expect(cursor.deref()).toValueEqual(Immutable.Map({d: 3})); + }); + + it('can set undefined', () => { + var data = Immutable.Map(); + var cursor = Cursor.from(data, ['a', 'b', 'c']); + expect(cursor.deref()).toBe(undefined); + cursor = cursor.set('d', undefined); + expect(cursor.toJS()).toEqual({d: undefined}); + }); + + it('has the sequence API', () => { + var data = Immutable.Map({a: 1, b: 2, c: 3}); + var cursor = Cursor.from(data); + expect(cursor.map((x: number) => x * x)).toValueEqual(Immutable.Map({a: 1, b: 4, c: 9})); + }); + + it('can push values on a List', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); + var cursor = Cursor.from(data, ['a', 'b'], onChange); + + expect(cursor.push(3,4)).toValueEqual(Immutable.List([0, 1, 2, 3, 4])); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [0, 1, 2, 3, 4]}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b']); + }); + + it('can pop values of a List', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); + var cursor = Cursor.from(data, ['a', 'b'], onChange); + + expect(cursor.pop()).toValueEqual(Immutable.List([0, 1])); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [0, 1]}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b']); + }); + + it('can unshift values on a List', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); + var cursor = Cursor.from(data, ['a', 'b'], onChange); + + expect(cursor.unshift(-2, -1)).toValueEqual(Immutable.List([-2, -1, 0, 1, 2])); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [-2, -1, 0, 1, 2]}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b']); + }); + + it('can shift values of a List', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); + var cursor = Cursor.from(data, ['a', 'b'], onChange); + + expect(cursor.shift()).toValueEqual(Immutable.List([1, 2])); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [1, 2]}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b']); + }); + + + it('returns wrapped values for sequence API', () => { + var data = Immutable.fromJS({a: {v: 1}, b: {v: 2}, c: {v: 3}}); + var onChange = jest.genMockFunction(); + var cursor = Cursor.from(data, onChange); + + var found = cursor.find(map => map.get('v') === 2); + expect(typeof found.deref).toBe('function'); // is a cursor! + found = found.set('v', 20); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a: {v: 1}, b: {v: 20}, c: {v: 3}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['b', 'v']); + }); + + it('returns wrapped values for iteration API', () => { + var jsData = [{val: 0}, {val: 1}, {val: 2}]; + var data = Immutable.fromJS(jsData); + var cursor = Cursor.from(data); + cursor.forEach(function (c, i) { + expect(typeof c.deref).toBe('function'); // is a cursor! + expect(c.get('val')).toBe(i); + }); + }); + + it('can map over values to get subcursors', () => { + var data = Immutable.fromJS({a: {v: 1}, b: {v: 2}, c: {v: 3}}); + var cursor = Cursor.from(data); + + var mapped = cursor.map(val => { + expect(typeof val.deref).toBe('function'); // mapped values are cursors. + return val; + }).toMap(); + // Mapped is not a cursor, but it is a sequence of cursors. + expect(typeof (mapped).deref).not.toBe('function'); + expect(typeof (mapped.get('a')).deref).toBe('function'); + + // Same for indexed cursors + var data2 = Immutable.fromJS({x: [{v: 1}, {v: 2}, {v: 3}]}); + var cursor2 = Cursor.from(data2); + + var mapped2 = cursor2.get('x').map(val => { + expect(typeof val.deref).toBe('function'); // mapped values are cursors. + return val; + }).toList(); + // Mapped is not a cursor, but it is a sequence of cursors. + expect(typeof mapped2.deref).not.toBe('function'); + expect(typeof mapped2.get(0).deref).toBe('function'); + }); + + it('can have mutations apply with a single callback', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({'a': 1}); + + var c1 = Cursor.from(data, onChange); + var c2 = c1.withMutations(m => m.set('b', 2).set('c', 3).set('d', 4)); + + expect(c1.deref().toObject()).toEqual({'a': 1}); + expect(c2.deref().toObject()).toEqual({'a': 1, 'b': 2, 'c': 3, 'd': 4}); + expect(onChange.mock.calls.length).toBe(1); + }); + + it('can use withMutations on an unfulfilled cursor', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({}); + + var c1 = Cursor.from(data, ['a', 'b', 'c'], onChange); + var c2 = c1.withMutations(m => m.set('x', 1).set('y', 2).set('z', 3)); + + expect(c1.deref()).toEqual(undefined); + expect(c2.deref()).toValueEqual(Immutable.fromJS( + { x: 1, y: 2, z: 3 } + )); + expect(onChange.mock.calls.length).toBe(1); + }); + + it('maintains indexed sequences', () => { + var data = Immutable.fromJS([]); + var c = Cursor.from(data); + expect(c.toJS()).toEqual([]); + }); + + it('properly acts as an iterable', () => { + var data = Immutable.fromJS({key: {val: 1}}); + var c = Cursor.from(data).values(); + var c1 = c.next().value.get('val'); + expect(c1).toBe(1); + }); + + it('can update deeply', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a:{b:{c:1}}}); + var c = Cursor.from(data, ['a'], onChange); + var c1 = c.updateIn(['b', 'c'], x => x * 10); + expect(c1.getIn(['b', 'c'])).toBe(10); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b', 'c']); + }); + + it('can set deeply', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a:{b:{c:1}}}); + var c = Cursor.from(data, ['a'], onChange); + var c1 = c.setIn(['b', 'c'], 10); + expect(c1.getIn(['b', 'c'])).toBe(10); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a', 'b', 'c']); + }); + + it('can get Record value as a property', () => { + var User = Immutable.Record({ name: 'John' }); + var users = Immutable.List.of(new User()); + var data = Immutable.Map({'users': users}); + var cursor = Cursor.from(data, ['users']); + expect(cursor.first().name).toBe('John'); + }); + + it('can set value of a cursor directly', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a:1}); + var c = Cursor.from(data, ['a'], onChange); + var c1 = c.set(2); + expect(c1.deref()).toBe(2); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a:2})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a']); + }); + + it('can set value of a cursor to undefined directly', () => { + var onChange = jest.genMockFunction(); + var data = Immutable.fromJS({a:1}); + var c = Cursor.from(data, ['a'], onChange); + var c1 = c.set(undefined); + expect(c1.deref()).toBe(undefined); + + var call = onChange.mock.calls[0]; + expect(call[0]).toValueEqual(Immutable.fromJS({a:undefined})); + expect(call[1]).toBe(data); + expect(call[2]).toEqual(['a']); + }); + +}); diff --git a/packages/client/node_modules/immutable/contrib/cursor/index.d.ts b/packages/client/node_modules/immutable/contrib/cursor/index.d.ts new file mode 100644 index 0000000..1d38db4 --- /dev/null +++ b/packages/client/node_modules/immutable/contrib/cursor/index.d.ts @@ -0,0 +1,290 @@ +/** + * 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. + */ + +/** + * Cursors + * ------- + * + * Cursors allow you to hold a reference to a path in a nested immutable data + * structure, allowing you to pass smaller sections of a larger nested + * collection to portions of your application while maintaining a central point + * aware of changes to the entire data structure. + * + * This is particularly useful when used in conjuction with component-based UI + * libraries like [React](http://facebook.github.io/react/) or to simulate + * "state" throughout an application while maintaining a single flow of logic. + * + * Cursors provide a simple API for getting the value at that path + * (the equivalent of `this.getIn(keyPath)`), updating the value at that path + * (the equivalent of `this.updateIn(keyPath)`), and getting a sub-cursor + * starting from that path. + * + * When updated, a new root collection is created and provided to the `onChange` + * function provided to the first call to `Cursor(map, onChange)`. + * + * When this cursor's (or any of its sub-cursors') `update` method is called, + * the resulting new data structure will be provided to the `onChange` + * function. Use this callback to keep track of the most current value or + * update the rest of your application. + */ + +/// + +declare module __Cursor { + + export function from( + collection: Immutable.Collection, + onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any + ): Cursor; + export function from( + collection: Immutable.Collection, + keyPath: Array, + onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any + ): Cursor; + export function from( + collection: Immutable.Collection, + key: any, + onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any + ): Cursor; + + + export interface Cursor extends Immutable.Seq { + + /** + * Returns a sub-cursor following the key-path starting from this cursor. + */ + cursor(subKeyPath: Array): Cursor; + cursor(subKey: any): Cursor; + + /** + * Returns the value at the cursor, if the cursor path does not yet exist, + * returns `notSetValue`. + */ + deref(notSetValue?: any): any; + + /** + * Returns the value at the `key` in the cursor, or `notSetValue` if it + * does not exist. + * + * If the key would return a collection, a new Cursor is returned. + */ + get(key: any, notSetValue?: any): any; + + /** + * Returns the value at the `keyPath` in the cursor, or `notSetValue` if it + * does not exist. + * + * If the keyPath would return a collection, a new Cursor is returned. + */ + getIn(keyPath: Array, notSetValue?: any): any; + getIn(keyPath: Immutable.Iterable, notSetValue?: any): any; + + /** + * Sets `value` at `key` in the cursor, returning a new cursor to the same + * point in the new data. + * + * If only one parameter is provided, it is set directly as the cursor's value. + */ + set(key: any, value: any): Cursor; + set(value: any): Cursor; + + /** + * Deletes `key` from the cursor, returning a new cursor to the same + * point in the new data. + * + * Note: `delete` cannot be safely used in IE8 + * @alias remove + */ + delete(key: any): Cursor; + remove(key: any): Cursor; + + /** + * Clears the value at this cursor, returning a new cursor to the same + * point in the new data. + */ + clear(): Cursor; + + /** + * Updates the value in the data this cursor points to, triggering the + * callback for the root cursor and returning a new cursor pointing to the + * new data. + */ + update(updater: (value: any) => any): Cursor; + update(key: any, updater: (value: any) => any): Cursor; + update(key: any, notSetValue: any, updater: (value: any) => any): Cursor; + + /** + * @see `Map#merge` + */ + merge(...iterables: Immutable.Iterable[]): Cursor; + merge(...iterables: {[key: string]: any}[]): Cursor; + + /** + * @see `Map#mergeWith` + */ + mergeWith( + merger: (previous?: any, next?: any) => any, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeWith( + merger: (previous?: any, next?: any) => any, + ...iterables: {[key: string]: any}[] + ): Cursor; + + /** + * @see `Map#mergeDeep` + */ + mergeDeep(...iterables: Immutable.Iterable[]): Cursor; + mergeDeep(...iterables: {[key: string]: any}[]): Cursor; + + /** + * @see `Map#mergeDeepWith` + */ + mergeDeepWith( + merger: (previous?: any, next?: any) => any, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeDeepWith( + merger: (previous?: any, next?: any) => any, + ...iterables: {[key: string]: any}[] + ): Cursor; + + // Deep persistent changes + + /** + * Returns a new Cursor having set `value` at this `keyPath`. If any keys in + * `keyPath` do not exist, a new immutable Map will be created at that key. + */ + setIn(keyPath: Array, value: any): Cursor; + setIn(keyPath: Immutable.Iterable, value: any): Cursor; + + /** + * Returns a new Cursor with provided `values` appended + */ + push(...values: Array): Cursor; + + /** + * Returns a new Cursor with a size ones less than this Cursor, + * excluding the last index in this Cursor. + */ + pop(): Cursor; + + /** + * Returns a new Cursor with the provided `values` prepended, + * shifting other values ahead to higher indices. + */ + unshift(...values: Array): Cursor; + + /** + * Returns a new Cursor with a size ones less than this Cursor, excluding + * the first index in this Cursor, shifting all other values to a lower index. + */ + shift(): Cursor; + + /** + * Returns a new Cursor having removed the value at this `keyPath`. + * + * @alias removeIn + */ + deleteIn(keyPath: Array): Cursor; + deleteIn(keyPath: Immutable.Iterable): Cursor; + removeIn(keyPath: Array): Cursor; + removeIn(keyPath: Immutable.Iterable): Cursor; + + /** + * Returns a new Cursor having applied the `updater` to the value found at + * the keyPath. + * + * If any keys in `keyPath` do not exist, new Immutable `Map`s will + * be created at those keys. If the `keyPath` does not already contain a + * value, the `updater` function will be called with `notSetValue`, if + * provided, otherwise `undefined`. + * + * If the `updater` function returns the same value it was called with, then + * no change will occur. This is still true if `notSetValue` is provided. + */ + updateIn( + keyPath: Array, + updater: (value: any) => any + ): Cursor; + updateIn( + keyPath: Array, + notSetValue: any, + updater: (value: any) => any + ): Cursor; + updateIn( + keyPath: Immutable.Iterable, + updater: (value: any) => any + ): Cursor; + updateIn( + keyPath: Immutable.Iterable, + notSetValue: any, + updater: (value: any) => any + ): Cursor; + + /** + * A combination of `updateIn` and `merge`, returning a new Cursor, but + * performing the merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); + * x.mergeIn(['a', 'b', 'c'], y); + * + */ + mergeIn( + keyPath: Immutable.Iterable, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeIn( + keyPath: Array, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeIn( + keyPath: Array, + ...iterables: {[key: string]: any}[] + ): Cursor; + + /** + * A combination of `updateIn` and `mergeDeep`, returning a new Cursor, but + * performing the deep merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); + * x.mergeDeepIn(['a', 'b', 'c'], y); + * + */ + mergeDeepIn( + keyPath: Immutable.Iterable, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeDeepIn( + keyPath: Array, + ...iterables: Immutable.Iterable[] + ): Cursor; + mergeDeepIn( + keyPath: Array, + ...iterables: {[key: string]: any}[] + ): Cursor; + + // Transient changes + + /** + * Every time you call one of the above functions, a new immutable value is + * created and the callback is triggered. If you need to apply a series of + * mutations to a Cursor without triggering the callback repeatedly, + * `withMutations()` creates a temporary mutable copy of the value which + * can apply mutations in a highly performant manner. Afterwards the + * callback is triggered with the final value. + */ + withMutations(mutator: (mutable: any) => any): Cursor; + } + +} + +declare module 'immutable/contrib/cursor' { + export = __Cursor +} \ No newline at end of file diff --git a/packages/client/node_modules/immutable/contrib/cursor/index.js b/packages/client/node_modules/immutable/contrib/cursor/index.js new file mode 100644 index 0000000..7420f69 --- /dev/null +++ b/packages/client/node_modules/immutable/contrib/cursor/index.js @@ -0,0 +1,341 @@ +/** + * 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. + */ + +/** + * Cursor is expected to be required in a node or other CommonJS context: + * + * var Cursor = require('immutable/contrib/cursor'); + * + * If you wish to use it in the browser, please check out Browserify or WebPack! + */ + +var Immutable = require('../../'); +var Iterable = Immutable.Iterable; +var Iterator = Iterable.Iterator; +var Seq = Immutable.Seq; +var Map = Immutable.Map; +var Record = Immutable.Record; + + +function cursorFrom(rootData, keyPath, onChange) { + if (arguments.length === 1) { + keyPath = []; + } else if (typeof keyPath === 'function') { + onChange = keyPath; + keyPath = []; + } else { + keyPath = valToKeyPath(keyPath); + } + return makeCursor(rootData, keyPath, onChange); +} + + +var KeyedCursorPrototype = Object.create(Seq.Keyed.prototype); +var IndexedCursorPrototype = Object.create(Seq.Indexed.prototype); + +function KeyedCursor(rootData, keyPath, onChange, size) { + this.size = size; + this._rootData = rootData; + this._keyPath = keyPath; + this._onChange = onChange; +} +KeyedCursorPrototype.constructor = KeyedCursor; + +function IndexedCursor(rootData, keyPath, onChange, size) { + this.size = size; + this._rootData = rootData; + this._keyPath = keyPath; + this._onChange = onChange; +} +IndexedCursorPrototype.constructor = IndexedCursor; + +KeyedCursorPrototype.toString = function() { + return this.__toString('Cursor {', '}'); +} +IndexedCursorPrototype.toString = function() { + return this.__toString('Cursor [', ']'); +} + +KeyedCursorPrototype.deref = +KeyedCursorPrototype.valueOf = +IndexedCursorPrototype.deref = +IndexedCursorPrototype.valueOf = function(notSetValue) { + return this._rootData.getIn(this._keyPath, notSetValue); +} + +KeyedCursorPrototype.get = +IndexedCursorPrototype.get = function(key, notSetValue) { + return this.getIn([key], notSetValue); +} + +KeyedCursorPrototype.getIn = +IndexedCursorPrototype.getIn = function(keyPath, notSetValue) { + keyPath = listToKeyPath(keyPath); + if (keyPath.length === 0) { + return this; + } + var value = this._rootData.getIn(newKeyPath(this._keyPath, keyPath), NOT_SET); + return value === NOT_SET ? notSetValue : wrappedValue(this, keyPath, value); +} + +IndexedCursorPrototype.set = +KeyedCursorPrototype.set = function(key, value) { + if(arguments.length === 1) { + return updateCursor(this, function() { return key; }, []); + } else { + return updateCursor(this, function (m) { return m.set(key, value); }, [key]); + } +} + +IndexedCursorPrototype.push = function(/* values */) { + var args = arguments; + return updateCursor(this, function (m) { + return m.push.apply(m, args); + }); +} + +IndexedCursorPrototype.pop = function() { + return updateCursor(this, function (m) { + return m.pop(); + }); +} + +IndexedCursorPrototype.unshift = function(/* values */) { + var args = arguments; + return updateCursor(this, function (m) { + return m.unshift.apply(m, args); + }); +} + +IndexedCursorPrototype.shift = function() { + return updateCursor(this, function (m) { + return m.shift(); + }); +} + +IndexedCursorPrototype.setIn = +KeyedCursorPrototype.setIn = Map.prototype.setIn; + +KeyedCursorPrototype.remove = +KeyedCursorPrototype['delete'] = +IndexedCursorPrototype.remove = +IndexedCursorPrototype['delete'] = function(key) { + return updateCursor(this, function (m) { return m.remove(key); }, [key]); +} + +IndexedCursorPrototype.removeIn = +IndexedCursorPrototype.deleteIn = +KeyedCursorPrototype.removeIn = +KeyedCursorPrototype.deleteIn = Map.prototype.deleteIn; + +KeyedCursorPrototype.clear = +IndexedCursorPrototype.clear = function() { + return updateCursor(this, function (m) { return m.clear(); }); +} + +IndexedCursorPrototype.update = +KeyedCursorPrototype.update = function(keyOrFn, notSetValue, updater) { + return arguments.length === 1 ? + updateCursor(this, keyOrFn) : + this.updateIn([keyOrFn], notSetValue, updater); +} + +IndexedCursorPrototype.updateIn = +KeyedCursorPrototype.updateIn = function(keyPath, notSetValue, updater) { + return updateCursor(this, function (m) { + return m.updateIn(keyPath, notSetValue, updater); + }, keyPath); +} + +IndexedCursorPrototype.merge = +KeyedCursorPrototype.merge = function(/*...iters*/) { + var args = arguments; + return updateCursor(this, function (m) { + return m.merge.apply(m, args); + }); +} + +IndexedCursorPrototype.mergeWith = +KeyedCursorPrototype.mergeWith = function(merger/*, ...iters*/) { + var args = arguments; + return updateCursor(this, function (m) { + return m.mergeWith.apply(m, args); + }); +} + +IndexedCursorPrototype.mergeIn = +KeyedCursorPrototype.mergeIn = Map.prototype.mergeIn; + +IndexedCursorPrototype.mergeDeep = +KeyedCursorPrototype.mergeDeep = function(/*...iters*/) { + var args = arguments; + return updateCursor(this, function (m) { + return m.mergeDeep.apply(m, args); + }); +} + +IndexedCursorPrototype.mergeDeepWith = +KeyedCursorPrototype.mergeDeepWith = function(merger/*, ...iters*/) { + var args = arguments; + return updateCursor(this, function (m) { + return m.mergeDeepWith.apply(m, args); + }); +} + +IndexedCursorPrototype.mergeDeepIn = +KeyedCursorPrototype.mergeDeepIn = Map.prototype.mergeDeepIn; + +KeyedCursorPrototype.withMutations = +IndexedCursorPrototype.withMutations = function(fn) { + return updateCursor(this, function (m) { + return (m || Map()).withMutations(fn); + }); +} + +KeyedCursorPrototype.cursor = +IndexedCursorPrototype.cursor = function(subKeyPath) { + subKeyPath = valToKeyPath(subKeyPath); + return subKeyPath.length === 0 ? this : subCursor(this, subKeyPath); +} + +/** + * All iterables need to implement __iterate + */ +KeyedCursorPrototype.__iterate = +IndexedCursorPrototype.__iterate = function(fn, reverse) { + var cursor = this; + var deref = cursor.deref(); + return deref && deref.__iterate ? deref.__iterate( + function (v, k) { return fn(wrappedValue(cursor, [k], v), k, cursor); }, + reverse + ) : 0; +} + +/** + * All iterables need to implement __iterator + */ +KeyedCursorPrototype.__iterator = +IndexedCursorPrototype.__iterator = function(type, reverse) { + var deref = this.deref(); + var cursor = this; + var iterator = deref && deref.__iterator && + deref.__iterator(Iterator.ENTRIES, reverse); + return new Iterator(function () { + if (!iterator) { + return { value: undefined, done: true }; + } + var step = iterator.next(); + if (step.done) { + return step; + } + var entry = step.value; + var k = entry[0]; + var v = wrappedValue(cursor, [k], entry[1]); + return { + value: type === Iterator.KEYS ? k : type === Iterator.VALUES ? v : [k, v], + done: false + }; + }); +} + +KeyedCursor.prototype = KeyedCursorPrototype; +IndexedCursor.prototype = IndexedCursorPrototype; + + +var NOT_SET = {}; // Sentinel value + +function makeCursor(rootData, keyPath, onChange, value) { + if (arguments.length < 4) { + value = rootData.getIn(keyPath); + } + var size = value && value.size; + var CursorClass = Iterable.isIndexed(value) ? IndexedCursor : KeyedCursor; + var cursor = new CursorClass(rootData, keyPath, onChange, size); + + if (value instanceof Record) { + defineRecordProperties(cursor, value); + } + + return cursor; +} + +function defineRecordProperties(cursor, value) { + try { + value._keys.forEach(setProp.bind(undefined, cursor)); + } catch (error) { + // Object.defineProperty failed. Probably IE8. + } +} + +function setProp(prototype, name) { + Object.defineProperty(prototype, name, { + get: function() { + return this.get(name); + }, + set: function(value) { + if (!this.__ownerID) { + throw new Error('Cannot set on an immutable record.'); + } + } + }); +} + +function wrappedValue(cursor, keyPath, value) { + return Iterable.isIterable(value) ? subCursor(cursor, keyPath, value) : value; +} + +function subCursor(cursor, keyPath, value) { + if (arguments.length < 3) { + return makeCursor( // call without value + cursor._rootData, + newKeyPath(cursor._keyPath, keyPath), + cursor._onChange + ); + } + return makeCursor( + cursor._rootData, + newKeyPath(cursor._keyPath, keyPath), + cursor._onChange, + value + ); +} + +function updateCursor(cursor, changeFn, changeKeyPath) { + var deepChange = arguments.length > 2; + var newRootData = cursor._rootData.updateIn( + cursor._keyPath, + deepChange ? Map() : undefined, + changeFn + ); + var keyPath = cursor._keyPath || []; + var result = cursor._onChange && cursor._onChange.call( + undefined, + newRootData, + cursor._rootData, + deepChange ? newKeyPath(keyPath, changeKeyPath) : keyPath + ); + if (result !== undefined) { + newRootData = result; + } + return makeCursor(newRootData, cursor._keyPath, cursor._onChange); +} + +function newKeyPath(head, tail) { + return head.concat(listToKeyPath(tail)); +} + +function listToKeyPath(list) { + return Array.isArray(list) ? list : Immutable.Iterable(list).toArray(); +} + +function valToKeyPath(val) { + return Array.isArray(val) ? val : + Iterable.isIterable(val) ? val.toArray() : + [val]; +} + +exports.from = cursorFrom; diff --git a/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts b/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts new file mode 100644 index 0000000..dc38000 --- /dev/null +++ b/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts @@ -0,0 +1,2533 @@ +/** + * 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. + */ + +/** + * Immutable data encourages pure functions (data-in, data-out) and lends itself + * to much simpler application development and enabling techniques from + * functional programming such as lazy evaluation. + * + * While designed to bring these powerful functional concepts to JavaScript, it + * presents an Object-Oriented API familiar to Javascript engineers and closely + * mirroring that of Array, Map, and Set. It is easy and efficient to convert to + * and from plain Javascript types. + + * Note: all examples are presented in [ES6][]. To run in all browsers, they + * need to be translated to ES3. For example: + * + * // ES6 + * foo.map(x => x * x); + * // ES3 + * foo.map(function (x) { return x * x; }); + * + * [ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla + */ + + + + /** + * Deeply converts plain JS objects and arrays to Immutable Maps and Lists. + * + * If a `reviver` is optionally provided, it will be called with every + * collection as a Seq (beginning with the most nested collections + * and proceeding to the top-level collection itself), along with the key + * refering to each collection and the parent JS object provided as `this`. + * For the top level, object, the key will be `""`. This `reviver` is expected + * to return a new Immutable Iterable, allowing for custom conversions from + * deep JS objects. + * + * This example converts JSON to List and OrderedMap: + * + * Immutable.fromJS({a: {b: [10, 20, 30]}, c: 40}, function (key, value) { + * var isIndexed = Immutable.Iterable.isIndexed(value); + * return isIndexed ? value.toList() : value.toOrderedMap(); + * }); + * + * // true, "b", {b: [10, 20, 30]} + * // false, "a", {a: {b: [10, 20, 30]}, c: 40} + * // false, "", {"": {a: {b: [10, 20, 30]}, c: 40}} + * + * If `reviver` is not provided, the default behavior will convert Arrays into + * Lists and Objects into Maps. + * + * `reviver` acts similarly to the [same parameter in `JSON.parse`][1]. + * + * `Immutable.fromJS` is conservative in its conversion. It will only convert + * arrays which pass `Array.isArray` to Lists, and only raw objects (no custom + * prototype) to Map. + * + * Keep in mind, when using JS objects to construct Immutable Maps, that + * JavaScript Object properties are always strings, even if written in a + * quote-less shorthand, while Immutable Maps accept keys of any type. + * + * ```js + * var obj = { 1: "one" }; + * Object.keys(obj); // [ "1" ] + * obj["1"]; // "one" + * obj[1]; // "one" + * + * var map = Map(obj); + * map.get("1"); // "one" + * map.get(1); // undefined + * ``` + * + * Property access for JavaScript Objects first converts the key to a string, + * but since Immutable Map keys can be of any type the argument to `get()` is + * not altered. + * + * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter + * "Using the reviver parameter" + */ + export function fromJS( + json: any, + reviver?: (k: any, v: Iterable) => any + ): any; + + + /** + * Value equality check with semantics similar to `Object.is`, but treats + * Immutable `Iterable`s as values, equal if the second `Iterable` includes + * equivalent values. + * + * It's used throughout Immutable when checking for equality, including `Map` + * key equality and `Set` membership. + * + * var map1 = Immutable.Map({a:1, b:1, c:1}); + * var map2 = Immutable.Map({a:1, b:1, c:1}); + * assert(map1 !== map2); + * assert(Object.is(map1, map2) === false); + * assert(Immutable.is(map1, map2) === true); + * + * Note: Unlike `Object.is`, `Immutable.is` assumes `0` and `-0` are the same + * value, matching the behavior of ES6 Map key equality. + */ + export function is(first: any, second: any): boolean; + + + /** + * Lists are ordered indexed dense collections, much like a JavaScript + * Array. + * + * Lists are immutable and fully persistent with O(log32 N) gets and sets, + * and O(1) push and pop. + * + * Lists implement Deque, with efficient addition and removal from both the + * end (`push`, `pop`) and beginning (`unshift`, `shift`). + * + * Unlike a JavaScript Array, there is no distinction between an + * "unset" index and an index set to `undefined`. `List#forEach` visits all + * indices from 0 to size, regardless of whether they were explicitly defined. + */ + export module List { + + /** + * True if the provided value is a List + */ + function isList(maybeList: any): boolean; + + /** + * Creates a new List containing `values`. + */ + function of(...values: T[]): List; + } + + /** + * Create a new immutable List containing the values of the provided + * iterable-like. + */ + export function List(): List; + export function List(iter: Iterable.Indexed): List; + export function List(iter: Iterable.Set): List; + export function List(iter: Iterable.Keyed): List; + export function List(array: Array): List; + export function List(iterator: Iterator): List; + export function List(iterable: /*Iterable*/Object): List; + + + export interface List extends Collection.Indexed { + + // Persistent changes + + /** + * Returns a new List which includes `value` at `index`. If `index` already + * exists in this List, it will be replaced. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.set(-1, "value")` sets the last item in the List. + * + * If `index` larger than `size`, the returned List's `size` will be large + * enough to include the `index`. + */ + set(index: number, value: T): List; + + /** + * Returns a new List which excludes this `index` and with a size 1 less + * than this List. Values at indices above `index` are shifted down by 1 to + * fill the position. + * + * This is synonymous with `list.splice(index, 1)`. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.delete(-1)` deletes the last item in the List. + * + * Note: `delete` cannot be safely used in IE8 + * @alias remove + */ + delete(index: number): List; + remove(index: number): List; + + /** + * Returns a new List with `value` at `index` with a size 1 more than this + * List. Values at indices above `index` are shifted over by 1. + * + * This is synonymous with `list.splice(index, 0, value) + */ + insert(index: number, value: T): List; + + /** + * Returns a new List with 0 size and no values. + */ + clear(): List; + + /** + * Returns a new List with the provided `values` appended, starting at this + * List's `size`. + */ + push(...values: T[]): List; + + /** + * Returns a new List with a size ones less than this List, excluding + * the last index in this List. + * + * Note: this differs from `Array#pop` because it returns a new + * List rather than the removed value. Use `last()` to get the last value + * in this List. + */ + pop(): List; + + /** + * Returns a new List with the provided `values` prepended, shifting other + * values ahead to higher indices. + */ + unshift(...values: T[]): List; + + /** + * Returns a new List with a size ones less than this List, excluding + * the first index in this List, shifting all other values to a lower index. + * + * Note: this differs from `Array#shift` because it returns a new + * List rather than the removed value. Use `first()` to get the first + * value in this List. + */ + shift(): List; + + /** + * Returns a new List with an updated value at `index` with the return + * value of calling `updater` with the existing value, or `notSetValue` if + * `index` was not set. If called with a single argument, `updater` is + * called with the List itself. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.update(-1)` updates the last item in the List. + * + * @see `Map#update` + */ + update(updater: (value: List) => List): List; + update(index: number, updater: (value: T) => T): List; + update(index: number, notSetValue: T, updater: (value: T) => T): List; + + /** + * @see `Map#merge` + */ + merge(...iterables: Iterable.Indexed[]): List; + merge(...iterables: Array[]): List; + + /** + * @see `Map#mergeWith` + */ + mergeWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Iterable.Indexed[] + ): List; + mergeWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Array[] + ): List; + + /** + * @see `Map#mergeDeep` + */ + mergeDeep(...iterables: Iterable.Indexed[]): List; + mergeDeep(...iterables: Array[]): List; + + /** + * @see `Map#mergeDeepWith` + */ + mergeDeepWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Array[] + ): List; + + /** + * Returns a new List with size `size`. If `size` is less than this + * List's size, the new List will exclude values at the higher indices. + * If `size` is greater than this List's size, the new List will have + * undefined values for the newly available indices. + * + * When building a new List and the final size is known up front, `setSize` + * used in conjunction with `withMutations` may result in the more + * performant construction. + */ + setSize(size: number): List; + + + // Deep persistent changes + + /** + * Returns a new List having set `value` at this `keyPath`. If any keys in + * `keyPath` do not exist, a new immutable Map will be created at that key. + * + * Index numbers are used as keys to determine the path to follow in + * the List. + */ + setIn(keyPath: Array, value: any): List; + setIn(keyPath: Iterable, value: any): List; + + /** + * Returns a new List having removed the value at this `keyPath`. If any + * keys in `keyPath` do not exist, no change will occur. + * + * @alias removeIn + */ + deleteIn(keyPath: Array): List; + deleteIn(keyPath: Iterable): List; + removeIn(keyPath: Array): List; + removeIn(keyPath: Iterable): List; + + /** + * @see `Map#updateIn` + */ + updateIn( + keyPath: Array, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Array, + notSetValue: any, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Iterable, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Iterable, + notSetValue: any, + updater: (value: any) => any + ): List; + + /** + * @see `Map#mergeIn` + */ + mergeIn( + keyPath: Iterable, + ...iterables: Iterable.Indexed[] + ): List; + mergeIn( + keyPath: Array, + ...iterables: Iterable.Indexed[] + ): List; + mergeIn( + keyPath: Array, + ...iterables: Array[] + ): List; + + /** + * @see `Map#mergeDeepIn` + */ + mergeDeepIn( + keyPath: Iterable, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepIn( + keyPath: Array, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepIn( + keyPath: Array, + ...iterables: Array[] + ): List; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set`, `push`, `pop`, `shift`, `unshift` and + * `merge` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: List) => any): List; + + /** + * @see `Map#asMutable` + */ + asMutable(): List; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): List; + } + + + /** + * Immutable Map is an unordered Iterable.Keyed of (key, value) pairs with + * `O(log32 N)` gets and `O(log32 N)` persistent sets. + * + * Iteration order of a Map is undefined, however is stable. Multiple + * iterations of the same Map will iterate in the same order. + * + * Map's keys can be of any type, and use `Immutable.is` to determine key + * equality. This allows the use of any value (including NaN) as a key. + * + * Because `Immutable.is` returns equality based on value semantics, and + * Immutable collections are treated as values, any Immutable collection may + * be used as a key. + * + * Map().set(List.of(1), 'listofone').get(List.of(1)); + * // 'listofone' + * + * Any JavaScript object may be used as a key, however strict identity is used + * to evaluate key equality. Two similar looking objects will represent two + * different keys. + * + * Implemented by a hash-array mapped trie. + */ + export module Map { + + /** + * True if the provided value is a Map + */ + function isMap(maybeMap: any): boolean; + + /** + * Creates a new Map from alternating keys and values + */ + function of(...keyValues: any[]): Map; + } + + /** + * Creates a new Immutable Map. + * + * Created with the same key value pairs as the provided Iterable.Keyed or + * JavaScript Object or expects an Iterable of [K, V] tuple entries. + * + * var newMap = Map({key: "value"}); + * var newMap = Map([["key", "value"]]); + * + * Keep in mind, when using JS objects to construct Immutable Maps, that + * JavaScript Object properties are always strings, even if written in a + * quote-less shorthand, while Immutable Maps accept keys of any type. + * + * ```js + * var obj = { 1: "one" }; + * Object.keys(obj); // [ "1" ] + * obj["1"]; // "one" + * obj[1]; // "one" + * + * var map = Map(obj); + * map.get("1"); // "one" + * map.get(1); // undefined + * ``` + * + * Property access for JavaScript Objects first converts the key to a string, + * but since Immutable Map keys can be of any type the argument to `get()` is + * not altered. + */ + export function Map(): Map; + export function Map(iter: Iterable.Keyed): Map; + export function Map(iter: Iterable>): Map; + export function Map(array: Array>): Map; + export function Map(obj: {[key: string]: V}): Map; + export function Map(iterator: Iterator>): Map; + export function Map(iterable: /*Iterable<[K,V]>*/Object): Map; + + export interface Map extends Collection.Keyed { + + // Persistent changes + + /** + * Returns a new Map also containing the new key, value pair. If an equivalent + * key already exists in this Map, it will be replaced. + */ + set(key: K, value: V): Map; + + /** + * Returns a new Map which excludes this `key`. + * + * Note: `delete` cannot be safely used in IE8, but is provided to mirror + * the ES6 collection API. + * @alias remove + */ + delete(key: K): Map; + remove(key: K): Map; + + /** + * Returns a new Map containing no keys or values. + */ + clear(): Map; + + /** + * Returns a new Map having updated the value at this `key` with the return + * value of calling `updater` with the existing value, or `notSetValue` if + * the key was not set. If called with only a single argument, `updater` is + * called with the Map itself. + * + * Equivalent to: `map.set(key, updater(map.get(key, notSetValue)))`. + */ + update(updater: (value: Map) => Map): Map; + update(key: K, updater: (value: V) => V): Map; + update(key: K, notSetValue: V, updater: (value: V) => V): Map; + + /** + * Returns a new Map resulting from merging the provided Iterables + * (or JS objects) into this Map. In other words, this takes each entry of + * each iterable and sets it on this Map. + * + * If any of the values provided to `merge` are not Iterable (would return + * false for `Immutable.Iterable.isIterable`) then they are deeply converted + * via `Immutable.fromJS` before being merged. However, if the value is an + * Iterable but includes non-iterable JS objects or arrays, those nested + * values will be preserved. + * + * var x = Immutable.Map({a: 10, b: 20, c: 30}); + * var y = Immutable.Map({b: 40, a: 50, d: 60}); + * x.merge(y) // { a: 50, b: 40, c: 30, d: 60 } + * y.merge(x) // { b: 20, a: 10, d: 60, c: 30 } + * + */ + merge(...iterables: Iterable[]): Map; + merge(...iterables: {[key: string]: V}[]): Map; + + /** + * Like `merge()`, `mergeWith()` returns a new Map resulting from merging + * the provided Iterables (or JS objects) into this Map, but uses the + * `merger` function for dealing with conflicts. + * + * var x = Immutable.Map({a: 10, b: 20, c: 30}); + * var y = Immutable.Map({b: 40, a: 50, d: 60}); + * x.mergeWith((prev, next) => prev / next, y) // { a: 0.2, b: 0.5, c: 30, d: 60 } + * y.mergeWith((prev, next) => prev / next, x) // { b: 2, a: 5, d: 60, c: 30 } + * + */ + mergeWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: Iterable[] + ): Map; + mergeWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: {[key: string]: V}[] + ): Map; + + /** + * Like `merge()`, but when two Iterables conflict, it merges them as well, + * recursing deeply through the nested data. + * + * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); + * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); + * x.mergeDeep(y) // {a: { x: 2, y: 10 }, b: { x: 20, y: 5 }, c: { z: 3 } } + * + */ + mergeDeep(...iterables: Iterable[]): Map; + mergeDeep(...iterables: {[key: string]: V}[]): Map; + + /** + * Like `mergeDeep()`, but when two non-Iterables conflict, it uses the + * `merger` function to determine the resulting value. + * + * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); + * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); + * x.mergeDeepWith((prev, next) => prev / next, y) + * // {a: { x: 5, y: 10 }, b: { x: 20, y: 10 }, c: { z: 3 } } + * + */ + mergeDeepWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: Iterable[] + ): Map; + mergeDeepWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: {[key: string]: V}[] + ): Map; + + + // Deep persistent changes + + /** + * Returns a new Map having set `value` at this `keyPath`. If any keys in + * `keyPath` do not exist, a new immutable Map will be created at that key. + */ + setIn(keyPath: Array, value: any): Map; + setIn(KeyPath: Iterable, value: any): Map; + + /** + * Returns a new Map having removed the value at this `keyPath`. If any keys + * in `keyPath` do not exist, no change will occur. + * + * @alias removeIn + */ + deleteIn(keyPath: Array): Map; + deleteIn(keyPath: Iterable): Map; + removeIn(keyPath: Array): Map; + removeIn(keyPath: Iterable): Map; + + /** + * Returns a new Map having applied the `updater` to the entry found at the + * keyPath. + * + * If any keys in `keyPath` do not exist, new Immutable `Map`s will + * be created at those keys. If the `keyPath` does not already contain a + * value, the `updater` function will be called with `notSetValue`, if + * provided, otherwise `undefined`. + * + * var data = Immutable.fromJS({ a: { b: { c: 10 } } }); + * data = data.updateIn(['a', 'b', 'c'], val => val * 2); + * // { a: { b: { c: 20 } } } + * + * If the `updater` function returns the same value it was called with, then + * no change will occur. This is still true if `notSetValue` is provided. + * + * var data1 = Immutable.fromJS({ a: { b: { c: 10 } } }); + * data2 = data1.updateIn(['x', 'y', 'z'], 100, val => val); + * assert(data2 === data1); + * + */ + updateIn( + keyPath: Array, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Array, + notSetValue: any, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Iterable, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Iterable, + notSetValue: any, + updater: (value: any) => any + ): Map; + + /** + * A combination of `updateIn` and `merge`, returning a new Map, but + * performing the merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); + * x.mergeIn(['a', 'b', 'c'], y); + * + */ + mergeIn( + keyPath: Iterable, + ...iterables: Iterable[] + ): Map; + mergeIn( + keyPath: Array, + ...iterables: Iterable[] + ): Map; + mergeIn( + keyPath: Array, + ...iterables: {[key: string]: V}[] + ): Map; + + /** + * A combination of `updateIn` and `mergeDeep`, returning a new Map, but + * performing the deep merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); + * x.mergeDeepIn(['a', 'b', 'c'], y); + * + */ + mergeDeepIn( + keyPath: Iterable, + ...iterables: Iterable[] + ): Map; + mergeDeepIn( + keyPath: Array, + ...iterables: Iterable[] + ): Map; + mergeDeepIn( + keyPath: Array, + ...iterables: {[key: string]: V}[] + ): Map; + + + // Transient changes + + /** + * Every time you call one of the above functions, a new immutable Map is + * created. If a pure function calls a number of these to produce a final + * return value, then a penalty on performance and memory has been paid by + * creating all of the intermediate immutable Maps. + * + * If you need to apply a series of mutations to produce a new immutable + * Map, `withMutations()` creates a temporary mutable copy of the Map which + * can apply mutations in a highly performant manner. In fact, this is + * exactly how complex mutations like `merge` are done. + * + * As an example, this results in the creation of 2, not 4, new Maps: + * + * var map1 = Immutable.Map(); + * var map2 = map1.withMutations(map => { + * map.set('a', 1).set('b', 2).set('c', 3); + * }); + * assert(map1.size === 0); + * assert(map2.size === 3); + * + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set` and `merge` may be used mutatively. + * + */ + withMutations(mutator: (mutable: Map) => any): Map; + + /** + * Another way to avoid creation of intermediate Immutable maps is to create + * a mutable copy of this collection. Mutable copies *always* return `this`, + * and thus shouldn't be used for equality. Your function should never return + * a mutable copy of a collection, only use it internally to create a new + * collection. If possible, use `withMutations` as it provides an easier to + * use API. + * + * Note: if the collection is already mutable, `asMutable` returns itself. + * + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set` and `merge` may be used mutatively. + */ + asMutable(): Map; + + /** + * The yin to `asMutable`'s yang. Because it applies to mutable collections, + * this operation is *mutable* and returns itself. Once performed, the mutable + * copy has become immutable and can be safely returned from a function. + */ + asImmutable(): Map; + } + + + /** + * A type of Map that has the additional guarantee that the iteration order of + * entries will be the order in which they were set(). + * + * The iteration behavior of OrderedMap is the same as native ES6 Map and + * JavaScript Object. + * + * Note that `OrderedMap` are more expensive than non-ordered `Map` and may + * consume more memory. `OrderedMap#set` is amortized O(log32 N), but not + * stable. + */ + + export module OrderedMap { + + /** + * True if the provided value is an OrderedMap. + */ + function isOrderedMap(maybeOrderedMap: any): boolean; + } + + /** + * Creates a new Immutable OrderedMap. + * + * Created with the same key value pairs as the provided Iterable.Keyed or + * JavaScript Object or expects an Iterable of [K, V] tuple entries. + * + * The iteration order of key-value pairs provided to this constructor will + * be preserved in the OrderedMap. + * + * var newOrderedMap = OrderedMap({key: "value"}); + * var newOrderedMap = OrderedMap([["key", "value"]]); + * + */ + export function OrderedMap(): OrderedMap; + export function OrderedMap(iter: Iterable.Keyed): OrderedMap; + export function OrderedMap(iter: Iterable>): OrderedMap; + export function OrderedMap(array: Array>): OrderedMap; + export function OrderedMap(obj: {[key: string]: V}): OrderedMap; + export function OrderedMap(iterator: Iterator>): OrderedMap; + export function OrderedMap(iterable: /*Iterable<[K,V]>*/Object): OrderedMap; + + export interface OrderedMap extends Map {} + + + /** + * A Collection of unique values with `O(log32 N)` adds and has. + * + * When iterating a Set, the entries will be (value, value) pairs. Iteration + * order of a Set is undefined, however is stable. Multiple iterations of the + * same Set will iterate in the same order. + * + * Set values, like Map keys, may be of any type. Equality is determined using + * `Immutable.is`, enabling Sets to uniquely include other Immutable + * collections, custom value types, and NaN. + */ + export module Set { + + /** + * True if the provided value is a Set + */ + function isSet(maybeSet: any): boolean; + + /** + * Creates a new Set containing `values`. + */ + function of(...values: T[]): Set; + + /** + * `Set.fromKeys()` creates a new immutable Set containing the keys from + * this Iterable or JavaScript Object. + */ + function fromKeys(iter: Iterable): Set; + function fromKeys(obj: {[key: string]: any}): Set; + } + + /** + * Create a new immutable Set containing the values of the provided + * iterable-like. + */ + export function Set(): Set; + export function Set(iter: Iterable.Set): Set; + export function Set(iter: Iterable.Indexed): Set; + export function Set(iter: Iterable.Keyed): Set; + export function Set(array: Array): Set; + export function Set(iterator: Iterator): Set; + export function Set(iterable: /*Iterable*/Object): Set; + + export interface Set extends Collection.Set { + + // Persistent changes + + /** + * Returns a new Set which also includes this value. + */ + add(value: T): Set; + + /** + * Returns a new Set which excludes this value. + * + * Note: `delete` cannot be safely used in IE8 + * @alias remove + */ + delete(value: T): Set; + remove(value: T): Set; + + /** + * Returns a new Set containing no values. + */ + clear(): Set; + + /** + * Returns a Set including any value from `iterables` that does not already + * exist in this Set. + * @alias merge + */ + union(...iterables: Iterable[]): Set; + union(...iterables: Array[]): Set; + merge(...iterables: Iterable[]): Set; + merge(...iterables: Array[]): Set; + + + /** + * Returns a Set which has removed any values not also contained + * within `iterables`. + */ + intersect(...iterables: Iterable[]): Set; + intersect(...iterables: Array[]): Set; + + /** + * Returns a Set excluding any values contained within `iterables`. + */ + subtract(...iterables: Iterable[]): Set; + subtract(...iterables: Array[]): Set; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `add` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: Set) => any): Set; + + /** + * @see `Map#asMutable` + */ + asMutable(): Set; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): Set; + } + + + /** + * A type of Set that has the additional guarantee that the iteration order of + * values will be the order in which they were `add`ed. + * + * The iteration behavior of OrderedSet is the same as native ES6 Set. + * + * Note that `OrderedSet` are more expensive than non-ordered `Set` and may + * consume more memory. `OrderedSet#add` is amortized O(log32 N), but not + * stable. + */ + export module OrderedSet { + + /** + * True if the provided value is an OrderedSet. + */ + function isOrderedSet(maybeOrderedSet: any): boolean; + + /** + * Creates a new OrderedSet containing `values`. + */ + function of(...values: T[]): OrderedSet; + + /** + * `OrderedSet.fromKeys()` creates a new immutable OrderedSet containing + * the keys from this Iterable or JavaScript Object. + */ + function fromKeys(iter: Iterable): OrderedSet; + function fromKeys(obj: {[key: string]: any}): OrderedSet; + } + + /** + * Create a new immutable OrderedSet containing the values of the provided + * iterable-like. + */ + export function OrderedSet(): OrderedSet; + export function OrderedSet(iter: Iterable.Set): OrderedSet; + export function OrderedSet(iter: Iterable.Indexed): OrderedSet; + export function OrderedSet(iter: Iterable.Keyed): OrderedSet; + export function OrderedSet(array: Array): OrderedSet; + export function OrderedSet(iterator: Iterator): OrderedSet; + export function OrderedSet(iterable: /*Iterable*/Object): OrderedSet; + + export interface OrderedSet extends Set {} + + + /** + * Stacks are indexed collections which support very efficient O(1) addition + * and removal from the front using `unshift(v)` and `shift()`. + * + * For familiarity, Stack also provides `push(v)`, `pop()`, and `peek()`, but + * be aware that they also operate on the front of the list, unlike List or + * a JavaScript Array. + * + * Note: `reverse()` or any inherent reverse traversal (`reduceRight`, + * `lastIndexOf`, etc.) is not efficient with a Stack. + * + * Stack is implemented with a Single-Linked List. + */ + export module Stack { + + /** + * True if the provided value is a Stack + */ + function isStack(maybeStack: any): boolean; + + /** + * Creates a new Stack containing `values`. + */ + function of(...values: T[]): Stack; + } + + /** + * Create a new immutable Stack containing the values of the provided + * iterable-like. + * + * The iteration order of the provided iterable is preserved in the + * resulting `Stack`. + */ + export function Stack(): Stack; + export function Stack(iter: Iterable.Indexed): Stack; + export function Stack(iter: Iterable.Set): Stack; + export function Stack(iter: Iterable.Keyed): Stack; + export function Stack(array: Array): Stack; + export function Stack(iterator: Iterator): Stack; + export function Stack(iterable: /*Iterable*/Object): Stack; + + export interface Stack extends Collection.Indexed { + + // Reading values + + /** + * Alias for `Stack.first()`. + */ + peek(): T; + + + // Persistent changes + + /** + * Returns a new Stack with 0 size and no values. + */ + clear(): Stack; + + /** + * Returns a new Stack with the provided `values` prepended, shifting other + * values ahead to higher indices. + * + * This is very efficient for Stack. + */ + unshift(...values: T[]): Stack; + + /** + * Like `Stack#unshift`, but accepts a iterable rather than varargs. + */ + unshiftAll(iter: Iterable): Stack; + unshiftAll(iter: Array): Stack; + + /** + * Returns a new Stack with a size ones less than this Stack, excluding + * the first item in this Stack, shifting all other values to a lower index. + * + * Note: this differs from `Array#shift` because it returns a new + * Stack rather than the removed value. Use `first()` or `peek()` to get the + * first value in this Stack. + */ + shift(): Stack; + + /** + * Alias for `Stack#unshift` and is not equivalent to `List#push`. + */ + push(...values: T[]): Stack; + + /** + * Alias for `Stack#unshiftAll`. + */ + pushAll(iter: Iterable): Stack; + pushAll(iter: Array): Stack; + + /** + * Alias for `Stack#shift` and is not equivalent to `List#pop`. + */ + pop(): Stack; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set`, `push`, and `pop` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: Stack) => any): Stack; + + /** + * @see `Map#asMutable` + */ + asMutable(): Stack; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): Stack; + } + + + /** + * Returns a Seq.Indexed of numbers from `start` (inclusive) to `end` + * (exclusive), by `step`, where `start` defaults to 0, `step` to 1, and `end` to + * infinity. When `start` is equal to `end`, returns empty range. + * + * Range() // [0,1,2,3,...] + * Range(10) // [10,11,12,13,...] + * Range(10,15) // [10,11,12,13,14] + * Range(10,30,5) // [10,15,20,25] + * Range(30,10,5) // [30,25,20,15] + * Range(30,30,5) // [] + * + */ + export function Range(start?: number, end?: number, step?: number): Seq.Indexed; + + + /** + * Returns a Seq.Indexed of `value` repeated `times` times. When `times` is + * not defined, returns an infinite `Seq` of `value`. + * + * Repeat('foo') // ['foo','foo','foo',...] + * Repeat('bar',4) // ['bar','bar','bar','bar'] + * + */ + export function Repeat(value: T, times?: number): Seq.Indexed; + + + /** + * Creates a new Class which produces Record instances. A record is similar to + * a JS object, but enforce a specific set of allowed string keys, and have + * default values. + * + * var ABRecord = Record({a:1, b:2}) + * var myRecord = new ABRecord({b:3}) + * + * Records always have a value for the keys they define. `remove`ing a key + * from a record simply resets it to the default value for that key. + * + * myRecord.size // 2 + * myRecord.get('a') // 1 + * myRecord.get('b') // 3 + * myRecordWithoutB = myRecord.remove('b') + * myRecordWithoutB.get('b') // 2 + * myRecordWithoutB.size // 2 + * + * Values provided to the constructor not found in the Record type will + * be ignored. For example, in this case, ABRecord is provided a key "x" even + * though only "a" and "b" have been defined. The value for "x" will be + * ignored for this record. + * + * var myRecord = new ABRecord({b:3, x:10}) + * myRecord.get('x') // undefined + * + * Because Records have a known set of string keys, property get access works + * as expected, however property sets will throw an Error. + * + * Note: IE8 does not support property access. Only use `get()` when + * supporting IE8. + * + * myRecord.b // 3 + * myRecord.b = 5 // throws Error + * + * Record Classes can be extended as well, allowing for custom methods on your + * Record. This is not a common pattern in functional environments, but is in + * many JS programs. + * + * Note: TypeScript does not support this type of subclassing. + * + * class ABRecord extends Record({a:1,b:2}) { + * getAB() { + * return this.a + this.b; + * } + * } + * + * var myRecord = new ABRecord({b: 3}) + * myRecord.getAB() // 4 + * + */ + export module Record { + export interface Class { + new (): Map; + new (values: {[key: string]: any}): Map; + new (values: Iterable): Map; // deprecated + + (): Map; + (values: {[key: string]: any}): Map; + (values: Iterable): Map; // deprecated + } + } + + export function Record( + defaultValues: {[key: string]: any}, name?: string + ): Record.Class; + + + /** + * Represents a sequence of values, but may not be backed by a concrete data + * structure. + * + * **Seq is immutable** — Once a Seq is created, it cannot be + * changed, appended to, rearranged or otherwise modified. Instead, any + * mutative method called on a `Seq` will return a new `Seq`. + * + * **Seq is lazy** — Seq does as little work as necessary to respond to any + * method call. Values are often created during iteration, including implicit + * iteration when reducing or converting to a concrete data structure such as + * a `List` or JavaScript `Array`. + * + * For example, the following performs no work, because the resulting + * Seq's values are never iterated: + * + * var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) + * .filter(x => x % 2).map(x => x * x); + * + * Once the Seq is used, it performs only the work necessary. In this + * example, no intermediate data structures are ever created, filter is only + * called three times, and map is only called once: + * + * console.log(oddSquares.get(1)); // 9 + * + * Seq allows for the efficient chaining of operations, + * allowing for the expression of logic that can otherwise be very tedious: + * + * Immutable.Seq({a:1, b:1, c:1}) + * .flip().map(key => key.toUpperCase()).flip().toObject(); + * // Map { A: 1, B: 1, C: 1 } + * + * As well as expressing logic that would otherwise be memory or time limited: + * + * Immutable.Range(1, Infinity) + * .skip(1000) + * .map(n => -n) + * .filter(n => n % 2 === 0) + * .take(2) + * .reduce((r, n) => r * n, 1); + * // 1006008 + * + * Seq is often used to provide a rich collection API to JavaScript Object. + * + * Immutable.Seq({ x: 0, y: 1, z: 2 }).map(v => v * 2).toObject(); + * // { x: 0, y: 2, z: 4 } + */ + + export module Seq { + /** + * True if `maybeSeq` is a Seq, it is not backed by a concrete + * structure such as Map, List, or Set. + */ + function isSeq(maybeSeq: any): boolean; + + /** + * Returns a Seq of the values provided. Alias for `Seq.Indexed.of()`. + */ + function of(...values: T[]): Seq.Indexed; + + + /** + * `Seq` which represents key-value pairs. + */ + export module Keyed {} + + /** + * Always returns a Seq.Keyed, if input is not keyed, expects an + * iterable of [K, V] tuples. + */ + export function Keyed(): Seq.Keyed; + export function Keyed(seq: Iterable.Keyed): Seq.Keyed; + export function Keyed(seq: Iterable): Seq.Keyed; + export function Keyed(array: Array): Seq.Keyed; + export function Keyed(obj: {[key: string]: V}): Seq.Keyed; + export function Keyed(iterator: Iterator): Seq.Keyed; + export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Seq.Keyed; + + export interface Keyed extends Seq, Iterable.Keyed { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Keyed + } + + + /** + * `Seq` which represents an ordered indexed list of values. + */ + module Indexed { + + /** + * Provides an Seq.Indexed of the values provided. + */ + function of(...values: T[]): Seq.Indexed; + } + + /** + * Always returns Seq.Indexed, discarding associated keys and + * supplying incrementing indices. + */ + export function Indexed(): Seq.Indexed; + export function Indexed(seq: Iterable.Indexed): Seq.Indexed; + export function Indexed(seq: Iterable.Set): Seq.Indexed; + export function Indexed(seq: Iterable.Keyed): Seq.Indexed; + export function Indexed(array: Array): Seq.Indexed; + export function Indexed(iterator: Iterator): Seq.Indexed; + export function Indexed(iterable: /*Iterable*/Object): Seq.Indexed; + + export interface Indexed extends Seq, Iterable.Indexed { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Indexed + } + + + /** + * `Seq` which represents a set of values. + * + * Because `Seq` are often lazy, `Seq.Set` does not provide the same guarantee + * of value uniqueness as the concrete `Set`. + */ + export module Set { + + /** + * Returns a Seq.Set of the provided values + */ + function of(...values: T[]): Seq.Set; + } + + /** + * Always returns a Seq.Set, discarding associated indices or keys. + */ + export function Set(): Seq.Set; + export function Set(seq: Iterable.Set): Seq.Set; + export function Set(seq: Iterable.Indexed): Seq.Set; + export function Set(seq: Iterable.Keyed): Seq.Set; + export function Set(array: Array): Seq.Set; + export function Set(iterator: Iterator): Seq.Set; + export function Set(iterable: /*Iterable*/Object): Seq.Set; + + export interface Set extends Seq, Iterable.Set { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Set + } + + } + + /** + * Creates a Seq. + * + * Returns a particular kind of `Seq` based on the input. + * + * * If a `Seq`, that same `Seq`. + * * If an `Iterable`, a `Seq` of the same kind (Keyed, Indexed, or Set). + * * If an Array-like, an `Seq.Indexed`. + * * If an Object with an Iterator, an `Seq.Indexed`. + * * If an Iterator, an `Seq.Indexed`. + * * If an Object, a `Seq.Keyed`. + * + */ + export function Seq(): Seq; + export function Seq(seq: Seq): Seq; + export function Seq(iterable: Iterable): Seq; + export function Seq(array: Array): Seq.Indexed; + export function Seq(obj: {[key: string]: V}): Seq.Keyed; + export function Seq(iterator: Iterator): Seq.Indexed; + export function Seq(iterable: /*ES6Iterable*/Object): Seq.Indexed; + + export interface Seq extends Iterable { + + /** + * Some Seqs can describe their size lazily. When this is the case, + * size will be an integer. Otherwise it will be undefined. + * + * For example, Seqs returned from `map()` or `reverse()` + * preserve the size of the original `Seq` while `filter()` does not. + * + * Note: `Range`, `Repeat` and `Seq`s made from `Array`s and `Object`s will + * always have a size. + */ + size: number/*?*/; + + + // Force evaluation + + /** + * Because Sequences are lazy and designed to be chained together, they do + * not cache their results. For example, this map function is called a total + * of 6 times, as each `join` iterates the Seq of three values. + * + * var squares = Seq.of(1,2,3).map(x => x * x); + * squares.join() + squares.join(); + * + * If you know a `Seq` will be used multiple times, it may be more + * efficient to first cache it in memory. Here, the map function is called + * only 3 times. + * + * var squares = Seq.of(1,2,3).map(x => x * x).cacheResult(); + * squares.join() + squares.join(); + * + * Use this method judiciously, as it must fully evaluate a Seq which can be + * a burden on memory and possibly performance. + * + * Note: after calling `cacheResult`, a Seq will always have a `size`. + */ + cacheResult(): /*this*/Seq; + } + + /** + * The `Iterable` is a set of (key, value) entries which can be iterated, and + * is the base class for all collections in `immutable`, allowing them to + * make use of all the Iterable methods (such as `map` and `filter`). + * + * Note: An iterable is always iterated in the same order, however that order + * may not always be well defined, as is the case for the `Map` and `Set`. + */ + export module Iterable { + /** + * True if `maybeIterable` is an Iterable, or any of its subclasses. + */ + function isIterable(maybeIterable: any): boolean; + + /** + * True if `maybeKeyed` is an Iterable.Keyed, or any of its subclasses. + */ + function isKeyed(maybeKeyed: any): boolean; + + /** + * True if `maybeIndexed` is a Iterable.Indexed, or any of its subclasses. + */ + function isIndexed(maybeIndexed: any): boolean; + + /** + * True if `maybeAssociative` is either a keyed or indexed Iterable. + */ + function isAssociative(maybeAssociative: any): boolean; + + /** + * True if `maybeOrdered` is an Iterable where iteration order is well + * defined. True for Iterable.Indexed as well as OrderedMap and OrderedSet. + */ + function isOrdered(maybeOrdered: any): boolean; + + + /** + * Keyed Iterables have discrete keys tied to each value. + * + * When iterating `Iterable.Keyed`, each iteration will yield a `[K, V]` + * tuple, in other words, `Iterable#entries` is the default iterator for + * Keyed Iterables. + */ + export module Keyed {} + + /** + * Creates an Iterable.Keyed + * + * Similar to `Iterable()`, however it expects iterable-likes of [K, V] + * tuples if not constructed from a Iterable.Keyed or JS Object. + */ + export function Keyed(iter: Iterable.Keyed): Iterable.Keyed; + export function Keyed(iter: Iterable): Iterable.Keyed; + export function Keyed(array: Array): Iterable.Keyed; + export function Keyed(obj: {[key: string]: V}): Iterable.Keyed; + export function Keyed(iterator: Iterator): Iterable.Keyed; + export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Iterable.Keyed; + + export interface Keyed extends Iterable { + + /** + * Returns Seq.Keyed. + * @override + */ + toSeq(): Seq.Keyed; + + + // Sequence functions + + /** + * Returns a new Iterable.Keyed of the same type where the keys and values + * have been flipped. + * + * Seq({ a: 'z', b: 'y' }).flip() // { z: 'a', y: 'b' } + * + */ + flip(): /*this*/Iterable.Keyed; + + /** + * Returns a new Iterable.Keyed of the same type with keys passed through + * a `mapper` function. + * + * Seq({ a: 1, b: 2 }) + * .mapKeys(x => x.toUpperCase()) + * // Seq { A: 1, B: 2 } + * + */ + mapKeys( + mapper: (key?: K, value?: V, iter?: /*this*/Iterable.Keyed) => M, + context?: any + ): /*this*/Iterable.Keyed; + + /** + * Returns a new Iterable.Keyed of the same type with entries + * ([key, value] tuples) passed through a `mapper` function. + * + * Seq({ a: 1, b: 2 }) + * .mapEntries(([k, v]) => [k.toUpperCase(), v * 2]) + * // Seq { A: 2, B: 4 } + * + */ + mapEntries( + mapper: ( + entry?: /*(K, V)*/Array, + index?: number, + iter?: /*this*/Iterable.Keyed + ) => /*[KM, VM]*/Array, + context?: any + ): /*this*/Iterable.Keyed; + } + + + /** + * Indexed Iterables have incrementing numeric keys. They exhibit + * slightly different behavior than `Iterable.Keyed` for some methods in order + * to better mirror the behavior of JavaScript's `Array`, and add methods + * which do not make sense on non-indexed Iterables such as `indexOf`. + * + * Unlike JavaScript arrays, `Iterable.Indexed`s are always dense. "Unset" + * indices and `undefined` indices are indistinguishable, and all indices from + * 0 to `size` are visited when iterated. + * + * All Iterable.Indexed methods return re-indexed Iterables. In other words, + * indices always start at 0 and increment until size. If you wish to + * preserve indices, using them as keys, convert to a Iterable.Keyed by + * calling `toKeyedSeq`. + */ + export module Indexed {} + + /** + * Creates a new Iterable.Indexed. + */ + export function Indexed(iter: Iterable.Indexed): Iterable.Indexed; + export function Indexed(iter: Iterable.Set): Iterable.Indexed; + export function Indexed(iter: Iterable.Keyed): Iterable.Indexed; + export function Indexed(array: Array): Iterable.Indexed; + export function Indexed(iterator: Iterator): Iterable.Indexed; + export function Indexed(iterable: /*Iterable*/Object): Iterable.Indexed; + + export interface Indexed extends Iterable { + + // Reading values + + /** + * Returns the value associated with the provided index, or notSetValue if + * the index is beyond the bounds of the Iterable. + * + * `index` may be a negative number, which indexes back from the end of the + * Iterable. `s.get(-1)` gets the last item in the Iterable. + */ + get(index: number, notSetValue?: T): T; + + + // Conversion to Seq + + /** + * Returns Seq.Indexed. + * @override + */ + toSeq(): Seq.Indexed; + + /** + * If this is an iterable of [key, value] entry tuples, it will return a + * Seq.Keyed of those entries. + */ + fromEntrySeq(): Seq.Keyed; + + + // Combination + + /** + * Returns an Iterable of the same type with `separator` between each item + * in this Iterable. + */ + interpose(separator: T): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type with the provided `iterables` + * interleaved into this iterable. + * + * The resulting Iterable includes the first item from each, then the + * second from each, etc. + * + * I.Seq.of(1,2,3).interleave(I.Seq.of('A','B','C')) + * // Seq [ 1, 'A', 2, 'B', 3, 'C' ] + * + * The shortest Iterable stops interleave. + * + * I.Seq.of(1,2,3).interleave( + * I.Seq.of('A','B'), + * I.Seq.of('X','Y','Z') + * ) + * // Seq [ 1, 'A', 'X', 2, 'B', 'Y' ] + */ + interleave(...iterables: Array>): /*this*/Iterable.Indexed; + + /** + * Splice returns a new indexed Iterable by replacing a region of this + * Iterable with new values. If values are not provided, it only skips the + * region to be removed. + * + * `index` may be a negative number, which indexes back from the end of the + * Iterable. `s.splice(-2)` splices after the second to last item. + * + * Seq(['a','b','c','d']).splice(1, 2, 'q', 'r', 's') + * // Seq ['a', 'q', 'r', 's', 'd'] + * + */ + splice( + index: number, + removeNum: number, + ...values: /*Array | T>*/any[] + ): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type "zipped" with the provided + * iterables. + * + * Like `zipWith`, but using the default `zipper`: creating an `Array`. + * + * var a = Seq.of(1, 2, 3); + * var b = Seq.of(4, 5, 6); + * var c = a.zip(b); // Seq [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] + * + */ + zip(...iterables: Array>): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type "zipped" with the provided + * iterables by using a custom `zipper` function. + * + * var a = Seq.of(1, 2, 3); + * var b = Seq.of(4, 5, 6); + * var c = a.zipWith((a, b) => a + b, b); // Seq [ 5, 7, 9 ] + * + */ + zipWith( + zipper: (value: T, otherValue: U) => Z, + otherIterable: Iterable + ): Iterable.Indexed; + zipWith( + zipper: (value: T, otherValue: U, thirdValue: V) => Z, + otherIterable: Iterable, + thirdIterable: Iterable + ): Iterable.Indexed; + zipWith( + zipper: (...any: Array) => Z, + ...iterables: Array> + ): Iterable.Indexed; + + + // Search for value + + /** + * Returns the first index at which a given value can be found in the + * Iterable, or -1 if it is not present. + */ + indexOf(searchValue: T): number; + + /** + * Returns the last index at which a given value can be found in the + * Iterable, or -1 if it is not present. + */ + lastIndexOf(searchValue: T): number; + + /** + * Returns the first index in the Iterable where a value satisfies the + * provided predicate function. Otherwise -1 is returned. + */ + findIndex( + predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, + context?: any + ): number; + + /** + * Returns the last index in the Iterable where a value satisfies the + * provided predicate function. Otherwise -1 is returned. + */ + findLastIndex( + predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, + context?: any + ): number; + } + + + /** + * Set Iterables only represent values. They have no associated keys or + * indices. Duplicate values are possible in Seq.Sets, however the + * concrete `Set` does not allow duplicate values. + * + * Iterable methods on Iterable.Set such as `map` and `forEach` will provide + * the value as both the first and second arguments to the provided function. + * + * var seq = Seq.Set.of('A', 'B', 'C'); + * assert.equal(seq.every((v, k) => v === k), true); + * + */ + export module Set {} + + /** + * Similar to `Iterable()`, but always returns a Iterable.Set. + */ + export function Set(iter: Iterable.Set): Iterable.Set; + export function Set(iter: Iterable.Indexed): Iterable.Set; + export function Set(iter: Iterable.Keyed): Iterable.Set; + export function Set(array: Array): Iterable.Set; + export function Set(iterator: Iterator): Iterable.Set; + export function Set(iterable: /*Iterable*/Object): Iterable.Set; + + export interface Set extends Iterable { + + /** + * Returns Seq.Set. + * @override + */ + toSeq(): Seq.Set; + } + + } + + /** + * Creates an Iterable. + * + * The type of Iterable created is based on the input. + * + * * If an `Iterable`, that same `Iterable`. + * * If an Array-like, an `Iterable.Indexed`. + * * If an Object with an Iterator, an `Iterable.Indexed`. + * * If an Iterator, an `Iterable.Indexed`. + * * If an Object, an `Iterable.Keyed`. + * + * This methods forces the conversion of Objects and Strings to Iterables. + * If you want to ensure that a Iterable of one item is returned, use + * `Seq.of`. + */ + export function Iterable(iterable: Iterable): Iterable; + export function Iterable(array: Array): Iterable.Indexed; + export function Iterable(obj: {[key: string]: V}): Iterable.Keyed; + export function Iterable(iterator: Iterator): Iterable.Indexed; + export function Iterable(iterable: /*ES6Iterable*/Object): Iterable.Indexed; + export function Iterable(value: V): Iterable.Indexed; + + export interface Iterable { + + // Value equality + + /** + * True if this and the other Iterable have value equality, as defined + * by `Immutable.is()`. + * + * Note: This is equivalent to `Immutable.is(this, other)`, but provided to + * allow for chained expressions. + */ + equals(other: Iterable): boolean; + + /** + * Computes and returns the hashed identity for this Iterable. + * + * The `hashCode` of an Iterable is used to determine potential equality, + * and is used when adding this to a `Set` or as a key in a `Map`, enabling + * lookup via a different instance. + * + * var a = List.of(1, 2, 3); + * var b = List.of(1, 2, 3); + * assert(a !== b); // different instances + * var set = Set.of(a); + * assert(set.has(b) === true); + * + * If two values have the same `hashCode`, they are [not guaranteed + * to be equal][Hash Collision]. If two values have different `hashCode`s, + * they must not be equal. + * + * [Hash Collision]: http://en.wikipedia.org/wiki/Collision_(computer_science) + */ + hashCode(): number; + + + // Reading values + + /** + * Returns the value associated with the provided key, or notSetValue if + * the Iterable does not contain this key. + * + * Note: it is possible a key may be associated with an `undefined` value, + * so if `notSetValue` is not provided and this method returns `undefined`, + * that does not guarantee the key was not found. + */ + get(key: K, notSetValue?: V): V; + + /** + * True if a key exists within this `Iterable`, using `Immutable.is` to determine equality + */ + has(key: K): boolean; + + /** + * True if a value exists within this `Iterable`, using `Immutable.is` to determine equality + * @alias contains + */ + includes(value: V): boolean; + contains(value: V): boolean; + + /** + * The first value in the Iterable. + */ + first(): V; + + /** + * The last value in the Iterable. + */ + last(): V; + + + // Reading deep values + + /** + * Returns the value found by following a path of keys or indices through + * nested Iterables. + */ + getIn(searchKeyPath: Array, notSetValue?: any): any; + getIn(searchKeyPath: Iterable, notSetValue?: any): any; + + /** + * True if the result of following a path of keys or indices through nested + * Iterables results in a set value. + */ + hasIn(searchKeyPath: Array): boolean; + hasIn(searchKeyPath: Iterable): boolean; + + + // Conversion to JavaScript types + + /** + * Deeply converts this Iterable to equivalent JS. + * + * `Iterable.Indexeds`, and `Iterable.Sets` become Arrays, while + * `Iterable.Keyeds` become Objects. + * + * @alias toJSON + */ + toJS(): any; + + /** + * Shallowly converts this iterable to an Array, discarding keys. + */ + toArray(): Array; + + /** + * Shallowly converts this Iterable to an Object. + * + * Throws if keys are not strings. + */ + toObject(): { [key: string]: V }; + + + // Conversion to Collections + + /** + * Converts this Iterable to a Map, Throws if keys are not hashable. + * + * Note: This is equivalent to `Map(this.toKeyedSeq())`, but provided + * for convenience and to allow for chained expressions. + */ + toMap(): Map; + + /** + * Converts this Iterable to a Map, maintaining the order of iteration. + * + * Note: This is equivalent to `OrderedMap(this.toKeyedSeq())`, but + * provided for convenience and to allow for chained expressions. + */ + toOrderedMap(): OrderedMap; + + /** + * Converts this Iterable to a Set, discarding keys. Throws if values + * are not hashable. + * + * Note: This is equivalent to `Set(this)`, but provided to allow for + * chained expressions. + */ + toSet(): Set; + + /** + * Converts this Iterable to a Set, maintaining the order of iteration and + * discarding keys. + * + * Note: This is equivalent to `OrderedSet(this.valueSeq())`, but provided + * for convenience and to allow for chained expressions. + */ + toOrderedSet(): OrderedSet; + + /** + * Converts this Iterable to a List, discarding keys. + * + * Note: This is equivalent to `List(this)`, but provided to allow + * for chained expressions. + */ + toList(): List; + + /** + * Converts this Iterable to a Stack, discarding keys. Throws if values + * are not hashable. + * + * Note: This is equivalent to `Stack(this)`, but provided to allow for + * chained expressions. + */ + toStack(): Stack; + + + // Conversion to Seq + + /** + * Converts this Iterable to a Seq of the same kind (indexed, + * keyed, or set). + */ + toSeq(): Seq; + + /** + * Returns a Seq.Keyed from this Iterable where indices are treated as keys. + * + * This is useful if you want to operate on an + * Iterable.Indexed and preserve the [index, value] pairs. + * + * The returned Seq will have identical iteration order as + * this Iterable. + * + * Example: + * + * var indexedSeq = Immutable.Seq.of('A', 'B', 'C'); + * indexedSeq.filter(v => v === 'B').toString() // Seq [ 'B' ] + * var keyedSeq = indexedSeq.toKeyedSeq(); + * keyedSeq.filter(v => v === 'B').toString() // Seq { 1: 'B' } + * + */ + toKeyedSeq(): Seq.Keyed; + + /** + * Returns an Seq.Indexed of the values of this Iterable, discarding keys. + */ + toIndexedSeq(): Seq.Indexed; + + /** + * Returns a Seq.Set of the values of this Iterable, discarding keys. + */ + toSetSeq(): Seq.Set; + + + // Iterators + + /** + * An iterator of this `Iterable`'s keys. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `keySeq` instead, if this is what you want. + */ + keys(): Iterator; + + /** + * An iterator of this `Iterable`'s values. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `valueSeq` instead, if this is what you want. + */ + values(): Iterator; + + /** + * An iterator of this `Iterable`'s entries as `[key, value]` tuples. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `entrySeq` instead, if this is what you want. + */ + entries(): Iterator>; + + + // Iterables (Seq) + + /** + * Returns a new Seq.Indexed of the keys of this Iterable, + * discarding values. + */ + keySeq(): Seq.Indexed; + + /** + * Returns an Seq.Indexed of the values of this Iterable, discarding keys. + */ + valueSeq(): Seq.Indexed; + + /** + * Returns a new Seq.Indexed of [key, value] tuples. + */ + entrySeq(): Seq.Indexed>; + + + // Sequence algorithms + + /** + * Returns a new Iterable of the same type with values passed through a + * `mapper` function. + * + * Seq({ a: 1, b: 2 }).map(x => 10 * x) + * // Seq { a: 10, b: 20 } + * + */ + map( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => M, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type with only the entries for which + * the `predicate` function returns true. + * + * Seq({a:1,b:2,c:3,d:4}).filter(x => x % 2 === 0) + * // Seq { b: 2, d: 4 } + * + */ + filter( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type with only the entries for which + * the `predicate` function returns false. + * + * Seq({a:1,b:2,c:3,d:4}).filterNot(x => x % 2 === 0) + * // Seq { a: 1, c: 3 } + * + */ + filterNot( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type in reverse order. + */ + reverse(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the same entries, + * stably sorted by using a `comparator`. + * + * If a `comparator` is not provided, a default comparator uses `<` and `>`. + * + * `comparator(valueA, valueB)`: + * + * * Returns `0` if the elements should not be swapped. + * * Returns `-1` (or any negative number) if `valueA` comes before `valueB` + * * Returns `1` (or any positive number) if `valueA` comes after `valueB` + * * Is pure, i.e. it must always return the same value for the same pair + * of values. + * + * When sorting collections which have no defined order, their ordered + * equivalents will be returned. e.g. `map.sort()` returns OrderedMap. + */ + sort(comparator?: (valueA: V, valueB: V) => number): /*this*/Iterable; + + /** + * Like `sort`, but also accepts a `comparatorValueMapper` which allows for + * sorting by more sophisticated means: + * + * hitters.sortBy(hitter => hitter.avgHits); + * + */ + sortBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): /*this*/Iterable; + + /** + * Returns a `Iterable.Keyed` of `Iterable.Keyeds`, grouped by the return + * value of the `grouper` function. + * + * Note: This is always an eager operation. + */ + groupBy( + grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, + context?: any + ): /*Map*/Seq.Keyed>; + + + // Side effects + + /** + * The `sideEffect` is executed for every entry in the Iterable. + * + * Unlike `Array#forEach`, if any call of `sideEffect` returns + * `false`, the iteration will stop. Returns the number of entries iterated + * (including the last iteration which returned false). + */ + forEach( + sideEffect: (value?: V, key?: K, iter?: /*this*/Iterable) => any, + context?: any + ): number; + + + // Creating subsets + + /** + * Returns a new Iterable of the same type representing a portion of this + * Iterable from start up to but not including end. + * + * If begin is negative, it is offset from the end of the Iterable. e.g. + * `slice(-2)` returns a Iterable of the last two entries. If it is not + * provided the new Iterable will begin at the beginning of this Iterable. + * + * If end is negative, it is offset from the end of the Iterable. e.g. + * `slice(0, -1)` returns an Iterable of everything but the last entry. If + * it is not provided, the new Iterable will continue through the end of + * this Iterable. + * + * If the requested slice is equivalent to the current Iterable, then it + * will return itself. + */ + slice(begin?: number, end?: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type containing all entries except + * the first. + */ + rest(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type containing all entries except + * the last. + */ + butLast(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which excludes the first `amount` + * entries from this Iterable. + */ + skip(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which excludes the last `amount` + * entries from this Iterable. + */ + skipLast(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries starting + * from when `predicate` first returns false. + * + * Seq.of('dog','frog','cat','hat','god') + * .skipWhile(x => x.match(/g/)) + * // Seq [ 'cat', 'hat', 'god' ] + * + */ + skipWhile( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries starting + * from when `predicate` first returns true. + * + * Seq.of('dog','frog','cat','hat','god') + * .skipUntil(x => x.match(/hat/)) + * // Seq [ 'hat', 'god' ] + * + */ + skipUntil( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the first `amount` + * entries from this Iterable. + */ + take(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the last `amount` + * entries from this Iterable. + */ + takeLast(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries from this + * Iterable as long as the `predicate` returns true. + * + * Seq.of('dog','frog','cat','hat','god') + * .takeWhile(x => x.match(/o/)) + * // Seq [ 'dog', 'frog' ] + * + */ + takeWhile( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries from this + * Iterable as long as the `predicate` returns false. + * + * Seq.of('dog','frog','cat','hat','god').takeUntil(x => x.match(/at/)) + * // ['dog', 'frog'] + * + */ + takeUntil( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + + // Combination + + /** + * Returns a new Iterable of the same type with other values and + * iterable-like concatenated to this one. + * + * For Seqs, all entries will be present in + * the resulting iterable, even if they have the same key. + */ + concat(...valuesOrIterables: /*Array|V*/any[]): /*this*/Iterable; + + /** + * Flattens nested Iterables. + * + * Will deeply flatten the Iterable by default, returning an Iterable of the + * same type, but a `depth` can be provided in the form of a number or + * boolean (where true means to shallowly flatten one level). A depth of 0 + * (or shallow: false) will deeply flatten. + * + * Flattens only others Iterable, not Arrays or Objects. + * + * Note: `flatten(true)` operates on Iterable> and + * returns Iterable + */ + flatten(depth?: number): /*this*/Iterable; + flatten(shallow?: boolean): /*this*/Iterable; + + /** + * Flat-maps the Iterable, returning an Iterable of the same type. + * + * Similar to `iter.map(...).flatten(true)`. + */ + flatMap( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => Iterable, + context?: any + ): /*this*/Iterable; + flatMap( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => /*iterable-like*/any, + context?: any + ): /*this*/Iterable; + + + // Reducing a value + + /** + * Reduces the Iterable to a value by calling the `reducer` for every entry + * in the Iterable and passing along the reduced value. + * + * If `initialReduction` is not provided, or is null, the first item in the + * Iterable will be used. + * + * @see `Array#reduce`. + */ + reduce( + reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, + initialReduction?: R, + context?: any + ): R; + + /** + * Reduces the Iterable in reverse (from the right side). + * + * Note: Similar to this.reverse().reduce(), and provided for parity + * with `Array#reduceRight`. + */ + reduceRight( + reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, + initialReduction?: R, + context?: any + ): R; + + /** + * True if `predicate` returns true for all entries in the Iterable. + */ + every( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): boolean; + + /** + * True if `predicate` returns true for any entry in the Iterable. + */ + some( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): boolean; + + /** + * Joins values together as a string, inserting a separator between each. + * The default separator is `","`. + */ + join(separator?: string): string; + + /** + * Returns true if this Iterable includes no values. + * + * For some lazy `Seq`, `isEmpty` might need to iterate to determine + * emptiness. At most one iteration will occur. + */ + isEmpty(): boolean; + + /** + * Returns the size of this Iterable. + * + * Regardless of if this Iterable can describe its size lazily (some Seqs + * cannot), this method will always return the correct size. E.g. it + * evaluates a lazy `Seq` if necessary. + * + * If `predicate` is provided, then this returns the count of entries in the + * Iterable for which the `predicate` returns true. + */ + count(): number; + count( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): number; + + /** + * Returns a `Seq.Keyed` of counts, grouped by the return value of + * the `grouper` function. + * + * Note: This is not a lazy operation. + */ + countBy( + grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, + context?: any + ): Map; + + + // Search for value + + /** + * Returns the first value for which the `predicate` returns true. + */ + find( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): V; + + /** + * Returns the last value for which the `predicate` returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLast( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): V; + + /** + * Returns the first [key, value] entry for which the `predicate` returns true. + */ + findEntry( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): /*[K, V]*/Array; + + /** + * Returns the last [key, value] entry for which the `predicate` + * returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLastEntry( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): /*[K, V]*/Array; + + /** + * Returns the key for which the `predicate` returns true. + */ + findKey( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, + context?: any + ): K; + + /** + * Returns the last key for which the `predicate` returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLastKey( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, + context?: any + ): K; + + /** + * Returns the key associated with the search value, or undefined. + */ + keyOf(searchValue: V): K; + + /** + * Returns the last key associated with the search value, or undefined. + */ + lastKeyOf(searchValue: V): K; + + /** + * Returns the maximum value in this collection. If any values are + * comparatively equivalent, the first one found will be returned. + * + * The `comparator` is used in the same way as `Iterable#sort`. If it is not + * provided, the default comparator is `>`. + * + * When two values are considered equivalent, the first encountered will be + * returned. Otherwise, `max` will operate independent of the order of input + * as long as the comparator is commutative. The default comparator `>` is + * commutative *only* when types do not differ. + * + * If `comparator` returns 0 and either value is NaN, undefined, or null, + * that value will be returned. + */ + max(comparator?: (valueA: V, valueB: V) => number): V; + + /** + * Like `max`, but also accepts a `comparatorValueMapper` which allows for + * comparing by more sophisticated means: + * + * hitters.maxBy(hitter => hitter.avgHits); + * + */ + maxBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + + /** + * Returns the minimum value in this collection. If any values are + * comparatively equivalent, the first one found will be returned. + * + * The `comparator` is used in the same way as `Iterable#sort`. If it is not + * provided, the default comparator is `<`. + * + * When two values are considered equivalent, the first encountered will be + * returned. Otherwise, `min` will operate independent of the order of input + * as long as the comparator is commutative. The default comparator `<` is + * commutative *only* when types do not differ. + * + * If `comparator` returns 0 and either value is NaN, undefined, or null, + * that value will be returned. + */ + min(comparator?: (valueA: V, valueB: V) => number): V; + + /** + * Like `min`, but also accepts a `comparatorValueMapper` which allows for + * comparing by more sophisticated means: + * + * hitters.minBy(hitter => hitter.avgHits); + * + */ + minBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + + + // Comparison + + /** + * True if `iter` includes every value in this Iterable. + */ + isSubset(iter: Iterable): boolean; + isSubset(iter: Array): boolean; + + /** + * True if this Iterable includes every value in `iter`. + */ + isSuperset(iter: Iterable): boolean; + isSuperset(iter: Array): boolean; + + + /** + * Note: this is here as a convenience to work around an issue with + * TypeScript https://github.com/Microsoft/TypeScript/issues/285, but + * Iterable does not define `size`, instead `Seq` defines `size` as + * nullable number, and `Collection` defines `size` as always a number. + * + * @ignore + */ + size: number; + } + + + /** + * Collection is the abstract base class for concrete data structures. It + * cannot be constructed directly. + * + * Implementations should extend one of the subclasses, `Collection.Keyed`, + * `Collection.Indexed`, or `Collection.Set`. + */ + export module Collection { + + + /** + * `Collection` which represents key-value pairs. + */ + export module Keyed {} + + export interface Keyed extends Collection, Iterable.Keyed { + + /** + * Returns Seq.Keyed. + * @override + */ + toSeq(): Seq.Keyed; + } + + + /** + * `Collection` which represents ordered indexed values. + */ + export module Indexed {} + + export interface Indexed extends Collection, Iterable.Indexed { + + /** + * Returns Seq.Indexed. + * @override + */ + toSeq(): Seq.Indexed; + } + + + /** + * `Collection` which represents values, unassociated with keys or indices. + * + * `Collection.Set` implementations should guarantee value uniqueness. + */ + export module Set {} + + export interface Set extends Collection, Iterable.Set { + + /** + * Returns Seq.Set. + * @override + */ + toSeq(): Seq.Set; + } + + } + + export interface Collection extends Iterable { + + /** + * All collections maintain their current `size` as an integer. + */ + size: number; + } + + + /** + * ES6 Iterator. + * + * This is not part of the Immutable library, but a common interface used by + * many types in ES6 JavaScript. + * + * @ignore + */ + export interface Iterator { + next(): { value: T; done: boolean; } + } + + diff --git a/packages/client/node_modules/immutable/dist/immutable.d.ts b/packages/client/node_modules/immutable/dist/immutable.d.ts new file mode 100644 index 0000000..999cc3a --- /dev/null +++ b/packages/client/node_modules/immutable/dist/immutable.d.ts @@ -0,0 +1,2537 @@ +/** + * 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. + */ + +/** + * Immutable data encourages pure functions (data-in, data-out) and lends itself + * to much simpler application development and enabling techniques from + * functional programming such as lazy evaluation. + * + * While designed to bring these powerful functional concepts to JavaScript, it + * presents an Object-Oriented API familiar to Javascript engineers and closely + * mirroring that of Array, Map, and Set. It is easy and efficient to convert to + * and from plain Javascript types. + + * Note: all examples are presented in [ES6][]. To run in all browsers, they + * need to be translated to ES3. For example: + * + * // ES6 + * foo.map(x => x * x); + * // ES3 + * foo.map(function (x) { return x * x; }); + * + * [ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla + */ + +declare module Immutable { + + /** + * Deeply converts plain JS objects and arrays to Immutable Maps and Lists. + * + * If a `reviver` is optionally provided, it will be called with every + * collection as a Seq (beginning with the most nested collections + * and proceeding to the top-level collection itself), along with the key + * refering to each collection and the parent JS object provided as `this`. + * For the top level, object, the key will be `""`. This `reviver` is expected + * to return a new Immutable Iterable, allowing for custom conversions from + * deep JS objects. + * + * This example converts JSON to List and OrderedMap: + * + * Immutable.fromJS({a: {b: [10, 20, 30]}, c: 40}, function (key, value) { + * var isIndexed = Immutable.Iterable.isIndexed(value); + * return isIndexed ? value.toList() : value.toOrderedMap(); + * }); + * + * // true, "b", {b: [10, 20, 30]} + * // false, "a", {a: {b: [10, 20, 30]}, c: 40} + * // false, "", {"": {a: {b: [10, 20, 30]}, c: 40}} + * + * If `reviver` is not provided, the default behavior will convert Arrays into + * Lists and Objects into Maps. + * + * `reviver` acts similarly to the [same parameter in `JSON.parse`][1]. + * + * `Immutable.fromJS` is conservative in its conversion. It will only convert + * arrays which pass `Array.isArray` to Lists, and only raw objects (no custom + * prototype) to Map. + * + * Keep in mind, when using JS objects to construct Immutable Maps, that + * JavaScript Object properties are always strings, even if written in a + * quote-less shorthand, while Immutable Maps accept keys of any type. + * + * ```js + * var obj = { 1: "one" }; + * Object.keys(obj); // [ "1" ] + * obj["1"]; // "one" + * obj[1]; // "one" + * + * var map = Map(obj); + * map.get("1"); // "one" + * map.get(1); // undefined + * ``` + * + * Property access for JavaScript Objects first converts the key to a string, + * but since Immutable Map keys can be of any type the argument to `get()` is + * not altered. + * + * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter + * "Using the reviver parameter" + */ + export function fromJS( + json: any, + reviver?: (k: any, v: Iterable) => any + ): any; + + + /** + * Value equality check with semantics similar to `Object.is`, but treats + * Immutable `Iterable`s as values, equal if the second `Iterable` includes + * equivalent values. + * + * It's used throughout Immutable when checking for equality, including `Map` + * key equality and `Set` membership. + * + * var map1 = Immutable.Map({a:1, b:1, c:1}); + * var map2 = Immutable.Map({a:1, b:1, c:1}); + * assert(map1 !== map2); + * assert(Object.is(map1, map2) === false); + * assert(Immutable.is(map1, map2) === true); + * + * Note: Unlike `Object.is`, `Immutable.is` assumes `0` and `-0` are the same + * value, matching the behavior of ES6 Map key equality. + */ + export function is(first: any, second: any): boolean; + + + /** + * Lists are ordered indexed dense collections, much like a JavaScript + * Array. + * + * Lists are immutable and fully persistent with O(log32 N) gets and sets, + * and O(1) push and pop. + * + * Lists implement Deque, with efficient addition and removal from both the + * end (`push`, `pop`) and beginning (`unshift`, `shift`). + * + * Unlike a JavaScript Array, there is no distinction between an + * "unset" index and an index set to `undefined`. `List#forEach` visits all + * indices from 0 to size, regardless of whether they were explicitly defined. + */ + export module List { + + /** + * True if the provided value is a List + */ + function isList(maybeList: any): boolean; + + /** + * Creates a new List containing `values`. + */ + function of(...values: T[]): List; + } + + /** + * Create a new immutable List containing the values of the provided + * iterable-like. + */ + export function List(): List; + export function List(iter: Iterable.Indexed): List; + export function List(iter: Iterable.Set): List; + export function List(iter: Iterable.Keyed): List; + export function List(array: Array): List; + export function List(iterator: Iterator): List; + export function List(iterable: /*Iterable*/Object): List; + + + export interface List extends Collection.Indexed { + + // Persistent changes + + /** + * Returns a new List which includes `value` at `index`. If `index` already + * exists in this List, it will be replaced. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.set(-1, "value")` sets the last item in the List. + * + * If `index` larger than `size`, the returned List's `size` will be large + * enough to include the `index`. + */ + set(index: number, value: T): List; + + /** + * Returns a new List which excludes this `index` and with a size 1 less + * than this List. Values at indices above `index` are shifted down by 1 to + * fill the position. + * + * This is synonymous with `list.splice(index, 1)`. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.delete(-1)` deletes the last item in the List. + * + * Note: `delete` cannot be safely used in IE8 + * @alias remove + */ + delete(index: number): List; + remove(index: number): List; + + /** + * Returns a new List with `value` at `index` with a size 1 more than this + * List. Values at indices above `index` are shifted over by 1. + * + * This is synonymous with `list.splice(index, 0, value) + */ + insert(index: number, value: T): List; + + /** + * Returns a new List with 0 size and no values. + */ + clear(): List; + + /** + * Returns a new List with the provided `values` appended, starting at this + * List's `size`. + */ + push(...values: T[]): List; + + /** + * Returns a new List with a size ones less than this List, excluding + * the last index in this List. + * + * Note: this differs from `Array#pop` because it returns a new + * List rather than the removed value. Use `last()` to get the last value + * in this List. + */ + pop(): List; + + /** + * Returns a new List with the provided `values` prepended, shifting other + * values ahead to higher indices. + */ + unshift(...values: T[]): List; + + /** + * Returns a new List with a size ones less than this List, excluding + * the first index in this List, shifting all other values to a lower index. + * + * Note: this differs from `Array#shift` because it returns a new + * List rather than the removed value. Use `first()` to get the first + * value in this List. + */ + shift(): List; + + /** + * Returns a new List with an updated value at `index` with the return + * value of calling `updater` with the existing value, or `notSetValue` if + * `index` was not set. If called with a single argument, `updater` is + * called with the List itself. + * + * `index` may be a negative number, which indexes back from the end of the + * List. `v.update(-1)` updates the last item in the List. + * + * @see `Map#update` + */ + update(updater: (value: List) => List): List; + update(index: number, updater: (value: T) => T): List; + update(index: number, notSetValue: T, updater: (value: T) => T): List; + + /** + * @see `Map#merge` + */ + merge(...iterables: Iterable.Indexed[]): List; + merge(...iterables: Array[]): List; + + /** + * @see `Map#mergeWith` + */ + mergeWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Iterable.Indexed[] + ): List; + mergeWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Array[] + ): List; + + /** + * @see `Map#mergeDeep` + */ + mergeDeep(...iterables: Iterable.Indexed[]): List; + mergeDeep(...iterables: Array[]): List; + + /** + * @see `Map#mergeDeepWith` + */ + mergeDeepWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepWith( + merger: (previous?: T, next?: T, key?: number) => T, + ...iterables: Array[] + ): List; + + /** + * Returns a new List with size `size`. If `size` is less than this + * List's size, the new List will exclude values at the higher indices. + * If `size` is greater than this List's size, the new List will have + * undefined values for the newly available indices. + * + * When building a new List and the final size is known up front, `setSize` + * used in conjunction with `withMutations` may result in the more + * performant construction. + */ + setSize(size: number): List; + + + // Deep persistent changes + + /** + * Returns a new List having set `value` at this `keyPath`. If any keys in + * `keyPath` do not exist, a new immutable Map will be created at that key. + * + * Index numbers are used as keys to determine the path to follow in + * the List. + */ + setIn(keyPath: Array, value: any): List; + setIn(keyPath: Iterable, value: any): List; + + /** + * Returns a new List having removed the value at this `keyPath`. If any + * keys in `keyPath` do not exist, no change will occur. + * + * @alias removeIn + */ + deleteIn(keyPath: Array): List; + deleteIn(keyPath: Iterable): List; + removeIn(keyPath: Array): List; + removeIn(keyPath: Iterable): List; + + /** + * @see `Map#updateIn` + */ + updateIn( + keyPath: Array, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Array, + notSetValue: any, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Iterable, + updater: (value: any) => any + ): List; + updateIn( + keyPath: Iterable, + notSetValue: any, + updater: (value: any) => any + ): List; + + /** + * @see `Map#mergeIn` + */ + mergeIn( + keyPath: Iterable, + ...iterables: Iterable.Indexed[] + ): List; + mergeIn( + keyPath: Array, + ...iterables: Iterable.Indexed[] + ): List; + mergeIn( + keyPath: Array, + ...iterables: Array[] + ): List; + + /** + * @see `Map#mergeDeepIn` + */ + mergeDeepIn( + keyPath: Iterable, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepIn( + keyPath: Array, + ...iterables: Iterable.Indexed[] + ): List; + mergeDeepIn( + keyPath: Array, + ...iterables: Array[] + ): List; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set`, `push`, `pop`, `shift`, `unshift` and + * `merge` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: List) => any): List; + + /** + * @see `Map#asMutable` + */ + asMutable(): List; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): List; + } + + + /** + * Immutable Map is an unordered Iterable.Keyed of (key, value) pairs with + * `O(log32 N)` gets and `O(log32 N)` persistent sets. + * + * Iteration order of a Map is undefined, however is stable. Multiple + * iterations of the same Map will iterate in the same order. + * + * Map's keys can be of any type, and use `Immutable.is` to determine key + * equality. This allows the use of any value (including NaN) as a key. + * + * Because `Immutable.is` returns equality based on value semantics, and + * Immutable collections are treated as values, any Immutable collection may + * be used as a key. + * + * Map().set(List.of(1), 'listofone').get(List.of(1)); + * // 'listofone' + * + * Any JavaScript object may be used as a key, however strict identity is used + * to evaluate key equality. Two similar looking objects will represent two + * different keys. + * + * Implemented by a hash-array mapped trie. + */ + export module Map { + + /** + * True if the provided value is a Map + */ + function isMap(maybeMap: any): boolean; + + /** + * Creates a new Map from alternating keys and values + */ + function of(...keyValues: any[]): Map; + } + + /** + * Creates a new Immutable Map. + * + * Created with the same key value pairs as the provided Iterable.Keyed or + * JavaScript Object or expects an Iterable of [K, V] tuple entries. + * + * var newMap = Map({key: "value"}); + * var newMap = Map([["key", "value"]]); + * + * Keep in mind, when using JS objects to construct Immutable Maps, that + * JavaScript Object properties are always strings, even if written in a + * quote-less shorthand, while Immutable Maps accept keys of any type. + * + * ```js + * var obj = { 1: "one" }; + * Object.keys(obj); // [ "1" ] + * obj["1"]; // "one" + * obj[1]; // "one" + * + * var map = Map(obj); + * map.get("1"); // "one" + * map.get(1); // undefined + * ``` + * + * Property access for JavaScript Objects first converts the key to a string, + * but since Immutable Map keys can be of any type the argument to `get()` is + * not altered. + */ + export function Map(): Map; + export function Map(iter: Iterable.Keyed): Map; + export function Map(iter: Iterable>): Map; + export function Map(array: Array>): Map; + export function Map(obj: {[key: string]: V}): Map; + export function Map(iterator: Iterator>): Map; + export function Map(iterable: /*Iterable<[K,V]>*/Object): Map; + + export interface Map extends Collection.Keyed { + + // Persistent changes + + /** + * Returns a new Map also containing the new key, value pair. If an equivalent + * key already exists in this Map, it will be replaced. + */ + set(key: K, value: V): Map; + + /** + * Returns a new Map which excludes this `key`. + * + * Note: `delete` cannot be safely used in IE8, but is provided to mirror + * the ES6 collection API. + * @alias remove + */ + delete(key: K): Map; + remove(key: K): Map; + + /** + * Returns a new Map containing no keys or values. + */ + clear(): Map; + + /** + * Returns a new Map having updated the value at this `key` with the return + * value of calling `updater` with the existing value, or `notSetValue` if + * the key was not set. If called with only a single argument, `updater` is + * called with the Map itself. + * + * Equivalent to: `map.set(key, updater(map.get(key, notSetValue)))`. + */ + update(updater: (value: Map) => Map): Map; + update(key: K, updater: (value: V) => V): Map; + update(key: K, notSetValue: V, updater: (value: V) => V): Map; + + /** + * Returns a new Map resulting from merging the provided Iterables + * (or JS objects) into this Map. In other words, this takes each entry of + * each iterable and sets it on this Map. + * + * If any of the values provided to `merge` are not Iterable (would return + * false for `Immutable.Iterable.isIterable`) then they are deeply converted + * via `Immutable.fromJS` before being merged. However, if the value is an + * Iterable but includes non-iterable JS objects or arrays, those nested + * values will be preserved. + * + * var x = Immutable.Map({a: 10, b: 20, c: 30}); + * var y = Immutable.Map({b: 40, a: 50, d: 60}); + * x.merge(y) // { a: 50, b: 40, c: 30, d: 60 } + * y.merge(x) // { b: 20, a: 10, d: 60, c: 30 } + * + */ + merge(...iterables: Iterable[]): Map; + merge(...iterables: {[key: string]: V}[]): Map; + + /** + * Like `merge()`, `mergeWith()` returns a new Map resulting from merging + * the provided Iterables (or JS objects) into this Map, but uses the + * `merger` function for dealing with conflicts. + * + * var x = Immutable.Map({a: 10, b: 20, c: 30}); + * var y = Immutable.Map({b: 40, a: 50, d: 60}); + * x.mergeWith((prev, next) => prev / next, y) // { a: 0.2, b: 0.5, c: 30, d: 60 } + * y.mergeWith((prev, next) => prev / next, x) // { b: 2, a: 5, d: 60, c: 30 } + * + */ + mergeWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: Iterable[] + ): Map; + mergeWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: {[key: string]: V}[] + ): Map; + + /** + * Like `merge()`, but when two Iterables conflict, it merges them as well, + * recursing deeply through the nested data. + * + * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); + * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); + * x.mergeDeep(y) // {a: { x: 2, y: 10 }, b: { x: 20, y: 5 }, c: { z: 3 } } + * + */ + mergeDeep(...iterables: Iterable[]): Map; + mergeDeep(...iterables: {[key: string]: V}[]): Map; + + /** + * Like `mergeDeep()`, but when two non-Iterables conflict, it uses the + * `merger` function to determine the resulting value. + * + * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); + * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); + * x.mergeDeepWith((prev, next) => prev / next, y) + * // {a: { x: 5, y: 10 }, b: { x: 20, y: 10 }, c: { z: 3 } } + * + */ + mergeDeepWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: Iterable[] + ): Map; + mergeDeepWith( + merger: (previous?: V, next?: V, key?: K) => V, + ...iterables: {[key: string]: V}[] + ): Map; + + + // Deep persistent changes + + /** + * Returns a new Map having set `value` at this `keyPath`. If any keys in + * `keyPath` do not exist, a new immutable Map will be created at that key. + */ + setIn(keyPath: Array, value: any): Map; + setIn(KeyPath: Iterable, value: any): Map; + + /** + * Returns a new Map having removed the value at this `keyPath`. If any keys + * in `keyPath` do not exist, no change will occur. + * + * @alias removeIn + */ + deleteIn(keyPath: Array): Map; + deleteIn(keyPath: Iterable): Map; + removeIn(keyPath: Array): Map; + removeIn(keyPath: Iterable): Map; + + /** + * Returns a new Map having applied the `updater` to the entry found at the + * keyPath. + * + * If any keys in `keyPath` do not exist, new Immutable `Map`s will + * be created at those keys. If the `keyPath` does not already contain a + * value, the `updater` function will be called with `notSetValue`, if + * provided, otherwise `undefined`. + * + * var data = Immutable.fromJS({ a: { b: { c: 10 } } }); + * data = data.updateIn(['a', 'b', 'c'], val => val * 2); + * // { a: { b: { c: 20 } } } + * + * If the `updater` function returns the same value it was called with, then + * no change will occur. This is still true if `notSetValue` is provided. + * + * var data1 = Immutable.fromJS({ a: { b: { c: 10 } } }); + * data2 = data1.updateIn(['x', 'y', 'z'], 100, val => val); + * assert(data2 === data1); + * + */ + updateIn( + keyPath: Array, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Array, + notSetValue: any, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Iterable, + updater: (value: any) => any + ): Map; + updateIn( + keyPath: Iterable, + notSetValue: any, + updater: (value: any) => any + ): Map; + + /** + * A combination of `updateIn` and `merge`, returning a new Map, but + * performing the merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); + * x.mergeIn(['a', 'b', 'c'], y); + * + */ + mergeIn( + keyPath: Iterable, + ...iterables: Iterable[] + ): Map; + mergeIn( + keyPath: Array, + ...iterables: Iterable[] + ): Map; + mergeIn( + keyPath: Array, + ...iterables: {[key: string]: V}[] + ): Map; + + /** + * A combination of `updateIn` and `mergeDeep`, returning a new Map, but + * performing the deep merge at a point arrived at by following the keyPath. + * In other words, these two lines are equivalent: + * + * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); + * x.mergeDeepIn(['a', 'b', 'c'], y); + * + */ + mergeDeepIn( + keyPath: Iterable, + ...iterables: Iterable[] + ): Map; + mergeDeepIn( + keyPath: Array, + ...iterables: Iterable[] + ): Map; + mergeDeepIn( + keyPath: Array, + ...iterables: {[key: string]: V}[] + ): Map; + + + // Transient changes + + /** + * Every time you call one of the above functions, a new immutable Map is + * created. If a pure function calls a number of these to produce a final + * return value, then a penalty on performance and memory has been paid by + * creating all of the intermediate immutable Maps. + * + * If you need to apply a series of mutations to produce a new immutable + * Map, `withMutations()` creates a temporary mutable copy of the Map which + * can apply mutations in a highly performant manner. In fact, this is + * exactly how complex mutations like `merge` are done. + * + * As an example, this results in the creation of 2, not 4, new Maps: + * + * var map1 = Immutable.Map(); + * var map2 = map1.withMutations(map => { + * map.set('a', 1).set('b', 2).set('c', 3); + * }); + * assert(map1.size === 0); + * assert(map2.size === 3); + * + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set` and `merge` may be used mutatively. + * + */ + withMutations(mutator: (mutable: Map) => any): Map; + + /** + * Another way to avoid creation of intermediate Immutable maps is to create + * a mutable copy of this collection. Mutable copies *always* return `this`, + * and thus shouldn't be used for equality. Your function should never return + * a mutable copy of a collection, only use it internally to create a new + * collection. If possible, use `withMutations` as it provides an easier to + * use API. + * + * Note: if the collection is already mutable, `asMutable` returns itself. + * + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set` and `merge` may be used mutatively. + */ + asMutable(): Map; + + /** + * The yin to `asMutable`'s yang. Because it applies to mutable collections, + * this operation is *mutable* and returns itself. Once performed, the mutable + * copy has become immutable and can be safely returned from a function. + */ + asImmutable(): Map; + } + + + /** + * A type of Map that has the additional guarantee that the iteration order of + * entries will be the order in which they were set(). + * + * The iteration behavior of OrderedMap is the same as native ES6 Map and + * JavaScript Object. + * + * Note that `OrderedMap` are more expensive than non-ordered `Map` and may + * consume more memory. `OrderedMap#set` is amortized O(log32 N), but not + * stable. + */ + + export module OrderedMap { + + /** + * True if the provided value is an OrderedMap. + */ + function isOrderedMap(maybeOrderedMap: any): boolean; + } + + /** + * Creates a new Immutable OrderedMap. + * + * Created with the same key value pairs as the provided Iterable.Keyed or + * JavaScript Object or expects an Iterable of [K, V] tuple entries. + * + * The iteration order of key-value pairs provided to this constructor will + * be preserved in the OrderedMap. + * + * var newOrderedMap = OrderedMap({key: "value"}); + * var newOrderedMap = OrderedMap([["key", "value"]]); + * + */ + export function OrderedMap(): OrderedMap; + export function OrderedMap(iter: Iterable.Keyed): OrderedMap; + export function OrderedMap(iter: Iterable>): OrderedMap; + export function OrderedMap(array: Array>): OrderedMap; + export function OrderedMap(obj: {[key: string]: V}): OrderedMap; + export function OrderedMap(iterator: Iterator>): OrderedMap; + export function OrderedMap(iterable: /*Iterable<[K,V]>*/Object): OrderedMap; + + export interface OrderedMap extends Map {} + + + /** + * A Collection of unique values with `O(log32 N)` adds and has. + * + * When iterating a Set, the entries will be (value, value) pairs. Iteration + * order of a Set is undefined, however is stable. Multiple iterations of the + * same Set will iterate in the same order. + * + * Set values, like Map keys, may be of any type. Equality is determined using + * `Immutable.is`, enabling Sets to uniquely include other Immutable + * collections, custom value types, and NaN. + */ + export module Set { + + /** + * True if the provided value is a Set + */ + function isSet(maybeSet: any): boolean; + + /** + * Creates a new Set containing `values`. + */ + function of(...values: T[]): Set; + + /** + * `Set.fromKeys()` creates a new immutable Set containing the keys from + * this Iterable or JavaScript Object. + */ + function fromKeys(iter: Iterable): Set; + function fromKeys(obj: {[key: string]: any}): Set; + } + + /** + * Create a new immutable Set containing the values of the provided + * iterable-like. + */ + export function Set(): Set; + export function Set(iter: Iterable.Set): Set; + export function Set(iter: Iterable.Indexed): Set; + export function Set(iter: Iterable.Keyed): Set; + export function Set(array: Array): Set; + export function Set(iterator: Iterator): Set; + export function Set(iterable: /*Iterable*/Object): Set; + + export interface Set extends Collection.Set { + + // Persistent changes + + /** + * Returns a new Set which also includes this value. + */ + add(value: T): Set; + + /** + * Returns a new Set which excludes this value. + * + * Note: `delete` cannot be safely used in IE8 + * @alias remove + */ + delete(value: T): Set; + remove(value: T): Set; + + /** + * Returns a new Set containing no values. + */ + clear(): Set; + + /** + * Returns a Set including any value from `iterables` that does not already + * exist in this Set. + * @alias merge + */ + union(...iterables: Iterable[]): Set; + union(...iterables: Array[]): Set; + merge(...iterables: Iterable[]): Set; + merge(...iterables: Array[]): Set; + + + /** + * Returns a Set which has removed any values not also contained + * within `iterables`. + */ + intersect(...iterables: Iterable[]): Set; + intersect(...iterables: Array[]): Set; + + /** + * Returns a Set excluding any values contained within `iterables`. + */ + subtract(...iterables: Iterable[]): Set; + subtract(...iterables: Array[]): Set; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `add` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: Set) => any): Set; + + /** + * @see `Map#asMutable` + */ + asMutable(): Set; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): Set; + } + + + /** + * A type of Set that has the additional guarantee that the iteration order of + * values will be the order in which they were `add`ed. + * + * The iteration behavior of OrderedSet is the same as native ES6 Set. + * + * Note that `OrderedSet` are more expensive than non-ordered `Set` and may + * consume more memory. `OrderedSet#add` is amortized O(log32 N), but not + * stable. + */ + export module OrderedSet { + + /** + * True if the provided value is an OrderedSet. + */ + function isOrderedSet(maybeOrderedSet: any): boolean; + + /** + * Creates a new OrderedSet containing `values`. + */ + function of(...values: T[]): OrderedSet; + + /** + * `OrderedSet.fromKeys()` creates a new immutable OrderedSet containing + * the keys from this Iterable or JavaScript Object. + */ + function fromKeys(iter: Iterable): OrderedSet; + function fromKeys(obj: {[key: string]: any}): OrderedSet; + } + + /** + * Create a new immutable OrderedSet containing the values of the provided + * iterable-like. + */ + export function OrderedSet(): OrderedSet; + export function OrderedSet(iter: Iterable.Set): OrderedSet; + export function OrderedSet(iter: Iterable.Indexed): OrderedSet; + export function OrderedSet(iter: Iterable.Keyed): OrderedSet; + export function OrderedSet(array: Array): OrderedSet; + export function OrderedSet(iterator: Iterator): OrderedSet; + export function OrderedSet(iterable: /*Iterable*/Object): OrderedSet; + + export interface OrderedSet extends Set {} + + + /** + * Stacks are indexed collections which support very efficient O(1) addition + * and removal from the front using `unshift(v)` and `shift()`. + * + * For familiarity, Stack also provides `push(v)`, `pop()`, and `peek()`, but + * be aware that they also operate on the front of the list, unlike List or + * a JavaScript Array. + * + * Note: `reverse()` or any inherent reverse traversal (`reduceRight`, + * `lastIndexOf`, etc.) is not efficient with a Stack. + * + * Stack is implemented with a Single-Linked List. + */ + export module Stack { + + /** + * True if the provided value is a Stack + */ + function isStack(maybeStack: any): boolean; + + /** + * Creates a new Stack containing `values`. + */ + function of(...values: T[]): Stack; + } + + /** + * Create a new immutable Stack containing the values of the provided + * iterable-like. + * + * The iteration order of the provided iterable is preserved in the + * resulting `Stack`. + */ + export function Stack(): Stack; + export function Stack(iter: Iterable.Indexed): Stack; + export function Stack(iter: Iterable.Set): Stack; + export function Stack(iter: Iterable.Keyed): Stack; + export function Stack(array: Array): Stack; + export function Stack(iterator: Iterator): Stack; + export function Stack(iterable: /*Iterable*/Object): Stack; + + export interface Stack extends Collection.Indexed { + + // Reading values + + /** + * Alias for `Stack.first()`. + */ + peek(): T; + + + // Persistent changes + + /** + * Returns a new Stack with 0 size and no values. + */ + clear(): Stack; + + /** + * Returns a new Stack with the provided `values` prepended, shifting other + * values ahead to higher indices. + * + * This is very efficient for Stack. + */ + unshift(...values: T[]): Stack; + + /** + * Like `Stack#unshift`, but accepts a iterable rather than varargs. + */ + unshiftAll(iter: Iterable): Stack; + unshiftAll(iter: Array): Stack; + + /** + * Returns a new Stack with a size ones less than this Stack, excluding + * the first item in this Stack, shifting all other values to a lower index. + * + * Note: this differs from `Array#shift` because it returns a new + * Stack rather than the removed value. Use `first()` or `peek()` to get the + * first value in this Stack. + */ + shift(): Stack; + + /** + * Alias for `Stack#unshift` and is not equivalent to `List#push`. + */ + push(...values: T[]): Stack; + + /** + * Alias for `Stack#unshiftAll`. + */ + pushAll(iter: Iterable): Stack; + pushAll(iter: Array): Stack; + + /** + * Alias for `Stack#shift` and is not equivalent to `List#pop`. + */ + pop(): Stack; + + + // Transient changes + + /** + * Note: Not all methods can be used on a mutable collection or within + * `withMutations`! Only `set`, `push`, and `pop` may be used mutatively. + * + * @see `Map#withMutations` + */ + withMutations(mutator: (mutable: Stack) => any): Stack; + + /** + * @see `Map#asMutable` + */ + asMutable(): Stack; + + /** + * @see `Map#asImmutable` + */ + asImmutable(): Stack; + } + + + /** + * Returns a Seq.Indexed of numbers from `start` (inclusive) to `end` + * (exclusive), by `step`, where `start` defaults to 0, `step` to 1, and `end` to + * infinity. When `start` is equal to `end`, returns empty range. + * + * Range() // [0,1,2,3,...] + * Range(10) // [10,11,12,13,...] + * Range(10,15) // [10,11,12,13,14] + * Range(10,30,5) // [10,15,20,25] + * Range(30,10,5) // [30,25,20,15] + * Range(30,30,5) // [] + * + */ + export function Range(start?: number, end?: number, step?: number): Seq.Indexed; + + + /** + * Returns a Seq.Indexed of `value` repeated `times` times. When `times` is + * not defined, returns an infinite `Seq` of `value`. + * + * Repeat('foo') // ['foo','foo','foo',...] + * Repeat('bar',4) // ['bar','bar','bar','bar'] + * + */ + export function Repeat(value: T, times?: number): Seq.Indexed; + + + /** + * Creates a new Class which produces Record instances. A record is similar to + * a JS object, but enforce a specific set of allowed string keys, and have + * default values. + * + * var ABRecord = Record({a:1, b:2}) + * var myRecord = new ABRecord({b:3}) + * + * Records always have a value for the keys they define. `remove`ing a key + * from a record simply resets it to the default value for that key. + * + * myRecord.size // 2 + * myRecord.get('a') // 1 + * myRecord.get('b') // 3 + * myRecordWithoutB = myRecord.remove('b') + * myRecordWithoutB.get('b') // 2 + * myRecordWithoutB.size // 2 + * + * Values provided to the constructor not found in the Record type will + * be ignored. For example, in this case, ABRecord is provided a key "x" even + * though only "a" and "b" have been defined. The value for "x" will be + * ignored for this record. + * + * var myRecord = new ABRecord({b:3, x:10}) + * myRecord.get('x') // undefined + * + * Because Records have a known set of string keys, property get access works + * as expected, however property sets will throw an Error. + * + * Note: IE8 does not support property access. Only use `get()` when + * supporting IE8. + * + * myRecord.b // 3 + * myRecord.b = 5 // throws Error + * + * Record Classes can be extended as well, allowing for custom methods on your + * Record. This is not a common pattern in functional environments, but is in + * many JS programs. + * + * Note: TypeScript does not support this type of subclassing. + * + * class ABRecord extends Record({a:1,b:2}) { + * getAB() { + * return this.a + this.b; + * } + * } + * + * var myRecord = new ABRecord({b: 3}) + * myRecord.getAB() // 4 + * + */ + export module Record { + export interface Class { + new (): Map; + new (values: {[key: string]: any}): Map; + new (values: Iterable): Map; // deprecated + + (): Map; + (values: {[key: string]: any}): Map; + (values: Iterable): Map; // deprecated + } + } + + export function Record( + defaultValues: {[key: string]: any}, name?: string + ): Record.Class; + + + /** + * Represents a sequence of values, but may not be backed by a concrete data + * structure. + * + * **Seq is immutable** — Once a Seq is created, it cannot be + * changed, appended to, rearranged or otherwise modified. Instead, any + * mutative method called on a `Seq` will return a new `Seq`. + * + * **Seq is lazy** — Seq does as little work as necessary to respond to any + * method call. Values are often created during iteration, including implicit + * iteration when reducing or converting to a concrete data structure such as + * a `List` or JavaScript `Array`. + * + * For example, the following performs no work, because the resulting + * Seq's values are never iterated: + * + * var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) + * .filter(x => x % 2).map(x => x * x); + * + * Once the Seq is used, it performs only the work necessary. In this + * example, no intermediate data structures are ever created, filter is only + * called three times, and map is only called once: + * + * console.log(oddSquares.get(1)); // 9 + * + * Seq allows for the efficient chaining of operations, + * allowing for the expression of logic that can otherwise be very tedious: + * + * Immutable.Seq({a:1, b:1, c:1}) + * .flip().map(key => key.toUpperCase()).flip().toObject(); + * // Map { A: 1, B: 1, C: 1 } + * + * As well as expressing logic that would otherwise be memory or time limited: + * + * Immutable.Range(1, Infinity) + * .skip(1000) + * .map(n => -n) + * .filter(n => n % 2 === 0) + * .take(2) + * .reduce((r, n) => r * n, 1); + * // 1006008 + * + * Seq is often used to provide a rich collection API to JavaScript Object. + * + * Immutable.Seq({ x: 0, y: 1, z: 2 }).map(v => v * 2).toObject(); + * // { x: 0, y: 2, z: 4 } + */ + + export module Seq { + /** + * True if `maybeSeq` is a Seq, it is not backed by a concrete + * structure such as Map, List, or Set. + */ + function isSeq(maybeSeq: any): boolean; + + /** + * Returns a Seq of the values provided. Alias for `Seq.Indexed.of()`. + */ + function of(...values: T[]): Seq.Indexed; + + + /** + * `Seq` which represents key-value pairs. + */ + export module Keyed {} + + /** + * Always returns a Seq.Keyed, if input is not keyed, expects an + * iterable of [K, V] tuples. + */ + export function Keyed(): Seq.Keyed; + export function Keyed(seq: Iterable.Keyed): Seq.Keyed; + export function Keyed(seq: Iterable): Seq.Keyed; + export function Keyed(array: Array): Seq.Keyed; + export function Keyed(obj: {[key: string]: V}): Seq.Keyed; + export function Keyed(iterator: Iterator): Seq.Keyed; + export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Seq.Keyed; + + export interface Keyed extends Seq, Iterable.Keyed { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Keyed + } + + + /** + * `Seq` which represents an ordered indexed list of values. + */ + module Indexed { + + /** + * Provides an Seq.Indexed of the values provided. + */ + function of(...values: T[]): Seq.Indexed; + } + + /** + * Always returns Seq.Indexed, discarding associated keys and + * supplying incrementing indices. + */ + export function Indexed(): Seq.Indexed; + export function Indexed(seq: Iterable.Indexed): Seq.Indexed; + export function Indexed(seq: Iterable.Set): Seq.Indexed; + export function Indexed(seq: Iterable.Keyed): Seq.Indexed; + export function Indexed(array: Array): Seq.Indexed; + export function Indexed(iterator: Iterator): Seq.Indexed; + export function Indexed(iterable: /*Iterable*/Object): Seq.Indexed; + + export interface Indexed extends Seq, Iterable.Indexed { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Indexed + } + + + /** + * `Seq` which represents a set of values. + * + * Because `Seq` are often lazy, `Seq.Set` does not provide the same guarantee + * of value uniqueness as the concrete `Set`. + */ + export module Set { + + /** + * Returns a Seq.Set of the provided values + */ + function of(...values: T[]): Seq.Set; + } + + /** + * Always returns a Seq.Set, discarding associated indices or keys. + */ + export function Set(): Seq.Set; + export function Set(seq: Iterable.Set): Seq.Set; + export function Set(seq: Iterable.Indexed): Seq.Set; + export function Set(seq: Iterable.Keyed): Seq.Set; + export function Set(array: Array): Seq.Set; + export function Set(iterator: Iterator): Seq.Set; + export function Set(iterable: /*Iterable*/Object): Seq.Set; + + export interface Set extends Seq, Iterable.Set { + + /** + * Returns itself + */ + toSeq(): /*this*/Seq.Set + } + + } + + /** + * Creates a Seq. + * + * Returns a particular kind of `Seq` based on the input. + * + * * If a `Seq`, that same `Seq`. + * * If an `Iterable`, a `Seq` of the same kind (Keyed, Indexed, or Set). + * * If an Array-like, an `Seq.Indexed`. + * * If an Object with an Iterator, an `Seq.Indexed`. + * * If an Iterator, an `Seq.Indexed`. + * * If an Object, a `Seq.Keyed`. + * + */ + export function Seq(): Seq; + export function Seq(seq: Seq): Seq; + export function Seq(iterable: Iterable): Seq; + export function Seq(array: Array): Seq.Indexed; + export function Seq(obj: {[key: string]: V}): Seq.Keyed; + export function Seq(iterator: Iterator): Seq.Indexed; + export function Seq(iterable: /*ES6Iterable*/Object): Seq.Indexed; + + export interface Seq extends Iterable { + + /** + * Some Seqs can describe their size lazily. When this is the case, + * size will be an integer. Otherwise it will be undefined. + * + * For example, Seqs returned from `map()` or `reverse()` + * preserve the size of the original `Seq` while `filter()` does not. + * + * Note: `Range`, `Repeat` and `Seq`s made from `Array`s and `Object`s will + * always have a size. + */ + size: number/*?*/; + + + // Force evaluation + + /** + * Because Sequences are lazy and designed to be chained together, they do + * not cache their results. For example, this map function is called a total + * of 6 times, as each `join` iterates the Seq of three values. + * + * var squares = Seq.of(1,2,3).map(x => x * x); + * squares.join() + squares.join(); + * + * If you know a `Seq` will be used multiple times, it may be more + * efficient to first cache it in memory. Here, the map function is called + * only 3 times. + * + * var squares = Seq.of(1,2,3).map(x => x * x).cacheResult(); + * squares.join() + squares.join(); + * + * Use this method judiciously, as it must fully evaluate a Seq which can be + * a burden on memory and possibly performance. + * + * Note: after calling `cacheResult`, a Seq will always have a `size`. + */ + cacheResult(): /*this*/Seq; + } + + /** + * The `Iterable` is a set of (key, value) entries which can be iterated, and + * is the base class for all collections in `immutable`, allowing them to + * make use of all the Iterable methods (such as `map` and `filter`). + * + * Note: An iterable is always iterated in the same order, however that order + * may not always be well defined, as is the case for the `Map` and `Set`. + */ + export module Iterable { + /** + * True if `maybeIterable` is an Iterable, or any of its subclasses. + */ + function isIterable(maybeIterable: any): boolean; + + /** + * True if `maybeKeyed` is an Iterable.Keyed, or any of its subclasses. + */ + function isKeyed(maybeKeyed: any): boolean; + + /** + * True if `maybeIndexed` is a Iterable.Indexed, or any of its subclasses. + */ + function isIndexed(maybeIndexed: any): boolean; + + /** + * True if `maybeAssociative` is either a keyed or indexed Iterable. + */ + function isAssociative(maybeAssociative: any): boolean; + + /** + * True if `maybeOrdered` is an Iterable where iteration order is well + * defined. True for Iterable.Indexed as well as OrderedMap and OrderedSet. + */ + function isOrdered(maybeOrdered: any): boolean; + + + /** + * Keyed Iterables have discrete keys tied to each value. + * + * When iterating `Iterable.Keyed`, each iteration will yield a `[K, V]` + * tuple, in other words, `Iterable#entries` is the default iterator for + * Keyed Iterables. + */ + export module Keyed {} + + /** + * Creates an Iterable.Keyed + * + * Similar to `Iterable()`, however it expects iterable-likes of [K, V] + * tuples if not constructed from a Iterable.Keyed or JS Object. + */ + export function Keyed(iter: Iterable.Keyed): Iterable.Keyed; + export function Keyed(iter: Iterable): Iterable.Keyed; + export function Keyed(array: Array): Iterable.Keyed; + export function Keyed(obj: {[key: string]: V}): Iterable.Keyed; + export function Keyed(iterator: Iterator): Iterable.Keyed; + export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Iterable.Keyed; + + export interface Keyed extends Iterable { + + /** + * Returns Seq.Keyed. + * @override + */ + toSeq(): Seq.Keyed; + + + // Sequence functions + + /** + * Returns a new Iterable.Keyed of the same type where the keys and values + * have been flipped. + * + * Seq({ a: 'z', b: 'y' }).flip() // { z: 'a', y: 'b' } + * + */ + flip(): /*this*/Iterable.Keyed; + + /** + * Returns a new Iterable.Keyed of the same type with keys passed through + * a `mapper` function. + * + * Seq({ a: 1, b: 2 }) + * .mapKeys(x => x.toUpperCase()) + * // Seq { A: 1, B: 2 } + * + */ + mapKeys( + mapper: (key?: K, value?: V, iter?: /*this*/Iterable.Keyed) => M, + context?: any + ): /*this*/Iterable.Keyed; + + /** + * Returns a new Iterable.Keyed of the same type with entries + * ([key, value] tuples) passed through a `mapper` function. + * + * Seq({ a: 1, b: 2 }) + * .mapEntries(([k, v]) => [k.toUpperCase(), v * 2]) + * // Seq { A: 2, B: 4 } + * + */ + mapEntries( + mapper: ( + entry?: /*(K, V)*/Array, + index?: number, + iter?: /*this*/Iterable.Keyed + ) => /*[KM, VM]*/Array, + context?: any + ): /*this*/Iterable.Keyed; + } + + + /** + * Indexed Iterables have incrementing numeric keys. They exhibit + * slightly different behavior than `Iterable.Keyed` for some methods in order + * to better mirror the behavior of JavaScript's `Array`, and add methods + * which do not make sense on non-indexed Iterables such as `indexOf`. + * + * Unlike JavaScript arrays, `Iterable.Indexed`s are always dense. "Unset" + * indices and `undefined` indices are indistinguishable, and all indices from + * 0 to `size` are visited when iterated. + * + * All Iterable.Indexed methods return re-indexed Iterables. In other words, + * indices always start at 0 and increment until size. If you wish to + * preserve indices, using them as keys, convert to a Iterable.Keyed by + * calling `toKeyedSeq`. + */ + export module Indexed {} + + /** + * Creates a new Iterable.Indexed. + */ + export function Indexed(iter: Iterable.Indexed): Iterable.Indexed; + export function Indexed(iter: Iterable.Set): Iterable.Indexed; + export function Indexed(iter: Iterable.Keyed): Iterable.Indexed; + export function Indexed(array: Array): Iterable.Indexed; + export function Indexed(iterator: Iterator): Iterable.Indexed; + export function Indexed(iterable: /*Iterable*/Object): Iterable.Indexed; + + export interface Indexed extends Iterable { + + // Reading values + + /** + * Returns the value associated with the provided index, or notSetValue if + * the index is beyond the bounds of the Iterable. + * + * `index` may be a negative number, which indexes back from the end of the + * Iterable. `s.get(-1)` gets the last item in the Iterable. + */ + get(index: number, notSetValue?: T): T; + + + // Conversion to Seq + + /** + * Returns Seq.Indexed. + * @override + */ + toSeq(): Seq.Indexed; + + /** + * If this is an iterable of [key, value] entry tuples, it will return a + * Seq.Keyed of those entries. + */ + fromEntrySeq(): Seq.Keyed; + + + // Combination + + /** + * Returns an Iterable of the same type with `separator` between each item + * in this Iterable. + */ + interpose(separator: T): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type with the provided `iterables` + * interleaved into this iterable. + * + * The resulting Iterable includes the first item from each, then the + * second from each, etc. + * + * I.Seq.of(1,2,3).interleave(I.Seq.of('A','B','C')) + * // Seq [ 1, 'A', 2, 'B', 3, 'C' ] + * + * The shortest Iterable stops interleave. + * + * I.Seq.of(1,2,3).interleave( + * I.Seq.of('A','B'), + * I.Seq.of('X','Y','Z') + * ) + * // Seq [ 1, 'A', 'X', 2, 'B', 'Y' ] + */ + interleave(...iterables: Array>): /*this*/Iterable.Indexed; + + /** + * Splice returns a new indexed Iterable by replacing a region of this + * Iterable with new values. If values are not provided, it only skips the + * region to be removed. + * + * `index` may be a negative number, which indexes back from the end of the + * Iterable. `s.splice(-2)` splices after the second to last item. + * + * Seq(['a','b','c','d']).splice(1, 2, 'q', 'r', 's') + * // Seq ['a', 'q', 'r', 's', 'd'] + * + */ + splice( + index: number, + removeNum: number, + ...values: /*Array | T>*/any[] + ): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type "zipped" with the provided + * iterables. + * + * Like `zipWith`, but using the default `zipper`: creating an `Array`. + * + * var a = Seq.of(1, 2, 3); + * var b = Seq.of(4, 5, 6); + * var c = a.zip(b); // Seq [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] + * + */ + zip(...iterables: Array>): /*this*/Iterable.Indexed; + + /** + * Returns an Iterable of the same type "zipped" with the provided + * iterables by using a custom `zipper` function. + * + * var a = Seq.of(1, 2, 3); + * var b = Seq.of(4, 5, 6); + * var c = a.zipWith((a, b) => a + b, b); // Seq [ 5, 7, 9 ] + * + */ + zipWith( + zipper: (value: T, otherValue: U) => Z, + otherIterable: Iterable + ): Iterable.Indexed; + zipWith( + zipper: (value: T, otherValue: U, thirdValue: V) => Z, + otherIterable: Iterable, + thirdIterable: Iterable + ): Iterable.Indexed; + zipWith( + zipper: (...any: Array) => Z, + ...iterables: Array> + ): Iterable.Indexed; + + + // Search for value + + /** + * Returns the first index at which a given value can be found in the + * Iterable, or -1 if it is not present. + */ + indexOf(searchValue: T): number; + + /** + * Returns the last index at which a given value can be found in the + * Iterable, or -1 if it is not present. + */ + lastIndexOf(searchValue: T): number; + + /** + * Returns the first index in the Iterable where a value satisfies the + * provided predicate function. Otherwise -1 is returned. + */ + findIndex( + predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, + context?: any + ): number; + + /** + * Returns the last index in the Iterable where a value satisfies the + * provided predicate function. Otherwise -1 is returned. + */ + findLastIndex( + predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, + context?: any + ): number; + } + + + /** + * Set Iterables only represent values. They have no associated keys or + * indices. Duplicate values are possible in Seq.Sets, however the + * concrete `Set` does not allow duplicate values. + * + * Iterable methods on Iterable.Set such as `map` and `forEach` will provide + * the value as both the first and second arguments to the provided function. + * + * var seq = Seq.Set.of('A', 'B', 'C'); + * assert.equal(seq.every((v, k) => v === k), true); + * + */ + export module Set {} + + /** + * Similar to `Iterable()`, but always returns a Iterable.Set. + */ + export function Set(iter: Iterable.Set): Iterable.Set; + export function Set(iter: Iterable.Indexed): Iterable.Set; + export function Set(iter: Iterable.Keyed): Iterable.Set; + export function Set(array: Array): Iterable.Set; + export function Set(iterator: Iterator): Iterable.Set; + export function Set(iterable: /*Iterable*/Object): Iterable.Set; + + export interface Set extends Iterable { + + /** + * Returns Seq.Set. + * @override + */ + toSeq(): Seq.Set; + } + + } + + /** + * Creates an Iterable. + * + * The type of Iterable created is based on the input. + * + * * If an `Iterable`, that same `Iterable`. + * * If an Array-like, an `Iterable.Indexed`. + * * If an Object with an Iterator, an `Iterable.Indexed`. + * * If an Iterator, an `Iterable.Indexed`. + * * If an Object, an `Iterable.Keyed`. + * + * This methods forces the conversion of Objects and Strings to Iterables. + * If you want to ensure that a Iterable of one item is returned, use + * `Seq.of`. + */ + export function Iterable(iterable: Iterable): Iterable; + export function Iterable(array: Array): Iterable.Indexed; + export function Iterable(obj: {[key: string]: V}): Iterable.Keyed; + export function Iterable(iterator: Iterator): Iterable.Indexed; + export function Iterable(iterable: /*ES6Iterable*/Object): Iterable.Indexed; + export function Iterable(value: V): Iterable.Indexed; + + export interface Iterable { + + // Value equality + + /** + * True if this and the other Iterable have value equality, as defined + * by `Immutable.is()`. + * + * Note: This is equivalent to `Immutable.is(this, other)`, but provided to + * allow for chained expressions. + */ + equals(other: Iterable): boolean; + + /** + * Computes and returns the hashed identity for this Iterable. + * + * The `hashCode` of an Iterable is used to determine potential equality, + * and is used when adding this to a `Set` or as a key in a `Map`, enabling + * lookup via a different instance. + * + * var a = List.of(1, 2, 3); + * var b = List.of(1, 2, 3); + * assert(a !== b); // different instances + * var set = Set.of(a); + * assert(set.has(b) === true); + * + * If two values have the same `hashCode`, they are [not guaranteed + * to be equal][Hash Collision]. If two values have different `hashCode`s, + * they must not be equal. + * + * [Hash Collision]: http://en.wikipedia.org/wiki/Collision_(computer_science) + */ + hashCode(): number; + + + // Reading values + + /** + * Returns the value associated with the provided key, or notSetValue if + * the Iterable does not contain this key. + * + * Note: it is possible a key may be associated with an `undefined` value, + * so if `notSetValue` is not provided and this method returns `undefined`, + * that does not guarantee the key was not found. + */ + get(key: K, notSetValue?: V): V; + + /** + * True if a key exists within this `Iterable`, using `Immutable.is` to determine equality + */ + has(key: K): boolean; + + /** + * True if a value exists within this `Iterable`, using `Immutable.is` to determine equality + * @alias contains + */ + includes(value: V): boolean; + contains(value: V): boolean; + + /** + * The first value in the Iterable. + */ + first(): V; + + /** + * The last value in the Iterable. + */ + last(): V; + + + // Reading deep values + + /** + * Returns the value found by following a path of keys or indices through + * nested Iterables. + */ + getIn(searchKeyPath: Array, notSetValue?: any): any; + getIn(searchKeyPath: Iterable, notSetValue?: any): any; + + /** + * True if the result of following a path of keys or indices through nested + * Iterables results in a set value. + */ + hasIn(searchKeyPath: Array): boolean; + hasIn(searchKeyPath: Iterable): boolean; + + + // Conversion to JavaScript types + + /** + * Deeply converts this Iterable to equivalent JS. + * + * `Iterable.Indexeds`, and `Iterable.Sets` become Arrays, while + * `Iterable.Keyeds` become Objects. + * + * @alias toJSON + */ + toJS(): any; + + /** + * Shallowly converts this iterable to an Array, discarding keys. + */ + toArray(): Array; + + /** + * Shallowly converts this Iterable to an Object. + * + * Throws if keys are not strings. + */ + toObject(): { [key: string]: V }; + + + // Conversion to Collections + + /** + * Converts this Iterable to a Map, Throws if keys are not hashable. + * + * Note: This is equivalent to `Map(this.toKeyedSeq())`, but provided + * for convenience and to allow for chained expressions. + */ + toMap(): Map; + + /** + * Converts this Iterable to a Map, maintaining the order of iteration. + * + * Note: This is equivalent to `OrderedMap(this.toKeyedSeq())`, but + * provided for convenience and to allow for chained expressions. + */ + toOrderedMap(): OrderedMap; + + /** + * Converts this Iterable to a Set, discarding keys. Throws if values + * are not hashable. + * + * Note: This is equivalent to `Set(this)`, but provided to allow for + * chained expressions. + */ + toSet(): Set; + + /** + * Converts this Iterable to a Set, maintaining the order of iteration and + * discarding keys. + * + * Note: This is equivalent to `OrderedSet(this.valueSeq())`, but provided + * for convenience and to allow for chained expressions. + */ + toOrderedSet(): OrderedSet; + + /** + * Converts this Iterable to a List, discarding keys. + * + * Note: This is equivalent to `List(this)`, but provided to allow + * for chained expressions. + */ + toList(): List; + + /** + * Converts this Iterable to a Stack, discarding keys. Throws if values + * are not hashable. + * + * Note: This is equivalent to `Stack(this)`, but provided to allow for + * chained expressions. + */ + toStack(): Stack; + + + // Conversion to Seq + + /** + * Converts this Iterable to a Seq of the same kind (indexed, + * keyed, or set). + */ + toSeq(): Seq; + + /** + * Returns a Seq.Keyed from this Iterable where indices are treated as keys. + * + * This is useful if you want to operate on an + * Iterable.Indexed and preserve the [index, value] pairs. + * + * The returned Seq will have identical iteration order as + * this Iterable. + * + * Example: + * + * var indexedSeq = Immutable.Seq.of('A', 'B', 'C'); + * indexedSeq.filter(v => v === 'B').toString() // Seq [ 'B' ] + * var keyedSeq = indexedSeq.toKeyedSeq(); + * keyedSeq.filter(v => v === 'B').toString() // Seq { 1: 'B' } + * + */ + toKeyedSeq(): Seq.Keyed; + + /** + * Returns an Seq.Indexed of the values of this Iterable, discarding keys. + */ + toIndexedSeq(): Seq.Indexed; + + /** + * Returns a Seq.Set of the values of this Iterable, discarding keys. + */ + toSetSeq(): Seq.Set; + + + // Iterators + + /** + * An iterator of this `Iterable`'s keys. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `keySeq` instead, if this is what you want. + */ + keys(): Iterator; + + /** + * An iterator of this `Iterable`'s values. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `valueSeq` instead, if this is what you want. + */ + values(): Iterator; + + /** + * An iterator of this `Iterable`'s entries as `[key, value]` tuples. + * + * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `entrySeq` instead, if this is what you want. + */ + entries(): Iterator>; + + + // Iterables (Seq) + + /** + * Returns a new Seq.Indexed of the keys of this Iterable, + * discarding values. + */ + keySeq(): Seq.Indexed; + + /** + * Returns an Seq.Indexed of the values of this Iterable, discarding keys. + */ + valueSeq(): Seq.Indexed; + + /** + * Returns a new Seq.Indexed of [key, value] tuples. + */ + entrySeq(): Seq.Indexed>; + + + // Sequence algorithms + + /** + * Returns a new Iterable of the same type with values passed through a + * `mapper` function. + * + * Seq({ a: 1, b: 2 }).map(x => 10 * x) + * // Seq { a: 10, b: 20 } + * + */ + map( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => M, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type with only the entries for which + * the `predicate` function returns true. + * + * Seq({a:1,b:2,c:3,d:4}).filter(x => x % 2 === 0) + * // Seq { b: 2, d: 4 } + * + */ + filter( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type with only the entries for which + * the `predicate` function returns false. + * + * Seq({a:1,b:2,c:3,d:4}).filterNot(x => x % 2 === 0) + * // Seq { a: 1, c: 3 } + * + */ + filterNot( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type in reverse order. + */ + reverse(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the same entries, + * stably sorted by using a `comparator`. + * + * If a `comparator` is not provided, a default comparator uses `<` and `>`. + * + * `comparator(valueA, valueB)`: + * + * * Returns `0` if the elements should not be swapped. + * * Returns `-1` (or any negative number) if `valueA` comes before `valueB` + * * Returns `1` (or any positive number) if `valueA` comes after `valueB` + * * Is pure, i.e. it must always return the same value for the same pair + * of values. + * + * When sorting collections which have no defined order, their ordered + * equivalents will be returned. e.g. `map.sort()` returns OrderedMap. + */ + sort(comparator?: (valueA: V, valueB: V) => number): /*this*/Iterable; + + /** + * Like `sort`, but also accepts a `comparatorValueMapper` which allows for + * sorting by more sophisticated means: + * + * hitters.sortBy(hitter => hitter.avgHits); + * + */ + sortBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): /*this*/Iterable; + + /** + * Returns a `Iterable.Keyed` of `Iterable.Keyeds`, grouped by the return + * value of the `grouper` function. + * + * Note: This is always an eager operation. + */ + groupBy( + grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, + context?: any + ): /*Map*/Seq.Keyed>; + + + // Side effects + + /** + * The `sideEffect` is executed for every entry in the Iterable. + * + * Unlike `Array#forEach`, if any call of `sideEffect` returns + * `false`, the iteration will stop. Returns the number of entries iterated + * (including the last iteration which returned false). + */ + forEach( + sideEffect: (value?: V, key?: K, iter?: /*this*/Iterable) => any, + context?: any + ): number; + + + // Creating subsets + + /** + * Returns a new Iterable of the same type representing a portion of this + * Iterable from start up to but not including end. + * + * If begin is negative, it is offset from the end of the Iterable. e.g. + * `slice(-2)` returns a Iterable of the last two entries. If it is not + * provided the new Iterable will begin at the beginning of this Iterable. + * + * If end is negative, it is offset from the end of the Iterable. e.g. + * `slice(0, -1)` returns an Iterable of everything but the last entry. If + * it is not provided, the new Iterable will continue through the end of + * this Iterable. + * + * If the requested slice is equivalent to the current Iterable, then it + * will return itself. + */ + slice(begin?: number, end?: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type containing all entries except + * the first. + */ + rest(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type containing all entries except + * the last. + */ + butLast(): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which excludes the first `amount` + * entries from this Iterable. + */ + skip(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which excludes the last `amount` + * entries from this Iterable. + */ + skipLast(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries starting + * from when `predicate` first returns false. + * + * Seq.of('dog','frog','cat','hat','god') + * .skipWhile(x => x.match(/g/)) + * // Seq [ 'cat', 'hat', 'god' ] + * + */ + skipWhile( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries starting + * from when `predicate` first returns true. + * + * Seq.of('dog','frog','cat','hat','god') + * .skipUntil(x => x.match(/hat/)) + * // Seq [ 'hat', 'god' ] + * + */ + skipUntil( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the first `amount` + * entries from this Iterable. + */ + take(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes the last `amount` + * entries from this Iterable. + */ + takeLast(amount: number): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries from this + * Iterable as long as the `predicate` returns true. + * + * Seq.of('dog','frog','cat','hat','god') + * .takeWhile(x => x.match(/o/)) + * // Seq [ 'dog', 'frog' ] + * + */ + takeWhile( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + /** + * Returns a new Iterable of the same type which includes entries from this + * Iterable as long as the `predicate` returns false. + * + * Seq.of('dog','frog','cat','hat','god').takeUntil(x => x.match(/at/)) + * // ['dog', 'frog'] + * + */ + takeUntil( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): /*this*/Iterable; + + + // Combination + + /** + * Returns a new Iterable of the same type with other values and + * iterable-like concatenated to this one. + * + * For Seqs, all entries will be present in + * the resulting iterable, even if they have the same key. + */ + concat(...valuesOrIterables: /*Array|V*/any[]): /*this*/Iterable; + + /** + * Flattens nested Iterables. + * + * Will deeply flatten the Iterable by default, returning an Iterable of the + * same type, but a `depth` can be provided in the form of a number or + * boolean (where true means to shallowly flatten one level). A depth of 0 + * (or shallow: false) will deeply flatten. + * + * Flattens only others Iterable, not Arrays or Objects. + * + * Note: `flatten(true)` operates on Iterable> and + * returns Iterable + */ + flatten(depth?: number): /*this*/Iterable; + flatten(shallow?: boolean): /*this*/Iterable; + + /** + * Flat-maps the Iterable, returning an Iterable of the same type. + * + * Similar to `iter.map(...).flatten(true)`. + */ + flatMap( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => Iterable, + context?: any + ): /*this*/Iterable; + flatMap( + mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => /*iterable-like*/any, + context?: any + ): /*this*/Iterable; + + + // Reducing a value + + /** + * Reduces the Iterable to a value by calling the `reducer` for every entry + * in the Iterable and passing along the reduced value. + * + * If `initialReduction` is not provided, or is null, the first item in the + * Iterable will be used. + * + * @see `Array#reduce`. + */ + reduce( + reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, + initialReduction?: R, + context?: any + ): R; + + /** + * Reduces the Iterable in reverse (from the right side). + * + * Note: Similar to this.reverse().reduce(), and provided for parity + * with `Array#reduceRight`. + */ + reduceRight( + reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, + initialReduction?: R, + context?: any + ): R; + + /** + * True if `predicate` returns true for all entries in the Iterable. + */ + every( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): boolean; + + /** + * True if `predicate` returns true for any entry in the Iterable. + */ + some( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): boolean; + + /** + * Joins values together as a string, inserting a separator between each. + * The default separator is `","`. + */ + join(separator?: string): string; + + /** + * Returns true if this Iterable includes no values. + * + * For some lazy `Seq`, `isEmpty` might need to iterate to determine + * emptiness. At most one iteration will occur. + */ + isEmpty(): boolean; + + /** + * Returns the size of this Iterable. + * + * Regardless of if this Iterable can describe its size lazily (some Seqs + * cannot), this method will always return the correct size. E.g. it + * evaluates a lazy `Seq` if necessary. + * + * If `predicate` is provided, then this returns the count of entries in the + * Iterable for which the `predicate` returns true. + */ + count(): number; + count( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any + ): number; + + /** + * Returns a `Seq.Keyed` of counts, grouped by the return value of + * the `grouper` function. + * + * Note: This is not a lazy operation. + */ + countBy( + grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, + context?: any + ): Map; + + + // Search for value + + /** + * Returns the first value for which the `predicate` returns true. + */ + find( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): V; + + /** + * Returns the last value for which the `predicate` returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLast( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): V; + + /** + * Returns the first [key, value] entry for which the `predicate` returns true. + */ + findEntry( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): /*[K, V]*/Array; + + /** + * Returns the last [key, value] entry for which the `predicate` + * returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLastEntry( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, + context?: any, + notSetValue?: V + ): /*[K, V]*/Array; + + /** + * Returns the key for which the `predicate` returns true. + */ + findKey( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, + context?: any + ): K; + + /** + * Returns the last key for which the `predicate` returns true. + * + * Note: `predicate` will be called for each entry in reverse. + */ + findLastKey( + predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, + context?: any + ): K; + + /** + * Returns the key associated with the search value, or undefined. + */ + keyOf(searchValue: V): K; + + /** + * Returns the last key associated with the search value, or undefined. + */ + lastKeyOf(searchValue: V): K; + + /** + * Returns the maximum value in this collection. If any values are + * comparatively equivalent, the first one found will be returned. + * + * The `comparator` is used in the same way as `Iterable#sort`. If it is not + * provided, the default comparator is `>`. + * + * When two values are considered equivalent, the first encountered will be + * returned. Otherwise, `max` will operate independent of the order of input + * as long as the comparator is commutative. The default comparator `>` is + * commutative *only* when types do not differ. + * + * If `comparator` returns 0 and either value is NaN, undefined, or null, + * that value will be returned. + */ + max(comparator?: (valueA: V, valueB: V) => number): V; + + /** + * Like `max`, but also accepts a `comparatorValueMapper` which allows for + * comparing by more sophisticated means: + * + * hitters.maxBy(hitter => hitter.avgHits); + * + */ + maxBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + + /** + * Returns the minimum value in this collection. If any values are + * comparatively equivalent, the first one found will be returned. + * + * The `comparator` is used in the same way as `Iterable#sort`. If it is not + * provided, the default comparator is `<`. + * + * When two values are considered equivalent, the first encountered will be + * returned. Otherwise, `min` will operate independent of the order of input + * as long as the comparator is commutative. The default comparator `<` is + * commutative *only* when types do not differ. + * + * If `comparator` returns 0 and either value is NaN, undefined, or null, + * that value will be returned. + */ + min(comparator?: (valueA: V, valueB: V) => number): V; + + /** + * Like `min`, but also accepts a `comparatorValueMapper` which allows for + * comparing by more sophisticated means: + * + * hitters.minBy(hitter => hitter.avgHits); + * + */ + minBy( + comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + + + // Comparison + + /** + * True if `iter` includes every value in this Iterable. + */ + isSubset(iter: Iterable): boolean; + isSubset(iter: Array): boolean; + + /** + * True if this Iterable includes every value in `iter`. + */ + isSuperset(iter: Iterable): boolean; + isSuperset(iter: Array): boolean; + + + /** + * Note: this is here as a convenience to work around an issue with + * TypeScript https://github.com/Microsoft/TypeScript/issues/285, but + * Iterable does not define `size`, instead `Seq` defines `size` as + * nullable number, and `Collection` defines `size` as always a number. + * + * @ignore + */ + size: number; + } + + + /** + * Collection is the abstract base class for concrete data structures. It + * cannot be constructed directly. + * + * Implementations should extend one of the subclasses, `Collection.Keyed`, + * `Collection.Indexed`, or `Collection.Set`. + */ + export module Collection { + + + /** + * `Collection` which represents key-value pairs. + */ + export module Keyed {} + + export interface Keyed extends Collection, Iterable.Keyed { + + /** + * Returns Seq.Keyed. + * @override + */ + toSeq(): Seq.Keyed; + } + + + /** + * `Collection` which represents ordered indexed values. + */ + export module Indexed {} + + export interface Indexed extends Collection, Iterable.Indexed { + + /** + * Returns Seq.Indexed. + * @override + */ + toSeq(): Seq.Indexed; + } + + + /** + * `Collection` which represents values, unassociated with keys or indices. + * + * `Collection.Set` implementations should guarantee value uniqueness. + */ + export module Set {} + + export interface Set extends Collection, Iterable.Set { + + /** + * Returns Seq.Set. + * @override + */ + toSeq(): Seq.Set; + } + + } + + export interface Collection extends Iterable { + + /** + * All collections maintain their current `size` as an integer. + */ + size: number; + } + + + /** + * ES6 Iterator. + * + * This is not part of the Immutable library, but a common interface used by + * many types in ES6 JavaScript. + * + * @ignore + */ + export interface Iterator { + next(): { value: T; done: boolean; } + } + +} + +declare module "immutable" { + export = Immutable +} diff --git a/packages/client/node_modules/immutable/dist/immutable.js b/packages/client/node_modules/immutable/dist/immutable.js new file mode 100644 index 0000000..c88ae83 --- /dev/null +++ b/packages/client/node_modules/immutable/dist/immutable.js @@ -0,0 +1,4977 @@ +/** + * 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, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Immutable = factory()); +}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice; + + function createClass(ctor, superClass) { + if (superClass) { + ctor.prototype = Object.create(superClass.prototype); + } + ctor.prototype.constructor = ctor; + } + + function Iterable(value) { + return isIterable(value) ? value : Seq(value); + } + + + createClass(KeyedIterable, Iterable); + function KeyedIterable(value) { + return isKeyed(value) ? value : KeyedSeq(value); + } + + + createClass(IndexedIterable, Iterable); + function IndexedIterable(value) { + return isIndexed(value) ? value : IndexedSeq(value); + } + + + createClass(SetIterable, Iterable); + function SetIterable(value) { + return isIterable(value) && !isAssociative(value) ? value : SetSeq(value); + } + + + + function isIterable(maybeIterable) { + return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]); + } + + function isKeyed(maybeKeyed) { + return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]); + } + + function isIndexed(maybeIndexed) { + return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]); + } + + function isAssociative(maybeAssociative) { + return isKeyed(maybeAssociative) || isIndexed(maybeAssociative); + } + + function isOrdered(maybeOrdered) { + return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]); + } + + Iterable.isIterable = isIterable; + Iterable.isKeyed = isKeyed; + Iterable.isIndexed = isIndexed; + Iterable.isAssociative = isAssociative; + Iterable.isOrdered = isOrdered; + + Iterable.Keyed = KeyedIterable; + Iterable.Indexed = IndexedIterable; + Iterable.Set = SetIterable; + + + var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; + var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; + var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; + var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; + + // Used for setting prototype methods that IE8 chokes on. + var DELETE = 'delete'; + + // Constants describing the size of trie nodes. + var SHIFT = 5; // Resulted in best performance after ______? + var SIZE = 1 << SHIFT; + var MASK = SIZE - 1; + + // A consistent shared value representing "not set" which equals nothing other + // than itself, and nothing that could be provided externally. + var NOT_SET = {}; + + // Boolean references, Rough equivalent of `bool &`. + var CHANGE_LENGTH = { value: false }; + var DID_ALTER = { value: false }; + + function MakeRef(ref) { + ref.value = false; + return ref; + } + + function SetRef(ref) { + ref && (ref.value = true); + } + + // A function which returns a value representing an "owner" for transient writes + // to tries. The return value will only ever equal itself, and will not equal + // the return of any subsequent call of this function. + function OwnerID() {} + + // http://jsperf.com/copy-array-inline + function arrCopy(arr, offset) { + offset = offset || 0; + var len = Math.max(0, arr.length - offset); + var newArr = new Array(len); + for (var ii = 0; ii < len; ii++) { + newArr[ii] = arr[ii + offset]; + } + return newArr; + } + + function ensureSize(iter) { + if (iter.size === undefined) { + iter.size = iter.__iterate(returnTrue); + } + return iter.size; + } + + function wrapIndex(iter, index) { + // This implements "is array index" which the ECMAString spec defines as: + // + // A String property name P is an array index if and only if + // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal + // to 2^32−1. + // + // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects + if (typeof index !== 'number') { + var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32 + if ('' + uint32Index !== index || uint32Index === 4294967295) { + return NaN; + } + index = uint32Index; + } + return index < 0 ? ensureSize(iter) + index : index; + } + + function returnTrue() { + return true; + } + + function wholeSlice(begin, end, size) { + return (begin === 0 || (size !== undefined && begin <= -size)) && + (end === undefined || (size !== undefined && end >= size)); + } + + function resolveBegin(begin, size) { + return resolveIndex(begin, size, 0); + } + + function resolveEnd(end, size) { + return resolveIndex(end, size, size); + } + + function resolveIndex(index, size, defaultIndex) { + return index === undefined ? + defaultIndex : + index < 0 ? + Math.max(0, size + index) : + size === undefined ? + index : + Math.min(size, index); + } + + /* global Symbol */ + + var ITERATE_KEYS = 0; + var ITERATE_VALUES = 1; + var ITERATE_ENTRIES = 2; + + var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; + + var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL; + + + function Iterator(next) { + this.next = next; + } + + Iterator.prototype.toString = function() { + return '[Iterator]'; + }; + + + Iterator.KEYS = ITERATE_KEYS; + Iterator.VALUES = ITERATE_VALUES; + Iterator.ENTRIES = ITERATE_ENTRIES; + + Iterator.prototype.inspect = + Iterator.prototype.toSource = function () { return this.toString(); } + Iterator.prototype[ITERATOR_SYMBOL] = function () { + return this; + }; + + + function iteratorValue(type, k, v, iteratorResult) { + var value = type === 0 ? k : type === 1 ? v : [k, v]; + iteratorResult ? (iteratorResult.value = value) : (iteratorResult = { + value: value, done: false + }); + return iteratorResult; + } + + function iteratorDone() { + return { value: undefined, done: true }; + } + + function hasIterator(maybeIterable) { + return !!getIteratorFn(maybeIterable); + } + + function isIterator(maybeIterator) { + return maybeIterator && typeof maybeIterator.next === 'function'; + } + + function getIterator(iterable) { + var iteratorFn = getIteratorFn(iterable); + return iteratorFn && iteratorFn.call(iterable); + } + + function getIteratorFn(iterable) { + var iteratorFn = iterable && ( + (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) || + iterable[FAUX_ITERATOR_SYMBOL] + ); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + function isArrayLike(value) { + return value && typeof value.length === 'number'; + } + + createClass(Seq, Iterable); + function Seq(value) { + return value === null || value === undefined ? emptySequence() : + isIterable(value) ? value.toSeq() : seqFromValue(value); + } + + Seq.of = function(/*...values*/) { + return Seq(arguments); + }; + + Seq.prototype.toSeq = function() { + return this; + }; + + Seq.prototype.toString = function() { + return this.__toString('Seq {', '}'); + }; + + Seq.prototype.cacheResult = function() { + if (!this._cache && this.__iterateUncached) { + this._cache = this.entrySeq().toArray(); + this.size = this._cache.length; + } + return this; + }; + + // abstract __iterateUncached(fn, reverse) + + Seq.prototype.__iterate = function(fn, reverse) { + return seqIterate(this, fn, reverse, true); + }; + + // abstract __iteratorUncached(type, reverse) + + Seq.prototype.__iterator = function(type, reverse) { + return seqIterator(this, type, reverse, true); + }; + + + + createClass(KeyedSeq, Seq); + function KeyedSeq(value) { + return value === null || value === undefined ? + emptySequence().toKeyedSeq() : + isIterable(value) ? + (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) : + keyedSeqFromValue(value); + } + + KeyedSeq.prototype.toKeyedSeq = function() { + return this; + }; + + + + createClass(IndexedSeq, Seq); + function IndexedSeq(value) { + return value === null || value === undefined ? emptySequence() : + !isIterable(value) ? indexedSeqFromValue(value) : + isKeyed(value) ? value.entrySeq() : value.toIndexedSeq(); + } + + IndexedSeq.of = function(/*...values*/) { + return IndexedSeq(arguments); + }; + + IndexedSeq.prototype.toIndexedSeq = function() { + return this; + }; + + IndexedSeq.prototype.toString = function() { + return this.__toString('Seq [', ']'); + }; + + IndexedSeq.prototype.__iterate = function(fn, reverse) { + return seqIterate(this, fn, reverse, false); + }; + + IndexedSeq.prototype.__iterator = function(type, reverse) { + return seqIterator(this, type, reverse, false); + }; + + + + createClass(SetSeq, Seq); + function SetSeq(value) { + return ( + value === null || value === undefined ? emptySequence() : + !isIterable(value) ? indexedSeqFromValue(value) : + isKeyed(value) ? value.entrySeq() : value + ).toSetSeq(); + } + + SetSeq.of = function(/*...values*/) { + return SetSeq(arguments); + }; + + SetSeq.prototype.toSetSeq = function() { + return this; + }; + + + + Seq.isSeq = isSeq; + Seq.Keyed = KeyedSeq; + Seq.Set = SetSeq; + Seq.Indexed = IndexedSeq; + + var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@'; + + Seq.prototype[IS_SEQ_SENTINEL] = true; + + + + createClass(ArraySeq, IndexedSeq); + function ArraySeq(array) { + this._array = array; + this.size = array.length; + } + + ArraySeq.prototype.get = function(index, notSetValue) { + return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue; + }; + + ArraySeq.prototype.__iterate = function(fn, reverse) { + var array = this._array; + var maxIndex = array.length - 1; + for (var ii = 0; ii <= maxIndex; ii++) { + if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) { + return ii + 1; + } + } + return ii; + }; + + ArraySeq.prototype.__iterator = function(type, reverse) { + var array = this._array; + var maxIndex = array.length - 1; + var ii = 0; + return new Iterator(function() + {return ii > maxIndex ? + iteratorDone() : + iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])} + ); + }; + + + + createClass(ObjectSeq, KeyedSeq); + function ObjectSeq(object) { + var keys = Object.keys(object); + this._object = object; + this._keys = keys; + this.size = keys.length; + } + + ObjectSeq.prototype.get = function(key, notSetValue) { + if (notSetValue !== undefined && !this.has(key)) { + return notSetValue; + } + return this._object[key]; + }; + + ObjectSeq.prototype.has = function(key) { + return this._object.hasOwnProperty(key); + }; + + ObjectSeq.prototype.__iterate = function(fn, reverse) { + var object = this._object; + var keys = this._keys; + var maxIndex = keys.length - 1; + for (var ii = 0; ii <= maxIndex; ii++) { + var key = keys[reverse ? maxIndex - ii : ii]; + if (fn(object[key], key, this) === false) { + return ii + 1; + } + } + return ii; + }; + + ObjectSeq.prototype.__iterator = function(type, reverse) { + var object = this._object; + var keys = this._keys; + var maxIndex = keys.length - 1; + var ii = 0; + return new Iterator(function() { + var key = keys[reverse ? maxIndex - ii : ii]; + return ii++ > maxIndex ? + iteratorDone() : + iteratorValue(type, key, object[key]); + }); + }; + + ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true; + + + createClass(IterableSeq, IndexedSeq); + function IterableSeq(iterable) { + this._iterable = iterable; + this.size = iterable.length || iterable.size; + } + + IterableSeq.prototype.__iterateUncached = function(fn, reverse) { + if (reverse) { + return this.cacheResult().__iterate(fn, reverse); + } + var iterable = this._iterable; + var iterator = getIterator(iterable); + var iterations = 0; + if (isIterator(iterator)) { + var step; + while (!(step = iterator.next()).done) { + if (fn(step.value, iterations++, this) === false) { + break; + } + } + } + return iterations; + }; + + IterableSeq.prototype.__iteratorUncached = function(type, reverse) { + if (reverse) { + return this.cacheResult().__iterator(type, reverse); + } + var iterable = this._iterable; + var iterator = getIterator(iterable); + if (!isIterator(iterator)) { + return new Iterator(iteratorDone); + } + var iterations = 0; + return new Iterator(function() { + var step = iterator.next(); + return step.done ? step : iteratorValue(type, iterations++, step.value); + }); + }; + + + + createClass(IteratorSeq, IndexedSeq); + function IteratorSeq(iterator) { + this._iterator = iterator; + this._iteratorCache = []; + } + + IteratorSeq.prototype.__iterateUncached = function(fn, reverse) { + if (reverse) { + return this.cacheResult().__iterate(fn, reverse); + } + var iterator = this._iterator; + var cache = this._iteratorCache; + var iterations = 0; + while (iterations < cache.length) { + if (fn(cache[iterations], iterations++, this) === false) { + return iterations; + } + } + var step; + while (!(step = iterator.next()).done) { + var val = step.value; + cache[iterations] = val; + if (fn(val, iterations++, this) === false) { + break; + } + } + return iterations; + }; + + IteratorSeq.prototype.__iteratorUncached = function(type, reverse) { + if (reverse) { + return this.cacheResult().__iterator(type, reverse); + } + var iterator = this._iterator; + var cache = this._iteratorCache; + var iterations = 0; + return new Iterator(function() { + if (iterations >= cache.length) { + var step = iterator.next(); + if (step.done) { + return step; + } + cache[iterations] = step.value; + } + return iteratorValue(type, iterations, cache[iterations++]); + }); + }; + + + + + // # pragma Helper functions + + function isSeq(maybeSeq) { + return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]); + } + + var EMPTY_SEQ; + + function emptySequence() { + return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([])); + } + + function keyedSeqFromValue(value) { + var seq = + Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : + isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : + hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : + typeof value === 'object' ? new ObjectSeq(value) : + undefined; + if (!seq) { + throw new TypeError( + 'Expected Array or iterable object of [k, v] entries, '+ + 'or keyed object: ' + value + ); + } + return seq; + } + + function indexedSeqFromValue(value) { + var seq = maybeIndexedSeqFromValue(value); + if (!seq) { + throw new TypeError( + 'Expected Array or iterable object of values: ' + value + ); + } + return seq; + } + + function seqFromValue(value) { + var seq = maybeIndexedSeqFromValue(value) || + (typeof value === 'object' && new ObjectSeq(value)); + if (!seq) { + throw new TypeError( + 'Expected Array or iterable object of values, or keyed object: ' + value + ); + } + return seq; + } + + function maybeIndexedSeqFromValue(value) { + return ( + isArrayLike(value) ? new ArraySeq(value) : + isIterator(value) ? new IteratorSeq(value) : + hasIterator(value) ? new IterableSeq(value) : + undefined + ); + } + + function seqIterate(seq, fn, reverse, useKeys) { + var cache = seq._cache; + if (cache) { + var maxIndex = cache.length - 1; + for (var ii = 0; ii <= maxIndex; ii++) { + var entry = cache[reverse ? maxIndex - ii : ii]; + if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) { + return ii + 1; + } + } + return ii; + } + return seq.__iterateUncached(fn, reverse); + } + + function seqIterator(seq, type, reverse, useKeys) { + var cache = seq._cache; + if (cache) { + var maxIndex = cache.length - 1; + var ii = 0; + return new Iterator(function() { + var entry = cache[reverse ? maxIndex - ii : ii]; + return ii++ > maxIndex ? + iteratorDone() : + iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]); + }); + } + return seq.__iteratorUncached(type, reverse); + } + + function fromJS(json, converter) { + return converter ? + fromJSWith(converter, json, '', {'': json}) : + fromJSDefault(json); + } + + function fromJSWith(converter, json, key, parentJSON) { + if (Array.isArray(json)) { + return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); + } + if (isPlainObj(json)) { + return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); + } + return json; + } + + function fromJSDefault(json) { + if (Array.isArray(json)) { + return IndexedSeq(json).map(fromJSDefault).toList(); + } + if (isPlainObj(json)) { + return KeyedSeq(json).map(fromJSDefault).toMap(); + } + return json; + } + + function isPlainObj(value) { + return value && (value.constructor === Object || value.constructor === undefined); + } + + /** + * An extension of the "same-value" algorithm as [described for use by ES6 Map + * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality) + * + * NaN is considered the same as NaN, however -0 and 0 are considered the same + * value, which is different from the algorithm described by + * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). + * + * This is extended further to allow Objects to describe the values they + * represent, by way of `valueOf` or `equals` (and `hashCode`). + * + * Note: because of this extension, the key equality of Immutable.Map and the + * value equality of Immutable.Set will differ from ES6 Map and Set. + * + * ### Defining custom values + * + * The easiest way to describe the value an object represents is by implementing + * `valueOf`. For example, `Date` represents a value by returning a unix + * timestamp for `valueOf`: + * + * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ... + * var date2 = new Date(1234567890000); + * date1.valueOf(); // 1234567890000 + * assert( date1 !== date2 ); + * assert( Immutable.is( date1, date2 ) ); + * + * Note: overriding `valueOf` may have other implications if you use this object + * where JavaScript expects a primitive, such as implicit string coercion. + * + * For more complex types, especially collections, implementing `valueOf` may + * not be performant. An alternative is to implement `equals` and `hashCode`. + * + * `equals` takes another object, presumably of similar type, and returns true + * if the it is equal. Equality is symmetrical, so the same result should be + * returned if this and the argument are flipped. + * + * assert( a.equals(b) === b.equals(a) ); + * + * `hashCode` returns a 32bit integer number representing the object which will + * be used to determine how to store the value object in a Map or Set. You must + * provide both or neither methods, one must not exist without the other. + * + * Also, an important relationship between these methods must be upheld: if two + * values are equal, they *must* return the same hashCode. If the values are not + * equal, they might have the same hashCode; this is called a hash collision, + * and while undesirable for performance reasons, it is acceptable. + * + * if (a.equals(b)) { + * assert( a.hashCode() === b.hashCode() ); + * } + * + * All Immutable collections implement `equals` and `hashCode`. + * + */ + function is(valueA, valueB) { + if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { + return true; + } + if (!valueA || !valueB) { + return false; + } + if (typeof valueA.valueOf === 'function' && + typeof valueB.valueOf === 'function') { + valueA = valueA.valueOf(); + valueB = valueB.valueOf(); + if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { + return true; + } + if (!valueA || !valueB) { + return false; + } + } + if (typeof valueA.equals === 'function' && + typeof valueB.equals === 'function' && + valueA.equals(valueB)) { + return true; + } + return false; + } + + function deepEqual(a, b) { + if (a === b) { + return true; + } + + if ( + !isIterable(b) || + a.size !== undefined && b.size !== undefined && a.size !== b.size || + a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || + isKeyed(a) !== isKeyed(b) || + isIndexed(a) !== isIndexed(b) || + isOrdered(a) !== isOrdered(b) + ) { + return false; + } + + if (a.size === 0 && b.size === 0) { + return true; + } + + var notAssociative = !isAssociative(a); + + if (isOrdered(a)) { + var entries = a.entries(); + return b.every(function(v, k) { + var entry = entries.next().value; + return entry && is(entry[1], v) && (notAssociative || is(entry[0], k)); + }) && entries.next().done; + } + + var flipped = false; + + if (a.size === undefined) { + if (b.size === undefined) { + if (typeof a.cacheResult === 'function') { + a.cacheResult(); + } + } else { + flipped = true; + var _ = a; + a = b; + b = _; + } + } + + var allEqual = true; + var bSize = b.__iterate(function(v, k) { + if (notAssociative ? !a.has(v) : + flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) { + allEqual = false; + return false; + } + }); + + return allEqual && a.size === bSize; + } + + createClass(Repeat, IndexedSeq); + + function Repeat(value, times) { + if (!(this instanceof Repeat)) { + return new Repeat(value, times); + } + this._value = value; + this.size = times === undefined ? Infinity : Math.max(0, times); + if (this.size === 0) { + if (EMPTY_REPEAT) { + return EMPTY_REPEAT; + } + EMPTY_REPEAT = this; + } + } + + Repeat.prototype.toString = function() { + if (this.size === 0) { + return 'Repeat []'; + } + return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]'; + }; + + Repeat.prototype.get = function(index, notSetValue) { + return this.has(index) ? this._value : notSetValue; + }; + + Repeat.prototype.includes = function(searchValue) { + return is(this._value, searchValue); + }; + + Repeat.prototype.slice = function(begin, end) { + var size = this.size; + return wholeSlice(begin, end, size) ? this : + new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size)); + }; + + Repeat.prototype.reverse = function() { + return this; + }; + + Repeat.prototype.indexOf = function(searchValue) { + if (is(this._value, searchValue)) { + return 0; + } + return -1; + }; + + Repeat.prototype.lastIndexOf = function(searchValue) { + if (is(this._value, searchValue)) { + return this.size; + } + return -1; + }; + + Repeat.prototype.__iterate = function(fn, reverse) { + for (var ii = 0; ii < this.size; ii++) { + if (fn(this._value, ii, this) === false) { + return ii + 1; + } + } + return ii; + }; + + Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this; + var ii = 0; + return new Iterator(function() + {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()} + ); + }; + + Repeat.prototype.equals = function(other) { + return other instanceof Repeat ? + is(this._value, other._value) : + deepEqual(other); + }; + + + var EMPTY_REPEAT; + + function invariant(condition, error) { + if (!condition) throw new Error(error); + } + + createClass(Range, IndexedSeq); + + function Range(start, end, step) { + if (!(this instanceof Range)) { + return new Range(start, end, step); + } + invariant(step !== 0, 'Cannot step a Range by 0'); + start = start || 0; + if (end === undefined) { + end = Infinity; + } + step = step === undefined ? 1 : Math.abs(step); + if (end < start) { + step = -step; + } + this._start = start; + this._end = end; + this._step = step; + this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1); + if (this.size === 0) { + if (EMPTY_RANGE) { + return EMPTY_RANGE; + } + EMPTY_RANGE = this; + } + } + + Range.prototype.toString = function() { + if (this.size === 0) { + return 'Range []'; + } + return 'Range [ ' + + this._start + '...' + this._end + + (this._step !== 1 ? ' by ' + this._step : '') + + ' ]'; + }; + + Range.prototype.get = function(index, notSetValue) { + return this.has(index) ? + this._start + wrapIndex(this, index) * this._step : + notSetValue; + }; + + Range.prototype.includes = function(searchValue) { + var possibleIndex = (searchValue - this._start) / this._step; + return possibleIndex >= 0 && + possibleIndex < this.size && + possibleIndex === Math.floor(possibleIndex); + }; + + Range.prototype.slice = function(begin, end) { + if (wholeSlice(begin, end, this.size)) { + return this; + } + begin = resolveBegin(begin, this.size); + end = resolveEnd(end, this.size); + if (end <= begin) { + return new Range(0, 0); + } + return new Range(this.get(begin, this._end), this.get(end, this._end), this._step); + }; + + Range.prototype.indexOf = function(searchValue) { + var offsetValue = searchValue - this._start; + if (offsetValue % this._step === 0) { + var index = offsetValue / this._step; + if (index >= 0 && index < this.size) { + return index + } + } + return -1; + }; + + Range.prototype.lastIndexOf = function(searchValue) { + return this.indexOf(searchValue); + }; + + Range.prototype.__iterate = function(fn, reverse) { + var maxIndex = this.size - 1; + var step = this._step; + var value = reverse ? this._start + maxIndex * step : this._start; + for (var ii = 0; ii <= maxIndex; ii++) { + if (fn(value, ii, this) === false) { + return ii + 1; + } + value += reverse ? -step : step; + } + return ii; + }; + + Range.prototype.__iterator = function(type, reverse) { + var maxIndex = this.size - 1; + var step = this._step; + var value = reverse ? this._start + maxIndex * step : this._start; + var ii = 0; + return new Iterator(function() { + var v = value; + value += reverse ? -step : step; + return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v); + }); + }; + + Range.prototype.equals = function(other) { + return other instanceof Range ? + this._start === other._start && + this._end === other._end && + this._step === other._step : + deepEqual(this, other); + }; + + + var EMPTY_RANGE; + + createClass(Collection, Iterable); + function Collection() { + throw TypeError('Abstract'); + } + + + createClass(KeyedCollection, Collection);function KeyedCollection() {} + + createClass(IndexedCollection, Collection);function IndexedCollection() {} + + createClass(SetCollection, Collection);function SetCollection() {} + + + Collection.Keyed = KeyedCollection; + Collection.Indexed = IndexedCollection; + Collection.Set = SetCollection; + + var imul = + typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? + Math.imul : + function imul(a, b) { + a = a | 0; // int + b = b | 0; // int + var c = a & 0xffff; + var d = b & 0xffff; + // Shift by 0 fixes the sign on the high part. + return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int + }; + + // v8 has an optimization for storing 31-bit signed numbers. + // Values which have either 00 or 11 as the high order bits qualify. + // This function drops the highest order bit in a signed number, maintaining + // the sign bit. + function smi(i32) { + return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF); + } + + function hash(o) { + if (o === false || o === null || o === undefined) { + return 0; + } + if (typeof o.valueOf === 'function') { + o = o.valueOf(); + if (o === false || o === null || o === undefined) { + return 0; + } + } + if (o === true) { + return 1; + } + var type = typeof o; + if (type === 'number') { + if (o !== o || o === Infinity) { + return 0; + } + var h = o | 0; + if (h !== o) { + h ^= o * 0xFFFFFFFF; + } + while (o > 0xFFFFFFFF) { + o /= 0xFFFFFFFF; + h ^= o; + } + return smi(h); + } + if (type === 'string') { + return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o); + } + if (typeof o.hashCode === 'function') { + return o.hashCode(); + } + if (type === 'object') { + return hashJSObj(o); + } + if (typeof o.toString === 'function') { + return hashString(o.toString()); + } + throw new Error('Value type ' + type + ' cannot be hashed.'); + } + + function cachedHashString(string) { + var hash = stringHashCache[string]; + if (hash === undefined) { + hash = hashString(string); + if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) { + STRING_HASH_CACHE_SIZE = 0; + stringHashCache = {}; + } + STRING_HASH_CACHE_SIZE++; + stringHashCache[string] = hash; + } + return hash; + } + + // http://jsperf.com/hashing-strings + function hashString(string) { + // This is the hash from JVM + // The hash code for a string is computed as + // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1], + // where s[i] is the ith character of the string and n is the length of + // the string. We "mod" the result to make it between 0 (inclusive) and 2^31 + // (exclusive) by dropping high bits. + var hash = 0; + for (var ii = 0; ii < string.length; ii++) { + hash = 31 * hash + string.charCodeAt(ii) | 0; + } + return smi(hash); + } + + function hashJSObj(obj) { + var hash; + if (usingWeakMap) { + hash = weakMap.get(obj); + if (hash !== undefined) { + return hash; + } + } + + hash = obj[UID_HASH_KEY]; + if (hash !== undefined) { + return hash; + } + + if (!canDefineProperty) { + hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY]; + if (hash !== undefined) { + return hash; + } + + hash = getIENodeHash(obj); + if (hash !== undefined) { + return hash; + } + } + + hash = ++objHashUID; + if (objHashUID & 0x40000000) { + objHashUID = 0; + } + + if (usingWeakMap) { + weakMap.set(obj, hash); + } else if (isExtensible !== undefined && isExtensible(obj) === false) { + throw new Error('Non-extensible objects are not allowed as keys.'); + } else if (canDefineProperty) { + Object.defineProperty(obj, UID_HASH_KEY, { + 'enumerable': false, + 'configurable': false, + 'writable': false, + 'value': hash + }); + } else if (obj.propertyIsEnumerable !== undefined && + obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) { + // Since we can't define a non-enumerable property on the object + // we'll hijack one of the less-used non-enumerable properties to + // save our hash on it. Since this is a function it will not show up in + // `JSON.stringify` which is what we want. + obj.propertyIsEnumerable = function() { + return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments); + }; + obj.propertyIsEnumerable[UID_HASH_KEY] = hash; + } else if (obj.nodeType !== undefined) { + // At this point we couldn't get the IE `uniqueID` to use as a hash + // and we couldn't use a non-enumerable property to exploit the + // dontEnum bug so we simply add the `UID_HASH_KEY` on the node + // itself. + obj[UID_HASH_KEY] = hash; + } else { + throw new Error('Unable to set a non-enumerable property on object.'); + } + + return hash; + } + + // Get references to ES5 object methods. + var isExtensible = Object.isExtensible; + + // True if Object.defineProperty works as expected. IE8 fails this test. + var canDefineProperty = (function() { + try { + Object.defineProperty({}, '@', {}); + return true; + } catch (e) { + return false; + } + }()); + + // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it + // and avoid memory leaks from the IE cloneNode bug. + function getIENodeHash(node) { + if (node && node.nodeType > 0) { + switch (node.nodeType) { + case 1: // Element + return node.uniqueID; + case 9: // Document + return node.documentElement && node.documentElement.uniqueID; + } + } + } + + // If possible, use a WeakMap. + var usingWeakMap = typeof WeakMap === 'function'; + var weakMap; + if (usingWeakMap) { + weakMap = new WeakMap(); + } + + var objHashUID = 0; + + var UID_HASH_KEY = '__immutablehash__'; + if (typeof Symbol === 'function') { + UID_HASH_KEY = Symbol(UID_HASH_KEY); + } + + var STRING_HASH_CACHE_MIN_STRLEN = 16; + var STRING_HASH_CACHE_MAX_SIZE = 255; + var STRING_HASH_CACHE_SIZE = 0; + var stringHashCache = {}; + + function assertNotInfinite(size) { + invariant( + size !== Infinity, + 'Cannot perform this action with an infinite size.' + ); + } + + createClass(Map, KeyedCollection); + + // @pragma Construction + + function Map(value) { + return value === null || value === undefined ? emptyMap() : + isMap(value) && !isOrdered(value) ? value : + emptyMap().withMutations(function(map ) { + var iter = KeyedIterable(value); + assertNotInfinite(iter.size); + iter.forEach(function(v, k) {return map.set(k, v)}); + }); + } + + Map.of = function() {var keyValues = SLICE$0.call(arguments, 0); + return emptyMap().withMutations(function(map ) { + for (var i = 0; i < keyValues.length; i += 2) { + if (i + 1 >= keyValues.length) { + throw new Error('Missing value for key: ' + keyValues[i]); + } + map.set(keyValues[i], keyValues[i + 1]); + } + }); + }; + + Map.prototype.toString = function() { + return this.__toString('Map {', '}'); + }; + + // @pragma Access + + Map.prototype.get = function(k, notSetValue) { + return this._root ? + this._root.get(0, undefined, k, notSetValue) : + notSetValue; + }; + + // @pragma Modification + + Map.prototype.set = function(k, v) { + return updateMap(this, k, v); + }; + + Map.prototype.setIn = function(keyPath, v) { + return this.updateIn(keyPath, NOT_SET, function() {return v}); + }; + + Map.prototype.remove = function(k) { + return updateMap(this, k, NOT_SET); + }; + + Map.prototype.deleteIn = function(keyPath) { + return this.updateIn(keyPath, function() {return NOT_SET}); + }; + + Map.prototype.update = function(k, notSetValue, updater) { + return arguments.length === 1 ? + k(this) : + this.updateIn([k], notSetValue, updater); + }; + + Map.prototype.updateIn = function(keyPath, notSetValue, updater) { + if (!updater) { + updater = notSetValue; + notSetValue = undefined; + } + var updatedValue = updateInDeepMap( + this, + forceIterator(keyPath), + notSetValue, + updater + ); + return updatedValue === NOT_SET ? undefined : updatedValue; + }; + + Map.prototype.clear = function() { + if (this.size === 0) { + return this; + } + if (this.__ownerID) { + this.size = 0; + this._root = null; + this.__hash = undefined; + this.__altered = true; + return this; + } + return emptyMap(); + }; + + // @pragma Composition + + Map.prototype.merge = function(/*...iters*/) { + return mergeIntoMapWith(this, undefined, arguments); + }; + + Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); + return mergeIntoMapWith(this, merger, iters); + }; + + Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); + return this.updateIn( + keyPath, + emptyMap(), + function(m ) {return typeof m.merge === 'function' ? + m.merge.apply(m, iters) : + iters[iters.length - 1]} + ); + }; + + Map.prototype.mergeDeep = function(/*...iters*/) { + return mergeIntoMapWith(this, deepMerger, arguments); + }; + + Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); + return mergeIntoMapWith(this, deepMergerWith(merger), iters); + }; + + Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); + return this.updateIn( + keyPath, + emptyMap(), + function(m ) {return typeof m.mergeDeep === 'function' ? + m.mergeDeep.apply(m, iters) : + iters[iters.length - 1]} + ); + }; + + Map.prototype.sort = function(comparator) { + // Late binding + return OrderedMap(sortFactory(this, comparator)); + }; + + Map.prototype.sortBy = function(mapper, comparator) { + // Late binding + return OrderedMap(sortFactory(this, comparator, mapper)); + }; + + // @pragma Mutability + + Map.prototype.withMutations = function(fn) { + var mutable = this.asMutable(); + fn(mutable); + return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this; + }; + + Map.prototype.asMutable = function() { + return this.__ownerID ? this : this.__ensureOwner(new OwnerID()); + }; + + Map.prototype.asImmutable = function() { + return this.__ensureOwner(); + }; + + Map.prototype.wasAltered = function() { + return this.__altered; + }; + + Map.prototype.__iterator = function(type, reverse) { + return new MapIterator(this, type, reverse); + }; + + Map.prototype.__iterate = function(fn, reverse) {var this$0 = this; + var iterations = 0; + this._root && this._root.iterate(function(entry ) { + iterations++; + return fn(entry[1], entry[0], this$0); + }, reverse); + return iterations; + }; + + Map.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + if (!ownerID) { + this.__ownerID = ownerID; + this.__altered = false; + return this; + } + return makeMap(this.size, this._root, ownerID, this.__hash); + }; + + + function isMap(maybeMap) { + return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]); + } + + Map.isMap = isMap; + + var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@'; + + var MapPrototype = Map.prototype; + MapPrototype[IS_MAP_SENTINEL] = true; + MapPrototype[DELETE] = MapPrototype.remove; + MapPrototype.removeIn = MapPrototype.deleteIn; + + + // #pragma Trie Nodes + + + + function ArrayMapNode(ownerID, entries) { + this.ownerID = ownerID; + this.entries = entries; + } + + ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { + var entries = this.entries; + for (var ii = 0, len = entries.length; ii < len; ii++) { + if (is(key, entries[ii][0])) { + return entries[ii][1]; + } + } + return notSetValue; + }; + + ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + var removed = value === NOT_SET; + + var entries = this.entries; + var idx = 0; + for (var len = entries.length; idx < len; idx++) { + if (is(key, entries[idx][0])) { + break; + } + } + var exists = idx < len; + + if (exists ? entries[idx][1] === value : removed) { + return this; + } + + SetRef(didAlter); + (removed || !exists) && SetRef(didChangeSize); + + if (removed && entries.length === 1) { + return; // undefined + } + + if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) { + return createNodes(ownerID, entries, key, value); + } + + var isEditable = ownerID && ownerID === this.ownerID; + var newEntries = isEditable ? entries : arrCopy(entries); + + if (exists) { + if (removed) { + idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); + } else { + newEntries[idx] = [key, value]; + } + } else { + newEntries.push([key, value]); + } + + if (isEditable) { + this.entries = newEntries; + return this; + } + + return new ArrayMapNode(ownerID, newEntries); + }; + + + + + function BitmapIndexedNode(ownerID, bitmap, nodes) { + this.ownerID = ownerID; + this.bitmap = bitmap; + this.nodes = nodes; + } + + BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) { + if (keyHash === undefined) { + keyHash = hash(key); + } + var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK)); + var bitmap = this.bitmap; + return (bitmap & bit) === 0 ? notSetValue : + this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue); + }; + + BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + if (keyHash === undefined) { + keyHash = hash(key); + } + var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; + var bit = 1 << keyHashFrag; + var bitmap = this.bitmap; + var exists = (bitmap & bit) !== 0; + + if (!exists && value === NOT_SET) { + return this; + } + + var idx = popCount(bitmap & (bit - 1)); + var nodes = this.nodes; + var node = exists ? nodes[idx] : undefined; + var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); + + if (newNode === node) { + return this; + } + + if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) { + return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode); + } + + if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) { + return nodes[idx ^ 1]; + } + + if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) { + return newNode; + } + + var isEditable = ownerID && ownerID === this.ownerID; + var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit; + var newNodes = exists ? newNode ? + setIn(nodes, idx, newNode, isEditable) : + spliceOut(nodes, idx, isEditable) : + spliceIn(nodes, idx, newNode, isEditable); + + if (isEditable) { + this.bitmap = newBitmap; + this.nodes = newNodes; + return this; + } + + return new BitmapIndexedNode(ownerID, newBitmap, newNodes); + }; + + + + + function HashArrayMapNode(ownerID, count, nodes) { + this.ownerID = ownerID; + this.count = count; + this.nodes = nodes; + } + + HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { + if (keyHash === undefined) { + keyHash = hash(key); + } + var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; + var node = this.nodes[idx]; + return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue; + }; + + HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + if (keyHash === undefined) { + keyHash = hash(key); + } + var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; + var removed = value === NOT_SET; + var nodes = this.nodes; + var node = nodes[idx]; + + if (removed && !node) { + return this; + } + + var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); + if (newNode === node) { + return this; + } + + var newCount = this.count; + if (!node) { + newCount++; + } else if (!newNode) { + newCount--; + if (newCount < MIN_HASH_ARRAY_MAP_SIZE) { + return packNodes(ownerID, nodes, newCount, idx); + } + } + + var isEditable = ownerID && ownerID === this.ownerID; + var newNodes = setIn(nodes, idx, newNode, isEditable); + + if (isEditable) { + this.count = newCount; + this.nodes = newNodes; + return this; + } + + return new HashArrayMapNode(ownerID, newCount, newNodes); + }; + + + + + function HashCollisionNode(ownerID, keyHash, entries) { + this.ownerID = ownerID; + this.keyHash = keyHash; + this.entries = entries; + } + + HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) { + var entries = this.entries; + for (var ii = 0, len = entries.length; ii < len; ii++) { + if (is(key, entries[ii][0])) { + return entries[ii][1]; + } + } + return notSetValue; + }; + + HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + if (keyHash === undefined) { + keyHash = hash(key); + } + + var removed = value === NOT_SET; + + if (keyHash !== this.keyHash) { + if (removed) { + return this; + } + SetRef(didAlter); + SetRef(didChangeSize); + return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]); + } + + var entries = this.entries; + var idx = 0; + for (var len = entries.length; idx < len; idx++) { + if (is(key, entries[idx][0])) { + break; + } + } + var exists = idx < len; + + if (exists ? entries[idx][1] === value : removed) { + return this; + } + + SetRef(didAlter); + (removed || !exists) && SetRef(didChangeSize); + + if (removed && len === 2) { + return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]); + } + + var isEditable = ownerID && ownerID === this.ownerID; + var newEntries = isEditable ? entries : arrCopy(entries); + + if (exists) { + if (removed) { + idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); + } else { + newEntries[idx] = [key, value]; + } + } else { + newEntries.push([key, value]); + } + + if (isEditable) { + this.entries = newEntries; + return this; + } + + return new HashCollisionNode(ownerID, this.keyHash, newEntries); + }; + + + + + function ValueNode(ownerID, keyHash, entry) { + this.ownerID = ownerID; + this.keyHash = keyHash; + this.entry = entry; + } + + ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) { + return is(key, this.entry[0]) ? this.entry[1] : notSetValue; + }; + + ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + var removed = value === NOT_SET; + var keyMatch = is(key, this.entry[0]); + if (keyMatch ? value === this.entry[1] : removed) { + return this; + } + + SetRef(didAlter); + + if (removed) { + SetRef(didChangeSize); + return; // undefined + } + + if (keyMatch) { + if (ownerID && ownerID === this.ownerID) { + this.entry[1] = value; + return this; + } + return new ValueNode(ownerID, this.keyHash, [key, value]); + } + + SetRef(didChangeSize); + return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]); + }; + + + + // #pragma Iterators + + ArrayMapNode.prototype.iterate = + HashCollisionNode.prototype.iterate = function (fn, reverse) { + var entries = this.entries; + for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) { + if (fn(entries[reverse ? maxIndex - ii : ii]) === false) { + return false; + } + } + } + + BitmapIndexedNode.prototype.iterate = + HashArrayMapNode.prototype.iterate = function (fn, reverse) { + var nodes = this.nodes; + for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) { + var node = nodes[reverse ? maxIndex - ii : ii]; + if (node && node.iterate(fn, reverse) === false) { + return false; + } + } + } + + ValueNode.prototype.iterate = function (fn, reverse) { + return fn(this.entry); + } + + createClass(MapIterator, Iterator); + + function MapIterator(map, type, reverse) { + this._type = type; + this._reverse = reverse; + this._stack = map._root && mapIteratorFrame(map._root); + } + + MapIterator.prototype.next = function() { + var type = this._type; + var stack = this._stack; + while (stack) { + var node = stack.node; + var index = stack.index++; + var maxIndex; + if (node.entry) { + if (index === 0) { + return mapIteratorValue(type, node.entry); + } + } else if (node.entries) { + maxIndex = node.entries.length - 1; + if (index <= maxIndex) { + return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]); + } + } else { + maxIndex = node.nodes.length - 1; + if (index <= maxIndex) { + var subNode = node.nodes[this._reverse ? maxIndex - index : index]; + if (subNode) { + if (subNode.entry) { + return mapIteratorValue(type, subNode.entry); + } + stack = this._stack = mapIteratorFrame(subNode, stack); + } + continue; + } + } + stack = this._stack = this._stack.__prev; + } + return iteratorDone(); + }; + + + function mapIteratorValue(type, entry) { + return iteratorValue(type, entry[0], entry[1]); + } + + function mapIteratorFrame(node, prev) { + return { + node: node, + index: 0, + __prev: prev + }; + } + + function makeMap(size, root, ownerID, hash) { + var map = Object.create(MapPrototype); + map.size = size; + map._root = root; + map.__ownerID = ownerID; + map.__hash = hash; + map.__altered = false; + return map; + } + + var EMPTY_MAP; + function emptyMap() { + return EMPTY_MAP || (EMPTY_MAP = makeMap(0)); + } + + function updateMap(map, k, v) { + var newRoot; + var newSize; + if (!map._root) { + if (v === NOT_SET) { + return map; + } + newSize = 1; + newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]); + } else { + var didChangeSize = MakeRef(CHANGE_LENGTH); + var didAlter = MakeRef(DID_ALTER); + newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter); + if (!didAlter.value) { + return map; + } + newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0); + } + if (map.__ownerID) { + map.size = newSize; + map._root = newRoot; + map.__hash = undefined; + map.__altered = true; + return map; + } + return newRoot ? makeMap(newSize, newRoot) : emptyMap(); + } + + function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { + if (!node) { + if (value === NOT_SET) { + return node; + } + SetRef(didAlter); + SetRef(didChangeSize); + return new ValueNode(ownerID, keyHash, [key, value]); + } + return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter); + } + + function isLeafNode(node) { + return node.constructor === ValueNode || node.constructor === HashCollisionNode; + } + + function mergeIntoNode(node, ownerID, shift, keyHash, entry) { + if (node.keyHash === keyHash) { + return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]); + } + + var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK; + var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; + + var newNode; + var nodes = idx1 === idx2 ? + [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : + ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]); + + return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes); + } + + function createNodes(ownerID, entries, key, value) { + if (!ownerID) { + ownerID = new OwnerID(); + } + var node = new ValueNode(ownerID, hash(key), [key, value]); + for (var ii = 0; ii < entries.length; ii++) { + var entry = entries[ii]; + node = node.update(ownerID, 0, undefined, entry[0], entry[1]); + } + return node; + } + + function packNodes(ownerID, nodes, count, excluding) { + var bitmap = 0; + var packedII = 0; + var packedNodes = new Array(count); + for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) { + var node = nodes[ii]; + if (node !== undefined && ii !== excluding) { + bitmap |= bit; + packedNodes[packedII++] = node; + } + } + return new BitmapIndexedNode(ownerID, bitmap, packedNodes); + } + + function expandNodes(ownerID, nodes, bitmap, including, node) { + var count = 0; + var expandedNodes = new Array(SIZE); + for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) { + expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined; + } + expandedNodes[including] = node; + return new HashArrayMapNode(ownerID, count + 1, expandedNodes); + } + + function mergeIntoMapWith(map, merger, iterables) { + var iters = []; + for (var ii = 0; ii < iterables.length; ii++) { + var value = iterables[ii]; + var iter = KeyedIterable(value); + if (!isIterable(value)) { + iter = iter.map(function(v ) {return fromJS(v)}); + } + iters.push(iter); + } + return mergeIntoCollectionWith(map, merger, iters); + } + + function deepMerger(existing, value, key) { + return existing && existing.mergeDeep && isIterable(value) ? + existing.mergeDeep(value) : + is(existing, value) ? existing : value; + } + + function deepMergerWith(merger) { + return function(existing, value, key) { + if (existing && existing.mergeDeepWith && isIterable(value)) { + return existing.mergeDeepWith(merger, value); + } + var nextValue = merger(existing, value, key); + return is(existing, nextValue) ? existing : nextValue; + }; + } + + function mergeIntoCollectionWith(collection, merger, iters) { + iters = iters.filter(function(x ) {return x.size !== 0}); + if (iters.length === 0) { + return collection; + } + if (collection.size === 0 && !collection.__ownerID && iters.length === 1) { + return collection.constructor(iters[0]); + } + return collection.withMutations(function(collection ) { + var mergeIntoMap = merger ? + function(value, key) { + collection.update(key, NOT_SET, function(existing ) + {return existing === NOT_SET ? value : merger(existing, value, key)} + ); + } : + function(value, key) { + collection.set(key, value); + } + for (var ii = 0; ii < iters.length; ii++) { + iters[ii].forEach(mergeIntoMap); + } + }); + } + + function updateInDeepMap(existing, keyPathIter, notSetValue, updater) { + var isNotSet = existing === NOT_SET; + var step = keyPathIter.next(); + if (step.done) { + var existingValue = isNotSet ? notSetValue : existing; + var newValue = updater(existingValue); + return newValue === existingValue ? existing : newValue; + } + invariant( + isNotSet || (existing && existing.set), + 'invalid keyPath' + ); + var key = step.value; + var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET); + var nextUpdated = updateInDeepMap( + nextExisting, + keyPathIter, + notSetValue, + updater + ); + return nextUpdated === nextExisting ? existing : + nextUpdated === NOT_SET ? existing.remove(key) : + (isNotSet ? emptyMap() : existing).set(key, nextUpdated); + } + + function popCount(x) { + x = x - ((x >> 1) & 0x55555555); + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0f0f0f0f; + x = x + (x >> 8); + x = x + (x >> 16); + return x & 0x7f; + } + + function setIn(array, idx, val, canEdit) { + var newArray = canEdit ? array : arrCopy(array); + newArray[idx] = val; + return newArray; + } + + function spliceIn(array, idx, val, canEdit) { + var newLen = array.length + 1; + if (canEdit && idx + 1 === newLen) { + array[idx] = val; + return array; + } + var newArray = new Array(newLen); + var after = 0; + for (var ii = 0; ii < newLen; ii++) { + if (ii === idx) { + newArray[ii] = val; + after = -1; + } else { + newArray[ii] = array[ii + after]; + } + } + return newArray; + } + + function spliceOut(array, idx, canEdit) { + var newLen = array.length - 1; + if (canEdit && idx === newLen) { + array.pop(); + return array; + } + var newArray = new Array(newLen); + var after = 0; + for (var ii = 0; ii < newLen; ii++) { + if (ii === idx) { + after = 1; + } + newArray[ii] = array[ii + after]; + } + return newArray; + } + + var MAX_ARRAY_MAP_SIZE = SIZE / 4; + var MAX_BITMAP_INDEXED_SIZE = SIZE / 2; + var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4; + + createClass(List, IndexedCollection); + + // @pragma Construction + + function List(value) { + var empty = emptyList(); + if (value === null || value === undefined) { + return empty; + } + if (isList(value)) { + return value; + } + var iter = IndexedIterable(value); + var size = iter.size; + if (size === 0) { + return empty; + } + assertNotInfinite(size); + if (size > 0 && size < SIZE) { + return makeList(0, size, SHIFT, null, new VNode(iter.toArray())); + } + return empty.withMutations(function(list ) { + list.setSize(size); + iter.forEach(function(v, i) {return list.set(i, v)}); + }); + } + + List.of = function(/*...values*/) { + return this(arguments); + }; + + List.prototype.toString = function() { + return this.__toString('List [', ']'); + }; + + // @pragma Access + + List.prototype.get = function(index, notSetValue) { + index = wrapIndex(this, index); + if (index >= 0 && index < this.size) { + index += this._origin; + var node = listNodeFor(this, index); + return node && node.array[index & MASK]; + } + return notSetValue; + }; + + // @pragma Modification + + List.prototype.set = function(index, value) { + return updateList(this, index, value); + }; + + List.prototype.remove = function(index) { + return !this.has(index) ? this : + index === 0 ? this.shift() : + index === this.size - 1 ? this.pop() : + this.splice(index, 1); + }; + + List.prototype.insert = function(index, value) { + return this.splice(index, 0, value); + }; + + List.prototype.clear = function() { + if (this.size === 0) { + return this; + } + if (this.__ownerID) { + this.size = this._origin = this._capacity = 0; + this._level = SHIFT; + this._root = this._tail = null; + this.__hash = undefined; + this.__altered = true; + return this; + } + return emptyList(); + }; + + List.prototype.push = function(/*...values*/) { + var values = arguments; + var oldSize = this.size; + return this.withMutations(function(list ) { + setListBounds(list, 0, oldSize + values.length); + for (var ii = 0; ii < values.length; ii++) { + list.set(oldSize + ii, values[ii]); + } + }); + }; + + List.prototype.pop = function() { + return setListBounds(this, 0, -1); + }; + + List.prototype.unshift = function(/*...values*/) { + var values = arguments; + return this.withMutations(function(list ) { + setListBounds(list, -values.length); + for (var ii = 0; ii < values.length; ii++) { + list.set(ii, values[ii]); + } + }); + }; + + List.prototype.shift = function() { + return setListBounds(this, 1); + }; + + // @pragma Composition + + List.prototype.merge = function(/*...iters*/) { + return mergeIntoListWith(this, undefined, arguments); + }; + + List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); + return mergeIntoListWith(this, merger, iters); + }; + + List.prototype.mergeDeep = function(/*...iters*/) { + return mergeIntoListWith(this, deepMerger, arguments); + }; + + List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); + return mergeIntoListWith(this, deepMergerWith(merger), iters); + }; + + List.prototype.setSize = function(size) { + return setListBounds(this, 0, size); + }; + + // @pragma Iteration + + List.prototype.slice = function(begin, end) { + var size = this.size; + if (wholeSlice(begin, end, size)) { + return this; + } + return setListBounds( + this, + resolveBegin(begin, size), + resolveEnd(end, size) + ); + }; + + List.prototype.__iterator = function(type, reverse) { + var index = 0; + var values = iterateList(this, reverse); + return new Iterator(function() { + var value = values(); + return value === DONE ? + iteratorDone() : + iteratorValue(type, index++, value); + }); + }; + + List.prototype.__iterate = function(fn, reverse) { + var index = 0; + var values = iterateList(this, reverse); + var value; + while ((value = values()) !== DONE) { + if (fn(value, index++, this) === false) { + break; + } + } + return index; + }; + + List.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + if (!ownerID) { + this.__ownerID = ownerID; + return this; + } + return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash); + }; + + + function isList(maybeList) { + return !!(maybeList && maybeList[IS_LIST_SENTINEL]); + } + + List.isList = isList; + + var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@'; + + var ListPrototype = List.prototype; + ListPrototype[IS_LIST_SENTINEL] = true; + ListPrototype[DELETE] = ListPrototype.remove; + ListPrototype.setIn = MapPrototype.setIn; + ListPrototype.deleteIn = + ListPrototype.removeIn = MapPrototype.removeIn; + ListPrototype.update = MapPrototype.update; + ListPrototype.updateIn = MapPrototype.updateIn; + ListPrototype.mergeIn = MapPrototype.mergeIn; + ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; + ListPrototype.withMutations = MapPrototype.withMutations; + ListPrototype.asMutable = MapPrototype.asMutable; + ListPrototype.asImmutable = MapPrototype.asImmutable; + ListPrototype.wasAltered = MapPrototype.wasAltered; + + + + function VNode(array, ownerID) { + this.array = array; + this.ownerID = ownerID; + } + + // TODO: seems like these methods are very similar + + VNode.prototype.removeBefore = function(ownerID, level, index) { + if (index === level ? 1 << level : 0 || this.array.length === 0) { + return this; + } + var originIndex = (index >>> level) & MASK; + if (originIndex >= this.array.length) { + return new VNode([], ownerID); + } + var removingFirst = originIndex === 0; + var newChild; + if (level > 0) { + var oldChild = this.array[originIndex]; + newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index); + if (newChild === oldChild && removingFirst) { + return this; + } + } + if (removingFirst && !newChild) { + return this; + } + var editable = editableVNode(this, ownerID); + if (!removingFirst) { + for (var ii = 0; ii < originIndex; ii++) { + editable.array[ii] = undefined; + } + } + if (newChild) { + editable.array[originIndex] = newChild; + } + return editable; + }; + + VNode.prototype.removeAfter = function(ownerID, level, index) { + if (index === (level ? 1 << level : 0) || this.array.length === 0) { + return this; + } + var sizeIndex = ((index - 1) >>> level) & MASK; + if (sizeIndex >= this.array.length) { + return this; + } + + var newChild; + if (level > 0) { + var oldChild = this.array[sizeIndex]; + newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index); + if (newChild === oldChild && sizeIndex === this.array.length - 1) { + return this; + } + } + + var editable = editableVNode(this, ownerID); + editable.array.splice(sizeIndex + 1); + if (newChild) { + editable.array[sizeIndex] = newChild; + } + return editable; + }; + + + + var DONE = {}; + + function iterateList(list, reverse) { + var left = list._origin; + var right = list._capacity; + var tailPos = getTailOffset(right); + var tail = list._tail; + + return iterateNodeOrLeaf(list._root, list._level, 0); + + function iterateNodeOrLeaf(node, level, offset) { + return level === 0 ? + iterateLeaf(node, offset) : + iterateNode(node, level, offset); + } + + function iterateLeaf(node, offset) { + var array = offset === tailPos ? tail && tail.array : node && node.array; + var from = offset > left ? 0 : left - offset; + var to = right - offset; + if (to > SIZE) { + to = SIZE; + } + return function() { + if (from === to) { + return DONE; + } + var idx = reverse ? --to : from++; + return array && array[idx]; + }; + } + + function iterateNode(node, level, offset) { + var values; + var array = node && node.array; + var from = offset > left ? 0 : (left - offset) >> level; + var to = ((right - offset) >> level) + 1; + if (to > SIZE) { + to = SIZE; + } + return function() { + do { + if (values) { + var value = values(); + if (value !== DONE) { + return value; + } + values = null; + } + if (from === to) { + return DONE; + } + var idx = reverse ? --to : from++; + values = iterateNodeOrLeaf( + array && array[idx], level - SHIFT, offset + (idx << level) + ); + } while (true); + }; + } + } + + function makeList(origin, capacity, level, root, tail, ownerID, hash) { + var list = Object.create(ListPrototype); + list.size = capacity - origin; + list._origin = origin; + list._capacity = capacity; + list._level = level; + list._root = root; + list._tail = tail; + list.__ownerID = ownerID; + list.__hash = hash; + list.__altered = false; + return list; + } + + var EMPTY_LIST; + function emptyList() { + return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT)); + } + + function updateList(list, index, value) { + index = wrapIndex(list, index); + + if (index !== index) { + return list; + } + + if (index >= list.size || index < 0) { + return list.withMutations(function(list ) { + index < 0 ? + setListBounds(list, index).set(0, value) : + setListBounds(list, 0, index + 1).set(index, value) + }); + } + + index += list._origin; + + var newTail = list._tail; + var newRoot = list._root; + var didAlter = MakeRef(DID_ALTER); + if (index >= getTailOffset(list._capacity)) { + newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter); + } else { + newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter); + } + + if (!didAlter.value) { + return list; + } + + if (list.__ownerID) { + list._root = newRoot; + list._tail = newTail; + list.__hash = undefined; + list.__altered = true; + return list; + } + return makeList(list._origin, list._capacity, list._level, newRoot, newTail); + } + + function updateVNode(node, ownerID, level, index, value, didAlter) { + var idx = (index >>> level) & MASK; + var nodeHas = node && idx < node.array.length; + if (!nodeHas && value === undefined) { + return node; + } + + var newNode; + + if (level > 0) { + var lowerNode = node && node.array[idx]; + var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter); + if (newLowerNode === lowerNode) { + return node; + } + newNode = editableVNode(node, ownerID); + newNode.array[idx] = newLowerNode; + return newNode; + } + + if (nodeHas && node.array[idx] === value) { + return node; + } + + SetRef(didAlter); + + newNode = editableVNode(node, ownerID); + if (value === undefined && idx === newNode.array.length - 1) { + newNode.array.pop(); + } else { + newNode.array[idx] = value; + } + return newNode; + } + + function editableVNode(node, ownerID) { + if (ownerID && node && ownerID === node.ownerID) { + return node; + } + return new VNode(node ? node.array.slice() : [], ownerID); + } + + function listNodeFor(list, rawIndex) { + if (rawIndex >= getTailOffset(list._capacity)) { + return list._tail; + } + if (rawIndex < 1 << (list._level + SHIFT)) { + var node = list._root; + var level = list._level; + while (node && level > 0) { + node = node.array[(rawIndex >>> level) & MASK]; + level -= SHIFT; + } + return node; + } + } + + function setListBounds(list, begin, end) { + // Sanitize begin & end using this shorthand for ToInt32(argument) + // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 + if (begin !== undefined) { + begin = begin | 0; + } + if (end !== undefined) { + end = end | 0; + } + var owner = list.__ownerID || new OwnerID(); + var oldOrigin = list._origin; + var oldCapacity = list._capacity; + var newOrigin = oldOrigin + begin; + var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end; + if (newOrigin === oldOrigin && newCapacity === oldCapacity) { + return list; + } + + // If it's going to end after it starts, it's empty. + if (newOrigin >= newCapacity) { + return list.clear(); + } + + var newLevel = list._level; + var newRoot = list._root; + + // New origin might need creating a higher root. + var offsetShift = 0; + while (newOrigin + offsetShift < 0) { + newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner); + newLevel += SHIFT; + offsetShift += 1 << newLevel; + } + if (offsetShift) { + newOrigin += offsetShift; + oldOrigin += offsetShift; + newCapacity += offsetShift; + oldCapacity += offsetShift; + } + + var oldTailOffset = getTailOffset(oldCapacity); + var newTailOffset = getTailOffset(newCapacity); + + // New size might need creating a higher root. + while (newTailOffset >= 1 << (newLevel + SHIFT)) { + newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner); + newLevel += SHIFT; + } + + // Locate or create the new tail. + var oldTail = list._tail; + var newTail = newTailOffset < oldTailOffset ? + listNodeFor(list, newCapacity - 1) : + newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; + + // Merge Tail into tree. + if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) { + newRoot = editableVNode(newRoot, owner); + var node = newRoot; + for (var level = newLevel; level > SHIFT; level -= SHIFT) { + var idx = (oldTailOffset >>> level) & MASK; + node = node.array[idx] = editableVNode(node.array[idx], owner); + } + node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail; + } + + // If the size has been reduced, there's a chance the tail needs to be trimmed. + if (newCapacity < oldCapacity) { + newTail = newTail && newTail.removeAfter(owner, 0, newCapacity); + } + + // If the new origin is within the tail, then we do not need a root. + if (newOrigin >= newTailOffset) { + newOrigin -= newTailOffset; + newCapacity -= newTailOffset; + newLevel = SHIFT; + newRoot = null; + newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); + + // Otherwise, if the root has been trimmed, garbage collect. + } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) { + offsetShift = 0; + + // Identify the new top root node of the subtree of the old root. + while (newRoot) { + var beginIndex = (newOrigin >>> newLevel) & MASK; + if (beginIndex !== (newTailOffset >>> newLevel) & MASK) { + break; + } + if (beginIndex) { + offsetShift += (1 << newLevel) * beginIndex; + } + newLevel -= SHIFT; + newRoot = newRoot.array[beginIndex]; + } + + // Trim the new sides of the new root. + if (newRoot && newOrigin > oldOrigin) { + newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift); + } + if (newRoot && newTailOffset < oldTailOffset) { + newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift); + } + if (offsetShift) { + newOrigin -= offsetShift; + newCapacity -= offsetShift; + } + } + + if (list.__ownerID) { + list.size = newCapacity - newOrigin; + list._origin = newOrigin; + list._capacity = newCapacity; + list._level = newLevel; + list._root = newRoot; + list._tail = newTail; + list.__hash = undefined; + list.__altered = true; + return list; + } + return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail); + } + + function mergeIntoListWith(list, merger, iterables) { + var iters = []; + var maxSize = 0; + for (var ii = 0; ii < iterables.length; ii++) { + var value = iterables[ii]; + var iter = IndexedIterable(value); + if (iter.size > maxSize) { + maxSize = iter.size; + } + if (!isIterable(value)) { + iter = iter.map(function(v ) {return fromJS(v)}); + } + iters.push(iter); + } + if (maxSize > list.size) { + list = list.setSize(maxSize); + } + return mergeIntoCollectionWith(list, merger, iters); + } + + function getTailOffset(size) { + return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT); + } + + createClass(OrderedMap, Map); + + // @pragma Construction + + function OrderedMap(value) { + return value === null || value === undefined ? emptyOrderedMap() : + isOrderedMap(value) ? value : + emptyOrderedMap().withMutations(function(map ) { + var iter = KeyedIterable(value); + assertNotInfinite(iter.size); + iter.forEach(function(v, k) {return map.set(k, v)}); + }); + } + + OrderedMap.of = function(/*...values*/) { + return this(arguments); + }; + + OrderedMap.prototype.toString = function() { + return this.__toString('OrderedMap {', '}'); + }; + + // @pragma Access + + OrderedMap.prototype.get = function(k, notSetValue) { + var index = this._map.get(k); + return index !== undefined ? this._list.get(index)[1] : notSetValue; + }; + + // @pragma Modification + + OrderedMap.prototype.clear = function() { + if (this.size === 0) { + return this; + } + if (this.__ownerID) { + this.size = 0; + this._map.clear(); + this._list.clear(); + return this; + } + return emptyOrderedMap(); + }; + + OrderedMap.prototype.set = function(k, v) { + return updateOrderedMap(this, k, v); + }; + + OrderedMap.prototype.remove = function(k) { + return updateOrderedMap(this, k, NOT_SET); + }; + + OrderedMap.prototype.wasAltered = function() { + return this._map.wasAltered() || this._list.wasAltered(); + }; + + OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this; + return this._list.__iterate( + function(entry ) {return entry && fn(entry[1], entry[0], this$0)}, + reverse + ); + }; + + OrderedMap.prototype.__iterator = function(type, reverse) { + return this._list.fromEntrySeq().__iterator(type, reverse); + }; + + OrderedMap.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + var newMap = this._map.__ensureOwner(ownerID); + var newList = this._list.__ensureOwner(ownerID); + if (!ownerID) { + this.__ownerID = ownerID; + this._map = newMap; + this._list = newList; + return this; + } + return makeOrderedMap(newMap, newList, ownerID, this.__hash); + }; + + + function isOrderedMap(maybeOrderedMap) { + return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap); + } + + OrderedMap.isOrderedMap = isOrderedMap; + + OrderedMap.prototype[IS_ORDERED_SENTINEL] = true; + OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove; + + + + function makeOrderedMap(map, list, ownerID, hash) { + var omap = Object.create(OrderedMap.prototype); + omap.size = map ? map.size : 0; + omap._map = map; + omap._list = list; + omap.__ownerID = ownerID; + omap.__hash = hash; + return omap; + } + + var EMPTY_ORDERED_MAP; + function emptyOrderedMap() { + return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList())); + } + + function updateOrderedMap(omap, k, v) { + var map = omap._map; + var list = omap._list; + var i = map.get(k); + var has = i !== undefined; + var newMap; + var newList; + if (v === NOT_SET) { // removed + if (!has) { + return omap; + } + if (list.size >= SIZE && list.size >= map.size * 2) { + newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx}); + newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap(); + if (omap.__ownerID) { + newMap.__ownerID = newList.__ownerID = omap.__ownerID; + } + } else { + newMap = map.remove(k); + newList = i === list.size - 1 ? list.pop() : list.set(i, undefined); + } + } else { + if (has) { + if (v === list.get(i)[1]) { + return omap; + } + newMap = map; + newList = list.set(i, [k, v]); + } else { + newMap = map.set(k, list.size); + newList = list.set(list.size, [k, v]); + } + } + if (omap.__ownerID) { + omap.size = newMap.size; + omap._map = newMap; + omap._list = newList; + omap.__hash = undefined; + return omap; + } + return makeOrderedMap(newMap, newList); + } + + createClass(ToKeyedSequence, KeyedSeq); + function ToKeyedSequence(indexed, useKeys) { + this._iter = indexed; + this._useKeys = useKeys; + this.size = indexed.size; + } + + ToKeyedSequence.prototype.get = function(key, notSetValue) { + return this._iter.get(key, notSetValue); + }; + + ToKeyedSequence.prototype.has = function(key) { + return this._iter.has(key); + }; + + ToKeyedSequence.prototype.valueSeq = function() { + return this._iter.valueSeq(); + }; + + ToKeyedSequence.prototype.reverse = function() {var this$0 = this; + var reversedSequence = reverseFactory(this, true); + if (!this._useKeys) { + reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()}; + } + return reversedSequence; + }; + + ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this; + var mappedSequence = mapFactory(this, mapper, context); + if (!this._useKeys) { + mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)}; + } + return mappedSequence; + }; + + ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; + var ii; + return this._iter.__iterate( + this._useKeys ? + function(v, k) {return fn(v, k, this$0)} : + ((ii = reverse ? resolveSize(this) : 0), + function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}), + reverse + ); + }; + + ToKeyedSequence.prototype.__iterator = function(type, reverse) { + if (this._useKeys) { + return this._iter.__iterator(type, reverse); + } + var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); + var ii = reverse ? resolveSize(this) : 0; + return new Iterator(function() { + var step = iterator.next(); + return step.done ? step : + iteratorValue(type, reverse ? --ii : ii++, step.value, step); + }); + }; + + ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true; + + + createClass(ToIndexedSequence, IndexedSeq); + function ToIndexedSequence(iter) { + this._iter = iter; + this.size = iter.size; + } + + ToIndexedSequence.prototype.includes = function(value) { + return this._iter.includes(value); + }; + + ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; + var iterations = 0; + return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse); + }; + + ToIndexedSequence.prototype.__iterator = function(type, reverse) { + var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); + var iterations = 0; + return new Iterator(function() { + var step = iterator.next(); + return step.done ? step : + iteratorValue(type, iterations++, step.value, step) + }); + }; + + + + createClass(ToSetSequence, SetSeq); + function ToSetSequence(iter) { + this._iter = iter; + this.size = iter.size; + } + + ToSetSequence.prototype.has = function(key) { + return this._iter.includes(key); + }; + + ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; + return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse); + }; + + ToSetSequence.prototype.__iterator = function(type, reverse) { + var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); + return new Iterator(function() { + var step = iterator.next(); + return step.done ? step : + iteratorValue(type, step.value, step.value, step); + }); + }; + + + + createClass(FromEntriesSequence, KeyedSeq); + function FromEntriesSequence(entries) { + this._iter = entries; + this.size = entries.size; + } + + FromEntriesSequence.prototype.entrySeq = function() { + return this._iter.toSeq(); + }; + + FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; + return this._iter.__iterate(function(entry ) { + // Check if entry exists first so array access doesn't throw for holes + // in the parent iteration. + if (entry) { + validateEntry(entry); + var indexedIterable = isIterable(entry); + return fn( + indexedIterable ? entry.get(1) : entry[1], + indexedIterable ? entry.get(0) : entry[0], + this$0 + ); + } + }, reverse); + }; + + FromEntriesSequence.prototype.__iterator = function(type, reverse) { + var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); + return new Iterator(function() { + while (true) { + var step = iterator.next(); + if (step.done) { + return step; + } + var entry = step.value; + // Check if entry exists first so array access doesn't throw for holes + // in the parent iteration. + if (entry) { + validateEntry(entry); + var indexedIterable = isIterable(entry); + return iteratorValue( + type, + indexedIterable ? entry.get(0) : entry[0], + indexedIterable ? entry.get(1) : entry[1], + step + ); + } + } + }); + }; + + + ToIndexedSequence.prototype.cacheResult = + ToKeyedSequence.prototype.cacheResult = + ToSetSequence.prototype.cacheResult = + FromEntriesSequence.prototype.cacheResult = + cacheResultThrough; + + + function flipFactory(iterable) { + var flipSequence = makeSequence(iterable); + flipSequence._iter = iterable; + flipSequence.size = iterable.size; + flipSequence.flip = function() {return iterable}; + flipSequence.reverse = function () { + var reversedSequence = iterable.reverse.apply(this); // super.reverse() + reversedSequence.flip = function() {return iterable.reverse()}; + return reversedSequence; + }; + flipSequence.has = function(key ) {return iterable.includes(key)}; + flipSequence.includes = function(key ) {return iterable.has(key)}; + flipSequence.cacheResult = cacheResultThrough; + flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; + return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse); + } + flipSequence.__iteratorUncached = function(type, reverse) { + if (type === ITERATE_ENTRIES) { + var iterator = iterable.__iterator(type, reverse); + return new Iterator(function() { + var step = iterator.next(); + if (!step.done) { + var k = step.value[0]; + step.value[0] = step.value[1]; + step.value[1] = k; + } + return step; + }); + } + return iterable.__iterator( + type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, + reverse + ); + } + return flipSequence; + } + + + function mapFactory(iterable, mapper, context) { + var mappedSequence = makeSequence(iterable); + mappedSequence.size = iterable.size; + mappedSequence.has = function(key ) {return iterable.has(key)}; + mappedSequence.get = function(key, notSetValue) { + var v = iterable.get(key, NOT_SET); + return v === NOT_SET ? + notSetValue : + mapper.call(context, v, key, iterable); + }; + mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; + return iterable.__iterate( + function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false}, + reverse + ); + } + mappedSequence.__iteratorUncached = function (type, reverse) { + var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); + return new Iterator(function() { + var step = iterator.next(); + if (step.done) { + return step; + } + var entry = step.value; + var key = entry[0]; + return iteratorValue( + type, + key, + mapper.call(context, entry[1], key, iterable), + step + ); + }); + } + return mappedSequence; + } + + + function reverseFactory(iterable, useKeys) { + var reversedSequence = makeSequence(iterable); + reversedSequence._iter = iterable; + reversedSequence.size = iterable.size; + reversedSequence.reverse = function() {return iterable}; + if (iterable.flip) { + reversedSequence.flip = function () { + var flipSequence = flipFactory(iterable); + flipSequence.reverse = function() {return iterable.flip()}; + return flipSequence; + }; + } + reversedSequence.get = function(key, notSetValue) + {return iterable.get(useKeys ? key : -1 - key, notSetValue)}; + reversedSequence.has = function(key ) + {return iterable.has(useKeys ? key : -1 - key)}; + reversedSequence.includes = function(value ) {return iterable.includes(value)}; + reversedSequence.cacheResult = cacheResultThrough; + reversedSequence.__iterate = function (fn, reverse) {var this$0 = this; + return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse); + }; + reversedSequence.__iterator = + function(type, reverse) {return iterable.__iterator(type, !reverse)}; + return reversedSequence; + } + + + function filterFactory(iterable, predicate, context, useKeys) { + var filterSequence = makeSequence(iterable); + if (useKeys) { + filterSequence.has = function(key ) { + var v = iterable.get(key, NOT_SET); + return v !== NOT_SET && !!predicate.call(context, v, key, iterable); + }; + filterSequence.get = function(key, notSetValue) { + var v = iterable.get(key, NOT_SET); + return v !== NOT_SET && predicate.call(context, v, key, iterable) ? + v : notSetValue; + }; + } + filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; + var iterations = 0; + iterable.__iterate(function(v, k, c) { + if (predicate.call(context, v, k, c)) { + iterations++; + return fn(v, useKeys ? k : iterations - 1, this$0); + } + }, reverse); + return iterations; + }; + filterSequence.__iteratorUncached = function (type, reverse) { + var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); + var iterations = 0; + return new Iterator(function() { + while (true) { + var step = iterator.next(); + if (step.done) { + return step; + } + var entry = step.value; + var key = entry[0]; + var value = entry[1]; + if (predicate.call(context, value, key, iterable)) { + return iteratorValue(type, useKeys ? key : iterations++, value, step); + } + } + }); + } + return filterSequence; + } + + + function countByFactory(iterable, grouper, context) { + var groups = Map().asMutable(); + iterable.__iterate(function(v, k) { + groups.update( + grouper.call(context, v, k, iterable), + 0, + function(a ) {return a + 1} + ); + }); + return groups.asImmutable(); + } + + + function groupByFactory(iterable, grouper, context) { + var isKeyedIter = isKeyed(iterable); + var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable(); + iterable.__iterate(function(v, k) { + groups.update( + grouper.call(context, v, k, iterable), + function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)} + ); + }); + var coerce = iterableClass(iterable); + return groups.map(function(arr ) {return reify(iterable, coerce(arr))}); + } + + + function sliceFactory(iterable, begin, end, useKeys) { + var originalSize = iterable.size; + + // Sanitize begin & end using this shorthand for ToInt32(argument) + // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 + if (begin !== undefined) { + begin = begin | 0; + } + if (end !== undefined) { + if (end === Infinity) { + end = originalSize; + } else { + end = end | 0; + } + } + + if (wholeSlice(begin, end, originalSize)) { + return iterable; + } + + var resolvedBegin = resolveBegin(begin, originalSize); + var resolvedEnd = resolveEnd(end, originalSize); + + // begin or end will be NaN if they were provided as negative numbers and + // this iterable's size is unknown. In that case, cache first so there is + // a known size and these do not resolve to NaN. + if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) { + return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys); + } + + // Note: resolvedEnd is undefined when the original sequence's length is + // unknown and this slice did not supply an end and should contain all + // elements after resolvedBegin. + // In that case, resolvedSize will be NaN and sliceSize will remain undefined. + var resolvedSize = resolvedEnd - resolvedBegin; + var sliceSize; + if (resolvedSize === resolvedSize) { + sliceSize = resolvedSize < 0 ? 0 : resolvedSize; + } + + var sliceSeq = makeSequence(iterable); + + // If iterable.size is undefined, the size of the realized sliceSeq is + // unknown at this point unless the number of items to slice is 0 + sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined; + + if (!useKeys && isSeq(iterable) && sliceSize >= 0) { + sliceSeq.get = function (index, notSetValue) { + index = wrapIndex(this, index); + return index >= 0 && index < sliceSize ? + iterable.get(index + resolvedBegin, notSetValue) : + notSetValue; + } + } + + sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this; + if (sliceSize === 0) { + return 0; + } + if (reverse) { + return this.cacheResult().__iterate(fn, reverse); + } + var skipped = 0; + var isSkipping = true; + var iterations = 0; + iterable.__iterate(function(v, k) { + if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) { + iterations++; + return fn(v, useKeys ? k : iterations - 1, this$0) !== false && + iterations !== sliceSize; + } + }); + return iterations; + }; + + sliceSeq.__iteratorUncached = function(type, reverse) { + if (sliceSize !== 0 && reverse) { + return this.cacheResult().__iterator(type, reverse); + } + // Don't bother instantiating parent iterator if taking 0. + var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse); + var skipped = 0; + var iterations = 0; + return new Iterator(function() { + while (skipped++ < resolvedBegin) { + iterator.next(); + } + if (++iterations > sliceSize) { + return iteratorDone(); + } + var step = iterator.next(); + if (useKeys || type === ITERATE_VALUES) { + return step; + } else if (type === ITERATE_KEYS) { + return iteratorValue(type, iterations - 1, undefined, step); + } else { + return iteratorValue(type, iterations - 1, step.value[1], step); + } + }); + } + + return sliceSeq; + } + + + function takeWhileFactory(iterable, predicate, context) { + var takeSequence = makeSequence(iterable); + takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; + if (reverse) { + return this.cacheResult().__iterate(fn, reverse); + } + var iterations = 0; + iterable.__iterate(function(v, k, c) + {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)} + ); + return iterations; + }; + takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; + if (reverse) { + return this.cacheResult().__iterator(type, reverse); + } + var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); + var iterating = true; + return new Iterator(function() { + if (!iterating) { + return iteratorDone(); + } + var step = iterator.next(); + if (step.done) { + return step; + } + var entry = step.value; + var k = entry[0]; + var v = entry[1]; + if (!predicate.call(context, v, k, this$0)) { + iterating = false; + return iteratorDone(); + } + return type === ITERATE_ENTRIES ? step : + iteratorValue(type, k, v, step); + }); + }; + return takeSequence; + } + + + function skipWhileFactory(iterable, predicate, context, useKeys) { + var skipSequence = makeSequence(iterable); + skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; + if (reverse) { + return this.cacheResult().__iterate(fn, reverse); + } + var isSkipping = true; + var iterations = 0; + iterable.__iterate(function(v, k, c) { + if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) { + iterations++; + return fn(v, useKeys ? k : iterations - 1, this$0); + } + }); + return iterations; + }; + skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; + if (reverse) { + return this.cacheResult().__iterator(type, reverse); + } + var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); + var skipping = true; + var iterations = 0; + return new Iterator(function() { + var step, k, v; + do { + step = iterator.next(); + if (step.done) { + if (useKeys || type === ITERATE_VALUES) { + return step; + } else if (type === ITERATE_KEYS) { + return iteratorValue(type, iterations++, undefined, step); + } else { + return iteratorValue(type, iterations++, step.value[1], step); + } + } + var entry = step.value; + k = entry[0]; + v = entry[1]; + skipping && (skipping = predicate.call(context, v, k, this$0)); + } while (skipping); + return type === ITERATE_ENTRIES ? step : + iteratorValue(type, k, v, step); + }); + }; + return skipSequence; + } + + + function concatFactory(iterable, values) { + var isKeyedIterable = isKeyed(iterable); + var iters = [iterable].concat(values).map(function(v ) { + if (!isIterable(v)) { + v = isKeyedIterable ? + keyedSeqFromValue(v) : + indexedSeqFromValue(Array.isArray(v) ? v : [v]); + } else if (isKeyedIterable) { + v = KeyedIterable(v); + } + return v; + }).filter(function(v ) {return v.size !== 0}); + + if (iters.length === 0) { + return iterable; + } + + if (iters.length === 1) { + var singleton = iters[0]; + if (singleton === iterable || + isKeyedIterable && isKeyed(singleton) || + isIndexed(iterable) && isIndexed(singleton)) { + return singleton; + } + } + + var concatSeq = new ArraySeq(iters); + if (isKeyedIterable) { + concatSeq = concatSeq.toKeyedSeq(); + } else if (!isIndexed(iterable)) { + concatSeq = concatSeq.toSetSeq(); + } + concatSeq = concatSeq.flatten(true); + concatSeq.size = iters.reduce( + function(sum, seq) { + if (sum !== undefined) { + var size = seq.size; + if (size !== undefined) { + return sum + size; + } + } + }, + 0 + ); + return concatSeq; + } + + + function flattenFactory(iterable, depth, useKeys) { + var flatSequence = makeSequence(iterable); + flatSequence.__iterateUncached = function(fn, reverse) { + var iterations = 0; + var stopped = false; + function flatDeep(iter, currentDepth) {var this$0 = this; + iter.__iterate(function(v, k) { + if ((!depth || currentDepth < depth) && isIterable(v)) { + flatDeep(v, currentDepth + 1); + } else if (fn(v, useKeys ? k : iterations++, this$0) === false) { + stopped = true; + } + return !stopped; + }, reverse); + } + flatDeep(iterable, 0); + return iterations; + } + flatSequence.__iteratorUncached = function(type, reverse) { + var iterator = iterable.__iterator(type, reverse); + var stack = []; + var iterations = 0; + return new Iterator(function() { + while (iterator) { + var step = iterator.next(); + if (step.done !== false) { + iterator = stack.pop(); + continue; + } + var v = step.value; + if (type === ITERATE_ENTRIES) { + v = v[1]; + } + if ((!depth || stack.length < depth) && isIterable(v)) { + stack.push(iterator); + iterator = v.__iterator(type, reverse); + } else { + return useKeys ? step : iteratorValue(type, iterations++, v, step); + } + } + return iteratorDone(); + }); + } + return flatSequence; + } + + + function flatMapFactory(iterable, mapper, context) { + var coerce = iterableClass(iterable); + return iterable.toSeq().map( + function(v, k) {return coerce(mapper.call(context, v, k, iterable))} + ).flatten(true); + } + + + function interposeFactory(iterable, separator) { + var interposedSequence = makeSequence(iterable); + interposedSequence.size = iterable.size && iterable.size * 2 -1; + interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; + var iterations = 0; + iterable.__iterate(function(v, k) + {return (!iterations || fn(separator, iterations++, this$0) !== false) && + fn(v, iterations++, this$0) !== false}, + reverse + ); + return iterations; + }; + interposedSequence.__iteratorUncached = function(type, reverse) { + var iterator = iterable.__iterator(ITERATE_VALUES, reverse); + var iterations = 0; + var step; + return new Iterator(function() { + if (!step || iterations % 2) { + step = iterator.next(); + if (step.done) { + return step; + } + } + return iterations % 2 ? + iteratorValue(type, iterations++, separator) : + iteratorValue(type, iterations++, step.value, step); + }); + }; + return interposedSequence; + } + + + function sortFactory(iterable, comparator, mapper) { + if (!comparator) { + comparator = defaultComparator; + } + var isKeyedIterable = isKeyed(iterable); + var index = 0; + var entries = iterable.toSeq().map( + function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]} + ).toArray(); + entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach( + isKeyedIterable ? + function(v, i) { entries[i].length = 2; } : + function(v, i) { entries[i] = v[1]; } + ); + return isKeyedIterable ? KeyedSeq(entries) : + isIndexed(iterable) ? IndexedSeq(entries) : + SetSeq(entries); + } + + + function maxFactory(iterable, comparator, mapper) { + if (!comparator) { + comparator = defaultComparator; + } + if (mapper) { + var entry = iterable.toSeq() + .map(function(v, k) {return [v, mapper(v, k, iterable)]}) + .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a}); + return entry && entry[0]; + } else { + return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a}); + } + } + + function maxCompare(comparator, a, b) { + var comp = comparator(b, a); + // b is considered the new max if the comparator declares them equal, but + // they are not equal and b is in fact a nullish value. + return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0; + } + + + function zipWithFactory(keyIter, zipper, iters) { + var zipSequence = makeSequence(keyIter); + zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min(); + // Note: this a generic base implementation of __iterate in terms of + // __iterator which may be more generically useful in the future. + zipSequence.__iterate = function(fn, reverse) { + /* generic: + var iterator = this.__iterator(ITERATE_ENTRIES, reverse); + var step; + var iterations = 0; + while (!(step = iterator.next()).done) { + iterations++; + if (fn(step.value[1], step.value[0], this) === false) { + break; + } + } + return iterations; + */ + // indexed: + var iterator = this.__iterator(ITERATE_VALUES, reverse); + var step; + var iterations = 0; + while (!(step = iterator.next()).done) { + if (fn(step.value, iterations++, this) === false) { + break; + } + } + return iterations; + }; + zipSequence.__iteratorUncached = function(type, reverse) { + var iterators = iters.map(function(i ) + {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))} + ); + var iterations = 0; + var isDone = false; + return new Iterator(function() { + var steps; + if (!isDone) { + steps = iterators.map(function(i ) {return i.next()}); + isDone = steps.some(function(s ) {return s.done}); + } + if (isDone) { + return iteratorDone(); + } + return iteratorValue( + type, + iterations++, + zipper.apply(null, steps.map(function(s ) {return s.value})) + ); + }); + }; + return zipSequence + } + + + // #pragma Helper Functions + + function reify(iter, seq) { + return isSeq(iter) ? seq : iter.constructor(seq); + } + + function validateEntry(entry) { + if (entry !== Object(entry)) { + throw new TypeError('Expected [K, V] tuple: ' + entry); + } + } + + function resolveSize(iter) { + assertNotInfinite(iter.size); + return ensureSize(iter); + } + + function iterableClass(iterable) { + return isKeyed(iterable) ? KeyedIterable : + isIndexed(iterable) ? IndexedIterable : + SetIterable; + } + + function makeSequence(iterable) { + return Object.create( + ( + isKeyed(iterable) ? KeyedSeq : + isIndexed(iterable) ? IndexedSeq : + SetSeq + ).prototype + ); + } + + function cacheResultThrough() { + if (this._iter.cacheResult) { + this._iter.cacheResult(); + this.size = this._iter.size; + return this; + } else { + return Seq.prototype.cacheResult.call(this); + } + } + + function defaultComparator(a, b) { + return a > b ? 1 : a < b ? -1 : 0; + } + + function forceIterator(keyPath) { + var iter = getIterator(keyPath); + if (!iter) { + // Array might not be iterable in this environment, so we need a fallback + // to our wrapped type. + if (!isArrayLike(keyPath)) { + throw new TypeError('Expected iterable or array-like: ' + keyPath); + } + iter = getIterator(Iterable(keyPath)); + } + return iter; + } + + createClass(Record, KeyedCollection); + + function Record(defaultValues, name) { + var hasInitialized; + + var RecordType = function Record(values) { + if (values instanceof RecordType) { + return values; + } + if (!(this instanceof RecordType)) { + return new RecordType(values); + } + if (!hasInitialized) { + hasInitialized = true; + var keys = Object.keys(defaultValues); + setProps(RecordTypePrototype, keys); + RecordTypePrototype.size = keys.length; + RecordTypePrototype._name = name; + RecordTypePrototype._keys = keys; + RecordTypePrototype._defaultValues = defaultValues; + } + this._map = Map(values); + }; + + var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype); + RecordTypePrototype.constructor = RecordType; + + return RecordType; + } + + Record.prototype.toString = function() { + return this.__toString(recordName(this) + ' {', '}'); + }; + + // @pragma Access + + Record.prototype.has = function(k) { + return this._defaultValues.hasOwnProperty(k); + }; + + Record.prototype.get = function(k, notSetValue) { + if (!this.has(k)) { + return notSetValue; + } + var defaultVal = this._defaultValues[k]; + return this._map ? this._map.get(k, defaultVal) : defaultVal; + }; + + // @pragma Modification + + Record.prototype.clear = function() { + if (this.__ownerID) { + this._map && this._map.clear(); + return this; + } + var RecordType = this.constructor; + return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap())); + }; + + Record.prototype.set = function(k, v) { + if (!this.has(k)) { + throw new Error('Cannot set unknown key "' + k + '" on ' + recordName(this)); + } + if (this._map && !this._map.has(k)) { + var defaultVal = this._defaultValues[k]; + if (v === defaultVal) { + return this; + } + } + var newMap = this._map && this._map.set(k, v); + if (this.__ownerID || newMap === this._map) { + return this; + } + return makeRecord(this, newMap); + }; + + Record.prototype.remove = function(k) { + if (!this.has(k)) { + return this; + } + var newMap = this._map && this._map.remove(k); + if (this.__ownerID || newMap === this._map) { + return this; + } + return makeRecord(this, newMap); + }; + + Record.prototype.wasAltered = function() { + return this._map.wasAltered(); + }; + + Record.prototype.__iterator = function(type, reverse) {var this$0 = this; + return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse); + }; + + Record.prototype.__iterate = function(fn, reverse) {var this$0 = this; + return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse); + }; + + Record.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + var newMap = this._map && this._map.__ensureOwner(ownerID); + if (!ownerID) { + this.__ownerID = ownerID; + this._map = newMap; + return this; + } + return makeRecord(this, newMap, ownerID); + }; + + + var RecordPrototype = Record.prototype; + RecordPrototype[DELETE] = RecordPrototype.remove; + RecordPrototype.deleteIn = + RecordPrototype.removeIn = MapPrototype.removeIn; + RecordPrototype.merge = MapPrototype.merge; + RecordPrototype.mergeWith = MapPrototype.mergeWith; + RecordPrototype.mergeIn = MapPrototype.mergeIn; + RecordPrototype.mergeDeep = MapPrototype.mergeDeep; + RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith; + RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; + RecordPrototype.setIn = MapPrototype.setIn; + RecordPrototype.update = MapPrototype.update; + RecordPrototype.updateIn = MapPrototype.updateIn; + RecordPrototype.withMutations = MapPrototype.withMutations; + RecordPrototype.asMutable = MapPrototype.asMutable; + RecordPrototype.asImmutable = MapPrototype.asImmutable; + + + function makeRecord(likeRecord, map, ownerID) { + var record = Object.create(Object.getPrototypeOf(likeRecord)); + record._map = map; + record.__ownerID = ownerID; + return record; + } + + function recordName(record) { + return record._name || record.constructor.name || 'Record'; + } + + function setProps(prototype, names) { + try { + names.forEach(setProp.bind(undefined, prototype)); + } catch (error) { + // Object.defineProperty failed. Probably IE8. + } + } + + function setProp(prototype, name) { + Object.defineProperty(prototype, name, { + get: function() { + return this.get(name); + }, + set: function(value) { + invariant(this.__ownerID, 'Cannot set on an immutable record.'); + this.set(name, value); + } + }); + } + + createClass(Set, SetCollection); + + // @pragma Construction + + function Set(value) { + return value === null || value === undefined ? emptySet() : + isSet(value) && !isOrdered(value) ? value : + emptySet().withMutations(function(set ) { + var iter = SetIterable(value); + assertNotInfinite(iter.size); + iter.forEach(function(v ) {return set.add(v)}); + }); + } + + Set.of = function(/*...values*/) { + return this(arguments); + }; + + Set.fromKeys = function(value) { + return this(KeyedIterable(value).keySeq()); + }; + + Set.prototype.toString = function() { + return this.__toString('Set {', '}'); + }; + + // @pragma Access + + Set.prototype.has = function(value) { + return this._map.has(value); + }; + + // @pragma Modification + + Set.prototype.add = function(value) { + return updateSet(this, this._map.set(value, true)); + }; + + Set.prototype.remove = function(value) { + return updateSet(this, this._map.remove(value)); + }; + + Set.prototype.clear = function() { + return updateSet(this, this._map.clear()); + }; + + // @pragma Composition + + Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0); + iters = iters.filter(function(x ) {return x.size !== 0}); + if (iters.length === 0) { + return this; + } + if (this.size === 0 && !this.__ownerID && iters.length === 1) { + return this.constructor(iters[0]); + } + return this.withMutations(function(set ) { + for (var ii = 0; ii < iters.length; ii++) { + SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)}); + } + }); + }; + + Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0); + if (iters.length === 0) { + return this; + } + iters = iters.map(function(iter ) {return SetIterable(iter)}); + var originalSet = this; + return this.withMutations(function(set ) { + originalSet.forEach(function(value ) { + if (!iters.every(function(iter ) {return iter.includes(value)})) { + set.remove(value); + } + }); + }); + }; + + Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0); + if (iters.length === 0) { + return this; + } + iters = iters.map(function(iter ) {return SetIterable(iter)}); + var originalSet = this; + return this.withMutations(function(set ) { + originalSet.forEach(function(value ) { + if (iters.some(function(iter ) {return iter.includes(value)})) { + set.remove(value); + } + }); + }); + }; + + Set.prototype.merge = function() { + return this.union.apply(this, arguments); + }; + + Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); + return this.union.apply(this, iters); + }; + + Set.prototype.sort = function(comparator) { + // Late binding + return OrderedSet(sortFactory(this, comparator)); + }; + + Set.prototype.sortBy = function(mapper, comparator) { + // Late binding + return OrderedSet(sortFactory(this, comparator, mapper)); + }; + + Set.prototype.wasAltered = function() { + return this._map.wasAltered(); + }; + + Set.prototype.__iterate = function(fn, reverse) {var this$0 = this; + return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse); + }; + + Set.prototype.__iterator = function(type, reverse) { + return this._map.map(function(_, k) {return k}).__iterator(type, reverse); + }; + + Set.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + var newMap = this._map.__ensureOwner(ownerID); + if (!ownerID) { + this.__ownerID = ownerID; + this._map = newMap; + return this; + } + return this.__make(newMap, ownerID); + }; + + + function isSet(maybeSet) { + return !!(maybeSet && maybeSet[IS_SET_SENTINEL]); + } + + Set.isSet = isSet; + + var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@'; + + var SetPrototype = Set.prototype; + SetPrototype[IS_SET_SENTINEL] = true; + SetPrototype[DELETE] = SetPrototype.remove; + SetPrototype.mergeDeep = SetPrototype.merge; + SetPrototype.mergeDeepWith = SetPrototype.mergeWith; + SetPrototype.withMutations = MapPrototype.withMutations; + SetPrototype.asMutable = MapPrototype.asMutable; + SetPrototype.asImmutable = MapPrototype.asImmutable; + + SetPrototype.__empty = emptySet; + SetPrototype.__make = makeSet; + + function updateSet(set, newMap) { + if (set.__ownerID) { + set.size = newMap.size; + set._map = newMap; + return set; + } + return newMap === set._map ? set : + newMap.size === 0 ? set.__empty() : + set.__make(newMap); + } + + function makeSet(map, ownerID) { + var set = Object.create(SetPrototype); + set.size = map ? map.size : 0; + set._map = map; + set.__ownerID = ownerID; + return set; + } + + var EMPTY_SET; + function emptySet() { + return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap())); + } + + createClass(OrderedSet, Set); + + // @pragma Construction + + function OrderedSet(value) { + return value === null || value === undefined ? emptyOrderedSet() : + isOrderedSet(value) ? value : + emptyOrderedSet().withMutations(function(set ) { + var iter = SetIterable(value); + assertNotInfinite(iter.size); + iter.forEach(function(v ) {return set.add(v)}); + }); + } + + OrderedSet.of = function(/*...values*/) { + return this(arguments); + }; + + OrderedSet.fromKeys = function(value) { + return this(KeyedIterable(value).keySeq()); + }; + + OrderedSet.prototype.toString = function() { + return this.__toString('OrderedSet {', '}'); + }; + + + function isOrderedSet(maybeOrderedSet) { + return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet); + } + + OrderedSet.isOrderedSet = isOrderedSet; + + var OrderedSetPrototype = OrderedSet.prototype; + OrderedSetPrototype[IS_ORDERED_SENTINEL] = true; + + OrderedSetPrototype.__empty = emptyOrderedSet; + OrderedSetPrototype.__make = makeOrderedSet; + + function makeOrderedSet(map, ownerID) { + var set = Object.create(OrderedSetPrototype); + set.size = map ? map.size : 0; + set._map = map; + set.__ownerID = ownerID; + return set; + } + + var EMPTY_ORDERED_SET; + function emptyOrderedSet() { + return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap())); + } + + createClass(Stack, IndexedCollection); + + // @pragma Construction + + function Stack(value) { + return value === null || value === undefined ? emptyStack() : + isStack(value) ? value : + emptyStack().unshiftAll(value); + } + + Stack.of = function(/*...values*/) { + return this(arguments); + }; + + Stack.prototype.toString = function() { + return this.__toString('Stack [', ']'); + }; + + // @pragma Access + + Stack.prototype.get = function(index, notSetValue) { + var head = this._head; + index = wrapIndex(this, index); + while (head && index--) { + head = head.next; + } + return head ? head.value : notSetValue; + }; + + Stack.prototype.peek = function() { + return this._head && this._head.value; + }; + + // @pragma Modification + + Stack.prototype.push = function(/*...values*/) { + if (arguments.length === 0) { + return this; + } + var newSize = this.size + arguments.length; + var head = this._head; + for (var ii = arguments.length - 1; ii >= 0; ii--) { + head = { + value: arguments[ii], + next: head + }; + } + if (this.__ownerID) { + this.size = newSize; + this._head = head; + this.__hash = undefined; + this.__altered = true; + return this; + } + return makeStack(newSize, head); + }; + + Stack.prototype.pushAll = function(iter) { + iter = IndexedIterable(iter); + if (iter.size === 0) { + return this; + } + assertNotInfinite(iter.size); + var newSize = this.size; + var head = this._head; + iter.reverse().forEach(function(value ) { + newSize++; + head = { + value: value, + next: head + }; + }); + if (this.__ownerID) { + this.size = newSize; + this._head = head; + this.__hash = undefined; + this.__altered = true; + return this; + } + return makeStack(newSize, head); + }; + + Stack.prototype.pop = function() { + return this.slice(1); + }; + + Stack.prototype.unshift = function(/*...values*/) { + return this.push.apply(this, arguments); + }; + + Stack.prototype.unshiftAll = function(iter) { + return this.pushAll(iter); + }; + + Stack.prototype.shift = function() { + return this.pop.apply(this, arguments); + }; + + Stack.prototype.clear = function() { + if (this.size === 0) { + return this; + } + if (this.__ownerID) { + this.size = 0; + this._head = undefined; + this.__hash = undefined; + this.__altered = true; + return this; + } + return emptyStack(); + }; + + Stack.prototype.slice = function(begin, end) { + if (wholeSlice(begin, end, this.size)) { + return this; + } + var resolvedBegin = resolveBegin(begin, this.size); + var resolvedEnd = resolveEnd(end, this.size); + if (resolvedEnd !== this.size) { + // super.slice(begin, end); + return IndexedCollection.prototype.slice.call(this, begin, end); + } + var newSize = this.size - resolvedBegin; + var head = this._head; + while (resolvedBegin--) { + head = head.next; + } + if (this.__ownerID) { + this.size = newSize; + this._head = head; + this.__hash = undefined; + this.__altered = true; + return this; + } + return makeStack(newSize, head); + }; + + // @pragma Mutability + + Stack.prototype.__ensureOwner = function(ownerID) { + if (ownerID === this.__ownerID) { + return this; + } + if (!ownerID) { + this.__ownerID = ownerID; + this.__altered = false; + return this; + } + return makeStack(this.size, this._head, ownerID, this.__hash); + }; + + // @pragma Iteration + + Stack.prototype.__iterate = function(fn, reverse) { + if (reverse) { + return this.reverse().__iterate(fn); + } + var iterations = 0; + var node = this._head; + while (node) { + if (fn(node.value, iterations++, this) === false) { + break; + } + node = node.next; + } + return iterations; + }; + + Stack.prototype.__iterator = function(type, reverse) { + if (reverse) { + return this.reverse().__iterator(type); + } + var iterations = 0; + var node = this._head; + return new Iterator(function() { + if (node) { + var value = node.value; + node = node.next; + return iteratorValue(type, iterations++, value); + } + return iteratorDone(); + }); + }; + + + function isStack(maybeStack) { + return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]); + } + + Stack.isStack = isStack; + + var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@'; + + var StackPrototype = Stack.prototype; + StackPrototype[IS_STACK_SENTINEL] = true; + StackPrototype.withMutations = MapPrototype.withMutations; + StackPrototype.asMutable = MapPrototype.asMutable; + StackPrototype.asImmutable = MapPrototype.asImmutable; + StackPrototype.wasAltered = MapPrototype.wasAltered; + + + function makeStack(size, head, ownerID, hash) { + var map = Object.create(StackPrototype); + map.size = size; + map._head = head; + map.__ownerID = ownerID; + map.__hash = hash; + map.__altered = false; + return map; + } + + var EMPTY_STACK; + function emptyStack() { + return EMPTY_STACK || (EMPTY_STACK = makeStack(0)); + } + + /** + * Contributes additional methods to a constructor + */ + function mixin(ctor, methods) { + var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; }; + Object.keys(methods).forEach(keyCopier); + Object.getOwnPropertySymbols && + Object.getOwnPropertySymbols(methods).forEach(keyCopier); + return ctor; + } + + Iterable.Iterator = Iterator; + + mixin(Iterable, { + + // ### Conversion to other types + + toArray: function() { + assertNotInfinite(this.size); + var array = new Array(this.size || 0); + this.valueSeq().__iterate(function(v, i) { array[i] = v; }); + return array; + }, + + toIndexedSeq: function() { + return new ToIndexedSequence(this); + }, + + toJS: function() { + return this.toSeq().map( + function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value} + ).__toJS(); + }, + + toJSON: function() { + return this.toSeq().map( + function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value} + ).__toJS(); + }, + + toKeyedSeq: function() { + return new ToKeyedSequence(this, true); + }, + + toMap: function() { + // Use Late Binding here to solve the circular dependency. + return Map(this.toKeyedSeq()); + }, + + toObject: function() { + assertNotInfinite(this.size); + var object = {}; + this.__iterate(function(v, k) { object[k] = v; }); + return object; + }, + + toOrderedMap: function() { + // Use Late Binding here to solve the circular dependency. + return OrderedMap(this.toKeyedSeq()); + }, + + toOrderedSet: function() { + // Use Late Binding here to solve the circular dependency. + return OrderedSet(isKeyed(this) ? this.valueSeq() : this); + }, + + toSet: function() { + // Use Late Binding here to solve the circular dependency. + return Set(isKeyed(this) ? this.valueSeq() : this); + }, + + toSetSeq: function() { + return new ToSetSequence(this); + }, + + toSeq: function() { + return isIndexed(this) ? this.toIndexedSeq() : + isKeyed(this) ? this.toKeyedSeq() : + this.toSetSeq(); + }, + + toStack: function() { + // Use Late Binding here to solve the circular dependency. + return Stack(isKeyed(this) ? this.valueSeq() : this); + }, + + toList: function() { + // Use Late Binding here to solve the circular dependency. + return List(isKeyed(this) ? this.valueSeq() : this); + }, + + + // ### Common JavaScript methods and properties + + toString: function() { + return '[Iterable]'; + }, + + __toString: function(head, tail) { + if (this.size === 0) { + return head + tail; + } + return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail; + }, + + + // ### ES6 Collection methods (ES6 Array and Map) + + concat: function() {var values = SLICE$0.call(arguments, 0); + return reify(this, concatFactory(this, values)); + }, + + includes: function(searchValue) { + return this.some(function(value ) {return is(value, searchValue)}); + }, + + entries: function() { + return this.__iterator(ITERATE_ENTRIES); + }, + + every: function(predicate, context) { + assertNotInfinite(this.size); + var returnValue = true; + this.__iterate(function(v, k, c) { + if (!predicate.call(context, v, k, c)) { + returnValue = false; + return false; + } + }); + return returnValue; + }, + + filter: function(predicate, context) { + return reify(this, filterFactory(this, predicate, context, true)); + }, + + find: function(predicate, context, notSetValue) { + var entry = this.findEntry(predicate, context); + return entry ? entry[1] : notSetValue; + }, + + forEach: function(sideEffect, context) { + assertNotInfinite(this.size); + return this.__iterate(context ? sideEffect.bind(context) : sideEffect); + }, + + join: function(separator) { + assertNotInfinite(this.size); + separator = separator !== undefined ? '' + separator : ','; + var joined = ''; + var isFirst = true; + this.__iterate(function(v ) { + isFirst ? (isFirst = false) : (joined += separator); + joined += v !== null && v !== undefined ? v.toString() : ''; + }); + return joined; + }, + + keys: function() { + return this.__iterator(ITERATE_KEYS); + }, + + map: function(mapper, context) { + return reify(this, mapFactory(this, mapper, context)); + }, + + reduce: function(reducer, initialReduction, context) { + assertNotInfinite(this.size); + var reduction; + var useFirst; + if (arguments.length < 2) { + useFirst = true; + } else { + reduction = initialReduction; + } + this.__iterate(function(v, k, c) { + if (useFirst) { + useFirst = false; + reduction = v; + } else { + reduction = reducer.call(context, reduction, v, k, c); + } + }); + return reduction; + }, + + reduceRight: function(reducer, initialReduction, context) { + var reversed = this.toKeyedSeq().reverse(); + return reversed.reduce.apply(reversed, arguments); + }, + + reverse: function() { + return reify(this, reverseFactory(this, true)); + }, + + slice: function(begin, end) { + return reify(this, sliceFactory(this, begin, end, true)); + }, + + some: function(predicate, context) { + return !this.every(not(predicate), context); + }, + + sort: function(comparator) { + return reify(this, sortFactory(this, comparator)); + }, + + values: function() { + return this.__iterator(ITERATE_VALUES); + }, + + + // ### More sequential methods + + butLast: function() { + return this.slice(0, -1); + }, + + isEmpty: function() { + return this.size !== undefined ? this.size === 0 : !this.some(function() {return true}); + }, + + count: function(predicate, context) { + return ensureSize( + predicate ? this.toSeq().filter(predicate, context) : this + ); + }, + + countBy: function(grouper, context) { + return countByFactory(this, grouper, context); + }, + + equals: function(other) { + return deepEqual(this, other); + }, + + entrySeq: function() { + var iterable = this; + if (iterable._cache) { + // We cache as an entries array, so we can just return the cache! + return new ArraySeq(iterable._cache); + } + var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq(); + entriesSequence.fromEntrySeq = function() {return iterable.toSeq()}; + return entriesSequence; + }, + + filterNot: function(predicate, context) { + return this.filter(not(predicate), context); + }, + + findEntry: function(predicate, context, notSetValue) { + var found = notSetValue; + this.__iterate(function(v, k, c) { + if (predicate.call(context, v, k, c)) { + found = [k, v]; + return false; + } + }); + return found; + }, + + findKey: function(predicate, context) { + var entry = this.findEntry(predicate, context); + return entry && entry[0]; + }, + + findLast: function(predicate, context, notSetValue) { + return this.toKeyedSeq().reverse().find(predicate, context, notSetValue); + }, + + findLastEntry: function(predicate, context, notSetValue) { + return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue); + }, + + findLastKey: function(predicate, context) { + return this.toKeyedSeq().reverse().findKey(predicate, context); + }, + + first: function() { + return this.find(returnTrue); + }, + + flatMap: function(mapper, context) { + return reify(this, flatMapFactory(this, mapper, context)); + }, + + flatten: function(depth) { + return reify(this, flattenFactory(this, depth, true)); + }, + + fromEntrySeq: function() { + return new FromEntriesSequence(this); + }, + + get: function(searchKey, notSetValue) { + return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue); + }, + + getIn: function(searchKeyPath, notSetValue) { + var nested = this; + // Note: in an ES6 environment, we would prefer: + // for (var key of searchKeyPath) { + var iter = forceIterator(searchKeyPath); + var step; + while (!(step = iter.next()).done) { + var key = step.value; + nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET; + if (nested === NOT_SET) { + return notSetValue; + } + } + return nested; + }, + + groupBy: function(grouper, context) { + return groupByFactory(this, grouper, context); + }, + + has: function(searchKey) { + return this.get(searchKey, NOT_SET) !== NOT_SET; + }, + + hasIn: function(searchKeyPath) { + return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET; + }, + + isSubset: function(iter) { + iter = typeof iter.includes === 'function' ? iter : Iterable(iter); + return this.every(function(value ) {return iter.includes(value)}); + }, + + isSuperset: function(iter) { + iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter); + return iter.isSubset(this); + }, + + keyOf: function(searchValue) { + return this.findKey(function(value ) {return is(value, searchValue)}); + }, + + keySeq: function() { + return this.toSeq().map(keyMapper).toIndexedSeq(); + }, + + last: function() { + return this.toSeq().reverse().first(); + }, + + lastKeyOf: function(searchValue) { + return this.toKeyedSeq().reverse().keyOf(searchValue); + }, + + max: function(comparator) { + return maxFactory(this, comparator); + }, + + maxBy: function(mapper, comparator) { + return maxFactory(this, comparator, mapper); + }, + + min: function(comparator) { + return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator); + }, + + minBy: function(mapper, comparator) { + return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper); + }, + + rest: function() { + return this.slice(1); + }, + + skip: function(amount) { + return this.slice(Math.max(0, amount)); + }, + + skipLast: function(amount) { + return reify(this, this.toSeq().reverse().skip(amount).reverse()); + }, + + skipWhile: function(predicate, context) { + return reify(this, skipWhileFactory(this, predicate, context, true)); + }, + + skipUntil: function(predicate, context) { + return this.skipWhile(not(predicate), context); + }, + + sortBy: function(mapper, comparator) { + return reify(this, sortFactory(this, comparator, mapper)); + }, + + take: function(amount) { + return this.slice(0, Math.max(0, amount)); + }, + + takeLast: function(amount) { + return reify(this, this.toSeq().reverse().take(amount).reverse()); + }, + + takeWhile: function(predicate, context) { + return reify(this, takeWhileFactory(this, predicate, context)); + }, + + takeUntil: function(predicate, context) { + return this.takeWhile(not(predicate), context); + }, + + valueSeq: function() { + return this.toIndexedSeq(); + }, + + + // ### Hashable Object + + hashCode: function() { + return this.__hash || (this.__hash = hashIterable(this)); + } + + + // ### Internal + + // abstract __iterate(fn, reverse) + + // abstract __iterator(type, reverse) + }); + + // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; + // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; + // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; + // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; + + var IterablePrototype = Iterable.prototype; + IterablePrototype[IS_ITERABLE_SENTINEL] = true; + IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values; + IterablePrototype.__toJS = IterablePrototype.toArray; + IterablePrototype.__toStringMapper = quoteString; + IterablePrototype.inspect = + IterablePrototype.toSource = function() { return this.toString(); }; + IterablePrototype.chain = IterablePrototype.flatMap; + IterablePrototype.contains = IterablePrototype.includes; + + mixin(KeyedIterable, { + + // ### More sequential methods + + flip: function() { + return reify(this, flipFactory(this)); + }, + + mapEntries: function(mapper, context) {var this$0 = this; + var iterations = 0; + return reify(this, + this.toSeq().map( + function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)} + ).fromEntrySeq() + ); + }, + + mapKeys: function(mapper, context) {var this$0 = this; + return reify(this, + this.toSeq().flip().map( + function(k, v) {return mapper.call(context, k, v, this$0)} + ).flip() + ); + } + + }); + + var KeyedIterablePrototype = KeyedIterable.prototype; + KeyedIterablePrototype[IS_KEYED_SENTINEL] = true; + KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries; + KeyedIterablePrototype.__toJS = IterablePrototype.toObject; + KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)}; + + + + mixin(IndexedIterable, { + + // ### Conversion to other types + + toKeyedSeq: function() { + return new ToKeyedSequence(this, false); + }, + + + // ### ES6 Collection methods (ES6 Array and Map) + + filter: function(predicate, context) { + return reify(this, filterFactory(this, predicate, context, false)); + }, + + findIndex: function(predicate, context) { + var entry = this.findEntry(predicate, context); + return entry ? entry[0] : -1; + }, + + indexOf: function(searchValue) { + var key = this.keyOf(searchValue); + return key === undefined ? -1 : key; + }, + + lastIndexOf: function(searchValue) { + var key = this.lastKeyOf(searchValue); + return key === undefined ? -1 : key; + }, + + reverse: function() { + return reify(this, reverseFactory(this, false)); + }, + + slice: function(begin, end) { + return reify(this, sliceFactory(this, begin, end, false)); + }, + + splice: function(index, removeNum /*, ...values*/) { + var numArgs = arguments.length; + removeNum = Math.max(removeNum | 0, 0); + if (numArgs === 0 || (numArgs === 2 && !removeNum)) { + return this; + } + // If index is negative, it should resolve relative to the size of the + // collection. However size may be expensive to compute if not cached, so + // only call count() if the number is in fact negative. + index = resolveBegin(index, index < 0 ? this.count() : this.size); + var spliced = this.slice(0, index); + return reify( + this, + numArgs === 1 ? + spliced : + spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)) + ); + }, + + + // ### More collection methods + + findLastIndex: function(predicate, context) { + var entry = this.findLastEntry(predicate, context); + return entry ? entry[0] : -1; + }, + + first: function() { + return this.get(0); + }, + + flatten: function(depth) { + return reify(this, flattenFactory(this, depth, false)); + }, + + get: function(index, notSetValue) { + index = wrapIndex(this, index); + return (index < 0 || (this.size === Infinity || + (this.size !== undefined && index > this.size))) ? + notSetValue : + this.find(function(_, key) {return key === index}, undefined, notSetValue); + }, + + has: function(index) { + index = wrapIndex(this, index); + return index >= 0 && (this.size !== undefined ? + this.size === Infinity || index < this.size : + this.indexOf(index) !== -1 + ); + }, + + interpose: function(separator) { + return reify(this, interposeFactory(this, separator)); + }, + + interleave: function(/*...iterables*/) { + var iterables = [this].concat(arrCopy(arguments)); + var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables); + var interleaved = zipped.flatten(true); + if (zipped.size) { + interleaved.size = zipped.size * iterables.length; + } + return reify(this, interleaved); + }, + + keySeq: function() { + return Range(0, this.size); + }, + + last: function() { + return this.get(-1); + }, + + skipWhile: function(predicate, context) { + return reify(this, skipWhileFactory(this, predicate, context, false)); + }, + + zip: function(/*, ...iterables */) { + var iterables = [this].concat(arrCopy(arguments)); + return reify(this, zipWithFactory(this, defaultZipper, iterables)); + }, + + zipWith: function(zipper/*, ...iterables */) { + var iterables = arrCopy(arguments); + iterables[0] = this; + return reify(this, zipWithFactory(this, zipper, iterables)); + } + + }); + + IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true; + IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true; + + + + mixin(SetIterable, { + + // ### ES6 Collection methods (ES6 Array and Map) + + get: function(value, notSetValue) { + return this.has(value) ? value : notSetValue; + }, + + includes: function(value) { + return this.has(value); + }, + + + // ### More sequential methods + + keySeq: function() { + return this.valueSeq(); + } + + }); + + SetIterable.prototype.has = IterablePrototype.includes; + SetIterable.prototype.contains = SetIterable.prototype.includes; + + + // Mixin subclasses + + mixin(KeyedSeq, KeyedIterable.prototype); + mixin(IndexedSeq, IndexedIterable.prototype); + mixin(SetSeq, SetIterable.prototype); + + mixin(KeyedCollection, KeyedIterable.prototype); + mixin(IndexedCollection, IndexedIterable.prototype); + mixin(SetCollection, SetIterable.prototype); + + + // #pragma Helper functions + + function keyMapper(v, k) { + return k; + } + + function entryMapper(v, k) { + return [k, v]; + } + + function not(predicate) { + return function() { + return !predicate.apply(this, arguments); + } + } + + function neg(predicate) { + return function() { + return -predicate.apply(this, arguments); + } + } + + function quoteString(value) { + return typeof value === 'string' ? JSON.stringify(value) : String(value); + } + + function defaultZipper() { + return arrCopy(arguments); + } + + function defaultNegComparator(a, b) { + return a < b ? 1 : a > b ? -1 : 0; + } + + function hashIterable(iterable) { + if (iterable.size === Infinity) { + return 0; + } + var ordered = isOrdered(iterable); + var keyed = isKeyed(iterable); + var h = ordered ? 1 : 0; + var size = iterable.__iterate( + keyed ? + ordered ? + function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } : + function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } : + ordered ? + function(v ) { h = 31 * h + hash(v) | 0; } : + function(v ) { h = h + hash(v) | 0; } + ); + return murmurHashOfSize(size, h); + } + + function murmurHashOfSize(size, h) { + h = imul(h, 0xCC9E2D51); + h = imul(h << 15 | h >>> -15, 0x1B873593); + h = imul(h << 13 | h >>> -13, 5); + h = (h + 0xE6546B64 | 0) ^ size; + h = imul(h ^ h >>> 16, 0x85EBCA6B); + h = imul(h ^ h >>> 13, 0xC2B2AE35); + h = smi(h ^ h >>> 16); + return h; + } + + function hashMerge(a, b) { + return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int + } + + var Immutable = { + + Iterable: Iterable, + + Seq: Seq, + Collection: Collection, + Map: Map, + OrderedMap: OrderedMap, + List: List, + Stack: Stack, + Set: Set, + OrderedSet: OrderedSet, + + Record: Record, + Range: Range, + Repeat: Repeat, + + is: is, + fromJS: fromJS + + }; + + return Immutable; + +})); \ No newline at end of file diff --git a/packages/client/node_modules/immutable/dist/immutable.js.flow b/packages/client/node_modules/immutable/dist/immutable.js.flow new file mode 100644 index 0000000..f6f469a --- /dev/null +++ b/packages/client/node_modules/immutable/dist/immutable.js.flow @@ -0,0 +1,670 @@ +/** + * 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 file provides type definitions for use with the Flow type checker. + * + * An important caveat when using these definitions is that the types for + * `Iterable.Keyed`, `Iterable.Indexed`, `Seq.Keyed`, and so on are stubs. + * When referring to those types, you can get the proper definitions by + * importing the types `KeyedIterable`, `IndexedIterable`, `KeyedSeq`, etc. + * For example, + * + * import { Seq } from 'immutable' + * import type { IndexedIterable, IndexedSeq } from 'immutable' + * + * const someSeq: IndexedSeq = Seq.Indexed.of(1, 2, 3) + * + * function takesASeq>(iter: TS): TS { + * return iter.butLast() + * } + * + * takesASeq(someSeq) + * + * @flow + */ + +/* + * Alias for ECMAScript `Iterable` type, declared in + * https://github.com/facebook/flow/blob/master/lib/core.js + * + * Note that Immutable values implement the `ESIterable` interface. + */ +type ESIterable = $Iterable; + +declare class Iterable extends _Iterable {} + +declare class _Iterable { + static Keyed: KI; + static Indexed: II; + static Set: SI; + + static isIterable(maybeIterable: any): boolean; + static isKeyed(maybeKeyed: any): boolean; + static isIndexed(maybeIndexed: any): boolean; + static isAssociative(maybeAssociative: any): boolean; + static isOrdered(maybeOrdered: any): boolean; + + equals(other: Iterable): boolean; + hashCode(): number; + get(key: K): V; + get(key: K, notSetValue: V_): V|V_; + has(key: K): boolean; + includes(value: V): boolean; + contains(value: V): boolean; + first(): V; + last(): V; + + getIn(searchKeyPath: ESIterable, notSetValue: T): T; + getIn(searchKeyPath: ESIterable): T; + hasIn(searchKeyPath: ESIterable): boolean; + + toJS(): any; + toArray(): V[]; + toObject(): { [key: string]: V }; + toMap(): Map; + toOrderedMap(): Map; + toSet(): Set; + toOrderedSet(): Set; + toList(): List; + toStack(): Stack; + toSeq(): Seq; + toKeyedSeq(): KeyedSeq; + toIndexedSeq(): IndexedSeq; + toSetSeq(): SetSeq; + + keys(): Iterator; + values(): Iterator; + entries(): Iterator<[K,V]>; + + keySeq(): IndexedSeq; + valueSeq(): IndexedSeq; + entrySeq(): IndexedSeq<[K,V]>; + + reverse(): this; + sort(comparator?: (valueA: V, valueB: V) => number): this; + + sortBy( + comparatorValueMapper: (value: V, key: K, iter: this) => C, + comparator?: (valueA: C, valueB: C) => number + ): this; + + groupBy( + grouper: (value: V, key: K, iter: this) => G, + context?: any + ): KeyedSeq; + + forEach( + sideEffect: (value: V, key: K, iter: this) => any, + context?: any + ): number; + + slice(begin?: number, end?: number): this; + rest(): this; + butLast(): this; + skip(amount: number): this; + skipLast(amount: number): this; + skipWhile(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; + skipUntil(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; + take(amount: number): this; + takeLast(amount: number): this; + takeWhile(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; + takeUntil(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; + flatten(depth?: number): /*this*/Iterable; + flatten(shallow?: boolean): /*this*/Iterable; + + filter( + predicate: (value: V, key: K, iter: this) => mixed, + context?: any + ): this; + + filterNot( + predicate: (value: V, key: K, iter: this) => mixed, + context?: any + ): this; + + reduce( + reducer: (reduction: R, value: V, key: K, iter: this) => R, + initialReduction?: R, + context?: any, + ): R; + + reduceRight( + reducer: (reduction: R, value: V, key: K, iter: this) => R, + initialReduction?: R, + context?: any, + ): R; + + every(predicate: (value: V, key: K, iter: this) => mixed, context?: any): boolean; + some(predicate: (value: V, key: K, iter: this) => mixed, context?: any): boolean; + join(separator?: string): string; + isEmpty(): boolean; + count(predicate?: (value: V, key: K, iter: this) => mixed, context?: any): number; + countBy(grouper: (value: V, key: K, iter: this) => G, context?: any): Map; + + find( + predicate: (value: V, key: K, iter: this) => mixed, + context?: any, + ): ?V; + find( + predicate: (value: V, key: K, iter: this) => mixed, + context: any, + notSetValue: V_ + ): V|V_; + + findLast( + predicate: (value: V, key: K, iter: this) => mixed, + context?: any, + ): ?V; + findLast( + predicate: (value: V, key: K, iter: this) => mixed, + context: any, + notSetValue: V_ + ): V|V_; + + + findEntry(predicate: (value: V, key: K, iter: this) => mixed): ?[K,V]; + findLastEntry(predicate: (value: V, key: K, iter: this) => mixed): ?[K,V]; + + findKey(predicate: (value: V, key: K, iter: this) => mixed, context?: any): ?K; + findLastKey(predicate: (value: V, key: K, iter: this) => mixed, context?: any): ?K; + + keyOf(searchValue: V): ?K; + lastKeyOf(searchValue: V): ?K; + + max(comparator?: (valueA: V, valueB: V) => number): V; + maxBy( + comparatorValueMapper: (value: V, key: K, iter: this) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + min(comparator?: (valueA: V, valueB: V) => number): V; + minBy( + comparatorValueMapper: (value: V, key: K, iter: this) => C, + comparator?: (valueA: C, valueB: C) => number + ): V; + + isSubset(iter: Iterable): boolean; + isSubset(iter: ESIterable): boolean; + isSuperset(iter: Iterable): boolean; + isSuperset(iter: ESIterable): boolean; +} + +declare class KeyedIterable extends Iterable { + static (iter?: ESIterable<[K,V]>): KeyedIterable; + static (obj?: { [key: K]: V }): KeyedIterable; + + @@iterator(): Iterator<[K,V]>; + toSeq(): KeyedSeq; + flip(): /*this*/KeyedIterable; + + mapKeys( + mapper: (key: K, value: V, iter: this) => K_, + context?: any + ): /*this*/KeyedIterable; + + mapEntries( + mapper: (entry: [K,V], index: number, iter: this) => [K_,V_], + context?: any + ): /*this*/KeyedIterable; + + concat(...iters: ESIterable<[K,V]>[]): this; + + map( + mapper: (value: V, key: K, iter: this) => V_, + context?: any + ): /*this*/KeyedIterable; + + flatMap( + mapper: (value: V, key: K, iter: this) => ESIterable<[K_,V_]>, + context?: any + ): /*this*/KeyedIterable; + + flatten(depth?: number): /*this*/KeyedIterable; + flatten(shallow?: boolean): /*this*/KeyedIterable; +} + +declare class IndexedIterable extends Iterable { + static (iter?: ESIterable): IndexedIterable; + + @@iterator(): Iterator; + toSeq(): IndexedSeq; + fromEntrySeq(): KeyedSeq; + interpose(separator: T): this; + interleave(...iterables: ESIterable[]): this; + splice( + index: number, + removeNum: number, + ...values: T[] + ): this; + + zip( + a: ESIterable, + $?: null + ): IndexedIterable<[T,A]>; + zip( + a: ESIterable, + b: ESIterable, + $?: null + ): IndexedIterable<[T,A,B]>; + zip( + a: ESIterable, + b: ESIterable, + c: ESIterable, + $?: null + ): IndexedIterable<[T,A,B,C]>; + zip( + a: ESIterable, + b: ESIterable, + c: ESIterable, + d: ESIterable, + $?: null + ): IndexedIterable<[T,A,B,C,D]>; + zip( + a: ESIterable, + b: ESIterable, + c: ESIterable, + d: ESIterable, + e: ESIterable, + $?: null + ): IndexedIterable<[T,A,B,C,D,E]>; + + zipWith( + zipper: (value: T, a: A) => R, + a: ESIterable, + $?: null + ): IndexedIterable; + zipWith( + zipper: (value: T, a: A, b: B) => R, + a: ESIterable, + b: ESIterable, + $?: null + ): IndexedIterable; + zipWith( + zipper: (value: T, a: A, b: B, c: C) => R, + a: ESIterable, + b: ESIterable, + c: ESIterable, + $?: null + ): IndexedIterable; + zipWith( + zipper: (value: T, a: A, b: B, c: C, d: D) => R, + a: ESIterable, + b: ESIterable, + c: ESIterable, + d: ESIterable, + $?: null + ): IndexedIterable; + zipWith( + zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R, + a: ESIterable, + b: ESIterable, + c: ESIterable, + d: ESIterable, + e: ESIterable, + $?: null + ): IndexedIterable; + + indexOf(searchValue: T): number; + lastIndexOf(searchValue: T): number; + findIndex( + predicate: (value: T, index: number, iter: this) => mixed, + context?: any + ): number; + findLastIndex( + predicate: (value: T, index: number, iter: this) => mixed, + context?: any + ): number; + + concat(...iters: ESIterable[]): this; + + map( + mapper: (value: T, index: number, iter: this) => U, + context?: any + ): /*this*/IndexedIterable; + + flatMap( + mapper: (value: T, index: number, iter: this) => ESIterable, + context?: any + ): /*this*/IndexedIterable; + + flatten(depth?: number): /*this*/IndexedIterable; + flatten(shallow?: boolean): /*this*/IndexedIterable; +} + +declare class SetIterable extends Iterable { + static (iter?: ESIterable): SetIterable; + + @@iterator(): Iterator; + toSeq(): SetSeq; + + concat(...iters: ESIterable[]): this; + + // `map` and `flatMap` cannot be defined further up the hiearchy, because the + // implementation for `KeyedIterable` allows the value type to change without + // constraining the key type. That does not work for `SetIterable` - the value + // and key types *must* match. + map( + mapper: (value: T, value: T, iter: this) => U, + context?: any + ): /*this*/SetIterable; + + flatMap( + mapper: (value: T, value: T, iter: this) => ESIterable, + context?: any + ): /*this*/SetIterable; + + flatten(depth?: number): /*this*/SetIterable; + flatten(shallow?: boolean): /*this*/SetIterable; +} + +declare class Collection extends _Iterable { + size: number; +} + +declare class KeyedCollection extends Collection mixins KeyedIterable { + toSeq(): KeyedSeq; +} + +declare class IndexedCollection extends Collection mixins IndexedIterable { + toSeq(): IndexedSeq; +} + +declare class SetCollection extends Collection mixins SetIterable { + toSeq(): SetSeq; +} + +declare class Seq extends _Iterable { + static (iter: KeyedSeq): KeyedSeq; + static (iter: SetSeq): SetSeq; + static (iter?: ESIterable): IndexedSeq; + static (iter: { [key: K]: V }): KeyedSeq; + + static isSeq(maybeSeq: any): boolean; + static of(...values: T[]): IndexedSeq; + + size: ?number; + cacheResult(): this; + toSeq(): this; +} + +declare class KeyedSeq extends Seq mixins KeyedIterable { + static (iter?: ESIterable<[K,V]>): KeyedSeq; + static (iter?: { [key: K]: V }): KeyedSeq; +} + +declare class IndexedSeq extends Seq mixins IndexedIterable { + static (iter?: ESIterable): IndexedSeq; + static of(...values: T[]): IndexedSeq; +} + +declare class SetSeq extends Seq mixins SetIterable { + static (iter?: ESIterable): IndexedSeq; + static of(...values: T[]): SetSeq; +} + +declare class List extends IndexedCollection { + static (iterable?: ESIterable): List; + + static isList(maybeList: any): boolean; + static of(...values: T[]): List; + + set(index: number, value: U): List; + delete(index: number): this; + remove(index: number): this; + insert(index: number, value: U): List; + clear(): this; + push(...values: U[]): List; + pop(): this; + unshift(...values: U[]): List; + shift(): this; + + update(updater: (value: this) => List): List; + update(index: number, updater: (value: T) => U): List; + update(index: number, notSetValue: U, updater: (value: T) => U): List; + + merge(...iterables: ESIterable[]): List; + + mergeWith( + merger: (previous: T, next: U, key: number) => V, + ...iterables: ESIterable[] + ): List; + + mergeDeep(...iterables: ESIterable[]): List; + + mergeDeepWith( + merger: (previous: T, next: U, key: number) => V, + ...iterables: ESIterable[] + ): List; + + setSize(size: number): List; + setIn(keyPath: ESIterable, value: any): List; + deleteIn(keyPath: ESIterable, value: any): this; + removeIn(keyPath: ESIterable, value: any): this; + + updateIn(keyPath: ESIterable, notSetValue: any, value: any): List; + updateIn(keyPath: ESIterable, value: any): List; + + mergeIn(keyPath: ESIterable, ...iterables: ESIterable[]): List; + mergeDeepIn(keyPath: ESIterable, ...iterables: ESIterable[]): List; + + withMutations(mutator: (mutable: this) => any): this; + asMutable(): this; + asImmutable(): this; + + // Overrides that specialize return types + map( + mapper: (value: T, index: number, iter: this) => M, + context?: any + ): List; + + flatMap( + mapper: (value: T, index: number, iter: this) => ESIterable, + context?: any + ): List; + + flatten(depth?: number): /*this*/List; + flatten(shallow?: boolean): /*this*/List; +} + +declare class Map extends KeyedCollection { + static (): Map; + static (obj?: {[key: string]: V}): Map; + static (iterable?: ESIterable<[K,V]>): Map; + + static isMap(maybeMap: any): boolean; + + set(key: K_, value: V_): Map; + delete(key: K): this; + remove(key: K): this; + clear(): this; + + update(updater: (value: this) => Map): Map; + update(key: K, updater: (value: V) => V_): Map; + update(key: K, notSetValue: V_, updater: (value: V) => V_): Map; + + merge( + ...iterables: (ESIterable<[K_,V_]> | { [key: K_]: V_ })[] + ): Map; + + mergeWith( + merger: (previous: V, next: W, key: number) => X, + ...iterables: ESIterable[] + ): Map; + + mergeDeep( + ...iterables: (ESIterable<[K_,V_]> | { [key: K_]: V_ })[] + ): Map; + + mergeDeepWith( + merger: (previous: V, next: W, key: number) => X, + ...iterables: ESIterable[] + ): Map; + + setIn(keyPath: ESIterable, value: any): Map; + deleteIn(keyPath: ESIterable, value: any): this; + removeIn(keyPath: ESIterable, value: any): this; + + updateIn(keyPath: ESIterable, notSetValue: any, value: any): Map; + updateIn(keyPath: ESIterable, value: any): Map; + + mergeIn(keyPath: ESIterable, ...iterables: ESIterable[]): Map; + mergeDeepIn(keyPath: ESIterable, ...iterables: ESIterable[]): Map; + + withMutations(mutator: (mutable: this) => any): this; + asMutable(): this; + asImmutable(): this; + + // Overrides that specialize return types + + map( + mapper: (value: V, key: K, iter: this) => V_, + context?: any + ): Map; + + flatMap( + mapper: (value: V, key: K, iter: this) => ESIterable<[K_,V_]>, + context?: any + ): Map; + + flip(): Map; + + mapKeys( + mapper: (key: K, value: V, iter: this) => K_, + context?: any + ): Map; + + flatten(depth?: number): /*this*/Map; + flatten(shallow?: boolean): /*this*/Map; +} + +// OrderedMaps have nothing that Maps do not have. We do not need to override constructor & other statics +declare class OrderedMap extends Map { + static isOrderedMap(maybeOrderedMap: any): bool; +} + +declare class Set extends SetCollection { + static (iterable?: ESIterable): Set; + + static isSet(maybeSet: any): boolean; + static of(...values: T[]): Set; + static fromKeys(iter: ESIterable<[T,any]>): Set; + static fromKeys(iter: { [key: string]: any }): Set; + + add(value: U): Set; + delete(value: T): this; + remove(value: T): this; + clear(): this; + union(...iterables: ESIterable[]): Set; + merge(...iterables: ESIterable[]): Set; + intersect(...iterables: ESIterable[]): Set; + subtract(...iterables: ESIterable[]): Set; + + withMutations(mutator: (mutable: this) => any): this; + asMutable(): this; + asImmutable(): this; + + // Overrides that specialize return types + + map( + mapper: (value: T, value: T, iter: this) => M, + context?: any + ): Set; + + flatMap( + mapper: (value: T, value: T, iter: this) => ESIterable, + context?: any + ): Set; + + flatten(depth?: number): /*this*/Set; + flatten(shallow?: boolean): /*this*/Set; +} + +// OrderedSets have nothing that Sets do not have. We do not need to override constructor & other statics +declare class OrderedSet extends Set { + static isOrderedSet(maybeOrderedSet: any): bool; +} + +declare class Stack extends IndexedCollection { + static (iterable?: ESIterable): Stack; + + static isStack(maybeStack: any): boolean; + static of(...values: T[]): Stack; + + peek(): T; + clear(): this; + unshift(...values: U[]): Stack; + unshiftAll(iter: ESIterable): Stack; + shift(): this; + push(...values: U[]): Stack; + pushAll(iter: ESIterable): Stack; + pop(): this; + + withMutations(mutator: (mutable: this) => any): this; + asMutable(): this; + asImmutable(): this; + + // Overrides that specialize return types + + map( + mapper: (value: T, index: number, iter: this) => U, + context?: any + ): Stack; + + flatMap( + mapper: (value: T, index: number, iter: this) => ESIterable, + context?: any + ): Stack; + + flatten(depth?: number): /*this*/Stack; + flatten(shallow?: boolean): /*this*/Stack; +} + +declare function Range(start?: number, end?: number, step?: number): IndexedSeq; +declare function Repeat(value: T, times?: number): IndexedSeq; + +//TODO: Once flow can extend normal Objects we can change this back to actually reflect Record behavior. +// For now fallback to any to not break existing Code +declare class Record { + static (spec: T, name?: string): /*T & Record*/any; + get(key: $Keys): A; + set(key: $Keys, value: A): /*T & Record*/this; + remove(key: $Keys): /*T & Record*/this; +} + +declare function fromJS(json: any, reviver?: (k: any, v: Iterable) => any): any; +declare function is(first: any, second: any): boolean; + +export { + Iterable, + Collection, + Seq, + + // These classes do not actually exist under these names. But it is useful to + // have the types available. + KeyedIterable, + IndexedIterable, + SetIterable, + KeyedCollection, + IndexedCollection, + SetCollection, + KeyedSeq, + IndexedSeq, + SetSeq, + + List, + Map, + OrderedMap, + OrderedSet, + Range, + Repeat, + Record, + Set, + Stack, + + fromJS, + is, +} diff --git a/packages/client/node_modules/immutable/dist/immutable.min.js b/packages/client/node_modules/immutable/dist/immutable.min.js new file mode 100644 index 0000000..5ea82ee --- /dev/null +++ b/packages/client/node_modules/immutable/dist/immutable.min.js @@ -0,0 +1,34 @@ +/** + * 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(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Immutable=e()}(this,function(){"use strict";function t(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function e(t){return o(t)?t:O(t)}function r(t){return u(t)?t:x(t)}function n(t){return s(t)?t:k(t)}function i(t){return o(t)&&!a(t)?t:A(t)}function o(t){return!(!t||!t[ar])}function u(t){return!(!t||!t[hr])}function s(t){return!(!t||!t[fr])}function a(t){return u(t)||s(t)}function h(t){return!(!t||!t[cr])}function f(t){return t.value=!1,t}function c(t){t&&(t.value=!0)}function _(){}function p(t,e){e=e||0;for(var r=Math.max(0,t.length-e),n=Array(r),i=0;r>i;i++)n[i]=t[i+e];return n}function v(t){return void 0===t.size&&(t.size=t.__iterate(y)),t.size}function l(t,e){if("number"!=typeof e){var r=e>>>0;if(""+r!==e||4294967295===r)return NaN;e=r}return 0>e?v(t)+e:e}function y(){return!0}function d(t,e,r){return(0===t||void 0!==r&&-r>=t)&&(void 0===e||void 0!==r&&e>=r)}function m(t,e){return w(t,e,0)}function g(t,e){return w(t,e,e)}function w(t,e,r){return void 0===t?r:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function S(t){this.next=t}function z(t,e,r,n){var i=0===t?e:1===t?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function I(){return{value:void 0,done:!0}}function b(t){return!!M(t)}function q(t){return t&&"function"==typeof t.next}function D(t){var e=M(t);return e&&e.call(t)}function M(t){var e=t&&(zr&&t[zr]||t[Ir]);return"function"==typeof e?e:void 0}function E(t){return t&&"number"==typeof t.length}function O(t){return null===t||void 0===t?T():o(t)?t.toSeq():C(t)}function x(t){return null===t||void 0===t?T().toKeyedSeq():o(t)?u(t)?t.toSeq():t.fromEntrySeq():B(t)}function k(t){return null===t||void 0===t?T():o(t)?u(t)?t.entrySeq():t.toIndexedSeq():W(t)}function A(t){return(null===t||void 0===t?T():o(t)?u(t)?t.entrySeq():t:W(t)).toSetSeq()}function j(t){this._array=t,this.size=t.length}function R(t){var e=Object.keys(t);this._object=t,this._keys=e, +this.size=e.length}function U(t){this._iterable=t,this.size=t.length||t.size}function K(t){this._iterator=t,this._iteratorCache=[]}function L(t){return!(!t||!t[qr])}function T(){return Dr||(Dr=new j([]))}function B(t){var e=Array.isArray(t)?new j(t).fromEntrySeq():q(t)?new K(t).fromEntrySeq():b(t)?new U(t).fromEntrySeq():"object"==typeof t?new R(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function W(t){var e=J(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function C(t){var e=J(t)||"object"==typeof t&&new R(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function J(t){return E(t)?new j(t):q(t)?new K(t):b(t)?new U(t):void 0}function N(t,e,r,n){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var s=i[r?o-u:u];if(e(s[1],n?s[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,r)}function P(t,e,r,n){var i=t._cache;if(i){var o=i.length-1,u=0;return new S(function(){var t=i[r?o-u:u];return u++>o?I():z(e,n?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,r)}function H(t,e){return e?V(e,t,"",{"":t}):Y(t)}function V(t,e,r,n){return Array.isArray(e)?t.call(n,r,k(e).map(function(r,n){return V(t,r,n,e)})):Q(e)?t.call(n,r,x(e).map(function(r,n){return V(t,r,n,e)})):e}function Y(t){return Array.isArray(t)?k(t).map(Y).toList():Q(t)?x(t).map(Y).toMap():t}function Q(t){return t&&(t.constructor===Object||void 0===t.constructor)}function X(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return"function"==typeof t.equals&&"function"==typeof e.equals&&t.equals(e)?!0:!1}function F(t,e){if(t===e)return!0;if(!o(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||u(t)!==u(e)||s(t)!==s(e)||h(t)!==h(e))return!1;if(0===t.size&&0===e.size)return!0; +var r=!a(t);if(h(t)){var n=t.entries();return e.every(function(t,e){var i=n.next().value;return i&&X(i[1],t)&&(r||X(i[0],e))})&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var f=t;t=e,e=f}var c=!0,_=e.__iterate(function(e,n){return(r?t.has(e):i?X(e,t.get(n,yr)):X(t.get(n,yr),e))?void 0:(c=!1,!1)});return c&&t.size===_}function G(t,e){if(!(this instanceof G))return new G(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(Mr)return Mr;Mr=this}}function Z(t,e){if(!t)throw Error(e)}function $(t,e,r){if(!(this instanceof $))return new $(t,e,r);if(Z(0!==r,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),r=void 0===r?1:Math.abs(r),t>e&&(r=-r),this._start=t,this._end=e,this._step=r,this.size=Math.max(0,Math.ceil((e-t)/r-1)+1),0===this.size){if(Er)return Er;Er=this}}function tt(){throw TypeError("Abstract")}function et(){}function rt(){}function nt(){}function it(t){return t>>>1&1073741824|3221225471&t}function ot(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){if(t!==t||t===1/0)return 0;var r=0|t;for(r!==t&&(r^=4294967295*t);t>4294967295;)t/=4294967295,r^=t;return it(r)}if("string"===e)return t.length>Kr?ut(t):st(t);if("function"==typeof t.hashCode)return t.hashCode();if("object"===e)return at(t);if("function"==typeof t.toString)return st(""+t);throw Error("Value type "+e+" cannot be hashed.")}function ut(t){var e=Br[t];return void 0===e&&(e=st(t),Tr===Lr&&(Tr=0,Br={}),Tr++,Br[t]=e),e}function st(t){for(var e=0,r=0;t.length>r;r++)e=31*e+t.charCodeAt(r)|0;return it(e)}function at(t){var e;if(jr&&(e=Or.get(t),void 0!==e))return e;if(e=t[Ur],void 0!==e)return e;if(!Ar){if(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Ur],void 0!==e)return e;if(e=ht(t),void 0!==e)return e}if(e=++Rr,1073741824&Rr&&(Rr=0),jr)Or.set(t,e);else{if(void 0!==kr&&kr(t)===!1)throw Error("Non-extensible objects are not allowed as keys."); +if(Ar)Object.defineProperty(t,Ur,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Ur]=e;else{if(void 0===t.nodeType)throw Error("Unable to set a non-enumerable property on object.");t[Ur]=e}}return e}function ht(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ft(t){Z(t!==1/0,"Cannot perform this action with an infinite size.")}function ct(t){return null===t||void 0===t?zt():_t(t)&&!h(t)?t:zt().withMutations(function(e){var n=r(t);ft(n.size),n.forEach(function(t,r){return e.set(r,t)})})}function _t(t){return!(!t||!t[Wr])}function pt(t,e){this.ownerID=t,this.entries=e}function vt(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r}function lt(t,e,r){this.ownerID=t,this.count=e,this.nodes=r}function yt(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r}function dt(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r}function mt(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&wt(t._root)}function gt(t,e){return z(t,e[0],e[1])}function wt(t,e){return{node:t,index:0,__prev:e}}function St(t,e,r,n){var i=Object.create(Cr);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function zt(){return Jr||(Jr=St(0))}function It(t,e,r){var n,i;if(t._root){var o=f(dr),u=f(mr);if(n=bt(t._root,t.__ownerID,0,void 0,e,r,o,u),!u.value)return t;i=t.size+(o.value?r===yr?-1:1:0)}else{if(r===yr)return t;i=1,n=new pt(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?St(i,n):zt()}function bt(t,e,r,n,i,o,u,s){return t?t.update(e,r,n,i,o,u,s):o===yr?t:(c(s),c(u),new dt(e,n,[i,o]))}function qt(t){return t.constructor===dt||t.constructor===yt}function Dt(t,e,r,n,i){if(t.keyHash===n)return new yt(e,n,[t.entry,i]);var o,u=(0===r?t.keyHash:t.keyHash>>>r)&lr,s=(0===r?n:n>>>r)&lr,a=u===s?[Dt(t,e,r+pr,n,i)]:(o=new dt(e,n,i), +s>u?[t,o]:[o,t]);return new vt(e,1<o;o++){var u=e[o];i=i.update(t,0,void 0,u[0],u[1])}return i}function Et(t,e,r,n){for(var i=0,o=0,u=Array(r),s=0,a=1,h=e.length;h>s;s++,a<<=1){var f=e[s];void 0!==f&&s!==n&&(i|=a,u[o++]=f)}return new vt(t,i,u)}function Ot(t,e,r,n,i){for(var o=0,u=Array(vr),s=0;0!==r;s++,r>>>=1)u[s]=1&r?e[o++]:void 0;return u[n]=i,new lt(t,o+1,u)}function xt(t,e,n){for(var i=[],u=0;n.length>u;u++){var s=n[u],a=r(s);o(s)||(a=a.map(function(t){return H(t)})),i.push(a)}return jt(t,e,i)}function kt(t,e,r){return t&&t.mergeDeep&&o(e)?t.mergeDeep(e):X(t,e)?t:e}function At(t){return function(e,r,n){if(e&&e.mergeDeepWith&&o(r))return e.mergeDeepWith(t,r);var i=t(e,r,n);return X(e,i)?e:i}}function jt(t,e,r){return r=r.filter(function(t){return 0!==t.size}),0===r.length?t:0!==t.size||t.__ownerID||1!==r.length?t.withMutations(function(t){for(var n=e?function(r,n){t.update(n,yr,function(t){return t===yr?r:e(t,r,n)})}:function(e,r){t.set(r,e)},i=0;r.length>i;i++)r[i].forEach(n)}):t.constructor(r[0])}function Rt(t,e,r,n){var i=t===yr,o=e.next();if(o.done){var u=i?r:t,s=n(u);return s===u?t:s}Z(i||t&&t.set,"invalid keyPath");var a=o.value,h=i?yr:t.get(a,yr),f=Rt(h,e,r,n);return f===h?t:f===yr?t.remove(a):(i?zt():t).set(a,f)}function Ut(t){return t-=t>>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function Kt(t,e,r,n){var i=n?t:p(t);return i[e]=r,i}function Lt(t,e,r,n){var i=t.length+1;if(n&&e+1===i)return t[e]=r,t;for(var o=Array(i),u=0,s=0;i>s;s++)s===e?(o[s]=r,u=-1):o[s]=t[s+u];return o}function Tt(t,e,r){var n=t.length-1;if(r&&e===n)return t.pop(),t;for(var i=Array(n),o=0,u=0;n>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function Bt(t){var e=Pt();if(null===t||void 0===t)return e;if(Wt(t))return t;var r=n(t),i=r.size;return 0===i?e:(ft(i),i>0&&vr>i?Nt(0,i,pr,null,new Ct(r.toArray())):e.withMutations(function(t){t.setSize(i),r.forEach(function(e,r){return t.set(r,e)})}))}function Wt(t){ +return!(!t||!t[Vr])}function Ct(t,e){this.array=t,this.ownerID=e}function Jt(t,e){function r(t,e,r){return 0===e?n(t,r):i(t,e,r)}function n(t,r){var n=r===s?a&&a.array:t&&t.array,i=r>o?0:o-r,h=u-r;return h>vr&&(h=vr),function(){if(i===h)return Xr;var t=e?--h:i++;return n&&n[t]}}function i(t,n,i){var s,a=t&&t.array,h=i>o?0:o-i>>n,f=(u-i>>n)+1;return f>vr&&(f=vr),function(){for(;;){if(s){var t=s();if(t!==Xr)return t;s=null}if(h===f)return Xr;var o=e?--f:h++;s=r(a&&a[o],n-pr,i+(o<=t.size||0>e)return t.withMutations(function(t){0>e?Xt(t,e).set(0,r):Xt(t,0,e+1).set(e,r)});e+=t._origin;var n=t._tail,i=t._root,o=f(mr);return e>=Gt(t._capacity)?n=Vt(n,t.__ownerID,0,e,r,o):i=Vt(i,t.__ownerID,t._level,e,r,o),o.value?t.__ownerID?(t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t):Nt(t._origin,t._capacity,t._level,i,n):t}function Vt(t,e,r,n,i,o){var u=n>>>r&lr,s=t&&t.array.length>u;if(!s&&void 0===i)return t;var a;if(r>0){var h=t&&t.array[u],f=Vt(h,e,r-pr,n,i,o);return f===h?t:(a=Yt(t,e),a.array[u]=f,a)}return s&&t.array[u]===i?t:(c(o),a=Yt(t,e),void 0===i&&u===a.array.length-1?a.array.pop():a.array[u]=i,a)}function Yt(t,e){return e&&t&&e===t.ownerID?t:new Ct(t?t.array.slice():[],e)}function Qt(t,e){if(e>=Gt(t._capacity))return t._tail;if(1<e){for(var r=t._root,n=t._level;r&&n>0;)r=r.array[e>>>n&lr],n-=pr;return r}}function Xt(t,e,r){void 0!==e&&(e=0|e),void 0!==r&&(r=0|r);var n=t.__ownerID||new _,i=t._origin,o=t._capacity,u=i+e,s=void 0===r?o:0>r?o+r:i+r;if(u===i&&s===o)return t;if(u>=s)return t.clear();for(var a=t._level,h=t._root,f=0;0>u+f;)h=new Ct(h&&h.array.length?[void 0,h]:[],n),a+=pr,f+=1<=1<p?Qt(t,s-1):p>c?new Ct([],n):v;if(v&&p>c&&o>u&&v.array.length){h=Yt(h,n);for(var y=h,d=a;d>pr;d-=pr){var m=c>>>d&lr;y=y.array[m]=Yt(y.array[m],n)}y.array[c>>>pr&lr]=v}if(o>s&&(l=l&&l.removeAfter(n,0,s)),u>=p)u-=p,s-=p,a=pr,h=null,l=l&&l.removeBefore(n,0,u);else if(u>i||c>p){for(f=0;h;){var g=u>>>a&lr;if(g!==p>>>a&lr)break;g&&(f+=(1<i&&(h=h.removeBefore(n,a,u-f)),h&&c>p&&(h=h.removeAfter(n,a,p-f)),f&&(u-=f,s-=f)}return t.__ownerID?(t.size=s-u,t._origin=u,t._capacity=s,t._level=a,t._root=h,t._tail=l,t.__hash=void 0,t.__altered=!0,t):Nt(u,s,a,h,l)}function Ft(t,e,r){for(var i=[],u=0,s=0;r.length>s;s++){var a=r[s],h=n(a);h.size>u&&(u=h.size),o(a)||(h=h.map(function(t){return H(t)})),i.push(h)}return u>t.size&&(t=t.setSize(u)),jt(t,e,i)}function Gt(t){return vr>t?0:t-1>>>pr<=vr&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&s!==e}),n=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=s===u.size-1?u.pop():u.set(s,void 0))}else if(a){if(r===u.get(s)[1])return t;n=o,i=u.set(s,[e,r])}else n=o.set(e,u.size),i=u.set(u.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t):te(n,i)}function ne(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ie(t){this._iter=t,this.size=t.size}function oe(t){this._iter=t,this.size=t.size}function ue(t){this._iter=t,this.size=t.size}function se(t){var e=Ee(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this); +return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Oe,e.__iterateUncached=function(e,r){var n=this;return t.__iterate(function(t,r){return e(r,t,n)!==!1},r)},e.__iteratorUncached=function(e,r){if(e===Sr){var n=t.__iterator(e,r);return new S(function(){var t=n.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===wr?gr:wr,r)},e}function ae(t,e,r){var n=Ee(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,yr);return o===yr?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate(function(t,i,u){return n(e.call(r,t,i,u),i,o)!==!1},i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(Sr,i);return new S(function(){var i=o.next();if(i.done)return i;var u=i.value,s=u[0];return z(n,s,e.call(r,u[1],s,t),i)})},n}function he(t,e){var r=Ee(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=se(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=Oe,r.__iterate=function(e,r){var n=this;return t.__iterate(function(t,r){return e(t,r,n)},!r)},r.__iterator=function(e,r){return t.__iterator(e,!r)},r}function fe(t,e,r,n){var i=Ee(t);return n&&(i.has=function(n){var i=t.get(n,yr);return i!==yr&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,yr);return o!==yr&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,s=0;return t.__iterate(function(t,o,a){return e.call(r,t,o,a)?(s++,i(t,n?o:s-1,u)):void 0},o),s},i.__iteratorUncached=function(i,o){var u=t.__iterator(Sr,o),s=0;return new S(function(){for(;;){var o=u.next();if(o.done)return o;var a=o.value,h=a[0],f=a[1];if(e.call(r,f,h,t))return z(i,n?h:s++,f,o)}})},i}function ce(t,e,r){var n=ct().asMutable();return t.__iterate(function(i,o){n.update(e.call(r,i,o,t),0,function(t){ +return t+1})}),n.asImmutable()}function _e(t,e,r){var n=u(t),i=(h(t)?Zt():ct()).asMutable();t.__iterate(function(o,u){i.update(e.call(r,o,u,t),function(t){return t=t||[],t.push(n?[u,o]:o),t})});var o=Me(t);return i.map(function(e){return be(t,o(e))})}function pe(t,e,r,n){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==r&&(r=r===1/0?i:0|r),d(e,r,i))return t;var o=m(e,i),u=g(r,i);if(o!==o||u!==u)return pe(t.toSeq().cacheResult(),e,r,n);var s,a=u-o;a===a&&(s=0>a?0:a);var h=Ee(t);return h.size=0===s?s:t.size&&s||void 0,!n&&L(t)&&s>=0&&(h.get=function(e,r){return e=l(this,e),e>=0&&s>e?t.get(e+o,r):r}),h.__iterateUncached=function(e,r){var i=this;if(0===s)return 0;if(r)return this.cacheResult().__iterate(e,r);var u=0,a=!0,h=0;return t.__iterate(function(t,r){return a&&(a=u++s)return I();var t=i.next();return n||e===wr?t:e===gr?z(e,a-1,void 0,t):z(e,a-1,t.value[1],t)})},h}function ve(t,e,r){var n=Ee(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var u=0;return t.__iterate(function(t,i,s){return e.call(r,t,i,s)&&++u&&n(t,i,o)}),u},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var u=t.__iterator(Sr,i),s=!0;return new S(function(){if(!s)return I();var t=u.next();if(t.done)return t;var i=t.value,a=i[0],h=i[1];return e.call(r,h,a,o)?n===Sr?t:z(n,a,h,t):(s=!1,I())})},n}function le(t,e,r,n){var i=Ee(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,a=0;return t.__iterate(function(t,o,h){return s&&(s=e.call(r,t,o,h))?void 0:(a++,i(t,n?o:a-1,u))}),a},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(Sr,o),a=!0,h=0;return new S(function(){var t,o,f;do{if(t=s.next(),t.done)return n||i===wr?t:i===gr?z(i,h++,void 0,t):z(i,h++,t.value[1],t); +var c=t.value;o=c[0],f=c[1],a&&(a=e.call(r,f,o,u))}while(a);return i===Sr?t:z(i,o,f,t)})},i}function ye(t,e){var n=u(t),i=[t].concat(e).map(function(t){return o(t)?n&&(t=r(t)):t=n?B(t):W(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===i.length)return t;if(1===i.length){var a=i[0];if(a===t||n&&u(a)||s(t)&&s(a))return a}var h=new j(i);return n?h=h.toKeyedSeq():s(t)||(h=h.toSetSeq()),h=h.flatten(!0),h.size=i.reduce(function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}},0),h}function de(t,e,r){var n=Ee(t);return n.__iterateUncached=function(n,i){function u(t,h){var f=this;t.__iterate(function(t,i){return(!e||e>h)&&o(t)?u(t,h+1):n(t,r?i:s++,f)===!1&&(a=!0),!a},i)}var s=0,a=!1;return u(t,0),s},n.__iteratorUncached=function(n,i){var u=t.__iterator(n,i),s=[],a=0;return new S(function(){for(;u;){var t=u.next();if(t.done===!1){var h=t.value;if(n===Sr&&(h=h[1]),e&&!(e>s.length)||!o(h))return r?t:z(n,a++,h,t);s.push(u),u=h.__iterator(n,i)}else u=s.pop()}return I()})},n}function me(t,e,r){var n=Me(t);return t.toSeq().map(function(i,o){return n(e.call(r,i,o,t))}).flatten(!0)}function ge(t,e){var r=Ee(t);return r.size=t.size&&2*t.size-1,r.__iterateUncached=function(r,n){var i=this,o=0;return t.__iterate(function(t,n){return(!o||r(e,o++,i)!==!1)&&r(t,o++,i)!==!1},n),o},r.__iteratorUncached=function(r,n){var i,o=t.__iterator(wr,n),u=0;return new S(function(){return(!i||u%2)&&(i=o.next(),i.done)?i:u%2?z(r,u++,e):z(r,u++,i.value,i)})},r}function we(t,e,r){e||(e=xe);var n=u(t),i=0,o=t.toSeq().map(function(e,n){return[n,e,i++,r?r(e,n,t):e]}).toArray();return o.sort(function(t,r){return e(t[3],r[3])||t[2]-r[2]}).forEach(n?function(t,e){o[e].length=2}:function(t,e){o[e]=t[1]}),n?x(o):s(t)?k(o):A(o)}function Se(t,e,r){if(e||(e=xe),r){var n=t.toSeq().map(function(e,n){return[e,r(e,n,t)]}).reduce(function(t,r){return ze(e,t[1],r[1])?r:t});return n&&n[0]}return t.reduce(function(t,r){return ze(e,t,r)?r:t})}function ze(t,e,r){var n=t(r,e);return 0===n&&r!==e&&(void 0===r||null===r||r!==r)||n>0}function Ie(t,r,n){ +var i=Ee(t);return i.size=new j(n).map(function(t){return t.size}).min(),i.__iterate=function(t,e){for(var r,n=this.__iterator(wr,e),i=0;!(r=n.next()).done&&t(r.value,i++,this)!==!1;);return i},i.__iteratorUncached=function(t,i){var o=n.map(function(t){return t=e(t),D(i?t.reverse():t)}),u=0,s=!1;return new S(function(){var e;return s||(e=o.map(function(t){return t.next()}),s=e.some(function(t){return t.done})),s?I():z(t,u++,r.apply(null,e.map(function(t){return t.value})))})},i}function be(t,e){return L(t)?e:t.constructor(e)}function qe(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function De(t){return ft(t.size),v(t)}function Me(t){return u(t)?r:s(t)?n:i}function Ee(t){return Object.create((u(t)?x:s(t)?k:A).prototype)}function Oe(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):O.prototype.cacheResult.call(this)}function xe(t,e){return t>e?1:e>t?-1:0}function ke(t){var r=D(t);if(!r){if(!E(t))throw new TypeError("Expected iterable or array-like: "+t);r=D(e(t))}return r}function Ae(t,e){var r,n=function(o){if(o instanceof n)return o;if(!(this instanceof n))return new n(o);if(!r){r=!0;var u=Object.keys(t);Ue(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=ct(o)},i=n.prototype=Object.create(Gr);return i.constructor=n,n}function je(t,e,r){var n=Object.create(Object.getPrototypeOf(t));return n._map=e,n.__ownerID=r,n}function Re(t){return t._name||t.constructor.name||"Record"}function Ue(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(r){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){Z(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Le(t){return null===t||void 0===t?Ce():Te(t)&&!h(t)?t:Ce().withMutations(function(e){var r=i(t);ft(r.size),r.forEach(function(t){return e.add(t)})})}function Te(t){return!(!t||!t[Zr])}function Be(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function We(t,e){var r=Object.create($r); +return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function Ce(){return tn||(tn=We(zt()))}function Je(t){return null===t||void 0===t?He():Ne(t)?t:He().withMutations(function(e){var r=i(t);ft(r.size),r.forEach(function(t){return e.add(t)})})}function Ne(t){return Te(t)&&h(t)}function Pe(t,e){var r=Object.create(en);return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function He(){return rn||(rn=Pe(ee()))}function Ve(t){return null===t||void 0===t?Xe():Ye(t)?t:Xe().unshiftAll(t)}function Ye(t){return!(!t||!t[nn])}function Qe(t,e,r,n){var i=Object.create(on);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Xe(){return un||(un=Qe(0))}function Fe(t,e){var r=function(r){t.prototype[r]=e[r]};return Object.keys(e).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(r),t}function Ge(t,e){return e}function Ze(t,e){return[e,t]}function $e(t){return function(){return!t.apply(this,arguments)}}function tr(t){return function(){return-t.apply(this,arguments)}}function er(t){return"string"==typeof t?JSON.stringify(t):t+""}function rr(){return p(arguments)}function nr(t,e){return e>t?1:t>e?-1:0}function ir(t){if(t.size===1/0)return 0;var e=h(t),r=u(t),n=e?1:0,i=t.__iterate(r?e?function(t,e){n=31*n+ur(ot(t),ot(e))|0}:function(t,e){n=n+ur(ot(t),ot(e))|0}:e?function(t){n=31*n+ot(t)|0}:function(t){n=n+ot(t)|0});return or(i,n)}function or(t,e){return e=xr(e,3432918353),e=xr(e<<15|e>>>-15,461845907),e=xr(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=xr(e^e>>>16,2246822507),e=xr(e^e>>>13,3266489909),e=it(e^e>>>16)}function ur(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var sr=Array.prototype.slice;t(r,e),t(n,e),t(i,e),e.isIterable=o,e.isKeyed=u,e.isIndexed=s,e.isAssociative=a,e.isOrdered=h,e.Keyed=r,e.Indexed=n,e.Set=i;var ar="@@__IMMUTABLE_ITERABLE__@@",hr="@@__IMMUTABLE_KEYED__@@",fr="@@__IMMUTABLE_INDEXED__@@",cr="@@__IMMUTABLE_ORDERED__@@",_r="delete",pr=5,vr=1<=i;i++)if(t(r[e?n-i:i],i,this)===!1)return i+1;return i},j.prototype.__iterator=function(t,e){var r=this._array,n=r.length-1,i=0;return new S(function(){return i>n?I():z(t,i,r[e?n-i++:i++])})},t(R,x),R.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},R.prototype.has=function(t){return this._object.hasOwnProperty(t)},R.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length-1,o=0;i>=o;o++){var u=n[e?i-o:o];if(t(r[u],u,this)===!1)return o+1}return o},R.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length-1,o=0;return new S(function(){var u=n[e?i-o:o];return o++>i?I():z(t,u,r[u])})},R.prototype[cr]=!0,t(U,k),U.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e); +var r=this._iterable,n=D(r),i=0;if(q(n))for(var o;!(o=n.next()).done&&t(o.value,i++,this)!==!1;);return i},U.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterable,n=D(r);if(!q(n))return new S(I);var i=0;return new S(function(){var e=n.next();return e.done?e:z(t,i++,e.value)})},t(K,k),K.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var r=this._iterator,n=this._iteratorCache,i=0;n.length>i;)if(t(n[i],i++,this)===!1)return i;for(var o;!(o=r.next()).done;){var u=o.value;if(n[i]=u,t(u,i++,this)===!1)break}return i},K.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterator,n=this._iteratorCache,i=0;return new S(function(){if(i>=n.length){var e=r.next();if(e.done)return e;n[i]=e.value}return z(t,i,n[i++])})};var Dr;t(G,k),G.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},G.prototype.get=function(t,e){return this.has(t)?this._value:e},G.prototype.includes=function(t){return X(this._value,t)},G.prototype.slice=function(t,e){var r=this.size;return d(t,e,r)?this:new G(this._value,g(e,r)-m(t,r))},G.prototype.reverse=function(){return this},G.prototype.indexOf=function(t){return X(this._value,t)?0:-1},G.prototype.lastIndexOf=function(t){return X(this._value,t)?this.size:-1},G.prototype.__iterate=function(t,e){for(var r=0;this.size>r;r++)if(t(this._value,r,this)===!1)return r+1;return r},G.prototype.__iterator=function(t,e){var r=this,n=0;return new S(function(){return r.size>n?z(t,n++,r._value):I()})},G.prototype.equals=function(t){return t instanceof G?X(this._value,t._value):F(t)};var Mr;t($,k),$.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},$.prototype.get=function(t,e){return this.has(t)?this._start+l(this,t)*this._step:e},$.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&this.size>e&&e===Math.floor(e); +},$.prototype.slice=function(t,e){return d(t,e,this.size)?this:(t=m(t,this.size),e=g(e,this.size),t>=e?new $(0,0):new $(this.get(t,this._end),this.get(e,this._end),this._step))},$.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var r=e/this._step;if(r>=0&&this.size>r)return r}return-1},$.prototype.lastIndexOf=function(t){return this.indexOf(t)},$.prototype.__iterate=function(t,e){for(var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;r>=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-n:n}return o},$.prototype.__iterator=function(t,e){var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;return new S(function(){var u=i;return i+=e?-n:n,o>r?I():z(t,o++,u)})},$.prototype.equals=function(t){return t instanceof $?this._start===t._start&&this._end===t._end&&this._step===t._step:F(this,t)};var Er;t(tt,e),t(et,tt),t(rt,tt),t(nt,tt),tt.Keyed=et,tt.Indexed=rt,tt.Set=nt;var Or,xr="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var r=65535&t,n=65535&e;return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0},kr=Object.isExtensible,Ar=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),jr="function"==typeof WeakMap;jr&&(Or=new WeakMap);var Rr=0,Ur="__immutablehash__";"function"==typeof Symbol&&(Ur=Symbol(Ur));var Kr=16,Lr=255,Tr=0,Br={};t(ct,et),ct.of=function(){var t=sr.call(arguments,0);return zt().withMutations(function(e){for(var r=0;t.length>r;r+=2){if(r+1>=t.length)throw Error("Missing value for key: "+t[r]);e.set(t[r],t[r+1])}})},ct.prototype.toString=function(){return this.__toString("Map {","}")},ct.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},ct.prototype.set=function(t,e){return It(this,t,e)},ct.prototype.setIn=function(t,e){return this.updateIn(t,yr,function(){return e})},ct.prototype.remove=function(t){return It(this,t,yr)},ct.prototype.deleteIn=function(t){return this.updateIn(t,function(){return yr})},ct.prototype.update=function(t,e,r){return 1===arguments.length?t(this):this.updateIn([t],e,r); +},ct.prototype.updateIn=function(t,e,r){r||(r=e,e=void 0);var n=Rt(this,ke(t),e,r);return n===yr?void 0:n},ct.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):zt()},ct.prototype.merge=function(){return xt(this,void 0,arguments)},ct.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return xt(this,t,e)},ct.prototype.mergeIn=function(t){var e=sr.call(arguments,1);return this.updateIn(t,zt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},ct.prototype.mergeDeep=function(){return xt(this,kt,arguments)},ct.prototype.mergeDeepWith=function(t){var e=sr.call(arguments,1);return xt(this,At(t),e)},ct.prototype.mergeDeepIn=function(t){var e=sr.call(arguments,1);return this.updateIn(t,zt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},ct.prototype.sort=function(t){return Zt(we(this,t))},ct.prototype.sortBy=function(t,e){return Zt(we(this,e,t))},ct.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},ct.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new _)},ct.prototype.asImmutable=function(){return this.__ensureOwner()},ct.prototype.wasAltered=function(){return this.__altered},ct.prototype.__iterator=function(t,e){return new mt(this,t,e)},ct.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate(function(e){return n++,t(e[1],e[0],r)},e),n},ct.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?St(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},ct.isMap=_t;var Wr="@@__IMMUTABLE_MAP__@@",Cr=ct.prototype;Cr[Wr]=!0,Cr[_r]=Cr.remove,Cr.removeIn=Cr.deleteIn,pt.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(X(r,i[o][0]))return i[o][1];return n},pt.prototype.update=function(t,e,r,n,i,o,u){for(var s=i===yr,a=this.entries,h=0,f=a.length;f>h&&!X(n,a[h][0]);h++); +var _=f>h;if(_?a[h][1]===i:s)return this;if(c(u),(s||!_)&&c(o),!s||1!==a.length){if(!_&&!s&&a.length>=Nr)return Mt(t,a,n,i);var v=t&&t===this.ownerID,l=v?a:p(a);return _?s?h===f-1?l.pop():l[h]=l.pop():l[h]=[n,i]:l.push([n,i]),v?(this.entries=l,this):new pt(t,l)}},vt.prototype.get=function(t,e,r,n){void 0===e&&(e=ot(r));var i=1<<((0===t?e:e>>>t)&lr),o=this.bitmap;return 0===(o&i)?n:this.nodes[Ut(o&i-1)].get(t+pr,e,r,n)},vt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=(0===e?r:r>>>e)&lr,a=1<=Pr)return Ot(t,_,h,s,v);if(f&&!v&&2===_.length&&qt(_[1^c]))return _[1^c];if(f&&v&&1===_.length&&qt(v))return v;var l=t&&t===this.ownerID,y=f?v?h:h^a:h|a,d=f?v?Kt(_,c,v,l):Tt(_,c,l):Lt(_,c,v,l);return l?(this.bitmap=y,this.nodes=d,this):new vt(t,y,d)},lt.prototype.get=function(t,e,r,n){void 0===e&&(e=ot(r));var i=(0===t?e:e>>>t)&lr,o=this.nodes[i];return o?o.get(t+pr,e,r,n):n},lt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=(0===e?r:r>>>e)&lr,a=i===yr,h=this.nodes,f=h[s];if(a&&!f)return this;var c=bt(f,t,e+pr,r,n,i,o,u);if(c===f)return this;var _=this.count;if(f){if(!c&&(_--,Hr>_))return Et(t,h,_,s)}else _++;var p=t&&t===this.ownerID,v=Kt(h,s,c,p);return p?(this.count=_,this.nodes=v,this):new lt(t,_,v)},yt.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(X(r,i[o][0]))return i[o][1];return n},yt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=i===yr;if(r!==this.keyHash)return s?this:(c(u),c(o),Dt(this,t,e,r,[n,i]));for(var a=this.entries,h=0,f=a.length;f>h&&!X(n,a[h][0]);h++);var _=f>h;if(_?a[h][1]===i:s)return this;if(c(u),(s||!_)&&c(o),s&&2===f)return new dt(t,this.keyHash,a[1^h]);var v=t&&t===this.ownerID,l=v?a:p(a);return _?s?h===f-1?l.pop():l[h]=l.pop():l[h]=[n,i]:l.push([n,i]),v?(this.entries=l,this):new yt(t,this.keyHash,l)},dt.prototype.get=function(t,e,r,n){return X(r,this.entry[0])?this.entry[1]:n; +},dt.prototype.update=function(t,e,r,n,i,o,u){var s=i===yr,a=X(n,this.entry[0]);return(a?i===this.entry[1]:s)?this:(c(u),s?void c(o):a?t&&t===this.ownerID?(this.entry[1]=i,this):new dt(t,this.keyHash,[n,i]):(c(o),Dt(this,t,e,ot(n),[n,i])))},pt.prototype.iterate=yt.prototype.iterate=function(t,e){for(var r=this.entries,n=0,i=r.length-1;i>=n;n++)if(t(r[e?i-n:n])===!1)return!1},vt.prototype.iterate=lt.prototype.iterate=function(t,e){for(var r=this.nodes,n=0,i=r.length-1;i>=n;n++){var o=r[e?i-n:n];if(o&&o.iterate(t,e)===!1)return!1}},dt.prototype.iterate=function(t,e){return t(this.entry)},t(mt,S),mt.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var r,n=e.node,i=e.index++;if(n.entry){if(0===i)return gt(t,n.entry)}else if(n.entries){if(r=n.entries.length-1,r>=i)return gt(t,n.entries[this._reverse?r-i:i])}else if(r=n.nodes.length-1,r>=i){var o=n.nodes[this._reverse?r-i:i];if(o){if(o.entry)return gt(t,o.entry);e=this._stack=wt(o,e)}continue}e=this._stack=this._stack.__prev}return I()};var Jr,Nr=vr/4,Pr=vr/2,Hr=vr/4;t(Bt,rt),Bt.of=function(){return this(arguments)},Bt.prototype.toString=function(){return this.__toString("List [","]")},Bt.prototype.get=function(t,e){if(t=l(this,t),t>=0&&this.size>t){t+=this._origin;var r=Qt(this,t);return r&&r.array[t&lr]}return e},Bt.prototype.set=function(t,e){return Ht(this,t,e)},Bt.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},Bt.prototype.insert=function(t,e){return this.splice(t,0,e)},Bt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=pr,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Pt()},Bt.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(r){Xt(r,0,e+t.length);for(var n=0;t.length>n;n++)r.set(e+n,t[n])})},Bt.prototype.pop=function(){return Xt(this,0,-1)},Bt.prototype.unshift=function(){var t=arguments;return this.withMutations(function(e){Xt(e,-t.length);for(var r=0;t.length>r;r++)e.set(r,t[r]); +})},Bt.prototype.shift=function(){return Xt(this,1)},Bt.prototype.merge=function(){return Ft(this,void 0,arguments)},Bt.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return Ft(this,t,e)},Bt.prototype.mergeDeep=function(){return Ft(this,kt,arguments)},Bt.prototype.mergeDeepWith=function(t){var e=sr.call(arguments,1);return Ft(this,At(t),e)},Bt.prototype.setSize=function(t){return Xt(this,0,t)},Bt.prototype.slice=function(t,e){var r=this.size;return d(t,e,r)?this:Xt(this,m(t,r),g(e,r))},Bt.prototype.__iterator=function(t,e){var r=0,n=Jt(this,e);return new S(function(){var e=n();return e===Xr?I():z(t,r++,e)})},Bt.prototype.__iterate=function(t,e){for(var r,n=0,i=Jt(this,e);(r=i())!==Xr&&t(r,n++,this)!==!1;);return n},Bt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Nt(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},Bt.isList=Wt;var Vr="@@__IMMUTABLE_LIST__@@",Yr=Bt.prototype;Yr[Vr]=!0,Yr[_r]=Yr.remove,Yr.setIn=Cr.setIn,Yr.deleteIn=Yr.removeIn=Cr.removeIn,Yr.update=Cr.update,Yr.updateIn=Cr.updateIn,Yr.mergeIn=Cr.mergeIn,Yr.mergeDeepIn=Cr.mergeDeepIn,Yr.withMutations=Cr.withMutations,Yr.asMutable=Cr.asMutable,Yr.asImmutable=Cr.asImmutable,Yr.wasAltered=Cr.wasAltered,Ct.prototype.removeBefore=function(t,e,r){if(r===e?1<>>e&lr;if(n>=this.array.length)return new Ct([],t);var i,o=0===n;if(e>0){var u=this.array[n];if(i=u&&u.removeBefore(t,e-pr,r),i===u&&o)return this}if(o&&!i)return this;var s=Yt(this,t);if(!o)for(var a=0;n>a;a++)s.array[a]=void 0;return i&&(s.array[n]=i),s},Ct.prototype.removeAfter=function(t,e,r){if(r===(e?1<>>e&lr;if(n>=this.array.length)return this;var i;if(e>0){var o=this.array[n];if(i=o&&o.removeAfter(t,e-pr,r),i===o&&n===this.array.length-1)return this}var u=Yt(this,t);return u.array.splice(n+1),i&&(u.array[n]=i),u};var Qr,Xr={};t(Zt,ct),Zt.of=function(){return this(arguments)},Zt.prototype.toString=function(){return this.__toString("OrderedMap {","}"); +},Zt.prototype.get=function(t,e){var r=this._map.get(t);return void 0!==r?this._list.get(r)[1]:e},Zt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):ee()},Zt.prototype.set=function(t,e){return re(this,t,e)},Zt.prototype.remove=function(t){return re(this,t,yr)},Zt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Zt.prototype.__iterate=function(t,e){var r=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],r)},e)},Zt.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},Zt.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),r=this._list.__ensureOwner(t);return t?te(e,r,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=r,this)},Zt.isOrderedMap=$t,Zt.prototype[cr]=!0,Zt.prototype[_r]=Zt.prototype.remove;var Fr;t(ne,x),ne.prototype.get=function(t,e){return this._iter.get(t,e)},ne.prototype.has=function(t){return this._iter.has(t)},ne.prototype.valueSeq=function(){return this._iter.valueSeq()},ne.prototype.reverse=function(){var t=this,e=he(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},ne.prototype.map=function(t,e){var r=this,n=ae(this,t,e);return this._useKeys||(n.valueSeq=function(){return r._iter.toSeq().map(t,e)}),n},ne.prototype.__iterate=function(t,e){var r,n=this;return this._iter.__iterate(this._useKeys?function(e,r){return t(e,r,n)}:(r=e?De(this):0,function(i){return t(i,e?--r:r++,n)}),e)},ne.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var r=this._iter.__iterator(wr,e),n=e?De(this):0;return new S(function(){var i=r.next();return i.done?i:z(t,e?--n:n++,i.value,i)})},ne.prototype[cr]=!0,t(ie,k),ie.prototype.includes=function(t){return this._iter.includes(t)},ie.prototype.__iterate=function(t,e){var r=this,n=0;return this._iter.__iterate(function(e){return t(e,n++,r)},e)},ie.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e),n=0; +return new S(function(){var e=r.next();return e.done?e:z(t,n++,e.value,e)})},t(oe,A),oe.prototype.has=function(t){return this._iter.includes(t)},oe.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate(function(e){return t(e,e,r)},e)},oe.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e);return new S(function(){var e=r.next();return e.done?e:z(t,e.value,e.value,e)})},t(ue,x),ue.prototype.entrySeq=function(){return this._iter.toSeq()},ue.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate(function(e){if(e){qe(e);var n=o(e);return t(n?e.get(1):e[1],n?e.get(0):e[0],r)}},e)},ue.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e);return new S(function(){for(;;){var e=r.next();if(e.done)return e;var n=e.value;if(n){qe(n);var i=o(n);return z(t,i?n.get(0):n[0],i?n.get(1):n[1],e)}}})},ie.prototype.cacheResult=ne.prototype.cacheResult=oe.prototype.cacheResult=ue.prototype.cacheResult=Oe,t(Ae,et),Ae.prototype.toString=function(){return this.__toString(Re(this)+" {","}")},Ae.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Ae.prototype.get=function(t,e){if(!this.has(t))return e;var r=this._defaultValues[t];return this._map?this._map.get(t,r):r},Ae.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=this.constructor;return t._empty||(t._empty=je(this,zt()))},Ae.prototype.set=function(t,e){if(!this.has(t))throw Error('Cannot set unknown key "'+t+'" on '+Re(this));if(this._map&&!this._map.has(t)){var r=this._defaultValues[t];if(e===r)return this}var n=this._map&&this._map.set(t,e);return this.__ownerID||n===this._map?this:je(this,n)},Ae.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:je(this,e)},Ae.prototype.wasAltered=function(){return this._map.wasAltered()},Ae.prototype.__iterator=function(t,e){var n=this;return r(this._defaultValues).map(function(t,e){return n.get(e)}).__iterator(t,e)},Ae.prototype.__iterate=function(t,e){ +var n=this;return r(this._defaultValues).map(function(t,e){return n.get(e)}).__iterate(t,e)},Ae.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?je(this,e,t):(this.__ownerID=t,this._map=e,this)};var Gr=Ae.prototype;Gr[_r]=Gr.remove,Gr.deleteIn=Gr.removeIn=Cr.removeIn,Gr.merge=Cr.merge,Gr.mergeWith=Cr.mergeWith,Gr.mergeIn=Cr.mergeIn,Gr.mergeDeep=Cr.mergeDeep,Gr.mergeDeepWith=Cr.mergeDeepWith,Gr.mergeDeepIn=Cr.mergeDeepIn,Gr.setIn=Cr.setIn,Gr.update=Cr.update,Gr.updateIn=Cr.updateIn,Gr.withMutations=Cr.withMutations,Gr.asMutable=Cr.asMutable,Gr.asImmutable=Cr.asImmutable,t(Le,nt),Le.of=function(){return this(arguments)},Le.fromKeys=function(t){return this(r(t).keySeq())},Le.prototype.toString=function(){return this.__toString("Set {","}")},Le.prototype.has=function(t){return this._map.has(t)},Le.prototype.add=function(t){return Be(this,this._map.set(t,!0))},Le.prototype.remove=function(t){return Be(this,this._map.remove(t))},Le.prototype.clear=function(){return Be(this,this._map.clear())},Le.prototype.union=function(){var t=sr.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var r=0;t.length>r;r++)i(t[r]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},Le.prototype.intersect=function(){var t=sr.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return i(t)});var e=this;return this.withMutations(function(r){e.forEach(function(e){t.every(function(t){return t.includes(e)})||r.remove(e)})})},Le.prototype.subtract=function(){var t=sr.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return i(t)});var e=this;return this.withMutations(function(r){e.forEach(function(e){t.some(function(t){return t.includes(e)})&&r.remove(e)})})},Le.prototype.merge=function(){return this.union.apply(this,arguments)},Le.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return this.union.apply(this,e)}, +Le.prototype.sort=function(t){return Je(we(this,t))},Le.prototype.sortBy=function(t,e){return Je(we(this,e,t))},Le.prototype.wasAltered=function(){return this._map.wasAltered()},Le.prototype.__iterate=function(t,e){var r=this;return this._map.__iterate(function(e,n){return t(n,n,r)},e)},Le.prototype.__iterator=function(t,e){return this._map.map(function(t,e){return e}).__iterator(t,e)},Le.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},Le.isSet=Te;var Zr="@@__IMMUTABLE_SET__@@",$r=Le.prototype;$r[Zr]=!0,$r[_r]=$r.remove,$r.mergeDeep=$r.merge,$r.mergeDeepWith=$r.mergeWith,$r.withMutations=Cr.withMutations,$r.asMutable=Cr.asMutable,$r.asImmutable=Cr.asImmutable,$r.__empty=Ce,$r.__make=We;var tn;t(Je,Le),Je.of=function(){return this(arguments)},Je.fromKeys=function(t){return this(r(t).keySeq())},Je.prototype.toString=function(){return this.__toString("OrderedSet {","}")},Je.isOrderedSet=Ne;var en=Je.prototype;en[cr]=!0,en.__empty=He,en.__make=Pe;var rn;t(Ve,rt),Ve.of=function(){return this(arguments)},Ve.prototype.toString=function(){return this.__toString("Stack [","]")},Ve.prototype.get=function(t,e){var r=this._head;for(t=l(this,t);r&&t--;)r=r.next;return r?r.value:e},Ve.prototype.peek=function(){return this._head&&this._head.value},Ve.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,r=arguments.length-1;r>=0;r--)e={value:arguments[r],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Qe(t,e)},Ve.prototype.pushAll=function(t){if(t=n(t),0===t.size)return this;ft(t.size);var e=this.size,r=this._head;return t.reverse().forEach(function(t){e++,r={value:t,next:r}}),this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):Qe(e,r)},Ve.prototype.pop=function(){return this.slice(1)},Ve.prototype.unshift=function(){return this.push.apply(this,arguments)},Ve.prototype.unshiftAll=function(t){ +return this.pushAll(t)},Ve.prototype.shift=function(){return this.pop.apply(this,arguments)},Ve.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xe()},Ve.prototype.slice=function(t,e){if(d(t,e,this.size))return this;var r=m(t,this.size),n=g(e,this.size);if(n!==this.size)return rt.prototype.slice.call(this,t,e);for(var i=this.size-r,o=this._head;r--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Qe(i,o)},Ve.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Qe(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Ve.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var r=0,n=this._head;n&&t(n.value,r++,this)!==!1;)n=n.next;return r},Ve.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var r=0,n=this._head;return new S(function(){if(n){var e=n.value;return n=n.next,z(t,r++,e)}return I()})},Ve.isStack=Ye;var nn="@@__IMMUTABLE_STACK__@@",on=Ve.prototype;on[nn]=!0,on.withMutations=Cr.withMutations,on.asMutable=Cr.asMutable,on.asImmutable=Cr.asImmutable,on.wasAltered=Cr.wasAltered;var un;e.Iterator=S,Fe(e,{toArray:function(){ft(this.size);var t=Array(this.size||0);return this.valueSeq().__iterate(function(e,r){t[r]=e}),t},toIndexedSeq:function(){return new ie(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new ne(this,!0)},toMap:function(){return ct(this.toKeyedSeq())},toObject:function(){ft(this.size);var t={};return this.__iterate(function(e,r){t[r]=e}),t},toOrderedMap:function(){return Zt(this.toKeyedSeq())},toOrderedSet:function(){return Je(u(this)?this.valueSeq():this)},toSet:function(){return Le(u(this)?this.valueSeq():this)},toSetSeq:function(){return new oe(this); +},toSeq:function(){return s(this)?this.toIndexedSeq():u(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ve(u(this)?this.valueSeq():this)},toList:function(){return Bt(u(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var t=sr.call(arguments,0);return be(this,ye(this,t))},includes:function(t){return this.some(function(e){return X(e,t)})},entries:function(){return this.__iterator(Sr)},every:function(t,e){ft(this.size);var r=!0;return this.__iterate(function(n,i,o){return t.call(e,n,i,o)?void 0:(r=!1,!1)}),r},filter:function(t,e){return be(this,fe(this,t,e,!0))},find:function(t,e,r){var n=this.findEntry(t,e);return n?n[1]:r},forEach:function(t,e){return ft(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){ft(this.size),t=void 0!==t?""+t:",";var e="",r=!0;return this.__iterate(function(n){r?r=!1:e+=t,e+=null!==n&&void 0!==n?""+n:""}),e},keys:function(){return this.__iterator(gr)},map:function(t,e){return be(this,ae(this,t,e))},reduce:function(t,e,r){ft(this.size);var n,i;return arguments.length<2?i=!0:n=e,this.__iterate(function(e,o,u){i?(i=!1,n=e):n=t.call(r,n,e,o,u)}),n},reduceRight:function(t,e,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return be(this,he(this,!0))},slice:function(t,e){return be(this,pe(this,t,e,!0))},some:function(t,e){return!this.every($e(t),e)},sort:function(t){return be(this,we(this,t))},values:function(){return this.__iterator(wr)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return v(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return ce(this,t,e)},equals:function(t){return F(this,t)},entrySeq:function(){var t=this;if(t._cache)return new j(t._cache);var e=t.toSeq().map(Ze).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){ +return this.filter($e(t),e)},findEntry:function(t,e,r){var n=r;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?(n=[i,r],!1):void 0}),n},findKey:function(t,e){var r=this.findEntry(t,e);return r&&r[0]},findLast:function(t,e,r){return this.toKeyedSeq().reverse().find(t,e,r)},findLastEntry:function(t,e,r){return this.toKeyedSeq().reverse().findEntry(t,e,r)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(y)},flatMap:function(t,e){return be(this,me(this,t,e))},flatten:function(t){return be(this,de(this,t,!0))},fromEntrySeq:function(){return new ue(this)},get:function(t,e){return this.find(function(e,r){return X(r,t)},void 0,e)},getIn:function(t,e){for(var r,n=this,i=ke(t);!(r=i.next()).done;){var o=r.value;if(n=n&&n.get?n.get(o,yr):yr,n===yr)return e}return n},groupBy:function(t,e){return _e(this,t,e)},has:function(t){return this.get(t,yr)!==yr},hasIn:function(t){return this.getIn(t,yr)!==yr},isSubset:function(t){return t="function"==typeof t.includes?t:e(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return t="function"==typeof t.isSubset?t:e(t),t.isSubset(this)},keyOf:function(t){return this.findKey(function(e){return X(e,t)})},keySeq:function(){return this.toSeq().map(Ge).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Se(this,t)},maxBy:function(t,e){return Se(this,e,t)},min:function(t){return Se(this,t?tr(t):nr)},minBy:function(t,e){return Se(this,e?tr(e):nr,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return be(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return be(this,le(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile($e(t),e)},sortBy:function(t,e){return be(this,we(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return be(this,this.toSeq().reverse().take(t).reverse()); +},takeWhile:function(t,e){return be(this,ve(this,t,e))},takeUntil:function(t,e){return this.takeWhile($e(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=ir(this))}});var sn=e.prototype;sn[ar]=!0,sn[br]=sn.values,sn.__toJS=sn.toArray,sn.__toStringMapper=er,sn.inspect=sn.toSource=function(){return""+this},sn.chain=sn.flatMap,sn.contains=sn.includes,Fe(r,{flip:function(){return be(this,se(this))},mapEntries:function(t,e){var r=this,n=0;return be(this,this.toSeq().map(function(i,o){return t.call(e,[o,i],n++,r)}).fromEntrySeq())},mapKeys:function(t,e){var r=this;return be(this,this.toSeq().flip().map(function(n,i){return t.call(e,n,i,r)}).flip())}});var an=r.prototype;an[hr]=!0,an[br]=sn.entries,an.__toJS=sn.toObject,an.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+er(t)},Fe(n,{toKeyedSeq:function(){return new ne(this,!1)},filter:function(t,e){return be(this,fe(this,t,e,!1))},findIndex:function(t,e){var r=this.findEntry(t,e);return r?r[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return be(this,he(this,!1))},slice:function(t,e){return be(this,pe(this,t,e,!1))},splice:function(t,e){var r=arguments.length;if(e=Math.max(0|e,0),0===r||2===r&&!e)return this;t=m(t,0>t?this.count():this.size);var n=this.slice(0,t);return be(this,1===r?n:n.concat(p(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var r=this.findLastEntry(t,e);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(t){return be(this,de(this,t,!1))},get:function(t,e){return t=l(this,t),0>t||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,r){return r===t},void 0,e)},has:function(t){return t=l(this,t),t>=0&&(void 0!==this.size?this.size===1/0||this.size>t:-1!==this.indexOf(t))},interpose:function(t){return be(this,ge(this,t))},interleave:function(){var t=[this].concat(p(arguments)),e=Ie(this.toSeq(),k.of,t),r=e.flatten(!0);return e.size&&(r.size=e.size*t.length), +be(this,r)},keySeq:function(){return $(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(t,e){return be(this,le(this,t,e,!1))},zip:function(){var t=[this].concat(p(arguments));return be(this,Ie(this,rr,t))},zipWith:function(t){var e=p(arguments);return e[0]=this,be(this,Ie(this,t,e))}}),n.prototype[fr]=!0,n.prototype[cr]=!0,Fe(i,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=sn.includes,i.prototype.contains=i.prototype.includes,Fe(x,r.prototype),Fe(k,n.prototype),Fe(A,i.prototype),Fe(et,r.prototype),Fe(rt,n.prototype),Fe(nt,i.prototype);var hn={Iterable:e,Seq:O,Collection:tt,Map:ct,OrderedMap:Zt,List:Bt,Stack:Ve,Set:Le,OrderedSet:Je,Record:Ae,Range:$,Repeat:G,is:X,fromJS:H};return hn}); \ No newline at end of file diff --git a/packages/client/node_modules/immutable/package.json b/packages/client/node_modules/immutable/package.json new file mode 100644 index 0000000..6dc5f27 --- /dev/null +++ b/packages/client/node_modules/immutable/package.json @@ -0,0 +1,111 @@ +{ + "name": "immutable", + "version": "3.8.2", + "description": "Immutable Data Collections", + "license": "MIT", + "homepage": "https://facebook.github.com/immutable-js", + "author": { + "name": "Lee Byron", + "url": "https://github.com/leebyron" + }, + "repository": { + "type": "git", + "url": "git://github.com/facebook/immutable-js.git" + }, + "bugs": { + "url": "https://github.com/facebook/immutable-js/issues" + }, + "main": "dist/immutable.js", + "typings": "dist/immutable-nonambient.d.ts", + "typescript": { + "definition": "dist/immutable.d.ts" + }, + "scripts": { + "build": "grunt default && gulp default", + "lint": "eslint src/ && grunt lint && gulp lint", + "testonly": "./resources/node_test.sh", + "test": "npm run lint && npm run testonly", + "perf": "node ./resources/bench.js", + "start": "npm run build && node ./pages/resources/start.js", + "deploy": "(cd ./pages/out && git init && git config user.name \"Travis CI\" && git config user.email \"github@fb.com\" && git add . && git commit -m \"Deploy to GitHub Pages\" && git push --force --quiet \"https://${GH_TOKEN}@github.com/facebook/immutable-js.git\" master:gh-pages > /dev/null 2>1)" + }, + "jest": { + "scriptPreprocessor": "resources/jestPreprocessor.js", + "testFileExtensions": [ + "js", + "ts" + ], + "persistModuleRegistryBetweenSpecs": true + }, + "devDependencies": { + "acorn": "0.11.x", + "babel-eslint": "^4.1.8", + "benchmark": "^1.0.0", + "bluebird": "3.1.1", + "browser-sync": "2.11.0", + "browserify": "^5.11.2", + "colors": "1.1.2", + "del": "2.2.0", + "es6-transpiler": "0.7.18", + "eslint": "^1.10.3", + "estraverse": "1.9.3", + "express": "^4.13.4", + "fbjs-scripts": "^0.5.0", + "grunt": "0.4.5", + "grunt-cli": "0.1.13", + "grunt-contrib-clean": "0.7.0", + "grunt-contrib-copy": "0.8.2", + "grunt-contrib-jshint": "0.11.3", + "grunt-release": "0.13.0", + "gulp": "3.9.0", + "gulp-concat": "2.6.0", + "gulp-filter": "3.0.1", + "gulp-header": "1.7.1", + "gulp-jest": "^0.2.1", + "gulp-jshint": "^1.8.4", + "gulp-less": "3.0.5", + "gulp-size": "2.0.0", + "gulp-sourcemaps": "1.6.0", + "gulp-uglify": "1.5.1", + "gulp-util": "3.0.7", + "harmonize": "1.4.4", + "jasmine-check": "^0.1.2", + "jest-cli": "^0.5.10", + "jshint-stylish": "^0.4.0", + "magic-string": "0.10.2", + "marked": "0.3.5", + "microtime": "^2.0.0", + "node-jsx": "^0.12.4", + "react": "^0.12.0", + "react-router": "^0.11.2", + "react-tools": "^0.12.0", + "rollup": "0.24.0", + "run-sequence": "1.1.5", + "through2": "2.0.0", + "typescript": "1.7.5", + "uglify-js": "2.6.1", + "vinyl-buffer": "1.0.0", + "vinyl-source-stream": "1.1.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "dist", + "contrib", + "README.md", + "LICENSE" + ], + "keywords": [ + "immutable", + "persistent", + "lazy", + "data", + "datastructure", + "functional", + "collection", + "stateless", + "sequence", + "iteration" + ] +} diff --git a/packages/client/node_modules/rc-animate/HISTORY.md b/packages/client/node_modules/rc-animate/HISTORY.md new file mode 100644 index 0000000..a966ad7 --- /dev/null +++ b/packages/client/node_modules/rc-animate/HISTORY.md @@ -0,0 +1,42 @@ +# History +---- + +## 3.0.0 / 2020-05-07 + +- Remove css-animation/babel-runtime/prop-types/react-lifecycles-compat from deps. + +## 2.10.2 / 2019-11-09 + +- There should not be any lifecycle warning now! + +## 2.10.0 / 2019-08-27 + +- CSSMotionList support `component` to be `false` to render nothing + +## 2.9.0 / 2019-07-09 + +- CSSMotion support forward ref to render props + +## 2.8.0 / 2019-04-29 + +- `keys` on CSSMotionList can be an object + +## 2.7.0 / 2019-04-29 + +- add CSSMotionList component + +## 2.6.0 / 2018-11-26 + +- add CSSMotion component + +## 2.3.0 / 2016-07-05 + +- support null/undefined child: https://github.com/react-component/animate/pull/11 + +## 2.2.0 / 2016-06-28 + +- support transitionName as object + +## 2.1.0 / 2016-06-16 + +- make onEnter/onLeave/onAppear async diff --git a/packages/client/node_modules/rc-animate/LICENSE.md b/packages/client/node_modules/rc-animate/LICENSE.md new file mode 100644 index 0000000..1f5a0d9 --- /dev/null +++ b/packages/client/node_modules/rc-animate/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2014-present yiminghe + +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. diff --git a/packages/client/node_modules/rc-animate/README.md b/packages/client/node_modules/rc-animate/README.md new file mode 100644 index 0000000..190d0a8 --- /dev/null +++ b/packages/client/node_modules/rc-animate/README.md @@ -0,0 +1,193 @@ +# rc-animate +--- + +Animate React Component easily. + +[![NPM version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![Dependencies][david-image]][david-url] +[![DevDependencies][david-dev-image]][david-dev-url] +[![npm download][download-image]][download-url] +[![bundle size][bundlephobia-image]][bundlephobia-url] + +[npm-image]: http://img.shields.io/npm/v/rc-animate.svg?style=flat-square +[npm-url]: http://npmjs.org/package/rc-animate +[travis-image]: https://img.shields.io/travis/react-component/animate.svg?style=flat-square +[travis-url]: https://travis-ci.org/react-component/animate +[coveralls-image]: https://img.shields.io/coveralls/react-component/animate.svg?style=flat-square +[coveralls-url]: https://coveralls.io/r/react-component/animate?branch=master +[david-url]: https://david-dm.org/react-component/animate +[david-image]: https://david-dm.org/react-component/animate/status.svg?style=flat-square +[david-dev-url]: https://david-dm.org/react-component/animate?type=dev +[david-dev-image]: https://david-dm.org/react-component/animate/dev-status.svg?style=flat-square +[download-image]: https://img.shields.io/npm/dm/rc-animate.svg?style=flat-square +[download-url]: https://npmjs.org/package/rc-animate +[bundlephobia-url]: https://bundlephobia.com/result?p=rc-animate +[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/rc-animate + +## Install + +[![rc-animate](https://nodei.co/npm/rc-animate.png)](https://npmjs.org/package/rc-animate) + +## Usage + +```js +import Animate from 'rc-animate'; + +export default () => ( + +

1

+

2

+
+); +``` + +## Compatibility + +| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | [Electron](http://godban.github.io/browsers-support-badges/)
Electron | +| --- | --- | --- | --- | --- | +| IE11, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +## API + +### props + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nametypedefaultdescription
componentReact.Element/String'span'wrap dom node or component for children. set to '' if you do not wrap for only one child
componentPropsObject{}extra props that will be passed to component
showPropStringusing prop for show and hide. [demo](http://react-component.github.io/animate/examples/hide-todo.html)
exclusiveBooleanwhether allow only one set of animations(enter and leave) at the same time.
transitionNameString|Objectspecify corresponding css, see ReactCSSTransitionGroup
transitionAppearBooleanfalsewhether support transition appear anim
transitionEnterBooleantruewhether support transition enter anim
transitionLeaveBooleantruewhether support transition leave anim
onEndfunction(key:String, exists:Boolean)trueanimation end callback
animationObject{} + to animate with js. see animation format below. +
+ +### animation format + +with appear, enter and leave as keys. for example: + +```js + { + appear: function(node, done){ + node.style.display='none'; + $(node).slideUp(done); + return { + stop:function(){ + // jq will call done on finish + $(node).stop(true); + } + }; + }, + enter: function(){ + this.appear.apply(this,arguments); + }, + leave: function(node, done){ + node.style.display=''; + $(node).slideDown(done); + return { + stop:function(){ + // jq will call done on finish + $(node).stop(true); + } + }; + } + } +``` + +## Development + +``` +npm install +npm start +``` + +## Example + +http://localhost:8200/examples/index.md + +online example: http://react-component.github.io/animate/examples/ + +## Test Case + +``` +npm test +npm run chrome-test +``` + +## Coverage + +``` +npm run coverage +``` + +open coverage/ dir + +## License + +rc-animate is released under the MIT license. diff --git a/packages/client/node_modules/rc-animate/es/Animate.js b/packages/client/node_modules/rc-animate/es/Animate.js new file mode 100644 index 0000000..8fbd592 --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/Animate.js @@ -0,0 +1,340 @@ +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 _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; } + +/* eslint react/prop-types: 0 */ +import React from 'react'; +import unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill'; +import { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils'; +import AnimateChild from './AnimateChild'; +import animUtil from './util/animate'; + +var defaultKey = 'rc_animate_' + Date.now(); + +function getChildrenFromProps(props) { + var children = props.children; + if (React.isValidElement(children)) { + if (!children.key) { + return React.cloneElement(children, { + key: defaultKey + }); + } + } + return children; +} + +function noop() {} + +var Animate = function (_React$Component) { + _inherits(Animate, _React$Component); + + function Animate(props) { + _classCallCheck(this, Animate); + + var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props)); + + _initialiseProps.call(_this); + + _this.currentlyAnimatingKeys = {}; + _this.keysToEnter = []; + _this.keysToLeave = []; + + _this.state = { + children: toArrayChildren(getChildrenFromProps(props)) + }; + + _this.childrenRefs = {}; + return _this; + } // eslint-disable-line + + _createClass(Animate, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + var showProp = this.props.showProp; + var children = this.state.children; + if (showProp) { + children = children.filter(function (child) { + return !!child.props[showProp]; + }); + } + children.forEach(function (child) { + if (child) { + _this2.performAppear(child.key); + } + }); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var _this3 = this; + + this.nextProps = nextProps; + var nextChildren = toArrayChildren(getChildrenFromProps(nextProps)); + var props = this.props; + // exclusive needs immediate response + if (props.exclusive) { + Object.keys(this.currentlyAnimatingKeys).forEach(function (key) { + _this3.stop(key); + }); + } + var showProp = props.showProp; + var currentlyAnimatingKeys = this.currentlyAnimatingKeys; + // last props children if exclusive + var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children; + // in case destroy in showProp mode + var newChildren = []; + if (showProp) { + currentChildren.forEach(function (currentChild) { + var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key); + var newChild = void 0; + if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) { + newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true)); + } else { + newChild = nextChild; + } + if (newChild) { + newChildren.push(newChild); + } + }); + nextChildren.forEach(function (nextChild) { + if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) { + newChildren.push(nextChild); + } + }); + } else { + newChildren = mergeChildren(currentChildren, nextChildren); + } + + // need render to avoid update + this.setState({ + children: newChildren + }); + + nextChildren.forEach(function (child) { + var key = child && child.key; + if (child && currentlyAnimatingKeys[key]) { + return; + } + var hasPrev = child && findChildInChildrenByKey(currentChildren, key); + if (showProp) { + var showInNext = child.props[showProp]; + if (hasPrev) { + var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp); + if (!showInNow && showInNext) { + _this3.keysToEnter.push(key); + } + } else if (showInNext) { + _this3.keysToEnter.push(key); + } + } else if (!hasPrev) { + _this3.keysToEnter.push(key); + } + }); + + currentChildren.forEach(function (child) { + var key = child && child.key; + if (child && currentlyAnimatingKeys[key]) { + return; + } + var hasNext = child && findChildInChildrenByKey(nextChildren, key); + if (showProp) { + var showInNow = child.props[showProp]; + if (hasNext) { + var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp); + if (!showInNext && showInNow) { + _this3.keysToLeave.push(key); + } + } else if (showInNow) { + _this3.keysToLeave.push(key); + } + } else if (!hasNext) { + _this3.keysToLeave.push(key); + } + }); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + var keysToEnter = this.keysToEnter; + this.keysToEnter = []; + keysToEnter.forEach(this.performEnter); + var keysToLeave = this.keysToLeave; + this.keysToLeave = []; + keysToLeave.forEach(this.performLeave); + } + }, { + key: 'isValidChildByKey', + value: function isValidChildByKey(currentChildren, key) { + var showProp = this.props.showProp; + if (showProp) { + return findShownChildInChildrenByKey(currentChildren, key, showProp); + } + return findChildInChildrenByKey(currentChildren, key); + } + }, { + key: 'stop', + value: function stop(key) { + delete this.currentlyAnimatingKeys[key]; + var component = this.childrenRefs[key]; + if (component) { + component.stop(); + } + } + }, { + key: 'render', + value: function render() { + var _this4 = this; + + var props = this.props; + this.nextProps = props; + var stateChildren = this.state.children; + var children = null; + if (stateChildren) { + children = stateChildren.map(function (child) { + if (child === null || child === undefined) { + return child; + } + if (!child.key) { + throw new Error('must set key for children'); + } + return React.createElement( + AnimateChild, + { + key: child.key, + ref: function ref(node) { + _this4.childrenRefs[child.key] = node; + }, + animation: props.animation, + transitionName: props.transitionName, + transitionEnter: props.transitionEnter, + transitionAppear: props.transitionAppear, + transitionLeave: props.transitionLeave + }, + child + ); + }); + } + var Component = props.component; + if (Component) { + var passedProps = props; + if (typeof Component === 'string') { + passedProps = _extends({ + className: props.className, + style: props.style + }, props.componentProps); + } + return React.createElement( + Component, + passedProps, + children + ); + } + return children[0] || null; + } + }]); + + return Animate; +}(React.Component); + +Animate.isAnimate = true; +Animate.defaultProps = { + animation: {}, + component: 'span', + componentProps: {}, + transitionEnter: true, + transitionLeave: true, + transitionAppear: false, + onEnd: noop, + onEnter: noop, + onLeave: noop, + onAppear: noop +}; + +var _initialiseProps = function _initialiseProps() { + var _this5 = this; + + this.performEnter = function (key) { + // may already remove by exclusive + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter')); + } + }; + + this.performAppear = function (key) { + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear')); + } + }; + + this.handleDoneAdding = function (key, type) { + var props = _this5.props; + delete _this5.currentlyAnimatingKeys[key]; + // if update on exclusive mode, skip check + if (props.exclusive && props !== _this5.nextProps) { + return; + } + var currentChildren = toArrayChildren(getChildrenFromProps(props)); + if (!_this5.isValidChildByKey(currentChildren, key)) { + // exclusive will not need this + _this5.performLeave(key); + } else if (type === 'appear') { + if (animUtil.allowAppearCallback(props)) { + props.onAppear(key); + props.onEnd(key, true); + } + } else if (animUtil.allowEnterCallback(props)) { + props.onEnter(key); + props.onEnd(key, true); + } + }; + + this.performLeave = function (key) { + // may already remove by exclusive + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key)); + } + }; + + this.handleDoneLeaving = function (key) { + var props = _this5.props; + delete _this5.currentlyAnimatingKeys[key]; + // if update on exclusive mode, skip check + if (props.exclusive && props !== _this5.nextProps) { + return; + } + var currentChildren = toArrayChildren(getChildrenFromProps(props)); + // in case state change is too fast + if (_this5.isValidChildByKey(currentChildren, key)) { + _this5.performEnter(key); + } else { + var end = function end() { + if (animUtil.allowLeaveCallback(props)) { + props.onLeave(key); + props.onEnd(key, false); + } + }; + if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) { + _this5.setState({ + children: currentChildren + }, end); + } else { + end(); + } + } + }; +}; + +export default unsafeLifecyclesPolyfill(Animate); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/AnimateChild.js b/packages/client/node_modules/rc-animate/es/AnimateChild.js new file mode 100644 index 0000000..55b971c --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/AnimateChild.js @@ -0,0 +1,112 @@ +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 _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; } + +/* eslint react/prop-types: 0 */ +import React from 'react'; +import ReactDOM from 'react-dom'; +import cssAnimate, { isCssAnimationSupported } from '@ant-design/css-animation'; +import animUtil from './util/animate'; + +var transitionMap = { + enter: 'transitionEnter', + appear: 'transitionAppear', + leave: 'transitionLeave' +}; + +var AnimateChild = function (_React$Component) { + _inherits(AnimateChild, _React$Component); + + function AnimateChild() { + _classCallCheck(this, AnimateChild); + + return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments)); + } + + _createClass(AnimateChild, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.stop(); + } + }, { + key: 'componentWillEnter', + value: function componentWillEnter(done) { + if (animUtil.isEnterSupported(this.props)) { + this.transition('enter', done); + } else { + done(); + } + } + }, { + key: 'componentWillAppear', + value: function componentWillAppear(done) { + if (animUtil.isAppearSupported(this.props)) { + this.transition('appear', done); + } else { + done(); + } + } + }, { + key: 'componentWillLeave', + value: function componentWillLeave(done) { + if (animUtil.isLeaveSupported(this.props)) { + this.transition('leave', done); + } else { + // always sync, do not interupt with react component life cycle + // update hidden -> animate hidden -> + // didUpdate -> animate leave -> unmount (if animate is none) + done(); + } + } + }, { + key: 'transition', + value: function transition(animationType, finishCallback) { + var _this2 = this; + + var node = ReactDOM.findDOMNode(this); + var props = this.props; + var transitionName = props.transitionName; + var nameIsObj = typeof transitionName === 'object'; + this.stop(); + var end = function end() { + _this2.stopper = null; + finishCallback(); + }; + if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) { + var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType; + var activeName = name + '-active'; + if (nameIsObj && transitionName[animationType + 'Active']) { + activeName = transitionName[animationType + 'Active']; + } + this.stopper = cssAnimate(node, { + name: name, + active: activeName + }, end); + } else { + this.stopper = props.animation[animationType](node, end); + } + } + }, { + key: 'stop', + value: function stop() { + var stopper = this.stopper; + if (stopper) { + this.stopper = null; + stopper.stop(); + } + } + }, { + key: 'render', + value: function render() { + return this.props.children; + } + }]); + + return AnimateChild; +}(React.Component); + +export default AnimateChild; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/CSSMotion.js b/packages/client/node_modules/rc-animate/es/CSSMotion.js new file mode 100644 index 0000000..8c7a50c --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/CSSMotion.js @@ -0,0 +1,339 @@ +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 _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; } + +/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */ +import React from 'react'; +import findDOMNode from 'rc-util/es/Dom/findDOMNode'; +import classNames from 'classnames'; +import raf from 'raf'; +import { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util/motion'; + +var STATUS_NONE = 'none'; +var STATUS_APPEAR = 'appear'; +var STATUS_ENTER = 'enter'; +var STATUS_LEAVE = 'leave'; + +/** + * `transitionSupport` is used for none transition test case. + * Default we use browser transition event support check. + */ +export function genCSSMotion(config) { + var transitionSupport = config; + var forwardRef = !!React.forwardRef; + + if (typeof config === 'object') { + transitionSupport = config.transitionSupport; + forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef; + } + + function isSupportTransition(props) { + return !!(props.motionName && transitionSupport); + } + + var CSSMotion = function (_React$Component) { + _inherits(CSSMotion, _React$Component); + + function CSSMotion() { + _classCallCheck(this, CSSMotion); + + var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); + + _this.onDomUpdate = function () { + var _this$state = _this.state, + status = _this$state.status, + newStatus = _this$state.newStatus; + var _this$props = _this.props, + onAppearStart = _this$props.onAppearStart, + onEnterStart = _this$props.onEnterStart, + onLeaveStart = _this$props.onLeaveStart, + onAppearActive = _this$props.onAppearActive, + onEnterActive = _this$props.onEnterActive, + onLeaveActive = _this$props.onLeaveActive, + motionAppear = _this$props.motionAppear, + motionEnter = _this$props.motionEnter, + motionLeave = _this$props.motionLeave; + + + if (!isSupportTransition(_this.props)) { + return; + } + + // Event injection + var $ele = _this.getElement(); + if (_this.$cacheEle !== $ele) { + _this.removeEventListener(_this.$cacheEle); + _this.addEventListener($ele); + _this.$cacheEle = $ele; + } + + // Init status + if (newStatus && status === STATUS_APPEAR && motionAppear) { + _this.updateStatus(onAppearStart, null, null, function () { + _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); + }); + } else if (newStatus && status === STATUS_ENTER && motionEnter) { + _this.updateStatus(onEnterStart, null, null, function () { + _this.updateActiveStatus(onEnterActive, STATUS_ENTER); + }); + } else if (newStatus && status === STATUS_LEAVE && motionLeave) { + _this.updateStatus(onLeaveStart, null, null, function () { + _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); + }); + } + }; + + _this.onMotionEnd = function (event) { + var _this$state2 = _this.state, + status = _this$state2.status, + statusActive = _this$state2.statusActive; + var _this$props2 = _this.props, + onAppearEnd = _this$props2.onAppearEnd, + onEnterEnd = _this$props2.onEnterEnd, + onLeaveEnd = _this$props2.onLeaveEnd; + + if (status === STATUS_APPEAR && statusActive) { + _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_ENTER && statusActive) { + _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_LEAVE && statusActive) { + _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); + } + }; + + _this.setNodeRef = function (node) { + var internalRef = _this.props.internalRef; + + _this.node = node; + + if (typeof internalRef === 'function') { + internalRef(node); + } else if (internalRef && 'current' in internalRef) { + internalRef.current = node; + } + }; + + _this.getElement = function () { + try { + return findDOMNode(_this.node || _this); + } catch (e) { + /** + * Fallback to cache element. + * This is only happen when `motionDeadline` trigger but element removed. + */ + return _this.$cacheEle; + } + }; + + _this.addEventListener = function ($ele) { + if (!$ele) return; + + $ele.addEventListener(transitionEndName, _this.onMotionEnd); + $ele.addEventListener(animationEndName, _this.onMotionEnd); + }; + + _this.removeEventListener = function ($ele) { + if (!$ele) return; + + $ele.removeEventListener(transitionEndName, _this.onMotionEnd); + $ele.removeEventListener(animationEndName, _this.onMotionEnd); + }; + + _this.updateStatus = function (styleFunc, additionalState, event, callback) { + var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null; + + if (statusStyle === false || _this._destroyed) return; + + var nextStep = void 0; + if (callback) { + nextStep = function nextStep() { + _this.nextFrame(callback); + }; + } + + _this.setState(_extends({ + statusStyle: typeof statusStyle === 'object' ? statusStyle : null, + newStatus: false + }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` + }; + + _this.updateActiveStatus = function (styleFunc, currentStatus) { + // `setState` use `postMessage` to trigger at the end of frame. + // Let's use requestAnimationFrame to update new state in next frame. + _this.nextFrame(function () { + var status = _this.state.status; + + if (status !== currentStatus) return; + + var motionDeadline = _this.props.motionDeadline; + + + _this.updateStatus(styleFunc, { statusActive: true }); + + if (motionDeadline > 0) { + _this.timer = setTimeout(function () { + _this.onMotionEnd({ + deadline: true + }); + }, motionDeadline); + } + }); + }; + + _this.nextFrame = function (func) { + _this.cancelNextFrame(); + _this.raf = raf(func); + }; + + _this.cancelNextFrame = function () { + if (_this.raf) { + raf.cancel(_this.raf); + _this.raf = null; + } + }; + + _this.state = { + status: STATUS_NONE, + statusActive: false, + newStatus: false, + statusStyle: null + }; + _this.$cacheEle = null; + _this.node = null; + _this.raf = null; + return _this; + } + + _createClass(CSSMotion, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.onDomUpdate(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.onDomUpdate(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this._destroyed = true; + this.removeEventListener(this.$cacheEle); + this.cancelNextFrame(); + clearTimeout(this.timer); + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _state = this.state, + status = _state.status, + statusActive = _state.statusActive, + statusStyle = _state.statusStyle; + var _props = this.props, + children = _props.children, + motionName = _props.motionName, + visible = _props.visible, + removeOnLeave = _props.removeOnLeave, + leavedClassName = _props.leavedClassName, + eventProps = _props.eventProps; + + + if (!children) return null; + + if (status === STATUS_NONE || !isSupportTransition(this.props)) { + if (visible) { + return children(_extends({}, eventProps), this.setNodeRef); + } else if (!removeOnLeave) { + return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef); + } + + return null; + } + + return children(_extends({}, eventProps, { + className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)), + style: statusStyle + }), this.setNodeRef); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(props, _ref) { + var prevProps = _ref.prevProps, + prevStatus = _ref.status; + + if (!isSupportTransition(props)) return {}; + + var visible = props.visible, + motionAppear = props.motionAppear, + motionEnter = props.motionEnter, + motionLeave = props.motionLeave, + motionLeaveImmediately = props.motionLeaveImmediately; + + var newState = { + prevProps: props + }; + + // Clean up status if prop set to false + if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) { + newState.status = STATUS_NONE; + newState.statusActive = false; + newState.newStatus = false; + } + + // Appear + if (!prevProps && visible && motionAppear) { + newState.status = STATUS_APPEAR; + newState.statusActive = false; + newState.newStatus = true; + } + + // Enter + if (prevProps && !prevProps.visible && visible && motionEnter) { + newState.status = STATUS_ENTER; + newState.statusActive = false; + newState.newStatus = true; + } + + // Leave + if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { + newState.status = STATUS_LEAVE; + newState.statusActive = false; + newState.newStatus = true; + } + + return newState; + } + }]); + + return CSSMotion; + }(React.Component); + + CSSMotion.defaultProps = { + visible: true, + motionEnter: true, + motionAppear: true, + motionLeave: true, + removeOnLeave: true + }; + + + if (!forwardRef) { + return CSSMotion; + } + + return React.forwardRef(function (props, ref) { + return React.createElement(CSSMotion, _extends({ internalRef: ref }, props)); + }); +} + +export default genCSSMotion(supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/CSSMotionList.js b/packages/client/node_modules/rc-animate/es/CSSMotionList.js new file mode 100644 index 0000000..29c249c --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/CSSMotionList.js @@ -0,0 +1,155 @@ +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; } + +/* eslint react/prop-types: 0 */ +import React from 'react'; +import OriginCSSMotion from './CSSMotion'; +import { supportTransition } from './util/motion'; +import { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff'; + +var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd']; + +export function genCSSMotionList(transitionSupport) { + var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion; + + var CSSMotionList = function (_React$Component) { + _inherits(CSSMotionList, _React$Component); + + function CSSMotionList() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, CSSMotionList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CSSMotionList.__proto__ || Object.getPrototypeOf(CSSMotionList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + keyEntities: [] + }, _this.removeKey = function (removeKey) { + _this.setState(function (_ref2) { + var keyEntities = _ref2.keyEntities; + return { + keyEntities: keyEntities.map(function (entity) { + if (entity.key !== removeKey) return entity; + return _extends({}, entity, { + status: STATUS_REMOVED + }); + }) + }; + }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(CSSMotionList, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var keyEntities = this.state.keyEntities; + + var _props = this.props, + component = _props.component, + children = _props.children, + restProps = _objectWithoutProperties(_props, ['component', 'children']); + + var Component = component || React.Fragment; + + var motionProps = {}; + MOTION_PROP_NAMES.forEach(function (prop) { + motionProps[prop] = restProps[prop]; + delete restProps[prop]; + }); + delete restProps.keys; + + return React.createElement( + Component, + restProps, + keyEntities.map(function (_ref3) { + var status = _ref3.status, + eventProps = _objectWithoutProperties(_ref3, ['status']); + + var visible = status === STATUS_ADD || status === STATUS_KEEP; + return React.createElement( + CSSMotion, + _extends({}, motionProps, { + key: eventProps.key, + visible: visible, + eventProps: eventProps, + onLeaveEnd: function onLeaveEnd() { + if (motionProps.onLeaveEnd) { + motionProps.onLeaveEnd.apply(motionProps, arguments); + } + _this2.removeKey(eventProps.key); + } + }), + children + ); + }) + ); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(_ref4, _ref5) { + var keys = _ref4.keys; + var keyEntities = _ref5.keyEntities; + + var parsedKeyObjects = parseKeys(keys); + + // Always as keep when motion not support + if (!transitionSupport) { + return { + keyEntities: parsedKeyObjects.map(function (obj) { + return _extends({}, obj, { status: STATUS_KEEP }); + }) + }; + } + + var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects); + + var keyEntitiesLen = keyEntities.length; + return { + keyEntities: mixedKeyEntities.filter(function (entity) { + // IE 9 not support Array.prototype.find + var prevEntity = null; + for (var i = 0; i < keyEntitiesLen; i += 1) { + var currentEntity = keyEntities[i]; + if (currentEntity.key === entity.key) { + prevEntity = currentEntity; + break; + } + } + + // Remove if already mark as removed + if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) { + return false; + } + return true; + }) + }; + } + }]); + + return CSSMotionList; + }(React.Component); + + CSSMotionList.defaultProps = { + component: 'div' + }; + + + return CSSMotionList; +} + +export default genCSSMotionList(supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/ChildrenUtils.js b/packages/client/node_modules/rc-animate/es/ChildrenUtils.js new file mode 100644 index 0000000..82c5e9a --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/ChildrenUtils.js @@ -0,0 +1,101 @@ +import React from 'react'; + +export function toArrayChildren(children) { + var ret = []; + React.Children.forEach(children, function (child) { + ret.push(child); + }); + return ret; +} + +export function findChildInChildrenByKey(children, key) { + var ret = null; + if (children) { + children.forEach(function (child) { + if (ret) { + return; + } + if (child && child.key === key) { + ret = child; + } + }); + } + return ret; +} + +export function findShownChildInChildrenByKey(children, key, showProp) { + var ret = null; + if (children) { + children.forEach(function (child) { + if (child && child.key === key && child.props[showProp]) { + if (ret) { + throw new Error('two child with same key for children'); + } + ret = child; + } + }); + } + return ret; +} + +export function findHiddenChildInChildrenByKey(children, key, showProp) { + var found = 0; + if (children) { + children.forEach(function (child) { + if (found) { + return; + } + found = child && child.key === key && !child.props[showProp]; + }); + } + return found; +} + +export function isSameChildren(c1, c2, showProp) { + var same = c1.length === c2.length; + if (same) { + c1.forEach(function (child, index) { + var child2 = c2[index]; + if (child && child2) { + if (child && !child2 || !child && child2) { + same = false; + } else if (child.key !== child2.key) { + same = false; + } else if (showProp && child.props[showProp] !== child2.props[showProp]) { + same = false; + } + } + }); + } + return same; +} + +export function mergeChildren(prev, next) { + var ret = []; + + // For each key of `next`, the list of keys to insert before that key in + // the combined list + var nextChildrenPending = {}; + var pendingChildren = []; + prev.forEach(function (child) { + if (child && findChildInChildrenByKey(next, child.key)) { + if (pendingChildren.length) { + nextChildrenPending[child.key] = pendingChildren; + pendingChildren = []; + } + } else { + pendingChildren.push(child); + } + }); + + next.forEach(function (child) { + if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) { + ret = ret.concat(nextChildrenPending[child.key]); + } + ret.push(child); + }); + + ret = ret.concat(pendingChildren); + + return ret; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/animate.js b/packages/client/node_modules/rc-animate/es/util/animate.js new file mode 100644 index 0000000..7608383 --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/util/animate.js @@ -0,0 +1,21 @@ +var util = { + isAppearSupported: function isAppearSupported(props) { + return props.transitionName && props.transitionAppear || props.animation.appear; + }, + isEnterSupported: function isEnterSupported(props) { + return props.transitionName && props.transitionEnter || props.animation.enter; + }, + isLeaveSupported: function isLeaveSupported(props) { + return props.transitionName && props.transitionLeave || props.animation.leave; + }, + allowAppearCallback: function allowAppearCallback(props) { + return props.transitionAppear || props.animation.appear; + }, + allowEnterCallback: function allowEnterCallback(props) { + return props.transitionEnter || props.animation.enter; + }, + allowLeaveCallback: function allowLeaveCallback(props) { + return props.transitionLeave || props.animation.leave; + } +}; +export default util; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/diff.js b/packages/client/node_modules/rc-animate/es/util/diff.js new file mode 100644 index 0000000..45c423e --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/util/diff.js @@ -0,0 +1,106 @@ +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; }; + +export var STATUS_ADD = 'add'; +export var STATUS_KEEP = 'keep'; +export var STATUS_REMOVE = 'remove'; +export var STATUS_REMOVED = 'removed'; + +export function wrapKeyToObject(key) { + var keyObj = void 0; + if (key && typeof key === 'object' && 'key' in key) { + keyObj = key; + } else { + keyObj = { key: key }; + } + return _extends({}, keyObj, { + key: String(keyObj.key) + }); +} + +export function parseKeys() { + var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + return keys.map(wrapKeyToObject); +} + +export function diffKeys() { + var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var list = []; + var currentIndex = 0; + var currentLen = currentKeys.length; + + var prevKeyObjects = parseKeys(prevKeys); + var currentKeyObjects = parseKeys(currentKeys); + + // Check prev keys to insert or keep + prevKeyObjects.forEach(function (keyObj) { + var hit = false; + + for (var i = currentIndex; i < currentLen; i += 1) { + var currentKeyObj = currentKeyObjects[i]; + if (currentKeyObj.key === keyObj.key) { + // New added keys should add before current key + if (currentIndex < i) { + list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) { + return _extends({}, obj, { status: STATUS_ADD }); + })); + currentIndex = i; + } + list.push(_extends({}, currentKeyObj, { + status: STATUS_KEEP + })); + currentIndex += 1; + + hit = true; + break; + } + } + + // If not hit, it means key is removed + if (!hit) { + list.push(_extends({}, keyObj, { + status: STATUS_REMOVE + })); + } + }); + + // Add rest to the list + if (currentIndex < currentLen) { + list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) { + return _extends({}, obj, { status: STATUS_ADD }); + })); + } + + /** + * Merge same key when it remove and add again: + * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep] + */ + var keys = {}; + list.forEach(function (_ref) { + var key = _ref.key; + + keys[key] = (keys[key] || 0) + 1; + }); + var duplicatedKeys = Object.keys(keys).filter(function (key) { + return keys[key] > 1; + }); + duplicatedKeys.forEach(function (matchKey) { + // Remove `STATUS_REMOVE` node. + list = list.filter(function (_ref2) { + var key = _ref2.key, + status = _ref2.status; + return key !== matchKey || status !== STATUS_REMOVE; + }); + + // Update `STATUS_ADD` to `STATUS_KEEP` + list.forEach(function (node) { + if (node.key === matchKey) { + node.status = STATUS_KEEP; + } + }); + }); + + return list; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/motion.js b/packages/client/node_modules/rc-animate/es/util/motion.js new file mode 100644 index 0000000..6b4f9de --- /dev/null +++ b/packages/client/node_modules/rc-animate/es/util/motion.js @@ -0,0 +1,83 @@ +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +// ================= Transition ================= +// Event wrapper. Copy from react source code +function makePrefixMap(styleProp, eventName) { + var prefixes = {}; + + prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); + prefixes['Webkit' + styleProp] = 'webkit' + eventName; + prefixes['Moz' + styleProp] = 'moz' + eventName; + prefixes['ms' + styleProp] = 'MS' + eventName; + prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); + + return prefixes; +} + +export function getVendorPrefixes(domSupport, win) { + var prefixes = { + animationend: makePrefixMap('Animation', 'AnimationEnd'), + transitionend: makePrefixMap('Transition', 'TransitionEnd') + }; + + if (domSupport) { + if (!('AnimationEvent' in win)) { + delete prefixes.animationend.animation; + } + + if (!('TransitionEvent' in win)) { + delete prefixes.transitionend.transition; + } + } + + return prefixes; +} + +var vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {}); + +var style = {}; + +if (canUseDOM) { + style = document.createElement('div').style; +} + +var prefixedEventNames = {}; + +export function getVendorPrefixedEventName(eventName) { + if (prefixedEventNames[eventName]) { + return prefixedEventNames[eventName]; + } + + var prefixMap = vendorPrefixes[eventName]; + + if (prefixMap) { + var stylePropList = Object.keys(prefixMap); + var len = stylePropList.length; + for (var i = 0; i < len; i += 1) { + var styleProp = stylePropList[i]; + if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { + prefixedEventNames[eventName] = prefixMap[styleProp]; + return prefixedEventNames[eventName]; + } + } + } + + return ''; +} + +export var animationEndName = getVendorPrefixedEventName('animationend'); +export var transitionEndName = getVendorPrefixedEventName('transitionend'); +export var supportTransition = !!(animationEndName && transitionEndName); + +export function getTransitionName(transitionName, transitionType) { + if (!transitionName) return null; + + if (typeof transitionName === 'object') { + var type = transitionType.replace(/-\w/g, function (match) { + return match[1].toUpperCase(); + }); + return transitionName[type]; + } + + return transitionName + '-' + transitionType; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/Animate.js b/packages/client/node_modules/rc-animate/lib/Animate.js new file mode 100644 index 0000000..dfa6819 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/Animate.js @@ -0,0 +1,361 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _unsafeLifecyclesPolyfill = require('rc-util/lib/unsafeLifecyclesPolyfill'); + +var _unsafeLifecyclesPolyfill2 = _interopRequireDefault(_unsafeLifecyclesPolyfill); + +var _ChildrenUtils = require('./ChildrenUtils'); + +var _AnimateChild = require('./AnimateChild'); + +var _AnimateChild2 = _interopRequireDefault(_AnimateChild); + +var _animate = require('./util/animate'); + +var _animate2 = _interopRequireDefault(_animate); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +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; } /* eslint react/prop-types: 0 */ + + +var defaultKey = 'rc_animate_' + Date.now(); + +function getChildrenFromProps(props) { + var children = props.children; + if (_react2['default'].isValidElement(children)) { + if (!children.key) { + return _react2['default'].cloneElement(children, { + key: defaultKey + }); + } + } + return children; +} + +function noop() {} + +var Animate = function (_React$Component) { + _inherits(Animate, _React$Component); + + function Animate(props) { + _classCallCheck(this, Animate); + + var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props)); + + _initialiseProps.call(_this); + + _this.currentlyAnimatingKeys = {}; + _this.keysToEnter = []; + _this.keysToLeave = []; + + _this.state = { + children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) + }; + + _this.childrenRefs = {}; + return _this; + } // eslint-disable-line + + _createClass(Animate, [{ + key: 'componentDidMount', + value: function componentDidMount() { + var _this2 = this; + + var showProp = this.props.showProp; + var children = this.state.children; + if (showProp) { + children = children.filter(function (child) { + return !!child.props[showProp]; + }); + } + children.forEach(function (child) { + if (child) { + _this2.performAppear(child.key); + } + }); + } + }, { + key: 'componentWillReceiveProps', + value: function componentWillReceiveProps(nextProps) { + var _this3 = this; + + this.nextProps = nextProps; + var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps)); + var props = this.props; + // exclusive needs immediate response + if (props.exclusive) { + Object.keys(this.currentlyAnimatingKeys).forEach(function (key) { + _this3.stop(key); + }); + } + var showProp = props.showProp; + var currentlyAnimatingKeys = this.currentlyAnimatingKeys; + // last props children if exclusive + var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children; + // in case destroy in showProp mode + var newChildren = []; + if (showProp) { + currentChildren.forEach(function (currentChild) { + var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key); + var newChild = void 0; + if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) { + newChild = _react2['default'].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true)); + } else { + newChild = nextChild; + } + if (newChild) { + newChildren.push(newChild); + } + }); + nextChildren.forEach(function (nextChild) { + if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) { + newChildren.push(nextChild); + } + }); + } else { + newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren); + } + + // need render to avoid update + this.setState({ + children: newChildren + }); + + nextChildren.forEach(function (child) { + var key = child && child.key; + if (child && currentlyAnimatingKeys[key]) { + return; + } + var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key); + if (showProp) { + var showInNext = child.props[showProp]; + if (hasPrev) { + var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp); + if (!showInNow && showInNext) { + _this3.keysToEnter.push(key); + } + } else if (showInNext) { + _this3.keysToEnter.push(key); + } + } else if (!hasPrev) { + _this3.keysToEnter.push(key); + } + }); + + currentChildren.forEach(function (child) { + var key = child && child.key; + if (child && currentlyAnimatingKeys[key]) { + return; + } + var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key); + if (showProp) { + var showInNow = child.props[showProp]; + if (hasNext) { + var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp); + if (!showInNext && showInNow) { + _this3.keysToLeave.push(key); + } + } else if (showInNow) { + _this3.keysToLeave.push(key); + } + } else if (!hasNext) { + _this3.keysToLeave.push(key); + } + }); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + var keysToEnter = this.keysToEnter; + this.keysToEnter = []; + keysToEnter.forEach(this.performEnter); + var keysToLeave = this.keysToLeave; + this.keysToLeave = []; + keysToLeave.forEach(this.performLeave); + } + }, { + key: 'isValidChildByKey', + value: function isValidChildByKey(currentChildren, key) { + var showProp = this.props.showProp; + if (showProp) { + return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp); + } + return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key); + } + }, { + key: 'stop', + value: function stop(key) { + delete this.currentlyAnimatingKeys[key]; + var component = this.childrenRefs[key]; + if (component) { + component.stop(); + } + } + }, { + key: 'render', + value: function render() { + var _this4 = this; + + var props = this.props; + this.nextProps = props; + var stateChildren = this.state.children; + var children = null; + if (stateChildren) { + children = stateChildren.map(function (child) { + if (child === null || child === undefined) { + return child; + } + if (!child.key) { + throw new Error('must set key for children'); + } + return _react2['default'].createElement( + _AnimateChild2['default'], + { + key: child.key, + ref: function ref(node) { + _this4.childrenRefs[child.key] = node; + }, + animation: props.animation, + transitionName: props.transitionName, + transitionEnter: props.transitionEnter, + transitionAppear: props.transitionAppear, + transitionLeave: props.transitionLeave + }, + child + ); + }); + } + var Component = props.component; + if (Component) { + var passedProps = props; + if (typeof Component === 'string') { + passedProps = _extends({ + className: props.className, + style: props.style + }, props.componentProps); + } + return _react2['default'].createElement( + Component, + passedProps, + children + ); + } + return children[0] || null; + } + }]); + + return Animate; +}(_react2['default'].Component); + +Animate.isAnimate = true; +Animate.defaultProps = { + animation: {}, + component: 'span', + componentProps: {}, + transitionEnter: true, + transitionLeave: true, + transitionAppear: false, + onEnd: noop, + onEnter: noop, + onLeave: noop, + onAppear: noop +}; + +var _initialiseProps = function _initialiseProps() { + var _this5 = this; + + this.performEnter = function (key) { + // may already remove by exclusive + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter')); + } + }; + + this.performAppear = function (key) { + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear')); + } + }; + + this.handleDoneAdding = function (key, type) { + var props = _this5.props; + delete _this5.currentlyAnimatingKeys[key]; + // if update on exclusive mode, skip check + if (props.exclusive && props !== _this5.nextProps) { + return; + } + var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)); + if (!_this5.isValidChildByKey(currentChildren, key)) { + // exclusive will not need this + _this5.performLeave(key); + } else if (type === 'appear') { + if (_animate2['default'].allowAppearCallback(props)) { + props.onAppear(key); + props.onEnd(key, true); + } + } else if (_animate2['default'].allowEnterCallback(props)) { + props.onEnter(key); + props.onEnd(key, true); + } + }; + + this.performLeave = function (key) { + // may already remove by exclusive + if (_this5.childrenRefs[key]) { + _this5.currentlyAnimatingKeys[key] = true; + _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key)); + } + }; + + this.handleDoneLeaving = function (key) { + var props = _this5.props; + delete _this5.currentlyAnimatingKeys[key]; + // if update on exclusive mode, skip check + if (props.exclusive && props !== _this5.nextProps) { + return; + } + var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)); + // in case state change is too fast + if (_this5.isValidChildByKey(currentChildren, key)) { + _this5.performEnter(key); + } else { + var end = function end() { + if (_animate2['default'].allowLeaveCallback(props)) { + props.onLeave(key); + props.onEnd(key, false); + } + }; + if (!(0, _ChildrenUtils.isSameChildren)(_this5.state.children, currentChildren, props.showProp)) { + _this5.setState({ + children: currentChildren + }, end); + } else { + end(); + } + } + }; +}; + +exports['default'] = (0, _unsafeLifecyclesPolyfill2['default'])(Animate); +module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/AnimateChild.js b/packages/client/node_modules/rc-animate/lib/AnimateChild.js new file mode 100644 index 0000000..de6282a --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/AnimateChild.js @@ -0,0 +1,132 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = require('react-dom'); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _cssAnimation = require('@ant-design/css-animation'); + +var _cssAnimation2 = _interopRequireDefault(_cssAnimation); + +var _animate = require('./util/animate'); + +var _animate2 = _interopRequireDefault(_animate); + +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; } /* eslint react/prop-types: 0 */ + + +var transitionMap = { + enter: 'transitionEnter', + appear: 'transitionAppear', + leave: 'transitionLeave' +}; + +var AnimateChild = function (_React$Component) { + _inherits(AnimateChild, _React$Component); + + function AnimateChild() { + _classCallCheck(this, AnimateChild); + + return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments)); + } + + _createClass(AnimateChild, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.stop(); + } + }, { + key: 'componentWillEnter', + value: function componentWillEnter(done) { + if (_animate2['default'].isEnterSupported(this.props)) { + this.transition('enter', done); + } else { + done(); + } + } + }, { + key: 'componentWillAppear', + value: function componentWillAppear(done) { + if (_animate2['default'].isAppearSupported(this.props)) { + this.transition('appear', done); + } else { + done(); + } + } + }, { + key: 'componentWillLeave', + value: function componentWillLeave(done) { + if (_animate2['default'].isLeaveSupported(this.props)) { + this.transition('leave', done); + } else { + // always sync, do not interupt with react component life cycle + // update hidden -> animate hidden -> + // didUpdate -> animate leave -> unmount (if animate is none) + done(); + } + } + }, { + key: 'transition', + value: function transition(animationType, finishCallback) { + var _this2 = this; + + var node = _reactDom2['default'].findDOMNode(this); + var props = this.props; + var transitionName = props.transitionName; + var nameIsObj = typeof transitionName === 'object'; + this.stop(); + var end = function end() { + _this2.stopper = null; + finishCallback(); + }; + if ((_cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) { + var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType; + var activeName = name + '-active'; + if (nameIsObj && transitionName[animationType + 'Active']) { + activeName = transitionName[animationType + 'Active']; + } + this.stopper = (0, _cssAnimation2['default'])(node, { + name: name, + active: activeName + }, end); + } else { + this.stopper = props.animation[animationType](node, end); + } + } + }, { + key: 'stop', + value: function stop() { + var stopper = this.stopper; + if (stopper) { + this.stopper = null; + stopper.stop(); + } + } + }, { + key: 'render', + value: function render() { + return this.props.children; + } + }]); + + return AnimateChild; +}(_react2['default'].Component); + +exports['default'] = AnimateChild; +module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/CSSMotion.js b/packages/client/node_modules/rc-animate/lib/CSSMotion.js new file mode 100644 index 0000000..5201000 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/CSSMotion.js @@ -0,0 +1,361 @@ +'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; }; }(); + +exports.genCSSMotion = genCSSMotion; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _findDOMNode = require('rc-util/lib/Dom/findDOMNode'); + +var _findDOMNode2 = _interopRequireDefault(_findDOMNode); + +var _classnames = require('classnames'); + +var _classnames2 = _interopRequireDefault(_classnames); + +var _raf = require('raf'); + +var _raf2 = _interopRequireDefault(_raf); + +var _motion = require('./util/motion'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +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; } /* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */ + + +var STATUS_NONE = 'none'; +var STATUS_APPEAR = 'appear'; +var STATUS_ENTER = 'enter'; +var STATUS_LEAVE = 'leave'; + +/** + * `transitionSupport` is used for none transition test case. + * Default we use browser transition event support check. + */ +function genCSSMotion(config) { + var transitionSupport = config; + var forwardRef = !!_react2['default'].forwardRef; + + if (typeof config === 'object') { + transitionSupport = config.transitionSupport; + forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef; + } + + function isSupportTransition(props) { + return !!(props.motionName && transitionSupport); + } + + var CSSMotion = function (_React$Component) { + _inherits(CSSMotion, _React$Component); + + function CSSMotion() { + _classCallCheck(this, CSSMotion); + + var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); + + _this.onDomUpdate = function () { + var _this$state = _this.state, + status = _this$state.status, + newStatus = _this$state.newStatus; + var _this$props = _this.props, + onAppearStart = _this$props.onAppearStart, + onEnterStart = _this$props.onEnterStart, + onLeaveStart = _this$props.onLeaveStart, + onAppearActive = _this$props.onAppearActive, + onEnterActive = _this$props.onEnterActive, + onLeaveActive = _this$props.onLeaveActive, + motionAppear = _this$props.motionAppear, + motionEnter = _this$props.motionEnter, + motionLeave = _this$props.motionLeave; + + + if (!isSupportTransition(_this.props)) { + return; + } + + // Event injection + var $ele = _this.getElement(); + if (_this.$cacheEle !== $ele) { + _this.removeEventListener(_this.$cacheEle); + _this.addEventListener($ele); + _this.$cacheEle = $ele; + } + + // Init status + if (newStatus && status === STATUS_APPEAR && motionAppear) { + _this.updateStatus(onAppearStart, null, null, function () { + _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); + }); + } else if (newStatus && status === STATUS_ENTER && motionEnter) { + _this.updateStatus(onEnterStart, null, null, function () { + _this.updateActiveStatus(onEnterActive, STATUS_ENTER); + }); + } else if (newStatus && status === STATUS_LEAVE && motionLeave) { + _this.updateStatus(onLeaveStart, null, null, function () { + _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); + }); + } + }; + + _this.onMotionEnd = function (event) { + var _this$state2 = _this.state, + status = _this$state2.status, + statusActive = _this$state2.statusActive; + var _this$props2 = _this.props, + onAppearEnd = _this$props2.onAppearEnd, + onEnterEnd = _this$props2.onEnterEnd, + onLeaveEnd = _this$props2.onLeaveEnd; + + if (status === STATUS_APPEAR && statusActive) { + _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_ENTER && statusActive) { + _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_LEAVE && statusActive) { + _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); + } + }; + + _this.setNodeRef = function (node) { + var internalRef = _this.props.internalRef; + + _this.node = node; + + if (typeof internalRef === 'function') { + internalRef(node); + } else if (internalRef && 'current' in internalRef) { + internalRef.current = node; + } + }; + + _this.getElement = function () { + try { + return (0, _findDOMNode2['default'])(_this.node || _this); + } catch (e) { + /** + * Fallback to cache element. + * This is only happen when `motionDeadline` trigger but element removed. + */ + return _this.$cacheEle; + } + }; + + _this.addEventListener = function ($ele) { + if (!$ele) return; + + $ele.addEventListener(_motion.transitionEndName, _this.onMotionEnd); + $ele.addEventListener(_motion.animationEndName, _this.onMotionEnd); + }; + + _this.removeEventListener = function ($ele) { + if (!$ele) return; + + $ele.removeEventListener(_motion.transitionEndName, _this.onMotionEnd); + $ele.removeEventListener(_motion.animationEndName, _this.onMotionEnd); + }; + + _this.updateStatus = function (styleFunc, additionalState, event, callback) { + var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null; + + if (statusStyle === false || _this._destroyed) return; + + var nextStep = void 0; + if (callback) { + nextStep = function nextStep() { + _this.nextFrame(callback); + }; + } + + _this.setState(_extends({ + statusStyle: typeof statusStyle === 'object' ? statusStyle : null, + newStatus: false + }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` + }; + + _this.updateActiveStatus = function (styleFunc, currentStatus) { + // `setState` use `postMessage` to trigger at the end of frame. + // Let's use requestAnimationFrame to update new state in next frame. + _this.nextFrame(function () { + var status = _this.state.status; + + if (status !== currentStatus) return; + + var motionDeadline = _this.props.motionDeadline; + + + _this.updateStatus(styleFunc, { statusActive: true }); + + if (motionDeadline > 0) { + _this.timer = setTimeout(function () { + _this.onMotionEnd({ + deadline: true + }); + }, motionDeadline); + } + }); + }; + + _this.nextFrame = function (func) { + _this.cancelNextFrame(); + _this.raf = (0, _raf2['default'])(func); + }; + + _this.cancelNextFrame = function () { + if (_this.raf) { + _raf2['default'].cancel(_this.raf); + _this.raf = null; + } + }; + + _this.state = { + status: STATUS_NONE, + statusActive: false, + newStatus: false, + statusStyle: null + }; + _this.$cacheEle = null; + _this.node = null; + _this.raf = null; + return _this; + } + + _createClass(CSSMotion, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.onDomUpdate(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.onDomUpdate(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this._destroyed = true; + this.removeEventListener(this.$cacheEle); + this.cancelNextFrame(); + clearTimeout(this.timer); + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _state = this.state, + status = _state.status, + statusActive = _state.statusActive, + statusStyle = _state.statusStyle; + var _props = this.props, + children = _props.children, + motionName = _props.motionName, + visible = _props.visible, + removeOnLeave = _props.removeOnLeave, + leavedClassName = _props.leavedClassName, + eventProps = _props.eventProps; + + + if (!children) return null; + + if (status === STATUS_NONE || !isSupportTransition(this.props)) { + if (visible) { + return children(_extends({}, eventProps), this.setNodeRef); + } else if (!removeOnLeave) { + return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef); + } + + return null; + } + + return children(_extends({}, eventProps, { + className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, (0, _motion.getTransitionName)(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, (0, _motion.getTransitionName)(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)), + style: statusStyle + }), this.setNodeRef); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(props, _ref) { + var prevProps = _ref.prevProps, + prevStatus = _ref.status; + + if (!isSupportTransition(props)) return {}; + + var visible = props.visible, + motionAppear = props.motionAppear, + motionEnter = props.motionEnter, + motionLeave = props.motionLeave, + motionLeaveImmediately = props.motionLeaveImmediately; + + var newState = { + prevProps: props + }; + + // Clean up status if prop set to false + if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) { + newState.status = STATUS_NONE; + newState.statusActive = false; + newState.newStatus = false; + } + + // Appear + if (!prevProps && visible && motionAppear) { + newState.status = STATUS_APPEAR; + newState.statusActive = false; + newState.newStatus = true; + } + + // Enter + if (prevProps && !prevProps.visible && visible && motionEnter) { + newState.status = STATUS_ENTER; + newState.statusActive = false; + newState.newStatus = true; + } + + // Leave + if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { + newState.status = STATUS_LEAVE; + newState.statusActive = false; + newState.newStatus = true; + } + + return newState; + } + }]); + + return CSSMotion; + }(_react2['default'].Component); + + CSSMotion.defaultProps = { + visible: true, + motionEnter: true, + motionAppear: true, + motionLeave: true, + removeOnLeave: true + }; + + + if (!forwardRef) { + return CSSMotion; + } + + return _react2['default'].forwardRef(function (props, ref) { + return _react2['default'].createElement(CSSMotion, _extends({ internalRef: ref }, props)); + }); +} + +exports['default'] = genCSSMotion(_motion.supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/CSSMotionList.js b/packages/client/node_modules/rc-animate/lib/CSSMotionList.js new file mode 100644 index 0000000..0867565 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/CSSMotionList.js @@ -0,0 +1,172 @@ +'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; }; }(); + +exports.genCSSMotionList = genCSSMotionList; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _CSSMotion = require('./CSSMotion'); + +var _CSSMotion2 = _interopRequireDefault(_CSSMotion); + +var _motion = require('./util/motion'); + +var _diff = require('./util/diff'); + +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; } /* eslint react/prop-types: 0 */ + + +var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd']; + +function genCSSMotionList(transitionSupport) { + var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _CSSMotion2['default']; + + var CSSMotionList = function (_React$Component) { + _inherits(CSSMotionList, _React$Component); + + function CSSMotionList() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, CSSMotionList); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CSSMotionList.__proto__ || Object.getPrototypeOf(CSSMotionList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + keyEntities: [] + }, _this.removeKey = function (removeKey) { + _this.setState(function (_ref2) { + var keyEntities = _ref2.keyEntities; + return { + keyEntities: keyEntities.map(function (entity) { + if (entity.key !== removeKey) return entity; + return _extends({}, entity, { + status: _diff.STATUS_REMOVED + }); + }) + }; + }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(CSSMotionList, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var keyEntities = this.state.keyEntities; + + var _props = this.props, + component = _props.component, + children = _props.children, + restProps = _objectWithoutProperties(_props, ['component', 'children']); + + var Component = component || _react2['default'].Fragment; + + var motionProps = {}; + MOTION_PROP_NAMES.forEach(function (prop) { + motionProps[prop] = restProps[prop]; + delete restProps[prop]; + }); + delete restProps.keys; + + return _react2['default'].createElement( + Component, + restProps, + keyEntities.map(function (_ref3) { + var status = _ref3.status, + eventProps = _objectWithoutProperties(_ref3, ['status']); + + var visible = status === _diff.STATUS_ADD || status === _diff.STATUS_KEEP; + return _react2['default'].createElement( + CSSMotion, + _extends({}, motionProps, { + key: eventProps.key, + visible: visible, + eventProps: eventProps, + onLeaveEnd: function onLeaveEnd() { + if (motionProps.onLeaveEnd) { + motionProps.onLeaveEnd.apply(motionProps, arguments); + } + _this2.removeKey(eventProps.key); + } + }), + children + ); + }) + ); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(_ref4, _ref5) { + var keys = _ref4.keys; + var keyEntities = _ref5.keyEntities; + + var parsedKeyObjects = (0, _diff.parseKeys)(keys); + + // Always as keep when motion not support + if (!transitionSupport) { + return { + keyEntities: parsedKeyObjects.map(function (obj) { + return _extends({}, obj, { status: _diff.STATUS_KEEP }); + }) + }; + } + + var mixedKeyEntities = (0, _diff.diffKeys)(keyEntities, parsedKeyObjects); + + var keyEntitiesLen = keyEntities.length; + return { + keyEntities: mixedKeyEntities.filter(function (entity) { + // IE 9 not support Array.prototype.find + var prevEntity = null; + for (var i = 0; i < keyEntitiesLen; i += 1) { + var currentEntity = keyEntities[i]; + if (currentEntity.key === entity.key) { + prevEntity = currentEntity; + break; + } + } + + // Remove if already mark as removed + if (prevEntity && prevEntity.status === _diff.STATUS_REMOVED && entity.status === _diff.STATUS_REMOVE) { + return false; + } + return true; + }) + }; + } + }]); + + return CSSMotionList; + }(_react2['default'].Component); + + CSSMotionList.defaultProps = { + component: 'div' + }; + + + return CSSMotionList; +} + +exports['default'] = genCSSMotionList(_motion.supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js b/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js new file mode 100644 index 0000000..8862307 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js @@ -0,0 +1,117 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toArrayChildren = toArrayChildren; +exports.findChildInChildrenByKey = findChildInChildrenByKey; +exports.findShownChildInChildrenByKey = findShownChildInChildrenByKey; +exports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey; +exports.isSameChildren = isSameChildren; +exports.mergeChildren = mergeChildren; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function toArrayChildren(children) { + var ret = []; + _react2['default'].Children.forEach(children, function (child) { + ret.push(child); + }); + return ret; +} + +function findChildInChildrenByKey(children, key) { + var ret = null; + if (children) { + children.forEach(function (child) { + if (ret) { + return; + } + if (child && child.key === key) { + ret = child; + } + }); + } + return ret; +} + +function findShownChildInChildrenByKey(children, key, showProp) { + var ret = null; + if (children) { + children.forEach(function (child) { + if (child && child.key === key && child.props[showProp]) { + if (ret) { + throw new Error('two child with same key for children'); + } + ret = child; + } + }); + } + return ret; +} + +function findHiddenChildInChildrenByKey(children, key, showProp) { + var found = 0; + if (children) { + children.forEach(function (child) { + if (found) { + return; + } + found = child && child.key === key && !child.props[showProp]; + }); + } + return found; +} + +function isSameChildren(c1, c2, showProp) { + var same = c1.length === c2.length; + if (same) { + c1.forEach(function (child, index) { + var child2 = c2[index]; + if (child && child2) { + if (child && !child2 || !child && child2) { + same = false; + } else if (child.key !== child2.key) { + same = false; + } else if (showProp && child.props[showProp] !== child2.props[showProp]) { + same = false; + } + } + }); + } + return same; +} + +function mergeChildren(prev, next) { + var ret = []; + + // For each key of `next`, the list of keys to insert before that key in + // the combined list + var nextChildrenPending = {}; + var pendingChildren = []; + prev.forEach(function (child) { + if (child && findChildInChildrenByKey(next, child.key)) { + if (pendingChildren.length) { + nextChildrenPending[child.key] = pendingChildren; + pendingChildren = []; + } + } else { + pendingChildren.push(child); + } + }); + + next.forEach(function (child) { + if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) { + ret = ret.concat(nextChildrenPending[child.key]); + } + ret.push(child); + }); + + ret = ret.concat(pendingChildren); + + return ret; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/animate.js b/packages/client/node_modules/rc-animate/lib/util/animate.js new file mode 100644 index 0000000..42a613e --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/util/animate.js @@ -0,0 +1,27 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var util = { + isAppearSupported: function isAppearSupported(props) { + return props.transitionName && props.transitionAppear || props.animation.appear; + }, + isEnterSupported: function isEnterSupported(props) { + return props.transitionName && props.transitionEnter || props.animation.enter; + }, + isLeaveSupported: function isLeaveSupported(props) { + return props.transitionName && props.transitionLeave || props.animation.leave; + }, + allowAppearCallback: function allowAppearCallback(props) { + return props.transitionAppear || props.animation.appear; + }, + allowEnterCallback: function allowEnterCallback(props) { + return props.transitionEnter || props.animation.enter; + }, + allowLeaveCallback: function allowLeaveCallback(props) { + return props.transitionLeave || props.animation.leave; + } +}; +exports["default"] = util; +module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/diff.js b/packages/client/node_modules/rc-animate/lib/util/diff.js new file mode 100644 index 0000000..8cda9a4 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/util/diff.js @@ -0,0 +1,115 @@ +'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.wrapKeyToObject = wrapKeyToObject; +exports.parseKeys = parseKeys; +exports.diffKeys = diffKeys; +var STATUS_ADD = exports.STATUS_ADD = 'add'; +var STATUS_KEEP = exports.STATUS_KEEP = 'keep'; +var STATUS_REMOVE = exports.STATUS_REMOVE = 'remove'; +var STATUS_REMOVED = exports.STATUS_REMOVED = 'removed'; + +function wrapKeyToObject(key) { + var keyObj = void 0; + if (key && typeof key === 'object' && 'key' in key) { + keyObj = key; + } else { + keyObj = { key: key }; + } + return _extends({}, keyObj, { + key: String(keyObj.key) + }); +} + +function parseKeys() { + var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + return keys.map(wrapKeyToObject); +} + +function diffKeys() { + var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var list = []; + var currentIndex = 0; + var currentLen = currentKeys.length; + + var prevKeyObjects = parseKeys(prevKeys); + var currentKeyObjects = parseKeys(currentKeys); + + // Check prev keys to insert or keep + prevKeyObjects.forEach(function (keyObj) { + var hit = false; + + for (var i = currentIndex; i < currentLen; i += 1) { + var currentKeyObj = currentKeyObjects[i]; + if (currentKeyObj.key === keyObj.key) { + // New added keys should add before current key + if (currentIndex < i) { + list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) { + return _extends({}, obj, { status: STATUS_ADD }); + })); + currentIndex = i; + } + list.push(_extends({}, currentKeyObj, { + status: STATUS_KEEP + })); + currentIndex += 1; + + hit = true; + break; + } + } + + // If not hit, it means key is removed + if (!hit) { + list.push(_extends({}, keyObj, { + status: STATUS_REMOVE + })); + } + }); + + // Add rest to the list + if (currentIndex < currentLen) { + list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) { + return _extends({}, obj, { status: STATUS_ADD }); + })); + } + + /** + * Merge same key when it remove and add again: + * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep] + */ + var keys = {}; + list.forEach(function (_ref) { + var key = _ref.key; + + keys[key] = (keys[key] || 0) + 1; + }); + var duplicatedKeys = Object.keys(keys).filter(function (key) { + return keys[key] > 1; + }); + duplicatedKeys.forEach(function (matchKey) { + // Remove `STATUS_REMOVE` node. + list = list.filter(function (_ref2) { + var key = _ref2.key, + status = _ref2.status; + return key !== matchKey || status !== STATUS_REMOVE; + }); + + // Update `STATUS_ADD` to `STATUS_KEEP` + list.forEach(function (node) { + if (node.key === matchKey) { + node.status = STATUS_KEEP; + } + }); + }); + + return list; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/motion.js b/packages/client/node_modules/rc-animate/lib/util/motion.js new file mode 100644 index 0000000..5d64269 --- /dev/null +++ b/packages/client/node_modules/rc-animate/lib/util/motion.js @@ -0,0 +1,91 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getVendorPrefixes = getVendorPrefixes; +exports.getVendorPrefixedEventName = getVendorPrefixedEventName; +exports.getTransitionName = getTransitionName; +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +// ================= Transition ================= +// Event wrapper. Copy from react source code +function makePrefixMap(styleProp, eventName) { + var prefixes = {}; + + prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); + prefixes['Webkit' + styleProp] = 'webkit' + eventName; + prefixes['Moz' + styleProp] = 'moz' + eventName; + prefixes['ms' + styleProp] = 'MS' + eventName; + prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); + + return prefixes; +} + +function getVendorPrefixes(domSupport, win) { + var prefixes = { + animationend: makePrefixMap('Animation', 'AnimationEnd'), + transitionend: makePrefixMap('Transition', 'TransitionEnd') + }; + + if (domSupport) { + if (!('AnimationEvent' in win)) { + delete prefixes.animationend.animation; + } + + if (!('TransitionEvent' in win)) { + delete prefixes.transitionend.transition; + } + } + + return prefixes; +} + +var vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {}); + +var style = {}; + +if (canUseDOM) { + style = document.createElement('div').style; +} + +var prefixedEventNames = {}; + +function getVendorPrefixedEventName(eventName) { + if (prefixedEventNames[eventName]) { + return prefixedEventNames[eventName]; + } + + var prefixMap = vendorPrefixes[eventName]; + + if (prefixMap) { + var stylePropList = Object.keys(prefixMap); + var len = stylePropList.length; + for (var i = 0; i < len; i += 1) { + var styleProp = stylePropList[i]; + if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { + prefixedEventNames[eventName] = prefixMap[styleProp]; + return prefixedEventNames[eventName]; + } + } + } + + return ''; +} + +var animationEndName = exports.animationEndName = getVendorPrefixedEventName('animationend'); +var transitionEndName = exports.transitionEndName = getVendorPrefixedEventName('transitionend'); +var supportTransition = exports.supportTransition = !!(animationEndName && transitionEndName); + +function getTransitionName(transitionName, transitionType) { + if (!transitionName) return null; + + if (typeof transitionName === 'object') { + var type = transitionType.replace(/-\w/g, function (match) { + return match[1].toUpperCase(); + }); + return transitionName[type]; + } + + return transitionName + '-' + transitionType; +} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/package.json b/packages/client/node_modules/rc-animate/package.json new file mode 100644 index 0000000..2dae9fa --- /dev/null +++ b/packages/client/node_modules/rc-animate/package.json @@ -0,0 +1,64 @@ +{ + "name": "rc-animate", + "version": "3.1.1", + "description": "css-transition ui component for react", + "keywords": [ + "react", + "react-component", + "react-animate", + "animate" + ], + "files": [ + "es", + "lib" + ], + "homepage": "https://github.com/react-component/animate", + "author": "", + "repository": { + "type": "git", + "url": "git@github.com:react-component/animate.git" + }, + "bugs": { + "url": "http://github.com/react-component/animate/issues" + }, + "license": "MIT", + "main": "./lib/Animate", + "module": "./es/Animate", + "config": { + "port": 8201 + }, + "scripts": { + "build": "rc-tools run build", + "gh-pages": "rc-tools run gh-pages", + "start": "rc-tools run server", + "pub": "rc-tools run pub", + "lint": "rc-tools run lint", + "karma": "rc-test run karma", + "saucelabs": "rc-test run saucelabs", + "test": "rc-test run test", + "chrome-test": "rc-test run chrome-test", + "coverage": "rc-test run coverage", + "prepublish": "rc-tools run guard", + "now-build": "npm run build" + }, + "devDependencies": { + "core-js": "^2.5.1", + "expect.js": "0.3.x", + "jquery": "^3.3.1", + "pre-commit": "1.x", + "rc-test": "6.x", + "rc-tools": "8.x", + "react": "^16.0.0", + "react-dom": "^16.0.0", + "velocity-animate": "~1.2.2" + }, + "pre-commit": [ + "lint" + ], + "dependencies": { + "classnames": "^2.2.6", + "@ant-design/css-animation": "^1.7.2", + "raf": "^3.4.0", + "rc-util": "^4.15.3" + } +} diff --git a/packages/client/node_modules/rc-tree/HISTORY.md b/packages/client/node_modules/rc-tree/HISTORY.md new file mode 100644 index 0000000..5b05899 --- /dev/null +++ b/packages/client/node_modules/rc-tree/HISTORY.md @@ -0,0 +1,70 @@ +# History +--- + +## 1.11.5 / 2018-04-19 +- add `onClick` & `onDoubleClick` for node click event +- add related className in treeNode +- fix drag into another tree will throw exception + +## 1.10.0 / 2018-04-17 +- `onCheck` arguments provide nativeEvent +- `onSelect` arguments provide nativeEvent +- `onExpand` arguments provide nativeEvent + +## 1.9.0 / 2018-04-09 +- adjust `dragable` logic to make drag more smooth +- fix `loadData` trigger twice when expand node +- add `icon` prop on `Tree` +- fix check by prop not work on `disabled` node + + +## 1.8.0 / 2018-03-29 +- code refactor and optimize logic +- add `disabled` API +- add `icon` API + +## 1.4.0 / 2016-10-24 +- add `onDragEnd` API and fix related issues. + +## 1.3.0 / 2016-04-15 +- make `autoExpandParent` also work in controlled mode.(Before just work in uncontrolled mode) +- change `onExpand` params + - old: function(node, expanded, expandedKeys) + - new: function(expandedKeys, {expanded: bool, node}) + +## 1.2.1 / 2016-04-08 +- remove `halfCheckedKeys` api, and change `checkedKeys` to an object on setting `checkStrictly`. + +## 1.2.0 / 2016-04-06 +- improve performance. +- add `checkStrictly`/`halfCheckedKeys` api. + +## 1.1.0 / 2016-01-25 +- change `onDrop` params (from `originExpandedKeys` to `rawExpandedKeys`) + +## 1.0.x / 2016-01-15 +- change `onSelect`/`onCheck` params + +## 0.26.x / 2016-01-13 +- change drag api (from `onTreeXX` to `onXX`) + +## 0.23.x / 2015-12-31 +- change `onDataLoaded` api to `loadData` + +## 0.22.x / 2015-12-30 +- add `expandedKeys`/`onExpand`/`filterTreeNode` api + +## 0.21.x / 2015-12-25 +- add `onMouseEnter`/`onMouseLeave` api + +## 0.20.0 / 2015-12-01 +- add draggable feature #5 + +## 0.18.0 / 2015-10-23 +- add contextmenu feature #5 + +## 0.17.0 / 2015-10-14 +- add dynamic feature #4 + +## 0.9.5 / 2015-05-26 +- support checkbox diff --git a/packages/client/node_modules/rc-tree/LICENSE.md b/packages/client/node_modules/rc-tree/LICENSE.md new file mode 100644 index 0000000..12189b6 --- /dev/null +++ b/packages/client/node_modules/rc-tree/LICENSE.md @@ -0,0 +1,22 @@ +MIT LICENSE + +Copyright (c) 2015-present Alipay.com, https://www.alipay.com/ + +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. diff --git a/packages/client/node_modules/rc-tree/README.md b/packages/client/node_modules/rc-tree/README.md new file mode 100644 index 0000000..c7a7737 --- /dev/null +++ b/packages/client/node_modules/rc-tree/README.md @@ -0,0 +1,143 @@ +# rc-tree +--- + +tree ui component for react + +[![NPM version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![Test coverage][codecov-image]][codecov-url] +[![gemnasium deps][gemnasium-image]][gemnasium-url] +[![npm download][download-image]][download-url] + +[npm-image]: http://img.shields.io/npm/v/rc-tree.svg?style=flat-square +[npm-url]: http://npmjs.org/package/rc-tree +[travis-image]: https://img.shields.io/travis/react-component/tree.svg?style=flat-square +[travis-url]: https://travis-ci.org/react-component/tree +[codecov-image]: https://img.shields.io/codecov/c/github/react-component/tree/master.svg?style=flat-square +[codecov-url]: https://codecov.io/gh/react-component/tree/branch/master +[gemnasium-image]: http://img.shields.io/gemnasium/react-component/tree.svg?style=flat-square +[gemnasium-url]: https://gemnasium.com/react-component/tree +[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square +[node-url]: http://nodejs.org/download/ +[download-image]: https://img.shields.io/npm/dm/rc-tree.svg?style=flat-square +[download-url]: https://npmjs.org/package/rc-tree + +## Screenshots + + + + +## Feature + +* Support all popular browsers, including Internet Explorer 9 and above. + + +## Example + +http://localhost:8018/examples/ + +online example: http://react-component.github.io/tree/examples/ + + +## install + +[![rc-tree](https://nodei.co/npm/rc-tree.png)](https://npmjs.org/package/rc-tree) + +## Usage + +see examples + +## API + +### Tree props + +| name | description | type | default | +|----------|----------------|----------|--------------| +| autoExpandParent | whether auto expand parent treeNodes | bool | false | +| checkable | whether support checked | bool/React Node | false | +| checkedKeys | Controlled checked treeNodes(After setting, defaultCheckedKeys will not work). Note: parent and children nodes are associated, if the parent node's key exists, it all children node will be checked, and vice versa. When set checkable and checkStrictly, it should be an object, which contains checked array and halfChecked array. | String[]/{checked:Array,halfChecked:Array} | [] | +| checkStrictly| check node precisely, parent and children nodes are not associated| bool | false | +| className | additional css class of root dom node | String | '' | +| defaultCheckedKeys | default checked treeNodes | String[] | [] | +| defaultExpandedKeys | expand specific treeNodes | String[] | - | +| defaultExpandAll | expand all treeNodes | bool | false | +| defaultExpandParent | auto expand parent treeNodes when init | bool | true | +| defaultSelectedKeys | default selected treeNodes | String[] | [] | +| disabled | whether disabled the tree | bool | false | +| draggable | whether can drag treeNode. (drag events are not supported in Internet Explorer 8 and earlier versions or Safari 5.1 and earlier versions.) | bool | false | +| expandedKeys | Controlled expand specific treeNodes | String[] | - | +| filterTreeNode | filter some treeNodes as you need. it should return true | function(node) | - | +| icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | element/Function(props) | - | +| loadedKeys | Mark node is loaded when `loadData` is true | string[] | - | +| loadData | load data asynchronously and the return value should be a promise | function(node) | - | +| multiple | whether multiple select | bool | false | +| prefixCls | prefix class | String | 'rc-tree' | +| selectable | whether can be selected | bool | true | +| selectedKeys | Controlled selected treeNodes(After setting, defaultSelectedKeys will not work) | String[] | [] | +| showIcon | whether show icon | bool | true | +| showLine | whether show line | bool | false | +| treeData | treeNodes data Array, if set it then you need not to construct children TreeNode. (value should be unique across the whole array) | array<{key,title,children, [disabled, selectable]}> | - | +| onCheck | click the treeNode/checkbox to fire | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, nativeEvent}) | - | +| onExpand | fire on treeNode expand or not | function(expandedKeys, {expanded: bool, node, nativeEvent}) | - | +| onDragEnd | it execs when fire the tree's dragend event | function({event,node}) | - | +| onDragEnter | it execs when fire the tree's dragenter event | function({event,node,expandedKeys}) | - | +| onDragLeave | it execs when fire the tree's dragleave event | function({event,node}) | - | +| onDragOver | it execs when fire the tree's dragover event | function({event,node}) | - | +| onDragStart | it execs when fire the tree's dragstart event | function({event,node}) | - | +| onDrop | it execs when fire the tree's drop event | function({event, node, dragNode, dragNodesKeys}) | - | +| onLoad | Trigger when a node is loaded. If you set the `loadedKeys`, you must handle `onLoad` to avoid infinity loop | function(loadedKeys, {event, node}) | - | +| onMouseEnter | call when mouse enter a treeNode | function({event,node}) | - | +| onMouseLeave | call when mouse leave a treeNode | function({event,node}) | - | +| onRightClick | select current treeNode and show customized contextmenu | function({event,node}) | - | +| onSelect | click the treeNode to fire | function(selectedKeys, e:{selected: bool, selectedNodes, node, event, nativeEvent}) | - | +| switcherIcon | specific the switcher icon. | ReactNode / (props: TreeNodeAttribute) => ReactNode | - | + +### TreeNode props +> note: if you have a lot of TreeNode, like more than 1000, +> make the parent node is collapsed by default, will obvious effect, very fast. +> Because the children hide TreeNode will not insert into dom. + +| name | description | type | default | +|----------|----------------|----------|--------------| +|className | additional class to treeNode | String | '' | +|style | set style to treeNode | Object | '' | +|disabled | whether disabled the treeNode | bool | false | +|disableCheckbox | whether disable the treeNode' checkbox | bool | false | +|title | tree/subTree's title | String/element | '---' | +|key | it's used with tree props's (default)ExpandedKeys / (default)CheckedKeys / (default)SelectedKeys. you'd better to set it, and it must be unique in the tree's all treeNodes | String | treeNode's position | +|isLeaf | whether it's leaf node | bool | false | +|icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | element/Function(props) | - | +| switcherIcon | specific the switcher icon. | ReactNode / (props: TreeNodeAttribute) => ReactNode | - | + +## note + +The number of treeNodes can be very large, but when enable `checkable`, +it will spend more computing time, so we cached some calculations(e.g. `this.treeNodesStates`), +to avoid double computing. But, this bring some restrictions, +**when you async load treeNodes, you should render tree like this** +`{this.state.treeData.length ? {this.state.treeData.map(t => )} : 'loading tree'}` + + +## Development + +``` +npm install +npm start +``` + +## Test Case + +http://localhost:8018/tests/runner.html?coverage + +## Coverage + +http://localhost:8018/node_modules/rc-server/node_modules/node-jscover/lib/front-end/jscoverage.html?w=http://localhost:8018/tests/runner.html?coverage + +## License +rc-tree is released under the MIT license. + +## other tree view +- [ztree](http://www.ztree.me/) +- [jqTree](http://mbraak.github.io/jqTree/) +- [jquery.treeselect](http://travistidwell.com/jquery.treeselect.js/) +- [angular Select Tree](http://a5hik.github.io/angular-multi-select-tree/) diff --git a/packages/client/node_modules/rc-tree/assets/icons.png b/packages/client/node_modules/rc-tree/assets/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..b745907fd497f594d3573fa9e3fa6aac72392b39 GIT binary patch literal 9968 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 .draggable { + background-color: #316ac5; + color: white; + border: 1px #316ac5 solid; + opacity: 0.8; +} +.rc-tree li.drag-over-gap-top > .draggable { + border-top: 2px blue solid; +} +.rc-tree li.drag-over-gap-bottom > .draggable { + border-bottom: 2px blue solid; +} +.rc-tree li.filter-node > .rc-tree-node-content-wrapper { + color: #a60000!important; + font-weight: bold!important; +} +.rc-tree li ul { + margin: 0; + padding: 0 0 0 18px; +} +.rc-tree li .rc-tree-node-content-wrapper { + display: inline-block; + padding: 1px 3px 0 0; + margin: 0; + cursor: pointer; + height: 17px; + text-decoration: none; + vertical-align: top; +} +.rc-tree li span.rc-tree-switcher, +.rc-tree li span.rc-tree-checkbox, +.rc-tree li span.rc-tree-iconEle { + line-height: 16px; + margin-right: 2px; + width: 16px; + height: 16px; + display: inline-block; + vertical-align: middle; + border: 0 none; + cursor: pointer; + outline: none; + background-color: transparent; + background-repeat: no-repeat; + background-attachment: scroll; + background-image: url('data:image/png;base64,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'); +} +.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, +.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, +.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { + background-image: none; +} +.rc-tree li span.rc-tree-icon_loading { + margin-right: 2px; + vertical-align: top; + background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { + cursor: auto; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { + background-position: -93px -56px; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { + background-position: -75px -56px; +} +.rc-tree li span.rc-tree-checkbox { + width: 13px; + height: 13px; + margin: 0 3px; + background-position: 0 0; +} +.rc-tree li span.rc-tree-checkbox-checked { + background-position: -14px 0; +} +.rc-tree li span.rc-tree-checkbox-indeterminate { + background-position: -14px -28px; +} +.rc-tree li span.rc-tree-checkbox-disabled { + background-position: 0 -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { + background-position: -14px -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { + position: relative; + background: #ccc; + border-radius: 3px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { + content: ' '; + -webkit-transform: scale(1); + transform: scale(1); + position: absolute; + left: 3px; + top: 5px; + width: 5px; + height: 0; + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { + background: none; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > ul { + background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { + background-position: -56px -18px; +} +.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { + background-position: -56px -36px; +} +.rc-tree-child-tree { + display: none; +} +.rc-tree-child-tree-open { + display: block; +} +.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), +.rc-tree-treenode-disabled > a, +.rc-tree-treenode-disabled > a span { + color: #767676; + cursor: not-allowed; +} +.rc-tree-node-selected { + background-color: #ffe6b0; + border: 1px #ffb951 solid; + opacity: 0.8; +} +.rc-tree-icon__open { + margin-right: 2px; + background-position: -110px -16px; + vertical-align: top; +} +.rc-tree-icon__close { + margin-right: 2px; + background-position: -110px 0; + vertical-align: top; +} +.rc-tree-icon__docu { + margin-right: 2px; + background-position: -110px -32px; + vertical-align: top; +} +.rc-tree-icon__customize { + margin-right: 2px; + vertical-align: top; +} diff --git a/packages/client/node_modules/rc-tree/assets/line.gif b/packages/client/node_modules/rc-tree/assets/line.gif new file mode 100644 index 0000000000000000000000000000000000000000..d561d36a915776730eb3069cee4c949f027667ed GIT binary patch literal 45 xcmZ?wbhEHbT_)p@)n z{^qIIq1(T$e$~zMQ}6t1w^a|Cj;Amo3}FHq!p^`7G=x7ROJIXqM}S9S9}m;(SWbi* zHiVjpkZW$u7K%QH zEX1o> .draggable { + background-color: #316ac5; + color: white; + border: 1px #316ac5 solid; + opacity: 0.8; +} +.rc-tree li.drag-over-gap-top > .draggable { + border-top: 2px blue solid; +} +.rc-tree li.drag-over-gap-bottom > .draggable { + border-bottom: 2px blue solid; +} +.rc-tree li.filter-node > .rc-tree-node-content-wrapper { + color: #a60000!important; + font-weight: bold!important; +} +.rc-tree li ul { + margin: 0; + padding: 0 0 0 18px; +} +.rc-tree li .rc-tree-node-content-wrapper { + display: inline-block; + padding: 1px 3px 0 0; + margin: 0; + cursor: pointer; + height: 17px; + text-decoration: none; + vertical-align: top; +} +.rc-tree li span.rc-tree-switcher, +.rc-tree li span.rc-tree-checkbox, +.rc-tree li span.rc-tree-iconEle { + line-height: 16px; + margin-right: 2px; + width: 16px; + height: 16px; + display: inline-block; + vertical-align: middle; + border: 0 none; + cursor: pointer; + outline: none; + background-color: transparent; + background-repeat: no-repeat; + background-attachment: scroll; + background-image: url('data:image/png;base64,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'); +} +.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, +.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, +.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { + background-image: none; +} +.rc-tree li span.rc-tree-icon_loading { + margin-right: 2px; + vertical-align: top; + background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { + cursor: auto; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { + background-position: -93px -56px; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { + background-position: -75px -56px; +} +.rc-tree li span.rc-tree-checkbox { + width: 13px; + height: 13px; + margin: 0 3px; + background-position: 0 0; +} +.rc-tree li span.rc-tree-checkbox-checked { + background-position: -14px 0; +} +.rc-tree li span.rc-tree-checkbox-indeterminate { + background-position: -14px -28px; +} +.rc-tree li span.rc-tree-checkbox-disabled { + background-position: 0 -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { + background-position: -14px -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { + position: relative; + background: #ccc; + border-radius: 3px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { + content: ' '; + -webkit-transform: scale(1); + transform: scale(1); + position: absolute; + left: 3px; + top: 5px; + width: 5px; + height: 0; + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { + background: none; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > ul { + background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { + background-position: -56px -18px; +} +.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { + background-position: -56px -36px; +} +.rc-tree-child-tree { + display: none; +} +.rc-tree-child-tree-open { + display: block; +} +.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), +.rc-tree-treenode-disabled > a, +.rc-tree-treenode-disabled > a span { + color: #767676; + cursor: not-allowed; +} +.rc-tree-node-selected { + background-color: #ffe6b0; + border: 1px #ffb951 solid; + opacity: 0.8; +} +.rc-tree-icon__open { + margin-right: 2px; + background-position: -110px -16px; + vertical-align: top; +} +.rc-tree-icon__close { + margin-right: 2px; + background-position: -110px 0; + vertical-align: top; +} +.rc-tree-icon__docu { + margin-right: 2px; + background-position: -110px -32px; + vertical-align: top; +} +.rc-tree-icon__customize { + margin-right: 2px; + vertical-align: top; +} + +/*# sourceMappingURL=rc-tree.css.map*/ \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.css.map b/packages/client/node_modules/rc-tree/dist/rc-tree.css.map new file mode 100644 index 0000000..577716c --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./assets/index.less"],"names":[],"mappings":"AACA;EACE;EACA;CAAD;AAFD;EAII;EACA;EACA;EACA;EACA;CACH;AATD;EAUM;EACA;EACA;EACA;EACA;MAAA;EAEJ,uDAAuD;EAAnD;EACA;CAEL;AAAG;EAEI;EACA;EACA;EACA;CACP;AAEG;EAEI;CADP;AAIG;EAEI;CAHP;AAMG;EAEI;EACA;CALP;AAnCD;EA4CM;EACA;CANL;AAvCD;EAgDM;EACA;EACA;EACA;EACA;EACA;EACA;CANL;AASK;;;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAPP;AASO;;;EACE;CALT;AAQK;EACE;EACA;EACA;CANP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AAUK;EACE;EACA;EACA;EACA;CARP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;EACA;EACA;CAPT;AAQS;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CANX;AAYC;EAEI;CAXL;AAcC;EAGM;CAdP;AAWC;EAMM;CAdP;AAQC;EAWM;CAhBP;AAoBC;EACE;CAlBH;AAmBG;EACE;CAjBL;AAoBC;;;EAII;EACA;CAnBL;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;CApBH","file":"rc-tree.css","sourcesContent":["@treePrefixCls: rc-tree;\n.@{treePrefixCls} {\n margin: 0;\n padding: 5px;\n li {\n padding: 0;\n margin: 0;\n list-style: none;\n white-space: nowrap;\n outline: 0;\n .draggable {\n color: #333;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n /* Required to make elements draggable in old WebKit */\n -khtml-user-drag: element;\n -webkit-user-drag: element;\n }\n &.drag-over {\n > .draggable {\n background-color: #316ac5;\n color: white;\n border: 1px #316ac5 solid;\n opacity: 0.8;\n }\n }\n &.drag-over-gap-top {\n > .draggable {\n border-top: 2px blue solid;\n }\n }\n &.drag-over-gap-bottom {\n > .draggable {\n border-bottom: 2px blue solid;\n }\n }\n &.filter-node {\n > .@{treePrefixCls}-node-content-wrapper {\n color: #a60000!important;\n font-weight: bold!important;\n }\n }\n ul {\n margin: 0;\n padding: 0 0 0 18px;\n }\n .@{treePrefixCls}-node-content-wrapper {\n display: inline-block;\n padding: 1px 3px 0 0;\n margin: 0;\n cursor: pointer;\n height: 17px;\n text-decoration: none;\n vertical-align: top;\n }\n span {\n &.@{treePrefixCls}-switcher,\n &.@{treePrefixCls}-checkbox,\n &.@{treePrefixCls}-iconEle {\n line-height: 16px;\n margin-right: 2px;\n width: 16px;\n height: 16px;\n display: inline-block;\n vertical-align: middle;\n border: 0 none;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n background-attachment: scroll;\n background-image: url('data:image/png;base64,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');\n\n &.@{treePrefixCls}-icon__customize {\n background-image: none;\n }\n }\n &.@{treePrefixCls}-icon_loading {\n margin-right: 2px;\n vertical-align: top;\n background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent;\n }\n &.@{treePrefixCls}-switcher {\n &.@{treePrefixCls}-switcher-noop {\n cursor: auto;\n }\n &.@{treePrefixCls}-switcher_open {\n background-position: -93px -56px;\n }\n &.@{treePrefixCls}-switcher_close {\n background-position: -75px -56px;\n }\n }\n &.@{treePrefixCls}-checkbox {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n background-position: 0 0;\n &-checked {\n background-position: -14px 0;\n }\n &-indeterminate {\n background-position: -14px -28px;\n }\n &-disabled {\n background-position: 0 -56px;\n }\n &.@{treePrefixCls}-checkbox-checked.@{treePrefixCls}-checkbox-disabled {\n background-position: -14px -56px;\n }\n &.@{treePrefixCls}-checkbox-indeterminate.@{treePrefixCls}-checkbox-disabled {\n position: relative;\n background: #ccc;\n border-radius: 3px;\n &::after {\n content: ' ';\n -webkit-transform: scale(1);\n transform: scale(1);\n position: absolute;\n left: 3px;\n top: 5px;\n width: 5px;\n height: 0;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n }\n }\n }\n }\n }\n &:not(.@{treePrefixCls}-show-line) {\n .@{treePrefixCls}-switcher-noop {\n background: none;\n }\n }\n &.@{treePrefixCls}-show-line {\n li:not(:last-child) {\n > ul {\n background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y;\n }\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -18px;\n }\n }\n li:last-child {\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -36px;\n }\n }\n }\n &-child-tree {\n display: none;\n &-open {\n display: block;\n }\n }\n &-treenode-disabled {\n >span:not(.@{treePrefixCls}-switcher),\n >a,\n >a span {\n color: #767676;\n cursor: not-allowed;\n }\n }\n &-node-selected {\n background-color: #ffe6b0;\n border: 1px #ffb951 solid;\n opacity: 0.8;\n }\n &-icon__open {\n margin-right: 2px;\n background-position: -110px -16px;\n vertical-align: top;\n }\n &-icon__close {\n margin-right: 2px;\n background-position: -110px 0;\n vertical-align: top;\n }\n &-icon__docu {\n margin-right: 2px;\n background-position: -110px -32px;\n vertical-align: top;\n }\n &-icon__customize {\n margin-right: 2px;\n vertical-align: top;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./assets/index.less"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.js b/packages/client/node_modules/rc-tree/dist/rc-tree.js new file mode 100644 index 0000000..ab9f2e4 --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.js @@ -0,0 +1,7538 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("react"), require("react-dom")); + else if(typeof define === 'function' && define.amd) + define(["react", "react-dom"], factory); + else if(typeof exports === 'object') + exports["rc-tree"] = factory(require("react"), require("react-dom")); + else + root["rc-tree"] = factory(root["React"], root["ReactDOM"]); +})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_65__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 68); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +var core = module.exports = { version: '2.6.5' }; +if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(35)('wks'); +var uid = __webpack_require__(26); +var Symbol = __webpack_require__(2).Symbol; +var USE_SYMBOL = typeof Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); +if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(10); +var IE8_DOM_DEFINE = __webpack_require__(46); +var toPrimitive = __webpack_require__(30); +var dP = Object.defineProperty; + +exports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(2); +var core = __webpack_require__(0); +var ctx = __webpack_require__(29); +var hide = __webpack_require__(9); +var has = __webpack_require__(7); +var PROTOTYPE = 'prototype'; + +var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var IS_WRAP = type & $export.W; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE]; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; + var key, own, out; + if (IS_GLOBAL) source = name; + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + if (own && has(exports, key)) continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function (C) { + var F = function (a, b, c) { + if (this instanceof C) { + switch (arguments.length) { + case 0: return new C(); + case 1: return new C(a); + case 2: return new C(a, b); + } return new C(a, b, c); + } return C.apply(this, arguments); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% + if (IS_PROTO) { + (exports.virtual || (exports.virtual = {}))[key] = out; + // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% + if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); + } + } +}; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +$export.U = 64; // safe +$export.R = 128; // real proto method for `library` +module.exports = $export; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__(15)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_8__; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(3); +var createDesc = __webpack_require__(16); +module.exports = __webpack_require__(6) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(11); +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__(49); +var defined = __webpack_require__(32); +module.exports = function (it) { + return IObject(defined(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {/** + * 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 (process.env.NODE_ENV !== 'production') { + var ReactIs = __webpack_require__(58); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(111)(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(114)(); +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _assign = __webpack_require__(72); + +var _assign2 = _interopRequireDefault(_assign); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _assign2.default || 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; +}; + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _defineProperty = __webpack_require__(51); + +var _defineProperty2 = _interopRequireDefault(_defineProperty); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = 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; + (0, _defineProperty2.default)(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof2 = __webpack_require__(52); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; +}; + +/***/ }), +/* 20 */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _setPrototypeOf = __webpack_require__(102); + +var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); + +var _create = __webpack_require__(106); + +var _create2 = _interopRequireDefault(_create); + +var _typeof2 = __webpack_require__(52); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (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" : (0, _typeof3.default)(superClass))); + } + + subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; +}; + +/***/ }), +/* 22 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = toArray; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); + + +function toArray(children) { + var ret = []; + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (c) { + ret.push(c); + }); + return ret; +} + +/***/ }), +/* 23 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", 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; +} + + + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__(48); +var enumBugKeys = __webpack_require__(36); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +module.exports = true; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +var id = 0; +var px = Math.random(); +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (typeof module !== 'undefined' && module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { + return classNames; + }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + window.classNames = classNames; + } +}()); + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(75); +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__(11); +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports) { + +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports) { + +// 7.1.4 ToInteger +var ceil = Math.ceil; +var floor = Math.floor; +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(35)('keys'); +var uid = __webpack_require__(26); +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var core = __webpack_require__(0); +var global = __webpack_require__(2); +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __webpack_require__(25) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' +).split(','); + + +/***/ }), +/* 37 */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(32); +module.exports = function (it) { + return Object(defined(it)); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _defineProperty = __webpack_require__(51); + +var _defineProperty2 = _interopRequireDefault(_defineProperty); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (obj, key, value) { + if (key in obj) { + (0, _defineProperty2.default)(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +var anObject = __webpack_require__(10); +var dPs = __webpack_require__(85); +var enumBugKeys = __webpack_require__(36); +var IE_PROTO = __webpack_require__(34)('IE_PROTO'); +var Empty = function () { /* empty */ }; +var PROTOTYPE = 'prototype'; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var createDict = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(47)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(86).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__(3).f; +var has = __webpack_require__(7); +var TAG = __webpack_require__(1)('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); +}; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +exports.f = __webpack_require__(1); + + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(2); +var core = __webpack_require__(0); +var LIBRARY = __webpack_require__(25); +var wksExt = __webpack_require__(42); +var defineProperty = __webpack_require__(3).f; +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); +}; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * 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. + */ + + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), +/* 45 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export getStyleProperty */ +/* harmony export (immutable) */ __webpack_exports__["c"] = getStyleValue; +/* unused harmony export getVendorPrefixes */ +/* unused harmony export getVendorPrefixedEventName */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return animationEndName; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return transitionEndName; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return supportTransition; }); +/* harmony export (immutable) */ __webpack_exports__["e"] = mergeChildren; +/* harmony export (immutable) */ __webpack_exports__["b"] = cloneProps; +/* harmony export (immutable) */ __webpack_exports__["d"] = getTransitionName; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__ = __webpack_require__(132); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__); + + + +// =================== Style ==================== +var stylePrefixes = ['-webkit-', '-moz-', '-o-', 'ms-', '']; + +function getStyleProperty(node, name) { + // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle + var style = window.getComputedStyle(node, null); + var ret = ''; + for (var i = 0; i < stylePrefixes.length; i++) { + ret = style.getPropertyValue(stylePrefixes[i] + name); + if (ret) { + break; + } + } + return ret; +} + +function getStyleValue(node, name) { + return parseFloat(getStyleProperty(node, name)); +} + +// ================= Transition ================= +// Event wrapper. Copy from react source code +function makePrefixMap(styleProp, eventName) { + var prefixes = {}; + + prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); + prefixes['Webkit' + styleProp] = 'webkit' + eventName; + prefixes['Moz' + styleProp] = 'moz' + eventName; + prefixes['ms' + styleProp] = 'MS' + eventName; + prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); + + return prefixes; +} + +function getVendorPrefixes(domSupport, win) { + var prefixes = { + animationend: makePrefixMap('Animation', 'AnimationEnd'), + transitionend: makePrefixMap('Transition', 'TransitionEnd') + }; + + if (domSupport) { + if (!('AnimationEvent' in win)) { + delete prefixes.animationend.animation; + } + + if (!('TransitionEvent' in win)) { + delete prefixes.transitionend.transition; + } + } + + return prefixes; +} + +var vendorPrefixes = getVendorPrefixes(__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__["canUseDOM"], typeof window !== 'undefined' ? window : {}); + +var style = {}; + +if (__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__["canUseDOM"]) { + style = document.createElement('div').style; +} + +var prefixedEventNames = {}; + +function getVendorPrefixedEventName(eventName) { + if (prefixedEventNames[eventName]) { + return prefixedEventNames[eventName]; + } + + var prefixMap = vendorPrefixes[eventName]; + + if (prefixMap) { + var stylePropList = Object.keys(prefixMap); + var len = stylePropList.length; + for (var i = 0; i < len; i += 1) { + var styleProp = stylePropList[i]; + if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { + prefixedEventNames[eventName] = prefixMap[styleProp]; + return prefixedEventNames[eventName]; + } + } + } + + return ''; +} + +var animationEndName = getVendorPrefixedEventName('animationend'); +var transitionEndName = getVendorPrefixedEventName('transitionend'); +var supportTransition = !!(animationEndName && transitionEndName); + +// ==================== Node ==================== +/** + * [Legacy] Find the same children in both prev & next list. + * Insert not find one before the find one, otherwise in the end. For example: + * - prev: [1,2,3] + * - next: [2,4] + * -> [1,2,4,3] + */ +function mergeChildren(prev, next) { + var prevList = Object(__WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__["a" /* default */])(prev); + var nextList = Object(__WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__["a" /* default */])(next); + + // Skip if is single children + if (prevList.length === 1 && nextList.length === 1 && prevList[0].key === nextList[0].key) { + return nextList; + } + + var mergeList = []; + var nextChildrenMap = {}; + var missMatchChildrenList = []; + + // Fill matched prev node into next node map + prevList.forEach(function (prevNode) { + if (prevNode && nextList.some(function (_ref) { + var key = _ref.key; + return key === prevNode.key; + })) { + if (missMatchChildrenList.length) { + nextChildrenMap[prevNode.key] = missMatchChildrenList; + missMatchChildrenList = []; + } + } else { + missMatchChildrenList.push(prevNode); + } + }); + + // Insert prev node before the matched next node + nextList.forEach(function (nextNode) { + if (nextNode && nextChildrenMap[nextNode.key]) { + mergeList = mergeList.concat(nextChildrenMap[nextNode.key]); + } + mergeList.push(nextNode); + }); + + mergeList = mergeList.concat(missMatchChildrenList); + + return mergeList; +} + +function cloneProps(props, propList) { + var newProps = {}; + propList.forEach(function (prop) { + if (prop in props) { + newProps[prop] = props[prop]; + } + }); + + return newProps; +} + +function getTransitionName(transitionName, transitionType) { + if (!transitionName) return null; + + if (typeof transitionName === 'object') { + var type = transitionType.replace(/-\w/g, function (match) { + return match[1].toUpperCase(); + }); + return transitionName[type]; + } + + return transitionName + '-' + transitionType; +} + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = !__webpack_require__(6) && !__webpack_require__(15)(function () { + return Object.defineProperty(__webpack_require__(47)('div'), 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(11); +var document = __webpack_require__(2).document; +// typeof document.createElement is 'object' in old IE +var is = isObject(document) && isObject(document.createElement); +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(7); +var toIObject = __webpack_require__(12); +var arrayIndexOf = __webpack_require__(77)(false); +var IE_PROTO = __webpack_require__(34)('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + return result; +}; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = __webpack_require__(31); +// eslint-disable-next-line no-prototype-builtins +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__(33); +var min = Math.min; +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(79), __esModule: true }; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _iterator = __webpack_require__(81); + +var _iterator2 = _interopRequireDefault(_iterator); + +var _symbol = __webpack_require__(92); + +var _symbol2 = _interopRequireDefault(_symbol); + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof(obj); +} : function (obj) { + return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); +}; + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $at = __webpack_require__(83)(true); + +// 21.1.3.27 String.prototype[@@iterator]() +__webpack_require__(54)(String, 'String', function (iterated) { + this._t = String(iterated); // target + this._i = 0; // next index +// 21.1.5.2.1 %StringIteratorPrototype%.next() +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; + point = $at(O, index); + this._i += point.length; + return { value: point, done: false }; +}); + + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var LIBRARY = __webpack_require__(25); +var $export = __webpack_require__(5); +var redefine = __webpack_require__(55); +var hide = __webpack_require__(9); +var Iterators = __webpack_require__(20); +var $iterCreate = __webpack_require__(84); +var setToStringTag = __webpack_require__(41); +var getPrototypeOf = __webpack_require__(87); +var ITERATOR = __webpack_require__(1)('iterator'); +var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function () { return this; }; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + // Fix native + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + $default = function values() { return $native.call(this); }; + } + // Define iterator + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; +}; + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(9); + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) +var $keys = __webpack_require__(48); +var hiddenKeys = __webpack_require__(36).concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +var pIE = __webpack_require__(27); +var createDesc = __webpack_require__(16); +var toIObject = __webpack_require__(12); +var toPrimitive = __webpack_require__(30); +var has = __webpack_require__(7); +var IE8_DOM_DEFINE = __webpack_require__(46); +var gOPD = Object.getOwnPropertyDescriptor; + +exports.f = __webpack_require__(6) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +if (process.env.NODE_ENV === 'production') { + module.exports = __webpack_require__(109); +} else { + module.exports = __webpack_require__(110); +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + warning = function(condition, format, args) { + var len = arguments.length; + args = new Array(len > 2 ? len - 2 : 0); + for (var key = 2; key < len; key++) { + args[key - 2] = arguments[key]; + } + if (format === undefined) { + throw new Error( + '`warning(condition, format, ...args)` requires a warning ' + + 'message argument' + ); + } + + if (format.length < 10 || (/^[s\W]*$/).test(format)) { + throw new Error( + 'The warning format should be able to uniquely identify this ' + + 'warning. Please, use a more descriptive format than: ' + format + ); + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + + format.replace(/%s/g, function() { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch(x) {} + } + }; +} + +module.exports = warning; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 60 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return treeContextTypes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return nodeContextTypes; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__); + +/** + * Webpack has bug for import loop, which is not the same behavior as ES module. + * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty. + */ + + + +/** + * Thought we still use `cloneElement` to pass `key`, + * other props can pass with context for future refactor. + */ +var treeContextTypes = { + rcTree: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({ + root: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, + + prefixCls: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, + selectable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, + showIcon: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, + icon: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]), + draggable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, + checkable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node]), + checkStrictly: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, + disabled: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, + openTransitionName: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, + openAnimation: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]), + + loadData: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + filterTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + renderTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + + isKeyChecked: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + + onNodeClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDoubleClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeExpand: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeSelect: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeCheck: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeMouseEnter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeMouseLeave: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeContextMenu: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDragStart: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDragEnter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDragOver: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDragLeave: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDragEnd: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, + onNodeDrop: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func + + // TODO: Remove this + // onBatchNodeCheck: PropTypes.func, + // onCheckConductFinished: PropTypes.func, + + // Tree will store the entities when the treeNode refresh. + // User can pass the func to add more info to customize the additional info. + // processTreeEntity: PropTypes.func, + }) +}; + +var nodeContextTypes = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, treeContextTypes, { + rcTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({ + onUpCheckConduct: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func + }) +}); + +/***/ }), +/* 61 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["p"] = warnOnlyTreeNode; +/* harmony export (immutable) */ __webpack_exports__["b"] = arrDel; +/* harmony export (immutable) */ __webpack_exports__["a"] = arrAdd; +/* harmony export (immutable) */ __webpack_exports__["o"] = posToArr; +/* harmony export (immutable) */ __webpack_exports__["l"] = getPosition; +/* unused harmony export isTreeNode */ +/* harmony export (immutable) */ __webpack_exports__["k"] = getNodeChildren; +/* unused harmony export isCheckDisabled */ +/* unused harmony export traverseTreeNodes */ +/* harmony export (immutable) */ __webpack_exports__["m"] = mapChildren; +/* harmony export (immutable) */ __webpack_exports__["j"] = getDragNodesKeys; +/* harmony export (immutable) */ __webpack_exports__["c"] = calcDropPosition; +/* harmony export (immutable) */ __webpack_exports__["d"] = calcSelectedKeys; +/* harmony export (immutable) */ __webpack_exports__["g"] = convertDataToTree; +/* harmony export (immutable) */ __webpack_exports__["h"] = convertTreeToEntities; +/* harmony export (immutable) */ __webpack_exports__["n"] = parseCheckedKeys; +/* harmony export (immutable) */ __webpack_exports__["e"] = conductCheck; +/* harmony export (immutable) */ __webpack_exports__["f"] = conductExpandParent; +/* harmony export (immutable) */ __webpack_exports__["i"] = getDataAndAria; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(62); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__(59); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__TreeNode__ = __webpack_require__(63); + + + + + + +var DRAG_SIDE_RANGE = 0.25; +var DRAG_MIN_GAP = 2; + +var onlyTreeNodeWarned = false; + +function warnOnlyTreeNode() { + if (onlyTreeNodeWarned) return; + + onlyTreeNodeWarned = true; + __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, 'Tree only accept TreeNode as children.'); +} + +function arrDel(list, value) { + var clone = list.slice(); + var index = clone.indexOf(value); + if (index >= 0) { + clone.splice(index, 1); + } + return clone; +} + +function arrAdd(list, value) { + var clone = list.slice(); + if (clone.indexOf(value) === -1) { + clone.push(value); + } + return clone; +} + +function posToArr(pos) { + return pos.split('-'); +} + +function getPosition(level, index) { + return level + '-' + index; +} + +function isTreeNode(node) { + return node && node.type && node.type.isTreeNode; +} + +function getNodeChildren(children) { + return Object(__WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__["a" /* default */])(children).filter(isTreeNode); +} + +function isCheckDisabled(node) { + var _ref = node.props || {}, + disabled = _ref.disabled, + disableCheckbox = _ref.disableCheckbox; + + return !!(disabled || disableCheckbox); +} + +function traverseTreeNodes(treeNodes, callback) { + function processNode(node, index, parent) { + var children = node ? node.props.children : treeNodes; + var pos = node ? getPosition(parent.pos, index) : 0; + + // Filter children + var childList = getNodeChildren(children); + + // Process node if is not root + if (node) { + var data = { + node: node, + index: index, + pos: pos, + key: node.key || pos, + parentPos: parent.node ? parent.pos : null + }; + + callback(data); + } + + // Process children node + __WEBPACK_IMPORTED_MODULE_1_react__["Children"].forEach(childList, function (subNode, subIndex) { + processNode(subNode, subIndex, { node: node, pos: pos }); + }); + } + + processNode(null); +} + +/** + * Use `rc-util` `toArray` to get the children list which keeps the key. + * And return single node if children is only one(This can avoid `key` missing check). + */ +function mapChildren(children, func) { + var list = Object(__WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__["a" /* default */])(children).map(func); + if (list.length === 1) { + return list[0]; + } + return list; +} + +function getDragNodesKeys(treeNodes, node) { + var _node$props = node.props, + eventKey = _node$props.eventKey, + pos = _node$props.pos; + + var dragNodesKeys = []; + + traverseTreeNodes(treeNodes, function (_ref2) { + var key = _ref2.key; + + dragNodesKeys.push(key); + }); + dragNodesKeys.push(eventKey || pos); + return dragNodesKeys; +} + +// Only used when drag, not affect SSR. +function calcDropPosition(event, treeNode) { + var clientY = event.clientY; + + var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(), + top = _treeNode$selectHandl.top, + bottom = _treeNode$selectHandl.bottom, + height = _treeNode$selectHandl.height; + + var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP); + + if (clientY <= top + des) { + return -1; + } else if (clientY >= bottom - des) { + return 1; + } + + return 0; +} + +/** + * Return selectedKeys according with multiple prop + * @param selectedKeys + * @param props + * @returns [string] + */ +function calcSelectedKeys(selectedKeys, props) { + if (!selectedKeys) return undefined; + + var multiple = props.multiple; + + if (multiple) { + return selectedKeys.slice(); + } + + if (selectedKeys.length) { + return [selectedKeys[0]]; + } + return selectedKeys; +} + +/** + * Since React internal will convert key to string, + * we need do this to avoid `checkStrictly` use number match + */ +function keyListToString(keyList) { + if (!keyList) return keyList; + return keyList.map(function (key) { + return String(key); + }); +} + +var internalProcessProps = function internalProcessProps(props) { + return props; +}; +function convertDataToTree(treeData, processer) { + if (!treeData) return []; + + var _ref3 = processer || {}, + _ref3$processProps = _ref3.processProps, + processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps; + + var list = Array.isArray(treeData) ? treeData : [treeData]; + return list.map(function (_ref4) { + var children = _ref4.children, + props = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(_ref4, ['children']); + + var childrenNodes = convertDataToTree(children, processer); + + return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement( + __WEBPACK_IMPORTED_MODULE_4__TreeNode__["a" /* default */], + processProps(props), + childrenNodes + ); + }); +} + +// TODO: ========================= NEW LOGIC ========================= +/** + * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select` + * @param treeNodes + * @param processTreeEntity User can customize the entity + */ +function convertTreeToEntities(treeNodes) { + var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + initWrapper = _ref5.initWrapper, + processEntity = _ref5.processEntity, + onProcessFinished = _ref5.onProcessFinished; + + var posEntities = {}; + var keyEntities = {}; + var wrapper = { + posEntities: posEntities, + keyEntities: keyEntities + }; + + if (initWrapper) { + wrapper = initWrapper(wrapper) || wrapper; + } + + traverseTreeNodes(treeNodes, function (item) { + var node = item.node, + index = item.index, + pos = item.pos, + key = item.key, + parentPos = item.parentPos; + + var entity = { node: node, index: index, key: key, pos: pos }; + + posEntities[pos] = entity; + keyEntities[key] = entity; + + // Fill children + entity.parent = posEntities[parentPos]; + if (entity.parent) { + entity.parent.children = entity.parent.children || []; + entity.parent.children.push(entity); + } + + if (processEntity) { + processEntity(entity, wrapper); + } + }); + + if (onProcessFinished) { + onProcessFinished(wrapper); + } + + return wrapper; +} + +/** + * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style + */ +function parseCheckedKeys(keys) { + if (!keys) { + return null; + } + + // Convert keys to object format + var keyProps = void 0; + if (Array.isArray(keys)) { + // [Legacy] Follow the api doc + keyProps = { + checkedKeys: keys, + halfCheckedKeys: undefined + }; + } else if (typeof keys === 'object') { + keyProps = { + checkedKeys: keys.checked || undefined, + halfCheckedKeys: keys.halfChecked || undefined + }; + } else { + __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, '`checkedKeys` is not an array or an object'); + return null; + } + + keyProps.checkedKeys = keyListToString(keyProps.checkedKeys); + keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys); + + return keyProps; +} + +/** + * Conduct check state by the keyList. It will conduct up & from the provided key. + * If the conduct path reach the disabled or already checked / unchecked node will stop conduct. + * @param keyList list of keys + * @param isCheck is check the node or not + * @param keyEntities parsed by `convertTreeToEntities` function in Tree + * @param checkStatus Can pass current checked status for process (usually for uncheck operation) + * @returns {{checkedKeys: [], halfCheckedKeys: []}} + */ +function conductCheck(keyList, isCheck, keyEntities) { + var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + + var checkedKeys = {}; + var halfCheckedKeys = {}; // Record the key has some child checked (include child half checked) + + (checkStatus.checkedKeys || []).forEach(function (key) { + checkedKeys[key] = true; + }); + + (checkStatus.halfCheckedKeys || []).forEach(function (key) { + halfCheckedKeys[key] = true; + }); + + // Conduct up + function conductUp(key) { + if (checkedKeys[key] === isCheck) return; + + var entity = keyEntities[key]; + if (!entity) return; + + var children = entity.children, + parent = entity.parent, + node = entity.node; + + + if (isCheckDisabled(node)) return; + + // Check child node checked status + var everyChildChecked = true; + var someChildChecked = false; // Child checked or half checked + + (children || []).filter(function (child) { + return !isCheckDisabled(child.node); + }).forEach(function (_ref6) { + var childKey = _ref6.key; + + var childChecked = checkedKeys[childKey]; + var childHalfChecked = halfCheckedKeys[childKey]; + + if (childChecked || childHalfChecked) someChildChecked = true; + if (!childChecked) everyChildChecked = false; + }); + + // Update checked status + if (isCheck) { + checkedKeys[key] = everyChildChecked; + } else { + checkedKeys[key] = false; + } + halfCheckedKeys[key] = someChildChecked; + + if (parent) { + conductUp(parent.key); + } + } + + // Conduct down + function conductDown(key) { + if (checkedKeys[key] === isCheck) return; + + var entity = keyEntities[key]; + if (!entity) return; + + var children = entity.children, + node = entity.node; + + + if (isCheckDisabled(node)) return; + + checkedKeys[key] = isCheck; + + (children || []).forEach(function (child) { + conductDown(child.key); + }); + } + + function conduct(key) { + var entity = keyEntities[key]; + + if (!entity) { + __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, '\'' + key + '\' does not exist in the tree.'); + return; + } + + var children = entity.children, + parent = entity.parent, + node = entity.node; + + checkedKeys[key] = isCheck; + + if (isCheckDisabled(node)) return; + + // Conduct down + (children || []).filter(function (child) { + return !isCheckDisabled(child.node); + }).forEach(function (child) { + conductDown(child.key); + }); + + // Conduct up + if (parent) { + conductUp(parent.key); + } + } + + (keyList || []).forEach(function (key) { + conduct(key); + }); + + var checkedKeyList = []; + var halfCheckedKeyList = []; + + // Fill checked list + Object.keys(checkedKeys).forEach(function (key) { + if (checkedKeys[key]) { + checkedKeyList.push(key); + } + }); + + // Fill half checked list + Object.keys(halfCheckedKeys).forEach(function (key) { + if (!checkedKeys[key] && halfCheckedKeys[key]) { + halfCheckedKeyList.push(key); + } + }); + + return { + checkedKeys: checkedKeyList, + halfCheckedKeys: halfCheckedKeyList + }; +} + +/** + * If user use `autoExpandParent` we should get the list of parent node + * @param keyList + * @param keyEntities + */ +function conductExpandParent(keyList, keyEntities) { + var expandedKeys = {}; + + function conductUp(key) { + if (expandedKeys[key]) return; + + var entity = keyEntities[key]; + if (!entity) return; + + expandedKeys[key] = true; + + var parent = entity.parent, + node = entity.node; + + + if (isCheckDisabled(node)) return; + + if (parent) { + conductUp(parent.key); + } + } + + (keyList || []).forEach(function (key) { + conductUp(key); + }); + + return Object.keys(expandedKeys); +} + +/** + * Returns only the data- and aria- key/value pairs + * @param {object} props + */ +function getDataAndAria(props) { + return Object.keys(props).reduce(function (prev, key) { + if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') { + prev[key] = props[key]; + } + return prev; + }, {}); +} + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = 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; +}; + +/***/ }), +/* 63 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(62); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__ = __webpack_require__(21); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_rc_animate__ = __webpack_require__(115); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_rc_util_es_Children_toArray__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_lifecycles_compat__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__contextTypes__ = __webpack_require__(60); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util__ = __webpack_require__(61); + + + + + + + + + + + + + + + + +var ICON_OPEN = 'open'; +var ICON_CLOSE = 'close'; + +var defaultTitle = '---'; + +var TreeNode = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default()(TreeNode, _React$Component); + + function TreeNode(props) { + __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, TreeNode); + + var _this = __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default()(this, (TreeNode.__proto__ || Object.getPrototypeOf(TreeNode)).call(this, props)); + + _initialiseProps.call(_this); + + _this.state = { + dragNodeHighlight: false + }; + return _this; + } + + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default()(TreeNode, [{ + key: 'getChildContext', + value: function getChildContext() { + return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, this.context, { + rcTreeNode: { + // onUpCheckConduct: this.onUpCheckConduct, + } + }); + } + + // Isomorphic needn't load data in server side + + }, { + key: 'componentDidMount', + value: function componentDidMount() { + var eventKey = this.props.eventKey; + var registerTreeNode = this.context.rcTree.registerTreeNode; + + + this.syncLoadData(this.props); + + registerTreeNode(eventKey, this); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.syncLoadData(this.props); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + var eventKey = this.props.eventKey; + var registerTreeNode = this.context.rcTree.registerTreeNode; + + registerTreeNode(eventKey, null); + } + + // Disabled item still can be switch + + + // Drag usage + + }, { + key: 'isSelectable', + value: function isSelectable() { + var selectable = this.props.selectable; + var treeSelectable = this.context.rcTree.selectable; + + // Ignore when selectable is undefined or null + + if (typeof selectable === 'boolean') { + return selectable; + } + + return treeSelectable; + } + + // Load data to avoid default expanded tree without data + + + // Switcher + + + // Checkbox + + + // Icon + Title + + + // Children list wrapped with `Animation` + + }, { + key: 'render', + value: function render() { + var _classNames; + + var loading = this.props.loading; + + var _props = this.props, + className = _props.className, + style = _props.style, + dragOver = _props.dragOver, + dragOverGapTop = _props.dragOverGapTop, + dragOverGapBottom = _props.dragOverGapBottom, + isLeaf = _props.isLeaf, + expanded = _props.expanded, + selected = _props.selected, + checked = _props.checked, + halfChecked = _props.halfChecked, + otherProps = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['className', 'style', 'dragOver', 'dragOverGapTop', 'dragOverGapBottom', 'isLeaf', 'expanded', 'selected', 'checked', 'halfChecked']); + + var _context$rcTree = this.context.rcTree, + prefixCls = _context$rcTree.prefixCls, + filterTreeNode = _context$rcTree.filterTreeNode, + draggable = _context$rcTree.draggable; + + var disabled = this.isDisabled(); + var dataOrAriaAttributeProps = Object(__WEBPACK_IMPORTED_MODULE_14__util__["i" /* getDataAndAria */])(otherProps); + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'li', + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({ + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(className, (_classNames = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-disabled', disabled), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-switcher-' + (expanded ? 'open' : 'close'), !isLeaf), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-checkbox-checked', checked), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-checkbox-indeterminate', halfChecked), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-selected', selected), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-loading', loading), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over', !disabled && dragOver), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'filter-node', filterTreeNode && filterTreeNode(this)), _classNames)), + + style: style, + + role: 'treeitem', + + onDragEnter: draggable ? this.onDragEnter : undefined, + onDragOver: draggable ? this.onDragOver : undefined, + onDragLeave: draggable ? this.onDragLeave : undefined, + onDrop: draggable ? this.onDrop : undefined, + onDragEnd: draggable ? this.onDragEnd : undefined + }, dataOrAriaAttributeProps), + this.renderSwitcher(), + this.renderCheckbox(), + this.renderSelector(), + this.renderChildren() + ); + } + }]); + + return TreeNode; +}(__WEBPACK_IMPORTED_MODULE_7_react___default.a.Component); + +TreeNode.propTypes = { + eventKey: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, // Pass by parent `cloneElement` + prefixCls: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, + className: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, + style: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, + root: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, + onSelect: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + + // By parent + expanded: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + selected: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + checked: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + loaded: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + loading: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + halfChecked: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + children: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, + title: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, + pos: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, + dragOver: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + dragOverGapTop: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + dragOverGapBottom: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + + // By user + isLeaf: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + selectable: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + disabled: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + disableCheckbox: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + icon: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]), + switcherIcon: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]) +}; +TreeNode.contextTypes = __WEBPACK_IMPORTED_MODULE_13__contextTypes__["a" /* nodeContextTypes */]; +TreeNode.childContextTypes = __WEBPACK_IMPORTED_MODULE_13__contextTypes__["a" /* nodeContextTypes */]; +TreeNode.defaultProps = { + title: defaultTitle +}; + +var _initialiseProps = function _initialiseProps() { + var _this2 = this; + + this.onSelectorClick = function (e) { + // Click trigger before select/check operation + var onNodeClick = _this2.context.rcTree.onNodeClick; + + onNodeClick(e, _this2); + + if (_this2.isSelectable()) { + _this2.onSelect(e); + } else { + _this2.onCheck(e); + } + }; + + this.onSelectorDoubleClick = function (e) { + var onNodeDoubleClick = _this2.context.rcTree.onNodeDoubleClick; + + onNodeDoubleClick(e, _this2); + }; + + this.onSelect = function (e) { + if (_this2.isDisabled()) return; + + var onNodeSelect = _this2.context.rcTree.onNodeSelect; + + e.preventDefault(); + onNodeSelect(e, _this2); + }; + + this.onCheck = function (e) { + if (_this2.isDisabled()) return; + + var _props2 = _this2.props, + disableCheckbox = _props2.disableCheckbox, + checked = _props2.checked; + var _context$rcTree2 = _this2.context.rcTree, + checkable = _context$rcTree2.checkable, + onNodeCheck = _context$rcTree2.onNodeCheck; + + + if (!checkable || disableCheckbox) return; + + e.preventDefault(); + var targetChecked = !checked; + onNodeCheck(e, _this2, targetChecked); + }; + + this.onMouseEnter = function (e) { + var onNodeMouseEnter = _this2.context.rcTree.onNodeMouseEnter; + + onNodeMouseEnter(e, _this2); + }; + + this.onMouseLeave = function (e) { + var onNodeMouseLeave = _this2.context.rcTree.onNodeMouseLeave; + + onNodeMouseLeave(e, _this2); + }; + + this.onContextMenu = function (e) { + var onNodeContextMenu = _this2.context.rcTree.onNodeContextMenu; + + onNodeContextMenu(e, _this2); + }; + + this.onDragStart = function (e) { + var onNodeDragStart = _this2.context.rcTree.onNodeDragStart; + + + e.stopPropagation(); + _this2.setState({ + dragNodeHighlight: true + }); + onNodeDragStart(e, _this2); + + try { + // ie throw error + // firefox-need-it + e.dataTransfer.setData('text/plain', ''); + } catch (error) { + // empty + } + }; + + this.onDragEnter = function (e) { + var onNodeDragEnter = _this2.context.rcTree.onNodeDragEnter; + + + e.preventDefault(); + e.stopPropagation(); + onNodeDragEnter(e, _this2); + }; + + this.onDragOver = function (e) { + var onNodeDragOver = _this2.context.rcTree.onNodeDragOver; + + + e.preventDefault(); + e.stopPropagation(); + onNodeDragOver(e, _this2); + }; + + this.onDragLeave = function (e) { + var onNodeDragLeave = _this2.context.rcTree.onNodeDragLeave; + + + e.stopPropagation(); + onNodeDragLeave(e, _this2); + }; + + this.onDragEnd = function (e) { + var onNodeDragEnd = _this2.context.rcTree.onNodeDragEnd; + + + e.stopPropagation(); + _this2.setState({ + dragNodeHighlight: false + }); + onNodeDragEnd(e, _this2); + }; + + this.onDrop = function (e) { + var onNodeDrop = _this2.context.rcTree.onNodeDrop; + + + e.preventDefault(); + e.stopPropagation(); + _this2.setState({ + dragNodeHighlight: false + }); + onNodeDrop(e, _this2); + }; + + this.onExpand = function (e) { + var onNodeExpand = _this2.context.rcTree.onNodeExpand; + + onNodeExpand(e, _this2); + }; + + this.setSelectHandle = function (node) { + _this2.selectHandle = node; + }; + + this.getNodeChildren = function () { + var children = _this2.props.children; + + var originList = Object(__WEBPACK_IMPORTED_MODULE_11_rc_util_es_Children_toArray__["a" /* default */])(children).filter(function (node) { + return node; + }); + var targetList = Object(__WEBPACK_IMPORTED_MODULE_14__util__["k" /* getNodeChildren */])(originList); + + if (originList.length !== targetList.length) { + Object(__WEBPACK_IMPORTED_MODULE_14__util__["p" /* warnOnlyTreeNode */])(); + } + + return targetList; + }; + + this.getNodeState = function () { + var expanded = _this2.props.expanded; + + + if (_this2.isLeaf()) { + return null; + } + + return expanded ? ICON_OPEN : ICON_CLOSE; + }; + + this.isLeaf = function () { + var _props3 = _this2.props, + isLeaf = _props3.isLeaf, + loaded = _props3.loaded; + var loadData = _this2.context.rcTree.loadData; + + + var hasChildren = _this2.getNodeChildren().length !== 0; + + if (isLeaf === false) { + return false; + } + + return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren; + }; + + this.isDisabled = function () { + var disabled = _this2.props.disabled; + var treeDisabled = _this2.context.rcTree.disabled; + + // Follow the logic of Selectable + + if (disabled === false) { + return false; + } + + return !!(treeDisabled || disabled); + }; + + this.syncLoadData = function (props) { + var expanded = props.expanded, + loading = props.loading, + loaded = props.loaded; + var _context$rcTree3 = _this2.context.rcTree, + loadData = _context$rcTree3.loadData, + onNodeLoad = _context$rcTree3.onNodeLoad; + + + if (loading) return; + + // read from state to avoid loadData at same time + if (loadData && expanded && !_this2.isLeaf()) { + // We needn't reload data when has children in sync logic + // It's only needed in node expanded + var hasChildren = _this2.getNodeChildren().length !== 0; + if (!hasChildren && !loaded) { + onNodeLoad(_this2); + } + } + }; + + this.renderSwitcher = function () { + var _props4 = _this2.props, + expanded = _props4.expanded, + switcherIconFromProps = _props4.switcherIcon; + var _context$rcTree4 = _this2.context.rcTree, + prefixCls = _context$rcTree4.prefixCls, + switcherIconFromCtx = _context$rcTree4.switcherIcon; + + + var switcherIcon = switcherIconFromProps || switcherIconFromCtx; + + if (_this2.isLeaf()) { + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-switcher', prefixCls + '-switcher-noop') }, + typeof switcherIcon === 'function' ? switcherIcon(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props, { isLeaf: true })) : switcherIcon + ); + } + + var switcherCls = __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-switcher', prefixCls + '-switcher_' + (expanded ? ICON_OPEN : ICON_CLOSE)); + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { onClick: _this2.onExpand, className: switcherCls }, + typeof switcherIcon === 'function' ? switcherIcon(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props, { isLeaf: false })) : switcherIcon + ); + }; + + this.renderCheckbox = function () { + var _props5 = _this2.props, + checked = _props5.checked, + halfChecked = _props5.halfChecked, + disableCheckbox = _props5.disableCheckbox; + var _context$rcTree5 = _this2.context.rcTree, + prefixCls = _context$rcTree5.prefixCls, + checkable = _context$rcTree5.checkable; + + var disabled = _this2.isDisabled(); + + if (!checkable) return null; + + // [Legacy] Custom element should be separate with `checkable` in future + var $custom = typeof checkable !== 'boolean' ? checkable : null; + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-checkbox', checked && prefixCls + '-checkbox-checked', !checked && halfChecked && prefixCls + '-checkbox-indeterminate', (disabled || disableCheckbox) && prefixCls + '-checkbox-disabled'), + onClick: _this2.onCheck + }, + $custom + ); + }; + + this.renderIcon = function () { + var loading = _this2.props.loading; + var prefixCls = _this2.context.rcTree.prefixCls; + + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement('span', { + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-iconEle', prefixCls + '-icon__' + (_this2.getNodeState() || 'docu'), loading && prefixCls + '-icon_loading') + }); + }; + + this.renderSelector = function () { + var dragNodeHighlight = _this2.state.dragNodeHighlight; + var _props6 = _this2.props, + title = _props6.title, + selected = _props6.selected, + icon = _props6.icon, + loading = _props6.loading; + var _context$rcTree6 = _this2.context.rcTree, + prefixCls = _context$rcTree6.prefixCls, + showIcon = _context$rcTree6.showIcon, + treeIcon = _context$rcTree6.icon, + draggable = _context$rcTree6.draggable, + loadData = _context$rcTree6.loadData; + + var disabled = _this2.isDisabled(); + + var wrapClass = prefixCls + '-node-content-wrapper'; + + // Icon - Still show loading icon when loading without showIcon + var $icon = void 0; + + if (showIcon) { + var currentIcon = icon || treeIcon; + + $icon = currentIcon ? __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-iconEle', prefixCls + '-icon__customize') + }, + typeof currentIcon === 'function' ? __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(currentIcon, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props)) : currentIcon + ) : _this2.renderIcon(); + } else if (loadData && loading) { + $icon = _this2.renderIcon(); + } + + // Title + var $title = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { className: prefixCls + '-title' }, + title + ); + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'span', + { + ref: _this2.setSelectHandle, + title: typeof title === 'string' ? title : '', + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('' + wrapClass, wrapClass + '-' + (_this2.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && prefixCls + '-node-selected', !disabled && draggable && 'draggable'), + draggable: !disabled && draggable || undefined, + 'aria-grabbed': !disabled && draggable || undefined, + + onMouseEnter: _this2.onMouseEnter, + onMouseLeave: _this2.onMouseLeave, + onContextMenu: _this2.onContextMenu, + onClick: _this2.onSelectorClick, + onDoubleClick: _this2.onSelectorDoubleClick, + onDragStart: draggable ? _this2.onDragStart : undefined + }, + $icon, + $title + ); + }; + + this.renderChildren = function () { + var _props7 = _this2.props, + expanded = _props7.expanded, + pos = _props7.pos; + var _context$rcTree7 = _this2.context.rcTree, + prefixCls = _context$rcTree7.prefixCls, + openTransitionName = _context$rcTree7.openTransitionName, + openAnimation = _context$rcTree7.openAnimation, + renderTreeNode = _context$rcTree7.renderTreeNode; + + + var animProps = {}; + if (openTransitionName) { + animProps.transitionName = openTransitionName; + } else if (typeof openAnimation === 'object') { + animProps.animation = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, openAnimation); + } + + // Children TreeNode + var nodeList = _this2.getNodeChildren(); + + if (nodeList.length === 0) { + return null; + } + + var $children = void 0; + if (expanded) { + $children = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + 'ul', + { + className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-child-tree', expanded && prefixCls + '-child-tree-open'), + 'data-expanded': expanded, + role: 'group' + }, + Object(__WEBPACK_IMPORTED_MODULE_14__util__["m" /* mapChildren */])(nodeList, function (node, index) { + return renderTreeNode(node, index, pos); + }) + ); + } + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( + __WEBPACK_IMPORTED_MODULE_10_rc_animate__["a" /* default */], + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, animProps, { + showProp: 'data-expanded', + component: '' + }), + $children + ); + }; +}; + +TreeNode.isTreeNode = 1; + +Object(__WEBPACK_IMPORTED_MODULE_12_react_lifecycles_compat__["a" /* polyfill */])(TreeNode); + +/* harmony default export */ __webpack_exports__["a"] = (TreeNode); + +/***/ }), +/* 64 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export genAnimateChild */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray__ = __webpack_require__(119); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(21); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_dom__ = __webpack_require__(65); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_dom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_lifecycles_compat__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_component_classes__ = __webpack_require__(129); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_component_classes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_component_classes__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf__ = __webpack_require__(67); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_raf__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util__ = __webpack_require__(45); + + + + + + + + + + + + + + + +var clonePropList = ['appeared', 'show', 'exclusive', 'children', 'animation']; + +/** + * AnimateChild only accept one child node. + * `transitionSupport` is used for none transition test case. + * Default we use browser transition event support check. + */ +function genAnimateChild(transitionSupport) { + var AnimateChild = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(AnimateChild, _React$Component); + + function AnimateChild() { + __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, AnimateChild); + + // [Legacy] Since old code addListener on the element. + // To avoid break the behaviour that component not handle animation/transition + // also can handle the animate, let keep the logic. + var _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).call(this)); + + _this.state = { + child: null, + + eventQueue: [], + eventActive: false + }; + + _this.onDomUpdated = function () { + var eventActive = _this.state.eventActive; + var _this$props = _this.props, + transitionName = _this$props.transitionName, + animation = _this$props.animation, + onChildLeaved = _this$props.onChildLeaved, + animateKey = _this$props.animateKey; + + + var $ele = _this.getDomElement(); + + // Skip if dom element not ready + if (!$ele) return; + + // [Legacy] Add animation/transition event by dom level + if (transitionSupport && _this.$prevEle !== $ele) { + _this.cleanDomEvent(); + + _this.$prevEle = $ele; + _this.$prevEle.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); + _this.$prevEle.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); + } + + var currentEvent = _this.getCurrentEvent(); + if (currentEvent.empty) { + // Additional process the leave event + if (currentEvent.lastEventType === 'leave') { + onChildLeaved(animateKey); + } + return; + } + + var eventType = currentEvent.eventType, + restQueue = currentEvent.restQueue; + + var nodeClasses = __WEBPACK_IMPORTED_MODULE_10_component_classes___default()($ele); + + // [Legacy] Since origin code use js to set `className`. + // This caused that any component without support `className` can be forced set. + // Let's keep the logic. + function legacyAppendClass() { + if (!transitionSupport) return; + + var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, '' + eventType); + if (basicClassName) nodeClasses.add(basicClassName); + + if (eventActive) { + var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, eventType + '-active'); + if (activeClassName) nodeClasses.add(activeClassName); + } + } + + if (_this.currentEvent && _this.currentEvent.type === eventType) { + legacyAppendClass(); + return; + } + + // Clear timeout for legacy check + clearTimeout(_this.timeout); + + // Clean up last event environment + if (_this.currentEvent && _this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) { + _this.currentEvent.animateObj.stop(); + } + + // Clean up last transition class + if (_this.currentEvent) { + var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, '' + _this.currentEvent.type); + var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type + '-active'); + if (basicClassName) nodeClasses.remove(basicClassName); + if (activeClassName) nodeClasses.remove(activeClassName); + } + + // New event come + _this.currentEvent = { + type: eventType + }; + + var animationHandler = (animation || {})[eventType]; + // =============== Check if has customize animation =============== + if (animationHandler) { + _this.currentEvent.animateObj = animationHandler($ele, function () { + _this.onMotionEnd({ target: $ele }); + }); + + // Do next step if not animate object provided + if (!_this.currentEvent || !_this.currentEvent.animateObj) { + _this.nextEvent(restQueue); + } + + // ==================== Use transition instead ==================== + } else if (transitionSupport) { + legacyAppendClass(); + if (!eventActive) { + // Trigger `eventActive` in next frame + __WEBPACK_IMPORTED_MODULE_11_raf___default()(function () { + if (_this.currentEvent && _this.currentEvent.type === eventType && !_this._destroy) { + _this.setState({ eventActive: true }, function () { + // [Legacy] Handle timeout if browser transition event not handle + var transitionDelay = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'transition-delay') || 0; + var transitionDuration = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'transition-duration') || 0; + var animationDelay = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'animation-delay') || 0; + var animationDuration = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'animation-duration') || 0; + var totalTime = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay); + + if (totalTime >= 0) { + _this.timeout = setTimeout(function () { + _this.onMotionEnd({ target: $ele }); + }, totalTime * 1000); + } + }); + } + }); + } + + // ======================= Just next action ======================= + } else { + _this.onMotionEnd({ target: $ele }); + } + }; + + _this.onMotionEnd = function (_ref) { + var target = _ref.target; + var _this$props2 = _this.props, + transitionName = _this$props2.transitionName, + onChildLeaved = _this$props2.onChildLeaved, + animateKey = _this$props2.animateKey, + onAppear = _this$props2.onAppear, + onEnter = _this$props2.onEnter, + onLeave = _this$props2.onLeave, + onEnd = _this$props2.onEnd; + + var currentEvent = _this.getCurrentEvent(); + if (currentEvent.empty) return; + + // Clear timeout for legacy check + clearTimeout(_this.timeout); + + var restQueue = currentEvent.restQueue; + + + var $ele = _this.getDomElement(); + if (!_this.currentEvent || $ele !== target) return; + + if (_this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) { + _this.currentEvent.animateObj.stop(); + } + + // [Legacy] Same as above, we need call js to remove the class + if (transitionSupport && _this.currentEvent) { + var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type); + var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type + '-active'); + + var nodeClasses = __WEBPACK_IMPORTED_MODULE_10_component_classes___default()($ele); + if (basicClassName) nodeClasses.remove(basicClassName); + if (activeClassName) nodeClasses.remove(activeClassName); + } + + // Additional process the leave event + if (_this.currentEvent && _this.currentEvent.type === 'leave') { + onChildLeaved(animateKey); + } + + // [Legacy] Trigger on event when it's last event + if (_this.currentEvent && !restQueue.length) { + if (_this.currentEvent.type === 'appear' && onAppear) { + onAppear(animateKey); + } else if (_this.currentEvent.type === 'enter' && onEnter) { + onEnter(animateKey); + } else if (_this.currentEvent.type === 'leave' && onLeave) { + onLeave(animateKey); + } + + if (onEnd) { + // OnEnd(key, isShow) + onEnd(animateKey, _this.currentEvent.type !== 'leave'); + } + } + + _this.currentEvent = null; + + // Next queue + _this.nextEvent(restQueue); + }; + + _this.getDomElement = function () { + if (_this._destroy) return null; + return __WEBPACK_IMPORTED_MODULE_6_react_dom___default.a.findDOMNode(_this); + }; + + _this.getCurrentEvent = function () { + var _this$state$eventQueu = _this.state.eventQueue, + eventQueue = _this$state$eventQueu === undefined ? [] : _this$state$eventQueu; + var _this$props3 = _this.props, + animation = _this$props3.animation, + exclusive = _this$props3.exclusive, + transitionAppear = _this$props3.transitionAppear, + transitionEnter = _this$props3.transitionEnter, + transitionLeave = _this$props3.transitionLeave; + + + function hasEventHandler(eventType) { + return eventType === 'appear' && (transitionAppear || animation.appear) || eventType === 'enter' && (transitionEnter || animation.enter) || eventType === 'leave' && (transitionLeave || animation.leave); + } + + var event = null; + // If is exclusive, only check the last event + if (exclusive) { + var eventType = eventQueue[eventQueue.length - 1]; + if (hasEventHandler(eventType)) { + event = { + eventType: eventType, + restQueue: [] + }; + } + } else { + // Loop check the queue until find match + var cloneQueue = eventQueue.slice(); + while (cloneQueue.length) { + var _cloneQueue = cloneQueue, + _cloneQueue2 = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray___default()(_cloneQueue), + _eventType = _cloneQueue2[0], + restQueue = _cloneQueue2.slice(1); + + if (hasEventHandler(_eventType)) { + event = { + eventType: _eventType, + restQueue: restQueue + }; + break; + } + cloneQueue = restQueue; + } + } + + if (!event) { + event = { + empty: true, + lastEventType: eventQueue[eventQueue.length - 1] + }; + } + + return event; + }; + + _this.nextEvent = function (restQueue) { + // Next queue + if (!_this._destroy) { + _this.setState({ + eventQueue: restQueue, + eventActive: false + }); + } + }; + + _this.cleanDomEvent = function () { + if (_this.$prevEle && transitionSupport) { + _this.$prevEle.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); + _this.$prevEle.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); + } + }; + + _this.$prevEle = null; + + _this.currentEvent = null; + _this.timeout = null; + return _this; + } + + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(AnimateChild, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.onDomUpdated(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.onDomUpdated(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + clearTimeout(this.timeout); + this._destroy = true; + this.cleanDomEvent(); + } + }, { + key: 'render', + value: function render() { + var _state = this.state, + child = _state.child, + eventActive = _state.eventActive; + var _props = this.props, + showProp = _props.showProp, + transitionName = _props.transitionName; + + var _ref2 = child.props || {}, + className = _ref2.className; + + var currentEvent = this.getCurrentEvent(); + + // Class name + var connectClassName = transitionSupport && this.currentEvent ? __WEBPACK_IMPORTED_MODULE_9_classnames___default()(className, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, this.currentEvent.type), eventActive && Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, this.currentEvent.type + '-active')) : className; + + var show = true; + + // Keep show when is in transition or has customize animate + if (transitionSupport && (!currentEvent.empty || this.currentEvent && this.currentEvent.animateObj)) { + show = true; + } else { + show = child.props[showProp]; + } + + // Clone child + var newChildProps = { + className: connectClassName + }; + + if (showProp) { + newChildProps[showProp] = show; + } + + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.cloneElement(child, newChildProps); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, prevState) { + var _prevState$prevProps = prevState.prevProps, + prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps; + var appeared = nextProps.appeared; + + + var newState = { + prevProps: Object(__WEBPACK_IMPORTED_MODULE_12__util__["b" /* cloneProps */])(nextProps, clonePropList) + }; + + function processState(propName, updater) { + if (prevProps[propName] !== nextProps[propName]) { + if (updater) { + updater(nextProps[propName]); + } + return true; + } + return false; + } + + function pushEvent(eventType) { + var eventQueue = newState.eventQueue || prevState.eventQueue.slice(); + var matchIndex = eventQueue.indexOf(eventType); + + // Clean the rest event if eventType match + if (matchIndex !== -1) { + eventQueue = eventQueue.slice(0, matchIndex); + } + + eventQueue.push(eventType); + newState.eventQueue = eventQueue; + } + + // Child update. Only set child. + processState('children', function (child) { + newState.child = child; + }); + + processState('appeared', function (isAppeared) { + if (isAppeared) { + pushEvent('appear'); + } + }); + + // Show update + processState('show', function (show) { + if (!appeared) { + if (show) { + pushEvent('enter'); + } else { + pushEvent('leave'); + } + } + }); + + return newState; + } + }]); + + return AnimateChild; + }(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); + + AnimateChild.propTypes = { + transitionName: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), + transitionAppear: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + transitionEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + transitionLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + exclusive: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + appeared: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + showProp: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, + + animateKey: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.any, + animation: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object, + onChildLeaved: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + + onEnd: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onAppear: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func + }; + + + Object(__WEBPACK_IMPORTED_MODULE_8_react_lifecycles_compat__["a" /* polyfill */])(AnimateChild); + + return AnimateChild; +} + +/* harmony default export */ __webpack_exports__["a"] = (genAnimateChild(__WEBPACK_IMPORTED_MODULE_12__util__["f" /* supportTransition */])); + +/***/ }), +/* 65 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_65__; + +/***/ }), +/* 66 */ +/***/ (function(module, exports) { + +module.exports = function(arr, obj){ + if (arr.indexOf) return arr.indexOf(obj); + for (var i = 0; i < arr.length; ++i) { + if (arr[i] === obj) return i; + } + return -1; +}; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(131) + , root = typeof window === 'undefined' ? global : window + , vendors = ['moz', 'webkit'] + , suffix = 'AnimationFrame' + , raf = root['request' + suffix] + , caf = root['cancel' + suffix] || root['cancelRequest' + suffix] + +for(var i = 0; !raf && i < vendors.length; i++) { + raf = root[vendors[i] + 'Request' + suffix] + caf = root[vendors[i] + 'Cancel' + suffix] + || root[vendors[i] + 'CancelRequest' + suffix] +} + +// Some versions of FF have rAF but not cAF +if(!raf || !caf) { + var last = 0 + , id = 0 + , queue = [] + , frameDuration = 1000 / 60 + + raf = function(callback) { + if(queue.length === 0) { + var _now = now() + , next = Math.max(0, frameDuration - (_now - last)) + last = next + _now + setTimeout(function() { + var cp = queue.slice(0) + // Clear queue here to prevent + // callbacks from appending listeners + // to the current frame's queue + queue.length = 0 + for(var i = 0; i < cp.length; i++) { + if(!cp[i].cancelled) { + try{ + cp[i].callback(last) + } catch(e) { + setTimeout(function() { throw e }, 0) + } + } + } + }, Math.round(next)) + } + queue.push({ + handle: ++id, + callback: callback, + cancelled: false + }) + return id + } + + caf = function(handle) { + for(var i = 0; i < queue.length; i++) { + if(queue[i].handle === handle) { + queue[i].cancelled = true + } + } + } +} + +module.exports = function(fn) { + // Wrap in a new function to prevent + // `cancel` potentially being assigned + // to the native rAF function + return raf.call(root, fn) +} +module.exports.cancel = function() { + caf.apply(root, arguments) +} +module.exports.polyfill = function(object) { + if (!object) { + object = root; + } + object.requestAnimationFrame = raf + object.cancelAnimationFrame = caf +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(130))) + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(69); +module.exports = __webpack_require__(70); + + +/***/ }), +/* 69 */ +/***/ (function(module, exports) { + +// removed by extract-text-webpack-plugin + +/***/ }), +/* 70 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Tree__ = __webpack_require__(71); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TreeNode__ = __webpack_require__(63); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TreeNode", function() { return __WEBPACK_IMPORTED_MODULE_1__TreeNode__["a"]; }); + + + +__WEBPACK_IMPORTED_MODULE_0__Tree__["a" /* default */].TreeNode = __WEBPACK_IMPORTED_MODULE_1__TreeNode__["a" /* default */]; + + +/* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_0__Tree__["a" /* default */]); + +/***/ }), +/* 71 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(21); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_warning__ = __webpack_require__(59); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_rc_util_es_Children_toArray__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_lifecycles_compat__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__contextTypes__ = __webpack_require__(60); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util__ = __webpack_require__(61); + + + + + + + + + + + + + + + + +var Tree = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(Tree, _React$Component); + + function Tree(props) { + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, Tree); + + var _this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, (Tree.__proto__ || Object.getPrototypeOf(Tree)).call(this, props)); + + _this.onNodeDragStart = function (event, node) { + var expandedKeys = _this.state.expandedKeys; + var onDragStart = _this.props.onDragStart; + var _node$props = node.props, + eventKey = _node$props.eventKey, + children = _node$props.children; + + + _this.dragNode = node; + + _this.setState({ + dragNodesKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["j" /* getDragNodesKeys */])(children, node), + expandedKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(expandedKeys, eventKey) + }); + + if (onDragStart) { + onDragStart({ event: event, node: node }); + } + }; + + _this.onNodeDragEnter = function (event, node) { + var expandedKeys = _this.state.expandedKeys; + var onDragEnter = _this.props.onDragEnter; + var _node$props2 = node.props, + pos = _node$props2.pos, + eventKey = _node$props2.eventKey; + + + if (!_this.dragNode) return; + + var dropPosition = Object(__WEBPACK_IMPORTED_MODULE_13__util__["c" /* calcDropPosition */])(event, node); + + // Skip if drag node is self + if (_this.dragNode.props.eventKey === eventKey && dropPosition === 0) { + _this.setState({ + dragOverNodeKey: '', + dropPosition: null + }); + return; + } + + // Ref: https://github.com/react-component/tree/issues/132 + // Add timeout to let onDragLevel fire before onDragEnter, + // so that we can clean drag props for onDragLeave node. + // Macro task for this: + // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script + setTimeout(function () { + // Update drag over node + _this.setState({ + dragOverNodeKey: eventKey, + dropPosition: dropPosition + }); + + // Side effect for delay drag + if (!_this.delayedDragEnterLogic) { + _this.delayedDragEnterLogic = {}; + } + Object.keys(_this.delayedDragEnterLogic).forEach(function (key) { + clearTimeout(_this.delayedDragEnterLogic[key]); + }); + _this.delayedDragEnterLogic[pos] = setTimeout(function () { + var newExpandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(expandedKeys, eventKey); + if (!('expandedKeys' in _this.props)) { + _this.setState({ + expandedKeys: newExpandedKeys + }); + } + + if (onDragEnter) { + onDragEnter({ event: event, node: node, expandedKeys: newExpandedKeys }); + } + }, 400); + }, 0); + }; + + _this.onNodeDragOver = function (event, node) { + var onDragOver = _this.props.onDragOver; + var eventKey = node.props.eventKey; + + // Update drag position + + if (_this.dragNode && eventKey === _this.state.dragOverNodeKey) { + var dropPosition = Object(__WEBPACK_IMPORTED_MODULE_13__util__["c" /* calcDropPosition */])(event, node); + + if (dropPosition === _this.state.dropPosition) return; + + _this.setState({ + dropPosition: dropPosition + }); + } + + if (onDragOver) { + onDragOver({ event: event, node: node }); + } + }; + + _this.onNodeDragLeave = function (event, node) { + var onDragLeave = _this.props.onDragLeave; + + + _this.setState({ + dragOverNodeKey: '' + }); + + if (onDragLeave) { + onDragLeave({ event: event, node: node }); + } + }; + + _this.onNodeDragEnd = function (event, node) { + var onDragEnd = _this.props.onDragEnd; + + _this.setState({ + dragOverNodeKey: '' + }); + if (onDragEnd) { + onDragEnd({ event: event, node: node }); + } + + _this.dragNode = null; + }; + + _this.onNodeDrop = function (event, node) { + var _this$state = _this.state, + _this$state$dragNodes = _this$state.dragNodesKeys, + dragNodesKeys = _this$state$dragNodes === undefined ? [] : _this$state$dragNodes, + dropPosition = _this$state.dropPosition; + var onDrop = _this.props.onDrop; + var _node$props3 = node.props, + eventKey = _node$props3.eventKey, + pos = _node$props3.pos; + + + _this.setState({ + dragOverNodeKey: '' + }); + + if (dragNodesKeys.indexOf(eventKey) !== -1) { + __WEBPACK_IMPORTED_MODULE_9_warning___default()(false, 'Can not drop to dragNode(include it\'s children node)'); + return; + } + + var posArr = Object(__WEBPACK_IMPORTED_MODULE_13__util__["o" /* posToArr */])(pos); + + var dropResult = { + event: event, + node: node, + dragNode: _this.dragNode, + dragNodesKeys: dragNodesKeys.slice(), + dropPosition: dropPosition + Number(posArr[posArr.length - 1]) + }; + + if (dropPosition !== 0) { + dropResult.dropToGap = true; + } + + if (onDrop) { + onDrop(dropResult); + } + + _this.dragNode = null; + }; + + _this.onNodeClick = function (e, treeNode) { + var onClick = _this.props.onClick; + + if (onClick) { + onClick(e, treeNode); + } + }; + + _this.onNodeDoubleClick = function (e, treeNode) { + var onDoubleClick = _this.props.onDoubleClick; + + if (onDoubleClick) { + onDoubleClick(e, treeNode); + } + }; + + _this.onNodeSelect = function (e, treeNode) { + var selectedKeys = _this.state.selectedKeys; + var keyEntities = _this.state.keyEntities; + var _this$props = _this.props, + onSelect = _this$props.onSelect, + multiple = _this$props.multiple; + var _treeNode$props = treeNode.props, + selected = _treeNode$props.selected, + eventKey = _treeNode$props.eventKey; + + var targetSelected = !selected; + + // Update selected keys + if (!targetSelected) { + selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(selectedKeys, eventKey); + } else if (!multiple) { + selectedKeys = [eventKey]; + } else { + selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(selectedKeys, eventKey); + } + + // [Legacy] Not found related usage in doc or upper libs + var selectedNodes = selectedKeys.map(function (key) { + var entity = keyEntities[key]; + if (!entity) return null; + + return entity.node; + }).filter(function (node) { + return node; + }); + + _this.setUncontrolledState({ selectedKeys: selectedKeys }); + + if (onSelect) { + var eventObj = { + event: 'select', + selected: targetSelected, + node: treeNode, + selectedNodes: selectedNodes, + nativeEvent: e.nativeEvent + }; + onSelect(selectedKeys, eventObj); + } + }; + + _this.onNodeCheck = function (e, treeNode, checked) { + var _this$state2 = _this.state, + keyEntities = _this$state2.keyEntities, + oriCheckedKeys = _this$state2.checkedKeys, + oriHalfCheckedKeys = _this$state2.halfCheckedKeys; + var _this$props2 = _this.props, + checkStrictly = _this$props2.checkStrictly, + onCheck = _this$props2.onCheck; + var eventKey = treeNode.props.eventKey; + + // Prepare trigger arguments + + var checkedObj = void 0; + var eventObj = { + event: 'check', + node: treeNode, + checked: checked, + nativeEvent: e.nativeEvent + }; + + if (checkStrictly) { + var checkedKeys = checked ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(oriCheckedKeys, eventKey) : Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(oriCheckedKeys, eventKey); + var halfCheckedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(oriHalfCheckedKeys, eventKey); + checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys }; + + eventObj.checkedNodes = checkedKeys.map(function (key) { + return keyEntities[key]; + }).filter(function (entity) { + return entity; + }).map(function (entity) { + return entity.node; + }); + + _this.setUncontrolledState({ checkedKeys: checkedKeys }); + } else { + var _conductCheck = Object(__WEBPACK_IMPORTED_MODULE_13__util__["e" /* conductCheck */])([eventKey], checked, keyEntities, { + checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys + }), + _checkedKeys = _conductCheck.checkedKeys, + _halfCheckedKeys = _conductCheck.halfCheckedKeys; + + checkedObj = _checkedKeys; + + // [Legacy] This is used for `rc-tree-select` + eventObj.checkedNodes = []; + eventObj.checkedNodesPositions = []; + eventObj.halfCheckedKeys = _halfCheckedKeys; + + _checkedKeys.forEach(function (key) { + var entity = keyEntities[key]; + if (!entity) return; + + var node = entity.node, + pos = entity.pos; + + + eventObj.checkedNodes.push(node); + eventObj.checkedNodesPositions.push({ node: node, pos: pos }); + }); + + _this.setUncontrolledState({ + checkedKeys: _checkedKeys, + halfCheckedKeys: _halfCheckedKeys + }); + } + + if (onCheck) { + onCheck(checkedObj, eventObj); + } + }; + + _this.onNodeLoad = function (treeNode) { + return new Promise(function (resolve) { + // We need to get the latest state of loading/loaded keys + _this.setState(function (_ref) { + var _ref$loadedKeys = _ref.loadedKeys, + loadedKeys = _ref$loadedKeys === undefined ? [] : _ref$loadedKeys, + _ref$loadingKeys = _ref.loadingKeys, + loadingKeys = _ref$loadingKeys === undefined ? [] : _ref$loadingKeys; + var _this$props3 = _this.props, + loadData = _this$props3.loadData, + onLoad = _this$props3.onLoad; + var eventKey = treeNode.props.eventKey; + + + if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) { + // react 15 will warn if return null + return {}; + } + + // Process load data + var promise = loadData(treeNode); + promise.then(function () { + var newLoadedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(_this.state.loadedKeys, eventKey); + var newLoadingKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(_this.state.loadingKeys, eventKey); + + // onLoad should trigger before internal setState to avoid `loadData` trigger twice. + // https://github.com/ant-design/ant-design/issues/12464 + if (onLoad) { + var eventObj = { + event: 'load', + node: treeNode + }; + onLoad(newLoadedKeys, eventObj); + } + + _this.setUncontrolledState({ + loadedKeys: newLoadedKeys + }); + _this.setState({ + loadingKeys: newLoadingKeys + }); + + resolve(); + }); + + return { + loadingKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(loadingKeys, eventKey) + }; + }); + }); + }; + + _this.onNodeExpand = function (e, treeNode) { + var expandedKeys = _this.state.expandedKeys; + var _this$props4 = _this.props, + onExpand = _this$props4.onExpand, + loadData = _this$props4.loadData; + var _treeNode$props2 = treeNode.props, + eventKey = _treeNode$props2.eventKey, + expanded = _treeNode$props2.expanded; + + // Update selected keys + + var index = expandedKeys.indexOf(eventKey); + var targetExpanded = !expanded; + + __WEBPACK_IMPORTED_MODULE_9_warning___default()(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check'); + + if (targetExpanded) { + expandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(expandedKeys, eventKey); + } else { + expandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(expandedKeys, eventKey); + } + + _this.setUncontrolledState({ expandedKeys: expandedKeys }); + + if (onExpand) { + onExpand(expandedKeys, { + node: treeNode, + expanded: targetExpanded, + nativeEvent: e.nativeEvent + }); + } + + // Async Load data + if (targetExpanded && loadData) { + var loadPromise = _this.onNodeLoad(treeNode); + return loadPromise ? loadPromise.then(function () { + // [Legacy] Refresh logic + _this.setUncontrolledState({ expandedKeys: expandedKeys }); + }) : null; + } + + return null; + }; + + _this.onNodeMouseEnter = function (event, node) { + var onMouseEnter = _this.props.onMouseEnter; + + if (onMouseEnter) { + onMouseEnter({ event: event, node: node }); + } + }; + + _this.onNodeMouseLeave = function (event, node) { + var onMouseLeave = _this.props.onMouseLeave; + + if (onMouseLeave) { + onMouseLeave({ event: event, node: node }); + } + }; + + _this.onNodeContextMenu = function (event, node) { + var onRightClick = _this.props.onRightClick; + + if (onRightClick) { + event.preventDefault(); + onRightClick({ event: event, node: node }); + } + }; + + _this.setUncontrolledState = function (state) { + var needSync = false; + var newState = {}; + + Object.keys(state).forEach(function (name) { + if (name in _this.props) return; + + needSync = true; + newState[name] = state[name]; + }); + + if (needSync) { + _this.setState(newState); + } + }; + + _this.registerTreeNode = function (key, node) { + if (node) { + _this.domTreeNodes[key] = node; + } else { + delete _this.domTreeNodes[key]; + } + }; + + _this.isKeyChecked = function (key) { + var _this$state$checkedKe = _this.state.checkedKeys, + checkedKeys = _this$state$checkedKe === undefined ? [] : _this$state$checkedKe; + + return checkedKeys.indexOf(key) !== -1; + }; + + _this.renderTreeNode = function (child, index) { + var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + var _this$state3 = _this.state, + keyEntities = _this$state3.keyEntities, + _this$state3$expanded = _this$state3.expandedKeys, + expandedKeys = _this$state3$expanded === undefined ? [] : _this$state3$expanded, + _this$state3$selected = _this$state3.selectedKeys, + selectedKeys = _this$state3$selected === undefined ? [] : _this$state3$selected, + _this$state3$halfChec = _this$state3.halfCheckedKeys, + halfCheckedKeys = _this$state3$halfChec === undefined ? [] : _this$state3$halfChec, + _this$state3$loadedKe = _this$state3.loadedKeys, + loadedKeys = _this$state3$loadedKe === undefined ? [] : _this$state3$loadedKe, + _this$state3$loadingK = _this$state3.loadingKeys, + loadingKeys = _this$state3$loadingK === undefined ? [] : _this$state3$loadingK, + dragOverNodeKey = _this$state3.dragOverNodeKey, + dropPosition = _this$state3.dropPosition; + + var pos = Object(__WEBPACK_IMPORTED_MODULE_13__util__["l" /* getPosition */])(level, index); + var key = child.key || pos; + + if (!keyEntities[key]) { + Object(__WEBPACK_IMPORTED_MODULE_13__util__["p" /* warnOnlyTreeNode */])(); + return null; + } + + return __WEBPACK_IMPORTED_MODULE_6_react___default.a.cloneElement(child, { + key: key, + eventKey: key, + expanded: expandedKeys.indexOf(key) !== -1, + selected: selectedKeys.indexOf(key) !== -1, + loaded: loadedKeys.indexOf(key) !== -1, + loading: loadingKeys.indexOf(key) !== -1, + checked: _this.isKeyChecked(key), + halfChecked: halfCheckedKeys.indexOf(key) !== -1, + pos: pos, + + // [Legacy] Drag props + dragOver: dragOverNodeKey === key && dropPosition === 0, + dragOverGapTop: dragOverNodeKey === key && dropPosition === -1, + dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1 + }); + }; + + _this.state = { + // TODO: Remove this eslint + posEntities: {}, // eslint-disable-line react/no-unused-state + keyEntities: {}, + + selectedKeys: [], + checkedKeys: [], + halfCheckedKeys: [], + loadedKeys: [], + loadingKeys: [], + + treeNode: [] + }; + + // Internal usage for `rc-tree-select`, we don't promise it will not change. + _this.domTreeNodes = {}; + return _this; + } + + __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(Tree, [{ + key: 'getChildContext', + value: function getChildContext() { + var _props = this.props, + prefixCls = _props.prefixCls, + selectable = _props.selectable, + showIcon = _props.showIcon, + icon = _props.icon, + draggable = _props.draggable, + checkable = _props.checkable, + checkStrictly = _props.checkStrictly, + disabled = _props.disabled, + loadData = _props.loadData, + filterTreeNode = _props.filterTreeNode, + openTransitionName = _props.openTransitionName, + openAnimation = _props.openAnimation, + switcherIcon = _props.switcherIcon; + + + return { + rcTree: { + // root: this, + + prefixCls: prefixCls, + selectable: selectable, + showIcon: showIcon, + icon: icon, + switcherIcon: switcherIcon, + draggable: draggable, + checkable: checkable, + checkStrictly: checkStrictly, + disabled: disabled, + openTransitionName: openTransitionName, + openAnimation: openAnimation, + + loadData: loadData, + filterTreeNode: filterTreeNode, + renderTreeNode: this.renderTreeNode, + isKeyChecked: this.isKeyChecked, + + onNodeClick: this.onNodeClick, + onNodeDoubleClick: this.onNodeDoubleClick, + onNodeExpand: this.onNodeExpand, + onNodeSelect: this.onNodeSelect, + onNodeCheck: this.onNodeCheck, + onNodeLoad: this.onNodeLoad, + onNodeMouseEnter: this.onNodeMouseEnter, + onNodeMouseLeave: this.onNodeMouseLeave, + onNodeContextMenu: this.onNodeContextMenu, + onNodeDragStart: this.onNodeDragStart, + onNodeDragEnter: this.onNodeDragEnter, + onNodeDragOver: this.onNodeDragOver, + onNodeDragLeave: this.onNodeDragLeave, + onNodeDragEnd: this.onNodeDragEnd, + onNodeDrop: this.onNodeDrop, + + registerTreeNode: this.registerTreeNode + } + }; + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var treeNode = this.state.treeNode; + var _props2 = this.props, + prefixCls = _props2.prefixCls, + className = _props2.className, + focusable = _props2.focusable, + style = _props2.style, + showLine = _props2.showLine, + _props2$tabIndex = _props2.tabIndex, + tabIndex = _props2$tabIndex === undefined ? 0 : _props2$tabIndex; + + var domProps = Object(__WEBPACK_IMPORTED_MODULE_13__util__["i" /* getDataAndAria */])(this.props); + + if (focusable) { + domProps.tabIndex = tabIndex; + domProps.onKeyDown = this.onKeyDown; + } + + return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement( + 'ul', + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, domProps, { + className: __WEBPACK_IMPORTED_MODULE_8_classnames___default()(prefixCls, className, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, prefixCls + '-show-line', showLine)), + style: style, + role: 'tree', + unselectable: 'on' + }), + Object(__WEBPACK_IMPORTED_MODULE_13__util__["m" /* mapChildren */])(treeNode, function (node, index) { + return _this2.renderTreeNode(node, index); + }) + ); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(props, prevState) { + var prevProps = prevState.prevProps; + + var newState = { + prevProps: props + }; + + function needSync(name) { + return !prevProps && name in props || prevProps && prevProps[name] !== props[name]; + } + + // ================== Tree Node ================== + var treeNode = null; + + // Check if `treeData` or `children` changed and save into the state. + if (needSync('treeData')) { + treeNode = Object(__WEBPACK_IMPORTED_MODULE_13__util__["g" /* convertDataToTree */])(props.treeData); + } else if (needSync('children')) { + treeNode = Object(__WEBPACK_IMPORTED_MODULE_10_rc_util_es_Children_toArray__["a" /* default */])(props.children); + } + + // Tree support filter function which will break the tree structure in the vdm. + // We cache the treeNodes in state so that we can return the treeNode in event trigger. + if (treeNode) { + newState.treeNode = treeNode; + + // Calculate the entities data for quick match + var entitiesMap = Object(__WEBPACK_IMPORTED_MODULE_13__util__["h" /* convertTreeToEntities */])(treeNode); + newState.posEntities = entitiesMap.posEntities; + newState.keyEntities = entitiesMap.keyEntities; + } + + var keyEntities = newState.keyEntities || prevState.keyEntities; + + // ================ expandedKeys ================= + if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) { + newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["f" /* conductExpandParent */])(props.expandedKeys, keyEntities) : props.expandedKeys; + } else if (!prevProps && props.defaultExpandAll) { + newState.expandedKeys = Object.keys(keyEntities); + } else if (!prevProps && props.defaultExpandedKeys) { + newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["f" /* conductExpandParent */])(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys; + } + + // ================ selectedKeys ================= + if (props.selectable) { + if (needSync('selectedKeys')) { + newState.selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["d" /* calcSelectedKeys */])(props.selectedKeys, props); + } else if (!prevProps && props.defaultSelectedKeys) { + newState.selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["d" /* calcSelectedKeys */])(props.defaultSelectedKeys, props); + } + } + + // ================= checkedKeys ================= + if (props.checkable) { + var checkedKeyEntity = void 0; + + if (needSync('checkedKeys')) { + checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.checkedKeys) || {}; + } else if (!prevProps && props.defaultCheckedKeys) { + checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.defaultCheckedKeys) || {}; + } else if (treeNode) { + // If treeNode changed, we also need check it + checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.checkedKeys) || { + checkedKeys: prevState.checkedKeys, + halfCheckedKeys: prevState.halfCheckedKeys + }; + } + + if (checkedKeyEntity) { + var _checkedKeyEntity = checkedKeyEntity, + _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys, + checkedKeys = _checkedKeyEntity$che === undefined ? [] : _checkedKeyEntity$che, + _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys, + halfCheckedKeys = _checkedKeyEntity$hal === undefined ? [] : _checkedKeyEntity$hal; + + + if (!props.checkStrictly) { + var conductKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["e" /* conductCheck */])(checkedKeys, true, keyEntities); + checkedKeys = conductKeys.checkedKeys; + halfCheckedKeys = conductKeys.halfCheckedKeys; + } + + newState.checkedKeys = checkedKeys; + newState.halfCheckedKeys = halfCheckedKeys; + } + } + // ================= loadedKeys ================== + if (needSync('loadedKeys')) { + newState.loadedKeys = props.loadedKeys; + } + + return newState; + } + + /** + * [Legacy] Select handler is less small than node, + * so that this will trigger when drag enter node or select handler. + * This is a little tricky if customize css without padding. + * Better for use mouse move event to refresh drag state. + * But let's just keep it to avoid event trigger logic change. + */ + + + /** + * Only update the value which is not in props + */ + + + /** + * [Legacy] Original logic use `key` as tracking clue. + * We have to use `cloneElement` to pass `key`. + */ + + }]); + + return Tree; +}(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Component); + +Tree.propTypes = { + prefixCls: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, + className: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, + style: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object, + tabIndex: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number]), + children: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.any, + treeData: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.array, // Generate treeNode by children + showLine: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + showIcon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + icon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]), + focusable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + selectable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + disabled: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + multiple: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + checkable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node]), + checkStrictly: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + draggable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + defaultExpandParent: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + autoExpandParent: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + defaultExpandAll: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, + defaultExpandedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + expandedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + defaultCheckedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + checkedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number])), __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), + defaultSelectedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + selectedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + onClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDoubleClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onExpand: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onCheck: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onSelect: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onLoad: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + loadData: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + loadedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), + onMouseEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onMouseLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onRightClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDragStart: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDragEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDragOver: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDragLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDragEnd: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + onDrop: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + filterTreeNode: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, + openTransitionName: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, + openAnimation: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), + switcherIcon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]) +}; +Tree.childContextTypes = __WEBPACK_IMPORTED_MODULE_12__contextTypes__["b" /* treeContextTypes */]; +Tree.defaultProps = { + prefixCls: 'rc-tree', + showLine: false, + showIcon: true, + selectable: true, + multiple: false, + checkable: false, + disabled: false, + checkStrictly: false, + draggable: false, + defaultExpandParent: true, + autoExpandParent: false, + defaultExpandAll: false, + defaultExpandedKeys: [], + defaultCheckedKeys: [], + defaultSelectedKeys: [] +}; + + +Object(__WEBPACK_IMPORTED_MODULE_11_react_lifecycles_compat__["a" /* polyfill */])(Tree); + +/* harmony default export */ __webpack_exports__["a"] = (Tree); + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(73), __esModule: true }; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(74); +module.exports = __webpack_require__(0).Object.assign; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.1 Object.assign(target, source) +var $export = __webpack_require__(5); + +$export($export.S + $export.F, 'Object', { assign: __webpack_require__(76) }); + + +/***/ }), +/* 75 */ +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.2.1 Object.assign(target, source, ...) +var getKeys = __webpack_require__(24); +var gOPS = __webpack_require__(37); +var pIE = __webpack_require__(27); +var toObject = __webpack_require__(38); +var IObject = __webpack_require__(49); +var $assign = Object.assign; + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = !$assign || __webpack_require__(15)(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + } return T; +} : $assign; + + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__(12); +var toLength = __webpack_require__(50); +var toAbsoluteIndex = __webpack_require__(78); +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(33); +var max = Math.max; +var min = Math.min; +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(80); +var $Object = __webpack_require__(0).Object; +module.exports = function defineProperty(it, key, desc) { + return $Object.defineProperty(it, key, desc); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(5); +// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) +$export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperty: __webpack_require__(3).f }); + + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(82), __esModule: true }; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(53); +__webpack_require__(88); +module.exports = __webpack_require__(42).f('iterator'); + + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(33); +var defined = __webpack_require__(32); +// true -> String#at +// false -> String#codePointAt +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var create = __webpack_require__(40); +var descriptor = __webpack_require__(16); +var setToStringTag = __webpack_require__(41); +var IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +__webpack_require__(9)(IteratorPrototype, __webpack_require__(1)('iterator'), function () { return this; }); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(3); +var anObject = __webpack_require__(10); +var getKeys = __webpack_require__(24); + +module.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); + return O; +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +var document = __webpack_require__(2).document; +module.exports = document && document.documentElement; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) +var has = __webpack_require__(7); +var toObject = __webpack_require__(38); +var IE_PROTO = __webpack_require__(34)('IE_PROTO'); +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(89); +var global = __webpack_require__(2); +var hide = __webpack_require__(9); +var Iterators = __webpack_require__(20); +var TO_STRING_TAG = __webpack_require__(1)('toStringTag'); + +var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + + 'TextTrackList,TouchList').split(','); + +for (var i = 0; i < DOMIterables.length; i++) { + var NAME = DOMIterables[i]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = Iterators.Array; +} + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var addToUnscopables = __webpack_require__(90); +var step = __webpack_require__(91); +var Iterators = __webpack_require__(20); +var toIObject = __webpack_require__(12); + +// 22.1.3.4 Array.prototype.entries() +// 22.1.3.13 Array.prototype.keys() +// 22.1.3.29 Array.prototype.values() +// 22.1.3.30 Array.prototype[@@iterator]() +module.exports = __webpack_require__(54)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind +// 22.1.5.2.1 %ArrayIteratorPrototype%.next() +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) +Iterators.Arguments = Iterators.Array; + +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + + +/***/ }), +/* 90 */ +/***/ (function(module, exports) { + +module.exports = function () { /* empty */ }; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports) { + +module.exports = function (done, value) { + return { value: value, done: !!done }; +}; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(93), __esModule: true }; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(94); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +module.exports = __webpack_require__(0).Symbol; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// ECMAScript 6 symbols shim +var global = __webpack_require__(2); +var has = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); +var $export = __webpack_require__(5); +var redefine = __webpack_require__(55); +var META = __webpack_require__(95).KEY; +var $fails = __webpack_require__(15); +var shared = __webpack_require__(35); +var setToStringTag = __webpack_require__(41); +var uid = __webpack_require__(26); +var wks = __webpack_require__(1); +var wksExt = __webpack_require__(42); +var wksDefine = __webpack_require__(43); +var enumKeys = __webpack_require__(96); +var isArray = __webpack_require__(97); +var anObject = __webpack_require__(10); +var isObject = __webpack_require__(11); +var toIObject = __webpack_require__(12); +var toPrimitive = __webpack_require__(30); +var createDesc = __webpack_require__(16); +var _create = __webpack_require__(40); +var gOPNExt = __webpack_require__(98); +var $GOPD = __webpack_require__(57); +var $DP = __webpack_require__(3); +var $keys = __webpack_require__(24); +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; +var _stringify = $JSON && $JSON.stringify; +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function'; +var QObject = global.QObject; +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function () { return dP(this, 'a', { value: 7 }).a; } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function (tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); +}; +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); + return it; +}; +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } return result; +}; +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } return result; +}; + +// 19.4.1.1 Symbol([description]) +if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(56).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(27).f = $propertyIsEnumerable; + __webpack_require__(37).f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__(25)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); + +for (var es6Symbols = ( + // 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 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' +).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function (key) { + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; + }, + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } +}); + +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// 24.3.2 JSON.stringify(value [, replacer [, space]]) +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); + +// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(9)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); +// 19.4.3.5 Symbol.prototype[@@toStringTag] +setToStringTag($Symbol, 'Symbol'); +// 20.2.1.9 Math[@@toStringTag] +setToStringTag(Math, 'Math', true); +// 24.3.3 JSON[@@toStringTag] +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +var META = __webpack_require__(26)('meta'); +var isObject = __webpack_require__(11); +var has = __webpack_require__(7); +var setDesc = __webpack_require__(3).f; +var id = 0; +var isExtensible = Object.isExtensible || function () { + return true; +}; +var FREEZE = !__webpack_require__(15)(function () { + return isExtensible(Object.preventExtensions({})); +}); +var setMeta = function (it) { + setDesc(it, META, { value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + } }); +}; +var fastKey = function (it, create) { + // return primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; +}; +var getWeak = function (it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; +}; +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +// all enumerable object keys, includes symbols +var getKeys = __webpack_require__(24); +var gOPS = __webpack_require__(37); +var pIE = __webpack_require__(27); +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); + } return result; +}; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.2 IsArray(argument) +var cof = __webpack_require__(31); +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = __webpack_require__(12); +var gOPN = __webpack_require__(56).f; +var toString = {}.toString; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + + +/***/ }), +/* 99 */ +/***/ (function(module, exports) { + + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(43)('asyncIterator'); + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(43)('observable'); + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(103), __esModule: true }; + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(104); +module.exports = __webpack_require__(0).Object.setPrototypeOf; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.19 Object.setPrototypeOf(O, proto) +var $export = __webpack_require__(5); +$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(105).set }); + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var isObject = __webpack_require__(11); +var anObject = __webpack_require__(10); +var check = function (O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__(29)(Function.call, __webpack_require__(57).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(107), __esModule: true }; + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(108); +var $Object = __webpack_require__(0).Object; +module.exports = function create(P, D) { + return $Object.create(P, D); +}; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(5); +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +$export($export.S, 'Object', { create: __webpack_require__(40) }); + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** @license React v16.8.6 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +Object.defineProperty(exports,"__esModule",{value:!0}); +var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"): +60115,r=b?Symbol.for("react.lazy"):60116;function t(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n; +exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k}; +exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f}; +exports.isSuspense=function(a){return t(a)===p}; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.8.6 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +// 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_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + +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_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); +} + +/** + * 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('`lowPriorityWarning(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; + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + default: + return $$typeof; + } + } + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} + +// AsyncMode is deprecated along with isAsyncMode +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; + +var hasWarnedAboutDeprecatedIsAsyncMode = false; + +// AsyncMode should be deprecated +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.typeOf = typeOf; +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isValidElementType = isValidElementType; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; + })(); +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * 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. + */ + + + +var ReactIs = __webpack_require__(58); +var assign = __webpack_require__(112); + +var ReactPropTypesSecret = __webpack_require__(44); +var checkPropTypes = __webpack_require__(113); + +var has = Function.call.bind(Object.prototype.hasOwnProperty); +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (process.env.NODE_ENV !== 'production') { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * 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. + */ + + + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + var ReactPropTypesSecret = __webpack_require__(44); + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (process.env.NODE_ENV !== 'production') { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * 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. + */ + + + +var ReactPropTypesSecret = __webpack_require__(44); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Animate__ = __webpack_require__(116); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AnimateChild__ = __webpack_require__(64); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CSSMotion__ = __webpack_require__(133); +/* unused harmony reexport AnimateChild */ +/* unused harmony reexport CSSMotion */ + + + + + + +/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__Animate__["a" /* default */]); + +/***/ }), +/* 116 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export genAnimate */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(21); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_lifecycles_compat__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning__ = __webpack_require__(117); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__AnimateChild__ = __webpack_require__(64); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util__ = __webpack_require__(45); + + + + + + + + + + + + + + +var defaultKey = 'rc_animate_' + Date.now(); +var clonePropList = ['children']; + +/** + * Default use `AnimateChild` as component. + * Here can also pass customize `ChildComponent` for test usage. + */ +function genAnimate(ChildComponent) { + var Animate = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Animate, _React$Component); + + function Animate() { + var _ref; + + var _temp, _this, _ret; + + __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Animate); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (_ref = Animate.__proto__ || Object.getPrototypeOf(Animate)).call.apply(_ref, [this].concat(args))), _this), _this.state = { + appeared: true, + mergedChildren: [] + }, _this.onChildLeaved = function (key) { + // Remove child which not exist anymore + if (!_this.hasChild(key)) { + var mergedChildren = _this.state.mergedChildren; + + _this.setState({ + mergedChildren: mergedChildren.filter(function (node) { + return node.key !== key; + }) + }); + } + }, _this.hasChild = function (key) { + var children = _this.props.children; + + + return Object(__WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__["a" /* default */])(children).some(function (node) { + return node && node.key === key; + }); + }, _temp), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret); + } + // [Legacy] Not sure usage + // commit: https://github.com/react-component/animate/commit/0a1cbfd647407498b10a8c6602a2dea80b42e324 + // eslint-disable-line + + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(Animate, [{ + key: 'componentDidMount', + value: function componentDidMount() { + // No need to re-render + this.state.appeared = false; + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _state = this.state, + appeared = _state.appeared, + mergedChildren = _state.mergedChildren; + var _props = this.props, + Component = _props.component, + componentProps = _props.componentProps, + className = _props.className, + style = _props.style, + showProp = _props.showProp; + + + var $children = mergedChildren.map(function (node) { + if (mergedChildren.length > 1 && !node.key) { + __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning___default()(false, 'must set key for children'); + return null; + } + + var show = true; + + if (!_this2.hasChild(node.key)) { + show = false; + } else if (showProp) { + show = node.props[showProp]; + } + + var key = node.key || defaultKey; + + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement( + ChildComponent, + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, _this2.props, { + appeared: appeared, + show: show, + className: node.props.className, + style: node.props.style, + key: key, + + animateKey: node.key // Keep trans origin key + , onChildLeaved: _this2.onChildLeaved + }), + node + ); + }); + + // Wrap with component + if (Component) { + var passedProps = this.props; + if (typeof Component === 'string') { + passedProps = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ + className: className, + style: style + }, componentProps); + } + + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement( + Component, + passedProps, + $children + ); + } + + return $children[0] || null; + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, prevState) { + var _prevState$prevProps = prevState.prevProps, + prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps; + + var newState = { + prevProps: Object(__WEBPACK_IMPORTED_MODULE_11__util__["b" /* cloneProps */])(nextProps, clonePropList) + }; + var showProp = nextProps.showProp; + + + function processState(propName, updater) { + if (prevProps[propName] !== nextProps[propName]) { + updater(nextProps[propName]); + return true; + } + return false; + } + + processState('children', function (children) { + var currentChildren = Object(__WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__["a" /* default */])(children).filter(function (node) { + return node; + }); + var prevChildren = prevState.mergedChildren.filter(function (node) { + // Remove prev child if not show anymore + if (currentChildren.every(function (_ref2) { + var key = _ref2.key; + return key !== node.key; + }) && showProp && !node.props[showProp]) { + return false; + } + return true; + }); + + // Merge prev children to keep the animation + newState.mergedChildren = Object(__WEBPACK_IMPORTED_MODULE_11__util__["e" /* mergeChildren */])(prevChildren, currentChildren); + }); + + return newState; + } + }]); + + return Animate; + }(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); + + Animate.isAnimate = true; + Animate.propTypes = { + component: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any, + componentProps: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, + animation: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, + transitionName: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object]), + transitionEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + transitionAppear: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + exclusive: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + transitionLeave: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + onEnd: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + onEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + onLeave: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + onAppear: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + showProp: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, + children: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.node, + style: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, + className: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string + }; + Animate.defaultProps = { + animation: {}, + component: 'span', + componentProps: {}, + transitionEnter: true, + transitionLeave: true, + transitionAppear: false + }; + + + Object(__WEBPACK_IMPORTED_MODULE_7_react_lifecycles_compat__["a" /* polyfill */])(Animate); + + return Animate; +} + +/* harmony default export */ __webpack_exports__["a"] = (genAnimate(__WEBPACK_IMPORTED_MODULE_10__AnimateChild__["a" /* default */])); + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * 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. + * + */ + + + +var emptyFunction = __webpack_require__(118); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if (process.env.NODE_ENV !== 'production') { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +module.exports = warning; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * 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 makeEmptyFunction(arg) { + return function () { + return arg; + }; +} + +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ +var emptyFunction = function emptyFunction() {}; + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); +emptyFunction.thatReturnsThis = function () { + return this; +}; +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _from = __webpack_require__(120); + +var _from2 = _interopRequireDefault(_from); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (arr) { + return Array.isArray(arr) ? arr : (0, _from2.default)(arr); +}; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(121), __esModule: true }; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(53); +__webpack_require__(122); +module.exports = __webpack_require__(0).Array.from; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var ctx = __webpack_require__(29); +var $export = __webpack_require__(5); +var toObject = __webpack_require__(38); +var call = __webpack_require__(123); +var isArrayIter = __webpack_require__(124); +var toLength = __webpack_require__(50); +var createProperty = __webpack_require__(125); +var getIterFn = __webpack_require__(126); + +$export($export.S + $export.F * !__webpack_require__(128)(function (iter) { Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + } +}); + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + +// call something on iterator step with safe closing on error +var anObject = __webpack_require__(10); +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +// check on default Array iterator +var Iterators = __webpack_require__(20); +var ITERATOR = __webpack_require__(1)('iterator'); +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $defineProperty = __webpack_require__(3); +var createDesc = __webpack_require__(16); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; +}; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(127); +var ITERATOR = __webpack_require__(1)('iterator'); +var Iterators = __webpack_require__(20); +module.exports = __webpack_require__(0).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = __webpack_require__(31); +var TAG = __webpack_require__(1)('toStringTag'); +// ES3 wrong here +var ARG = cof(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (e) { /* empty */ } +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +var ITERATOR = __webpack_require__(1)('iterator'); +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function () { SAFE_CLOSING = true; }; + // eslint-disable-next-line no-throw-literal + Array.from(riter, function () { throw 2; }); +} catch (e) { /* empty */ } + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + try { + var arr = [7]; + var iter = arr[ITERATOR](); + iter.next = function () { return { done: safe = true }; }; + arr[ITERATOR] = function () { return iter; }; + exec(arr); + } catch (e) { /* empty */ } + return safe; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Module dependencies. + */ + +try { + var index = __webpack_require__(66); +} catch (err) { + var index = __webpack_require__(66); +} + +/** + * Whitespace regexp. + */ + +var re = /\s+/; + +/** + * toString reference. + */ + +var toString = Object.prototype.toString; + +/** + * Wrap `el` in a `ClassList`. + * + * @param {Element} el + * @return {ClassList} + * @api public + */ + +module.exports = function(el){ + return new ClassList(el); +}; + +/** + * Initialize a new ClassList for `el`. + * + * @param {Element} el + * @api private + */ + +function ClassList(el) { + if (!el || !el.nodeType) { + throw new Error('A DOM element reference is required'); + } + this.el = el; + this.list = el.classList; +} + +/** + * Add class `name` if not already present. + * + * @param {String} name + * @return {ClassList} + * @api public + */ + +ClassList.prototype.add = function(name){ + // classList + if (this.list) { + this.list.add(name); + return this; + } + + // fallback + var arr = this.array(); + var i = index(arr, name); + if (!~i) arr.push(name); + this.el.className = arr.join(' '); + return this; +}; + +/** + * Remove class `name` when present, or + * pass a regular expression to remove + * any which match. + * + * @param {String|RegExp} name + * @return {ClassList} + * @api public + */ + +ClassList.prototype.remove = function(name){ + if ('[object RegExp]' == toString.call(name)) { + return this.removeMatching(name); + } + + // classList + if (this.list) { + this.list.remove(name); + return this; + } + + // fallback + var arr = this.array(); + var i = index(arr, name); + if (~i) arr.splice(i, 1); + this.el.className = arr.join(' '); + return this; +}; + +/** + * Remove all classes matching `re`. + * + * @param {RegExp} re + * @return {ClassList} + * @api private + */ + +ClassList.prototype.removeMatching = function(re){ + var arr = this.array(); + for (var i = 0; i < arr.length; i++) { + if (re.test(arr[i])) { + this.remove(arr[i]); + } + } + return this; +}; + +/** + * Toggle class `name`, can force state via `force`. + * + * For browsers that support classList, but do not support `force` yet, + * the mistake will be detected and corrected. + * + * @param {String} name + * @param {Boolean} force + * @return {ClassList} + * @api public + */ + +ClassList.prototype.toggle = function(name, force){ + // classList + if (this.list) { + if ("undefined" !== typeof force) { + if (force !== this.list.toggle(name, force)) { + this.list.toggle(name); // toggle again to correct + } + } else { + this.list.toggle(name); + } + return this; + } + + // fallback + if ("undefined" !== typeof force) { + if (!force) { + this.remove(name); + } else { + this.add(name); + } + } else { + if (this.has(name)) { + this.remove(name); + } else { + this.add(name); + } + } + + return this; +}; + +/** + * Return an array of classes. + * + * @return {Array} + * @api public + */ + +ClassList.prototype.array = function(){ + var className = this.el.getAttribute('class') || ''; + var str = className.replace(/^\s+|\s+$/g, ''); + var arr = str.split(re); + if ('' === arr[0]) arr.shift(); + return arr; +}; + +/** + * Check if class `name` is present. + * + * @param {String} name + * @return {ClassList} + * @api public + */ + +ClassList.prototype.has = +ClassList.prototype.contains = function(name){ + return this.list + ? this.list.contains(name) + : !! ~index(this.array(), name); +}; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2 +(function() { + var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; + + if ((typeof performance !== "undefined" && performance !== null) && performance.now) { + module.exports = function() { + return performance.now(); + }; + } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { + module.exports = function() { + return (getNanoSeconds() - nodeLoadTime) / 1e6; + }; + hrtime = process.hrtime; + getNanoSeconds = function() { + var hr; + hr = hrtime(); + return hr[0] * 1e9 + hr[1]; + }; + moduleLoadTime = getNanoSeconds(); + upTime = process.uptime() * 1e9; + nodeLoadTime = moduleLoadTime - upTime; + } else if (Date.now) { + module.exports = function() { + return Date.now() - loadTime; + }; + loadTime = Date.now(); + } else { + module.exports = function() { + return new Date().getTime() - loadTime; + }; + loadTime = new Date().getTime(); + } + +}).call(this); + +//# sourceMappingURL=performance-now.js.map + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * 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. + * + */ + + + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +/** + * Simple, lightweight module assisting with the detection and context of + * Worker. Helps avoid circular dependencies and allows code to reason about + * whether or not they are in a Worker, even if they never include the main + * `ReactWorker` dependency. + */ +var ExecutionEnvironment = { + + canUseDOM: canUseDOM, + + canUseWorkers: typeof Worker !== 'undefined', + + canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), + + canUseViewport: canUseDOM && !!window.screen, + + isInWorker: !canUseDOM // For now, this is true - might change in the future. + +}; + +module.exports = ExecutionEnvironment; + +/***/ }), +/* 133 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export genCSSMotion */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(21); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(65); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_lifecycles_compat__ = __webpack_require__(23); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf__ = __webpack_require__(67); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_raf__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util__ = __webpack_require__(45); + + + + + + + + + + + + + + +var STATUS_NONE = 'none'; +var STATUS_APPEAR = 'appear'; +var STATUS_ENTER = 'enter'; +var STATUS_LEAVE = 'leave'; + +/** + * `transitionSupport` is used for none transition test case. + * Default we use browser transition event support check. + */ +function genCSSMotion(transitionSupport) { + var CSSMotion = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(CSSMotion, _React$Component); + + function CSSMotion() { + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, CSSMotion); + + var _this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); + + _this.onDomUpdate = function () { + var _this$state = _this.state, + status = _this$state.status, + newStatus = _this$state.newStatus; + var _this$props = _this.props, + onAppearStart = _this$props.onAppearStart, + onEnterStart = _this$props.onEnterStart, + onLeaveStart = _this$props.onLeaveStart, + onAppearActive = _this$props.onAppearActive, + onEnterActive = _this$props.onEnterActive, + onLeaveActive = _this$props.onLeaveActive, + motionAppear = _this$props.motionAppear, + motionEnter = _this$props.motionEnter, + motionLeave = _this$props.motionLeave; + + + if (!transitionSupport) { + return; + } + + // Event injection + var $ele = __WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.findDOMNode(_this); + if (_this.$ele !== $ele) { + _this.removeEventListener(_this.$ele); + _this.addEventListener($ele); + _this.$ele = $ele; + } + + // Init status + if (newStatus && status === STATUS_APPEAR && motionAppear) { + _this.updateStatus(onAppearStart, null, null, function () { + _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); + }); + } else if (newStatus && status === STATUS_ENTER && motionEnter) { + _this.updateStatus(onEnterStart, null, null, function () { + _this.updateActiveStatus(onEnterActive, STATUS_ENTER); + }); + } else if (newStatus && status === STATUS_LEAVE && motionLeave) { + _this.updateStatus(onLeaveStart, null, null, function () { + _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); + }); + } + }; + + _this.onMotionEnd = function (event) { + var _this$state2 = _this.state, + status = _this$state2.status, + statusActive = _this$state2.statusActive; + var _this$props2 = _this.props, + onAppearEnd = _this$props2.onAppearEnd, + onEnterEnd = _this$props2.onEnterEnd, + onLeaveEnd = _this$props2.onLeaveEnd; + + if (status === STATUS_APPEAR && statusActive) { + _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_ENTER && statusActive) { + _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); + } else if (status === STATUS_LEAVE && statusActive) { + _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); + } + }; + + _this.addEventListener = function ($ele) { + if (!$ele) return; + + $ele.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); + $ele.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); + }; + + _this.removeEventListener = function ($ele) { + if (!$ele) return; + + $ele.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); + $ele.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); + }; + + _this.updateStatus = function (styleFunc, additionalState, event, callback) { + var statusStyle = styleFunc ? styleFunc(__WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.findDOMNode(_this), event) : null; + + if (statusStyle === false || _this._destroyed) return; + + var nextStep = void 0; + if (callback) { + nextStep = function nextStep() { + _this.nextFrame(callback); + }; + } + + _this.setState(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ + statusStyle: typeof statusStyle === 'object' ? statusStyle : null, + newStatus: false + }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` + }; + + _this.updateActiveStatus = function (styleFunc, currentStatus) { + // `setState` use `postMessage` to trigger at the end of frame. + // Let's use requestAnimationFrame to update new state in next frame. + _this.nextFrame(function () { + var status = _this.state.status; + + if (status !== currentStatus) return; + + _this.updateStatus(styleFunc, { statusActive: true }); + }); + }; + + _this.nextFrame = function (func) { + _this.cancelNextFrame(); + _this.raf = __WEBPACK_IMPORTED_MODULE_11_raf___default()(func); + }; + + _this.cancelNextFrame = function () { + if (_this.raf) { + __WEBPACK_IMPORTED_MODULE_11_raf___default.a.cancel(_this.raf); + _this.raf = null; + } + }; + + _this.state = { + status: STATUS_NONE, + statusActive: false, + newStatus: false, + statusStyle: null + }; + _this.$ele = null; + _this.raf = null; + return _this; + } + + __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(CSSMotion, [{ + key: 'componentDidMount', + value: function componentDidMount() { + this.onDomUpdate(); + } + }, { + key: 'componentDidUpdate', + value: function componentDidUpdate() { + this.onDomUpdate(); + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this._destroyed = true; + this.removeEventListener(this.$ele); + this.cancelNextFrame(); + } + }, { + key: 'render', + value: function render() { + var _classNames; + + var _state = this.state, + status = _state.status, + statusActive = _state.statusActive, + statusStyle = _state.statusStyle; + var _props = this.props, + children = _props.children, + motionName = _props.motionName, + visible = _props.visible; + + + if (!children) return null; + + if (status === STATUS_NONE || !transitionSupport) { + return visible ? children({}) : null; + } + + return children({ + className: __WEBPACK_IMPORTED_MODULE_10_classnames___default()((_classNames = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(motionName, status), status !== STATUS_NONE), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(motionName, status + '-active'), status !== STATUS_NONE && statusActive), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, motionName, typeof motionName === 'string'), _classNames)), + style: statusStyle + }); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(props, _ref) { + var prevProps = _ref.prevProps; + + if (!transitionSupport) return {}; + + var visible = props.visible, + motionAppear = props.motionAppear, + motionEnter = props.motionEnter, + motionLeave = props.motionLeave, + motionLeaveImmediately = props.motionLeaveImmediately; + + var newState = { + prevProps: props + }; + + // Appear + if (!prevProps && visible && motionAppear) { + newState.status = STATUS_APPEAR; + newState.statusActive = false; + newState.newStatus = true; + } + + // Enter + if (prevProps && !prevProps.visible && visible && motionEnter) { + newState.status = STATUS_ENTER; + newState.statusActive = false; + newState.newStatus = true; + } + + // Leave + if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { + newState.status = STATUS_LEAVE; + newState.statusActive = false; + newState.newStatus = true; + } + + return newState; + } + }]); + + return CSSMotion; + }(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Component); + + CSSMotion.propTypes = { + visible: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + children: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + motionName: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object]), + motionAppear: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + motionEnter: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + motionLeave: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + motionLeaveImmediately: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, // Trigger leave motion immediately + onAppearStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onAppearActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onAppearEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onEnterStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onEnterActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onEnterEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onLeaveStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onLeaveActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + onLeaveEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func + }; + CSSMotion.defaultProps = { + visible: true, + motionEnter: true, + motionAppear: true, + motionLeave: true + }; + + + Object(__WEBPACK_IMPORTED_MODULE_9_react_lifecycles_compat__["a" /* polyfill */])(CSSMotion); + + return CSSMotion; +} + +/* unused harmony default export */ var _unused_webpack_default_export = (genCSSMotion(__WEBPACK_IMPORTED_MODULE_12__util__["f" /* supportTransition */])); + +/***/ }) +/******/ ])["default"]; +}); +//# sourceMappingURL=rc-tree.js.map \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.js.map b/packages/client/node_modules/rc-tree/dist/rc-tree.js.map new file mode 100644 index 0000000..c947871 --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap d7e30d1747246b9fc793","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_core.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_global.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dp.js","webpack:///./node_modules/_process@0.11.10@process/browser.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_export.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_descriptors.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_has.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_hide.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_an-object.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-object.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-iobject.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/index.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_fails.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_property-desc.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/createClass.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iterators.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/inherits.js","webpack:///./node_modules/_rc-util@4.6.0@rc-util/es/Children/toArray.js","webpack:///./node_modules/_react-lifecycles-compat@3.0.4@react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_library.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_uid.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-pie.js","webpack:///./node_modules/_classnames@2.2.6@classnames/index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_ctx.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-primitive.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_cof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_defined.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-integer.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_shared-key.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_shared.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gops.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-object.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-ext.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-define.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/util.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_dom-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iobject.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-length.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-define.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_redefine.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopd.js","webpack:///./node_modules/_react-is@16.8.6@react-is/index.js","webpack:///./node_modules/_warning@3.0.0@warning/browser.js","webpack:///./src/contextTypes.js","webpack:///./src/util.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/objectWithoutProperties.js","webpack:///./src/TreeNode.jsx","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/AnimateChild.js","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./node_modules/_component-indexof@0.0.3@component-indexof/index.js","webpack:///./node_modules/_raf@3.4.1@raf/index.js","webpack:///./assets/index.less?b3e7","webpack:///./src/index.js","webpack:///./src/Tree.jsx","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_a-function.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_array-includes.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/define-property.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_string-at.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dps.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_html.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gpo.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-step.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.symbol.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_meta.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_set-proto.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.create.js","webpack:///./node_modules/_react-is@16.8.6@react-is/cjs/react-is.production.min.js","webpack:///./node_modules/_react-is@16.8.6@react-is/cjs/react-is.development.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/_object-assign@4.1.1@object-assign/index.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/checkPropTypes.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/index.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/Animate.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/warning.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/emptyFunction.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toArray.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/array/from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-call.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_create-property.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_classof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-detect.js","webpack:///./node_modules/_component-classes@1.2.6@component-classes/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/_performance-now@2.1.0@performance-now/lib/performance-now.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/ExecutionEnvironment.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/CSSMotion.js"],"names":["treeContextTypes","rcTree","PropTypes","shape","root","object","prefixCls","string","selectable","bool","showIcon","icon","oneOfType","node","func","draggable","checkable","checkStrictly","disabled","openTransitionName","openAnimation","loadData","filterTreeNode","renderTreeNode","isKeyChecked","onNodeClick","onNodeDoubleClick","onNodeExpand","onNodeSelect","onNodeCheck","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","nodeContextTypes","rcTreeNode","onUpCheckConduct","DRAG_SIDE_RANGE","DRAG_MIN_GAP","onlyTreeNodeWarned","warnOnlyTreeNode","warning","arrDel","list","value","clone","slice","index","indexOf","splice","arrAdd","push","posToArr","pos","split","getPosition","level","isTreeNode","type","getNodeChildren","children","toArray","filter","isCheckDisabled","props","disableCheckbox","traverseTreeNodes","treeNodes","callback","processNode","parent","childList","data","key","parentPos","Children","forEach","subNode","subIndex","mapChildren","map","length","getDragNodesKeys","eventKey","dragNodesKeys","calcDropPosition","event","treeNode","clientY","selectHandle","getBoundingClientRect","top","bottom","height","des","Math","max","calcSelectedKeys","selectedKeys","undefined","multiple","keyListToString","keyList","String","internalProcessProps","convertDataToTree","treeData","processer","processProps","Array","isArray","childrenNodes","convertTreeToEntities","initWrapper","processEntity","onProcessFinished","posEntities","keyEntities","wrapper","item","entity","parseCheckedKeys","keys","keyProps","checkedKeys","halfCheckedKeys","checked","halfChecked","conductCheck","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","child","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","Object","conductExpandParent","expandedKeys","getDataAndAria","reduce","prev","substr","ICON_OPEN","ICON_CLOSE","defaultTitle","TreeNode","state","dragNodeHighlight","context","registerTreeNode","syncLoadData","treeSelectable","loading","className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","expanded","selected","otherProps","isDisabled","dataOrAriaAttributeProps","classNames","onDragEnter","onDragOver","onDragLeave","onDrop","onDragEnd","renderSwitcher","renderCheckbox","renderSelector","renderChildren","React","Component","propTypes","onSelect","loaded","title","switcherIcon","contextTypes","childContextTypes","defaultProps","onSelectorClick","e","isSelectable","onCheck","onSelectorDoubleClick","preventDefault","targetChecked","onMouseEnter","onMouseLeave","onContextMenu","onDragStart","stopPropagation","setState","dataTransfer","setData","error","onExpand","setSelectHandle","originList","targetList","getNodeState","hasChildren","treeDisabled","onNodeLoad","switcherIconFromProps","switcherIconFromCtx","switcherCls","$custom","renderIcon","treeIcon","wrapClass","$icon","currentIcon","createElement","$title","animProps","transitionName","animation","nodeList","$children","polyfill","Tree","dragNode","dropPosition","dragOverNodeKey","setTimeout","delayedDragEnterLogic","clearTimeout","newExpandedKeys","posArr","dropResult","Number","dropToGap","onClick","onDoubleClick","targetSelected","selectedNodes","setUncontrolledState","eventObj","nativeEvent","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","checkedNodes","checkedNodesPositions","Promise","resolve","loadedKeys","loadingKeys","onLoad","promise","then","newLoadedKeys","newLoadingKeys","targetExpanded","loadPromise","onRightClick","needSync","newState","name","domTreeNodes","cloneElement","focusable","showLine","tabIndex","domProps","onKeyDown","prevState","prevProps","entitiesMap","autoExpandParent","defaultExpandParent","defaultExpandAll","defaultExpandedKeys","defaultSelectedKeys","checkedKeyEntity","defaultCheckedKeys","conductKeys","number","any","array","arrayOf"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA,6BAA6B;AAC7B,uCAAuC;;;;;;;ACDvC,YAAY,mBAAO,CAAC,EAAW;AAC/B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,aAAa,mBAAO,CAAC,CAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;ACLzC,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,EAAmB;AAChD,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,CAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC,aAAa,mBAAO,CAAC,CAAW;AAChC,WAAW,mBAAO,CAAC,CAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,WAAW,mBAAO,CAAC,CAAS;AAC5B,UAAU,mBAAO,CAAC,CAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;AC7DA;AACA,kBAAkB,mBAAO,CAAC,EAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;ACHD,uBAAuB;AACvB;AACA;AACA;;;;;;;ACHA,+C;;;;;;ACAA,SAAS,mBAAO,CAAC,CAAc;AAC/B,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,iBAAiB,mBAAO,CAAC,CAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACPA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;;;;;;;ACFA;AACA,cAAc,mBAAO,CAAC,EAAY;AAClC,cAAc,mBAAO,CAAC,EAAY;AAClC;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,GAA2B;AACtD,CAAC;AACD;AACA;AACA,mBAAmB,mBAAO,CAAC,GAA4B;AACvD;;;;;;;;;AClBa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,EAA0B;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACtBA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;ACRa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,EAAmC;;AAEjE;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,G;;;;;;;AC1BY;;AAEb;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AChBA;;;;;;;;ACAa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,GAAoC;;AAElE;;AAEA,cAAc,mBAAO,CAAC,GAA0B;;AAEhD;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,E;;;;;;;AChCA;AAAA;AAAA;AAA0B;;AAEX;AACf;AACA,EAAE,6CAAK;AACP;AACA,GAAG;AACH;AACA,C;;;;;;;ACRA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;AC7JpB;AACA,YAAY,mBAAO,CAAC,EAAyB;AAC7C,kBAAkB,mBAAO,CAAC,EAAkB;;AAE5C;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AACA;AACA;AACA;AACA;;;;;;;ACJA,cAAc;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;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;AACA,aAAa;AACb;;AAEA;AACA,SAAS;AACT,6BAA6B,eAAe;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,yEAAiB;AAChD,gCAAgC,yEAAiB;;AAEjD,4BAA4B,0DAAO;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iDAAQ;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,qEAAQ;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,6CAA6C,gEAAgB;AAC7D,6CAA6C,iEAAiB;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;;AAEA;;AAEA;AACA,wEAAwE,kDAAU,YAAY,yEAAiB,yDAAyD,yEAAiB;;AAEzL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,6CAAK;AACpB;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;AAC/D;;;AAGA;AACA,qBAAqB,kEAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,6CAAK;;AAET;AACA,oBAAoB,kDAAS,YAAY,kDAAS,SAAS,kDAAS;AACpE,sBAAsB,kDAAS;AAC/B,qBAAqB,kDAAS;AAC9B,qBAAqB,kDAAS;AAC9B,eAAe,kDAAS;AACxB,cAAc,kDAAS;AACvB,cAAc,kDAAS;;AAEvB,gBAAgB,kDAAS;AACzB,eAAe,kDAAS;AACxB,mBAAmB,kDAAS;;AAE5B,WAAW,kDAAS;AACpB,cAAc,kDAAS;AACvB,aAAa,kDAAS;AACtB,aAAa,kDAAS;AACtB;;;AAGA,EAAE,iFAAQ;;AAEV;AACA;;AAEe,yEAAgB,iEAAiB,CAAC,E;;;;;;ACtcjD,gD;;;;;;ACAA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,E;;;;;;ACNA,wDAAU,mBAAO,CAAC,GAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA,yC;;;;;;;ACAA;AAAA;AAA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,EAAU;AAC/B,aAAa,mBAAO,CAAC,EAAW;AAChC,qBAAqB,mBAAO,CAAC,EAAsB;AACnD,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,CAAQ;AAC1B,aAAa,mBAAO,CAAC,EAAY;AACjC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,eAAe,mBAAO,CAAC,EAAc;AACrC,cAAc,mBAAO,CAAC,EAAa;AACnC,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,EAAc;AACrC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,cAAc,mBAAO,CAAC,EAAkB;AACxC,cAAc,mBAAO,CAAC,EAAoB;AAC1C,YAAY,mBAAO,CAAC,EAAgB;AACpC,UAAU,mBAAO,CAAC,CAAc;AAChC,YAAY,mBAAO,CAAC,EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB,uBAAuB,WAAW,IAAI;AAC5D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,EAAgB;AAC1B,EAAE,mBAAO,CAAC,EAAe;AACzB,EAAE,mBAAO,CAAC,EAAgB;;AAE1B,sBAAsB,mBAAO,CAAC,EAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,QAAQ,iCAAiC;AACpG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,CAAS;AACrD;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzOA,WAAW,mBAAO,CAAC,EAAQ;AAC3B,eAAe,mBAAO,CAAC,EAAc;AACrC,UAAU,mBAAO,CAAC,CAAQ;AAC1B,cAAc,mBAAO,CAAC,CAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,EAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA,cAAc,mBAAO,CAAC,EAAgB;AACtC,WAAW,mBAAO,CAAC,EAAgB;AACnC,UAAU,mBAAO,CAAC,EAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACdA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA;AACA;;;;;;;ACJA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC,WAAW,mBAAO,CAAC,EAAgB;AACnC,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClBA,mBAAO,CAAC,EAAe;;;;;;;ACAvB,mBAAO,CAAC,EAAe;;;;;;;ACAvB,kBAAkB,YAAY,mBAAO,CAAC,GAA4C,sB;;;;;;ACAlF,mBAAO,CAAC,GAA2C;AACnD,iBAAiB,mBAAO,CAAC,CAAqB;;;;;;;ACD9C;AACA,cAAc,mBAAO,CAAC,CAAW;AACjC,8BAA8B,iBAAiB,mBAAO,CAAC,GAAc,OAAO;;;;;;;ACF5E;AACA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,cAAc,mBAAO,CAAC,EAAQ,iBAAiB,mBAAO,CAAC,EAAgB;AACvE;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;ACxBA,kBAAkB,YAAY,mBAAO,CAAC,GAAkC,sB;;;;;;ACAxE,mBAAO,CAAC,GAAiC;AACzC,cAAc,mBAAO,CAAC,CAAqB;AAC3C;AACA;AACA;;;;;;;ACJA,cAAc,mBAAO,CAAC,CAAW;AACjC;AACA,8BAA8B,SAAS,mBAAO,CAAC,EAAkB,GAAG;;;;;;;;ACFpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa,4CAA4C,SAAS;AAClE;AACA,yCAAyC,cAAc,kCAAkC,iBAAiB,UAAU,0BAA0B,mDAAmD,kCAAkC,8BAA8B,kBAAkB,gCAAgC,cAAc,gBAAgB,iBAAiB,oBAAoB,yBAAyB,0BAA0B,0BAA0B,kBAAkB;AACrd,mBAAmB,eAAe,eAAe,iBAAiB,mBAAmB,qBAAqB,mBAAmB,uCAAuC,sMAAsM,gCAAgC,uBAAuB,2BAA2B,sCAAsC;AACle,sCAAsC,iBAAiB,8BAA8B,qDAAqD,iCAAiC,iBAAiB,+BAA+B,iBAAiB,2BAA2B,iBAAiB,2BAA2B,iBAAiB,6BAA6B,iBAAiB,+BAA+B,iBAAiB,iCAAiC;AACnc,+BAA+B;;;;;;;;ACd/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,EAAU;AAChC,aAAa,mBAAO,CAAC,GAAe;;AAEpC,2BAA2B,mBAAO,CAAC,EAA4B;AAC/D,qBAAqB,mBAAO,CAAC,GAAkB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;AC9kBA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA,6BAA6B,mBAAO,CAAC,EAA4B;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,2BAA2B,mBAAO,CAAC,EAA4B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACU;AACN;;AAED;;AAEpB,kHAAO,E;;;;;;;ACNtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACc;AACN;AAC4B;AAClC;AAC7B;AACS;AACgB;AACD;AACX;;AAEG;AACS;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA,IAAI,sEAAS;;AAEb;AACA;;AAEA;;AAEA,MAAM,4EAAe;;AAErB,qEAAqE,aAAa;AAClF;AACA;;AAEA,sCAAsC,uFAA0B;AAChE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,OAAO;AACP;;;AAGA,eAAe,oFAAO;AACtB;AACA,SAAS;AACT,OAAO,UAAU,uFAA0B;AAC3C;AACA;AACA;AACA;;AAEA,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,YAAY,wDAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA,iBAAiB,6CAAK;AACtB;AACA,YAAY,qEAAQ,GAAG;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,0BAA0B,qEAAQ;AAClC;AACA;AACA,aAAa;AACb;;AAEA,iBAAiB,6CAAK;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;;AAE/D;AACA,qBAAqB,kEAAU;AAC/B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,oFAAO;AACvC;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;;AAEX;AACA,oCAAoC,qEAAa;AACjD,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,6CAAK;;AAET;AACA;AACA,eAAe,kDAAS;AACxB,oBAAoB,kDAAS;AAC7B,eAAe,kDAAS;AACxB,oBAAoB,kDAAS,YAAY,kDAAS,SAAS,kDAAS;AACpE,qBAAqB,kDAAS;AAC9B,sBAAsB,kDAAS;AAC/B,eAAe,kDAAS;AACxB,qBAAqB,kDAAS;AAC9B,WAAW,kDAAS;AACpB,aAAa,kDAAS;AACtB,aAAa,kDAAS;AACtB,cAAc,kDAAS;AACvB,cAAc,kDAAS;AACvB,cAAc,kDAAS;AACvB,WAAW,kDAAS;AACpB,eAAe,kDAAS;AACxB;AACA;AACA,iBAAiB;AACjB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;AAGA,EAAE,iFAAQ;;AAEV;AACA;;AAEe,oEAAW,+DAAY,CAAC,E;;;;;;;ACxNvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,oBAAoB,mBAAO,CAAC,GAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yB;;;;;;;;AC7Da;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+B;;;;;;;ACnCa;;AAEb;;AAEA,YAAY,mBAAO,CAAC,GAAuB;;AAE3C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,E;;;;;;ACZA,kBAAkB,YAAY,mBAAO,CAAC,GAA+B,sB;;;;;;ACArE,mBAAO,CAAC,EAAmC;AAC3C,mBAAO,CAAC,GAA8B;AACtC,iBAAiB,mBAAO,CAAC,CAAqB;;;;;;;;ACFjC;AACb,UAAU,mBAAO,CAAC,EAAQ;AAC1B,cAAc,mBAAO,CAAC,CAAW;AACjC,eAAe,mBAAO,CAAC,EAAc;AACrC,WAAW,mBAAO,CAAC,GAAc;AACjC,kBAAkB,mBAAO,CAAC,GAAkB;AAC5C,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,GAAoB;AACjD,gBAAgB,mBAAO,CAAC,GAA4B;;AAEpD,iCAAiC,mBAAO,CAAC,GAAgB,mBAAmB,kBAAkB,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gCAAgC;AACvF;AACA;AACA,KAAK;AACL;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,eAAe,mBAAO,CAAC,CAAQ;AAC/B;;AAEA;AACA;AACA;;;;;;;;ACPa;AACb,sBAAsB,mBAAO,CAAC,CAAc;AAC5C,iBAAiB,mBAAO,CAAC,EAAkB;;AAE3C;AACA;AACA;AACA;;;;;;;ACPA,cAAc,mBAAO,CAAC,GAAY;AAClC,eAAe,mBAAO,CAAC,CAAQ;AAC/B,gBAAgB,mBAAO,CAAC,EAAc;AACtC,iBAAiB,mBAAO,CAAC,CAAS;AAClC;AACA;AACA;AACA;;;;;;;ACPA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,CAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA,eAAe,mBAAO,CAAC,CAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;ACrBA;AACA;AACA;;AAEA;AACA,cAAc,mBAAO,CAAC,EAAS;AAC/B,CAAC;AACD,cAAc,mBAAO,CAAC,EAAmB;AACzC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9LA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;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","file":"rc-tree.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rc-tree\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"rc-tree\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_65__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 68);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d7e30d1747246b9fc793","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_core.js\n// module id = 0\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks.js\n// module id = 1\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_global.js\n// module id = 2\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dp.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_process@0.11.10@process/browser.js\n// module id = 4\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_export.js\n// module id = 5\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_descriptors.js\n// module id = 6\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_has.js\n// module id = 7\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 8\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_hide.js\n// module id = 9\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_an-object.js\n// module id = 10\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-object.js\n// module id = 11\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-iobject.js\n// module id = 12\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/index.js\n// module id = 13\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js\n// module id = 14\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_fails.js\n// module id = 15\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_property-desc.js\n// module id = 16\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/classCallCheck.js\n// module id = 17\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/createClass.js\n// module id = 18\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/possibleConstructorReturn.js\n// module id = 19\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iterators.js\n// module id = 20\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/inherits.js\n// module id = 21\n// module chunks = 0","import React from 'react';\n\nexport default function toArray(children) {\n var ret = [];\n React.Children.forEach(children, function (c) {\n ret.push(c);\n });\n return ret;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-util@4.6.0@rc-util/es/Children/toArray.js\n// module id = 22\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-lifecycles-compat@3.0.4@react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 23\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys.js\n// module id = 24\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_library.js\n// module id = 25\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_uid.js\n// module id = 26\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-pie.js\n// module id = 27\n// module chunks = 0","/*!\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_classnames@2.2.6@classnames/index.js\n// module id = 28\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_ctx.js\n// module id = 29\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-primitive.js\n// module id = 30\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_cof.js\n// module id = 31\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_defined.js\n// module id = 32\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-integer.js\n// module id = 33\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_shared-key.js\n// module id = 34\n// module chunks = 0","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: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_shared.js\n// module id = 35\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-bug-keys.js\n// module id = 36\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gops.js\n// module id = 37\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-object.js\n// module id = 38\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js\n// module id = 39\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-create.js\n// module id = 40\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_set-to-string-tag.js\n// module id = 41\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-ext.js\n// module id = 42\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-define.js\n// module id = 43\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/lib/ReactPropTypesSecret.js\n// module id = 44\n// module chunks = 0","import toArray from 'rc-util/es/Children/toArray';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\n// =================== Style ====================\nvar stylePrefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nexport function getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < stylePrefixes.length; i++) {\n ret = style.getPropertyValue(stylePrefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nexport function getStyleValue(node, name) {\n return parseFloat(getStyleProperty(node, name));\n}\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\n\nvar vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {});\n\nvar style = {};\n\nif (canUseDOM) {\n style = document.createElement('div').style;\n}\n\nvar prefixedEventNames = {};\n\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\n\nexport var animationEndName = getVendorPrefixedEventName('animationend');\nexport var transitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(animationEndName && transitionEndName);\n\n// ==================== Node ====================\n/**\n * [Legacy] Find the same children in both prev & next list.\n * Insert not find one before the find one, otherwise in the end. For example:\n * - prev: [1,2,3]\n * - next: [2,4]\n * -> [1,2,4,3]\n */\nexport function mergeChildren(prev, next) {\n var prevList = toArray(prev);\n var nextList = toArray(next);\n\n // Skip if is single children\n if (prevList.length === 1 && nextList.length === 1 && prevList[0].key === nextList[0].key) {\n return nextList;\n }\n\n var mergeList = [];\n var nextChildrenMap = {};\n var missMatchChildrenList = [];\n\n // Fill matched prev node into next node map\n prevList.forEach(function (prevNode) {\n if (prevNode && nextList.some(function (_ref) {\n var key = _ref.key;\n return key === prevNode.key;\n })) {\n if (missMatchChildrenList.length) {\n nextChildrenMap[prevNode.key] = missMatchChildrenList;\n missMatchChildrenList = [];\n }\n } else {\n missMatchChildrenList.push(prevNode);\n }\n });\n\n // Insert prev node before the matched next node\n nextList.forEach(function (nextNode) {\n if (nextNode && nextChildrenMap[nextNode.key]) {\n mergeList = mergeList.concat(nextChildrenMap[nextNode.key]);\n }\n mergeList.push(nextNode);\n });\n\n mergeList = mergeList.concat(missMatchChildrenList);\n\n return mergeList;\n}\n\nexport function cloneProps(props, propList) {\n var newProps = {};\n propList.forEach(function (prop) {\n if (prop in props) {\n newProps[prop] = props[prop];\n }\n });\n\n return newProps;\n}\n\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (typeof transitionName === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return transitionName + '-' + transitionType;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/util.js\n// module id = 45\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_ie8-dom-define.js\n// module id = 46\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_dom-create.js\n// module id = 47\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys-internal.js\n// module id = 48\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iobject.js\n// module id = 49\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-length.js\n// module id = 50\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js\n// module id = 51\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js\n// module id = 52\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.string.iterator.js\n// module id = 53\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-define.js\n// module id = 54\n// module chunks = 0","module.exports = require('./_hide');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_redefine.js\n// module id = 55\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn.js\n// module id = 56\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopd.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/index.js\n// module id = 58\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_warning@3.0.0@warning/browser.js\n// module id = 59\n// module chunks = 0","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\n\nimport PropTypes from 'prop-types';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\nexport const treeContextTypes = {\n rcTree: PropTypes.shape({\n root: PropTypes.object,\n\n prefixCls: PropTypes.string,\n selectable: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n draggable: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n disabled: PropTypes.bool,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.func,\n renderTreeNode: PropTypes.func,\n\n isKeyChecked: PropTypes.func,\n\n onNodeClick: PropTypes.func,\n onNodeDoubleClick: PropTypes.func,\n onNodeExpand: PropTypes.func,\n onNodeSelect: PropTypes.func,\n onNodeCheck: PropTypes.func,\n onNodeMouseEnter: PropTypes.func,\n onNodeMouseLeave: PropTypes.func,\n onNodeContextMenu: PropTypes.func,\n onNodeDragStart: PropTypes.func,\n onNodeDragEnter: PropTypes.func,\n onNodeDragOver: PropTypes.func,\n onNodeDragLeave: PropTypes.func,\n onNodeDragEnd: PropTypes.func,\n onNodeDrop: PropTypes.func,\n\n // TODO: Remove this\n // onBatchNodeCheck: PropTypes.func,\n // onCheckConductFinished: PropTypes.func,\n\n // Tree will store the entities when the treeNode refresh.\n // User can pass the func to add more info to customize the additional info.\n // processTreeEntity: PropTypes.func,\n }),\n};\n\nexport const nodeContextTypes = {\n ...treeContextTypes,\n rcTreeNode: PropTypes.shape({\n onUpCheckConduct: PropTypes.func,\n }),\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/contextTypes.js","import React, { Children } from 'react';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport warning from 'warning';\nimport TreeNode from './TreeNode';\n\nconst DRAG_SIDE_RANGE = 0.25;\nconst DRAG_MIN_GAP = 2;\n\nlet onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n const clone = list.slice();\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n const clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return `${level}-${index}`;\n}\n\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\n\nexport function getNodeChildren(children) {\n return toArray(children).filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n const { disabled, disableCheckbox } = node.props || {};\n return !!(disabled || disableCheckbox);\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n const children = node ? node.props.children : treeNodes;\n const pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n const childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n const data = {\n node,\n index,\n pos,\n key: node.key || pos,\n parentPos: parent.node ? parent.pos : null,\n };\n\n callback(data);\n }\n\n // Process children node\n Children.forEach(childList, (subNode, subIndex) => {\n processNode(subNode, subIndex, { node, pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren(children, func) {\n const list = toArray(children).map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n const { eventKey, pos } = node.props;\n const dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, ({ key }) => {\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, treeNode) {\n const { clientY } = event;\n const { top, bottom, height } = treeNode.selectHandle.getBoundingClientRect();\n const des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n } else if (clientY >= bottom - des) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\nfunction keyListToString(keyList) {\n if (!keyList) return keyList;\n return keyList.map(key => String(key));\n}\n\nconst internalProcessProps = props => props;\nexport function convertDataToTree(treeData, processer) {\n if (!treeData) return [];\n\n const { processProps = internalProcessProps } = processer || {};\n const list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(({ children, ...props }) => {\n const childrenNodes = convertDataToTree(children, processer);\n\n return (\n \n {childrenNodes}\n \n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes, { initWrapper, processEntity, onProcessFinished } = {}) {\n\n\n const posEntities = {};\n const keyEntities = {};\n let wrapper = {\n posEntities,\n keyEntities,\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, (item) => {\n const { node, index, pos, key, parentPos } = item;\n const entity = { node, index, key, pos };\n\n posEntities[pos] = entity;\n keyEntities[key] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n keyProps.checkedKeys = keyListToString(keyProps.checkedKeys);\n keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys);\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities, checkStatus = {}) {\n const checkedKeys = {};\n const halfCheckedKeys = {}; // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach((key) => {\n checkedKeys[key] = true;\n });\n\n (checkStatus.halfCheckedKeys || []).forEach((key) => {\n halfCheckedKeys[key] = true;\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys[key] === isCheck) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { children, parent, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n let everyChildChecked = true;\n let someChildChecked = false; // Child checked or half checked\n\n (children || [])\n .filter(child => !isCheckDisabled(child.node))\n .forEach(({ key: childKey }) => {\n const childChecked = checkedKeys[childKey];\n const childHalfChecked = halfCheckedKeys[childKey];\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys[key] = everyChildChecked;\n } else {\n checkedKeys[key] = false;\n }\n halfCheckedKeys[key] = someChildChecked;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys[key] === isCheck) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { children, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys[key] = isCheck;\n\n (children || []).forEach((child) => {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n const entity = keyEntities[key];\n\n if (!entity) {\n warning(false, `'${key}' does not exist in the tree.`);\n return;\n }\n\n const { children, parent, node } = entity;\n checkedKeys[key] = isCheck;\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || [])\n .filter(child => !isCheckDisabled(child.node))\n .forEach((child) => {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conduct(key);\n });\n\n const checkedKeyList = [];\n const halfCheckedKeyList = [];\n\n // Fill checked list\n Object.keys(checkedKeys).forEach((key) => {\n if (checkedKeys[key]) {\n checkedKeyList.push(key);\n }\n });\n\n // Fill half checked list\n Object.keys(halfCheckedKeys).forEach((key) => {\n if (!checkedKeys[key] && halfCheckedKeys[key]) {\n halfCheckedKeyList.push(key);\n }\n });\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList,\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n const expandedKeys = {};\n\n function conductUp(key) {\n if (expandedKeys[key]) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n expandedKeys[key] = true;\n\n const { parent, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conductUp(key);\n });\n\n return Object.keys(expandedKeys);\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props \n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce((prev, key) => {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util.js","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/objectWithoutProperties.js\n// module id = 62\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'rc-animate';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { nodeContextTypes } from './contextTypes';\nimport {\n getNodeChildren,\n getDataAndAria,\n mapChildren,\n warnOnlyTreeNode,\n} from './util';\n\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\n\nconst defaultTitle = '---';\n\nclass TreeNode extends React.Component {\n static propTypes = {\n eventKey: PropTypes.string, // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n root: PropTypes.object,\n onSelect: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n loaded: PropTypes.bool,\n loading: PropTypes.bool,\n halfChecked: PropTypes.bool,\n children: PropTypes.node,\n title: PropTypes.node,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static contextTypes = nodeContextTypes;\n\n static childContextTypes = nodeContextTypes;\n\n static defaultProps = {\n title: defaultTitle,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n dragNodeHighlight: false,\n };\n }\n\n getChildContext() {\n return {\n ...this.context,\n rcTreeNode: {\n // onUpCheckConduct: this.onUpCheckConduct,\n },\n };\n }\n\n // Isomorphic needn't load data in server side\n componentDidMount() {\n const { eventKey } = this.props;\n const { rcTree: { registerTreeNode } } = this.context;\n\n this.syncLoadData(this.props);\n\n registerTreeNode(eventKey, this);\n }\n\n componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n\n componentWillUnmount() {\n const { eventKey } = this.props;\n const { rcTree: { registerTreeNode } } = this.context;\n registerTreeNode(eventKey, null);\n }\n\n onSelectorClick = (e) => {\n // Click trigger before select/check operation\n const { rcTree: { onNodeClick } } = this.context;\n onNodeClick(e, this);\n\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n };\n\n onSelectorDoubleClick = (e) => {\n const { rcTree: { onNodeDoubleClick } } = this.context;\n onNodeDoubleClick(e, this);\n };\n\n onSelect = (e) => {\n if (this.isDisabled()) return;\n\n const { rcTree: { onNodeSelect } } = this.context;\n e.preventDefault();\n onNodeSelect(e, this);\n };\n\n onCheck = (e) => {\n if (this.isDisabled()) return;\n\n const { disableCheckbox, checked } = this.props;\n const {\n rcTree: { checkable, onNodeCheck },\n } = this.context;\n\n if (!checkable || disableCheckbox) return;\n\n e.preventDefault();\n const targetChecked = !checked;\n onNodeCheck(e, this, targetChecked);\n };\n\n onMouseEnter = (e) => {\n const { rcTree: { onNodeMouseEnter } } = this.context;\n onNodeMouseEnter(e, this);\n };\n\n onMouseLeave = (e) => {\n const { rcTree: { onNodeMouseLeave } } = this.context;\n onNodeMouseLeave(e, this);\n };\n\n onContextMenu = (e) => {\n const { rcTree: { onNodeContextMenu } } = this.context;\n onNodeContextMenu(e, this);\n };\n\n onDragStart = (e) => {\n const { rcTree: { onNodeDragStart } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n\n onDragEnter = (e) => {\n const { rcTree: { onNodeDragEnter } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n\n onDragOver = (e) => {\n const { rcTree: { onNodeDragOver } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n\n onDragLeave = (e) => {\n const { rcTree: { onNodeDragLeave } } = this.context;\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n\n onDragEnd = (e) => {\n const { rcTree: { onNodeDragEnd } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n\n onDrop = (e) => {\n const { rcTree: { onNodeDrop } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n\n // Disabled item still can be switch\n onExpand = (e) => {\n const { rcTree: { onNodeExpand } } = this.context;\n onNodeExpand(e, this);\n };\n\n // Drag usage\n setSelectHandle = (node) => {\n this.selectHandle = node;\n };\n\n getNodeChildren = () => {\n const { children } = this.props;\n const originList = toArray(children).filter(node => node);\n const targetList = getNodeChildren(originList);\n\n if (originList.length !== targetList.length) {\n warnOnlyTreeNode();\n }\n\n return targetList;\n };\n\n getNodeState = () => {\n const { expanded } = this.props;\n\n if (this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n isLeaf = () => {\n const { isLeaf, loaded } = this.props;\n const { rcTree: { loadData } } = this.context;\n\n const hasChildren = this.getNodeChildren().length !== 0;\n\n if (isLeaf === false) {\n return false;\n }\n\n return (\n isLeaf ||\n (!loadData && !hasChildren) ||\n (loadData && loaded && !hasChildren)\n );\n };\n\n isDisabled = () => {\n const { disabled } = this.props;\n const { rcTree: { disabled: treeDisabled } } = this.context;\n\n // Follow the logic of Selectable\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n };\n\n isSelectable() {\n const { selectable } = this.props;\n const { rcTree: { selectable: treeSelectable } } = this.context;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n\n // Load data to avoid default expanded tree without data\n syncLoadData = (props) => {\n const { expanded, loading, loaded } = props;\n const { rcTree: { loadData, onNodeLoad } } = this.context;\n\n if (loading) return;\n\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n const hasChildren = this.getNodeChildren().length !== 0;\n if (!hasChildren && !loaded) {\n onNodeLoad(this);\n }\n }\n };\n\n // Switcher\n renderSwitcher = () => {\n const {\n expanded,\n switcherIcon: switcherIconFromProps,\n } = this.props;\n const {\n rcTree: {\n prefixCls,\n switcherIcon: switcherIconFromCtx,\n }\n } = this.context;\n\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n\n if (this.isLeaf()) {\n return (\n \n {typeof switcherIcon === 'function' ?\n switcherIcon({ ...this.props, isLeaf: true }) : switcherIcon}\n \n );\n }\n\n const switcherCls = classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`);\n return (\n \n {typeof switcherIcon === 'function' ?\n switcherIcon({ ...this.props, isLeaf: false }) : switcherIcon}\n \n );\n };\n\n // Checkbox\n renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox } = this.props;\n const { rcTree: { prefixCls, checkable } } = this.context;\n const disabled = this.isDisabled();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return (\n \n {$custom}\n \n );\n };\n\n renderIcon = () => {\n const { loading } = this.props;\n const { rcTree: { prefixCls } } = this.context;\n\n return (\n \n );\n };\n\n // Icon + Title\n renderSelector = () => {\n const { dragNodeHighlight } = this.state;\n const { title, selected, icon, loading } = this.props;\n const { rcTree: { prefixCls, showIcon, icon: treeIcon, draggable, loadData } } = this.context;\n const disabled = this.isDisabled();\n\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n\n if (showIcon) {\n const currentIcon = icon || treeIcon;\n\n $icon = currentIcon ? (\n \n {typeof currentIcon === 'function' ?\n React.createElement(currentIcon, {\n ...this.props,\n }) : currentIcon}\n \n ) : this.renderIcon();\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n // Title\n const $title = {title};\n\n return (\n \n {$icon}{$title}\n \n );\n };\n\n // Children list wrapped with `Animation`\n renderChildren = () => {\n const { expanded, pos } = this.props;\n const { rcTree: {\n prefixCls,\n openTransitionName, openAnimation,\n renderTreeNode,\n } } = this.context;\n\n const animProps = {};\n if (openTransitionName) {\n animProps.transitionName = openTransitionName;\n } else if (typeof openAnimation === 'object') {\n animProps.animation = { ...openAnimation };\n }\n\n // Children TreeNode\n const nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n let $children;\n if (expanded) {\n $children = (\n \n {mapChildren(nodeList, (node, index) => (\n renderTreeNode(node, index, pos)\n ))}\n \n );\n }\n\n return (\n \n {$children}\n \n );\n };\n\n render() {\n const { loading } = this.props;\n const {\n className, style,\n dragOver, dragOverGapTop, dragOverGapBottom,\n isLeaf,\n expanded, selected, checked, halfChecked,\n ...otherProps\n } = this.props;\n const { rcTree: {\n prefixCls,\n filterTreeNode,\n draggable,\n } } = this.context;\n const disabled = this.isDisabled();\n const dataOrAriaAttributeProps = getDataAndAria(otherProps);\n\n return (\n \n {this.renderSwitcher()}\n {this.renderCheckbox()}\n {this.renderSelector()}\n {this.renderChildren()}\n \n );\n }\n}\n\nTreeNode.isTreeNode = 1;\n\npolyfill(TreeNode);\n\nexport default TreeNode;\n\n\n\n// WEBPACK FOOTER //\n// ./src/TreeNode.jsx","import _toArray from 'babel-runtime/helpers/toArray';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport classes from 'component-classes';\nimport raf from 'raf';\n\nimport { getStyleValue, cloneProps, getTransitionName, supportTransition, animationEndName, transitionEndName } from './util';\n\nvar clonePropList = ['appeared', 'show', 'exclusive', 'children', 'animation'];\n\n/**\n * AnimateChild only accept one child node.\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genAnimateChild(transitionSupport) {\n var AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n // [Legacy] Since old code addListener on the element.\n // To avoid break the behaviour that component not handle animation/transition\n // also can handle the animate, let keep the logic.\n var _this = _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).call(this));\n\n _this.state = {\n child: null,\n\n eventQueue: [],\n eventActive: false\n };\n\n _this.onDomUpdated = function () {\n var eventActive = _this.state.eventActive;\n var _this$props = _this.props,\n transitionName = _this$props.transitionName,\n animation = _this$props.animation,\n onChildLeaved = _this$props.onChildLeaved,\n animateKey = _this$props.animateKey;\n\n\n var $ele = _this.getDomElement();\n\n // Skip if dom element not ready\n if (!$ele) return;\n\n // [Legacy] Add animation/transition event by dom level\n if (transitionSupport && _this.$prevEle !== $ele) {\n _this.cleanDomEvent();\n\n _this.$prevEle = $ele;\n _this.$prevEle.addEventListener(animationEndName, _this.onMotionEnd);\n _this.$prevEle.addEventListener(transitionEndName, _this.onMotionEnd);\n }\n\n var currentEvent = _this.getCurrentEvent();\n if (currentEvent.empty) {\n // Additional process the leave event\n if (currentEvent.lastEventType === 'leave') {\n onChildLeaved(animateKey);\n }\n return;\n }\n\n var eventType = currentEvent.eventType,\n restQueue = currentEvent.restQueue;\n\n var nodeClasses = classes($ele);\n\n // [Legacy] Since origin code use js to set `className`.\n // This caused that any component without support `className` can be forced set.\n // Let's keep the logic.\n function legacyAppendClass() {\n if (!transitionSupport) return;\n\n var basicClassName = getTransitionName(transitionName, '' + eventType);\n if (basicClassName) nodeClasses.add(basicClassName);\n\n if (eventActive) {\n var activeClassName = getTransitionName(transitionName, eventType + '-active');\n if (activeClassName) nodeClasses.add(activeClassName);\n }\n }\n\n if (_this.currentEvent && _this.currentEvent.type === eventType) {\n legacyAppendClass();\n return;\n }\n\n // Clear timeout for legacy check\n clearTimeout(_this.timeout);\n\n // Clean up last event environment\n if (_this.currentEvent && _this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) {\n _this.currentEvent.animateObj.stop();\n }\n\n // Clean up last transition class\n if (_this.currentEvent) {\n var basicClassName = getTransitionName(transitionName, '' + _this.currentEvent.type);\n var activeClassName = getTransitionName(transitionName, _this.currentEvent.type + '-active');\n if (basicClassName) nodeClasses.remove(basicClassName);\n if (activeClassName) nodeClasses.remove(activeClassName);\n }\n\n // New event come\n _this.currentEvent = {\n type: eventType\n };\n\n var animationHandler = (animation || {})[eventType];\n // =============== Check if has customize animation ===============\n if (animationHandler) {\n _this.currentEvent.animateObj = animationHandler($ele, function () {\n _this.onMotionEnd({ target: $ele });\n });\n\n // Do next step if not animate object provided\n if (!_this.currentEvent || !_this.currentEvent.animateObj) {\n _this.nextEvent(restQueue);\n }\n\n // ==================== Use transition instead ====================\n } else if (transitionSupport) {\n legacyAppendClass();\n if (!eventActive) {\n // Trigger `eventActive` in next frame\n raf(function () {\n if (_this.currentEvent && _this.currentEvent.type === eventType && !_this._destroy) {\n _this.setState({ eventActive: true }, function () {\n // [Legacy] Handle timeout if browser transition event not handle\n var transitionDelay = getStyleValue($ele, 'transition-delay') || 0;\n var transitionDuration = getStyleValue($ele, 'transition-duration') || 0;\n var animationDelay = getStyleValue($ele, 'animation-delay') || 0;\n var animationDuration = getStyleValue($ele, 'animation-duration') || 0;\n var totalTime = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n\n if (totalTime >= 0) {\n _this.timeout = setTimeout(function () {\n _this.onMotionEnd({ target: $ele });\n }, totalTime * 1000);\n }\n });\n }\n });\n }\n\n // ======================= Just next action =======================\n } else {\n _this.onMotionEnd({ target: $ele });\n }\n };\n\n _this.onMotionEnd = function (_ref) {\n var target = _ref.target;\n var _this$props2 = _this.props,\n transitionName = _this$props2.transitionName,\n onChildLeaved = _this$props2.onChildLeaved,\n animateKey = _this$props2.animateKey,\n onAppear = _this$props2.onAppear,\n onEnter = _this$props2.onEnter,\n onLeave = _this$props2.onLeave,\n onEnd = _this$props2.onEnd;\n\n var currentEvent = _this.getCurrentEvent();\n if (currentEvent.empty) return;\n\n // Clear timeout for legacy check\n clearTimeout(_this.timeout);\n\n var restQueue = currentEvent.restQueue;\n\n\n var $ele = _this.getDomElement();\n if (!_this.currentEvent || $ele !== target) return;\n\n if (_this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) {\n _this.currentEvent.animateObj.stop();\n }\n\n // [Legacy] Same as above, we need call js to remove the class\n if (transitionSupport && _this.currentEvent) {\n var basicClassName = getTransitionName(transitionName, _this.currentEvent.type);\n var activeClassName = getTransitionName(transitionName, _this.currentEvent.type + '-active');\n\n var nodeClasses = classes($ele);\n if (basicClassName) nodeClasses.remove(basicClassName);\n if (activeClassName) nodeClasses.remove(activeClassName);\n }\n\n // Additional process the leave event\n if (_this.currentEvent && _this.currentEvent.type === 'leave') {\n onChildLeaved(animateKey);\n }\n\n // [Legacy] Trigger on event when it's last event\n if (_this.currentEvent && !restQueue.length) {\n if (_this.currentEvent.type === 'appear' && onAppear) {\n onAppear(animateKey);\n } else if (_this.currentEvent.type === 'enter' && onEnter) {\n onEnter(animateKey);\n } else if (_this.currentEvent.type === 'leave' && onLeave) {\n onLeave(animateKey);\n }\n\n if (onEnd) {\n // OnEnd(key, isShow)\n onEnd(animateKey, _this.currentEvent.type !== 'leave');\n }\n }\n\n _this.currentEvent = null;\n\n // Next queue\n _this.nextEvent(restQueue);\n };\n\n _this.getDomElement = function () {\n if (_this._destroy) return null;\n return ReactDOM.findDOMNode(_this);\n };\n\n _this.getCurrentEvent = function () {\n var _this$state$eventQueu = _this.state.eventQueue,\n eventQueue = _this$state$eventQueu === undefined ? [] : _this$state$eventQueu;\n var _this$props3 = _this.props,\n animation = _this$props3.animation,\n exclusive = _this$props3.exclusive,\n transitionAppear = _this$props3.transitionAppear,\n transitionEnter = _this$props3.transitionEnter,\n transitionLeave = _this$props3.transitionLeave;\n\n\n function hasEventHandler(eventType) {\n return eventType === 'appear' && (transitionAppear || animation.appear) || eventType === 'enter' && (transitionEnter || animation.enter) || eventType === 'leave' && (transitionLeave || animation.leave);\n }\n\n var event = null;\n // If is exclusive, only check the last event\n if (exclusive) {\n var eventType = eventQueue[eventQueue.length - 1];\n if (hasEventHandler(eventType)) {\n event = {\n eventType: eventType,\n restQueue: []\n };\n }\n } else {\n // Loop check the queue until find match\n var cloneQueue = eventQueue.slice();\n while (cloneQueue.length) {\n var _cloneQueue = cloneQueue,\n _cloneQueue2 = _toArray(_cloneQueue),\n _eventType = _cloneQueue2[0],\n restQueue = _cloneQueue2.slice(1);\n\n if (hasEventHandler(_eventType)) {\n event = {\n eventType: _eventType,\n restQueue: restQueue\n };\n break;\n }\n cloneQueue = restQueue;\n }\n }\n\n if (!event) {\n event = {\n empty: true,\n lastEventType: eventQueue[eventQueue.length - 1]\n };\n }\n\n return event;\n };\n\n _this.nextEvent = function (restQueue) {\n // Next queue\n if (!_this._destroy) {\n _this.setState({\n eventQueue: restQueue,\n eventActive: false\n });\n }\n };\n\n _this.cleanDomEvent = function () {\n if (_this.$prevEle && transitionSupport) {\n _this.$prevEle.removeEventListener(animationEndName, _this.onMotionEnd);\n _this.$prevEle.removeEventListener(transitionEndName, _this.onMotionEnd);\n }\n };\n\n _this.$prevEle = null;\n\n _this.currentEvent = null;\n _this.timeout = null;\n return _this;\n }\n\n _createClass(AnimateChild, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdated();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdated();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n this._destroy = true;\n this.cleanDomEvent();\n }\n }, {\n key: 'render',\n value: function render() {\n var _state = this.state,\n child = _state.child,\n eventActive = _state.eventActive;\n var _props = this.props,\n showProp = _props.showProp,\n transitionName = _props.transitionName;\n\n var _ref2 = child.props || {},\n className = _ref2.className;\n\n var currentEvent = this.getCurrentEvent();\n\n // Class name\n var connectClassName = transitionSupport && this.currentEvent ? classNames(className, getTransitionName(transitionName, this.currentEvent.type), eventActive && getTransitionName(transitionName, this.currentEvent.type + '-active')) : className;\n\n var show = true;\n\n // Keep show when is in transition or has customize animate\n if (transitionSupport && (!currentEvent.empty || this.currentEvent && this.currentEvent.animateObj)) {\n show = true;\n } else {\n show = child.props[showProp];\n }\n\n // Clone child\n var newChildProps = {\n className: connectClassName\n };\n\n if (showProp) {\n newChildProps[showProp] = show;\n }\n\n return React.cloneElement(child, newChildProps);\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var _prevState$prevProps = prevState.prevProps,\n prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps;\n var appeared = nextProps.appeared;\n\n\n var newState = {\n prevProps: cloneProps(nextProps, clonePropList)\n };\n\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName]) {\n if (updater) {\n updater(nextProps[propName]);\n }\n return true;\n }\n return false;\n }\n\n function pushEvent(eventType) {\n var eventQueue = newState.eventQueue || prevState.eventQueue.slice();\n var matchIndex = eventQueue.indexOf(eventType);\n\n // Clean the rest event if eventType match\n if (matchIndex !== -1) {\n eventQueue = eventQueue.slice(0, matchIndex);\n }\n\n eventQueue.push(eventType);\n newState.eventQueue = eventQueue;\n }\n\n // Child update. Only set child.\n processState('children', function (child) {\n newState.child = child;\n });\n\n processState('appeared', function (isAppeared) {\n if (isAppeared) {\n pushEvent('appear');\n }\n });\n\n // Show update\n processState('show', function (show) {\n if (!appeared) {\n if (show) {\n pushEvent('enter');\n } else {\n pushEvent('leave');\n }\n }\n });\n\n return newState;\n }\n }]);\n\n return AnimateChild;\n }(React.Component);\n\n AnimateChild.propTypes = {\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionAppear: PropTypes.bool,\n transitionEnter: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n exclusive: PropTypes.bool,\n appeared: PropTypes.bool,\n showProp: PropTypes.string,\n\n animateKey: PropTypes.any,\n animation: PropTypes.object,\n onChildLeaved: PropTypes.func,\n\n onEnd: PropTypes.func,\n onAppear: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func\n };\n\n\n polyfill(AnimateChild);\n\n return AnimateChild;\n}\n\nexport default genAnimateChild(supportTransition);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/AnimateChild.js\n// module id = 64\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_65__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 65\n// module chunks = 0","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_component-indexof@0.0.3@component-indexof/index.js\n// module id = 66\n// module chunks = 0","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_raf@3.4.1@raf/index.js\n// module id = 67\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/index.less\n// module id = 69\n// module chunks = 0","import Tree from './Tree';\nimport TreeNode from './TreeNode';\n\nTree.TreeNode = TreeNode;\n\nexport { TreeNode };\nexport default Tree;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport { polyfill } from 'react-lifecycles-compat';\n\nimport { treeContextTypes } from './contextTypes';\nimport {\n convertTreeToEntities, convertDataToTree,\n getDataAndAria,\n getPosition, getDragNodesKeys,\n parseCheckedKeys,\n conductExpandParent, calcSelectedKeys,\n calcDropPosition,\n arrAdd, arrDel, posToArr,\n mapChildren, conductCheck,\n warnOnlyTreeNode,\n} from './util';\n\nclass Tree extends React.Component {\n static propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array, // Generate treeNode by children\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.arrayOf(PropTypes.string),\n expandedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultCheckedKeys: PropTypes.arrayOf(PropTypes.string),\n checkedKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.object,\n ]),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onExpand: PropTypes.func,\n onCheck: PropTypes.func,\n onSelect: PropTypes.func,\n onLoad: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.arrayOf(PropTypes.string),\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onRightClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnter: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragLeave: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static childContextTypes = treeContextTypes;\n\n static defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n // TODO: Remove this eslint\n posEntities: {}, // eslint-disable-line react/no-unused-state\n keyEntities: {},\n \n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n \n treeNode: [],\n };\n \n // Internal usage for `rc-tree-select`, we don't promise it will not change.\n this.domTreeNodes = {};\n }\n\n getChildContext() {\n const {\n prefixCls, selectable, showIcon, icon, draggable, checkable, checkStrictly, disabled,\n loadData, filterTreeNode,\n openTransitionName, openAnimation,\n switcherIcon,\n } = this.props;\n\n return {\n rcTree: {\n // root: this,\n\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n openTransitionName,\n openAnimation,\n\n loadData,\n filterTreeNode,\n renderTreeNode: this.renderTreeNode,\n isKeyChecked: this.isKeyChecked,\n\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n\n registerTreeNode: this.registerTreeNode,\n },\n };\n }\n\n static getDerivedStateFromProps(props, prevState) {\n const { prevProps } = prevState;\n const newState = {\n prevProps: props,\n };\n\n function needSync(name) {\n return (!prevProps && name in props) || (prevProps && prevProps[name] !== props[name]);\n }\n\n // ================== Tree Node ==================\n let treeNode = null;\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeNode = convertDataToTree(props.treeData);\n } else if (needSync('children')) {\n treeNode = toArray(props.children);\n }\n\n // Tree support filter function which will break the tree structure in the vdm.\n // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n if (treeNode) {\n newState.treeNode = treeNode;\n\n // Calculate the entities data for quick match\n const entitiesMap = convertTreeToEntities(treeNode);\n newState.posEntities = entitiesMap.posEntities;\n newState.keyEntities = entitiesMap.keyEntities;\n }\n\n const keyEntities = newState.keyEntities || prevState.keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || (prevProps && needSync('autoExpandParent'))) {\n newState.expandedKeys = (props.autoExpandParent || (!prevProps && props.defaultExpandParent)) ?\n conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n newState.expandedKeys = Object.keys(keyEntities);\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = (props.autoExpandParent || props.defaultExpandParent) ?\n conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n let checkedKeyEntity;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeNode) {\n // If treeNode changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys,\n };\n }\n\n if (checkedKeyEntity) {\n let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;\n\n if (!props.checkStrictly) {\n const conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n\n return newState;\n }\n\n onNodeDragStart = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragStart } = this.props;\n const { eventKey, children } = node.props;\n\n this.dragNode = node;\n\n this.setState({\n dragNodesKeys: getDragNodesKeys(children, node),\n expandedKeys: arrDel(expandedKeys, eventKey),\n });\n\n if (onDragStart) {\n onDragStart({ event, node });\n }\n };\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragEnter } = this.props;\n const { pos, eventKey } = node.props;\n\n if (!this.dragNode) return;\n\n const dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (\n this.dragNode.props.eventKey === eventKey &&\n dropPosition === 0\n ) {\n this.setState({\n dragOverNodeKey: '',\n dropPosition: null,\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(() => {\n // Update drag over node\n this.setState({\n dragOverNodeKey: eventKey,\n dropPosition,\n });\n\n // Side effect for delay drag\n if (!this.delayedDragEnterLogic) {\n this.delayedDragEnterLogic = {};\n }\n Object.keys(this.delayedDragEnterLogic).forEach((key) => {\n clearTimeout(this.delayedDragEnterLogic[key]);\n });\n this.delayedDragEnterLogic[pos] = setTimeout(() => {\n const newExpandedKeys = arrAdd(expandedKeys, eventKey);\n if (!('expandedKeys' in this.props)) {\n this.setState({\n expandedKeys: newExpandedKeys,\n });\n }\n\n if (onDragEnter) {\n onDragEnter({ event, node, expandedKeys: newExpandedKeys });\n }\n }, 400);\n }, 0);\n };\n onNodeDragOver = (event, node) => {\n const { onDragOver } = this.props;\n const { eventKey } = node.props;\n\n // Update drag position\n if (this.dragNode && eventKey === this.state.dragOverNodeKey) {\n const dropPosition = calcDropPosition(event, node);\n\n if (dropPosition === this.state.dropPosition) return;\n\n this.setState({\n dropPosition,\n });\n }\n\n if (onDragOver) {\n onDragOver({ event, node });\n }\n };\n onNodeDragLeave = (event, node) => {\n const { onDragLeave } = this.props;\n\n this.setState({\n dragOverNodeKey: '',\n });\n\n if (onDragLeave) {\n onDragLeave({ event, node });\n }\n };\n onNodeDragEnd = (event, node) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: '',\n });\n if (onDragEnd) {\n onDragEnd({ event, node });\n }\n\n this.dragNode = null;\n };\n onNodeDrop = (event, node) => {\n const { dragNodesKeys = [], dropPosition } = this.state;\n const { onDrop } = this.props;\n const { eventKey, pos } = node.props;\n\n this.setState({\n dragOverNodeKey: '',\n });\n\n if (dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, 'Can not drop to dragNode(include it\\'s children node)');\n return;\n }\n\n const posArr = posToArr(pos);\n\n const dropResult = {\n event,\n node,\n dragNode: this.dragNode,\n dragNodesKeys: dragNodesKeys.slice(),\n dropPosition: dropPosition + Number(posArr[posArr.length - 1]),\n };\n\n if (dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n\n if (onDrop) {\n onDrop(dropResult);\n }\n\n this.dragNode = null;\n };\n\n onNodeClick = (e, treeNode) => {\n const { onClick } = this.props;\n if (onClick) {\n onClick(e, treeNode);\n }\n };\n\n onNodeDoubleClick = (e, treeNode) => {\n const { onDoubleClick } = this.props;\n if (onDoubleClick) {\n onDoubleClick(e, treeNode);\n }\n };\n\n onNodeSelect = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { keyEntities } = this.state;\n const { onSelect, multiple } = this.props;\n const { selected, eventKey } = treeNode.props;\n const targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n const selectedNodes = selectedKeys.map(key => {\n const entity = keyEntities[key];\n if (!entity) return null;\n\n return entity.node;\n }).filter(node => node);\n\n this.setUncontrolledState({ selectedKeys });\n\n if (onSelect) {\n const eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n nativeEvent: e.nativeEvent,\n };\n onSelect(selectedKeys, eventObj);\n }\n };\n\n onNodeCheck = (e, treeNode, checked) => {\n const { keyEntities, checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys } = this.state;\n const { checkStrictly, onCheck } = this.props;\n const { props: { eventKey } } = treeNode;\n\n // Prepare trigger arguments\n let checkedObj;\n const eventObj = {\n event: 'check',\n node: treeNode,\n checked,\n nativeEvent: e.nativeEvent,\n };\n\n if (checkStrictly) {\n const checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n const halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys\n .map(key => keyEntities[key])\n .filter(entity => entity)\n .map(entity => entity.node);\n\n this.setUncontrolledState({ checkedKeys });\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck([eventKey], checked, keyEntities, {\n checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys,\n });\n\n checkedObj = checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = halfCheckedKeys;\n\n checkedKeys.forEach((key) => {\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { node, pos } = entity;\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node, pos });\n });\n\n this.setUncontrolledState({\n checkedKeys,\n halfCheckedKeys,\n });\n }\n\n if (onCheck) {\n onCheck(checkedObj, eventObj);\n }\n };\n\n onNodeLoad = treeNode => (\n new Promise((resolve) => {\n // We need to get the latest state of loading/loaded keys\n this.setState(({ loadedKeys = [], loadingKeys = [] }) => {\n const { loadData, onLoad } = this.props;\n const { eventKey } = treeNode.props;\n\n if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n // react 15 will warn if return null\n return {};\n }\n\n // Process load data\n const promise = loadData(treeNode);\n promise.then(() => {\n const newLoadedKeys = arrAdd(this.state.loadedKeys, eventKey);\n const newLoadingKeys = arrDel(this.state.loadingKeys, eventKey);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n if (onLoad) {\n const eventObj = {\n event: 'load',\n node: treeNode,\n };\n onLoad(newLoadedKeys, eventObj);\n }\n\n this.setUncontrolledState({\n loadedKeys: newLoadedKeys,\n });\n this.setState({\n loadingKeys: newLoadingKeys,\n });\n\n resolve();\n });\n\n return {\n loadingKeys: arrAdd(loadingKeys, eventKey),\n };\n });\n })\n );\n\n onNodeExpand = (e, treeNode) => {\n let { expandedKeys } = this.state;\n const { onExpand, loadData } = this.props;\n const { eventKey, expanded } = treeNode.props;\n\n // Update selected keys\n const index = expandedKeys.indexOf(eventKey);\n const targetExpanded = !expanded;\n\n warning(\n (expanded && index !== -1) || (!expanded && index === -1),\n 'Expand state not sync with index check',\n );\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ expandedKeys });\n\n if (onExpand) {\n onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent,\n });\n }\n\n // Async Load data\n if (targetExpanded && loadData) {\n const loadPromise = this.onNodeLoad(treeNode);\n return loadPromise ? loadPromise.then(() => {\n // [Legacy] Refresh logic\n this.setUncontrolledState({ expandedKeys });\n }) : null;\n }\n\n return null;\n };\n\n onNodeMouseEnter = (event, node) => {\n const { onMouseEnter } = this.props;\n if (onMouseEnter) {\n onMouseEnter({ event, node });\n }\n };\n\n onNodeMouseLeave = (event, node) => {\n const { onMouseLeave } = this.props;\n if (onMouseLeave) {\n onMouseLeave({ event, node });\n }\n };\n\n onNodeContextMenu = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState = (state) => {\n let needSync = false;\n const newState = {};\n\n Object.keys(state).forEach(name => {\n if (name in this.props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n };\n\n registerTreeNode = (key, node) => {\n if (node) {\n this.domTreeNodes[key] = node;\n } else {\n delete this.domTreeNodes[key];\n }\n };\n\n isKeyChecked = (key) => {\n const { checkedKeys = [] } = this.state;\n return checkedKeys.indexOf(key) !== -1;\n };\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode = (child, index, level = 0) => {\n const {\n keyEntities,\n expandedKeys = [], selectedKeys = [], halfCheckedKeys = [],\n loadedKeys = [], loadingKeys = [],\n dragOverNodeKey, dropPosition,\n } = this.state;\n const pos = getPosition(level, index);\n const key = child.key || pos;\n\n if (!keyEntities[key]) {\n warnOnlyTreeNode();\n return null;\n }\n\n return React.cloneElement(child, {\n key,\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n });\n };\n\n render() {\n const { treeNode } = this.state;\n const {\n prefixCls, className, focusable, style,\n showLine, tabIndex = 0,\n } = this.props;\n const domProps = getDataAndAria(this.props);\n\n if (focusable) {\n domProps.tabIndex = tabIndex;\n domProps.onKeyDown = this.onKeyDown;\n }\n\n return (\n \n {mapChildren(treeNode, (node, index) => (\n this.renderTreeNode(node, index)\n ))}\n \n );\n }\n}\n\npolyfill(Tree);\n\nexport default Tree;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tree.jsx","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js\n// module id = 72\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.assign.js\n// module id = 74\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_a-function.js\n// module id = 75\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-assign.js\n// module id = 76\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_array-includes.js\n// module id = 77\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-absolute-index.js\n// module id = 78\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/define-property.js\n// module id = 79\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.define-property.js\n// module id = 80\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js\n// module id = 81\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/iterator.js\n// module id = 82\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_string-at.js\n// module id = 83\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-create.js\n// module id = 84\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dps.js\n// module id = 85\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_html.js\n// module id = 86\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gpo.js\n// module id = 87\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/web.dom.iterable.js\n// module id = 88\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.iterator.js\n// module id = 89\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_add-to-unscopables.js\n// module id = 90\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-step.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js\n// module id = 92\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/index.js\n// module id = 93\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.symbol.js\n// module id = 94\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_meta.js\n// module id = 95\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-keys.js\n// module id = 96\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array.js\n// module id = 97\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn-ext.js\n// module id = 98\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 100\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.observable.js\n// module id = 101\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/set-prototype-of.js\n// module id = 102\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/set-prototype-of.js\n// module id = 103\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 104\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_set-proto.js\n// module id = 105\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/create.js\n// module id = 106\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/create.js\n// module id = 107\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.create.js\n// module id = 108\n// module chunks = 0","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/cjs/react-is.production.min.js\n// module id = 109\n// module chunks = 0","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/cjs/react-is.development.js\n// module id = 110\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/factoryWithTypeCheckers.js\n// module id = 111\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_object-assign@4.1.1@object-assign/index.js\n// module id = 112\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/checkPropTypes.js\n// module id = 113\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/factoryWithThrowingShims.js\n// module id = 114\n// module chunks = 0","import Animate from './Animate';\nimport AnimateChild from './AnimateChild';\nimport CSSMotion from './CSSMotion';\n\nexport { AnimateChild, CSSMotion };\n\nexport default Animate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/index.js\n// module id = 115\n// module chunks = 0","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport toArray from 'rc-util/es/Children/toArray';\nimport warning from 'fbjs/lib/warning';\n\nimport AnimateChild from './AnimateChild';\nimport { cloneProps, mergeChildren } from './util';\n\nvar defaultKey = 'rc_animate_' + Date.now();\nvar clonePropList = ['children'];\n\n/**\n * Default use `AnimateChild` as component.\n * Here can also pass customize `ChildComponent` for test usage.\n */\nexport function genAnimate(ChildComponent) {\n var Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n function Animate() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Animate);\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 = _possibleConstructorReturn(this, (_ref = Animate.__proto__ || Object.getPrototypeOf(Animate)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n appeared: true,\n mergedChildren: []\n }, _this.onChildLeaved = function (key) {\n // Remove child which not exist anymore\n if (!_this.hasChild(key)) {\n var mergedChildren = _this.state.mergedChildren;\n\n _this.setState({\n mergedChildren: mergedChildren.filter(function (node) {\n return node.key !== key;\n })\n });\n }\n }, _this.hasChild = function (key) {\n var children = _this.props.children;\n\n\n return toArray(children).some(function (node) {\n return node && node.key === key;\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n // [Legacy] Not sure usage\n // commit: https://github.com/react-component/animate/commit/0a1cbfd647407498b10a8c6602a2dea80b42e324\n // eslint-disable-line\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // No need to re-render\n this.state.appeared = false;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _state = this.state,\n appeared = _state.appeared,\n mergedChildren = _state.mergedChildren;\n var _props = this.props,\n Component = _props.component,\n componentProps = _props.componentProps,\n className = _props.className,\n style = _props.style,\n showProp = _props.showProp;\n\n\n var $children = mergedChildren.map(function (node) {\n if (mergedChildren.length > 1 && !node.key) {\n warning(false, 'must set key for children');\n return null;\n }\n\n var show = true;\n\n if (!_this2.hasChild(node.key)) {\n show = false;\n } else if (showProp) {\n show = node.props[showProp];\n }\n\n var key = node.key || defaultKey;\n\n return React.createElement(\n ChildComponent,\n _extends({}, _this2.props, {\n appeared: appeared,\n show: show,\n className: node.props.className,\n style: node.props.style,\n key: key,\n\n animateKey: node.key // Keep trans origin key\n , onChildLeaved: _this2.onChildLeaved\n }),\n node\n );\n });\n\n // Wrap with component\n if (Component) {\n var passedProps = this.props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: className,\n style: style\n }, componentProps);\n }\n\n return React.createElement(\n Component,\n passedProps,\n $children\n );\n }\n\n return $children[0] || null;\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var _prevState$prevProps = prevState.prevProps,\n prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps;\n\n var newState = {\n prevProps: cloneProps(nextProps, clonePropList)\n };\n var showProp = nextProps.showProp;\n\n\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName]) {\n updater(nextProps[propName]);\n return true;\n }\n return false;\n }\n\n processState('children', function (children) {\n var currentChildren = toArray(children).filter(function (node) {\n return node;\n });\n var prevChildren = prevState.mergedChildren.filter(function (node) {\n // Remove prev child if not show anymore\n if (currentChildren.every(function (_ref2) {\n var key = _ref2.key;\n return key !== node.key;\n }) && showProp && !node.props[showProp]) {\n return false;\n }\n return true;\n });\n\n // Merge prev children to keep the animation\n newState.mergedChildren = mergeChildren(prevChildren, currentChildren);\n });\n\n return newState;\n }\n }]);\n\n return Animate;\n }(React.Component);\n\n Animate.isAnimate = true;\n Animate.propTypes = {\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n showProp: PropTypes.string,\n children: PropTypes.node,\n style: PropTypes.object,\n className: PropTypes.string\n };\n Animate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false\n };\n\n\n polyfill(Animate);\n\n return Animate;\n}\n\nexport default genAnimate(AnimateChild);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/Animate.js\n// module id = 116\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/warning.js\n// module id = 117\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/emptyFunction.js\n// module id = 118\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n return Array.isArray(arr) ? arr : (0, _from2.default)(arr);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toArray.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/array/from.js\n// module id = 121\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.from.js\n// module id = 122\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-call.js\n// module id = 123\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array-iter.js\n// module id = 124\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_create-property.js\n// module id = 125\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/core.get-iterator-method.js\n// module id = 126\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_classof.js\n// module id = 127\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-detect.js\n// module id = 128\n// module chunks = 0","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_component-classes@1.2.6@component-classes/index.js\n// module id = 129\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 130\n// module chunks = 0","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_performance-now@2.1.0@performance-now/lib/performance-now.js\n// module id = 131\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/ExecutionEnvironment.js\n// module id = 132\n// module chunks = 0","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util';\n\nvar STATUS_NONE = 'none';\nvar STATUS_APPEAR = 'appear';\nvar STATUS_ENTER = 'enter';\nvar STATUS_LEAVE = 'leave';\n\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(transitionSupport) {\n var CSSMotion = function (_React$Component) {\n _inherits(CSSMotion, _React$Component);\n\n function CSSMotion() {\n _classCallCheck(this, CSSMotion);\n\n var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this));\n\n _this.onDomUpdate = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n newStatus = _this$state.newStatus;\n var _this$props = _this.props,\n onAppearStart = _this$props.onAppearStart,\n onEnterStart = _this$props.onEnterStart,\n onLeaveStart = _this$props.onLeaveStart,\n onAppearActive = _this$props.onAppearActive,\n onEnterActive = _this$props.onEnterActive,\n onLeaveActive = _this$props.onLeaveActive,\n motionAppear = _this$props.motionAppear,\n motionEnter = _this$props.motionEnter,\n motionLeave = _this$props.motionLeave;\n\n\n if (!transitionSupport) {\n return;\n }\n\n // Event injection\n var $ele = ReactDOM.findDOMNode(_this);\n if (_this.$ele !== $ele) {\n _this.removeEventListener(_this.$ele);\n _this.addEventListener($ele);\n _this.$ele = $ele;\n }\n\n // Init status\n if (newStatus && status === STATUS_APPEAR && motionAppear) {\n _this.updateStatus(onAppearStart, null, null, function () {\n _this.updateActiveStatus(onAppearActive, STATUS_APPEAR);\n });\n } else if (newStatus && status === STATUS_ENTER && motionEnter) {\n _this.updateStatus(onEnterStart, null, null, function () {\n _this.updateActiveStatus(onEnterActive, STATUS_ENTER);\n });\n } else if (newStatus && status === STATUS_LEAVE && motionLeave) {\n _this.updateStatus(onLeaveStart, null, null, function () {\n _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE);\n });\n }\n };\n\n _this.onMotionEnd = function (event) {\n var _this$state2 = _this.state,\n status = _this$state2.status,\n statusActive = _this$state2.statusActive;\n var _this$props2 = _this.props,\n onAppearEnd = _this$props2.onAppearEnd,\n onEnterEnd = _this$props2.onEnterEnd,\n onLeaveEnd = _this$props2.onLeaveEnd;\n\n if (status === STATUS_APPEAR && statusActive) {\n _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_ENTER && statusActive) {\n _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_LEAVE && statusActive) {\n _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event);\n }\n };\n\n _this.addEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.addEventListener(transitionEndName, _this.onMotionEnd);\n $ele.addEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.removeEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.removeEventListener(transitionEndName, _this.onMotionEnd);\n $ele.removeEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.updateStatus = function (styleFunc, additionalState, event, callback) {\n var statusStyle = styleFunc ? styleFunc(ReactDOM.findDOMNode(_this), event) : null;\n\n if (statusStyle === false || _this._destroyed) return;\n\n var nextStep = void 0;\n if (callback) {\n nextStep = function nextStep() {\n _this.nextFrame(callback);\n };\n }\n\n _this.setState(_extends({\n statusStyle: typeof statusStyle === 'object' ? statusStyle : null,\n newStatus: false\n }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount`\n };\n\n _this.updateActiveStatus = function (styleFunc, currentStatus) {\n // `setState` use `postMessage` to trigger at the end of frame.\n // Let's use requestAnimationFrame to update new state in next frame.\n _this.nextFrame(function () {\n var status = _this.state.status;\n\n if (status !== currentStatus) return;\n\n _this.updateStatus(styleFunc, { statusActive: true });\n });\n };\n\n _this.nextFrame = function (func) {\n _this.cancelNextFrame();\n _this.raf = raf(func);\n };\n\n _this.cancelNextFrame = function () {\n if (_this.raf) {\n raf.cancel(_this.raf);\n _this.raf = null;\n }\n };\n\n _this.state = {\n status: STATUS_NONE,\n statusActive: false,\n newStatus: false,\n statusStyle: null\n };\n _this.$ele = null;\n _this.raf = null;\n return _this;\n }\n\n _createClass(CSSMotion, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._destroyed = true;\n this.removeEventListener(this.$ele);\n this.cancelNextFrame();\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _state = this.state,\n status = _state.status,\n statusActive = _state.statusActive,\n statusStyle = _state.statusStyle;\n var _props = this.props,\n children = _props.children,\n motionName = _props.motionName,\n visible = _props.visible;\n\n\n if (!children) return null;\n\n if (status === STATUS_NONE || !transitionSupport) {\n return visible ? children({}) : null;\n }\n\n return children({\n className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n });\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, _ref) {\n var prevProps = _ref.prevProps;\n\n if (!transitionSupport) return {};\n\n var visible = props.visible,\n motionAppear = props.motionAppear,\n motionEnter = props.motionEnter,\n motionLeave = props.motionLeave,\n motionLeaveImmediately = props.motionLeaveImmediately;\n\n var newState = {\n prevProps: props\n };\n\n // Appear\n if (!prevProps && visible && motionAppear) {\n newState.status = STATUS_APPEAR;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Enter\n if (prevProps && !prevProps.visible && visible && motionEnter) {\n newState.status = STATUS_ENTER;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Leave\n if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) {\n newState.status = STATUS_LEAVE;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n return newState;\n }\n }]);\n\n return CSSMotion;\n }(React.Component);\n\n CSSMotion.propTypes = {\n visible: PropTypes.bool,\n children: PropTypes.func,\n motionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n motionAppear: PropTypes.bool,\n motionEnter: PropTypes.bool,\n motionLeave: PropTypes.bool,\n motionLeaveImmediately: PropTypes.bool, // Trigger leave motion immediately\n onAppearStart: PropTypes.func,\n onAppearActive: PropTypes.func,\n onAppearEnd: PropTypes.func,\n onEnterStart: PropTypes.func,\n onEnterActive: PropTypes.func,\n onEnterEnd: PropTypes.func,\n onLeaveStart: PropTypes.func,\n onLeaveActive: PropTypes.func,\n onLeaveEnd: PropTypes.func\n };\n CSSMotion.defaultProps = {\n visible: true,\n motionEnter: true,\n motionAppear: true,\n motionLeave: true\n };\n\n\n polyfill(CSSMotion);\n\n return CSSMotion;\n}\n\nexport default genCSSMotion(supportTransition);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/CSSMotion.js\n// module id = 133\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css new file mode 100644 index 0000000..56c835f --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css @@ -0,0 +1,173 @@ +.rc-tree { + margin: 0; + padding: 5px; +} +.rc-tree li { + padding: 0; + margin: 0; + list-style: none; + white-space: nowrap; + outline: 0; +} +.rc-tree li .draggable { + color: #333; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + /* Required to make elements draggable in old WebKit */ + -khtml-user-drag: element; + -webkit-user-drag: element; +} +.rc-tree li.drag-over > .draggable { + background-color: #316ac5; + color: white; + border: 1px #316ac5 solid; + opacity: 0.8; +} +.rc-tree li.drag-over-gap-top > .draggable { + border-top: 2px blue solid; +} +.rc-tree li.drag-over-gap-bottom > .draggable { + border-bottom: 2px blue solid; +} +.rc-tree li.filter-node > .rc-tree-node-content-wrapper { + color: #a60000!important; + font-weight: bold!important; +} +.rc-tree li ul { + margin: 0; + padding: 0 0 0 18px; +} +.rc-tree li .rc-tree-node-content-wrapper { + display: inline-block; + padding: 1px 3px 0 0; + margin: 0; + cursor: pointer; + height: 17px; + text-decoration: none; + vertical-align: top; +} +.rc-tree li span.rc-tree-switcher, +.rc-tree li span.rc-tree-checkbox, +.rc-tree li span.rc-tree-iconEle { + line-height: 16px; + margin-right: 2px; + width: 16px; + height: 16px; + display: inline-block; + vertical-align: middle; + border: 0 none; + cursor: pointer; + outline: none; + background-color: transparent; + background-repeat: no-repeat; + background-attachment: scroll; + background-image: url('data:image/png;base64,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'); +} +.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, +.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, +.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { + background-image: none; +} +.rc-tree li span.rc-tree-icon_loading { + margin-right: 2px; + vertical-align: top; + background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { + cursor: auto; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { + background-position: -93px -56px; +} +.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { + background-position: -75px -56px; +} +.rc-tree li span.rc-tree-checkbox { + width: 13px; + height: 13px; + margin: 0 3px; + background-position: 0 0; +} +.rc-tree li span.rc-tree-checkbox-checked { + background-position: -14px 0; +} +.rc-tree li span.rc-tree-checkbox-indeterminate { + background-position: -14px -28px; +} +.rc-tree li span.rc-tree-checkbox-disabled { + background-position: 0 -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { + background-position: -14px -56px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { + position: relative; + background: #ccc; + border-radius: 3px; +} +.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { + content: ' '; + -webkit-transform: scale(1); + transform: scale(1); + position: absolute; + left: 3px; + top: 5px; + width: 5px; + height: 0; + border: 2px solid #fff; + border-top: 0; + border-left: 0; +} +.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { + background: none; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > ul { + background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; +} +.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { + background-position: -56px -18px; +} +.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { + background-position: -56px -36px; +} +.rc-tree-child-tree { + display: none; +} +.rc-tree-child-tree-open { + display: block; +} +.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), +.rc-tree-treenode-disabled > a, +.rc-tree-treenode-disabled > a span { + color: #767676; + cursor: not-allowed; +} +.rc-tree-node-selected { + background-color: #ffe6b0; + border: 1px #ffb951 solid; + opacity: 0.8; +} +.rc-tree-icon__open { + margin-right: 2px; + background-position: -110px -16px; + vertical-align: top; +} +.rc-tree-icon__close { + margin-right: 2px; + background-position: -110px 0; + vertical-align: top; +} +.rc-tree-icon__docu { + margin-right: 2px; + background-position: -110px -32px; + vertical-align: top; +} +.rc-tree-icon__customize { + margin-right: 2px; + vertical-align: top; +} + +/*# sourceMappingURL=rc-tree.min.css.map*/ \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map new file mode 100644 index 0000000..fef6a53 --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./assets/index.less"],"names":[],"mappings":"AACA;EACE;EACA;CAAD;AAFD;EAII;EACA;EACA;EACA;EACA;CACH;AATD;EAUM;EACA;EACA;EACA;EACA;MAAA;EAEJ,uDAAuD;EAAnD;EACA;CAEL;AAAG;EAEI;EACA;EACA;EACA;CACP;AAEG;EAEI;CADP;AAIG;EAEI;CAHP;AAMG;EAEI;EACA;CALP;AAnCD;EA4CM;EACA;CANL;AAvCD;EAgDM;EACA;EACA;EACA;EACA;EACA;EACA;CANL;AASK;;;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAPP;AASO;;;EACE;CALT;AAQK;EACE;EACA;EACA;CANP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AAUK;EACE;EACA;EACA;EACA;CARP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;EACA;EACA;CAPT;AAQS;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CANX;AAYC;EAEI;CAXL;AAcC;EAGM;CAdP;AAWC;EAMM;CAdP;AAQC;EAWM;CAhBP;AAoBC;EACE;CAlBH;AAmBG;EACE;CAjBL;AAoBC;;;EAII;EACA;CAnBL;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;CApBH","file":"rc-tree.min.css","sourcesContent":["@treePrefixCls: rc-tree;\n.@{treePrefixCls} {\n margin: 0;\n padding: 5px;\n li {\n padding: 0;\n margin: 0;\n list-style: none;\n white-space: nowrap;\n outline: 0;\n .draggable {\n color: #333;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n /* Required to make elements draggable in old WebKit */\n -khtml-user-drag: element;\n -webkit-user-drag: element;\n }\n &.drag-over {\n > .draggable {\n background-color: #316ac5;\n color: white;\n border: 1px #316ac5 solid;\n opacity: 0.8;\n }\n }\n &.drag-over-gap-top {\n > .draggable {\n border-top: 2px blue solid;\n }\n }\n &.drag-over-gap-bottom {\n > .draggable {\n border-bottom: 2px blue solid;\n }\n }\n &.filter-node {\n > .@{treePrefixCls}-node-content-wrapper {\n color: #a60000!important;\n font-weight: bold!important;\n }\n }\n ul {\n margin: 0;\n padding: 0 0 0 18px;\n }\n .@{treePrefixCls}-node-content-wrapper {\n display: inline-block;\n padding: 1px 3px 0 0;\n margin: 0;\n cursor: pointer;\n height: 17px;\n text-decoration: none;\n vertical-align: top;\n }\n span {\n &.@{treePrefixCls}-switcher,\n &.@{treePrefixCls}-checkbox,\n &.@{treePrefixCls}-iconEle {\n line-height: 16px;\n margin-right: 2px;\n width: 16px;\n height: 16px;\n display: inline-block;\n vertical-align: middle;\n border: 0 none;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n background-attachment: scroll;\n background-image: url('data:image/png;base64,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');\n\n &.@{treePrefixCls}-icon__customize {\n background-image: none;\n }\n }\n &.@{treePrefixCls}-icon_loading {\n margin-right: 2px;\n vertical-align: top;\n background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent;\n }\n &.@{treePrefixCls}-switcher {\n &.@{treePrefixCls}-switcher-noop {\n cursor: auto;\n }\n &.@{treePrefixCls}-switcher_open {\n background-position: -93px -56px;\n }\n &.@{treePrefixCls}-switcher_close {\n background-position: -75px -56px;\n }\n }\n &.@{treePrefixCls}-checkbox {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n background-position: 0 0;\n &-checked {\n background-position: -14px 0;\n }\n &-indeterminate {\n background-position: -14px -28px;\n }\n &-disabled {\n background-position: 0 -56px;\n }\n &.@{treePrefixCls}-checkbox-checked.@{treePrefixCls}-checkbox-disabled {\n background-position: -14px -56px;\n }\n &.@{treePrefixCls}-checkbox-indeterminate.@{treePrefixCls}-checkbox-disabled {\n position: relative;\n background: #ccc;\n border-radius: 3px;\n &::after {\n content: ' ';\n -webkit-transform: scale(1);\n transform: scale(1);\n position: absolute;\n left: 3px;\n top: 5px;\n width: 5px;\n height: 0;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n }\n }\n }\n }\n }\n &:not(.@{treePrefixCls}-show-line) {\n .@{treePrefixCls}-switcher-noop {\n background: none;\n }\n }\n &.@{treePrefixCls}-show-line {\n li:not(:last-child) {\n > ul {\n background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y;\n }\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -18px;\n }\n }\n li:last-child {\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -36px;\n }\n }\n }\n &-child-tree {\n display: none;\n &-open {\n display: block;\n }\n }\n &-treenode-disabled {\n >span:not(.@{treePrefixCls}-switcher),\n >a,\n >a span {\n color: #767676;\n cursor: not-allowed;\n }\n }\n &-node-selected {\n background-color: #ffe6b0;\n border: 1px #ffb951 solid;\n opacity: 0.8;\n }\n &-icon__open {\n margin-right: 2px;\n background-position: -110px -16px;\n vertical-align: top;\n }\n &-icon__close {\n margin-right: 2px;\n background-position: -110px 0;\n vertical-align: top;\n }\n &-icon__docu {\n margin-right: 2px;\n background-position: -110px -32px;\n vertical-align: top;\n }\n &-icon__customize {\n margin-right: 2px;\n vertical-align: top;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./assets/index.less"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.js b/packages/client/node_modules/rc-tree/dist/rc-tree.min.js new file mode 100644 index 0000000..31e6fb4 --- /dev/null +++ b/packages/client/node_modules/rc-tree/dist/rc-tree.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports["rc-tree"]=t(require("react"),require("react-dom")):e["rc-tree"]=t(e.React,e.ReactDOM)}("undefined"!=typeof self?self:this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=65)}([function(e,t){var n=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(34)("wks"),o=n(25),a=n(2).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(9),o=n(44),a=n(29),i=Object.defineProperty;t.f=n(5)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(2),o=n(0),a=n(28),i=n(8),c=n(6),u=function(e,t,n){var s,l,f,d=e&u.F,p=e&u.G,v=e&u.S,h=e&u.P,y=e&u.B,m=e&u.W,g=p?o:o[t]||(o[t]={}),b=g.prototype,E=p?r:v?r[t]:(r[t]||{}).prototype;p&&(n=t);for(s in n)(l=!d&&E&&void 0!==E[s])&&c(g,s)||(f=l?E[s]:n[s],g[s]=p&&"function"!=typeof E[s]?n[s]:y&&l?a(f,r):m&&E[s]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):h&&"function"==typeof f?a(Function.call,f):f,h&&((g.virtual||(g.virtual={}))[s]=f,e&u.R&&b&&!b[s]&&i(b,s,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){e.exports=!n(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(t,n){t.exports=e},function(e,t,n){var r=n(3),o=n(15);e.exports=n(5)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(47),o=n(31);e.exports=function(e){return r(o(e))}},function(e,t,n){e.exports=n(106)()},function(e,t,n){"use strict";t.__esModule=!0;var r=n(69),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default||function(e){for(var t=1;t0?r:n)(e)}},function(e,t,n){var r=n(34)("keys"),o=n(25);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(0),o=n(2),a=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(24)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(31);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(49),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e,t,n){return t in e?(0,o.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){var r=n(9),o=n(82),a=n(35),i=n(33)("IE_PROTO"),c=function(){},u=function(){var e,t=n(45)("iframe"),r=a.length;for(t.style.display="none",n(83).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(" + + diff --git a/packages/client/src/layouts/CoreLayout/CoreLayout.js b/packages/client/src/layouts/CoreLayout/CoreLayout.js new file mode 100644 index 0000000..655fbcb --- /dev/null +++ b/packages/client/src/layouts/CoreLayout/CoreLayout.js @@ -0,0 +1,86 @@ +import React, {Component} from 'react'; +import {Layout, Menu, Icon, Dropdown} from 'antd'; +import '../../styles/core.scss' +import cls from'./CoreLayout.scss' +import {Link} from 'react-router' +import {connect} from 'react-redux' +import logoAutoNews from './assets/auto-news-logo.png' +import {fetchGlobalOrigin} from '../../redux/Global' + +const {Header, Content, Footer} = Layout; + +class CoreLayout extends Component { + constructor(props) { + super(props); + this.getMenu = this.getMenu.bind(this); + } + + componentDidMount() { + this.props.fetchGlobalOrigin(); + } + + componentDidUpdate(prevProps, prevState, prevContext) { + if (this.props.location !== prevProps.location) { + window.scrollTo(0, 0); + } + } + + getMenu(mode = "vertical") { + return ( + + 当日监控 + 往期查询 + 筛选 + 设置 + 关于 + + ); + } + + render() { + + return ( + +
+ + +
+ {this.getMenu('horizontal')} +
+ + + +
+ + + {this.props.children} + + +
+ + 监控服务:  + {this.props.global.get('socketConnectStatus') === 'disconnect' ? + 停机 : 运行中} + + {/* +  | 有 {this.props.global.get('clientCount')} 位小编在线 + */} +
+ + ) + } +} + +const mapStateToProps = (state) => ({ + global: state.global, +}); +const mapActionCreators = { + fetchGlobalOrigin, +}; + +export default connect(mapStateToProps, mapActionCreators)(CoreLayout) diff --git a/packages/client/src/layouts/CoreLayout/CoreLayout.scss b/packages/client/src/layouts/CoreLayout/CoreLayout.scss new file mode 100644 index 0000000..4ee71b8 --- /dev/null +++ b/packages/client/src/layouts/CoreLayout/CoreLayout.scss @@ -0,0 +1,75 @@ +@charset "UTF-8"; + +.body { + width: 100%; + .header { + z-index: 3; + position: fixed; + width: 100%; + .logo { + font-size: 18px; + float: left; + line-height: 62px; + margin-right: 10px; + .logoTitle { + color: #49a9ee; + font-size: 18px; + } + img { + margin-right: 4px; + vertical-align: middle; + } + } + .horizontalMenu { + .menu { + line-height: 64px; + font-size: 14px; + } + } + .verticalMenu { + display: none; + } + } + + .content { + z-index: 1; + margin: 64px 0 26px 0; + } + + .footer { + z-index: 2; + text-align: right; + font-size: 12px; + padding: 1px 6px; + background-color: #fff; + color: #aaa; + position: fixed; + bottom: 0; + right: 0; + .warning { + color: #e66; + } + } + + @media only screen and (max-width: 768px) { + .header { + padding: 0 16px; + .horizontalMenu { + display: none; + } + .verticalMenu { + display: inline-block; + float: right; + color: #fff; + font-size: 2.6rem; + line-height: 64px; + } + } + .content { + margin: 64px 40px 26px 0; + } + .footer { + display: none; + } + } +} diff --git a/packages/client/src/layouts/CoreLayout/assets/auto-news-logo.png b/packages/client/src/layouts/CoreLayout/assets/auto-news-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6055003cd77e3723a64848bde23a314e22d050 GIT binary patch literal 1762 zcmXX`2{hZ;8jod4Nvj4^N=aKCRYl)Jt5mEJ5rQK)f$65C2~##0)d=DnVDe0Uk$u4 zVFB=U^m`csf$+OnTi_628QQ&Nl|2&PyM4~FNGGZj%w-%3Y{@K1T>gK8n&e$5_C@1A z->=XLeE}wBse?9oZ_t^)U2!i{@vXh+P7CbVAl5Co(q}H;uP{vP#g|W`vwl+|Rx04B zdNJK*>4SdFE3!_-Y60~(!dgKWO!mk%zvpLvA%k3J>eThX#<1RPX}bc?n)fcWX`RRp z&5)L>-ZekpuO!y}g-RQG(6+7{)fwEywIne~lixu#6`vXfe5sssu}$t9^#}D}zXUcX zq-*omqjvB-?EK(N{llkmNr_M?h08x_mIhj!wIh4h%o`^5fkgMJIk$=#&`8;<3Y{@* zlFYan-l`Yd?cKO&mHpbkc?Hl!BoBZH;BqH_^t2@@;Kiz{-*d3MR*4=rv`90 zPU^QU7&A*7M5GMpMt7u4*B(*Od2N*Cra750z z1e^EPI`?-VH7aB1dSC;P6!5*^R%Tbo1`e8M48!Ak;IZ8R46rqzbqxsOUI~cL;>-WU zJ!1i=z#ZVJvUfGil^WQ-;n%Y2NO|W_GT~Lf=u!PXsN(~W7w9Q%UjWPnOm!kVjUO|l zZ1Y39w|twH#V{nOMV5eZa_r!KL?7=*n;eK{cq;2_0`niBIiFrUL?eRC{CWsZSV%Ay za|g1kvdg)xvA?&w$e9|A4Yau|EiQ7f3kGj{b7g+I_eDeD)0CK~P$JIS$_#l+L+!G> zh`{mjr^Em4+2!%JHkX$<^Yb&))06K;-;TWQ>+5Q%tE!@xmr;wJ<>inv(o&PcLIVjN z_uQOpO^x913 z!g${8j(pf++NAn9Xz~LNPfYM=`uh%<(Xt@go&Xa@(Cn{e*>auEXE90Hd`1L*!f^l> z$rsOCV3;_-$m^>?k_U27)WH5%Di!X)fH>6RO3R$HH*;^LBh+PJTd$60ND7Qv{Y$K? z1hO;lC-aS9Icc+kw4D&V{udEpDWCS)N8dF#I9cR7bvjv5ZeWzT)8y1(Rm2}R%b3aF%5tIf@i;#In|EnKE93V19|Jf< zbY;*?Dz?<}%tK<4fB0sGV*RVpCiJ}}eR!J=CHo1AbuvL)Dt&lK=4HI#LU_hul-lTl z09mv0of$RO2jFG+lnpLwGN~EH_#T+HY{OpF4NhF!N=K zxDTVXh~MPpv*RHuZ5tD!ombMVE|f=NsYsH%UX<_&;X)T_-U(S`LgI9*yXI#LOt49{ z_(vhA;?QU1V5W|5lEs6cxPhFFTv>0Gi-ScNo-Oa;E(Ac#?1MiyD-|h zmP>JN7QbGq_h0;-jmLwNfo%_Uul>cQQ@&;*8@POT_!qtQ$00v3yiQ!iOp6D|+?o~0 zHBDvS+ky8{sx*Hrl~>Hmh({(ic=TF4o3t#INIZNpQTE~OH_Q!!V3M7>|FV-1Ivye# zE~6Vkwue>=K6c}}WO_Gs2qySw`E!nK*_r>i|o+r%$07Nuw zZ1`O!-7mm*R=(?#m+YgLZ9|c!^xq@8C}%{g(NAeEtuFivvde?Hu4HkA=s$ZE@iAQ^ zl8Dv)5;aY%R?Y0QUxi$!Bz&|A`8iUO)WX%EG3J%5^*l~F-JcSPolhwyMLR@bEsbI& zjxXw%Hd<;W4Z0=rC6zpu)$eibi{C*Q?Oa|$X9rtv(VY?ciV8O%W2bQKt!e{DIYrh< z-;^g~J{U!fN5Ic~Tt9W%{Cm{r9aTZrP?*+Y^l;j2EAt~^MJq|{h!)G5csL8S5Macx zcV8u@KxH_UXeH state.router +}) + +// ======================================================== +// Developer Tools Setup +// ======================================================== +if (__DEBUG__) { + if (window.devToolsExtension) { + window.devToolsExtension.open() + } +} + + +// ======================================================== +// Render Setup +// ======================================================== +const MOUNT_NODE = document.getElementById('root') + +let render = () => { + + + const routes = require('./routes/index').default(store) + + ReactDOM.render( + , + MOUNT_NODE + ) +} + +// This code is excluded from production bundle +if (__DEV__) { + if (module.hot) { + // Development render functions + const renderApp = render + const renderError = (error) => { + const RedBox = require('redbox-react').default + + ReactDOM.render(, MOUNT_NODE) + } + + // Wrap render in try/catch + render = () => { + try { + renderApp() + } catch (error) { + renderError(error) + } + } + + // Setup hot module replacement + module.hot.accept('./routes/index', () => { + setTimeout(() => { + ReactDOM.unmountComponentAtNode(MOUNT_NODE) + render() + }) + }) + } +} +injectTapEventPlugin() +// ======================================================== +// Go! +// ======================================================== +render() diff --git a/packages/client/src/redux/Global.js b/packages/client/src/redux/Global.js new file mode 100644 index 0000000..6137b22 --- /dev/null +++ b/packages/client/src/redux/Global.js @@ -0,0 +1,306 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import config from '../utils/config' +import cookie from 'react-cookie' +import {notification} from 'antd'; +import moment from 'moment' + +// Constants +const GLOBAL_SET_USERINFO = 'GLOBAL_SET_USERINFO'; +const GLOBAL_USERINFO_FETCH_REQUESTED = 'GLOBAL_USERINFO_FETCH_REQUESTED'; +const socket_Global_SET_clientCount = 'socket_Global_SET_clientCount'; +const socket_Global_SET_SOCKET_STATUS = 'socket_Global_SET_SOCKET_STATUS'; +const socket_global_ON_News_Added = 'socket_global_ON_News_Added'; +const GLOBAL_FETCH_origin_REQUESTED = 'GLOBAL_FETCH_origin_REQUESTED'; +const GLOBAL_FETCH_origin_SUCCESSED = 'GLOBAL_FETCH_origin_SUCCESSED'; +const GLOBAL_FETCH_newsList_REQUESTED = 'GLOBAL_FETCH_newsList_REQUESTED'; +const GLOBAL_FETCH_newsList_SUCCESSED = 'GLOBAL_FETCH_newsList_SUCCESSED'; +const GLOBAL_FETCH_userSetting_REQUESTED = 'GLOBAL_FETCH_userSetting_REQUESTED'; +const GLOBAL_FETCH_userSetting_SUCCESSED = 'GLOBAL_FETCH_userSetting_SUCCESSED'; +const GLOBAL_SET_layouts = 'GLOBAL_SET_layouts'; +const GLOBAL_SET_filteredList = 'GLOBAL_SET_filteredList'; +const GLOBAL_SET_showSentimentInspector = 'GLOBAL_SET_showSentimentInspector'; + + +export function setUserinfo(userInfo) { + return { + type: GLOBAL_SET_USERINFO, + payload: userInfo + } +} +export function fetchGlobalOrigin() { + return { + type: GLOBAL_FETCH_origin_REQUESTED, + } +} +export function fetchGlobalUserSetting(origin, selectedOriginKeys, showSentimentInspector = true) { + return { + type: GLOBAL_FETCH_userSetting_REQUESTED, + origin, selectedOriginKeys, showSentimentInspector + } +} +export function fetchGlobalNewsList(originKeys) { + return { + type: GLOBAL_FETCH_newsList_REQUESTED, + originKeys, + } +} +export function setLayouts(layouts) { + return { + type: GLOBAL_SET_layouts, + layouts, + } +} +export function setFilteredList(item) { + return { + type: GLOBAL_SET_filteredList, + item, + } +} +export function setShowSentimentInspector(status) { + return { + type: GLOBAL_SET_showSentimentInspector, + status, + } +} + +// Actions +export const actions = { + setUserinfo, + fetchGlobalOrigin, + fetchGlobalUserSetting, + fetchGlobalNewsList, + setLayouts, + setFilteredList, + setShowSentimentInspector, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [GLOBAL_SET_USERINFO]: (state, payload) => { + cookie.save('userInfo', payload.data, {path: '/'}); + return state.setIn(['userInfo'], Immutable.fromJS(payload.data)); + }, + [socket_Global_SET_clientCount]: (state, action) => state.set('clientCount', action.data), + [socket_Global_SET_SOCKET_STATUS]: (state, action) => state.set('socketConnectStatus', action.data), + [socket_global_ON_News_Added]: (state, action) => { + if (state.getIn(['newsList', action.data.origin_key])) { + let newList = state.getIn(['newsList', action.data.origin_key, 'list']).toJS(); + newList.unshift(action.data); + + return state.setIn(['newsList', action.data.origin_key, 'list'], Immutable.fromJS(newList)); + } else { + return state; + } + }, + [GLOBAL_FETCH_userSetting_SUCCESSED]: (state, action) => { + //init newsList + const origin = state.get('origin').toJS(); + let tempNewsList = {}; + action.userSetting.originKeys.length && + action.userSetting.originKeys.forEach((item, index) => { + const currentOriginItem = origin.find(originItem => originItem.key === item); + tempNewsList[item] = { + origin_name: currentOriginItem ? currentOriginItem.name : '', + list: [], isFetched: false, + }; + }); + + return state.set('userSetting', Immutable.fromJS(action.userSetting)) + .set('newsList', Immutable.fromJS(tempNewsList)); + }, + [GLOBAL_FETCH_origin_SUCCESSED]: (state, action) => state.set('origin', Immutable.fromJS(action.data)), + [GLOBAL_FETCH_newsList_SUCCESSED]: (state, action) => { + let tempList = state.getIn(['newsList', action.origin, 'list']).toJS(); + tempList = tempList.concat(action.data); + + return state.setIn(['newsList', action.origin, 'list'], Immutable.fromJS(tempList)) + .setIn(['newsList', action.origin, 'isFetched'], true); + }, + [GLOBAL_SET_layouts]: (state, action) => { + if (action.layouts.md.length) { + return state.setIn(['userSetting', 'layouts'], Immutable.fromJS(action.layouts)); + } else { + return state; + } + }, + [GLOBAL_SET_filteredList]: (state, action) => { + let tempList = state.get('filteredList').toJS(); + if (tempList.findIndex(i => i === action.item) > -1) { + tempList = tempList.filter(i => i !== action.item); + } + else { + tempList.push(action.item); + } + + return state.set('filteredList', Immutable.fromJS(tempList)); + }, + [GLOBAL_SET_showSentimentInspector]: (state, action) => { + localStorage.setItem('userSetting.showSentimentInspector', action.status); + + return state.setIn(['userSetting', 'showSentimentInspector'], action.status) + }, +}; + +// Reducer +const initialState = Immutable.Map({ + userInfo: Immutable.Map(), + clientCount: 0,//客户端连接数 + socketConnectStatus: 'disconnect',//[disconnect | connect] + gridLayoutConfig: Immutable.fromJS({ + breakpoints: {lg: 1440, md: 1024, sm: 425, xs: 0}, + gridCols: {lg: 12, md: 12, sm: 6, xs: 2},//grid cols, 栅格列数 + monitorWidth: {lg: 3, md: 4, sm: 3, xs: 2},//每监视器栅格宽 + monitorHeight: {lg: 2, md: 2, sm: 2, xs: 2},//每监视器栅格高 + }), + origin: Immutable.List( + /* [ + {"_id": "58caa435de0f2f724e27148", "key": "ctdsb", "name": "楚天都市报"}, + ] */ + ), + userSetting: Immutable.fromJS({ + //默认值在 saga-watchFetchGlobalUserSetting 中生成 + originKeys: [],// 已监控的keys + layouts: {},// monitor layout + showSentimentInspector: true,// 是否显示情感评价指示器 + }), + newsList: Immutable.fromJS({ + /*'ctdsb': { + origin_name: '楚天都市报', + isFetched: false, + list: [ + {title: 'title', url: 'url', origin_key: 'origin', date: new Date()}, + ] + },*/ + }), + filteredList: Immutable.List(),// +}); +export default function globalReducer(state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + return handler ? handler(state, action) : state +} + + +// Sagas +function* watchFetchUserInfo() { + yield take(GLOBAL_USERINFO_FETCH_REQUESTED) + + let {data, err} = yield call(request, + config.API_SERVER + `/userInfo` + ); + if (!err) + yield put({type: GLOBAL_SET_USERINFO, data: data}); +} +function* watchFetchGlobalOrigin() { + while (true) { + yield take(GLOBAL_FETCH_origin_REQUESTED); + + //fetch origin list + const originList = yield call(request, + config.API_SERVER + `getOrigin`, + ); + if (!originList.err) { + yield put({type: GLOBAL_FETCH_origin_SUCCESSED, data: originList.data.data}); + yield put({type: GLOBAL_FETCH_userSetting_REQUESTED, origin: originList.data.data}); + } else { + let errBody = yield originList.err.response.json(); + notification.error({ + message: 'Error', + description: errBody.msg, + }); + } + } +} +function* watchFetchGlobalUserSetting() { + while (true) { + const {origin, selectedOriginKeys, showSentimentInspector} = yield take(GLOBAL_FETCH_userSetting_REQUESTED); + + // get user setting + let userSetting = { + originKeys: JSON.parse(localStorage.getItem('userSetting.originKeys')), + layouts: JSON.parse(localStorage.getItem('userSetting.layouts')), + showSentimentInspector: JSON.parse(localStorage.getItem('userSetting.showSentimentInspector')), + }; + if (!userSetting.originKeys) { + // no localStorage data, save default to it + const {global} = yield select(); + const {gridCols, monitorWidth, monitorHeight} = global.get('gridLayoutConfig').toJS(); + userSetting = { + originKeys: selectedOriginKeys ? selectedOriginKeys : origin.slice(0, 8).map(item => item.key), + layouts: {lg: [], md: [], sm: [], xs: []}, + showSentimentInspector: showSentimentInspector, + }; + for (let i in userSetting.layouts) { + let currentX = 0; + let currentY = 0; + for (let j = 0; j < userSetting.originKeys.length; j++) { + let colsPerRow = gridCols[i] / monitorWidth[i]; + userSetting.layouts[i].push({ + i: userSetting.originKeys[j], + x: currentX * monitorWidth[i], + y: currentY * monitorHeight[i], + w: monitorWidth[i], + h: monitorHeight[i], + minW: monitorWidth[i], + minH: 2, + }); + if (currentX >= colsPerRow - 1) { + currentX = 0; + currentY += 1; + } else { + currentX += 1; + } + } + } + localStorage.setItem('userSetting.originKeys', JSON.stringify(userSetting.originKeys)); + localStorage.setItem('userSetting.layouts', JSON.stringify(userSetting.layouts)); + localStorage.setItem('userSetting.showSentimentInspector', true); + } + + yield put({type: GLOBAL_FETCH_userSetting_SUCCESSED, userSetting}); + yield put({type: GLOBAL_FETCH_newsList_REQUESTED, originKeys: userSetting.originKeys}); + } +} +function* watchFetchGlobalNewsList() { + while (true) { + const {originKeys} = yield take(GLOBAL_FETCH_newsList_REQUESTED); + + //fetch today news list with origin + if (originKeys && originKeys.length) { + const listResults = yield originKeys.map(item => call(request, + config.API_SERVER + `getTodayList?origin_key=${item}`, + )); + if (listResults && listResults.length) { + yield listResults.map((item, index) => { + if (!item.err) { + return put({type: GLOBAL_FETCH_newsList_SUCCESSED, origin: originKeys[index], data: item.data.data}); + } else { + let errBody = item.err.response.json(); + return notification.error({ + message: 'Error', + description: errBody.msg, + }); + } + }); + } + } + } +} +function* watchSetLayouts() { + while (true) { + const {layouts} = yield take(GLOBAL_SET_layouts); + + if (layouts.md.length) + localStorage.setItem('userSetting.layouts', JSON.stringify(layouts)); + } +} + + +export const sagas = [ + watchFetchUserInfo, + watchFetchGlobalUserSetting, + watchFetchGlobalOrigin, + watchFetchGlobalNewsList, + watchSetLayouts, +]; diff --git a/packages/client/src/routes/About/assets/logo-auto-news.png b/packages/client/src/routes/About/assets/logo-auto-news.png new file mode 100644 index 0000000000000000000000000000000000000000..c459181b4c6b96f0986d4cca13a14b40c5a15876 GIT binary patch literal 4759 zcmW+(2{@GP_eLQT62_M7WJZ=kk+Lr{V;^ITEm_7sG=)$|Uv|PUb}?gynXx8I^hJ?` z2-(*x*|PN^B>dms|GM7gdamo7bDwkH=Q+>&CRkaRaDhZXOiWB%aF`(yc+-IU!MQWQ zb6dstD-#pTA1gDI5wJuge-yi0s1a5t;*h6&zrrrJUlGUfuU=5WS86?Jl=UFrj(BtZ zVYNltXM^W0zE$%OpR%hshG|NNMp(UW^uLybZcqA*TJS45Pl_9L@@8nAPsR6Z52^&v zS%4+JenkaeWf=SZUdfnJV1=9)6_(WQUOMSlHLn}}RyC+b%8leo83&dC7A9}tvU9<$ z#|_pQ-Mq*Qh;Nxw(XeHD7rt&8@YRZVW0KH@rA^xxd;{Q|i$}c6XHnUGLU!3^FFLiK zHmir!`c%wGdysF2zWyJUClv_GZJr8P>O6fbY@Z8+GEMmem;qjQBAd=5k^^g(00{Hc zPM{D;HxfGM>$Qi~f_B*t8df+>lkXOf0M$vl76HDuBb)rH7Yt%r#qSkaXMWLq+yJlv zL^Dh61i_O5>Z}Oe1~Dzdm>m23L3q+fASGZ4f+xxQlv-!@01N=xx|dA>mH-v%!L`8k z=y6_-z!KX5X=Je_K&t?>$as)}Zm};Ilyoh&%j?JF4?4aa z0xAN82&nzxTr})Poe;6l1=;{8){8L%h>ojS1iI*99c_ux%DUD)SzBEcD$bzJ3{CRoFfU(4EIB zozEtN*P0OCvVFlajng!R%j^Z9$dmWK0O@O+S~!62&kI6Y*f6oZ=la0GcNyX&&)X2L zD$Mn3W|$ZnXk>U>^G8qThn9bvU(={B)01$1Ual@SNJ~R?1&EZSsNmk##>(V)PwguT znOvCtBL4Z4aDP8%dmAIIqr=0!y}kdoHa9m`S66<_&W?``ef!eg)mmGgmk=BM`0+h6 z)9Xin4i66x_IG}5um2byAOG^{@X}zk#2hpGhb}?N5t~ycPrIfKDM$FbUy?#w*86 zl_sTeb)hbAeMEo${mYPP1D9Jm2ZuCZo9%D}Bie47)Ze~dn{>U}jwhEtB&t(96;?Au zZVBg*)r{>9NEzQy|Ey|vJ+E)7FuRL09M#S<`Uwc_a@52 zfn~y{p{e}lO;bdcvdc-{3okCZ#2tuoJJ0d{Y-?9D36Ax zSIlV;)b0{>%!)RM=(LV)!`|gaHNCdcG_0u_E}chCE41@CHwLt`m7+_K@nSV!%v+}v z6@)SjLqpbEM`w!-9}61qk|-5epGYU>uY)78FNjfA5~gJ(k_0P@CH9ldUB;ez}_ zA-{r5uFunl_HqIOl^AqtvybS+pPT0}2@a_U{n!>+w6AYK0HsZ>&|eDk3Sp0})XsE` zKWT|P4v+f-g0c!9+%3BrEt*xnV`OBM0pY$;?7R9Jzd~#^cnTfiMS*yOA>)=Yt1gBY zui9W)`_GO^DRbWm?#)y8Hd^~5+w+7%Yw1njHmqG!7Fv8hfqVE^!I78B#ZiqKEQ8~gTIMTQ8a;%g+q*=t$& zj3iH@Z{|dzpE9phFK(yu1;FeX|uyaa0IftFM&9EEJXY zyDQb;Ya5?LHkiJbWCe$fz-QuSH6AO#PqfbqND%A%!D}9+4LvG`hZmn(7CuAhlNHtN zAn?()HddjJH`Un%V$!wn`pUbLX22<`V^cSxF zJ8$Dke_@d$`5<(YU$Cg4vrt@5PtmcdA|aEeg%u))fP!O& zJmNbTrL=Yx&Gs?d+-c(kfz#%_E@&{8mN@8sBgNoo!Bv+QWDmD4pOvK?w8bBs6`FBO z$&|>dkPLqPW``!V|GfEAc$Pr7xy{5!QKP2*B~e27c|?01ylf`h@@4gAWDT4_#tDNVjG1|ey|B|X)2IrG+F zivb4h$1LQtqp>SG#mfU8h3>jgFhgO+!aNFuvlC$vbNbpl-~{*Jq-MXVrYjqFKR{6s z#`H;}J)}kD**i472VWwKPW7e4b&?!+EGEm4M@9~9uyME8i;6?^xOJy94F3AS$f4Xv zWPeZ$)F@bRjbH!2(mR~4AHt;zU`oa9Pce6(uzkCMAg+*@8gvt_CFq924^a=3I=1td z$hh8LpgK2JhU3uke7`fcS{9&O86|zWjA&?GZceVZvMn2RQ{ z0giil#Zid#z}jFnjZe|Tm4{h+FW`-nrP4@x?VrJam3-wlG=+#UTyd56 zrNU5RwaoFv$fA&NL1z9M&gVS%>SzO0G?HQBKDqF|?O; zS6)^v$6MbOo^+@cfr?H}3??yjL6*ppu!6?xW-&ms8mwB3JjVTw(W|hUlbFI?`$#44 z#v1>U49|Wzx|b+|_+hRaWh@Y*chx=`lq&FFU(PiHn_iY0${Aa=>HDhED2T6o{p?w_ zOX3m+6-FBjRHrbU7hsw)J>MU_iMt6U-ehJa7p%us8nQx?2hrPYMf9N)w_{@{?^wSa zu`%$XVa)G1lnq;&^N+`JJSr@tZRq%vL~Wu%z7zWckmMS%yP)KA6s@{Ctvj;t3KQc0z88 z-O3YN8c9N}M#*<9-3%5(CDu-H+ebkEwqLla2Q?*?+I5hW*-9E+S7SCyT&`t}0h1aI z+88S-HBLkfzFRQZ#OI{+B^NITkSkIIByt?%yX>q!@SUZKyrveBO&*^?Z^0oyCn$#ad* zTUAiy0u-ViK4QO_CPx!pj;)M^8sS(P2e4AZqmkvD2AQ48GlNot3YkTJ6|XKP$~@bn zIZPPSKZ!^AQ$me^Lny^BE3|}VQW@D?Y_^lnkl6T9=CeCW+uMr%Y29?pirDy!JRY#@ zBwgG^*J^C9wzJ`5p}#fT+Zj_aP^6@?`bxy`buneNEqe-) zQ*#01d1sg7KpnT-0+6ZPq1pD$*|J0ntMAX zMUs(~6}A7MDYbPn=`UHX5VYq0nS03R?Fcq6Yd+hJa)I`mc+X}!hkB)mV%cBm{vhig zS%a<+&X`J;QYJe{T7wscnADx2vKwi?YxiZW5&lrP`TpdGVQZ733EZ|!^q}z7#0Pn)vgT2I{YYsOQyvAB zw+@^{0j5zRVnTy^nl*Cf0)6V7V#m^vEbhDYCwoffIrYrV%(`zVFB9-r{E~^h`f$~1 zBSaQQL8_uAXNqgo%_sPkcx(zRpkh0(Ut???u9Jdf?;d2+cKLab&rkt6u)}8}s%MQ~ zoP5p~p@$O0P2?Cb>LChQKy62z89(P;gwgxoj&vGSbiGnhoy-h1usB**HLs_-?%=a5 z9!pxPr%5y2v~jb>LDXAshwzMcoW6^J76(^z;^R(N0B7xj>w0ai=|ogi+&lzRF@rVxb+AD1Dyb&kr+ab}Ae7x&R*)I9u;Y$^T>$W<;KQ +
+
+ 新闻源监控系统 Auto News System +
+
+

欢迎使用【新闻源监控系统】

+

新闻源监控系统(Auto News System),是一个实时监控、收录新闻更新的工具,主要功能如下:

+
    +
  • 准实时监控新闻更新并汇总反应到界面,免除人工值守,反复刷新监控
  • +
  • 汇总分散的新闻,提供一处界面总览当日新闻全局,供网络新闻编辑和新闻关注者查阅、筛选、处理
  • +
  • 查询往期内容,为新闻专题、汇总专题、旧闻查阅提供数据参考
  • +
  • (开发中的功能……)
  • +
+
+
+ +
+

数据来源如下:

+
+ +
+ +
+

Future

+
+
    +
  • 筛选
  • +
  • 编辑
  • +
  • 转载
  • +
  • 统计
  • +
  • 交流
  • +
  • 设置
  • +
  • 反馈
  • +
+
+ +
+

Why

+
+

+ 加过一个群,名叫"苦逼的网编停不下来"的群,是6年前我在一房产网站做编辑的时候,群里都是全国各地站点的编辑们。大家在群里讨论工作、发闹骚,最热闹时每天群里会有上千条消息。 +

+

+ 断断续续做记者、编辑约6年时间,觉得网络编辑还算件有乐趣的工作。每天早上打开电脑,从各处搜集信息,然后筛选、编辑、归类、比较、分析、排序、制作封面配图、发布,最后得到有序的新闻条目、房产行业信息和漂亮的页面,心里有大大的满足感。 +

+

+ 但编辑中有大量枯燥重复的工作,汇总零散信息、人工值守新闻更新、复制粘贴。3年前有过用自动采集方案来代替的想法,简单弄过一段时间"按键精灵""火车头采集",但技术实力不过关,实际工作中并没起到什么作用。 +

+

现在虽然不做编辑工作,但作为一个 Code for a Better World 的 Web Developer,我觉得这会是一项有意义、有挑战的工作。

+

计算机简直是做这些辛苦工作的最佳"人选",所以可爱的小编们就能解放生产力,将更多精力投入到思考、学习、设计、撰写等方面,将编辑工作更提高一个层次。

+

"苦逼的小编"也可以停下来,有更多时间优雅的喝咖啡。感觉生活都变更美好了呢:)

+

Code with by  + 摄影师陈柏林 +

+
+ +
+

Release Note

+
+
    +
  • +
    Version: 0.3.1
    +

    Date: 2017-05-12

    +
      +
    • 爬虫部署到 docker 中
    • +
    • 系统具有了人工智能 NLP 特性,包括关键字提取、新闻分类、情感评价。模型都采用 NLP 工具现成的,在情感评价和新闻分类上的准确率还有待提高。
    • +
    • 关键字提取使用 HanLP
    • +
    • 新闻分类使用 THUCTC
    • +
    • 情感评价使用 SnowNLP
    • +
    +
  • +
  • +
    Version: 0.3.0
    +

    Date: 2017-05-06

    +
      +
    • API 可部署到 docker 中
    • +
    • 移植爬虫到 scrapy 框架下,移除node crawler框架的爬虫,简化目录结构及依赖
    • +
    • 添加监控项目: 人民网-湖北频道
    • +
    • 数据统一从 detail 表取,list 表已移除
    • +
    • 添加 Filter 路由,功能待开发
    • +
    • 尝试 NLP 开发:关键字提取、文章分类、情感评价,暂未部署上线
    • +
    +
  • +
  • +
    Version: 0.2.1
    +

    Date: 2017-04-11

    +
      +
    • 添加设置模块,保存设置监控对象及监控layouts到本地存储
    • +
    • 往期查询模块添加预览正文
    • +
    • 修正查询日期时区问题
    • +
    • API添加 ETags 与 Expires,缓存提高效率
    • +
    +
  • +
  • +
    Version: 0.2.0
    +

    Date: 2017-03-30

    +
      +
    • 往期查询模块开发
    • +
    • 添加Logo
    • +
    +
  • +
  • +
    Version: 0.1.2
    +

    Date: 2017-03-25

    +
      +
    • 抓取排重,配置结构调整
    • +
    • 添加长报系爬虫配置
    • +
    • 客户端监控页替换 table 组件,提高大数据量显示性能
    • +
    • 客户端优化请求方式,界面细节调整
    • +
    • 监控服务器 API 配置 gzip
    • +
    +
  • +
  • +
    Version: 0.1.0
    +

    Date: 2017-03-20

    +
      +
    • 放弃进一步使用 Firebase 框架(数据库不支持多条件查询),自建 mongoDb 数据库用作存储
    • +
    • 完善客户端监控界面,初始化时加载当日历史数据(数据未分页,量多时偶尔卡死)
    • +
    • 修改爬虫配置,统一 news list, news detail 数据结构
    • +
    • 存储爬取数据到 mongoDb
    • +
    • 爬取时的排重(仍有缺陷)
    • +
    • 开发获取当日爬取数据API
    • +
    +
  • +
  • +
    Version: 0.0.3
    +

    Date: 2017-03-13

    +
      +
    • 使用React开发客户端界面
    • +
    • 探索使用 Firebase database 存储数据,集成实时数据库到 Redux
    • +
    +
  • +
  • +
    Version: 0.0.2
    +

    Date: 2017-03-11

    +
      +
    • 开发爬虫,使用websockt协议实时推送news detail
    • +
    +
  • +
+
+ + ) + } +} + +About.defaultProps = {}; + +export default About diff --git a/packages/client/src/routes/About/components/About.scss b/packages/client/src/routes/About/components/About.scss new file mode 100644 index 0000000..ba7b907 --- /dev/null +++ b/packages/client/src/routes/About/components/About.scss @@ -0,0 +1,80 @@ +.about { + margin: 12px; + p { + text-indent: 2em; + } + .header { + @extend .clearfix; + .img { + margin-top: 26px; + text-align: center; + float: left; + width: 30%; + } + .content { + float: left; + width: 70%; + ul { + list-style: disc; + margin-left: 50px; + } + } + } + .block { + h3 { + font-size: 16px; + } + hr { + margin-bottom: 12px; + } + &.origin { + ul { + list-style: disc; + position: relative; + li { + padding: 2px 4px; + display: inline-block; + margin-left: 18px; + margin-bottom: 10px; + } + } + } + &.future { + } + &.why { + i.iconLove { + vertical-align: middle; + width: 14px; + height: 14px; + display: inline-block; + background-size: contain; + background-repeat: no-repeat; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAMAAADarb8dAAAAZlBMVEUAAAD/Bwf/Bgb/Bgb/BAT/Bwf/Bgb/Bgb/Bwf/Bwf/BQX/Bwf/Bgb/BQX/Bgb/BQX/Bgb/BQX/BAT/BAT/Bgb/CAj/Bgb/Bwf/CAj/Bwf/BQX/Bgb/BQX/BAT/Bwf/AwP/BQX/BwdyG9tKAAAAIXRSTlMA0MCYBeke5N/MxryphH91MSkjGBTd1K2jjWZQSjkODg2xT8wMAAAAbklEQVQI112O1w6DMBTFnEFYZdPdMv7/J0nYwS9HthLpQlvIWJVQveMkN9DI0RL8/pFbUZPbcSVcViFGjzuhH4Lri4iXH1K+fvigb2eXPZjk8EcFUMvNRclMu/5KDSudcv5s2NGZPXqAUykyzcwESvoUBrGItL8AAAAASUVORK5CYII='); + } + } + &.releaseNote { + ul.releaseNoteList { + > li { + margin: 20px 0; + ul { + margin-left: 30px; + list-style: disc; + li { + } + } + } + } + } + & + .block { + margin-top: 24px; + } + } +} + +.clearfix:after { + display: block; + clear: both; + height: 0; + visibility: hidden; + content: '.'; +} diff --git a/packages/client/src/routes/About/containers/AboutContainer.js b/packages/client/src/routes/About/containers/AboutContainer.js new file mode 100644 index 0000000..3b59d5f --- /dev/null +++ b/packages/client/src/routes/About/containers/AboutContainer.js @@ -0,0 +1,37 @@ +import { connect } from 'react-redux' +import { actions as aboutActions } from '../modules/about' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import About from '../components/About' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...aboutActions +}; + +const mapStateToProps = (state) => ({ + about:state.about +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(About) diff --git a/packages/client/src/routes/About/index.js b/packages/client/src/routes/About/index.js new file mode 100644 index 0000000..106a0c7 --- /dev/null +++ b/packages/client/src/routes/About/index.js @@ -0,0 +1,29 @@ +import { injectReducer } from 'store/reducers' +import { injectSagas } from 'store/sagas' + +export default (store) => ({ + path: 'about', + breadcrumbName:'About', + /* Async getComponent is only invoked when route matches */ + getComponent (nextState, cb) { + /* Webpack - use 'require.ensure' to create a split point + and embed an async module loader (jsonp) when bundling */ + require.ensure([ + './containers/AboutContainer', + './modules/about' + ], (require) => { + /* Webpack - use require callback to define + dependencies for bundling */ + const about = require('./containers/AboutContainer').default + const reducer = require('./modules/about').default + const sagas = require('./modules/about').sagas + /* Add the reducer to the store on key 'about' */ + injectReducer(store, { key: 'about', reducer }) + injectSagas(store, { key: 'about', sagas }) + /* Return getComponent */ + cb(null, about) + + /* Webpack named bundle */ + }, 'about') + } +}) diff --git a/packages/client/src/routes/About/modules/about.js b/packages/client/src/routes/About/modules/about.js new file mode 100644 index 0000000..15d482c --- /dev/null +++ b/packages/client/src/routes/About/modules/about.js @@ -0,0 +1,63 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {startSubmit,stopSubmit} from 'redux-form' +import {message, notification} from 'antd'; + + +// Constants +const About_FETCH_REQUESTED = 'About_FETCH_REQUESTED'; +const About_FETCH_SUCCESSED = 'About_FETCH_SUCCESSED'; +const About_FETCH_FAILURE = 'About_FETCH_FAILURE'; + + +// Actions +function fetchAbout() { + return { + type: About_FETCH_REQUESTED +} +}; + +export const actions = { + fetchAbout, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [About_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [About_FETCH_SUCCESSED]: (state, payload) => state.setIn(['isFetching'], false), + [About_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, + list: Immutable.fromJS([{key: '001'},]), +}); +export default function aboutReducer (state = initialState, action) { + const handler = ACTION_HANDLERS[action.type] + + return handler ? handler(state, action) : state +} + + +// Sagas + function* watchFetchAbout() { + while (true) { + + yield take(About_FETCH_REQUESTED) + // let {data, err} = yield call(asyncWait) + // if (!err) + + yield put({type: 'About_FETCH_SUCCESSED'}) + // else { + // + // yield put({type: 'About_FETCH_FAILURE', error: err.toString()}) + // } +} +} + + +export const sagas = [ +watchFetchAbout, +]; diff --git a/packages/client/src/routes/Filter/components/Filter.js b/packages/client/src/routes/Filter/components/Filter.js new file mode 100644 index 0000000..0dc949b --- /dev/null +++ b/packages/client/src/routes/Filter/components/Filter.js @@ -0,0 +1,51 @@ +import React, {Component} from 'react' +import {Card, Table, Button, Modal, Popconfirm} from 'antd'; +import cls from './Filter.scss' +import Sortable from 'sortablejs' + +class Filter extends Component { + constructor(props) { + super(props); + } + + static propTypes = {}; + + componentDidMount() { + if (this.props.global.get('filteredList').size > 0) { + this.props.fetchFilter(this.props.global.get('filteredList').toJS()); + } + } + + sortableContainersDecorator = (componentBackingInstance) => { + // check if backing instance not null + if (componentBackingInstance) { + let options = { + // handle: ".group-title", // Restricts sort start click/touch to the specified element + draggable: "li", // Specifies which items inside the element should be sortable + }; + Sortable.create(componentBackingInstance, options); + } + }; + + render() { + const {global, filter} = this.props; + + return ( + +
    + {filter.get('filteredList').size > 0 && + filter.get('filteredList').toJS().map((item, index) => +
  • +
    {index}
    +
    {item.title}
    +
  • ) + } +
+
+ ) + } +} + +Filter.defaultProps = {}; + +export default Filter diff --git a/packages/client/src/routes/Filter/components/Filter.scss b/packages/client/src/routes/Filter/components/Filter.scss new file mode 100644 index 0000000..acae925 --- /dev/null +++ b/packages/client/src/routes/Filter/components/Filter.scss @@ -0,0 +1,21 @@ +.filter { + margin: 12px; + ul.list { + li { + cursor: move; + padding: 5px 0; + > div { + display: inline-block; + } + &:nth-child(odd) { + background-color: #eee; + } + &:nth-child(even) { + background-color: #fff; + } + & + li { + margin-top: 5px; + } + } + } +} diff --git a/packages/client/src/routes/Filter/containers/FilterContainer.js b/packages/client/src/routes/Filter/containers/FilterContainer.js new file mode 100644 index 0000000..a42af72 --- /dev/null +++ b/packages/client/src/routes/Filter/containers/FilterContainer.js @@ -0,0 +1,38 @@ +import {connect} from 'react-redux' +import {actions as filterActions} from '../modules/filter' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import Filter from '../components/Filter' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...filterActions, +}; + +const mapStateToProps = (state) => ({ + filter: state.filter, + global: state.global, +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(Filter) diff --git a/packages/client/src/routes/Filter/index.js b/packages/client/src/routes/Filter/index.js new file mode 100644 index 0000000..1c1f4c6 --- /dev/null +++ b/packages/client/src/routes/Filter/index.js @@ -0,0 +1,29 @@ +import { injectReducer } from 'store/reducers' +import { injectSagas } from 'store/sagas' + +export default (store) => ({ + path: 'filter', + breadcrumbName:'Filter', + /* Async getComponent is only invoked when route matches */ + getComponent (nextState, cb) { + /* Webpack - use 'require.ensure' to create a split point + and embed an async module loader (jsonp) when bundling */ + require.ensure([ + './containers/FilterContainer', + './modules/filter' + ], (require) => { + /* Webpack - use require callback to define + dependencies for bundling */ + const filter = require('./containers/FilterContainer').default; + const reducer = require('./modules/filter').default; + const sagas = require('./modules/filter').sagas; + /* Add the reducer to the store on key 'filter' */ + injectReducer(store, { key: 'filter', reducer }); + injectSagas(store, { key: 'filter', sagas }); + /* Return getComponent */ + cb(null, filter); + + /* Webpack named bundle */ + }, 'filter') + } +}) diff --git a/packages/client/src/routes/Filter/modules/filter.js b/packages/client/src/routes/Filter/modules/filter.js new file mode 100644 index 0000000..79f53e6 --- /dev/null +++ b/packages/client/src/routes/Filter/modules/filter.js @@ -0,0 +1,70 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {startSubmit, stopSubmit} from 'redux-form' +import {message, notification} from 'antd'; +import config from 'utils/config' + + +// Constants +const Filter_FETCH_REQUESTED = 'Filter_FETCH_REQUESTED'; +const Filter_FETCH_SUCCESSED = 'Filter_FETCH_SUCCESSED'; +const Filter_FETCH_FAILURE = 'Filter_FETCH_FAILURE'; + + +// Actions +function fetchFilter(filteredList) { + return { + type: Filter_FETCH_REQUESTED, + filteredList, + } +} + +export const actions = { + fetchFilter, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [Filter_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [Filter_FETCH_SUCCESSED]: (state, action) => state.setIn(['isFetching'], false) + .set('filteredList', Immutable.fromJS(action.data)), + [Filter_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, + filteredList: Immutable.List(), +}); +export default function filterReducer(state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + + return handler ? handler(state, action) : state; +} + + +// Sagas +function* watchFetchFilter() { + while (true) { + const {filteredList} = yield take(Filter_FETCH_REQUESTED); + const filteredDetail = yield call(request, + config.API_SERVER + `getFilteredList?id=${filteredList.join(',')}`, + ); + if (!filteredDetail.err) { + yield put({type: Filter_FETCH_SUCCESSED, data: filteredDetail.data.data}); + } else { + yield put({type: Filter_FETCH_FAILURE}); + let errBody = yield filteredDetail.err.response.statusText; + notification.error({ + message: 'Error', + description: errBody, + }); + } + } +} + + +export const sagas = [ + watchFetchFilter, +]; diff --git a/packages/client/src/routes/Monitor/components/Monitor.js b/packages/client/src/routes/Monitor/components/Monitor.js new file mode 100644 index 0000000..170ec8b --- /dev/null +++ b/packages/client/src/routes/Monitor/components/Monitor.js @@ -0,0 +1,63 @@ +import React, {Component,} from 'react' +import PropTypes from 'prop-types'; +import cls from './Monitor.scss' +import MonitorCard from './widgets/MonitorCard/MonitorCard' +import '../../../../node_modules/react-grid-layout/css/styles.css' +import '../../../../node_modules/react-resizable/css/styles.css' +import {Responsive, WidthProvider} from 'react-grid-layout'; +const ResponsiveReactGridLayout = WidthProvider(Responsive); + +class Monitor extends Component { + constructor(props) { + super(props); + } + + static propTypes = { + newsList: PropTypes.object, + origin: PropTypes.array, + }; + + componentDidMount() { + this.props.fetchMonitor(); + } + + componentWillUnmount() { + this.props.onDestroy(); + } + + render() { + const {monitor, global, setLayouts, setFilteredList} = this.props; + const gridLayoutConfig = global.toJS().gridLayoutConfig; + + return ( +
+ {/*monitor dashboard*/} + setLayouts(layouts)}> + {global.getIn(['userSetting', 'originKeys']).toJS().map((item, index) => { + return ( +
+ +
+ ); + } + )} +
+
+ ); + } +} + +Monitor.defaultProps = { + newsList: {}, + origin: [], +}; + +export default Monitor diff --git a/packages/client/src/routes/Monitor/components/Monitor.scss b/packages/client/src/routes/Monitor/components/Monitor.scss new file mode 100644 index 0000000..f859eeb --- /dev/null +++ b/packages/client/src/routes/Monitor/components/Monitor.scss @@ -0,0 +1,12 @@ +@charset "UTF-8"; + +.monitor { + .layoutContent { + > div { + z-index: 1; + } + > span { + z-index: 2; + } + } +} diff --git a/packages/client/src/routes/Monitor/components/assets/icon_Move2.png b/packages/client/src/routes/Monitor/components/assets/icon_Move2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e53cad637e6986073e0dc110a1820d48d7da885 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^Ahr+(Gms3;++WGS!04SB5>XQ2>tmIipR1RclAn~S zSCLx)lxJYDv9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3 za#eP+Wr~u$9hXgo70`g()RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`$q{6sLWFOC zf^&XRs)DJWnQpS7v4w)UrJkXwrG=4+j)IYap_#scrM{twu7RPIfu)s!p#l^r*>Ne@ z6s4qD1-ZCEEd%mwl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{ z^NN*0MnKGPNi9w;$}A|!%+FH*nVFcBUs__Tq@)kBL?3Dk(0lrD{{cDh5K7Gh21^mp z{|cV#tbk$1lJ4m1$iT3%pZiZDE0E7v9OUlAui7mk2Kh`pvB*$S;^d$!PhWyAoH_q|d%yw12zP zegnP@%YMGuvT`QpyndktyS7c2DE)U-Q9b_2%@*(ehnLxoE!VH%z3ppvZ|PErIUx#at_wAue*85#u_I;e zlbqcuO+Ee;9 ( + + props.setFilteredList(data[rowIndex]._id)} + checked={props.filteredList.findIndex(i => i === data[rowIndex]._id) > -1}/> + +); + +const DateCell = ({rowIndex, data, col, ...props}) => ( + + {moment(data[rowIndex].date).format('MM-DD HH:mm:ss')} + +); + +const TitleCell = ({rowIndex, data, col, ...props}) => { + const record = data.list[rowIndex]; + const showSentimentInspector = data.showSentimentInspector; + const inspector = (sentiment) => { + if ((sentiment !== null || sentiment !== undefined) && showSentimentInspector) { + let width = Math.abs(sentiment - .5) * 100 + '%'; + return ( +
+
= .5 ? cls.positive : cls.negative} + style={{width}}/> +
+ ); + } + }; + + return ( + + + {record.title ? + (record.title + (record.subTitle ? (' ' + record.subTitle) : '')) : + (无标题) + } + {inspector(record.nlpSentiment)} + + ) +}; + +class MonitorCard extends Component { + constructor(props) { + super(props); + this.state = { + mouseEnter: false, + listSnap: [], + }; + } + + static propTypes = { + origin_key: PropTypes.string, + origin_name: PropTypes.string.isRequired, + list: PropTypes.array, + isFetched: PropTypes.bool, + }; + + render() { + + return ( + + {this.props.origin_name} + +
} + extra={
+ + +
+ }> + +
this.setState({mouseEnter: true, listSnap: this.props.list})} + onMouseLeave={() => this.setState({mouseEnter: false, listSnap: []})}> + {this.props.list.length ? + + {this.state.mouseEnter && + } + width={30} + />} + 日期} + cell={} + width={.28 * this.props.containerWidth - (this.state.mouseEnter ? 30 : 0)} + /> + 标题} + cell={} + width={.72 * this.props.containerWidth} + /> +
: +
暂无数据
} +
+
+ + ); + } +} + +MonitorCard.defaultProps = { + origin_key: '', + origin_name: '楚天都市报', + list: [ + { + title: 'title', + url: 'url', + origin_key: 'origin',//来源 + date: new Date(), + }, + ] +}; + +export default Dimensions({elementResize: true})(MonitorCard); diff --git a/packages/client/src/routes/Monitor/components/widgets/MonitorCard/MonitorCard.scss b/packages/client/src/routes/Monitor/components/widgets/MonitorCard/MonitorCard.scss new file mode 100644 index 0000000..112d6c7 --- /dev/null +++ b/packages/client/src/routes/Monitor/components/widgets/MonitorCard/MonitorCard.scss @@ -0,0 +1,84 @@ +@charset "UTF-8"; + +.monitorCard { + height: 100%; + position: relative; + padding-top: 48px; + span.power { + vertical-align: middle; + display: inline-block; + width: 20px; + height: 4px; + margin-left: 4px; + border-radius: 4px; + } + i.iconMove { + margin-left: 8px; + display: inline-block; + vertical-align: middle; + width: 10px; + height: 18px; + background-image: url(../../assets/icon_Move2.png); + cursor: move; + } + .empty { + margin-top: 15%; + text-align: center; + } + .inspector { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + .positive { + position: absolute; + top: 0; + left: 50%; + height: 100%; + background-color: #3e3; + } + .negative { + position: absolute; + top: 0; + right: 50%; + height: 100%; + background-color: #e33; + } + } + .tableHeader { + :global { + .public_fixedDataTableCell_cellContent { + padding: 2px 4px; + } + } + } + + :global { + .ant-card-head { + position: absolute; + top: 0; + left: 0; + width: 100%; + } + .ant-card-extra { + right: 10px; + } + .ant-card-body { + padding: 0; + height: 100%; + .fixedDataTableLayout_main { + border: 0 none; + .fixedDataTableCellLayout_main { + > div { + display: block; + overflow: hidden; + width: 100%; + white-space: nowrap; + text-overflow: ellipsis; + } + } + } + } + } +} diff --git a/packages/client/src/routes/Monitor/containers/MonitorContainer.js b/packages/client/src/routes/Monitor/containers/MonitorContainer.js new file mode 100644 index 0000000..d23a945 --- /dev/null +++ b/packages/client/src/routes/Monitor/containers/MonitorContainer.js @@ -0,0 +1,38 @@ +import {connect} from 'react-redux' +import {actions as monitorActions} from '../modules/monitor' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import Monitor from '../components/Monitor' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...monitorActions, +}; + +const mapStateToProps = (state) => ({ + monitor: state.monitor, + global: state.global, +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(Monitor) diff --git a/packages/client/src/routes/Monitor/index.js b/packages/client/src/routes/Monitor/index.js new file mode 100644 index 0000000..c2dd2c7 --- /dev/null +++ b/packages/client/src/routes/Monitor/index.js @@ -0,0 +1,6 @@ +import Monitor from './containers/MonitorContainer' + +// Sync route definition +export default { + component: Monitor +} diff --git a/packages/client/src/routes/Monitor/modules/monitor.js b/packages/client/src/routes/Monitor/modules/monitor.js new file mode 100644 index 0000000..703584e --- /dev/null +++ b/packages/client/src/routes/Monitor/modules/monitor.js @@ -0,0 +1,65 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {notification} from 'antd'; +import config from '../../../utils/config' +import {setLayouts,setFilteredList} from '../../../redux/Global' + +// Constants +const Monitor_FETCH_REQUESTED = 'Monitor_FETCH_REQUESTED'; +const Monitor_FETCH_SUCCESSED = 'Monitor_FETCH_SUCCESSED'; +const Monitor_FETCH_FAILURE = 'Monitor_FETCH_FAILURE'; +const Monitor_ON_destroy = 'Monitor_ON_destroy'; + + +// Actions +function fetchMonitor() { + return { + type: Monitor_FETCH_REQUESTED, + } +} +function onDestroy() { + return { + type: Monitor_ON_destroy, + } +} + +export const actions = { + fetchMonitor, + onDestroy, + setLayouts, + setFilteredList, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [Monitor_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [Monitor_FETCH_SUCCESSED]: (state, action) => state.set('isFetching', false), + [Monitor_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), + [Monitor_ON_destroy]: () => initialState, +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, +}); +export default function monitorReducer(state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + + return handler ? handler(state, action) : state +} + + +// Sagas +function* watchFetchMonitor() { + while (true) { + yield take(Monitor_FETCH_REQUESTED); + + yield put({type: 'Monitor_FETCH_SUCCESSED'}); + } +} + + +export const sagas = [ + watchFetchMonitor, +]; diff --git a/packages/client/src/routes/PastInquiry/components/PastInquiry.js b/packages/client/src/routes/PastInquiry/components/PastInquiry.js new file mode 100644 index 0000000..d7b133b --- /dev/null +++ b/packages/client/src/routes/PastInquiry/components/PastInquiry.js @@ -0,0 +1,130 @@ +import React, {Component} from 'react' +import {Table, Card, Modal, Spin} from 'antd'; +import cls from './PastInquiry.scss' +import PastInquiryForm from './PastInquiryForm' +import moment from 'moment' + +class PastInquiry extends Component { + constructor(props) { + super(props); + } + + static propTypes = {}; + + componentDidMount() { + } + + componentWillUnmount() { + this.props.onDestroy(); + } + + render() { + const {global, pastInquiry, setFilteredList} = this.props; + const pastInquiryResult = pastInquiry.get('pastInquiryResult').toJS(); + const formData = pastInquiry.get('form').toJS(); + const detail = pastInquiry.get('detail').toJS(); + const columns = [ + { + title: '日期', + key: 'date', + render: (text, record, index) => moment(record.date).format('MM-DD HH:mm:ss'), + }, + { + title: '来源', + dataIndex: 'origin_name', + key: 'origin_name', + }, + { + title: '标题', + key: 'title', + render: (text, record, index) => + {record.title ? + (record.title + (record.subTitle ? ' ' + record.subTitle : '')) : + (无标题)} + , + }, + { + title: '作者', + dataIndex: 'authorName', + key: 'authorName', + }, + { + title: '编辑', + dataIndex: 'editorName', + key: 'editorName', + }, + { + title: '分类', + key: 'nlpClassify', + render: (text, record, index) => record.nlpClassify && record.nlpClassify.length && record.nlpClassify[0].name + }, + { + title: '栏目', + dataIndex: 'category', + key: 'category', + }, + { + title: '关键词', + key: 'keywords', + render: (text, record, index) => record.keywords.join(', ') + }, + { + title: '操作', + key: 'operation', + render: (text, record, index) => + this.props.fetchDetailById(record._id)}>预览, + }, + ]; + const rowSelection = { + selectedRowKeys: global.get('filteredList').toJS(), + onSelect: (record, selected, selectedRows) => { + setFilteredList(record._id); + }, + onSelectAll: (selected, selectedRows, changeRows) => { + changeRows.length && changeRows.forEach(i => setFilteredList(i._id)); + }, + }; + const pagination = { + current: pastInquiryResult.pagination.current, + total: pastInquiryResult.pagination.total, + pageSize: pastInquiryResult.pagination.pageSize, + showSizeChanger: true, + showQuickJumper: true, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} items`, + pageSizeOptions: ['10', '20', '30'], + onChange: (page, pageSize) => this.props.fetchPastInquiry(formData.origin.value.join(','), new Date(formData.rangeTimePicker.value[0]), new Date(formData.rangeTimePicker.value[1]), formData.keyword.value, page || 1, pageSize || 20), + onShowSizeChange: (page, pageSize) => this.props.fetchPastInquiry(formData.origin.value.join(','), new Date(formData.rangeTimePicker.value[0]), new Date(formData.rangeTimePicker.value[1]), formData.keyword.value, page || 1, pageSize || 20), + }; + + return ( +
+ {/*query form*/} + + + {/*search result*/} + + record._id} pagination={pagination} + dataSource={pastInquiryResult.list}/> + + + {/*detail modal*/} + {pastInquiry.get('isDetailModalShow') && + this.props.setIsDetailModalShow(false)}> + +
+ + } +
+ ); + } +} + +PastInquiry.defaultProps = {}; + +export default PastInquiry diff --git a/packages/client/src/routes/PastInquiry/components/PastInquiry.scss b/packages/client/src/routes/PastInquiry/components/PastInquiry.scss new file mode 100644 index 0000000..a614f3c --- /dev/null +++ b/packages/client/src/routes/PastInquiry/components/PastInquiry.scss @@ -0,0 +1,3 @@ +.pastInquiry { + margin: 12px; +} diff --git a/packages/client/src/routes/PastInquiry/components/PastInquiryForm.js b/packages/client/src/routes/PastInquiry/components/PastInquiryForm.js new file mode 100644 index 0000000..93f546b --- /dev/null +++ b/packages/client/src/routes/PastInquiry/components/PastInquiryForm.js @@ -0,0 +1,88 @@ +/** + * Created by berlin on 2017/3/26. + */ + +import React, { + Component, +} from 'react'; +import PropTypes from 'prop-types'; +import moment from 'moment' +import {Row, Col, Form, Input, DatePicker, Select, Button} from 'antd'; +const FormItem = Form.Item; +const RangePicker = DatePicker.RangePicker; + +class PastInquiryForm extends Component { + constructor(props) { + super(props); + } + + static propTypes = {}; + + handleSubmit = (e) => { + e.preventDefault(); + this.props.form.validateFields((err, values) => { + if (!err) { + this.props.fetchPastInquiry(values.origin.join(','), new Date(values.rangeTimePicker[0]), new Date(values.rangeTimePicker[1]), values.keyword, 1, 20); + } + }); + }; + + render() { + const {getFieldDecorator} = this.props.form; + + return ( +
+ +
+ {this.props.origins.length ? + + {getFieldDecorator('origin', { + rules: [{required: true, message: '请选择来源'}], + onChange: (value) => { + }, + })( + )} + : null} + + + + + {getFieldDecorator('rangeTimePicker', { + rules: [{type: 'array', required: true, message: '请选择日期范围'}], + initialValue: [moment(moment().format('YYYY-MM-DD')), moment(moment().add({day: 1}).format('YYYY-MM-DD'))], + onChange: (value, dateString) => { + }, + })( + + )} + + + + + + {getFieldDecorator('keyword', { + rules: [{required: false}], + onChange: (value) => { + }, + })()} + + + + + + + + + ); + } +} + +PastInquiryForm.defaultProps = {}; + +export default Form.create({ + onFieldsChange: (props, fields) => props.setFormValue(fields), +})(PastInquiryForm); + diff --git a/packages/client/src/routes/PastInquiry/containers/PastInquiryContainer.js b/packages/client/src/routes/PastInquiry/containers/PastInquiryContainer.js new file mode 100644 index 0000000..c6f8083 --- /dev/null +++ b/packages/client/src/routes/PastInquiry/containers/PastInquiryContainer.js @@ -0,0 +1,38 @@ +import {connect} from 'react-redux' +import {actions as pastInquiryActions} from '../modules/pastInquiry' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import PastInquiry from '../components/PastInquiry' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...pastInquiryActions, +}; + +const mapStateToProps = (state) => ({ + pastInquiry: state.pastInquiry, + global: state.global, +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(PastInquiry) diff --git a/packages/client/src/routes/PastInquiry/index.js b/packages/client/src/routes/PastInquiry/index.js new file mode 100644 index 0000000..000505f --- /dev/null +++ b/packages/client/src/routes/PastInquiry/index.js @@ -0,0 +1,29 @@ +import { injectReducer } from 'store/reducers' +import { injectSagas } from 'store/sagas' + +export default (store) => ({ + path: 'pastInquiry', + breadcrumbName:'PastInquiry', + /* Async getComponent is only invoked when route matches */ + getComponent (nextState, cb) { + /* Webpack - use 'require.ensure' to create a split point + and embed an async module loader (jsonp) when bundling */ + require.ensure([ + './containers/PastInquiryContainer', + './modules/pastInquiry' + ], (require) => { + /* Webpack - use require callback to define + dependencies for bundling */ + const pastInquiry = require('./containers/PastInquiryContainer').default; + const reducer = require('./modules/pastInquiry').default; + const sagas = require('./modules/pastInquiry').sagas; + /* Add the reducer to the store on key 'pastInquiry' */ + injectReducer(store, { key: 'pastInquiry', reducer }); + injectSagas(store, { key: 'pastInquiry', sagas }); + /* Return getComponent */ + cb(null, pastInquiry); + + /* Webpack named bundle */ + }, 'pastInquiry') + } +}) diff --git a/packages/client/src/routes/PastInquiry/modules/pastInquiry.js b/packages/client/src/routes/PastInquiry/modules/pastInquiry.js new file mode 100644 index 0000000..785413a --- /dev/null +++ b/packages/client/src/routes/PastInquiry/modules/pastInquiry.js @@ -0,0 +1,138 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {notification} from 'antd'; +import config from 'utils/config' +import moment from 'moment' +import {setFilteredList} from '../../../redux/Global' + +// Constants +const PastInquiry_FETCH_REQUESTED = 'PastInquiry_FETCH_REQUESTED'; +const PastInquiry_FETCH_SUCCESSED = 'PastInquiry_FETCH_SUCCESSED'; +const PastInquiry_FETCH_FAILURE = 'PastInquiry_FETCH_FAILURE'; +const PastInquiry_ON_destroy = 'PastInquiry_ON_destroy'; +const PastInquiry_SET_formValue = 'PastInquiry_SET_formValue'; +const PastInquiry_SET_isDetailModalShow = 'PastInquiry_SET_isDetailModalShow'; +const PastInquiry_FETCH_detail_REQUESTED = 'PastInquiry_FETCH_detail_REQUESTED'; +const PastInquiry_FETCH_detail_SUCCESSED = 'PastInquiry_FETCH_detail_SUCCESSED'; + + +// Actions +function onDestroy() { + return { + type: PastInquiry_ON_destroy + } +} +function fetchPastInquiry(origin = '', beginDate = new Date(moment().format('YYYY-MM-DD')), endDate = new Date(moment().add({day: 1}).format('YYYY-MM-DD')), keyword = '', current = 1, pageSize = 20) { + return { + type: PastInquiry_FETCH_REQUESTED, + origin, beginDate, endDate, keyword, current, pageSize, + } +} +function setFormValue(fields) { + return { + type: PastInquiry_SET_formValue, + fields, + } +} +function setIsDetailModalShow(status = false) { + return { + type: PastInquiry_SET_isDetailModalShow, + status, + } +} +function fetchDetailById(id) { + return { + type: PastInquiry_FETCH_detail_REQUESTED, + id, + } +} + +export const actions = { + fetchPastInquiry, + onDestroy, + setFormValue, + setIsDetailModalShow, + fetchDetailById, + setFilteredList, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [PastInquiry_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [PastInquiry_FETCH_SUCCESSED]: (state, action) => state.setIn(['isFetching'], false) + .set('pastInquiryResult', Immutable.fromJS(action.data)), + [PastInquiry_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), + [PastInquiry_SET_formValue]: (state, action) => state.set('form', state.get('form').mergeDeep(Immutable.fromJS(action.fields))), + [PastInquiry_FETCH_detail_SUCCESSED]: (state, action) => state.set('detail', Immutable.fromJS(action.data)).set('isDetailFetching', false), + [PastInquiry_FETCH_detail_REQUESTED]: (state, action) => state.set('isDetailFetching', true), + [PastInquiry_SET_isDetailModalShow]: (state, action) => { + if (action.status) { + return state.set('isDetailModalShow', action.status); + } else { + return state.set('isDetailModalShow', action.status).set('detail', Immutable.fromJS({})); + } + }, + [PastInquiry_ON_destroy]: () => initialState, +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, + pastInquiryResult: Immutable.fromJS({list: [], pagination: {}}), + form: Immutable.fromJS({}), + isDetailModalShow: false, + isDetailFetching: false, + detail: Immutable.fromJS({}), +}); +export default function pastInquiryReducer(state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + + return handler ? handler(state, action) : state; +} + + +// Sagas +function* watchFetchPastInquiry() { + while (true) { + const {origin, beginDate, endDate, keyword, current, pageSize} = yield take(PastInquiry_FETCH_REQUESTED); + + const pastInquiry = yield call(request, + config.API_SERVER + `pastInquiry?origin=${origin}&beginDate=${beginDate}&endDate=${endDate}&keyword=${keyword}¤t=${current}&pageSize=${pageSize}`, + ); + if (!pastInquiry.err) { + yield put({type: PastInquiry_FETCH_SUCCESSED, data: pastInquiry.data.data}); + } else { + let errBody = yield pastInquiry.err.response.statusText; + notification.error({ + message: 'Error', + description: errBody, + }); + } + } +} +function* watchFetchDetailById() { + while (true) { + const {id} = yield take(PastInquiry_FETCH_detail_REQUESTED); + + yield put(setIsDetailModalShow(true)); + const newsDetail = yield call(request, + config.API_SERVER + `getNewsDetailById?id=${id}`, + ); + if (!newsDetail.err) { + yield put({type: PastInquiry_FETCH_detail_SUCCESSED, data: newsDetail.data.data}); + } else { + let errBody = yield newsDetail.err.response.statusText; + notification.error({ + message: 'Error', + description: errBody, + }); + } + } +} + + +export const sagas = [ + watchFetchPastInquiry, + watchFetchDetailById, +]; diff --git a/packages/client/src/routes/Setting/components/Setting.js b/packages/client/src/routes/Setting/components/Setting.js new file mode 100644 index 0000000..89e6578 --- /dev/null +++ b/packages/client/src/routes/Setting/components/Setting.js @@ -0,0 +1,42 @@ +import React, {Component} from 'react' +import {Card, Table, Button, Modal, Transfer} from 'antd'; +import cls from './Setting.scss' +import SettingForm from './widgets/SettingForm' + +class Setting extends Component { + constructor(props) { + super(props); + } + + static propTypes = {}; + + componentDidMount() { + this.props.fetchSetting(); + } + + componentWillUnmount() { + this.props.onDestroy(); + } + + render() { + const {global, setting, onSubmitForm, onResetDefault} = this.props; + + return ( +
+ + + +
+ ) + } +} + +Setting.defaultProps = {}; + +export default Setting diff --git a/packages/client/src/routes/Setting/components/Setting.scss b/packages/client/src/routes/Setting/components/Setting.scss new file mode 100644 index 0000000..b722291 --- /dev/null +++ b/packages/client/src/routes/Setting/components/Setting.scss @@ -0,0 +1,3 @@ +.setting { + margin: 12px; +} diff --git a/packages/client/src/routes/Setting/components/widgets/SettingForm.js b/packages/client/src/routes/Setting/components/widgets/SettingForm.js new file mode 100644 index 0000000..5f01d4b --- /dev/null +++ b/packages/client/src/routes/Setting/components/widgets/SettingForm.js @@ -0,0 +1,116 @@ +/** + * Created by berlin on 2017/4/8. + */ +import React, { + Component, +} from 'react'; +import PropTypes from 'prop-types'; +import {Field, reduxForm} from 'redux-form'; +import {Row, Col, Form, Input, Select, Button, Transfer, Popconfirm, Switch} from 'antd'; +const FormItem = Form.Item; + +const validate = (values) => { + const errors = {}; + values.selectedOriginKeys.length === 0 && (errors.selectedOriginKeys = '至少选择一个监控对象'); + values.selectedOriginKeys.length > 8 && (errors.selectedOriginKeys = '最多能选择8项'); + + return errors; +}; + +const TransferField = ({input, required, dataSource, label, labelSpan, wrapperSpan, meta: {touched, error}}) => { + return ( + + option.name.indexOf(inputValue) > -1} + targetKeys={input.value} + render={item => item.name} + onChange={(targetKeys) => { + input.onChange(targetKeys); + }}/> + + ) +}; +const SwitchField = ({input, required, label, labelSpan, wrapperSpan, meta: {touched, error}}) => { + return ( + + { + input.onChange(checked); + }}/> + + ) +}; + +class SettingForm extends Component { + constructor(props) { + super(props); + } + + static propTypes = {}; + + handleSubmit = (e) => { + e.preventDefault(); + this.props.form.validateFields((err, values) => { + if (!err) { + console.log(values); + } + }); + }; + + render() { + const {origin, handleSubmit, submitting, onResetDefault, reset} = this.props; + + return ( + + { + //console.log(value); + }} + component={SwitchField}/> + { + //console.log(value); + }} + component={TransferField}/> + + {/*buttons*/} + + + + + onResetDefault()}> + + + + + + ); + } +} + +SettingForm.defaultProps = {}; + +export default reduxForm({ + form: 'settingForm', + validate, + enableReinitialize: true, +})(SettingForm); diff --git a/packages/client/src/routes/Setting/containers/SettingContainer.js b/packages/client/src/routes/Setting/containers/SettingContainer.js new file mode 100644 index 0000000..98ce22b --- /dev/null +++ b/packages/client/src/routes/Setting/containers/SettingContainer.js @@ -0,0 +1,38 @@ +import { connect } from 'react-redux' +import { actions as settingActions } from '../modules/setting' + +/* This is a container component. Notice it does not contain any JSX, + nor does it import React. This component is **only** responsible for + wiring in the actions and state necessary to render a presentational + component - in this case, the counter: */ + +import Setting from '../components/Setting' + +/* Object of action creators (can also be function that returns object). + Keys will be passed as props to presentational components. Here we are + implementing our wrapper around increment; the component doesn't care */ + +const mapActionCreators = { + ...settingActions, +}; + +const mapStateToProps = (state) => ({ + setting:state.setting, + global:state.global, +}); + +/* Note: mapStateToProps is where you should use `reselect` to create selectors, ie: + + import { createSelector } from 'reselect' + const counter = (state) => state.counter + const tripleCount = createSelector(counter, (count) => count * 3) + const mapStateToProps = (state) => ({ + counter: tripleCount(state) + }) + + Selectors can compute derived data, allowing Redux to store the minimal possible state. + Selectors are efficient. A selector is not recomputed unless one of its arguments change. + Selectors are composable. They can be used as input to other selectors. + https://github.com/reactjs/reselect */ + +export default connect(mapStateToProps, mapActionCreators)(Setting) diff --git a/packages/client/src/routes/Setting/index.js b/packages/client/src/routes/Setting/index.js new file mode 100644 index 0000000..2fc38fd --- /dev/null +++ b/packages/client/src/routes/Setting/index.js @@ -0,0 +1,29 @@ +import { injectReducer } from 'store/reducers' +import { injectSagas } from 'store/sagas' + +export default (store) => ({ + path: 'setting', + breadcrumbName:'Setting', + /* Async getComponent is only invoked when route matches */ + getComponent (nextState, cb) { + /* Webpack - use 'require.ensure' to create a split point + and embed an async module loader (jsonp) when bundling */ + require.ensure([ + './containers/SettingContainer', + './modules/setting' + ], (require) => { + /* Webpack - use require callback to define + dependencies for bundling */ + const setting = require('./containers/SettingContainer').default; + const reducer = require('./modules/setting').default; + const sagas = require('./modules/setting').sagas; + /* Add the reducer to the store on key 'setting' */ + injectReducer(store, { key: 'setting', reducer }); + injectSagas(store, { key: 'setting', sagas }); + /* Return getComponent */ + cb(null, setting); + + /* Webpack named bundle */ + }, 'setting') + } +}) diff --git a/packages/client/src/routes/Setting/modules/setting.js b/packages/client/src/routes/Setting/modules/setting.js new file mode 100644 index 0000000..c1f6f51 --- /dev/null +++ b/packages/client/src/routes/Setting/modules/setting.js @@ -0,0 +1,107 @@ +import {take, put, select, call} from 'redux-saga/effects' +import Immutable from 'immutable' +import request from 'utils/request' +import {startSubmit, stopSubmit} from 'redux-form' +import {message, notification} from 'antd'; +import config from 'utils/config' +import {fetchGlobalOrigin, fetchGlobalUserSetting, setShowSentimentInspector} from '../../../redux/Global' + + +// Constants +const Setting_FETCH_REQUESTED = 'Setting_FETCH_REQUESTED'; +const Setting_FETCH_SUCCESSED = 'Setting_FETCH_SUCCESSED'; +const Setting_FETCH_FAILURE = 'Setting_FETCH_FAILURE'; +const Setting_ON_submitForm_REQUESTED = 'Setting_ON_submitForm_REQUESTED'; +const Setting_ON_resetDefault_REQUESTED = 'Setting_ON_resetDefault_REQUESTED'; +const Setting_ON_destroy = 'Setting_ON_destroy'; + + +// Actions +function fetchSetting() { + return { + type: Setting_FETCH_REQUESTED + } +} +function onSubmitForm(value) { + return { + type: Setting_ON_submitForm_REQUESTED, + value, + } +} +function onResetDefault() { + return { + type: Setting_ON_resetDefault_REQUESTED, + } +} +function onDestroy() { + return { + type: Setting_ON_destroy, + } +} + +export const actions = { + fetchSetting, + onSubmitForm, + onDestroy, + onResetDefault, +}; + +// Action Handlers +const ACTION_HANDLERS = { + [Setting_FETCH_REQUESTED]: (state) => state.setIn(['isFetching'], true), + [Setting_FETCH_SUCCESSED]: (state, payload) => state.setIn(['isFetching'], false), + [Setting_FETCH_FAILURE]: (state, action) => state.setIn(['isFetching'], false), + [Setting_ON_destroy]: () => initialState, +}; + +// Reducer +const initialState = Immutable.Map({ + isFetching: false, +}); +export default function settingReducer(state = initialState, action) { + const handler = ACTION_HANDLERS[action.type]; + + return handler ? handler(state, action) : state; +} + + +// Sagas +function* watchFetchSetting() { + while (true) { + yield take(Setting_FETCH_REQUESTED); + const {global} = yield select(); + + + yield put({type: 'Setting_FETCH_SUCCESSED'}) + } +} +function* watchOnSubmitForm() { + while (true) { + const {value} = yield take(Setting_ON_submitForm_REQUESTED); + + yield put(startSubmit('settingForm')); + localStorage.removeItem('userSetting.originKeys'); + localStorage.removeItem('userSetting.layouts'); + yield put(fetchGlobalUserSetting(null, value.selectedOriginKeys, value.sentimentInspector)); + yield put(setShowSentimentInspector(value.sentimentInspector)); + yield put(stopSubmit('settingForm')); + } +} +function* watchOnResetDefault() { + while (true) { + yield take(Setting_ON_resetDefault_REQUESTED); + + yield put(startSubmit('settingForm')); + localStorage.removeItem('userSetting.originKeys'); + localStorage.removeItem('userSetting.layouts'); + yield put(fetchGlobalOrigin()); + yield put(stopSubmit('settingForm')); + } +} + + +export const sagas = [ + watchFetchSetting, + watchOnSubmitForm, + watchOnResetDefault, +]; diff --git a/packages/client/src/routes/index.js b/packages/client/src/routes/index.js new file mode 100644 index 0000000..e0f5a71 --- /dev/null +++ b/packages/client/src/routes/index.js @@ -0,0 +1,98 @@ +// We only need to import the modules necessary for initial render +import CoreLayout from '../layouts/CoreLayout/CoreLayout' +import MonitorRoute from './Monitor' +import FilterRoute from './Filter' +import PastInquiryRoute from './PastInquiry' +import SettingRoute from './Setting' +import AboutRoute from './About' + +/* Note: Instead of using JSX, we recommend using react-router + PlainRoute objects to build route definitions. */ +function requireAuth(nextState, replace) { + + // let {store}=window; + // + // //返回access_token + // let {query}=nextState.location; + // if (query && query.access_token) { + // store.dispatch({type: 'GLOBAL_SET_TOKEN', token: query.access_token}); + // store.dispatch({type: 'GLOBAL_USERINFO_FETCH_REQUESTED'}); + // //todo 会过滤掉其他参数 只清除access_token参数 + // + // // console.log(window.location.pathname) + // //replace(''); + // return; + // } + // //没有 token + // if (!store.getState().global.get('token')) { + // let token = cookie.load('token'); + // if (!token) { + // //no cookie + // window.location = config.oAuth + window.location.href; + // } + // else { + // //has cookie + // store.dispatch({type: 'GLOBAL_SET_TOKEN', token: token}); + // } + // } + // + // + // //没有 userInfo + // if (!store.getState().global.getIn(['userInfo', 'employeeNumber'])) { + // let userInfo = cookie.load('userInfo'); + // if (!userInfo) { + // store.dispatch({type: 'GLOBAL_USERINFO_FETCH_REQUESTED'}); + // } + // else { + // //has cookie + // store.dispatch({type: 'GLOBAL_SET_USERINFO', data: userInfo}); + // } + // } + // + // + // //获取 userInfo + // else { + // + // } +} + +export const createRoutes = (store) => ({ + path: '/', + name: "monitor", + breadcrumbName: "Dashboard", + childRoutes: [ + { + component: CoreLayout, + indexRoute: MonitorRoute, + }, + { + component: CoreLayout, + childRoutes: [ + FilterRoute(store), + PastInquiryRoute(store), + SettingRoute(store), + AboutRoute(store), + ] + } + ] +}); + +/* Note: childRoutes can be chunked or otherwise loaded programmatically + using getChildRoutes with the following signature: + + getChildRoutes (location, cb) { + require.ensure([], (require) => { + cb(null, [ + // Remove imports! + require('./Counter').default(store) + ]) + }) + } + + However, this is not necessary for code-splitting! It simply provides + an API for async route definitions. Your code splitting should occur + inside the route `getComponent` function, since it is only invoked + when the route exists and matches. + */ + +export default createRoutes diff --git a/packages/client/src/static/favicon.ico b/packages/client/src/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fa229ff0d66a1b4d96edf25ee6656b21b8eae4f0 GIT binary patch literal 82726 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 B5^?|l literal 0 HcmV?d00001 diff --git a/packages/client/src/static/humans.txt b/packages/client/src/static/humans.txt new file mode 100644 index 0000000..0bdb0f9 --- /dev/null +++ b/packages/client/src/static/humans.txt @@ -0,0 +1,9 @@ +# Check it out: http://humanstxt.org/ + +# TEAM + + -- -- + +# THANKS + + diff --git a/packages/client/src/static/robots.txt b/packages/client/src/static/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/packages/client/src/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/packages/client/src/store/createStore.js b/packages/client/src/store/createStore.js new file mode 100644 index 0000000..eaeb517 --- /dev/null +++ b/packages/client/src/store/createStore.js @@ -0,0 +1,65 @@ +import {applyMiddleware, compose, createStore} from 'redux' +import {routerMiddleware} from 'react-router-redux' +import createSagaMiddleware from 'redux-saga' +import makeRootReducer from './reducers' +import {injectSagas} from './sagas' +import createSocketIoMiddleware from 'redux-socket.io'; +import io from 'socket.io-client'; +import config from '../utils/config' +let socket = io(config.API_SERVER); + +export default (initialState = {}, history) => { + // ====================================================== + // Middleware Configuration + // ====================================================== + const socketIoMiddleware = createSocketIoMiddleware(socket, "socket_"); + const sagaMiddleware = createSagaMiddleware(); + const middleware = [socketIoMiddleware, sagaMiddleware, routerMiddleware(history)]; + + // ====================================================== + // Store Enhancers + // ====================================================== + const enhancers = []; + if (__DEBUG__) { + const devToolsExtension = window.devToolsExtension; + if (typeof devToolsExtension === 'function') { + enhancers.push(devToolsExtension()) + } + } + + // ====================================================== + // Store Instantiation and HMR Setup + // ====================================================== + const store = createStore( + makeRootReducer(), + initialState, + compose( + applyMiddleware(...middleware), + ...enhancers + ) + ); + window.store = store; + store.asyncReducers = {}; + store.asyncSagas = {}; + store.runSaga = (saga) => { + sagaMiddleware.run(saga) + }; + const sagas = require('redux/Global').sagas; + injectSagas(store, {key: 'global', sagas}); + injectSagas(store, + {key: 'monitor', sagas: require('../routes/Monitor/modules/monitor').sagas} + ); + + // 监听 socket 连接状态 + socket.on('disconnect', () => store.dispatch({type: 'socket_Global_SET_SOCKET_STATUS', data: 'disconnect'})); + socket.on('connect', () => store.dispatch({type: 'socket_Global_SET_SOCKET_STATUS', data: 'connect'})); + + if (module.hot) { + module.hot.accept('./reducers', () => { + const reducers = require('./reducers').default; + store.replaceReducer(reducers(store.asyncReducers)) + }) + } + + return store +} diff --git a/packages/client/src/store/reducers.js b/packages/client/src/store/reducers.js new file mode 100644 index 0000000..56b8f2b --- /dev/null +++ b/packages/client/src/store/reducers.js @@ -0,0 +1,23 @@ +import {combineReducers} from 'redux' +import {routerReducer as router} from 'react-router-redux' +import {reducer as formReducer} from 'redux-form' +import global from 'redux/Global' +import monitor from '../routes/Monitor/modules/monitor' + +export const makeRootReducer = (asyncReducers) => { + return combineReducers({ + // Add sync reducers here + form: formReducer, + router, + global, + monitor, + ...asyncReducers + }) +}; + +export const injectReducer = (store, {key, reducer}) => { + store.asyncReducers[key] = reducer; + store.replaceReducer(makeRootReducer(store.asyncReducers)) +}; + +export default makeRootReducer diff --git a/packages/client/src/store/sagas.js b/packages/client/src/store/sagas.js new file mode 100644 index 0000000..21fea80 --- /dev/null +++ b/packages/client/src/store/sagas.js @@ -0,0 +1,18 @@ +import { fork } from 'redux-saga/effects' + +export const makeRootSaga = (sagas) => { + return function *rootSaga () { + yield sagas.map(saga => fork(saga)) + } +} + +export const injectSagas = (store, { key, sagas }) => { + if (store.asyncSagas[key]) { + return + } + store.asyncSagas[key] = sagas + store.runSaga(makeRootSaga(sagas)) +} + + +export default makeRootSaga \ No newline at end of file diff --git a/packages/client/src/styles/_base.scss b/packages/client/src/styles/_base.scss new file mode 100644 index 0000000..5469e58 --- /dev/null +++ b/packages/client/src/styles/_base.scss @@ -0,0 +1,12 @@ +/* +Application Settings Go Here +------------------------------------ +This file acts as a bundler for all variables/mixins/themes, so they +can easily be swapped out without `core.scss` ever having to know. + +For example: + +@import './variables/colors'; +@import './variables/components'; +@import './themes/default'; +*/ diff --git a/packages/client/src/styles/core.scss b/packages/client/src/styles/core.scss new file mode 100644 index 0000000..9eff22d --- /dev/null +++ b/packages/client/src/styles/core.scss @@ -0,0 +1,8 @@ +:global { + @import 'base'; + @import '~normalize.css/normalize'; + + // Some best-practice CSS that's useful for most apps + // Just remove them if they're not what you want + +} diff --git a/packages/client/src/utils/config.js b/packages/client/src/utils/config.js new file mode 100644 index 0000000..bc9d7a2 --- /dev/null +++ b/packages/client/src/utils/config.js @@ -0,0 +1,4 @@ +export default { + oAuth: 'http://localhost:3090/login', + API_SERVER: 'http://localhost:3090/',// local-http://localhost:3090/, prod- http://autonews.iok.la:22742/ | http://autonews.tunnel.qydev.com/ +} diff --git a/packages/client/src/utils/request.js b/packages/client/src/utils/request.js new file mode 100644 index 0000000..2a7b624 --- /dev/null +++ b/packages/client/src/utils/request.js @@ -0,0 +1,64 @@ +import 'whatwg-fetch'; +import {push} from 'react-router-redux' +import store from 'store/createStore' +import cookie from 'react-cookie' +import config from './config' +/** + * Parses the JSON returned by a network request + * + * @param {object} response A response from a network request + * + * @return {object} The parsed JSON from the request + */ +function parseJSON(response) { + return response.json(); +} + +/** + * Checks if a network request came back fine, and throws an error if not + * + * @param {object} response A response from a network request + * + * @return {object|undefined} Returns either the response, or throws an error + */ +function checkStatus(response) { + if (response.status >= 200 && response.status < 300) { + return response; + } + if (response.status == 403) { + if (window.store.getState().router.locationBeforeTransitions.pathname != '/counter') { + window.location = config.oAuth + window.location.href; + } + } + + if (response.status == 401) { + window.location = config.oAuth + window.location.href; + } + + const error = new Error(response.statusText); + error.response = response; + throw error; +} + +/** + * Requests a URL, returning a promise + * + * @param {string} url The URL we want to request + * @param {object} [options] The options we want to pass to "fetch" + * + * @return {object} An object containing either "data" or "err" + */ +export default function request(url, options) { + let token = window.store.getState().global.get('token'); + let opt = { + headers: { + 'Content-Type': 'application/json', + }, + }; + Object.assign(opt, options); + return fetch(url, opt) + .then(checkStatus) + .then(parseJSON) + .then((data) => ({data})) + .catch((err) => ({err})); +} diff --git a/packages/client/src/utils/validateMsg.js b/packages/client/src/utils/validateMsg.js new file mode 100644 index 0000000..1dcbfa5 --- /dev/null +++ b/packages/client/src/utils/validateMsg.js @@ -0,0 +1,11 @@ +/** + * Created by lx on 16/9/19. + */ +export default { + required: (field)=>`${field} is required.`, + unique: (field)=>`${field} must be unique.`, + invalidEmail: ()=>'Please input correct email address.', + limitLettersOrNumbers: (field)=> `${field} must contain letters or/and numbers.`, + limitNumbers: (field)=> `${field} must contain only numbers.`, + lenghtBetween: (min, max)=>`Total length must be between ${min} and ${max} characters.` +} diff --git a/packages/client/tests/.eslintrc b/packages/client/tests/.eslintrc new file mode 100644 index 0000000..a62af02 --- /dev/null +++ b/packages/client/tests/.eslintrc @@ -0,0 +1,11 @@ +{ + "extends" : "../.eslintrc", + "env" : { + "mocha" : true + }, + "globals" : { + "expect" : false, + "should" : false, + "sinon" : false + } +} diff --git a/packages/client/tests/components/Counter/Counter.spec.js b/packages/client/tests/components/Counter/Counter.spec.js new file mode 100644 index 0000000..010e842 --- /dev/null +++ b/packages/client/tests/components/Counter/Counter.spec.js @@ -0,0 +1,80 @@ +import React from 'react' +import { bindActionCreators } from 'redux' +import { Counter } from 'components/Counter/Counter' +import { shallow } from 'enzyme' + +describe('(Component) Counter', () => { + let _props, _spies, _wrapper + + beforeEach(() => { + _spies = {} + _props = { + counter: 5, + ...bindActionCreators({ + doubleAsync: (_spies.doubleAsync = sinon.spy()), + increment: (_spies.increment = sinon.spy()) + }, _spies.dispatch = sinon.spy()) + } + _wrapper = shallow() + }) + + it('Should render as a
.', () => { + expect(_wrapper.is('div')).to.equal(true) + }) + + it('Should render with an

that includes Sample Counter text.', () => { + expect(_wrapper.find('h2').text()).to.match(/Counter:/) + }) + + it('Should render props.counter at the end of the sample counter

.', () => { + expect(_wrapper.find('h2').text()).to.match(/5$/) + _wrapper.setProps({ counter: 8 }) + expect(_wrapper.find('h2').text()).to.match(/8$/) + }) + + it('Should render exactly two buttons.', () => { + expect(_wrapper.find('button')).to.have.length(2) + }) + + describe('An increment button...', () => { + let _button + + beforeEach(() => { + _button = _wrapper.find('button').filterWhere(a => a.text() === 'Increment') + }) + + it('has bootstrap classes', () => { + expect(_button.hasClass('btn btn-default')).to.be.true + }) + + it('Should dispatch a `increment` action when clicked', () => { + _spies.dispatch.should.have.not.been.called + + _button.simulate('click') + + _spies.dispatch.should.have.been.called + _spies.increment.should.have.been.called + }); + }) + + describe('A Double (Async) button...', () => { + let _button + + beforeEach(() => { + _button = _wrapper.find('button').filterWhere(a => a.text() === 'Double (Async)') + }) + + it('has bootstrap classes', () => { + expect(_button.hasClass('btn btn-default')).to.be.true + }) + + it('Should dispatch a `doubleAsync` action when clicked', () => { + _spies.dispatch.should.have.not.been.called + + _button.simulate('click') + + _spies.dispatch.should.have.been.called + _spies.doubleAsync.should.have.been.called + }); + }) +}) diff --git a/packages/client/tests/components/Header/Header.spec.js b/packages/client/tests/components/Header/Header.spec.js new file mode 100644 index 0000000..3183ede --- /dev/null +++ b/packages/client/tests/components/Header/Header.spec.js @@ -0,0 +1,38 @@ +import React from 'react' +import { Header } from 'components/Header/Header' +import classes from 'components/Header/Header.scss' +import { IndexLink, Link } from 'react-router' +import { shallow } from 'enzyme' + +describe('(Component) Header', () => { + let _wrapper + + beforeEach(() => { + _wrapper = shallow(
) + }) + + it('Renders a welcome message', () => { + const welcome = _wrapper.find('h1') + expect(welcome).to.exist + expect(welcome.text()).to.match(/React Redux Starter Kit/) + }) + + describe('Navigation links...', () => { + + it('Should render a Link to Home route', () => { + expect(_wrapper.contains( + + Home + + )).to.be.true + }) + + it('Should render a Link to Counter route', () => { + expect(_wrapper.contains( + + Counter + + )).to.be.true + }) + }) +}) diff --git a/packages/client/tests/framework.spec.js b/packages/client/tests/framework.spec.js new file mode 100644 index 0000000..9a6c652 --- /dev/null +++ b/packages/client/tests/framework.spec.js @@ -0,0 +1,45 @@ +import assert from 'assert' +import React from 'react' +import {mount, render, shallow} from 'enzyme' + +class Fixture extends React.Component { + render () { + return ( +
+ + +
+ ) + } +} + +describe('(Framework) Karma Plugins', function () { + it('Should expose "expect" globally.', function () { + assert.ok(expect) + }) + + it('Should expose "should" globally.', function () { + assert.ok(should) + }) + + it('Should have chai-as-promised helpers.', function () { + const pass = new Promise(res => res('test')) + const fail = new Promise((res, rej) => rej()) + + return Promise.all([ + expect(pass).to.be.fulfilled, + expect(fail).to.not.be.fulfilled + ]) + }) + + it('should have chai-enzyme working', function() { + let wrapper = shallow() + expect(wrapper.find('#checked')).to.be.checked() + + wrapper = mount() + expect(wrapper.find('#checked')).to.be.checked() + + wrapper = render() + expect(wrapper.find('#checked')).to.be.checked() + }) +}) diff --git a/packages/client/tests/layouts/CoreLayout.spec.js b/packages/client/tests/layouts/CoreLayout.spec.js new file mode 100644 index 0000000..31bbc24 --- /dev/null +++ b/packages/client/tests/layouts/CoreLayout.spec.js @@ -0,0 +1,33 @@ +import React from 'react' +import TestUtils from 'react-addons-test-utils' +import CoreLayout from 'layouts/CoreLayout/CoreLayout' + +function shallowRender (component) { + const renderer = TestUtils.createRenderer() + + renderer.render(component) + return renderer.getRenderOutput() +} + +function shallowRenderWithProps (props = {}) { + return shallowRender() +} + +describe('(Layout) Core', function () { + let _component + let _props + let _child + + beforeEach(function () { + _child =

Child

+ _props = { + children: _child + } + + _component = shallowRenderWithProps(_props) + }) + + it('Should render as a
.', function () { + expect(_component.type).to.equal('div') + }) +}) diff --git a/packages/client/tests/routes/Home/components/HomeView.spec.js b/packages/client/tests/routes/Home/components/HomeView.spec.js new file mode 100644 index 0000000..c59d3c6 --- /dev/null +++ b/packages/client/tests/routes/Home/components/HomeView.spec.js @@ -0,0 +1,24 @@ +import React from 'react' +import { HomeView } from 'routes/Home/components/HomeView' +import { render } from 'enzyme' + +describe('(View) Home', () => { + let _component + + beforeEach(() => { + _component = render() + }) + + it('Renders a welcome message', () => { + const welcome = _component.find('h4') + expect(welcome).to.exist + expect(welcome.text()).to.match(/Welcome!/) + }) + + it('Renders an awesome duck image', () => { + const duck = _component.find('img') + expect(duck).to.exist + expect(duck.attr('alt')).to.match(/This is a duck, because Redux!/) + }) + +}) diff --git a/packages/client/tests/routes/Home/index.spec.js b/packages/client/tests/routes/Home/index.spec.js new file mode 100644 index 0000000..60f6354 --- /dev/null +++ b/packages/client/tests/routes/Home/index.spec.js @@ -0,0 +1,17 @@ +import HomeRoute from 'routes/Home' + +describe('(Route) Home', () => { + let _component + + beforeEach(() => { + _component = HomeRoute.component() + }) + + it('Should return a route configuration object', () => { + expect(typeof(HomeRoute)).to.equal('object') + }) + + it('Should define a route component', () => { + expect(_component.type).to.equal('div') + }) +}) diff --git a/packages/client/tests/test-bundler.js b/packages/client/tests/test-bundler.js new file mode 100644 index 0000000..0491fda --- /dev/null +++ b/packages/client/tests/test-bundler.js @@ -0,0 +1,38 @@ +// --------------------------------------- +// Test Environment Setup +// --------------------------------------- +import 'babel-polyfill' +import sinon from 'sinon' +import chai from 'chai' +import sinonChai from 'sinon-chai' +import chaiAsPromised from 'chai-as-promised' +import chaiEnzyme from 'chai-enzyme' + +chai.use(sinonChai) +chai.use(chaiAsPromised) +chai.use(chaiEnzyme()) + +global.chai = chai +global.sinon = sinon +global.expect = chai.expect +global.should = chai.should() + +// --------------------------------------- +// Require Tests +// --------------------------------------- +// for use with karma-webpack-with-fast-source-maps +const __karmaWebpackManifest__ = []; // eslint-disable-line +const inManifest = (path) => ~__karmaWebpackManifest__.indexOf(path) + +// require all `tests/**/*.spec.js` +const testsContext = require.context('./', true, /\.spec\.js$/) + +// only run tests that have changed after the first pass. +const testsToRun = testsContext.keys().filter(inManifest) +;(testsToRun.length ? testsToRun : testsContext.keys()).forEach(testsContext) + +// require all `src/**/*.js` except for `main.js` (for isparta coverage reporting) +if (__COVERAGE__) { + const componentsContext = require.context('../src/', true, /^((?!main).)*\.js$/) + componentsContext.keys().forEach(componentsContext) +} diff --git a/packages/scrape/.gitignore b/packages/scrape/.gitignore new file mode 100644 index 0000000..9f1e7a9 --- /dev/null +++ b/packages/scrape/.gitignore @@ -0,0 +1,10 @@ +/.idea/ +/eggs/ +/build/ +/logs/ +/project.egg-info/ +/dbs/ +/autonews/lib/hanlp-1.3.2/data/ +/autonews/lib/THUCTC_java_v1/news_model/ +/autonews/lib/THUCTC_java_v1/dbs/ +/autonews/lib/jdk-6u45-linux-x64.bin diff --git a/.python-version b/packages/scrape/.python-version similarity index 100% rename from .python-version rename to packages/scrape/.python-version diff --git a/Dockerfile b/packages/scrape/Dockerfile similarity index 100% rename from Dockerfile rename to packages/scrape/Dockerfile diff --git a/packages/scrape/README.md b/packages/scrape/README.md new file mode 100644 index 0000000..f98a984 --- /dev/null +++ b/packages/scrape/README.md @@ -0,0 +1,25 @@ +# Auto News 新闻监控系统爬虫 + +## 安装 +- install pyenv: `brew pyenv` +- install virtualenv: +- install python: `$ pyenv install 3.6.1` +- install requirements: `$ pip install -r requirements.txt` +- create new virtualenv: `$ pyenv virtualenv 3.6.1 playground` +- activate a virtualenv: `$ pyenv activate playground` + +## 运行 +- 运行调度: `python scrapy_scheduler.py` +- 运行所有爬虫: `python run_all_spiders.py` + +## 常用命令 +- 新建爬虫:`scrapy gensipder ` + +## 使用scrapyd +- 命令`scrapyd`启动 scrapyd,默认在[localhost:6800](http://localhost:6800/)建立监控界面 + +## Build docker image +- lib目录下放置[jdk-6u45-linux-x64.bin](http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jre-6u45-oth-JPR) +- lib目录下放置[hanlp model]() +- lib目录下放置[THUCTC model]() +- docker build -t autonews-scrapy . diff --git a/autonews/__init__.py b/packages/scrape/autonews/__init__.py similarity index 100% rename from autonews/__init__.py rename to packages/scrape/autonews/__init__.py diff --git a/autonews/filters.py b/packages/scrape/autonews/filters.py similarity index 100% rename from autonews/filters.py rename to packages/scrape/autonews/filters.py diff --git a/autonews/items.py b/packages/scrape/autonews/items.py similarity index 100% rename from autonews/items.py rename to packages/scrape/autonews/items.py diff --git a/autonews/lib/THUCTC_java_v1/THUCTC.md b/packages/scrape/autonews/lib/THUCTC_java_v1/THUCTC.md similarity index 100% rename from autonews/lib/THUCTC_java_v1/THUCTC.md rename to packages/scrape/autonews/lib/THUCTC_java_v1/THUCTC.md diff --git a/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar b/packages/scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar similarity index 100% rename from autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar rename to packages/scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar diff --git a/autonews/lib/THUCTC_java_v1/demo.py b/packages/scrape/autonews/lib/THUCTC_java_v1/demo.py similarity index 100% rename from autonews/lib/THUCTC_java_v1/demo.py rename to packages/scrape/autonews/lib/THUCTC_java_v1/demo.py diff --git a/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar b/packages/scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar similarity index 100% rename from autonews/lib/THUCTC_java_v1/liblinear-1.8.jar rename to packages/scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar diff --git a/autonews/lib/hanlp-1.3.2/demo.py b/packages/scrape/autonews/lib/hanlp-1.3.2/demo.py similarity index 100% rename from autonews/lib/hanlp-1.3.2/demo.py rename to packages/scrape/autonews/lib/hanlp-1.3.2/demo.py diff --git a/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar b/packages/scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar similarity index 100% rename from autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar rename to packages/scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar diff --git a/autonews/lib/hanlp-1.3.2/hanlp.properties b/packages/scrape/autonews/lib/hanlp-1.3.2/hanlp.properties similarity index 100% rename from autonews/lib/hanlp-1.3.2/hanlp.properties rename to packages/scrape/autonews/lib/hanlp-1.3.2/hanlp.properties diff --git a/autonews/middlewares.py b/packages/scrape/autonews/middlewares.py similarity index 100% rename from autonews/middlewares.py rename to packages/scrape/autonews/middlewares.py diff --git a/autonews/pipelines.py b/packages/scrape/autonews/pipelines.py similarity index 100% rename from autonews/pipelines.py rename to packages/scrape/autonews/pipelines.py diff --git a/autonews/settings.py b/packages/scrape/autonews/settings.py similarity index 100% rename from autonews/settings.py rename to packages/scrape/autonews/settings.py diff --git a/autonews/spiders/__init__.py b/packages/scrape/autonews/spiders/__init__.py similarity index 100% rename from autonews/spiders/__init__.py rename to packages/scrape/autonews/spiders/__init__.py diff --git a/autonews/spiders/cjrb.py b/packages/scrape/autonews/spiders/cjrb.py similarity index 100% rename from autonews/spiders/cjrb.py rename to packages/scrape/autonews/spiders/cjrb.py diff --git a/autonews/spiders/hbrb.py b/packages/scrape/autonews/spiders/hbrb.py similarity index 100% rename from autonews/spiders/hbrb.py rename to packages/scrape/autonews/spiders/hbrb.py diff --git a/autonews/spiders/rmw_hb.py b/packages/scrape/autonews/spiders/rmw_hb.py similarity index 100% rename from autonews/spiders/rmw_hb.py rename to packages/scrape/autonews/spiders/rmw_hb.py diff --git a/autonews/spiders/rmw_hb_detail.py b/packages/scrape/autonews/spiders/rmw_hb_detail.py similarity index 100% rename from autonews/spiders/rmw_hb_detail.py rename to packages/scrape/autonews/spiders/rmw_hb_detail.py diff --git a/autonews/spiders/txdcw.py b/packages/scrape/autonews/spiders/txdcw.py similarity index 100% rename from autonews/spiders/txdcw.py rename to packages/scrape/autonews/spiders/txdcw.py diff --git a/requirements.txt b/packages/scrape/requirements.txt similarity index 100% rename from requirements.txt rename to packages/scrape/requirements.txt diff --git a/run_all_spiders.py b/packages/scrape/run_all_spiders.py similarity index 100% rename from run_all_spiders.py rename to packages/scrape/run_all_spiders.py diff --git a/scrapy.cfg b/packages/scrape/scrapy.cfg similarity index 100% rename from scrapy.cfg rename to packages/scrape/scrapy.cfg diff --git a/scrapy_scheduler.py b/packages/scrape/scrapy_scheduler.py similarity index 100% rename from scrapy_scheduler.py rename to packages/scrape/scrapy_scheduler.py diff --git a/setup.py b/packages/scrape/setup.py similarity index 100% rename from setup.py rename to packages/scrape/setup.py diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..0f118f4 --- /dev/null +++ b/renovate.json @@ -0,0 +1,4 @@ +{ + "extends": ["config:base", "schedule:earlyMondays"], + "masterIssue": true +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..2a405c0 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9831 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ant-design/css-animation@^1.7.2": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@ant-design/css-animation/-/css-animation-1.7.3.tgz#60a1c970014e86b28f940510d69e503e428f1136" + integrity sha512-LrX0OGZtW+W6iLnTAqnTaoIsRelYeuLZWsrmBJFUXDALQphPsN8cE5DCsmoSlL0QYb94BQxINiuS70Ar/8BNgA== + +"@babel/helper-module-imports@^7.0.0": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" + integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/types@^7.13.12": + version "7.13.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" + integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + to-fast-properties "^2.0.0" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha1-kbR5JYinc4wl813W9jdSovh3YTU= + +accepts@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" + integrity sha1-1xyW99QdD+2iw4zRToonwEFY30o= + dependencies: + mime-types "~2.0.4" + negotiator "0.4.9" + +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + integrity sha1-w8p0NJOGSMPg2cHjKN1otiLChMo= + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accepts@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn@^3.0.0, acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.5.0: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +add-dom-event-listener@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" + integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== + dependencies: + object-assign "4.x" + +adjust-sourcemap-loader@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz#e33fde95e50db9f2a802e3647e311d2fc5000c69" + integrity sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ== + dependencies: + assert "^1.3.0" + camelcase "^1.2.1" + loader-utils "^1.1.0" + lodash.assign "^4.0.1" + lodash.defaults "^3.1.2" + object-path "^0.9.2" + regex-parser "^2.2.9" + +after@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" + integrity sha1-q11PuIP1loFtNRX495HAr0ht1ic= + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw= + +ajv@^4.7.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY= + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + dependencies: + string-width "^2.0.0" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + +antd@^2.10.1: + version "2.13.14" + resolved "https://registry.yarnpkg.com/antd/-/antd-2.13.14.tgz#a3162a36839dd1be03c34062c5b14234b87e415f" + integrity sha512-8qtu6VYSXUExVPx6H8s8+OhQo0UQP7ogAoOa2bOPCvnhlpaGVYf3yh45WNa7PhhdWSOGQW3DdblqMX8UJ7Cu6g== + dependencies: + array-tree-filter "~1.0.0" + babel-runtime "6.x" + classnames "~2.2.0" + create-react-class "^15.6.0" + css-animation "^1.2.5" + dom-closest "^0.2.0" + lodash.debounce "^4.0.8" + lodash.uniqby "^4.7.0" + moment "^2.19.3" + omit.js "^1.0.0" + prop-types "^15.5.7" + rc-animate "^2.4.1" + rc-calendar "~9.0.0" + rc-cascader "~0.11.3" + rc-checkbox "~2.0.3" + rc-collapse "~1.7.5" + rc-dialog "~6.5.10" + rc-dropdown "~1.5.0" + rc-editor-mention "~0.6.12" + rc-form "~1.4.0" + rc-input-number "~3.6.0" + rc-menu "~5.0.10" + rc-notification "~2.0.0" + rc-pagination "~1.12.4" + rc-progress "~2.2.2" + rc-rate "~2.1.1" + rc-select "~6.9.0" + rc-slider "~8.3.0" + rc-steps "~2.5.1" + rc-switch "~1.5.1" + rc-table "~5.6.9" + rc-tabs "~9.1.2" + rc-time-picker "~2.4.1" + rc-tooltip "~3.4.6" + rc-tree "~1.7.0" + rc-tree-select "~1.10.2" + rc-upload "~2.4.0" + rc-util "^4.0.4" + react-lazy-load "^3.0.12" + react-slick "~0.15.4" + shallowequal "^1.0.1" + warning "~3.0.0" + +any-promise@^1.0.0, any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argv@>=0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-tree-filter@^1.0.0, array-tree-filter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-1.0.1.tgz#0a8ad1eefd38ce88858632f9cc0423d7634e4d5d" + integrity sha1-CorR7v04zoiFhjL5zAQj12NOTV0= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.find@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.4" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + integrity sha1-8zshWfBTKj8xB6JywMz70a0peco= + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1, assert@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0, async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + +async-validator@1.x: + version "1.12.2" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.12.2.tgz#beae671e7174d2938b7b4b69d2fb7e722b7fd72c" + integrity sha512-57EETfCPFiB7M4QscvQzWSGNsmtkjjzZv318SK1CBlstk+hycV72ocjriMOOM48HjvmoAoJGpJNjC7Z76RlnZA== + +async@1.x, async@^1.3.0, async@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@^0.9.0, async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-cli@^6.5.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + integrity sha1-UCq1SHTX24itALiHoGODzgPQAvE= + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.1.4, babel-core@^6.18.2, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^7.2.1: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + integrity sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + integrity sha1-FMGeXxQte0fxmlJDHlKxzLxAozA= + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA= + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + integrity sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes= + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca" + integrity sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo= + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^0.2.16" + mkdirp "^0.5.1" + object-assign "^4.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-import@^1.1.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.3.tgz#9dbbba7d1ac72bd412917a830d445e00941d26d7" + integrity sha512-1qCWdljJOrDRH/ybaCZuDgySii4yYrtQ8OJQwrcDqdt0y67N30ng3X3nABg6j7gR7qUJgcMa9OMhc4AGViDwWw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/runtime" "^7.0.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + integrity sha1-a8lj67FuzLrmuStZbrfzXDQqi5o= + +babel-plugin-syntax-class-constructor-call@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY= + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94= + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + integrity sha1-MSVjtNvePMgGzuPkFszurd0RrAs= + +babel-plugin-syntax-do-expressions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" + integrity sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0= + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo= + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= + +babel-plugin-syntax-export-extensions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE= + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= + +babel-plugin-syntax-function-bind@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" + integrity sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y= + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + integrity sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds= + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + integrity sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk= + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + integrity sha1-anl2PqYdM9NvN7YRqp3vgagbRqw= + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + integrity sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0= + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-do-expressions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" + integrity sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs= + dependencies: + babel-plugin-syntax-do-expressions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + integrity sha1-U3OLR+deghhYnuqUbLvTkQm75lM= + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-function-bind@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" + integrity sha1-xvuOlqwpajELjPjqQBRiQH3fapc= + dependencies: + babel-plugin-syntax-function-bind "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + integrity sha1-322AqdomEqEh5t3XVYvL7PBuY24= + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY= + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM= + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-runtime@^6.15.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + integrity sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0, babel-polyfill@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-es2015@^6.18.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + integrity sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react@^6.11.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + integrity sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A= + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-preset-stage-0@^6.3.13: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" + integrity sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo= + dependencies: + babel-plugin-transform-do-expressions "^6.22.0" + babel-plugin-transform-function-bind "^6.22.0" + babel-preset-stage-1 "^6.24.1" + +babel-preset-stage-1@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + integrity sha1-dpLNfc1oSZB+auSgqFWJz7niv7A= + dependencies: + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" + +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + integrity sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE= + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + integrity sha1-g2raCp56f6N8sTj7kyb4eTSkg5U= + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.18.0, babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" + integrity sha1-R030qfLaJOBd8xWMOx2zw81GoVQ= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + integrity sha1-As4P3u4M709ACA4ec+g08LG/zj8= + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +benchmark@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" + integrity sha1-Lx4vpMNZ8REiqhgwgiGOlX45DHM= + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +better-npm-run@0.0.15: + version "0.0.15" + resolved "https://registry.yarnpkg.com/better-npm-run/-/better-npm-run-0.0.15.tgz#1000ed14b4f77c853de5a5148805f7e74f771cf0" + integrity sha1-EADtFLT3fIU95aUUiAX35093HPA= + dependencies: + commander "^2.9.0" + dotenv "^2.0.0" + object-assign "^4.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE= + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= + dependencies: + inherits "~2.0.0" + +bluebird@^3.3.0, bluebird@^3.4.7: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@^1.16.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + integrity sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY= + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= + +browserify-aes@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" + integrity sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw= + dependencies: + inherits "^2.0.1" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + dependencies: + pako "~0.2.0" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +bson@~1.0.4: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" + integrity sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg== + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + +buffer@^4.9.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +bytes@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" + integrity sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-content-type@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== + dependencies: + mime-types "^2.1.18" + ylru "^1.2.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2, camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +can-use-dom@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" + integrity sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo= + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30001218" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001218.tgz#ecf4b16ae37c7c14b0be04a1f735d1393a86d590" + integrity sha512-jwz6q2nos7IoVsSXaYSX0gZok+8RC1kh5Bv0t4NNAhLvOZMhY5PJo1F7K3a9Wh4p9QUT+Iiernk0pB+yn22N9A== + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" + integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai-as-promised@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6" + integrity sha1-GgKkM6byTa+sY7nJb6FoTbGqjaY= + dependencies: + check-error "^1.0.2" + +chai-enzyme@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/chai-enzyme/-/chai-enzyme-0.6.1.tgz#585c963c6ea1331446efd12ee8391e807d758620" + integrity sha1-WFyWPG6hMxRG79Eu6DkegH11hiA= + dependencies: + html "^1.0.0" + react-element-to-jsx-string "^5.0.0" + +chai@^3.4.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chain-function@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.1.tgz#c63045e5b4b663fb86f1c6e186adaf1de402a1cc" + integrity sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg== + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +chokidar@^1.0.0, chokidar@^1.4.1, chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + +classnames@~2.2.0: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +clean-css@4.2.x: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co-request@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/co-request/-/co-request-0.2.1.tgz#6428c002ad4229b3eda6725022aeccf273bee3fb" + integrity sha1-ZCjAAq1CKbPtpnJQIq7M8nO+4/s= + dependencies: + request "*" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +codecov@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-1.0.1.tgz#97260ceac0e96b8eda8d562006558a53a139dffd" + integrity sha1-lyYM6sDpa47ajVYgBlWKU6E53/0= + dependencies: + argv ">=0.0.2" + execSync "1.0.2" + request ">=2.42.0" + urlgrey ">=0.4.0" + +collapse-white-space@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@^1.1.0, colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + integrity sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y= + dependencies: + lodash "^4.5.0" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.11.0, commander@^2.9.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-classes@1.x, component-classes@^1.2.5, component-classes@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= + dependencies: + component-indexof "0.0.3" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM= + +component-emitter@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" + integrity sha1-zNETqGOI0GSC0D3j/H35hSa6jv4= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compressible@^2.0.0: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^3.0.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" + integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== + dependencies: + dot-prop "^4.2.1" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-history-api-fallback@^1.1.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@~0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie@0.3.1, cookie@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookies@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-to@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + +core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + integrity sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A== + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + dependencies: + capture-stack-trace "^1.0.0" + +create-react-class@15.x, create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.5.3, create-react-class@^15.6.0: + version "15.7.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" + integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" + integrity sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw= + dependencies: + browserify-aes "0.4.0" + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-animation@1.x, css-animation@^1.2.5, css-animation@^1.3.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/css-animation/-/css-animation-1.6.1.tgz#162064a3b0d51f958b7ff37b3d6d4de18e17039e" + integrity sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog== + dependencies: + babel-runtime "6.x" + component-classes "^1.2.5" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-loader@^0.28.0: + version "0.28.11" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" + integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + cssnano "^3.10.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.1.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-select@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano@^3.10.0, cssnano@^3.8.1: + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dateformat@^1.0.6: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk= + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +debug@*: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= + +debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo= + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + integrity sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w= + dependencies: + ms "0.7.2" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw= + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= + dependencies: + type-detect "0.1.1" + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@^2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k= + +doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +dom-align@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.0.tgz#56fb7156df0b91099830364d2d48f88963f5a29c" + integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA== + +dom-closest@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" + integrity sha1-69n5HRvyLo1vR3h2u80+yQIWwM8= + dependencies: + dom-matches ">=1.0.1" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + +dom-matches@>=1.0.1: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" + integrity sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw= + +dom-scroll-into-view@1.x, dom-scroll-into-view@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" + integrity sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4= + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" + integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== + dependencies: + is-obj "^1.0.0" + +dotenv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-2.0.0.tgz#bd759c357aaa70365e01c96b7b0bec08a6e0d949" + integrity sha1-vXWcNXqqcDZeAclrewvsCKbg2Uk= + +draft-js@^0.10.0, draft-js@~0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.10.5.tgz#bfa9beb018fe0533dbb08d6675c371a6b08fa742" + integrity sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg== + dependencies: + fbjs "^0.8.15" + immutable "~3.7.4" + object-assign "^4.1.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editions@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/editions/-/editions-2.3.1.tgz#3bc9962f1978e801312fbd0aebfed63b49bfe698" + integrity sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA== + dependencies: + errlop "^2.0.0" + semver "^6.3.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.2.7: + version "1.3.722" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.722.tgz#621657f79e7f65402e71aa3403bc941f3a4af0a0" + integrity sha512-aAsc906l0RBsVTsGTK+KirVfey9eNtxyejdkbNzkISGxb7AFna3Kf0qvsp8tMttzBt9Bz3HddtYQ+++/PZtRYA== + +element-resize-event@^2.0.4: + version "2.0.9" + resolved "https://registry.yarnpkg.com/element-resize-event/-/element-resize-event-2.0.9.tgz#2f5e1581a296eb5275210c141bc56342e218f876" + integrity sha1-L14VgaKW61J1IQwUG8VjQuIY+HY= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@^1.0.2, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +engine.io-client@1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.8.tgz#6e2db11648b45e405c46b172ea3e3dac37cc0ceb" + integrity sha1-bi2xFki0XkBcRrFy6j49rDfMDOs= + dependencies: + component-emitter "1.1.2" + component-inherit "0.0.3" + debug "2.2.0" + engine.io-parser "1.2.4" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.1" + parseqs "0.0.2" + parseuri "0.0.4" + ws "1.0.1" + xmlhttprequest-ssl "1.5.1" + yeast "0.1.2" + +engine.io-client@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" + integrity sha1-F5jtk0USRkU9TG9jXXogH+lA1as= + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" + integrity sha1-4Il7C/FOeS1M0qWVBVORnFaUjEI= + dependencies: + after "0.8.1" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.2" + blob "0.0.4" + has-binary "0.1.6" + utf8 "2.1.0" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + integrity sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo= + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.8.tgz#de05a06b757e7517695e088c7b051c47819f511b" + integrity sha1-3gWga3V+dRdpXgiMewUcR4GfURs= + dependencies: + accepts "1.1.4" + base64id "0.1.0" + debug "2.2.0" + engine.io-parser "1.2.4" + ws "1.0.1" + +engine.io@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" + integrity sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q= + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ= + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +enzyme@^2.8.0: + version "2.9.1" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6" + integrity sha1-B9XOaRJBJA+4F78sSxjW5TAkDfY= + dependencies: + cheerio "^0.22.0" + function.prototype.name "^1.0.0" + is-subset "^0.1.1" + lodash "^4.17.4" + object-is "^1.0.1" + object.assign "^4.0.4" + object.entries "^1.0.4" + object.values "^1.0.4" + prop-types "^15.5.10" + uuid "^3.0.1" + +errlop@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" + integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== + +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" + integrity sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI= + dependencies: + stackframe "^0.3.1" + +es-abstract@^1.17.4, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-error@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + integrity sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q= + +es6-promise@^4.0.3, es6-promise@^4.1.0: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg= + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escodegen@^1.6.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-standard-jsx@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-3.3.0.tgz#cab0801a15a360bf63facb97ab22fbdd88d8a5e0" + integrity sha1-yrCAGhWjYL9j+suXqyL73YjYpeA= + +eslint-config-standard-react@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-react/-/eslint-config-standard-react-4.3.0.tgz#7e0d3575f15a3c0b6639ccb63949dfb5ba3a0a8a" + integrity sha1-fg01dfFaPAtmOcy2OUnftbo6Coo= + dependencies: + eslint-config-standard-jsx "^3.0.0" + +eslint-config-standard@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-7.1.0.tgz#47e769ea0739f5b2d5693b1a501c21c9650fafcf" + integrity sha1-R+dp6gc59bLVaTsaUBwhyWUPr88= + +eslint-plugin-babel@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz#79202a0e35757dd92780919b2336f1fa2fe53c1e" + integrity sha1-eSAqDjV1fdkngJGbIzbx+i/lPB4= + +eslint-plugin-promise@^3.5.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz#65ebf27a845e3c1e9d6f6a5622ddd3801694b621" + integrity sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ== + +eslint-plugin-react@^6.8.0: + version "6.10.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78" + integrity sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g= + dependencies: + array.prototype.find "^2.0.1" + doctrine "^1.2.2" + has "^1.0.1" + jsx-ast-utils "^1.3.4" + object.assign "^4.0.4" + +eslint-plugin-standard@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.3.1.tgz#6765bd2a6d9ecdc7bdf1b145ae4bb30e2b7b86f8" + integrity sha1-Z2W9Km2ezce98bFFrkuzDit7hvg= + +eslint@^3.18.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + integrity sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw= + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q= + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@^1.3.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventlistener@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/eventlistener/-/eventlistener-0.0.1.tgz#ed2baabb852227af2bcf889152c72c63ca532eb8" + integrity sha1-7Suqu4UiJ68rz4iRUscsY8pTLrg= + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +execSync@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/execSync/-/execSync-1.0.2.tgz#1f42eda582225180053224ecdd3fd1960fdb3139" + integrity sha1-H0LtpYIiUYAFMiTs3T/Rlg/bMTk= + dependencies: + temp "~0.5.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + integrity sha1-SIsdHSRRyz06axks/AMPRMWFX+o= + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + integrity sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ= + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-text-webpack-plugin@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz#c95bf3cbaac49dc96f1dc6e072549fbb654ccd2c" + integrity sha1-yVvzy6rEnclvHcbgclSfu2VMzSw= + dependencies: + async "^1.5.0" + loader-utils "^0.2.3" + webpack-sources "^0.1.0" + +extract-zip@^1.6.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fbjs@^0.8.15, fbjs@^0.8.6, fbjs@^0.8.9: + version "0.8.17" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.18" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz#815034119891fc6441fb5a64c11bc93c22ddd842" + integrity sha1-gVA0EZiR/GRB+1pkwRvJPCLd2EI= + dependencies: + loader-utils "^1.0.2" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +fixed-data-table-2@^0.7.13: + version "0.7.17" + resolved "https://registry.yarnpkg.com/fixed-data-table-2/-/fixed-data-table-2-0.7.17.tgz#327d172f865f71715c86d4979fdbf3c77ecf7d9a" + integrity sha1-Mn0XL4ZfcXFchtSXn9vzx37PfZo= + dependencies: + create-react-class "^15.5.2" + prop-types "^15.5.8" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +follow-redirects@^1.0.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe" + integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg== + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formatio@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" + integrity sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek= + dependencies: + samsam "~1.1" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" + integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + +fs-extra@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.0.0, fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fstream@^1.0.0, fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83" + integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generate-function@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gitbook-plugin-github@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gitbook-plugin-github/-/gitbook-plugin-github-2.0.0.tgz#5166e763cfcc402d432880b7a6c85c1c54b56a8d" + integrity sha1-UWbnY8/MQC1DKIC3pshcHFS1ao0= + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +globals@^9.14.0, globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globule@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +graceful-fs@~1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8= + +hammerjs@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= + +handlebars@^4.0.1: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-binary@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" + integrity sha1-JTJvOc+k9hath4eJTjryz7x7bhA= + dependencies: + isarray "0.0.1" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow= + dependencies: + isarray "0.0.1" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hasha@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" + integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE= + dependencies: + is-stream "^1.0.1" + pinkie-promise "^2.0.0" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c" + integrity sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw= + dependencies: + invariant "^2.2.1" + loose-envify "^1.2.0" + query-string "^4.2.2" + warning "^3.0.0" + +hoist-non-react-statics@1.x, hoist-non-react-statics@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" + integrity sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs= + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-entities@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@^2.24.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" + integrity sha1-f5xCG36pHsRg9WUn1430hO51N9U= + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +html@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61" + integrity sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E= + dependencies: + concat-stream "^1.4.7" + +htmlparser2@^3.10.1, htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-assert@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== + dependencies: + deep-equal "~1.0.1" + http-errors "~1.7.2" + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@^1.6.3: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-proxy@^1.13.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.2.11: + version "0.2.11" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" + integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg= + +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +ignore@^3.2.0: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +immutable@^3.7.4, immutable@^3.8.1: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +immutable@~3.7.4: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imports-loader@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.7.1.tgz#f204b5f34702a32c1db7d48d89d5e867a0441253" + integrity sha1-8gS180cCoywdt9SNidXoZ6BEElM= + dependencies: + loader-utils "^1.0.2" + source-map "^0.5.6" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +in-publish@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + integrity sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34= + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +ip@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-core-module@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" + integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-generator-function@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== + +is-my-json-valid@^2.10.0: + version "2.20.5" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz#5eca6a8232a687f68869b7361be1612e7512e5df" + integrity sha512-VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A== + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-node@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-node/-/is-node-1.0.2.tgz#d7d002745ef7debbb7477e988956ab0a4fccb653" + integrity sha1-19ACdF733ru3R36YiVarCk/MtlM= + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + integrity sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-property@^1.0.0, is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + +is-regex@^1.0.4, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" + foreach "^2.0.5" + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isparta-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isparta-loader/-/isparta-loader-2.0.0.tgz#4425f496c93f765bbceb4dd938576da307566ed1" + integrity sha1-RCX0lsk/dlu8603ZOFdtowdWbtE= + dependencies: + isparta "4.x.x" + +isparta@4.x.x: + version "4.1.1" + resolved "https://registry.yarnpkg.com/isparta/-/isparta-4.1.1.tgz#c92e49672946914ec5407c801160f3374e0b7cb4" + integrity sha512-kGwkNqmALQzdfGhgo5o8kOA88p14R3Lwg0nfQ/qzv4IhB4rXarT9maPMaYbo6cms4poWbeulrlFlURLUR6rDwQ== + dependencies: + babel-core "^6.1.4" + escodegen "^1.6.1" + esprima "^4.0.0" + istanbul "0.4.5" + mkdirp "^0.5.0" + nomnomnomnom "^2.0.0" + object-assign "^4.0.1" + source-map "^0.5.0" + which "^1.0.9" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul@0.4.5, istanbul@^0.4.0: + version "0.4.5" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + integrity sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs= + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +js-base64@^2.1.8, js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.5.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= + dependencies: + string-convert "^0.2.0" + +json3@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" + integrity sha1-9u/JPAagTemuxTBT3yVZuxniA4s= + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonpointer@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc" + integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg== + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jsx-ast-utils@^1.3.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" + integrity sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE= + +karma-coverage@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.2.tgz#cc09dceb589a83101aca5fe70c287645ef387689" + integrity sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw== + dependencies: + dateformat "^1.0.6" + istanbul "^0.4.0" + lodash "^4.17.0" + minimatch "^3.0.0" + source-map "^0.5.1" + +karma-mocha-reporter@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" + integrity sha1-FRIAlejtgZGG5HoLAS8810GJVWA= + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + strip-ansi "^4.0.0" + +karma-mocha@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= + dependencies: + minimist "1.2.0" + +karma-phantomjs-launcher@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" + integrity sha1-0jyjSAG9qYY60xjju0vUBisTrNI= + dependencies: + lodash "^4.0.1" + phantomjs-prebuilt "^2.1.7" + +karma-webpack-with-fast-source-maps@^1.9.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/karma-webpack-with-fast-source-maps/-/karma-webpack-with-fast-source-maps-1.10.2.tgz#43bc7940a4e6338cb73764237060f98873b83898" + integrity sha512-bpXPVY7GuempBOFZp26TbdA3V7NayqMY7RdcBHz2GIuyWLhVder8fN+yqrGtS2v1lVw5kw586EE6sjF1YymaJg== + dependencies: + async "~0.9.0" + loader-utils "^0.2.5" + lodash "^3.8.0" + source-map "^0.1.41" + webpack-dev-middleware "^1.0.11" + +karma@^1.0.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" + integrity sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg== + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" + source-map "^0.5.3" + tmp "0.0.31" + useragent "^2.1.12" + +kcors@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/kcors/-/kcors-1.3.3.tgz#afaf9e5dbef4c20c2994a7b434e4f7e07826fc65" + integrity sha512-xuEWtIfnny0JDWhD4/Q6oXXCbaIXR9etDi/IK5bFSJSrlOb/9hKrJuu6O9vJdE9jthbHf1mHFzbyZh9+q8QpWw== + dependencies: + copy-to "^2.0.1" + +kew@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" + integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s= + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +koa-compose@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.1.0.tgz#f6e32f1b8953f7c87b97fc10c208fed334da76f4" + integrity sha1-9uMvG4lT98h7l/wQwgj+0zTadvQ= + dependencies: + any-promise "^1.1.0" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== + +koa-compress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/koa-compress/-/koa-compress-2.0.0.tgz#7b7eb2921b847746b5e122ba9f5cd8a671e8ea3a" + integrity sha1-e36ykhuEd0a14SK6n1zYpnHo6jo= + dependencies: + bytes "^2.3.0" + compressible "^2.0.0" + koa-is-json "^1.0.0" + statuses "^1.0.0" + +koa-conditional-get@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz#a43f3723c1d014b730a34ece8adf30b93c8233f2" + integrity sha1-pD83I8HQFLcwo07Oit8wuTyCM/I= + +koa-connect-history-api-fallback@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/koa-connect-history-api-fallback/-/koa-connect-history-api-fallback-0.3.1.tgz#068ffee68f3a7e85e998b63d0c5a3f05b68d534d" + integrity sha1-Bo/+5o86foXpmLY9DFo/BbaNU00= + dependencies: + connect-history-api-fallback "^1.1.0" + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-etag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/koa-etag/-/koa-etag-3.0.0.tgz#9ef7382ddd5a82ab0deb153415c915836f771d3f" + integrity sha1-nvc4Ld1agqsN6xU0FckVg293HT8= + dependencies: + etag "^1.3.0" + mz "^2.1.0" + +koa-is-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" + integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= + +koa-proxy@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/koa-proxy/-/koa-proxy-0.8.0.tgz#c8e832d27d5ea866ce176252584341853cc37b10" + integrity sha1-yOgy0n1eqGbOF2JSWENBhTzDexA= + dependencies: + co-request "^0.2.0" + iconv-lite "^0.2.11" + +koa-route@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/koa-route/-/koa-route-3.2.0.tgz#76298b99a6bcfa9e38cab6fe5c79a8733e758bce" + integrity sha1-dimLmaa8+p44yrb+XHmocz51i84= + dependencies: + debug "*" + methods "~1.1.0" + path-to-regexp "^1.2.0" + +koa-send@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-3.3.0.tgz#5a4ae245564680c6ecf6079e9275fa5173a861dc" + integrity sha1-WkriRVZGgMbs9geeknX6UXOoYdw= + dependencies: + co "^4.6.0" + debug "^2.6.0" + mz "^2.3.1" + resolve-path "^1.3.1" + +koa-socket@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/koa-socket/-/koa-socket-4.4.0.tgz#e651a003980d96d96fce3955116dfbc563665097" + integrity sha1-5lGgA5gNltlvzjlVEW37xWNmUJc= + dependencies: + koa-compose "3.1.0" + socket.io "1.4.5" + +koa-static@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-3.0.0.tgz#40442233d2c0b35c225e450199c10bf8a539e416" + integrity sha1-QEQiM9LAs1wiXkUBmcEL+KU55BY= + dependencies: + debug "*" + koa-send "^3.2.0" + +koa@^2.0.0-alpha.3, koa@^2.0.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" + integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== + dependencies: + accepts "^1.3.5" + cache-content-type "^1.0.0" + content-disposition "~0.5.2" + content-type "^1.0.4" + cookies "~0.8.0" + debug "~3.1.0" + delegates "^1.0.0" + depd "^2.0.0" + destroy "^1.0.4" + encodeurl "^1.0.2" + escape-html "^1.0.3" + fresh "~0.5.2" + http-assert "^1.3.0" + http-errors "^1.6.3" + is-generator-function "^1.0.7" + koa-compose "^4.1.0" + koa-convert "^1.2.0" + on-finished "^2.3.0" + only "~0.0.2" + parseurl "^1.3.2" + statuses "^1.5.0" + type-is "^1.6.16" + vary "^1.1.2" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + dependencies: + package-json "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash-es@^4.17.3, lodash-es@^4.2.1: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + integrity sha1-g4pbri/aymOsIt7o4Z+k5taXCxE= + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + integrity sha1-POnwI0tLIiPilrj6CsH+6OvKZPo= + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + +lodash.assign@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c= + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.debounce@^4.0.0, lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + integrity sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw= + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.defaults@^4.0.0, lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.keys@^3.0.0, lodash.keys@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= + +lodash.throttle@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= + +lodash@^3.8.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= + +lodash@^4.0.0, lodash@^4.0.1, lodash@^4.16.5, lodash@^4.17.0, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^0.6.31: + version "0.6.38" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + integrity sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0= + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + +lolex@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31" + integrity sha1-fD2mL/yzDw9agKJWbKJORdigHzE= + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lru-cache@4.1.x, lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-expression-evaluator@^1.2.14: + version "1.3.7" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.7.tgz#1b62225db86af06f7ea1fd9576a34af605a5b253" + integrity sha512-nrbaifCl42w37hYd6oRLvoymFK42tWB+WQTMFtksDGQMi5GvlJwnz/CsS30FFAISFLtX+A0csJ0xLiuuyyec7w== + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + integrity sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +methods@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.47.0, "mime-db@>= 1.43.0 < 2": + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + integrity sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc= + +mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.11, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + +mime-types@~2.0.4: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + integrity sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY= + dependencies: + mime-db "~1.12.0" + +mime@1.3.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + integrity sha1-WR2E02U6awtKO5343lqoEI5y5eA= + +mime@^1.3.4, mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mocha@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg== + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +moment@2.x, moment@^2.18.1, moment@^2.19.3: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + +mongodb-core@2.1.20: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1" + integrity sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ== + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb@^2.1.18: + version "2.2.36" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5" + integrity sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA== + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.20" + readable-stream "2.2.7" + +monk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/monk/-/monk-4.1.0.tgz#c7e540e86aae690d712c3e0ab7061ad8ba5a3a2a" + integrity sha1-x+VA6GquaQ1xLD4KtwYa2LpaOio= + dependencies: + debug "*" + gitbook-plugin-github "2.0.0" + mongodb "^2.1.18" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg= + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + integrity sha1-riXPJRKziFodldfwN4aNhDESR2U= + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + integrity sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA= + +mz@^2.1.0, mz@^2.3.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1, nan@^2.13.2: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.4.9: + version "0.4.9" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" + integrity sha1-kuRrbbU8fkIe1koryU8IvnYw3z8= + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "^2.87.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-libs-browser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" + integrity sha1-PicsCBnjCJNeJmdECNevDhSRuDs= + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "3.3.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-sass@^4.5.2: + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash "^4.17.15" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.13.2" + node-gyp "^3.8.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +nodemon@^1.10.2: + version "1.19.4" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" + integrity sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ== + dependencies: + chokidar "^2.1.8" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.2" + update-notifier "^2.5.0" + +nomnomnomnom@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nomnomnomnom/-/nomnomnomnom-2.0.1.tgz#b2239f031c8d04da67e32836e1e3199e12f7a8e2" + integrity sha1-siOfAxyNBNpn4yg24eMZnhL3qOI= + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +"nopt@2 || 3", nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= + dependencies: + abbrev "1" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize.css@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-6.0.0.tgz#22188c2707c911fb3ad3c1aac0677ff68661bea8" + integrity sha1-IhiMJwfJEfs608GqwGd/9oZhvqg= + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= + +object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1, object-assign@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.9.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" + integrity sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" + integrity sha1-D9mnT8X60a45aLWGvaXGMr1sBaU= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +omit.js@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" + integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== + dependencies: + babel-runtime "^6.23.0" + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@1.x, once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +only@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + +optimist@^0.6.1, optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + integrity sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8= + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + integrity sha1-0KM+7+YaIF+suQCS6CZZjVJFznY= + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parsejson@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" + integrity sha1-mxDGwNglq1ieaFFTgm3go7oni8w= + dependencies: + better-assert "~1.0.0" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs= + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" + integrity sha1-nf5wss3aw4i95PNbHyQPpYrb5sc= + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" + integrity sha1-gGWCo5iH4eoY3V4v4OAZAiaOk1A= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@^1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@^1.2.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + integrity sha1-tuDI+plJTZTgURV1gCpZpcFC8og= + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +phantomjs-prebuilt@^2.1.12, phantomjs-prebuilt@^2.1.7: + version "2.1.16" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" + integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8= + dependencies: + es6-promise "^4.0.3" + extract-zip "^1.6.5" + fs-extra "^1.0.0" + hasha "^2.2.0" + kew "^0.7.0" + progress "^1.1.8" + request "^2.81.0" + request-progress "^2.0.1" + which "^1.2.10" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + integrity sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU= + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== + dependencies: + postcss "^5.0.4" + +postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + integrity sha1-U56a/J3chiASHr+djDZz4M5Q0oo= + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + integrity sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw= + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + integrity sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI= + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-1.3.3.tgz#a621ea1fa29062a83972a46f54486771301916eb" + integrity sha1-piHqH6KQYqg5cqRvVEhncTAZFus= + dependencies: + loader-utils "^1.0.2" + object-assign "^4.1.1" + postcss "^5.2.15" + postcss-load-config "^1.2.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15, postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +pretty-error@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pstree.remy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0, query-string@^4.2.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@^1.0.3, range-parser@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc-align@2.x, rc-align@^2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-2.4.5.tgz#c941a586f59d1017f23a428f0b468663fb7102ab" + integrity sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw== + dependencies: + babel-runtime "^6.26.0" + dom-align "^1.7.0" + prop-types "^15.5.8" + rc-util "^4.0.4" + +rc-animate@2.x, rc-animate@^2.0.2, rc-animate@^2.3.0, rc-animate@^2.4.1: + version "2.11.1" + resolved "https://registry.yarnpkg.com/rc-animate/-/rc-animate-2.11.1.tgz#2666eeb6f1f2a495a13b2af09e236712278fdb2c" + integrity sha512-1NyuCGFJG/0Y+9RKh5y/i/AalUCA51opyyS/jO2seELpgymZm2u9QV3xwODwEuzkmeQ1BDPxMLmYLcTJedPlkQ== + dependencies: + babel-runtime "6.x" + classnames "^2.2.6" + css-animation "^1.3.2" + prop-types "15.x" + raf "^3.4.0" + rc-util "^4.15.3" + react-lifecycles-compat "^3.0.4" + +rc-animate@^3.0.0-rc.5: + version "3.1.1" + resolved "https://registry.yarnpkg.com/rc-animate/-/rc-animate-3.1.1.tgz#defdd863f56816c222534e4dc68feddecd081386" + integrity sha512-8wg2Zg3EETy0k/9kYuis30NJNQg1D6/WSQwnCiz6SvyxQXNet/rVraRz3bPngwY6rcU2nlRvoShiYOorXyF7Sg== + dependencies: + "@ant-design/css-animation" "^1.7.2" + classnames "^2.2.6" + raf "^3.4.0" + rc-util "^4.15.3" + +rc-calendar@~9.0.0: + version "9.0.4" + resolved "https://registry.yarnpkg.com/rc-calendar/-/rc-calendar-9.0.4.tgz#35810a8df6428f4fb85e8debdb07bd8d2eb3c5f5" + integrity sha512-Ut/QLqkm8QfnomyOduQxb8XEz84Dgrk0H2nmuhWbNNQ5ReoK6ZbFzbyjHAECeIHslL19PxU7aE/8A/MOOCxITw== + dependencies: + babel-runtime "6.x" + classnames "2.x" + create-react-class "^15.5.2" + moment "2.x" + prop-types "^15.5.8" + rc-trigger "1.x" + rc-util "^4.0.4" + +rc-cascader@~0.11.3: + version "0.11.6" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-0.11.6.tgz#7e88cfbb7500b3941a5940cf6e91569c53e37f9d" + integrity sha512-j9HXC3HrxBy8vpIE/UKtHCLHRWRd9xj2gIMYOnrvnjehRKFdrHxizIdz4Tx7EuN8cVDZe6GYngxFTtBlWCfBFQ== + dependencies: + array-tree-filter "^1.0.0" + prop-types "^15.5.8" + rc-trigger "1.x" + rc-util "4.x" + shallow-equal "^1.0.0" + +rc-checkbox@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-2.0.3.tgz#436a9d508948e224980f0535ea738b48177a8f25" + integrity sha1-Q2qdUIlI4iSYDwU16nOLSBd6jyU= + dependencies: + babel-runtime "^6.23.0" + classnames "2.x" + prop-types "15.x" + rc-util "^4.0.4" + +rc-collapse@~1.7.5: + version "1.7.7" + resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-1.7.7.tgz#16c9fe691f0191f16c9c2eda39989bfc1a19fa2b" + integrity sha512-F9eWCcFtwb/H7ot1e/Z9CamVM1bQ0GaTx3Agkle6LrhrcPxuWTH00dldmtk0HelCBK43TyhTWoHEFB5S4biPLA== + dependencies: + classnames "2.x" + css-animation "1.x" + prop-types "^15.5.6" + rc-animate "2.x" + +rc-dialog@~6.5.10: + version "6.5.11" + resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-6.5.11.tgz#a6ef4d81a7801a54e9923273c605dd521d7fb142" + integrity sha512-FGifsGYvCO8vZQ6SBezXUf60JZ2wa2tHv+qLnUPA7HJaR52v4l4pVwQJgdbNiE3lvveH0Qq4x6C9ZQjTAK5SVA== + dependencies: + babel-runtime "6.x" + create-react-class "^15.5.2" + object-assign "~4.1.0" + rc-animate "2.x" + rc-util "^4.0.4" + +rc-dropdown@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-1.5.1.tgz#633344f4d1998af35bbb9a9da9d3ed2f21876776" + integrity sha512-nq+9ZShevzvJXOQyYaACQKlMYWUqnzJCh+TEEy1qpsj5lYeTd9FqFnG6mn2PiL/BeWBWW/lbjaHn56o5e9GJ8Q== + dependencies: + prop-types "^15.5.8" + rc-trigger "1.x" + +rc-editor-core@~0.7.7: + version "0.7.9" + resolved "https://registry.yarnpkg.com/rc-editor-core/-/rc-editor-core-0.7.9.tgz#dfe8fa20f33aea41bcac1ca484934b600dbb766d" + integrity sha1-3+j6IPM66kG8rBykhJNLYA27dm0= + dependencies: + draft-js "^0.10.0" + immutable "^3.7.4" + lodash "^4.16.5" + prop-types "^15.5.8" + setimmediate "^1.0.5" + +rc-editor-mention@~0.6.12: + version "0.6.14" + resolved "https://registry.yarnpkg.com/rc-editor-mention/-/rc-editor-mention-0.6.14.tgz#c71ab8d94960142462a1da571c3c55e621ba1f14" + integrity sha512-2fhxptmTLoWF0qs3pz+6Dh40xi0mKuUCFxo17sKi9x1OpAnp1JGB27dc9iV1oP1l8dJCLRKMtInTMGbCX18OzA== + dependencies: + classnames "^2.2.5" + dom-scroll-into-view "^1.2.0" + draft-js "~0.10.0" + immutable "~3.7.4" + prop-types "^15.5.8" + rc-animate "^2.3.0" + rc-editor-core "~0.7.7" + +rc-form@~1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/rc-form/-/rc-form-1.4.8.tgz#e26c2cd86137d943c2e2996407d73e9fa073b1c6" + integrity sha512-OISgu4LdHmLg/RvnbVmQoRoP2nbthge+bZ6/IKqPm4j4P2s5wQJTSuAKLR4kJoJla0V69czwd7MsOwQN45eBaA== + dependencies: + async-validator "1.x" + babel-runtime "6.x" + create-react-class "^15.5.3" + dom-scroll-into-view "1.x" + hoist-non-react-statics "1.x" + lodash "^4.17.4" + warning "^3.0.0" + +rc-hammerjs@~0.6.0: + version "0.6.10" + resolved "https://registry.yarnpkg.com/rc-hammerjs/-/rc-hammerjs-0.6.10.tgz#1831a3bd8f2199700bfcc5ad6b20a35630aeb5e0" + integrity sha512-Vgh9qIudyN5CHRop4M+v+xUniQBFWXKrsJxQRVtJOi2xgRrCeI52/bkpaL5HWwUhqTK9Ayq0n7lYTItT6ld5rg== + dependencies: + babel-runtime "6.x" + hammerjs "^2.0.8" + prop-types "^15.5.9" + +rc-input-number@~3.6.0: + version "3.6.10" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-3.6.10.tgz#651e17f72d7e5c47a07e126db9ee8d176aa85c2e" + integrity sha512-IlZBLfSzGQTFE6CgYDid8gthSWlC015JsNpfHdTmhDgGbagmBNijJD9rS+SMcDCADyz5VpIlPg2ZCzsg6C07HQ== + dependencies: + babel-runtime "6.x" + classnames "^2.2.0" + create-react-class "^15.5.2" + prop-types "^15.5.7" + rc-touchable "^1.0.0" + +rc-menu@^5.0.11: + version "5.1.4" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-5.1.4.tgz#e5df08fe8b833e81469135ff13b30ab8f21ff3c6" + integrity sha512-ZUkUNda70GtTXcQDiO3rSDdk3sgIwDwzPUm5dVM8nRH/j84qv0BVBkIUwIBu8+s+G3G9lWLurRqh22dCqZPeOA== + dependencies: + babel-runtime "6.x" + classnames "2.x" + create-react-class "^15.5.2" + dom-scroll-into-view "1.x" + prop-types "^15.5.6" + rc-animate "2.x" + rc-util "^4.0.2" + +rc-menu@~5.0.10: + version "5.0.14" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-5.0.14.tgz#73fd8e6f3525077b825c34c0318394bedce573d6" + integrity sha512-Ks6GOB9obVvrHCtbp5X8xCK+D08Hwlrjkx60sa4RYPuimuUS4uQo8yV1FJLPTvRCx1PXxM8Clj23jawuoPDs3g== + dependencies: + babel-runtime "6.x" + classnames "2.x" + create-react-class "^15.5.2" + dom-scroll-into-view "1.x" + prop-types "^15.5.6" + rc-animate "2.x" + rc-util "^4.0.2" + +rc-notification@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-2.0.6.tgz#76f3f71d9423bf4603a02d7aa0c4b094a46b8c67" + integrity sha512-KD5JcCIiZQaTvbGsbevRFQbHcxTkj49A5ceCBQ2RAnLbCaC9H+plXTZJEUUDMDmESVVx7491CvTzWVAvR9z/Pw== + dependencies: + babel-runtime "6.x" + classnames "2.x" + prop-types "^15.5.8" + rc-animate "2.x" + rc-util "^4.0.4" + +rc-pagination@~1.12.4: + version "1.12.12" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-1.12.12.tgz#0609c7b32f43ae158b8d9093ffeec81e5d458d91" + integrity sha512-q3JfDfQjIem+88ELFqt3beoee4UQep8PZOdCkkMIlebEuMZMPXKOaChcmCyii0qkn3akoVfIChUjVOCCHtXhnw== + dependencies: + babel-runtime "6.x" + prop-types "^15.5.7" + +rc-progress@~2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-2.2.7.tgz#e650928c83f54da876f39b957a680afa01b490f8" + integrity sha512-uLHHpQO4/yFa/AX6Uw2dJFUIfAkfI6430h0a1XJX/A0Ja0wmuwjEa03biuKfKwwqz2skFiAaXco1GlgaJK9mKA== + dependencies: + babel-runtime "6.x" + prop-types "^15.5.8" + +rc-rate@~2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.1.1.tgz#88aeda8b3d6470bbae4f6518c652a02a959bddc5" + integrity sha1-iK7aiz1kcLuuT2UYxlKgKpWb3cU= + dependencies: + classnames "^2.2.5" + prop-types "^15.5.8" + +rc-select@~6.9.0: + version "6.9.8" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-6.9.8.tgz#1c95baacb1c2bc6ba6ad478af88c97f54c436c93" + integrity sha512-PO665G7iD0+CWTXQBd+wsVrDd/Y4FRrjppOYbc0R5O/di92Aj8NItVFYFtBN4olqvdUh5yXDkvf2TW0QAPQJvQ== + dependencies: + babel-runtime "^6.23.0" + classnames "2.x" + component-classes "1.x" + dom-scroll-into-view "1.x" + prop-types "^15.5.8" + rc-animate "2.x" + rc-menu "^5.0.11" + rc-trigger "1.x" + rc-util "^4.0.4" + warning "^3.0.0" + +rc-slider@~8.3.0: + version "8.3.5" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-8.3.5.tgz#41f88ab95debe089139deee7120c6e151260b52d" + integrity sha512-zg2fa8WOH101eMCsTShUKFPJ/t74B0m1gE4Icb+gjQ//viX/HrWdF03yiSaXHrgIyXu7go0+uaKgVFXv4r/jHA== + dependencies: + babel-runtime "6.x" + classnames "^2.2.5" + prop-types "^15.5.4" + rc-tooltip "^3.4.3" + rc-util "^4.0.4" + shallowequal "^1.0.1" + warning "^3.0.0" + +rc-steps@~2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-2.5.2.tgz#2ff2e03348ba8cc4114f0568e420add6ee273fae" + integrity sha512-FsKpogxMaF2GYX3G9pn0pwTm9XTS+fAge/7F9uN0sDRPULUODBaUtlVUAOrDXIFOcIxxeku2UWBA6WfUvmcfTw== + dependencies: + classnames "^2.2.3" + lodash.debounce "^4.0.8" + prop-types "^15.5.7" + +rc-switch@~1.5.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-1.5.3.tgz#283c2608bac57ebd7cdc4033269de14b6753eb39" + integrity sha512-mOs6ZRgtioWt34CBrxC0nH5vJcg8cJ6RuDExN7qua3m9WYmd6NoSMgK3hXI7VDXuAsSLUGiE9MhJyIeeGcr57A== + dependencies: + babel-runtime "^6.23.0" + classnames "^2.2.1" + prop-types "^15.5.6" + +rc-table@~5.6.9: + version "5.6.13" + resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-5.6.13.tgz#ca73021dc6a3aa0af2846d07ee80c01c713ff0de" + integrity sha512-gyhtFKXgj1TlWzJ2eA5nFWsjXuqb0bSZP8pyjXbXOoCvWSHRRf8CAJK9sF+8x9JJjXDVNSqsZtj+GvDpW4B4MA== + dependencies: + babel-runtime "6.x" + component-classes "^1.2.6" + lodash.get "^4.4.2" + prop-types "^15.5.8" + rc-util "4.x" + shallowequal "^0.2.2" + warning "^3.0.0" + +rc-tabs@~9.1.2: + version "9.1.11" + resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-9.1.11.tgz#cb259d312b4b238f4e5a90dc0efb88000d8e9535" + integrity sha512-pepWb6YYqvskWyXxc2klJR6GH4//4rSEFAttIJaRuZn++uSf3k5nOSPvO0x0qGOoX+Dz8P8DIcnoZQADvYcr7g== + dependencies: + babel-runtime "6.x" + classnames "2.x" + create-react-class "15.x" + lodash.debounce "^4.0.8" + prop-types "15.x" + rc-hammerjs "~0.6.0" + rc-util "^4.0.4" + warning "^3.0.0" + +rc-time-picker@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/rc-time-picker/-/rc-time-picker-2.4.1.tgz#074e3d1208e880edb0d99a7b9cc15b93505da8c6" + integrity sha1-B049EgjogO2w2Zp7nMFbk1BdqMY= + dependencies: + babel-runtime "6.x" + classnames "2.x" + moment "2.x" + prop-types "^15.5.8" + rc-trigger "1.x" + +rc-tooltip@^3.4.3: + version "3.7.3" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-3.7.3.tgz#280aec6afcaa44e8dff0480fbaff9e87fc00aecc" + integrity sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww== + dependencies: + babel-runtime "6.x" + prop-types "^15.5.8" + rc-trigger "^2.2.2" + +rc-tooltip@~3.4.6: + version "3.4.9" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-3.4.9.tgz#6f99ecbbe3925810447fe0ce81a6ed4f721da8c5" + integrity sha512-D9VFsy+0sB6s3zZ/DSTI+AJB106mOrRVTw3IXwF1mMhjHaCvEO+CGzHcTfyj9k6tY+5c4E+fd+r2g4DnkjgSNg== + dependencies: + babel-runtime "6.x" + prop-types "^15.5.8" + rc-trigger "1.x" + +rc-touchable@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/rc-touchable/-/rc-touchable-1.3.2.tgz#ca7d13611df615203ddc1e6a606c843588a671d7" + integrity sha512-zuUZj7jvtaHFUf80r9BUZLjmlZCnKVK29pP7IPtPPVfEk6b+fMsUuMyU4ICog+VSkdnfrpuo+LveQg7/hLSSsg== + dependencies: + babel-runtime "6.x" + +rc-tree-select@~1.10.2: + version "1.10.13" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-1.10.13.tgz#a9ac2e1a34ccfc4e1ea91b438b248cc3b210c2d9" + integrity sha512-OqyuN3WvizIaH0aa07FBK0BPWQOqm67A2Xv1gzqsHIXaLAs5yO1EEtx3UncfCDLyk6Uk/h580pepNp4Cby/i5Q== + dependencies: + babel-runtime "^6.23.0" + classnames "^2.2.1" + object-assign "^4.0.1" + prop-types "^15.5.8" + rc-animate "^2.0.2" + rc-tree "~1.7.1" + rc-trigger "1.x" + rc-util "^4.0.2" + +rc-tree@^1.4.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-1.15.3.tgz#4924814c468dc8095cac212fa38ba2b1cb6cb5c9" + integrity sha512-FIKGKCesbQnILbsjGyu354R5pfrFtOcYz/w3ZIqFkJWIbbUeveWU8BgTKcpeSQgyKju1hsWORAePkeA+V1unFg== + dependencies: + babel-runtime "^6.23.0" + classnames "2.x" + prop-types "^15.5.8" + rc-animate "^3.0.0-rc.5" + rc-util "^4.5.1" + react-lifecycles-compat "^3.0.4" + warning "^3.0.0" + +rc-tree@~1.7.0, rc-tree@~1.7.1: + version "1.7.12" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-1.7.12.tgz#65fb888be0c778a959e63e3b35aaf2671c5a494c" + integrity sha512-xT9s+lsUyhCz63vLd8V6l1am7OYtunbS+SUPuzmhXgB2T3C2Km1syBtZRJ18rj5bn+zPkuy90CWp5GutAV3L6Q== + dependencies: + babel-runtime "^6.23.0" + classnames "2.x" + prop-types "^15.5.8" + rc-animate "2.x" + rc-util "^4.0.4" + warning "^3.0.0" + +rc-trigger@1.x: + version "1.11.5" + resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-1.11.5.tgz#f88f9f84e0e79f8e0ef1c8d1bf8ac2208b715620" + integrity sha512-MBuUPw1nFzA4K7jQOwb7uvFaZFjXGd00EofUYiZ+l/fgKVq8wnLC0lkv36kwqM7vfKyftRo2sh7cWVpdPuNnnw== + dependencies: + babel-runtime "6.x" + create-react-class "15.x" + prop-types "15.x" + rc-align "2.x" + rc-animate "2.x" + rc-util "4.x" + +rc-trigger@^2.2.2: + version "2.6.5" + resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-2.6.5.tgz#140a857cf28bd0fa01b9aecb1e26a50a700e9885" + integrity sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw== + dependencies: + babel-runtime "6.x" + classnames "^2.2.6" + prop-types "15.x" + rc-align "^2.4.0" + rc-animate "2.x" + rc-util "^4.4.0" + react-lifecycles-compat "^3.0.4" + +rc-upload@~2.4.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-2.4.4.tgz#28e1e6a3e44d1b1f92e57e21927cfa2763ac2a21" + integrity sha512-EQgGSFiqZWkQ93kC997c1Uan9VgMzJvlaUQt16PrHvmHw/boUs3M/lf0GhYlmpe7YSnN0jGpMNUcENUFwDVAHA== + dependencies: + babel-runtime "6.x" + classnames "^2.2.5" + prop-types "^15.5.7" + warning "2.x" + +rc-util@4.x, rc-util@^4.0.2, rc-util@^4.0.4, rc-util@^4.15.3, rc-util@^4.4.0, rc-util@^4.5.1: + version "4.21.1" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-4.21.1.tgz#88602d0c3185020aa1053d9a1e70eac161becb05" + integrity sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg== + dependencies: + add-dom-event-listener "^1.1.0" + prop-types "^15.5.10" + react-is "^16.12.0" + react-lifecycles-compat "^3.0.4" + shallowequal "^1.1.0" + +rc@^1.0.1, rc@^1.1.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-addons-css-transition-group@^15.4.1: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.2.tgz#9e4376bcf40b5217d14ec68553081cee4b08a6d6" + integrity sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY= + dependencies: + react-transition-group "^1.2.0" + +react-addons-test-utils@^15.4.1: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.6.2.tgz#c12b6efdc2247c10da7b8770d185080a7b047156" + integrity sha1-wStu/cIkfBDae4dw0YUICnsEcVY= + +react-cookie@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/react-cookie/-/react-cookie-1.0.5.tgz#234190bd55ddfea361444a89c873077ab6abf651" + integrity sha1-I0GQvVXd/qNhREqJyHMHerar9lE= + dependencies: + cookie "^0.3.1" + is-node "^1.0.2" + object-assign "^4.1.0" + +react-dimensions@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/react-dimensions/-/react-dimensions-1.3.1.tgz#89c29bcd48828a74faeb07da1e461e1a354ccc48" + integrity sha512-go5vMuGUxaB5PiTSIk+ZfAxLbHwcIgIfLhkBZ2SIMQjaCgnpttxa30z5ijEzfDjeOCTGRpxvkzcmE4Vt4Ppvyw== + dependencies: + element-resize-event "^2.0.4" + +react-dom@^15.4.1: + version "15.7.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.7.0.tgz#39106dee996d0742fb0f43d567ef8b8153483ab2" + integrity sha512-mpjXqC2t1FuYsILOLCj0kg6pbg460byZkVA/80VtDmKU/pYmoTdHOtaMcTRIDiyXLz4sIur0cQ04nOC6iGndJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +react-draggable@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-2.2.6.tgz#3a806e10f2da6babfea4136be6510e89b0d76901" + integrity sha1-OoBuEPLaa6v+pBNr5lEOibDXaQE= + dependencies: + classnames "^2.2.5" + +react-draggable@^4.0.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.3.tgz#0727f2cae5813e36b0e4962bf11b2f9ef2b406f3" + integrity sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w== + dependencies: + classnames "^2.2.5" + prop-types "^15.6.0" + +react-element-to-jsx-string@^5.0.0: + version "5.0.7" + resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-5.0.7.tgz#c663a4800a9c712115c0d8519cb0215a46a1f0f2" + integrity sha1-xmOkgAqccSEVwNhRnLAhWkah8PI= + dependencies: + collapse-white-space "^1.0.0" + is-plain-object "^2.0.1" + lodash "^4.17.4" + sortobject "^1.0.0" + stringify-object "2.4.0" + traverse "^0.6.6" + +react-grid-layout@^0.14.4: + version "0.14.7" + resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.14.7.tgz#aaa0d090007a4d482d39a95bd63c8ef12901eab4" + integrity sha1-qqDQkAB6TUgtOalb1jyO8SkB6rQ= + dependencies: + classnames "^2.2.5" + lodash.isequal "^4.0.0" + prop-types "^15.5.8" + react-draggable "^2.2.6" + react-resizable "^1.4.0" + +react-is@^16.12.0, react-is@^16.13.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-lazy-load@^3.0.12: + version "3.1.13" + resolved "https://registry.yarnpkg.com/react-lazy-load/-/react-lazy-load-3.1.13.tgz#236943f76b7084cc8458716d9632a1c9853ea5cd" + integrity sha512-eAVNUn3vhNj79Iv04NOCwy/sCLyqDEhL3j9aJKV7VJuRBDg6rCiB+BIWHuG7VXJGCgb//6nX/soR8PTyWRhFvQ== + dependencies: + eventlistener "0.0.1" + lodash.debounce "^4.0.0" + lodash.throttle "^4.0.0" + prop-types "^15.5.8" + +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-redux@^5.0.3: + version "5.1.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" + integrity sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q== + dependencies: + "@babel/runtime" "^7.1.2" + hoist-non-react-statics "^3.3.0" + invariant "^2.2.4" + loose-envify "^1.1.0" + prop-types "^15.6.1" + react-is "^16.6.0" + react-lifecycles-compat "^3.0.0" + +react-resizable@^1.4.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.11.1.tgz#02ca6850afa7a22c1b3e623e64aef71ee252af69" + integrity sha512-S70gbLaAYqjuAd49utRHibtHLrHXInh7GuOR+6OO6RO6uleQfuBnWmZjRABfqNEx3C3Z6VPLg0/0uOYFrkfu9Q== + dependencies: + prop-types "15.x" + react-draggable "^4.0.3" + +react-router-redux@^4.0.7: + version "4.0.8" + resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-4.0.8.tgz#227403596b5151e182377dab835b5d45f0f8054e" + integrity sha1-InQDWWtRUeGCN32rg1tdRfD4BU4= + +react-router@^3.0.2: + version "3.2.6" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.2.6.tgz#cad202796a7bba3efc2100da453b3379c9d4aeb4" + integrity sha512-nlxtQE8B22hb/JxdaslI1tfZacxFU8x8BJryXOnR2RxB4vc01zuHYAHAIgmBkdk1kzXaA25hZxK6KAH/+CXArw== + dependencies: + create-react-class "^15.5.1" + history "^3.0.0" + hoist-non-react-statics "^3.3.2" + invariant "^2.2.1" + loose-envify "^1.2.0" + prop-types "^15.7.2" + react-is "^16.13.0" + warning "^3.0.0" + +react-slick@~0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/react-slick/-/react-slick-0.15.4.tgz#6709c87b06e7640feeacc06711be42cc2066aabe" + integrity sha512-RXKA8V6NmpTz6Ngo3XB5dg4GrGwDln89j5uG9Z4NXOedlVCzfG3LcHBVC5Pqs411Arbcp8nlzcg39g+rT6OPHw== + dependencies: + can-use-dom "^0.1.0" + classnames "^2.2.5" + create-react-class "^15.5.2" + enquire.js "^2.1.6" + json2mq "^0.2.0" + object-assign "^4.1.0" + slick-carousel "^1.6.0" + +react-tap-event-plugin@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-tap-event-plugin/-/react-tap-event-plugin-2.0.1.tgz#316beb3bc6556e29ec869a7293e89c826a9074d2" + integrity sha1-MWvrO8ZVbinshppyk+icgmqQdNI= + dependencies: + fbjs "^0.8.6" + +react-transition-group@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.1.tgz#e11f72b257f921b213229a774df46612346c7ca6" + integrity sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q== + dependencies: + chain-function "^1.0.0" + dom-helpers "^3.2.0" + loose-envify "^1.3.1" + prop-types "^15.5.6" + warning "^3.0.0" + +react@^15.4.1: + version "15.7.0" + resolved "https://registry.yarnpkg.com/react/-/react-15.7.0.tgz#10308fd42ac6912a250bf00380751abc41ac7106" + integrity sha512-5/MMRYmpmM0sMTHGLossnJCrmXQIiJilD6y3YN3TzAwGFj6zdnMtFv6xmi65PHKRV+pehIHpT7oy67Sr6s9AHA== + dependencies: + create-react-class "^15.6.0" + fbjs "^0.8.9" + loose-envify "^1.1.0" + object-assign "^4.1.0" + prop-types "^15.5.10" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" + integrity sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE= + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0, readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + integrity sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redbox-react@^1.3.3: + version "1.6.0" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.6.0.tgz#e753ac02595bc1bf695b3935889a4f5b1b5a21a1" + integrity sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg== + dependencies: + error-stack-parser "^1.3.6" + object-assign "^4.0.1" + prop-types "^15.5.4" + sourcemapped-stacktrace "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== + dependencies: + balanced-match "^1.0.0" + +redux-form@^6.6.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.8.0.tgz#ff1b590b59f987d7e3ff080d752f7120bfe42af3" + integrity sha512-rISN+EERGB8nAS/LDnOSQaTf0f+QreXEq+7pRVvBFzmH5vIsYRwVpBtYA8UsibGzO+0BL1bl5L5bxdrNwxI+sA== + dependencies: + deep-equal "^1.0.1" + es6-error "^4.0.0" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.2" + is-promise "^2.1.0" + lodash "^4.17.3" + lodash-es "^4.17.3" + prop-types "^15.5.9" + +redux-saga@^0.14.4: + version "0.14.8" + resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.14.8.tgz#ad01afabe02ec41a17df54e2e09aa236b30a7732" + integrity sha1-rQGvq+AuxBoX31Ti4JqiNrMKdzI= + +redux-socket.io@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/redux-socket.io/-/redux-socket.io-1.4.0.tgz#28f5f8c47011bce809e2ab760f54891521219b54" + integrity sha1-KPX4xHARvOgJ4qt2D1SJFSEhm1Q= + +redux@^3.6.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + +regenerate@^1.2.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.9: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" + integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + dependencies: + css-select "^2.0.2" + dom-converter "^0.2" + htmlparser2 "^3.10.1" + lodash "^4.17.20" + strip-ansi "^3.0.0" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + integrity sha1-x6jTI2BoNiBZp+RlH8aITosftK4= + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-progress@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" + integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg= + dependencies: + throttleit "^1.0.0" + +request@*, request@>=2.42.0, request@^2.81.0, request@^2.87.0, request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +require_optional@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + integrity sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g== + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + +resolve-path@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + dependencies: + http-errors "~1.6.2" + path-is-absolute "1.0.1" + +resolve-url-loader@^2.0.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.2.tgz#83bb9ebc392b66c563795eef22f078970357a26e" + integrity sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g== + dependencies: + adjust-sourcemap-loader "^1.1.0" + camelcase "^4.1.0" + convert-source-map "^1.5.1" + loader-utils "^1.1.0" + lodash.defaults "^4.0.0" + rework "^1.0.1" + rework-visit "^1.0.0" + source-map "^0.5.7" + urix "^0.1.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.1.6, resolve@^1.10.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rework-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@~2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.1.4.tgz#5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2" + integrity sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I= + optionalDependencies: + graceful-fs "~1" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + integrity sha1-K/GYveFnys+lHAqSjoS2i74XH84= + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + integrity sha1-yK1KXhEGYeQCp9IbUw4AnyX444k= + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI= + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +samsam@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" + integrity sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc= + +samsam@~1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621" + integrity sha1-n1CHQZtNCR8jJXHn+lLpCw9VJiE= + +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + +sass-loader@^6.0.3: + version "6.0.7" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" + integrity sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA== + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + +sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@~4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + integrity sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo= + +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shallowequal@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" + integrity sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4= + dependencies: + lodash.keys "^3.1.2" + +shallowequal@^1.0.1, shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shelljs@^0.7.5: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM= + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sinon-chai@^2.8.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" + integrity sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ== + +sinon@^1.17.5: + version "1.17.7" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.7.tgz#4542a4f49ba0c45c05eb2e9dd9d203e2b8efe0bf" + integrity sha1-RUKk9JugxFwF6y6d2dID4rjv4L8= + dependencies: + formatio "1.1.1" + lolex "1.3.2" + samsam "1.1.2" + util ">=0.10.3 <1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +slick-carousel@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d" + integrity sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" + integrity sha1-+5+CqxqmUpC/csNleVW5MKmRok8= + dependencies: + debug "2.2.0" + socket.io-parser "2.2.2" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + integrity sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s= + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.5.tgz#400d630c31e7c9579e45173f977e4f5bd8dc7d2e" + integrity sha1-QA1jDDHnyVeeRRc/l35PW9jcfS4= + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.0" + debug "2.2.0" + engine.io-client "1.6.8" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.4" + socket.io-parser "2.2.6" + to-array "0.1.4" + +socket.io-client@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" + integrity sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c= + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" + integrity sha1-PXr2tkSX6Va32f53X5mXFgJ/lBc= + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "0.7.4" + isarray "0.0.1" + json3 "3.2.6" + +socket.io-parser@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" + integrity sha1-ON/WHfUNz4qx2eIJEyK/kCuii5k= + dependencies: + benchmark "1.0.0" + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + integrity sha1-3VMgJRA85Clpcya+/WQAX8/ltKA= + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.5.tgz#f202f49eeb9cf7cf6c0971ad75d8d96d451ea4f7" + integrity sha1-8gL0nuuc989sCXGtddjZbUUepPc= + dependencies: + debug "2.2.0" + engine.io "1.6.8" + has-binary "0.1.7" + socket.io-adapter "0.4.0" + socket.io-client "1.4.5" + socket.io-parser "2.2.6" + +socket.io@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" + integrity sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs= + dependencies: + debug "2.3.3" + engine.io "1.8.3" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sortablejs@^1.5.1: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.13.0.tgz#3ab2473f8c69ca63569e80b1cd1b5669b51269e9" + integrity sha512-RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg== + +sortobject@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sortobject/-/sortobject-1.3.0.tgz#bc8ce57014c567bdbf78e89ae6c484e64d51e9dc" + integrity sha512-rr0RrgE3ZoWaREnHiidnywzXLaeqmxDKfB4Htdbzu4WBzsVeZEJrhz7AR4ZF+gzHgbog/lQoNXxCWHaXeLc1Dg== + dependencies: + editions "^2.2.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY= + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@^0.1.41: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.4.2, source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50= + dependencies: + amdefine ">=0.0.4" + +sourcemapped-stacktrace@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.11.tgz#e2dede7fc148599c52a4f883276e527f8452657d" + integrity sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ== + dependencies: + source-map "0.5.6" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stackframe@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" + integrity sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.0.0, statuses@^1.5.0, statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.3.1: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-2.4.0.tgz#c62d11023eb21fe2d9b087be039a26df3b22a09d" + integrity sha1-xi0RAj6yH+LZsIe+A5om3zsioJ0= + dependencies: + is-plain-obj "^1.0.0" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10" + integrity sha1-UOMlJY1OeEId2WgGNrQehmFZXRA= + dependencies: + loader-utils "^1.0.2" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU= + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.0, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +symbol-observable@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + integrity sha1-K7xULw/amGGnVdOUf+/Ys/UThV8= + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= + +tar@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + dependencies: + block-stream "*" + fstream "^1.0.12" + inherits "2" + +temp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.5.1.tgz#77ab19c79aa7b593cbe4fac2441768cad987b8df" + integrity sha1-d6sZx5qntZPL5PrCRBdoytmHuN8= + dependencies: + rimraf "~2.1.4" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +time-stamp@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.2.0.tgz#917e0a66905688790ec7bbbde04046259af83f57" + integrity sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA== + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.2: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +tmp@0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + integrity sha1-jzirlDjhcxXl29izZX6L+yd65Kc= + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= + +type-is@^1.6.16, type-is@~1.6.17: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +ua-parser-js@^0.7.18: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^3.1.4: + version "3.13.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" + integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== + +uglify-js@~2.7.3: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + integrity sha1-RhLAx7qu4rp8SH3kkErhIgefLKg= + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po= + +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +undefsafe@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" + integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== + dependencies: + debug "^2.2.0" + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" + integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^0.5.6: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + integrity sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q== + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlgrey@>=0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= + dependencies: + os-homedir "^1.0.0" + +useragent@^2.1.12: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +utf8@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" + integrity sha1-DP7FyAUtRKI+OqqQgQToB1+V39U= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +"util@>=0.10.3 <1": + version "0.12.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +warning@2.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901" + integrity sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE= + dependencies: + loose-envify "^1.0.0" + +warning@^3.0.0, warning@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + integrity sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws= + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + +webpack-core@~0.6.9: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI= + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + +webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.8.4: + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" + integrity sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A== + dependencies: + memory-fs "~0.4.1" + mime "^1.5.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-hot-middleware@^2.13.2: + version "2.25.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" + integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-sources@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" + integrity sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A= + dependencies: + source-list-map "~0.1.7" + source-map "~0.5.3" + +webpack@^1.13.3: + version "1.15.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" + integrity sha1-T/MfU9sDM55VFkqdRo7gMklo/pg= + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.7.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.9" + +whatwg-fetch@>=0.10.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-fetch@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-typed-array@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" + +which@1, which@^1.0.9, which@^1.1.1, which@^1.2.10, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +ws@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" + integrity sha1-fQsqLljN3YGQOcKcneZQReGzEOk= + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" + integrity sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8= + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + integrity sha1-OS2LotDxw00e4tYw8V0O+2jhBIo= + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xmlhttprequest-ssl@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" + integrity sha1-O3dB/qSoZnWXbpCNKW1ERZYfqmc= + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0= + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" + integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== + dependencies: + camelcase "^3.0.0" + object.assign "^4.1.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.1" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +ylru@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== From 3e563f7132bad968b400c71f77204cfa28cc4428 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Apr 2021 10:19:08 +0000 Subject: [PATCH 02/17] Update dependency codecov to v3 [SECURITY] --- packages/client/package.json | 2 +- yarn.lock | 124 +++++++++++++++++++++++++---------- 2 files changed, 89 insertions(+), 37 deletions(-) diff --git a/packages/client/package.json b/packages/client/package.json index adb0af5..74bfab3 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -143,7 +143,7 @@ "chai": "^3.4.1", "chai-as-promised": "^6.0.0", "chai-enzyme": "^0.6.1", - "codecov": "^1.0.1", + "codecov": "^3.0.0", "enzyme": "^2.8.0", "eslint": "^3.18.0", "eslint-config-standard": "^7.1.0", diff --git a/yarn.lock b/yarn.lock index 2a405c0..a9af29c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,6 +34,11 @@ "@babel/helper-validator-identifier" "^7.12.11" to-fast-properties "^2.0.0" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -115,6 +120,18 @@ after@0.8.2: resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + ajv-keywords@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -295,7 +312,7 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argv@>=0.0.2: +argv@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= @@ -1949,15 +1966,16 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codecov@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/codecov/-/codecov-1.0.1.tgz#97260ceac0e96b8eda8d562006558a53a139dffd" - integrity sha1-lyYM6sDpa47ajVYgBlWKU6E53/0= +codecov@^3.0.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.8.1.tgz#06fe026b75525ed1ce864d4a34f1010c52c51546" + integrity sha512-Qm7ltx1pzLPsliZY81jyaQ80dcNR4/JpcX0IHCIWrHBXgseySqbdbYfkdiXd7o/xmzQpGRVCKGYeTrHUpn6Dcw== dependencies: - argv ">=0.0.2" - execSync "1.0.2" - request ">=2.42.0" - urlgrey ">=0.4.0" + argv "0.0.2" + ignore-walk "3.0.3" + js-yaml "3.14.0" + teeny-request "6.0.1" + urlgrey "0.4.4" collapse-white-space@^1.0.0: version "1.0.6" @@ -2460,7 +2478,7 @@ dateformat@^1.0.6: get-stdin "^4.0.1" meow "^3.3.0" -debug@*: +debug@*, debug@4: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -3308,13 +3326,6 @@ events@^1.0.0: resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= -execSync@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/execSync/-/execSync-1.0.2.tgz#1f42eda582225180053224ecdd3fd1960fdb3139" - integrity sha1-H0LtpYIiUYAFMiTs3T/Rlg/bMTk= - dependencies: - temp "~0.5.1" - execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -3922,11 +3933,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -graceful-fs@~1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q= - "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -4219,6 +4225,15 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-proxy-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy@^1.13.0: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" @@ -4242,6 +4257,14 @@ https-browserify@0.0.1: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== + dependencies: + agent-base "5" + debug "4" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -4283,6 +4306,13 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= +ignore-walk@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + ignore@^3.2.0: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" @@ -4904,6 +4934,14 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= +js-yaml@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.5.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -5991,6 +6029,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.2.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -8009,7 +8052,7 @@ request-progress@^2.0.1: dependencies: throttleit "^1.0.0" -request@*, request@>=2.42.0, request@^2.81.0, request@^2.87.0, request@^2.88.0: +request@*, request@^2.81.0, request@^2.87.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -8167,13 +8210,6 @@ rimraf@2, rimraf@^2.5.4, rimraf@^2.6.0: dependencies: glob "^7.1.3" -rimraf@~2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.1.4.tgz#5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2" - integrity sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I= - optionalDependencies: - graceful-fs "~1" - rimraf@~2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -8731,6 +8767,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-events@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== + dependencies: + stubs "^3.0.0" + stream-http@^2.3.1: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -8883,6 +8926,11 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= + style-loader@^0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10" @@ -8960,12 +9008,16 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -temp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.5.1.tgz#77ab19c79aa7b593cbe4fac2441768cad987b8df" - integrity sha1-d6sZx5qntZPL5PrCRBdoytmHuN8= +teeny-request@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-6.0.1.tgz#9b1f512cef152945827ba7e34f62523a4ce2c5b0" + integrity sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g== dependencies: - rimraf "~2.1.4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^4.0.0" + node-fetch "^2.2.0" + stream-events "^1.0.5" + uuid "^3.3.2" term-size@^1.2.0: version "1.2.0" @@ -9354,7 +9406,7 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -urlgrey@>=0.4.0: +urlgrey@0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= From 90a8bacbd3b5a7b272a6f88411bad1f3f1a535a4 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Apr 2021 13:04:58 +0000 Subject: [PATCH 03/17] Update node Docker tag to v7.10 --- packages/api/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/Dockerfile b/packages/api/Dockerfile index 6c0cffb..4af097b 100644 --- a/packages/api/Dockerfile +++ b/packages/api/Dockerfile @@ -1,5 +1,5 @@ # Use an official Python runtime as a base image -FROM node:7.9 +FROM node:7.10 # Set the working directory to /app WORKDIR /autonews From 2da10c594edf86cd2626e71d030b8c416fbc7942 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Apr 2021 13:05:04 +0000 Subject: [PATCH 04/17] Update python Docker tag to v3.9.4 --- packages/scrape/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/scrape/Dockerfile b/packages/scrape/Dockerfile index e65f5da..792064b 100644 --- a/packages/scrape/Dockerfile +++ b/packages/scrape/Dockerfile @@ -1,5 +1,5 @@ # Use an official Python runtime as a base image -FROM python:3.6.1 +FROM python:3.9.4 # Set the working directory to /app WORKDIR /autonews From ead141bb85f6a313afbc1504ff69280076b85ef4 Mon Sep 17 00:00:00 2001 From: chenbolin Date: Wed, 28 Apr 2021 17:14:53 +0800 Subject: [PATCH 05/17] create client refactor --- packages/autonews-client/.gitignore | 23 ++ packages/autonews-client/README.md | 46 +++ packages/autonews-client/package.json | 56 ++++ packages/autonews-client/public/favicon.ico | Bin 0 -> 3870 bytes packages/autonews-client/public/index.html | 20 ++ packages/autonews-client/public/logo192.png | Bin 0 -> 5347 bytes packages/autonews-client/public/logo512.png | Bin 0 -> 9664 bytes packages/autonews-client/public/manifest.json | 25 ++ packages/autonews-client/public/robots.txt | 3 + packages/autonews-client/src/App.test.tsx | 9 + packages/autonews-client/src/App.tsx | 5 + .../src/assets/styles/styles.css | 1 + .../src/assets/styles/variables.css | 71 +++++ .../src/config/configureStore.ts | 18 ++ .../src/config/route/PrivateRoutes.tsx | 30 ++ .../src/config/route/PublicRoutes.tsx | 23 ++ .../src/config/route/RouteLoader.tsx | 29 ++ .../src/config/route/RoutesConfig.tsx | 58 ++++ packages/autonews-client/src/index.tsx | 20 ++ .../src/layout/Layout.module.scss | 50 +++ .../autonews-client/src/layout/Layout.tsx | 75 +++++ .../src/layout/autonews-logo.png | Bin 0 -> 1762 bytes .../src/modules/about/About.module.scss | 80 +++++ .../src/modules/about/About.tsx | 285 ++++++++++++++++++ .../src/modules/about/logo-autonews.png | Bin 0 -> 4759 bytes .../autonews-client/src/modules/demo/Demo.tsx | 17 ++ .../src/modules/monitor/Monitor.module.scss | 12 + .../src/modules/monitor/Monitor.tsx | 55 ++++ .../MonitorCard/MonitorCard.module.scss | 84 ++++++ .../monitor/MonitorCard/MonitorCard.tsx | 63 ++++ .../src/modules/monitor/icon_Move2.png | Bin 0 -> 857 bytes .../autonews-client/src/react-app-env.d.ts | 3 + .../autonews-client/src/reportWebVitals.ts | 15 + packages/autonews-client/src/setupTests.ts | 5 + .../shared/components/NotFoundComponent.tsx | 13 + .../src/shared/components/Spinner.tsx | 12 + .../components/description/CheckApiCall.tsx | 102 +++++++ .../components/description/CreateTemplate.tsx | 14 + .../description/FolderStructure.tsx | 82 +++++ .../components/description/UtilityExample.tsx | 56 ++++ .../src/shared/constants/common.ts | 109 +++++++ .../src/shared/constants/urls.ts | 2 + .../src/shared/hooks/useForceUpdate.tsx | 6 + .../src/shared/hooks/useSmoothScroll.tsx | 8 + .../src/shared/models/apiModels.ts | 6 + .../src/shared/models/commonModels.ts | 3 + .../src/shared/models/routeModels.ts | 19 ++ .../services/applicationDetailService.ts | 28 ++ .../services/axiosSendRequestService.ts | 1 + .../services/fetchSendRequestService.ts | 56 ++++ .../src/store/actions/exampleAction.ts | 29 ++ packages/autonews-client/src/store/index.ts | 20 ++ .../src/store/models/actionModel.ts | 23 ++ .../src/store/reducer/exampleReducer.ts | 26 ++ .../src/store/sagas/apiCallSaga.ts | 43 +++ .../src/store/types/exampleTypes.ts | 8 + .../src/utils/customPipeUtil.ts | 9 + .../src/utils/dateTimeUtils.ts | 60 ++++ .../autonews-client/src/utils/utility.tsx | 181 +++++++++++ packages/autonews-client/tsconfig.json | 53 ++++ packages/autonews-client/tslint.json | 124 ++++++++ 61 files changed, 2274 insertions(+) create mode 100644 packages/autonews-client/.gitignore create mode 100644 packages/autonews-client/README.md create mode 100644 packages/autonews-client/package.json create mode 100644 packages/autonews-client/public/favicon.ico create mode 100644 packages/autonews-client/public/index.html create mode 100644 packages/autonews-client/public/logo192.png create mode 100644 packages/autonews-client/public/logo512.png create mode 100644 packages/autonews-client/public/manifest.json create mode 100644 packages/autonews-client/public/robots.txt create mode 100644 packages/autonews-client/src/App.test.tsx create mode 100644 packages/autonews-client/src/App.tsx create mode 100644 packages/autonews-client/src/assets/styles/styles.css create mode 100644 packages/autonews-client/src/assets/styles/variables.css create mode 100644 packages/autonews-client/src/config/configureStore.ts create mode 100644 packages/autonews-client/src/config/route/PrivateRoutes.tsx create mode 100644 packages/autonews-client/src/config/route/PublicRoutes.tsx create mode 100644 packages/autonews-client/src/config/route/RouteLoader.tsx create mode 100644 packages/autonews-client/src/config/route/RoutesConfig.tsx create mode 100644 packages/autonews-client/src/index.tsx create mode 100644 packages/autonews-client/src/layout/Layout.module.scss create mode 100644 packages/autonews-client/src/layout/Layout.tsx create mode 100644 packages/autonews-client/src/layout/autonews-logo.png create mode 100644 packages/autonews-client/src/modules/about/About.module.scss create mode 100644 packages/autonews-client/src/modules/about/About.tsx create mode 100644 packages/autonews-client/src/modules/about/logo-autonews.png create mode 100644 packages/autonews-client/src/modules/demo/Demo.tsx create mode 100644 packages/autonews-client/src/modules/monitor/Monitor.module.scss create mode 100644 packages/autonews-client/src/modules/monitor/Monitor.tsx create mode 100644 packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.module.scss create mode 100644 packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.tsx create mode 100644 packages/autonews-client/src/modules/monitor/icon_Move2.png create mode 100644 packages/autonews-client/src/react-app-env.d.ts create mode 100644 packages/autonews-client/src/reportWebVitals.ts create mode 100644 packages/autonews-client/src/setupTests.ts create mode 100644 packages/autonews-client/src/shared/components/NotFoundComponent.tsx create mode 100644 packages/autonews-client/src/shared/components/Spinner.tsx create mode 100644 packages/autonews-client/src/shared/components/description/CheckApiCall.tsx create mode 100644 packages/autonews-client/src/shared/components/description/CreateTemplate.tsx create mode 100644 packages/autonews-client/src/shared/components/description/FolderStructure.tsx create mode 100644 packages/autonews-client/src/shared/components/description/UtilityExample.tsx create mode 100644 packages/autonews-client/src/shared/constants/common.ts create mode 100644 packages/autonews-client/src/shared/constants/urls.ts create mode 100644 packages/autonews-client/src/shared/hooks/useForceUpdate.tsx create mode 100644 packages/autonews-client/src/shared/hooks/useSmoothScroll.tsx create mode 100644 packages/autonews-client/src/shared/models/apiModels.ts create mode 100644 packages/autonews-client/src/shared/models/commonModels.ts create mode 100644 packages/autonews-client/src/shared/models/routeModels.ts create mode 100644 packages/autonews-client/src/shared/services/applicationDetailService.ts create mode 100644 packages/autonews-client/src/shared/services/axiosSendRequestService.ts create mode 100644 packages/autonews-client/src/shared/services/fetchSendRequestService.ts create mode 100644 packages/autonews-client/src/store/actions/exampleAction.ts create mode 100644 packages/autonews-client/src/store/index.ts create mode 100644 packages/autonews-client/src/store/models/actionModel.ts create mode 100644 packages/autonews-client/src/store/reducer/exampleReducer.ts create mode 100644 packages/autonews-client/src/store/sagas/apiCallSaga.ts create mode 100644 packages/autonews-client/src/store/types/exampleTypes.ts create mode 100644 packages/autonews-client/src/utils/customPipeUtil.ts create mode 100644 packages/autonews-client/src/utils/dateTimeUtils.ts create mode 100644 packages/autonews-client/src/utils/utility.tsx create mode 100644 packages/autonews-client/tsconfig.json create mode 100644 packages/autonews-client/tslint.json diff --git a/packages/autonews-client/.gitignore b/packages/autonews-client/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/packages/autonews-client/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/packages/autonews-client/README.md b/packages/autonews-client/README.md new file mode 100644 index 0000000..b58e0af --- /dev/null +++ b/packages/autonews-client/README.md @@ -0,0 +1,46 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/packages/autonews-client/package.json b/packages/autonews-client/package.json new file mode 100644 index 0000000..fdc1a1c --- /dev/null +++ b/packages/autonews-client/package.json @@ -0,0 +1,56 @@ +{ + "name": "autonews-client", + "version": "0.1.0", + "private": true, + "dependencies": { + "@ant-design/icons": "^4.6.2", + "antd": "^4.15.3", + "dayjs": "^1.10.4", + "fixed-data-table-2": "^1.1.2", + "node-sass": "^5.0.0", + "react": "^17.0.1", + "react-cool-dimensions": "^2.0.3", + "react-dom": "^17.0.1", + "react-grid-layout": "^1.2.4", + "react-redux": "^7.2.2", + "react-router-dom": "^5.2.0", + "react-scripts": "4.0.3", + "redux": "^4.0.5", + "redux-saga": "^1.1.3", + "typescript": "^4.1.5", + "web-vitals": "^1.1.0" + }, + "scripts": { + "start": "set PORT=4000 && react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@testing-library/jest-dom": "^5.11.9", + "@testing-library/react": "^11.2.5", + "@testing-library/user-event": "^12.7.3", + "@types/jest": "^26.0.20", + "@types/node": "^12.20.4", + "@types/react": "^17.0.2", + "@types/react-dom": "^17.0.1", + "@types/react-grid-layout": "^1.1.1", + "@types/react-redux": "^7.1.9", + "@types/react-router-dom": "^5.1.5" + } +} diff --git a/packages/autonews-client/public/favicon.ico b/packages/autonews-client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/packages/autonews-client/public/index.html b/packages/autonews-client/public/index.html new file mode 100644 index 0000000..e49b33c --- /dev/null +++ b/packages/autonews-client/public/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + template all + + + + +
+ + + \ No newline at end of file diff --git a/packages/autonews-client/public/logo192.png b/packages/autonews-client/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/packages/autonews-client/public/manifest.json b/packages/autonews-client/public/manifest.json new file mode 100644 index 0000000..437d13e --- /dev/null +++ b/packages/autonews-client/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "template-all", + "name": "npx create-react-app project_name --template all", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/packages/autonews-client/public/robots.txt b/packages/autonews-client/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/packages/autonews-client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/packages/autonews-client/src/App.test.tsx b/packages/autonews-client/src/App.test.tsx new file mode 100644 index 0000000..2a68616 --- /dev/null +++ b/packages/autonews-client/src/App.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/packages/autonews-client/src/App.tsx b/packages/autonews-client/src/App.tsx new file mode 100644 index 0000000..02094d0 --- /dev/null +++ b/packages/autonews-client/src/App.tsx @@ -0,0 +1,5 @@ +import RouteLoader from './config/route/RouteLoader'; + +const App = () => ; + +export default App; diff --git a/packages/autonews-client/src/assets/styles/styles.css b/packages/autonews-client/src/assets/styles/styles.css new file mode 100644 index 0000000..1c97097 --- /dev/null +++ b/packages/autonews-client/src/assets/styles/styles.css @@ -0,0 +1 @@ +/* Here import css */ \ No newline at end of file diff --git a/packages/autonews-client/src/assets/styles/variables.css b/packages/autonews-client/src/assets/styles/variables.css new file mode 100644 index 0000000..1acc209 --- /dev/null +++ b/packages/autonews-client/src/assets/styles/variables.css @@ -0,0 +1,71 @@ +:root { +--logo_size: 90px; +--size_0: 0; +--size_3xs: 0.15rem; +--size_2xs: 0.3rem; +--size_xs: 0.5rem; +--size_sm: 0.875rem; +--size: 1rem; +--size_md: 1.166rem; +--size_lg: 1.3rem; +--size_xl: 1.5rem; +--size_2xl: 1.8rem; +--size_3xl: 2rem; +--size_4xl: 2.5rem; +--size_5xl: 3rem; + +/* font-size */ +--fsize_sm: 0.857rem; /* 12px h6 */ +--fsize_md: 1rem; /* 14px h4 */ +--fsize_lg: 1.096rem; /* 14px h3 */ +--fsize_xl: 1.230rem; /* 16px h2 */ +--fsize_2xl: 1.571rem; /* 22px h1 */ + +--cr_brand: #3c3ada; +--cr_brand_contrast: #fff; +--cr_sub_brand: #3c3ada; +--cr_sub_brand_contrast: #fff; +--cr_sub_sub_brand: #14171a; +--cr_sub_sub_brand_contrast: #fff; + +--chart_verified: #56559a; +--chart_incomplete: #8382ba; +--chart_pending: #e2e1ef; + +--cr_gray_lightest: #fff; +--cr_gray_lighter: #f7f9fa; +--cr_gray_light: #E9ECF0; +--cr_gray_normal: #d6d6d6; /*border-color */ +--cr_gray: #7f7f7f; /* gray text color */ +--cr_gray_dark: #3c444d; +--cr_gray_darker: #282d33; +--cr_gray_darkest: #14171a; /* base color */ + +--cr_primary: #3c3ada; +--cr_primary_text: #fff; +--cr_primary_hover: #5957df; +--cr_primary_hover_text: #fff; +--cr_primary_focus: #2c2ba3; +--cr_primary_focus-text: #fff; +--cr_primary_disabled: #9d9cec; + +--cr_success: #3bb273; +--cr_success_light: #2abf86; +--cr_warning: #e1bc29; +--cr_warning_light: #fcf8e9; +--cr_info: #3d70b2; +--cr_info_light: #3bf0f7; +--cr_error: #e15554; +--cr_error_light: #fceeed; +--cr_note: #fadc14; +--cr_note_light: #fef8d0; + +--f_light: 300; +--f_normal: 400; +--f_bold: 600; +--f_bolder: 700; + +/* calendar */ +--cal_header_color: #a4b2c0; +--cal_holiday_event: #9aedcd; +} diff --git a/packages/autonews-client/src/config/configureStore.ts b/packages/autonews-client/src/config/configureStore.ts new file mode 100644 index 0000000..4c512d7 --- /dev/null +++ b/packages/autonews-client/src/config/configureStore.ts @@ -0,0 +1,18 @@ +import { createStore, applyMiddleware, Store } from 'redux'; +import createSagaMiddleware from 'redux-saga'; +import { RootState, createRootReducer, rootSaga } from 'src/store'; + +export default function configureStore(initialState: RootState): Store { + // create the redux-saga middleware + const sagaMiddleware = createSagaMiddleware(); + + const store: Store = createStore( + createRootReducer(), + initialState, + applyMiddleware(sagaMiddleware), + ); + + // Don't forget to run the root saga, and return the store object. + sagaMiddleware.run(rootSaga); + return store; +} diff --git a/packages/autonews-client/src/config/route/PrivateRoutes.tsx b/packages/autonews-client/src/config/route/PrivateRoutes.tsx new file mode 100644 index 0000000..0c63abe --- /dev/null +++ b/packages/autonews-client/src/config/route/PrivateRoutes.tsx @@ -0,0 +1,30 @@ +import React, { ReactElement } from 'react'; +import { Route, Switch } from 'react-router-dom'; +import { RouteConfig } from 'src/shared/models/routeModels'; + +const PrivateRoutes = (): ReactElement => { + + const routesList: RouteConfig[] = []; + + return ( + + + { + routesList.map((item: RouteConfig): ReactElement => { + return ( + + ); + }, + ) + } + + + ); +}; + +export default PrivateRoutes; diff --git a/packages/autonews-client/src/config/route/PublicRoutes.tsx b/packages/autonews-client/src/config/route/PublicRoutes.tsx new file mode 100644 index 0000000..a964815 --- /dev/null +++ b/packages/autonews-client/src/config/route/PublicRoutes.tsx @@ -0,0 +1,23 @@ +import { ReactElement } from "react"; +import { Redirect, Route, Switch } from "react-router-dom"; +import { RouteConfig } from "src/shared/models/routeModels"; +import RoutesConfig from "./RoutesConfig"; + +const PublicRoutes = (): ReactElement => { + return ( + + {RoutesConfig.publicRoutes.map( + ({ path, component }: RouteConfig): ReactElement => { + return ( + + ); + } + )} + + + + + ); +}; + +export default PublicRoutes; diff --git a/packages/autonews-client/src/config/route/RouteLoader.tsx b/packages/autonews-client/src/config/route/RouteLoader.tsx new file mode 100644 index 0000000..5ecdf2e --- /dev/null +++ b/packages/autonews-client/src/config/route/RouteLoader.tsx @@ -0,0 +1,29 @@ +import React, { ReactElement, Suspense } from "react"; +import { BrowserRouter as Router } from "react-router-dom"; +import PublicRoutes from "./PublicRoutes"; +import Spinner from "src/shared/components/Spinner"; +import Layout from "src/layout/Layout"; + +const RouteLoader = (): ReactElement | null => { + return ( + + + }> + {/* {isAccessToken ? + + + + : + + } */} + + + + + + + + ); +}; + +export default RouteLoader; diff --git a/packages/autonews-client/src/config/route/RoutesConfig.tsx b/packages/autonews-client/src/config/route/RoutesConfig.tsx new file mode 100644 index 0000000..350d5a8 --- /dev/null +++ b/packages/autonews-client/src/config/route/RoutesConfig.tsx @@ -0,0 +1,58 @@ +import { lazy } from 'react'; +import { RouteType } from 'src/shared/models/routeModels'; + +const RoutesConfig: RouteType = { + publicRoutes: [ + { + path: '/', + isPublic: true, + component: lazy((): any => import('src/modules/monitor/Monitor')), + }, + { + path: '/pastInquiry', + isPublic: true, + component: lazy((): any => import('src/modules/demo/Demo')), + }, + { + path: '/filter', + isPublic: true, + component: lazy((): any => import('src/modules/demo/Demo')), + }, + { + path: '/setting', + isPublic: true, + component: lazy((): any => import('src/modules/demo/Demo')), + }, + { + path: '/about', + isPublic: true, + component: lazy((): any => import('src/modules/about/About')), + }, + { + path: '/demo', + isPublic: true, + component: lazy((): any => import('src/modules/demo/Demo')), + }, + ], + privateRoutes: [ + { + path: '/', + isPublic: false, + isExact: true, + subRoutes: [ + { + path: 'path_name_who_show_in_URL', + isPublic: false, + isExact: false, + // component: lazy((): any => import('component path')), + }, + { + path: '*', + isPublic: false, + component: lazy((): any => import('src/shared/components/NotFoundComponent')), + }, + ], + }, + ], +}; +export default RoutesConfig; diff --git a/packages/autonews-client/src/index.tsx b/packages/autonews-client/src/index.tsx new file mode 100644 index 0000000..30eeba8 --- /dev/null +++ b/packages/autonews-client/src/index.tsx @@ -0,0 +1,20 @@ +import ReactDOM from "react-dom"; +import { Provider } from "react-redux"; +import "antd/dist/antd.css"; +import App from "./App"; +import reportWebVitals from "./reportWebVitals"; +import configureStore from "./config/configureStore"; +import { RootState } from "./store"; + +const store = configureStore({} as RootState); +ReactDOM.render( + + + , + document.getElementById("root") +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/packages/autonews-client/src/layout/Layout.module.scss b/packages/autonews-client/src/layout/Layout.module.scss new file mode 100644 index 0000000..a0aabd5 --- /dev/null +++ b/packages/autonews-client/src/layout/Layout.module.scss @@ -0,0 +1,50 @@ +@charset "UTF-8"; + +.header { + z-index: 3; + position: fixed; + width: 100%; + .logo { + font-size: 18px; + float: left; + line-height: 62px; + margin-right: 10px; + .logoTitle { + color: #49a9ee; + font-size: 18px; + } + img { + margin-right: 4px; + vertical-align: middle; + } + } + .horizontalMenu { + .menu { + line-height: 64px; + font-size: 14px; + } + } + .verticalMenu { + display: none; + } +} + +.content { + z-index: 1; + margin: 64px 0 26px 0; +} + +.footer { + z-index: 2; + text-align: right; + font-size: 12px; + padding: 1px 6px; + background-color: #fff; + color: #aaa; + position: fixed; + bottom: 0; + right: 0; + .warning { + color: #e66; + } +} diff --git a/packages/autonews-client/src/layout/Layout.tsx b/packages/autonews-client/src/layout/Layout.tsx new file mode 100644 index 0000000..ad89656 --- /dev/null +++ b/packages/autonews-client/src/layout/Layout.tsx @@ -0,0 +1,75 @@ +import { RouteConfig } from "src/shared/models/routeModels"; +import { ReactElement } from "react"; +import { Layout, Menu } from "antd"; +import cls from "./Layout.module.scss"; +import { Link, useLocation } from "react-router-dom"; +import logo from "./autonews-logo.png"; + +const { Header, Content, Footer } = Layout; + +const LayoutComponent = ({ children }: RouteConfig): ReactElement => { + const {pathname} = useLocation(); + console.log("🚀 ~ file: Layout.tsx ~ line 12 ~ LayoutComponent ~ pathname", pathname) + + return ( + + + {children} +
+ + 监控服务:  + { + // this.props.global.get('socketConnectStatus') === 'disconnect' + true ? ( + 停机 + ) : ( + 运行中 + ) + } + + {/* +  | 有 {this.props.global.get('clientCount')} 位小编在线 + */} +
+ + ); +}; + +export default LayoutComponent; diff --git a/packages/autonews-client/src/layout/autonews-logo.png b/packages/autonews-client/src/layout/autonews-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6055003cd77e3723a64848bde23a314e22d050 GIT binary patch literal 1762 zcmXX`2{hZ;8jod4Nvj4^N=aKCRYl)Jt5mEJ5rQK)f$65C2~##0)d=DnVDe0Uk$u4 zVFB=U^m`csf$+OnTi_628QQ&Nl|2&PyM4~FNGGZj%w-%3Y{@K1T>gK8n&e$5_C@1A z->=XLeE}wBse?9oZ_t^)U2!i{@vXh+P7CbVAl5Co(q}H;uP{vP#g|W`vwl+|Rx04B zdNJK*>4SdFE3!_-Y60~(!dgKWO!mk%zvpLvA%k3J>eThX#<1RPX}bc?n)fcWX`RRp z&5)L>-ZekpuO!y}g-RQG(6+7{)fwEywIne~lixu#6`vXfe5sssu}$t9^#}D}zXUcX zq-*omqjvB-?EK(N{llkmNr_M?h08x_mIhj!wIh4h%o`^5fkgMJIk$=#&`8;<3Y{@* zlFYan-l`Yd?cKO&mHpbkc?Hl!BoBZH;BqH_^t2@@;Kiz{-*d3MR*4=rv`90 zPU^QU7&A*7M5GMpMt7u4*B(*Od2N*Cra750z z1e^EPI`?-VH7aB1dSC;P6!5*^R%Tbo1`e8M48!Ak;IZ8R46rqzbqxsOUI~cL;>-WU zJ!1i=z#ZVJvUfGil^WQ-;n%Y2NO|W_GT~Lf=u!PXsN(~W7w9Q%UjWPnOm!kVjUO|l zZ1Y39w|twH#V{nOMV5eZa_r!KL?7=*n;eK{cq;2_0`niBIiFrUL?eRC{CWsZSV%Ay za|g1kvdg)xvA?&w$e9|A4Yau|EiQ7f3kGj{b7g+I_eDeD)0CK~P$JIS$_#l+L+!G> zh`{mjr^Em4+2!%JHkX$<^Yb&))06K;-;TWQ>+5Q%tE!@xmr;wJ<>inv(o&PcLIVjN z_uQOpO^x913 z!g${8j(pf++NAn9Xz~LNPfYM=`uh%<(Xt@go&Xa@(Cn{e*>auEXE90Hd`1L*!f^l> z$rsOCV3;_-$m^>?k_U27)WH5%Di!X)fH>6RO3R$HH*;^LBh+PJTd$60ND7Qv{Y$K? z1hO;lC-aS9Icc+kw4D&V{udEpDWCS)N8dF#I9cR7bvjv5ZeWzT)8y1(Rm2}R%b3aF%5tIf@i;#In|EnKE93V19|Jf< zbY;*?Dz?<}%tK<4fB0sGV*RVpCiJ}}eR!J=CHo1AbuvL)Dt&lK=4HI#LU_hul-lTl z09mv0of$RO2jFG+lnpLwGN~EH_#T+HY{OpF4NhF!N=K zxDTVXh~MPpv*RHuZ5tD!ombMVE|f=NsYsH%UX<_&;X)T_-U(S`LgI9*yXI#LOt49{ z_(vhA;?QU1V5W|5lEs6cxPhFFTv>0Gi-ScNo-Oa;E(Ac#?1MiyD-|h zmP>JN7QbGq_h0;-jmLwNfo%_Uul>cQQ@&;*8@POT_!qtQ$00v3yiQ!iOp6D|+?o~0 zHBDvS+ky8{sx*Hrl~>Hmh({(ic=TF4o3t#INIZNpQTE~OH_Q!!V3M7>|FV-1Ivye# zE~6Vkwue>=K6c}}WO_Gs2qySw`E!nK*_r>i|o+r%$07Nuw zZ1`O!-7mm*R=(?#m+YgLZ9|c!^xq@8C}%{g(NAeEtuFivvde?Hu4HkA=s$ZE@iAQ^ zl8Dv)5;aY%R?Y0QUxi$!Bz&|A`8iUO)WX%EG3J%5^*l~F-JcSPolhwyMLR@bEsbI& zjxXw%Hd<;W4Z0=rC6zpu)$eibi{C*Q?Oa|$X9rtv(VY?ciV8O%W2bQKt!e{DIYrh< z-;^g~J{U!fN5Ic~Tt9W%{Cm{r9aTZrP?*+Y^l;j2EAt~^MJq|{h!)G5csL8S5Macx zcV8u@KxH_UXeH { + return ( +
+
+
+ 新闻源监控系统 Auto News System +
+
+

欢迎使用【新闻源监控系统】

+

+ 新闻源监控系统(Auto News + System),是一个实时监控、收录新闻更新的工具,主要功能如下: +

+
    +
  • + 准实时监控新闻更新并汇总反应到界面,免除人工值守,反复刷新监控 +
  • +
  • + 汇总分散的新闻,提供一处界面总览当日新闻全局,供网络新闻编辑和新闻关注者查阅、筛选、处理 +
  • +
  • 查询往期内容,为新闻专题、汇总专题、旧闻查阅提供数据参考
  • +
  • (开发中的功能……)
  • +
+
+
+ +
+

数据来源如下:

+
+ +
+ +
+

Future

+
+
    +
  • 筛选
  • +
  • 编辑
  • +
  • 转载
  • +
  • 统计
  • +
  • 交流
  • +
  • 设置
  • +
  • 反馈
  • +
+
+ +
+

Why

+
+

+ 加过一个群,名叫"苦逼的网编停不下来"的群,是6年前我在一房产网站做编辑的时候,群里都是全国各地站点的编辑们。大家在群里讨论工作、发闹骚,最热闹时每天群里会有上千条消息。 +

+

+ 断断续续做记者、编辑约6年时间,觉得网络编辑还算件有乐趣的工作。每天早上打开电脑,从各处搜集信息,然后筛选、编辑、归类、比较、分析、排序、制作封面配图、发布,最后得到有序的新闻条目、房产行业信息和漂亮的页面,心里有大大的满足感。 +

+

+ 但编辑中有大量枯燥重复的工作,汇总零散信息、人工值守新闻更新、复制粘贴。3年前有过用自动采集方案来代替的想法,简单弄过一段时间"按键精灵""火车头采集",但技术实力不过关,实际工作中并没起到什么作用。 +

+

+ 现在虽然不做编辑工作,但作为一个 Code for a Better World 的 Web + Developer,我觉得这会是一项有意义、有挑战的工作。 +

+

+ 计算机简直是做这些辛苦工作的最佳"人选",所以可爱的小编们就能解放生产力,将更多精力投入到思考、学习、设计、撰写等方面,将编辑工作更提高一个层次。 +

+

+ "苦逼的小编"也可以停下来,有更多时间优雅的喝咖啡。感觉生活都变更美好了呢:) +

+

+ Code with by  + + 摄影师陈柏林 + +

+
+ +
+

Release Note

+
+
    +
  • +
    Version: 0.3.1
    +

    Date: 2017-05-12

    +
      +
    • 爬虫部署到 docker 中
    • +
    • + 系统具有了人工智能 NLP + 特性,包括关键字提取、新闻分类、情感评价。模型都采用 NLP + 工具现成的,在情感评价和新闻分类上的准确率还有待提高。 +
    • +
    • + 关键字提取使用{" "} + HanLP +
    • +
    • + 新闻分类使用 THUCTC +
    • +
    • + 情感评价使用{" "} + SnowNLP +
    • +
    +
  • +
  • +
    Version: 0.3.0
    +

    Date: 2017-05-06

    +
      +
    • API 可部署到 docker 中
    • +
    • + 移植爬虫到 scrapy 框架下,移除node + crawler框架的爬虫,简化目录结构及依赖 +
    • +
    • 添加监控项目: 人民网-湖北频道
    • +
    • 数据统一从 detail 表取,list 表已移除
    • +
    • 添加 Filter 路由,功能待开发
    • +
    • + 尝试 NLP 开发:关键字提取、文章分类、情感评价,暂未部署上线 +
    • +
    +
  • +
  • +
    Version: 0.2.1
    +

    Date: 2017-04-11

    +
      +
    • 添加设置模块,保存设置监控对象及监控layouts到本地存储
    • +
    • 往期查询模块添加预览正文
    • +
    • 修正查询日期时区问题
    • +
    • API添加 ETags 与 Expires,缓存提高效率
    • +
    +
  • +
  • +
    Version: 0.2.0
    +

    Date: 2017-03-30

    +
      +
    • 往期查询模块开发
    • +
    • 添加Logo
    • +
    +
  • +
  • +
    Version: 0.1.2
    +

    Date: 2017-03-25

    +
      +
    • 抓取排重,配置结构调整
    • +
    • 添加长报系爬虫配置
    • +
    • 客户端监控页替换 table 组件,提高大数据量显示性能
    • +
    • 客户端优化请求方式,界面细节调整
    • +
    • 监控服务器 API 配置 gzip
    • +
    +
  • +
  • +
    Version: 0.1.0
    +

    Date: 2017-03-20

    +
      +
    • + 放弃进一步使用 Firebase 框架(数据库不支持多条件查询),自建 + mongoDb 数据库用作存储 +
    • +
    • + 完善客户端监控界面,初始化时加载当日历史数据(数据未分页,量多时偶尔卡死) +
    • +
    • 修改爬虫配置,统一 news list, news detail 数据结构
    • +
    • 存储爬取数据到 mongoDb
    • +
    • 爬取时的排重(仍有缺陷)
    • +
    • 开发获取当日爬取数据API
    • +
    +
  • +
  • +
    Version: 0.0.3
    +

    Date: 2017-03-13

    +
      +
    • 使用React开发客户端界面
    • +
    • + 探索使用 Firebase database 存储数据,集成实时数据库到 Redux +
    • +
    +
  • +
  • +
    Version: 0.0.2
    +

    Date: 2017-03-11

    +
      +
    • 开发爬虫,使用websockt协议实时推送news detail
    • +
    +
  • +
+
+
+ ); +}; + +export default About; diff --git a/packages/autonews-client/src/modules/about/logo-autonews.png b/packages/autonews-client/src/modules/about/logo-autonews.png new file mode 100644 index 0000000000000000000000000000000000000000..c459181b4c6b96f0986d4cca13a14b40c5a15876 GIT binary patch literal 4759 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 { + return ( + <> + + + + + + ); +}; + +export default DemoComponent; diff --git a/packages/autonews-client/src/modules/monitor/Monitor.module.scss b/packages/autonews-client/src/modules/monitor/Monitor.module.scss new file mode 100644 index 0000000..f859eeb --- /dev/null +++ b/packages/autonews-client/src/modules/monitor/Monitor.module.scss @@ -0,0 +1,12 @@ +@charset "UTF-8"; + +.monitor { + .layoutContent { + > div { + z-index: 1; + } + > span { + z-index: 2; + } + } +} diff --git a/packages/autonews-client/src/modules/monitor/Monitor.tsx b/packages/autonews-client/src/modules/monitor/Monitor.tsx new file mode 100644 index 0000000..2d178cc --- /dev/null +++ b/packages/autonews-client/src/modules/monitor/Monitor.tsx @@ -0,0 +1,55 @@ +import cls from "./Monitor.module.scss"; +import "react-resizable/css/styles.css"; +import { Responsive, WidthProvider } from "react-grid-layout"; + +const ResponsiveReactGridLayout = WidthProvider(Responsive); + +type Props = { + monitor: any; + global: any; + setLayouts: any; + setFilteredList: any; + newsList: object; +}; + +const MonitorComponent = ({ + monitor, + global, + setLayouts, + setFilteredList, + newsList, +}: Props) => { + // const gridLayoutConfig = global.gridLayoutConfig; + + return ( +
+ {/*monitor dashboard*/} + setLayouts(layouts)} + > + {/* {global.userSetting.originKeys.map((item, index) => { + return ( +
+ +
+ ); + })} */} +
+
+ ); +}; + +export default MonitorComponent; diff --git a/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.module.scss b/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.module.scss new file mode 100644 index 0000000..112d6c7 --- /dev/null +++ b/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.module.scss @@ -0,0 +1,84 @@ +@charset "UTF-8"; + +.monitorCard { + height: 100%; + position: relative; + padding-top: 48px; + span.power { + vertical-align: middle; + display: inline-block; + width: 20px; + height: 4px; + margin-left: 4px; + border-radius: 4px; + } + i.iconMove { + margin-left: 8px; + display: inline-block; + vertical-align: middle; + width: 10px; + height: 18px; + background-image: url(../../assets/icon_Move2.png); + cursor: move; + } + .empty { + margin-top: 15%; + text-align: center; + } + .inspector { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + .positive { + position: absolute; + top: 0; + left: 50%; + height: 100%; + background-color: #3e3; + } + .negative { + position: absolute; + top: 0; + right: 50%; + height: 100%; + background-color: #e33; + } + } + .tableHeader { + :global { + .public_fixedDataTableCell_cellContent { + padding: 2px 4px; + } + } + } + + :global { + .ant-card-head { + position: absolute; + top: 0; + left: 0; + width: 100%; + } + .ant-card-extra { + right: 10px; + } + .ant-card-body { + padding: 0; + height: 100%; + .fixedDataTableLayout_main { + border: 0 none; + .fixedDataTableCellLayout_main { + > div { + display: block; + overflow: hidden; + width: 100%; + white-space: nowrap; + text-overflow: ellipsis; + } + } + } + } + } +} diff --git a/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.tsx b/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.tsx new file mode 100644 index 0000000..1cabfb1 --- /dev/null +++ b/packages/autonews-client/src/modules/monitor/MonitorCard/MonitorCard.tsx @@ -0,0 +1,63 @@ +import { useState } from "react"; +import { Card, Badge, Spin } from "antd"; +import cls from "./MonitorCard.module.scss"; +import "fixed-data-table-2/dist/fixed-data-table.min.css"; + +type Props = { + origin_key: string; + origin_name: string; + list: Array<{ + title: string; + url: string; + origin_key: string; //来源 + date: Date; + }>; + isFetched: boolean; +}; + +const MonitorCard = (props: Props) => { + const [state, setState] = useState<{ + mouseEnter: boolean; + list: Props["list"]; + }>({ + mouseEnter: false, + list: [], + }); + + return ( + + {props.origin_name} + +
+ + +
+ { + + + 当日监控 + + + 往期查询 + + + 筛选 + + + 设置 + + + 关于 + + + demo + + + } +
+
+ } + extra={ +
+ + +
+ } + > + +
setState({ mouseEnter: true, list: props.list })} + onMouseLeave={() => setState({ mouseEnter: false, list: [] })} + > + {props.list.length ? null :
暂无数据
} +
+
+ + ); +}; + +export default MonitorCard; diff --git a/packages/autonews-client/src/modules/monitor/icon_Move2.png b/packages/autonews-client/src/modules/monitor/icon_Move2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e53cad637e6986073e0dc110a1820d48d7da885 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^Ahr+(Gms3;++WGS!04SB5>XQ2>tmIipR1RclAn~S zSCLx)lxJYDv9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3 za#eP+Wr~u$9hXgo70`g()RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`$q{6sLWFOC zf^&XRs)DJWnQpS7v4w)UrJkXwrG=4+j)IYap_#scrM{twu7RPIfu)s!p#l^r*>Ne@ z6s4qD1-ZCEEd%mwl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{ z^NN*0MnKGPNi9w;$}A|!%+FH*nVFcBUs__Tq@)kBL?3Dk(0lrD{{cDh5K7Gh21^mp z{|cV#tbk$1lJ4m1$iT3%pZiZDE0E7v9OUlAui7mk2Kh`pvB*$S;^d$!PhWyAoH_q|d%yw12zP zegnP@%YMGuvT`QpyndktyS7c2DE)U-Q9b_2%@*(ehnLxoE!VH%z3ppvZ|PErIUx#at_wAue*85#u_I;e zlbqcuO+Ee;9 + +// declare module 'js-util-methods'; diff --git a/packages/autonews-client/src/reportWebVitals.ts b/packages/autonews-client/src/reportWebVitals.ts new file mode 100644 index 0000000..49a2a16 --- /dev/null +++ b/packages/autonews-client/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/packages/autonews-client/src/setupTests.ts b/packages/autonews-client/src/setupTests.ts new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/packages/autonews-client/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/packages/autonews-client/src/shared/components/NotFoundComponent.tsx b/packages/autonews-client/src/shared/components/NotFoundComponent.tsx new file mode 100644 index 0000000..f0a3d44 --- /dev/null +++ b/packages/autonews-client/src/shared/components/NotFoundComponent.tsx @@ -0,0 +1,13 @@ +import { ReactElement } from 'react'; +import { checkIsSSo } from 'src/utils/utility'; +import Spinner from './Spinner'; + +const NotFoundComponent = (): ReactElement => { + return ( +
+ {checkIsSSo() ? : Ooops..! Route doesn't match any component. We are on it, stay safe.!!} +
+ ); +}; + +export default NotFoundComponent; diff --git a/packages/autonews-client/src/shared/components/Spinner.tsx b/packages/autonews-client/src/shared/components/Spinner.tsx new file mode 100644 index 0000000..6a412cf --- /dev/null +++ b/packages/autonews-client/src/shared/components/Spinner.tsx @@ -0,0 +1,12 @@ +import { ReactElement } from 'react'; +import { SpinnerModels } from '../models/commonModels'; + +const Spinner = ({ height }: SpinnerModels): ReactElement => { + return ( +
+

Here, set loader icon...

+
+ ); +}; + +export default Spinner; diff --git a/packages/autonews-client/src/shared/components/description/CheckApiCall.tsx b/packages/autonews-client/src/shared/components/description/CheckApiCall.tsx new file mode 100644 index 0000000..51a7a70 --- /dev/null +++ b/packages/autonews-client/src/shared/components/description/CheckApiCall.tsx @@ -0,0 +1,102 @@ +import { useState } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import { + fetchGetApiCallExample, + fetchPostApiCallExample, +} from "src/store/actions/exampleAction"; +import { GET_JSON_PLACEHOLDER_URL } from "src/shared/constants/urls"; +import FetchSendRequest from "src/shared/services/fetchSendRequestService"; + +const requestJSON = { + title: "foo", + body: "bar", + userId: 1, +}; + +const CheckApiCall = () => { + const dispatch = useDispatch(); + const store = useSelector((state) => state); + console.log("store", store); + + const [isSuccess, setIsSuccess] = useState(false); + + const getSagaAPICall = () => { + setIsSuccess(false); + dispatch(fetchGetApiCallExample()); + }; + + const postSagaAPICall = () => { + setIsSuccess(false); + dispatch(fetchPostApiCallExample(requestJSON)); + }; + + const getNormalAPICall = async () => { + setIsSuccess(false); + const data = await FetchSendRequest.instance.MakeAPICall({ + url: GET_JSON_PLACEHOLDER_URL, + }); + console.log("getNormalAPICall", data); + if (data) { + setIsSuccess(true); + } + }; + + const postNormalAPICall = async () => { + setIsSuccess(false); + const data = await FetchSendRequest.instance.MakeAPICall({ + url: GET_JSON_PLACEHOLDER_URL, + body: requestJSON, + }); + console.log("postNormalAPICall", data); + if (data) { + setIsSuccess(true); + } + }; + return ( +
+

Normal API call

+ {isSuccess &&

Normal API call success. go to Network

} +
+ +
+          
+            {`  const data = await FetchSendRequest.instance.MakeAPICall({
+      url: GET_JSON_PLACEHOLDER_URL,
+    });`}
+          
+        
+
+

+
+ +
+          
+            {`  const data = await FetchSendRequest.instance.MakeAPICall({
+      url: GET_JSON_PLACEHOLDER_URL,
+      body: requestJSON,
+    });`}
+          
+        
+
+

+

Saga API call

+
+ +
+          {` dispatch(fetchGetApiCallExample()); `}
+        
+
+

+
+ +
+          {` dispatch(fetchPostApiCallExample(requestJSON)); `}
+        
+
+
+ ); +}; + +export default CheckApiCall; diff --git a/packages/autonews-client/src/shared/components/description/CreateTemplate.tsx b/packages/autonews-client/src/shared/components/description/CreateTemplate.tsx new file mode 100644 index 0000000..0e4c5bf --- /dev/null +++ b/packages/autonews-client/src/shared/components/description/CreateTemplate.tsx @@ -0,0 +1,14 @@ + +const CreateTemplate = () => { + return ( +
+

Getting started with Create React App Template

+

Installation

+ npx create-react-app project_name --template all + + Github +
+ ); +}; + +export default CreateTemplate; diff --git a/packages/autonews-client/src/shared/components/description/FolderStructure.tsx b/packages/autonews-client/src/shared/components/description/FolderStructure.tsx new file mode 100644 index 0000000..a3c4d18 --- /dev/null +++ b/packages/autonews-client/src/shared/components/description/FolderStructure.tsx @@ -0,0 +1,82 @@ +const FolderStructure = () => { + return ( +
+

Folder & File Structure

+ +
+

+ Folder name: start with small letter. +

+

+ File name(ts file): start with small letter. +

+

+ Component name(tsx file): start with capital letter. +

+
+ +
+        
+          {`     Project Name
+            └── src
+                └── assets 
+                └── config
+                └── layout
+                └── modules
+                └── shared
+                └── store
+                └── utils
+                
+                assets 
+                    └── jpeg
+                    └── pdf
+                    └── png
+                    └── styles
+
+                config
+                    └── route
+                        ├── PrivateRoutes.tsx
+                        ├── PublicRoutes.tsx
+                        ├── RouteLoader.tsx
+                        ├── RoutesConfig.tsx
+                    └── configureStore.ts
+
+                layout
+                    └── header
+                        ├── header.tsx
+                    └── footer
+                        ├── footer.tsx
+
+                modules
+                    └── home
+                        ├── Home.tsx
+                    └── profile
+                        ├── profile.tsx
+
+                shared
+                    └── components
+                    └── constants
+                        ├── common.ts
+                        ├── urls.ts
+                    └── hooks
+                    └── models
+                    └── services
+                        ├── applicationDetailService.ts
+                        ├── axiosSendRequestService.ts
+                        ├── fetchSendRequestService.ts
+
+                store
+                    └── actions
+                    └── models
+                    └── reducers
+                    └── sagas
+                    └── types
+                    └── index.ts
+                        `}
+        
+      
+
+ ); +}; + +export default FolderStructure; diff --git a/packages/autonews-client/src/shared/components/description/UtilityExample.tsx b/packages/autonews-client/src/shared/components/description/UtilityExample.tsx new file mode 100644 index 0000000..9caf394 --- /dev/null +++ b/packages/autonews-client/src/shared/components/description/UtilityExample.tsx @@ -0,0 +1,56 @@ +import { setFormatDateOrTime } from "src/utils/dateTimeUtils"; +import { COMMON_UTILS_LIST, DATE_FORMAT_LIST } from "src/shared/constants/common"; + +const currentDate: Date = new Date(); +const UtilityExample = () => { + return ( +
+

Common Utilities

+ +

+ + + + + + + + + {COMMON_UTILS_LIST.map((item, index) => ( + + + + + + ))} + +
FunctionReturnDescription
{item.name}{item.output}{item.desc}
+ +

Date Utilities

+

Date: {setFormatDateOrTime(currentDate.toDateString())}

+ +
List of all available formats
+ + + + + + + + + + + {DATE_FORMAT_LIST.map((item, index) => ( + + + + + + ))} + +
FormatOutputDescription
{item.format}{item.output}{item.des}
+
+ ); +}; +export default UtilityExample; + diff --git a/packages/autonews-client/src/shared/constants/common.ts b/packages/autonews-client/src/shared/constants/common.ts new file mode 100644 index 0000000..7429fbc --- /dev/null +++ b/packages/autonews-client/src/shared/constants/common.ts @@ -0,0 +1,109 @@ +export const COMMON_DATE_FORMAT = "D MMM yyyy"; +export const COMMON_TIME_FORMAT = "hh:mm A"; +export const MONTH_YEAR_DATE_FORMAT = "MMM yyyy"; + +export const COMMON_UTILS_LIST = [ + { + name: "checkValidity(value: string, rules: any)", + output: "boolean", + desc: "Valid Email, Check MinLength, check MaxLength", + }, + { + name: " capitalizeFirstLetter(str: string)", + output: "string", + desc: "First letter capital in word or sentence", + }, + { + name: "base64Encode(unencoded: string)", + output: "string", + desc: "convert in encode", + }, + { + name: "base64Decode(encoded: string)", + output: "string", + desc: "convert in decode", + }, + { + name: "getDobFromAge(age: number)", + output: "date", + desc: "get current age", + }, + { + name: "calculateFinalPrice(price: number, discountPercent: number)", + output: "number", + desc: "calculate Final Price", + }, + { + name: "getMobileFormat(mobile: string)", + output: "string", + desc: "check valid mobile number", + }, + { + name: + "formatPrice(price: number, isDecimalRequired: boolean, isRSRequried: boolean)", + output: "string", + desc: "567390 ===> Rs. 5,67,390", + }, + { + name: "getPercentage(total: number, value: number)", + output: "number", + desc: "calculate percentage", + }, + { + name: "mobileFormat(mobileNumber: string)", + output: "string", + desc: "9936123456 ==> +91-99361 23456", + }, + { + name: "toCamelCase(string: string)", + output: "string", + desc: "capital letter", + }, + { + name: "average(arr: number[])", + output: "number", + desc: "[1,2,3,4,5] ==> arr.reduce/arr.length ===> 3", + }, + { + name: "getBulletPoints(values: string[])", + output: "string", + desc: + "
", + }, +]; + +export const DATE_FORMAT_LIST = [ + { format: "YY", output: "18", des: "Two-digit year" }, + { format: "YYYY", output: "2018", des: "Four-digit year" }, + { format: "M", output: "1-12", des: "The month, beginning at 1" }, + { format: "MM", output: "01-12", des: "The month, 2-digits" }, + { format: "MMM", output: "Jan-Dec", des: "The abbreviated month name" }, + { format: "MMMM", output: "January-December", des: " The full month name" }, + { format: "D", output: "1-31", des: "The day of the month" }, + { format: "DD", output: "01-31", des: " The day of the month, 2-digits" }, + { format: "d", output: "0-6", des: "The day of the week, with Sunday as 0" }, + { format: "dd", output: "Su-Sa", des: "The min name of the day of the week" }, + { + format: "ddd", + output: "Sun-Sat", + des: " The short name of the day of the week", + }, + { + format: "dddd", + output: "Sunday-Saturday", + des: " The name of the day of the week", + }, + { format: "H", output: "0-23", des: "The hour" }, + { format: "HH", output: "00-23", des: "The hour, 2-digits" }, + { format: "h", output: "1-12", des: "The hour, 12-hour clock" }, + { format: "hh", output: "01-12", des: "The hour, 12-hour clock, 2-digits" }, + { format: "m", output: "0-59", des: "The minute" }, + { format: "mm", output: "00-59", des: "The minute, 2-digits" }, + { format: "s", output: "0-59", des: "The second" }, + { format: "ss", output: "00-59", des: "The second, 2-digits" }, + { format: "SSS", output: "000-999", des: " The millisecond, 3-digits" }, + { format: "Z", output: "05:00", des: " The offset from UTC, ±HH:mm" }, + { format: "ZZ", output: "0500", des: " The offset from UTC, ±HHmm" }, + { format: "A", output: "AM PM", des: "" }, + { format: "a", output: "am pm", des: "" }, +]; diff --git a/packages/autonews-client/src/shared/constants/urls.ts b/packages/autonews-client/src/shared/constants/urls.ts new file mode 100644 index 0000000..6a6306d --- /dev/null +++ b/packages/autonews-client/src/shared/constants/urls.ts @@ -0,0 +1,2 @@ +export const GET_JSON_PLACEHOLDER_URL = 'https://jsonplaceholder.typicode.com/todos'; +export const POST_JSON_PLACEHOLDER_URL = 'https://jsonplaceholder.typicode.com/posts'; \ No newline at end of file diff --git a/packages/autonews-client/src/shared/hooks/useForceUpdate.tsx b/packages/autonews-client/src/shared/hooks/useForceUpdate.tsx new file mode 100644 index 0000000..7ffc424 --- /dev/null +++ b/packages/autonews-client/src/shared/hooks/useForceUpdate.tsx @@ -0,0 +1,6 @@ +import { useState } from 'react'; + +export const useForceUpdate = (): Function => { + const [, setValue] = useState(0); + return (): void => setValue((value: number): number => value + 1); +}; diff --git a/packages/autonews-client/src/shared/hooks/useSmoothScroll.tsx b/packages/autonews-client/src/shared/hooks/useSmoothScroll.tsx new file mode 100644 index 0000000..077283e --- /dev/null +++ b/packages/autonews-client/src/shared/hooks/useSmoothScroll.tsx @@ -0,0 +1,8 @@ +import { useEffect } from 'react'; + +export const useSmoothScroll = (idName: string): void => { + useEffect((): void => { + const ele = document.querySelector(`.${idName}`); + ele?.scrollIntoView({ behavior: 'smooth' }); + }, []); +}; diff --git a/packages/autonews-client/src/shared/models/apiModels.ts b/packages/autonews-client/src/shared/models/apiModels.ts new file mode 100644 index 0000000..f7c0d63 --- /dev/null +++ b/packages/autonews-client/src/shared/models/apiModels.ts @@ -0,0 +1,6 @@ +export interface RequestApi { + url: string; + method?: string; + isLoader?: boolean; + body?: any; +} \ No newline at end of file diff --git a/packages/autonews-client/src/shared/models/commonModels.ts b/packages/autonews-client/src/shared/models/commonModels.ts new file mode 100644 index 0000000..3d2bd3b --- /dev/null +++ b/packages/autonews-client/src/shared/models/commonModels.ts @@ -0,0 +1,3 @@ +export interface SpinnerModels { + height?: string | number; +} \ No newline at end of file diff --git a/packages/autonews-client/src/shared/models/routeModels.ts b/packages/autonews-client/src/shared/models/routeModels.ts new file mode 100644 index 0000000..ce521bb --- /dev/null +++ b/packages/autonews-client/src/shared/models/routeModels.ts @@ -0,0 +1,19 @@ +import { LazyExoticComponent, ComponentType } from "react"; + +export interface RouteConfig { + path?: string; + component?: LazyExoticComponent> | ComponentType; + isExact?: boolean | undefined; + children?: any; + isPublic?: boolean; + subRoutes?: RouteConfig[]; +} + +export interface RouteType { + publicRoutes: RouteConfig[]; + privateRoutes: RouteConfig[]; +} + +export interface RouteParams { + id?: string; +} diff --git a/packages/autonews-client/src/shared/services/applicationDetailService.ts b/packages/autonews-client/src/shared/services/applicationDetailService.ts new file mode 100644 index 0000000..b42fa4a --- /dev/null +++ b/packages/autonews-client/src/shared/services/applicationDetailService.ts @@ -0,0 +1,28 @@ + +class ApplicationDetail { + + private static _instance: ApplicationDetail = new ApplicationDetail(); + private static userDetail: any; + + constructor() { + if (ApplicationDetail._instance) { + throw new Error('Use ApplicationDetail.instance'); + } + ApplicationDetail._instance = this; + } + + static get instance(): ApplicationDetail { + return ApplicationDetail._instance; + } + + getUserDetail(): any { + return ApplicationDetail.userDetail; + } + + getAccessToken(): string { + // return Cookies.get('token') || ''; + return 'xxxxxxxxxxxxxxxxxx'; + } +} + +export default ApplicationDetail; diff --git a/packages/autonews-client/src/shared/services/axiosSendRequestService.ts b/packages/autonews-client/src/shared/services/axiosSendRequestService.ts new file mode 100644 index 0000000..6f80286 --- /dev/null +++ b/packages/autonews-client/src/shared/services/axiosSendRequestService.ts @@ -0,0 +1 @@ +export const axiosAPICall = {} \ No newline at end of file diff --git a/packages/autonews-client/src/shared/services/fetchSendRequestService.ts b/packages/autonews-client/src/shared/services/fetchSendRequestService.ts new file mode 100644 index 0000000..a9c02c1 --- /dev/null +++ b/packages/autonews-client/src/shared/services/fetchSendRequestService.ts @@ -0,0 +1,56 @@ +import { RequestApi } from "../models/apiModels"; + +class FetchSendRequest { + private static _instance: FetchSendRequest = new FetchSendRequest(); + // private appDetail: ApplicationDetail = ApplicationDetail.instance; + countStartApi = 0; + countEndApi = 0; + + constructor() { + if (FetchSendRequest._instance) { + throw new Error("Use DataService.instance"); + } + FetchSendRequest._instance = this; + } + + static get instance(): FetchSendRequest { + return FetchSendRequest._instance; + } + + async MakeAPICall(requestJSON: RequestApi) { + let requestBody = {}; + + if (requestJSON && requestJSON.isLoader !== false) { + this.countStartApi += 1; + // store.dispatch({ type: 'REQUEST', status: 'REQUESTED' }); + } + + if (requestJSON && requestJSON.body) { + requestBody = requestJSON.body; + } + + const promise = await fetch(requestJSON.url, { + method: requestJSON.method + ? requestJSON.method + : requestJSON.body + ? "POST" + : "GET", + headers: new Headers({ + AccessToken: "", //cookies.get('access_token'), + Accept: "application/json", + "Content-Type": "application/json", + }), + body: requestJSON.body ? JSON.stringify(requestBody) : null, + }).then((response) => response.json()); + if (promise) { + if (requestJSON && requestJSON.isLoader !== false) { + this.countEndApi += 1; + if (this.countStartApi === this.countEndApi) { + // store.dispatch({ type: 'REQUEST', status: 'REQUEST_FULFILLED' }); + } + } + } + return promise; + } +} +export default FetchSendRequest; diff --git a/packages/autonews-client/src/store/actions/exampleAction.ts b/packages/autonews-client/src/store/actions/exampleAction.ts new file mode 100644 index 0000000..385203f --- /dev/null +++ b/packages/autonews-client/src/store/actions/exampleAction.ts @@ -0,0 +1,29 @@ +import { + Action, + GetFakeDataList, + PostFakeDataObject, +} from "src/store/models/actionModel"; +import { updateAction } from "src/utils/utility"; +import actionTypes from "src/store/types/exampleTypes"; + +export const fetchGetApiCallExample = (): Action => { + return updateAction(actionTypes.GET_API_CALL); +}; + +export const fetchGetApiDataExample = ( + payload: GetFakeDataList +): Action => { + return updateAction(actionTypes.GET_API_DATA, payload); +}; + +export const fetchPostApiCallExample = ( + requestJSON: PostFakeDataObject +): Action => { + return updateAction(actionTypes.POST_API_CALL, requestJSON); +}; + +export const fetchPostApiDataExample = ( + postResponseData: PostFakeDataObject +): Action => { + return updateAction(actionTypes.POST_API_DATA, postResponseData); +}; diff --git a/packages/autonews-client/src/store/index.ts b/packages/autonews-client/src/store/index.ts new file mode 100644 index 0000000..72701df --- /dev/null +++ b/packages/autonews-client/src/store/index.ts @@ -0,0 +1,20 @@ +import { combineReducers, Reducer } from "redux"; +import apiCallSaga from "./sagas/apiCallSaga"; +import { fork, all } from "redux-saga/effects"; +import exampleReducer from "./reducer/exampleReducer"; +import { FakeDataModal } from "./models/actionModel"; + +export interface RootState { + // add models + homeData: FakeDataModal; +} + +export const createRootReducer = (): Reducer => + combineReducers({ + // userDetails: userDetailsReducerFileImport + homeData: exampleReducer, + }); + +export function* rootSaga(): Generator { + yield all([fork(apiCallSaga)]); +} diff --git a/packages/autonews-client/src/store/models/actionModel.ts b/packages/autonews-client/src/store/models/actionModel.ts new file mode 100644 index 0000000..286a3f7 --- /dev/null +++ b/packages/autonews-client/src/store/models/actionModel.ts @@ -0,0 +1,23 @@ +export interface Action { + type: string; + payload?: T; +} + +export interface GetFakeDataList { + completed: boolean; + id: number; + title: string; + userId: number; +} + +export interface PostFakeDataObject { + body: string; + id?: number; + title: string; + userId: number; +} + +export interface FakeDataModal { + fakeDataList: GetFakeDataList[]; + postResponseData: PostFakeDataObject; +} diff --git a/packages/autonews-client/src/store/reducer/exampleReducer.ts b/packages/autonews-client/src/store/reducer/exampleReducer.ts new file mode 100644 index 0000000..2fd74d4 --- /dev/null +++ b/packages/autonews-client/src/store/reducer/exampleReducer.ts @@ -0,0 +1,26 @@ +import { AnyAction, Reducer } from 'redux'; +import actionTypes from '../types/exampleTypes'; +// import { updateObject } from '../../utils/utility'; + +const initialState = { + fakeDataList: [], + postResponseData: {} +}; + +const exampleReducer: Reducer = (state: any = initialState, action: AnyAction): any | any => { + + switch (action.type) { + case actionTypes.GET_API_DATA: return { + ...state, + fakeDataList: action.payload, + }; + // case actionTypes.POST_API_DATA: return updateObject(state, action); + case actionTypes.POST_API_DATA: return { + ...state, + postResponseData: action.payload, + }; + default: return state; + } +}; + +export default exampleReducer; diff --git a/packages/autonews-client/src/store/sagas/apiCallSaga.ts b/packages/autonews-client/src/store/sagas/apiCallSaga.ts new file mode 100644 index 0000000..1edb7ef --- /dev/null +++ b/packages/autonews-client/src/store/sagas/apiCallSaga.ts @@ -0,0 +1,43 @@ +import { takeLatest, put } from "redux-saga/effects"; +import { + GET_JSON_PLACEHOLDER_URL, + POST_JSON_PLACEHOLDER_URL, +} from "src/shared/constants/urls"; +import { + fetchGetApiDataExample, + fetchPostApiDataExample, +} from "../actions/exampleAction"; +import FetchSendRequest from "src/shared/services/fetchSendRequestService"; +import actionTypes from "../types/exampleTypes"; + +const sendRequest = FetchSendRequest.instance; + +function* getAPICallSagaExample(): any { + const response: any = yield sendRequest.MakeAPICall({ + url: GET_JSON_PLACEHOLDER_URL, + }); + if (response) { + yield put(fetchGetApiDataExample(response)); + } +} + +function* postAPICallSagaExample({ payload }: any): Generator { + try { + const response: any = yield sendRequest.MakeAPICall({ + url: POST_JSON_PLACEHOLDER_URL, + body: payload, + }); + if (response) { + yield put(fetchPostApiDataExample(response)); + } + } catch (e) { + console.error(e); + } +} + +export function* watchApiCallSagaExample(): any { + yield takeLatest(actionTypes.GET_API_CALL, getAPICallSagaExample); + yield takeLatest(actionTypes.POST_API_CALL, postAPICallSagaExample); +} + +export default watchApiCallSagaExample; diff --git a/packages/autonews-client/src/store/types/exampleTypes.ts b/packages/autonews-client/src/store/types/exampleTypes.ts new file mode 100644 index 0000000..7164c8a --- /dev/null +++ b/packages/autonews-client/src/store/types/exampleTypes.ts @@ -0,0 +1,8 @@ +const EXAMPLE_ACTION_TYPES = { + GET_API_CALL: 'GET_API_CALL', + GET_API_DATA: 'GET_API_DATA', + POST_API_CALL: 'POST_API_CALL', + POST_API_DATA: 'POST_API_DATA' +}; + +export default EXAMPLE_ACTION_TYPES; diff --git a/packages/autonews-client/src/utils/customPipeUtil.ts b/packages/autonews-client/src/utils/customPipeUtil.ts new file mode 100644 index 0000000..1f39d28 --- /dev/null +++ b/packages/autonews-client/src/utils/customPipeUtil.ts @@ -0,0 +1,9 @@ +// Will return string with 1st letter in caps +export const toTitleCase = (str: string): string => { + return str.charAt(0).toUpperCase() + str.substring(1, str.length).toLowerCase(); +}; + +// Will return a sentence with making 1st letter of each word in Caps +export const toSentenceCase = (str: string): string => { + return str.toLowerCase().replace(/(^\w{1})|(\s{1}\w{1})/g, (match: any): any => match.toUpperCase()); +}; diff --git a/packages/autonews-client/src/utils/dateTimeUtils.ts b/packages/autonews-client/src/utils/dateTimeUtils.ts new file mode 100644 index 0000000..dbee5a8 --- /dev/null +++ b/packages/autonews-client/src/utils/dateTimeUtils.ts @@ -0,0 +1,60 @@ +import dayjs from 'dayjs'; +const CurrentDateAndTime = new Date(); + +// Thu Mar 11 2021 12:10:01 GMT+0530 (India Standard Time) +export const getFullCurrentDate = () => { + return CurrentDateAndTime; +} + +// Current Date 11/03/2021 +export const getCurrentDateFormat = () => { + return dayjs().format('DD/MM/YYYY'); +} + +// List of all available formats +// Format Output Description +// YY 18 Two-digit year +// YYYY 2018 Four-digit year +// M 1-12 The month, beginning at 1 +// MM 01-12 The month, 2-digits +// MMM Jan-Dec The abbreviated month name +// MMMM January-December The full month name +// D 1-31 The day of the month +// DD 01-31 The day of the month, 2-digits +// d 0-6 The day of the week, with Sunday as 0 +// dd Su-Sa The min name of the day of the week +// ddd Sun-Sat The short name of the day of the week +// dddd Sunday-Saturday The name of the day of the week +// H 0-23 The hour +// HH 00-23 The hour, 2-digits +// h 1-12 The hour, 12-hour clock +// hh 01-12 The hour, 12-hour clock, 2-digits +// m 0-59 The minute +// mm 00-59 The minute, 2-digits +// s 0-59 The second +// ss 00-59 The second, 2-digits +// SSS 000-999 The millisecond, 3-digits +// Z +05:00 The offset from UTC, ±HH:mm +// ZZ +0500 The offset from UTC, ±HHmm +// A AM PM +// a am pm + +//List of localized formats +// h:mm A 8:02 PM +// h:mm:ss A 8:02:18 PM +// MM/DD/YYYY 01/17/2021 +// DD/MM/YYYY 17/01/2021 +// MMMM D, YYYY January 17, 2021 +// MMMM D, YYYY h:mm A January 17, 2021 8:02 PM +// dddd, MMMM D, YYYY h:mm A Sunday, January 17, 2021 8:02 PM +// M/D/YYYY 8/17/2021 +// MMM D, YYYY Jan 17, 2021 +// MMM D, YYYY h:mm A Jan 17, 2021 8:02 PM +// ddd, MMM D, YYYY h:mm A Sun, Jan 17, 2021 8:02 PM +export const getCurrentDateOrTimeFormat = () => { + return dayjs(CurrentDateAndTime).format('h:mm A'); +}; + +export const setFormatDateOrTime = (dateOrTime: string) => { + return dayjs(dateOrTime).format('MMMM D, YYYY'); +} diff --git a/packages/autonews-client/src/utils/utility.tsx b/packages/autonews-client/src/utils/utility.tsx new file mode 100644 index 0000000..f27c27d --- /dev/null +++ b/packages/autonews-client/src/utils/utility.tsx @@ -0,0 +1,181 @@ +import { ReactNode } from 'react'; + +export function updateObject(oldObject: I, updatedProperties: P): I { + return { + ...oldObject, + ...updatedProperties, + }; +} + +export function updateAction(type: string, payload?: T): { type: string, payload?: T } { + return { type, payload }; +} + +export const checkValidity = (value: string, rules: any): boolean => { + let isValid = true; + if (!rules) { + return true; + } + + if (rules.required) { + isValid = value.trim() !== '' && isValid; + } + + if (rules.minLength) { + isValid = value.length >= rules.minLength && isValid; + } + + if (rules.maxLength) { + isValid = value.length <= rules.maxLength && isValid; + } + + if (rules.isEmail) { + const pattern = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/; + isValid = pattern.test(value) && isValid; + } + + if (rules.isNumeric) { + const pattern = /^\d+$/; + isValid = pattern.test(value) && isValid; + } + return isValid; +}; + +export const propertyBasedSort = (a: any, b: any): number => { + const aDate: Date = new Date(a.start); + const bDate: Date = new Date(b.start); + if (aDate < bDate) { + return -1; + } + if (aDate > bDate) { + return 1; + } + return 0; +}; + +export const success = (msg: ReactNode | string): void => { + // message.success(msg); +}; +export const error = (msg: ReactNode | string): void => { + // message.error(msg); +}; +export const warning = (msg: ReactNode | string): void => { + // message.warning(msg); +}; + +export const capitalizeFirstLetter = (str: string): string => { + return str?.charAt(0)?.toUpperCase() + str?.slice(1); +}; + +export const base64Encode = (unencoded: string): string => { + return btoa(unencoded); +}; + +export const base64Decode = (encoded: string): string => { + return atob(encoded); +}; + +export const base64UrlEncode = (unencoded: string): string => { + const encoded = base64Encode(unencoded); + return encodeURIComponent(encoded); +}; + +export const base64UrlDecode = (encoded: string): string => { + encoded = decodeURIComponent(encoded); + return base64Decode(encoded); +}; + +export const extractSecondLevelBaseUrl = (path: string): string => { + const routePath = path.split('/'); + routePath.length = 3; + return routePath.join('/'); +}; + +export const getDobFromAge = (age: number): Date => { + const d = new Date(); + const curYear = d.getFullYear(); + return new Date(d.setFullYear(curYear - age)); +}; + +export const array_move = (arr: any[], old_index: number, new_index: number): any[] => { + if (new_index >= arr.length) { + let k = new_index - arr.length + 1; + while (k--) { + arr.push(undefined); + } + } + arr.splice(new_index, 0, arr.splice(old_index, 1)[0]); + return arr; +}; + +export const calculateFinalPrice = (price: number, discountPercent: number): number => { + discountPercent = discountPercent < 0 || discountPercent === undefined ? 0 : discountPercent > 100 ? 100 : discountPercent; + price = price === undefined ? 0 : price; + return Math.round((price - ((discountPercent / 100) * price)) || 0); +}; + +export const calculateDiscountPercentage = (price: number, discountedPrice: number): number => { + price = price < 0 || price === undefined ? 0 : price; + discountedPrice = discountedPrice === undefined ? 0 : discountedPrice; + return Math.round(((price - discountedPrice) / price) * 100 || 0); +}; + +export const getMobileFormat = (mobile: string): string => { + if (mobile && typeof mobile === 'string') { + mobile = mobile.toString(); + return `+91 ${mobile.substr(0, 3)} ${mobile.substr(3, 4)} ${mobile.substr(7, 3)}`; + } + return ''; +}; + +export const formatPrice = (price: number, isDecimalRequired: boolean = true, isRSRequried: boolean = true): string => { + if (isDecimalRequired && isRSRequried) { + return 'Rs. ' + (price || 0).toFixed(2).replace(/(\d)(?=(\d{2})+\d\.)/g, '$1,'); + } else if (isDecimalRequired && !isRSRequried) { + return (price || 0).toFixed(2).replace(/(\d)(?=(\d{2})+\d\.)/g, '$1,'); + } else if (!isDecimalRequired && isRSRequried) { + return 'Rs. ' + (price || 0).toString().replace(/\B(?=(?:(\d\d)+(\d)(?!\d))+(?!\d))/g, ','); + } else if (!isDecimalRequired && !isRSRequried) { + return (price || 0).toString().replace(/\B(?=(?:(\d\d)+(\d)(?!\d))+(?!\d))/g, ','); + } else { + return 'Rs. ' + (price || 0).toString().replace(/\B(?=(?:(\d\d)+(\d)(?!\d))+(?!\d))/g, ','); + } +}; + +export const getPercentage = (total: number, value: number): number => { + return (total && value) ? Math.round((value / total) * 100) : 0; +}; + +export const mobileFormat = (mobileNumber: string): string => { + return mobileNumber.substr(4).split(' ').join(''); +}; + +export const toCamelCase = (string: string): string => { + return string + .replace(/\s(.)/g, ($1: any): any => $1.toUpperCase()) + .replace(/\s/g, ' ') + .replace(/^(.)/, ($1: any): any => $1.toUpperCase()); +}; + +export const checkIsSSo = (): boolean => { + const paths = window?.location?.pathname?.split('/'); + if (paths && paths.length && paths[1] === 'sl') { + return true; + } else { + return false; + } +}; + +export const average = (arr: number[]): number => arr.reduce((p: number, c: number): number => p + c, 0) / arr.length; + +export const getBulletPoints = (values: string[]): string => { + if (values) { + let result = `
    `; + values.forEach((x: string): void => { + result += '
  • ' + x + '
  • '; + }); + result = result + '
'; + return result; + } + return ''; +}; diff --git a/packages/autonews-client/tsconfig.json b/packages/autonews-client/tsconfig.json new file mode 100644 index 0000000..ae70be2 --- /dev/null +++ b/packages/autonews-client/tsconfig.json @@ -0,0 +1,53 @@ +{ + "compilerOptions": { + "rootDir": "src", + "baseUrl": ".", + "outDir": "build/dist", + "module": "esnext", + "target": "es5", + "lib": [ + "es6", + "dom" + ], + "plugins": [ + { + "name": "typescript-tslint-plugin" + } + ], + "sourceMap": true, + "allowJs": true, + "jsx": "react-jsx", + "moduleResolution": "node", + "forceConsistentCasingInFileNames": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noImplicitAny": true, + "importHelpers": true, + "strictNullChecks": true, + "suppressImplicitAnyIndexErrors": true, + "noUnusedLocals": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "typeRoots": [ + "node_modules/@types" + ], + "noFallthroughCasesInSwitch": true + }, + "exclude": [ + "node_modules", + "build", + "scripts", + "acceptance-tests", + "webpack", + "jest", + "src/setupTests.ts" + ], + "include": [ + "src" + ], +} \ No newline at end of file diff --git a/packages/autonews-client/tslint.json b/packages/autonews-client/tslint.json new file mode 100644 index 0000000..909a191 --- /dev/null +++ b/packages/autonews-client/tslint.json @@ -0,0 +1,124 @@ +{ + "defaultSeverity": "error", + "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], + "jsRules": {}, + "rules": { + "jsx-no-lambda": false, + "ordered-imports": false, + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [true, "check-space"], + "curly": true, + "eofline": true, + "forin": true, + "import-spacing": true, + "interface-name": false, + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [true, 140], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": { + "severity": "error", + "options": [ + "log", + "warning", + "debug", + "info", + "time", + "timeEnd", + "trace" + ] + }, + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [true, "ignore-params"], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [true, "single"], + "radix": true, + "semicolon": [true, "always"], + "triple-equals": [true, "allow-null-check"], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "indent": [true, "spaces", 2], + "trailing-comma": [ + true, + { + "multiline": "always", + "singleline": "never" + } + ], + "linebreak-style": [true, "CRLF"], + "typedef": [ + true, + "call-signature", + "parameter", + "arrow-call-signature", + "arrow-parameter", + "property-declaration" + ], + "no-consecutive-blank-lines": true + }, + "rulesDirectory": [], + "linterOptions": { + "exclude": [ + "config/**/*.js", + "node_modules/**/*.ts", + "coverage/lcov-report/*.js", + "src/serviceWorker.ts" + ] + } +} From 8356385e9058e54cecfe781ef893e37017830dd8 Mon Sep 17 00:00:00 2001 From: chenbolin Date: Wed, 28 Apr 2021 17:20:58 +0800 Subject: [PATCH 06/17] rename packages --- packages/{api => autonews-api}/Dockerfile | 0 packages/{api => autonews-api}/README.md | 0 packages/{api => autonews-api}/package.json | 0 packages/{api => autonews-api}/src/DAO.js | 0 packages/{api => autonews-api}/src/index.js | 0 .../{api => autonews-api}/utils/config.js | 2 +- .../{api => autonews-api}/utils/dbInit.js | 0 .../utils/mongoScript.md | 0 .../{scrape => autonews-scrape}/.gitignore | 0 packages/autonews-scrape/Dockerfile | 19 + .../{scrape => autonews-scrape}/README.md | 0 .../autonews/__init__.py | 0 .../autonews/filters.py | 0 .../autonews/items.py | 0 .../autonews/lib/THUCTC_java_v1/THUCTC.md | 0 .../lib/THUCTC_java_v1/THULAC_java_v1.jar | Bin .../autonews/lib/THUCTC_java_v1/demo.py | 0 .../lib/THUCTC_java_v1/liblinear-1.8.jar | Bin .../autonews/lib/hanlp-1.3.2/demo.py | 0 .../autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar | Bin .../autonews/lib/hanlp-1.3.2/hanlp.properties | 0 .../autonews/middlewares.py | 0 .../autonews/pipelines.py | 0 .../autonews/settings.py | 0 .../autonews/spiders/__init__.py | 0 .../autonews/spiders/cjrb.py | 0 .../autonews/spiders/hbrb.py | 0 .../autonews/spiders/rmw_hb.py | 0 .../autonews/spiders/rmw_hb_detail.py | 0 .../autonews/spiders/txdcw.py | 0 .../requirements.txt | 0 .../run_all_spiders.py | 0 .../{scrape => autonews-scrape}/scrapy.cfg | 0 .../scrapy_scheduler.py | 0 packages/{scrape => autonews-scrape}/setup.py | 0 packages/client/node_modules/.bin/_mocha | 15 - packages/client/node_modules/.bin/_mocha.cmd | 7 - packages/client/node_modules/.bin/babel | 15 - .../client/node_modules/.bin/babel-doctor | 15 - .../client/node_modules/.bin/babel-doctor.cmd | 7 - .../node_modules/.bin/babel-external-helpers | 15 - .../.bin/babel-external-helpers.cmd | 7 - packages/client/node_modules/.bin/babel-node | 15 - .../client/node_modules/.bin/babel-node.cmd | 7 - packages/client/node_modules/.bin/babel.cmd | 7 - .../client/node_modules/.bin/better-npm-run | 15 - .../node_modules/.bin/better-npm-run.cmd | 7 - packages/client/node_modules/.bin/bnr | 15 - packages/client/node_modules/.bin/bnr.cmd | 7 - packages/client/node_modules/.bin/codecov | 15 - packages/client/node_modules/.bin/codecov.cmd | 7 - packages/client/node_modules/.bin/eslint | 15 - packages/client/node_modules/.bin/eslint.cmd | 7 - packages/client/node_modules/.bin/karma | 15 - packages/client/node_modules/.bin/karma.cmd | 7 - packages/client/node_modules/.bin/mocha | 15 - packages/client/node_modules/.bin/mocha.cmd | 7 - packages/client/node_modules/.bin/node-sass | 15 - .../client/node_modules/.bin/node-sass.cmd | 7 - packages/client/node_modules/.bin/nodemon | 15 - packages/client/node_modules/.bin/nodemon.cmd | 7 - packages/client/node_modules/.bin/phantomjs | 15 - .../client/node_modules/.bin/phantomjs.cmd | 7 - packages/client/node_modules/.bin/rimraf | 15 - packages/client/node_modules/.bin/rimraf.cmd | 7 - packages/client/node_modules/.bin/webpack | 15 - packages/client/node_modules/.bin/webpack.cmd | 7 - .../client/node_modules/immutable/LICENSE | 21 - .../client/node_modules/immutable/README.md | 474 - .../immutable/contrib/cursor/README.md | 33 - .../contrib/cursor/__tests__/Cursor.ts.skip | 400 - .../immutable/contrib/cursor/index.d.ts | 290 - .../immutable/contrib/cursor/index.js | 341 - .../immutable/dist/immutable-nonambient.d.ts | 2533 ----- .../immutable/dist/immutable.d.ts | 2537 ----- .../node_modules/immutable/dist/immutable.js | 4977 --------- .../immutable/dist/immutable.js.flow | 670 -- .../immutable/dist/immutable.min.js | 34 - .../node_modules/immutable/package.json | 111 - .../client/node_modules/rc-animate/HISTORY.md | 42 - .../client/node_modules/rc-animate/LICENSE.md | 9 - .../client/node_modules/rc-animate/README.md | 193 - .../node_modules/rc-animate/es/Animate.js | 340 - .../rc-animate/es/AnimateChild.js | 112 - .../node_modules/rc-animate/es/CSSMotion.js | 339 - .../rc-animate/es/CSSMotionList.js | 155 - .../rc-animate/es/ChildrenUtils.js | 101 - .../rc-animate/es/util/animate.js | 21 - .../node_modules/rc-animate/es/util/diff.js | 106 - .../node_modules/rc-animate/es/util/motion.js | 83 - .../node_modules/rc-animate/lib/Animate.js | 361 - .../rc-animate/lib/AnimateChild.js | 132 - .../node_modules/rc-animate/lib/CSSMotion.js | 361 - .../rc-animate/lib/CSSMotionList.js | 172 - .../rc-animate/lib/ChildrenUtils.js | 117 - .../rc-animate/lib/util/animate.js | 27 - .../node_modules/rc-animate/lib/util/diff.js | 115 - .../rc-animate/lib/util/motion.js | 91 - .../node_modules/rc-animate/package.json | 64 - .../client/node_modules/rc-tree/HISTORY.md | 70 - .../client/node_modules/rc-tree/LICENSE.md | 22 - .../client/node_modules/rc-tree/README.md | 143 - .../node_modules/rc-tree/assets/icons.png | Bin 9968 -> 0 bytes .../node_modules/rc-tree/assets/index.css | 171 - .../node_modules/rc-tree/assets/line.gif | Bin 45 -> 0 bytes .../node_modules/rc-tree/assets/loading.gif | Bin 381 -> 0 bytes .../node_modules/rc-tree/dist/rc-tree.css | 173 - .../node_modules/rc-tree/dist/rc-tree.css.map | 1 - .../node_modules/rc-tree/dist/rc-tree.js | 7538 ------------- .../node_modules/rc-tree/dist/rc-tree.js.map | 1 - .../node_modules/rc-tree/dist/rc-tree.min.css | 173 - .../rc-tree/dist/rc-tree.min.css.map | 1 - .../node_modules/rc-tree/dist/rc-tree.min.js | 1 - .../client/node_modules/rc-tree/es/Tree.js | 819 -- .../node_modules/rc-tree/es/TreeNode.js | 602 - .../node_modules/rc-tree/es/contextTypes.js | 63 - .../client/node_modules/rc-tree/es/index.js | 7 - .../client/node_modules/rc-tree/es/util.js | 468 - .../client/node_modules/rc-tree/lib/Tree.js | 861 -- .../node_modules/rc-tree/lib/TreeNode.js | 646 -- .../node_modules/rc-tree/lib/contextTypes.js | 75 - .../client/node_modules/rc-tree/lib/index.js | 21 - .../client/node_modules/rc-tree/lib/util.js | 510 - .../client/node_modules/rc-tree/package.json | 96 - packages/client/package.json | 2 +- .../src/layouts/CoreLayout/CoreLayout.js | 2 +- packages/client/src/redux/Global.js | 1 - .../src/routes/Monitor/components/Monitor.js | 4 +- packages/client/src/routes/index.js | 68 - packages/scrape/.python-version | 1 - packages/scrape/Dockerfile | 31 - yarn.lock | 9705 ++++++++++++++++- 132 files changed, 9502 insertions(+), 28509 deletions(-) rename packages/{api => autonews-api}/Dockerfile (100%) rename packages/{api => autonews-api}/README.md (100%) rename packages/{api => autonews-api}/package.json (100%) rename packages/{api => autonews-api}/src/DAO.js (100%) rename packages/{api => autonews-api}/src/index.js (100%) rename packages/{api => autonews-api}/utils/config.js (55%) rename packages/{api => autonews-api}/utils/dbInit.js (100%) rename packages/{api => autonews-api}/utils/mongoScript.md (100%) rename packages/{scrape => autonews-scrape}/.gitignore (100%) create mode 100644 packages/autonews-scrape/Dockerfile rename packages/{scrape => autonews-scrape}/README.md (100%) rename packages/{scrape => autonews-scrape}/autonews/__init__.py (100%) rename packages/{scrape => autonews-scrape}/autonews/filters.py (100%) rename packages/{scrape => autonews-scrape}/autonews/items.py (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/THUCTC_java_v1/THUCTC.md (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/THUCTC_java_v1/demo.py (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/hanlp-1.3.2/demo.py (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar (100%) rename packages/{scrape => autonews-scrape}/autonews/lib/hanlp-1.3.2/hanlp.properties (100%) rename packages/{scrape => autonews-scrape}/autonews/middlewares.py (100%) rename packages/{scrape => autonews-scrape}/autonews/pipelines.py (100%) rename packages/{scrape => autonews-scrape}/autonews/settings.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/__init__.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/cjrb.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/hbrb.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/rmw_hb.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/rmw_hb_detail.py (100%) rename packages/{scrape => autonews-scrape}/autonews/spiders/txdcw.py (100%) rename packages/{scrape => autonews-scrape}/requirements.txt (100%) rename packages/{scrape => autonews-scrape}/run_all_spiders.py (100%) rename packages/{scrape => autonews-scrape}/scrapy.cfg (100%) rename packages/{scrape => autonews-scrape}/scrapy_scheduler.py (100%) rename packages/{scrape => autonews-scrape}/setup.py (100%) delete mode 100644 packages/client/node_modules/.bin/_mocha delete mode 100644 packages/client/node_modules/.bin/_mocha.cmd delete mode 100644 packages/client/node_modules/.bin/babel delete mode 100644 packages/client/node_modules/.bin/babel-doctor delete mode 100644 packages/client/node_modules/.bin/babel-doctor.cmd delete mode 100644 packages/client/node_modules/.bin/babel-external-helpers delete mode 100644 packages/client/node_modules/.bin/babel-external-helpers.cmd delete mode 100644 packages/client/node_modules/.bin/babel-node delete mode 100644 packages/client/node_modules/.bin/babel-node.cmd delete mode 100644 packages/client/node_modules/.bin/babel.cmd delete mode 100644 packages/client/node_modules/.bin/better-npm-run delete mode 100644 packages/client/node_modules/.bin/better-npm-run.cmd delete mode 100644 packages/client/node_modules/.bin/bnr delete mode 100644 packages/client/node_modules/.bin/bnr.cmd delete mode 100644 packages/client/node_modules/.bin/codecov delete mode 100644 packages/client/node_modules/.bin/codecov.cmd delete mode 100644 packages/client/node_modules/.bin/eslint delete mode 100644 packages/client/node_modules/.bin/eslint.cmd delete mode 100644 packages/client/node_modules/.bin/karma delete mode 100644 packages/client/node_modules/.bin/karma.cmd delete mode 100644 packages/client/node_modules/.bin/mocha delete mode 100644 packages/client/node_modules/.bin/mocha.cmd delete mode 100644 packages/client/node_modules/.bin/node-sass delete mode 100644 packages/client/node_modules/.bin/node-sass.cmd delete mode 100644 packages/client/node_modules/.bin/nodemon delete mode 100644 packages/client/node_modules/.bin/nodemon.cmd delete mode 100644 packages/client/node_modules/.bin/phantomjs delete mode 100644 packages/client/node_modules/.bin/phantomjs.cmd delete mode 100644 packages/client/node_modules/.bin/rimraf delete mode 100644 packages/client/node_modules/.bin/rimraf.cmd delete mode 100644 packages/client/node_modules/.bin/webpack delete mode 100644 packages/client/node_modules/.bin/webpack.cmd delete mode 100644 packages/client/node_modules/immutable/LICENSE delete mode 100644 packages/client/node_modules/immutable/README.md delete mode 100644 packages/client/node_modules/immutable/contrib/cursor/README.md delete mode 100644 packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip delete mode 100644 packages/client/node_modules/immutable/contrib/cursor/index.d.ts delete mode 100644 packages/client/node_modules/immutable/contrib/cursor/index.js delete mode 100644 packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts delete mode 100644 packages/client/node_modules/immutable/dist/immutable.d.ts delete mode 100644 packages/client/node_modules/immutable/dist/immutable.js delete mode 100644 packages/client/node_modules/immutable/dist/immutable.js.flow delete mode 100644 packages/client/node_modules/immutable/dist/immutable.min.js delete mode 100644 packages/client/node_modules/immutable/package.json delete mode 100644 packages/client/node_modules/rc-animate/HISTORY.md delete mode 100644 packages/client/node_modules/rc-animate/LICENSE.md delete mode 100644 packages/client/node_modules/rc-animate/README.md delete mode 100644 packages/client/node_modules/rc-animate/es/Animate.js delete mode 100644 packages/client/node_modules/rc-animate/es/AnimateChild.js delete mode 100644 packages/client/node_modules/rc-animate/es/CSSMotion.js delete mode 100644 packages/client/node_modules/rc-animate/es/CSSMotionList.js delete mode 100644 packages/client/node_modules/rc-animate/es/ChildrenUtils.js delete mode 100644 packages/client/node_modules/rc-animate/es/util/animate.js delete mode 100644 packages/client/node_modules/rc-animate/es/util/diff.js delete mode 100644 packages/client/node_modules/rc-animate/es/util/motion.js delete mode 100644 packages/client/node_modules/rc-animate/lib/Animate.js delete mode 100644 packages/client/node_modules/rc-animate/lib/AnimateChild.js delete mode 100644 packages/client/node_modules/rc-animate/lib/CSSMotion.js delete mode 100644 packages/client/node_modules/rc-animate/lib/CSSMotionList.js delete mode 100644 packages/client/node_modules/rc-animate/lib/ChildrenUtils.js delete mode 100644 packages/client/node_modules/rc-animate/lib/util/animate.js delete mode 100644 packages/client/node_modules/rc-animate/lib/util/diff.js delete mode 100644 packages/client/node_modules/rc-animate/lib/util/motion.js delete mode 100644 packages/client/node_modules/rc-animate/package.json delete mode 100644 packages/client/node_modules/rc-tree/HISTORY.md delete mode 100644 packages/client/node_modules/rc-tree/LICENSE.md delete mode 100644 packages/client/node_modules/rc-tree/README.md delete mode 100644 packages/client/node_modules/rc-tree/assets/icons.png delete mode 100644 packages/client/node_modules/rc-tree/assets/index.css delete mode 100644 packages/client/node_modules/rc-tree/assets/line.gif delete mode 100644 packages/client/node_modules/rc-tree/assets/loading.gif delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.css delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.css.map delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.js delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.js.map delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.css delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map delete mode 100644 packages/client/node_modules/rc-tree/dist/rc-tree.min.js delete mode 100644 packages/client/node_modules/rc-tree/es/Tree.js delete mode 100644 packages/client/node_modules/rc-tree/es/TreeNode.js delete mode 100644 packages/client/node_modules/rc-tree/es/contextTypes.js delete mode 100644 packages/client/node_modules/rc-tree/es/index.js delete mode 100644 packages/client/node_modules/rc-tree/es/util.js delete mode 100644 packages/client/node_modules/rc-tree/lib/Tree.js delete mode 100644 packages/client/node_modules/rc-tree/lib/TreeNode.js delete mode 100644 packages/client/node_modules/rc-tree/lib/contextTypes.js delete mode 100644 packages/client/node_modules/rc-tree/lib/index.js delete mode 100644 packages/client/node_modules/rc-tree/lib/util.js delete mode 100644 packages/client/node_modules/rc-tree/package.json delete mode 100644 packages/scrape/.python-version delete mode 100644 packages/scrape/Dockerfile diff --git a/packages/api/Dockerfile b/packages/autonews-api/Dockerfile similarity index 100% rename from packages/api/Dockerfile rename to packages/autonews-api/Dockerfile diff --git a/packages/api/README.md b/packages/autonews-api/README.md similarity index 100% rename from packages/api/README.md rename to packages/autonews-api/README.md diff --git a/packages/api/package.json b/packages/autonews-api/package.json similarity index 100% rename from packages/api/package.json rename to packages/autonews-api/package.json diff --git a/packages/api/src/DAO.js b/packages/autonews-api/src/DAO.js similarity index 100% rename from packages/api/src/DAO.js rename to packages/autonews-api/src/DAO.js diff --git a/packages/api/src/index.js b/packages/autonews-api/src/index.js similarity index 100% rename from packages/api/src/index.js rename to packages/autonews-api/src/index.js diff --git a/packages/api/utils/config.js b/packages/autonews-api/utils/config.js similarity index 55% rename from packages/api/utils/config.js rename to packages/autonews-api/utils/config.js index b376b71..484eaae 100644 --- a/packages/api/utils/config.js +++ b/packages/autonews-api/utils/config.js @@ -5,5 +5,5 @@ module.exports = { HTTP_PORT: 3090,//HTTP server port - DB_SERVER: 'mongodb://localhost:27017/auto-news',// docker: Mac Win + DB_SERVER: 'mongodb://localhost:27017/autonews',// docker: Mac Win }; diff --git a/packages/api/utils/dbInit.js b/packages/autonews-api/utils/dbInit.js similarity index 100% rename from packages/api/utils/dbInit.js rename to packages/autonews-api/utils/dbInit.js diff --git a/packages/api/utils/mongoScript.md b/packages/autonews-api/utils/mongoScript.md similarity index 100% rename from packages/api/utils/mongoScript.md rename to packages/autonews-api/utils/mongoScript.md diff --git a/packages/scrape/.gitignore b/packages/autonews-scrape/.gitignore similarity index 100% rename from packages/scrape/.gitignore rename to packages/autonews-scrape/.gitignore diff --git a/packages/autonews-scrape/Dockerfile b/packages/autonews-scrape/Dockerfile new file mode 100644 index 0000000..6a2a286 --- /dev/null +++ b/packages/autonews-scrape/Dockerfile @@ -0,0 +1,19 @@ +# Use an official Python runtime as a base image +FROM python:3.9.4 + +# Set the working directory to /app +WORKDIR /autonews + +# Copy the current directory contents into the container at /app +ADD ./autonews /autonews/autonews +ADD ./requirements.txt /autonews +ADD ./scrapy.cfg /autonews +ADD ./scrapy_scheduler.py /autonews + +RUN pip install -r requirements.txt + +# Make port 80 available to the world outside this container +#EXPOSE 80 + +# Run app.py when the container launches +CMD ["python", "./scrapy_scheduler.py"] diff --git a/packages/scrape/README.md b/packages/autonews-scrape/README.md similarity index 100% rename from packages/scrape/README.md rename to packages/autonews-scrape/README.md diff --git a/packages/scrape/autonews/__init__.py b/packages/autonews-scrape/autonews/__init__.py similarity index 100% rename from packages/scrape/autonews/__init__.py rename to packages/autonews-scrape/autonews/__init__.py diff --git a/packages/scrape/autonews/filters.py b/packages/autonews-scrape/autonews/filters.py similarity index 100% rename from packages/scrape/autonews/filters.py rename to packages/autonews-scrape/autonews/filters.py diff --git a/packages/scrape/autonews/items.py b/packages/autonews-scrape/autonews/items.py similarity index 100% rename from packages/scrape/autonews/items.py rename to packages/autonews-scrape/autonews/items.py diff --git a/packages/scrape/autonews/lib/THUCTC_java_v1/THUCTC.md b/packages/autonews-scrape/autonews/lib/THUCTC_java_v1/THUCTC.md similarity index 100% rename from packages/scrape/autonews/lib/THUCTC_java_v1/THUCTC.md rename to packages/autonews-scrape/autonews/lib/THUCTC_java_v1/THUCTC.md diff --git a/packages/scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar b/packages/autonews-scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar similarity index 100% rename from packages/scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar rename to packages/autonews-scrape/autonews/lib/THUCTC_java_v1/THULAC_java_v1.jar diff --git a/packages/scrape/autonews/lib/THUCTC_java_v1/demo.py b/packages/autonews-scrape/autonews/lib/THUCTC_java_v1/demo.py similarity index 100% rename from packages/scrape/autonews/lib/THUCTC_java_v1/demo.py rename to packages/autonews-scrape/autonews/lib/THUCTC_java_v1/demo.py diff --git a/packages/scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar b/packages/autonews-scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar similarity index 100% rename from packages/scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar rename to packages/autonews-scrape/autonews/lib/THUCTC_java_v1/liblinear-1.8.jar diff --git a/packages/scrape/autonews/lib/hanlp-1.3.2/demo.py b/packages/autonews-scrape/autonews/lib/hanlp-1.3.2/demo.py similarity index 100% rename from packages/scrape/autonews/lib/hanlp-1.3.2/demo.py rename to packages/autonews-scrape/autonews/lib/hanlp-1.3.2/demo.py diff --git a/packages/scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar b/packages/autonews-scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar similarity index 100% rename from packages/scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar rename to packages/autonews-scrape/autonews/lib/hanlp-1.3.2/hanlp-1.3.2.jar diff --git a/packages/scrape/autonews/lib/hanlp-1.3.2/hanlp.properties b/packages/autonews-scrape/autonews/lib/hanlp-1.3.2/hanlp.properties similarity index 100% rename from packages/scrape/autonews/lib/hanlp-1.3.2/hanlp.properties rename to packages/autonews-scrape/autonews/lib/hanlp-1.3.2/hanlp.properties diff --git a/packages/scrape/autonews/middlewares.py b/packages/autonews-scrape/autonews/middlewares.py similarity index 100% rename from packages/scrape/autonews/middlewares.py rename to packages/autonews-scrape/autonews/middlewares.py diff --git a/packages/scrape/autonews/pipelines.py b/packages/autonews-scrape/autonews/pipelines.py similarity index 100% rename from packages/scrape/autonews/pipelines.py rename to packages/autonews-scrape/autonews/pipelines.py diff --git a/packages/scrape/autonews/settings.py b/packages/autonews-scrape/autonews/settings.py similarity index 100% rename from packages/scrape/autonews/settings.py rename to packages/autonews-scrape/autonews/settings.py diff --git a/packages/scrape/autonews/spiders/__init__.py b/packages/autonews-scrape/autonews/spiders/__init__.py similarity index 100% rename from packages/scrape/autonews/spiders/__init__.py rename to packages/autonews-scrape/autonews/spiders/__init__.py diff --git a/packages/scrape/autonews/spiders/cjrb.py b/packages/autonews-scrape/autonews/spiders/cjrb.py similarity index 100% rename from packages/scrape/autonews/spiders/cjrb.py rename to packages/autonews-scrape/autonews/spiders/cjrb.py diff --git a/packages/scrape/autonews/spiders/hbrb.py b/packages/autonews-scrape/autonews/spiders/hbrb.py similarity index 100% rename from packages/scrape/autonews/spiders/hbrb.py rename to packages/autonews-scrape/autonews/spiders/hbrb.py diff --git a/packages/scrape/autonews/spiders/rmw_hb.py b/packages/autonews-scrape/autonews/spiders/rmw_hb.py similarity index 100% rename from packages/scrape/autonews/spiders/rmw_hb.py rename to packages/autonews-scrape/autonews/spiders/rmw_hb.py diff --git a/packages/scrape/autonews/spiders/rmw_hb_detail.py b/packages/autonews-scrape/autonews/spiders/rmw_hb_detail.py similarity index 100% rename from packages/scrape/autonews/spiders/rmw_hb_detail.py rename to packages/autonews-scrape/autonews/spiders/rmw_hb_detail.py diff --git a/packages/scrape/autonews/spiders/txdcw.py b/packages/autonews-scrape/autonews/spiders/txdcw.py similarity index 100% rename from packages/scrape/autonews/spiders/txdcw.py rename to packages/autonews-scrape/autonews/spiders/txdcw.py diff --git a/packages/scrape/requirements.txt b/packages/autonews-scrape/requirements.txt similarity index 100% rename from packages/scrape/requirements.txt rename to packages/autonews-scrape/requirements.txt diff --git a/packages/scrape/run_all_spiders.py b/packages/autonews-scrape/run_all_spiders.py similarity index 100% rename from packages/scrape/run_all_spiders.py rename to packages/autonews-scrape/run_all_spiders.py diff --git a/packages/scrape/scrapy.cfg b/packages/autonews-scrape/scrapy.cfg similarity index 100% rename from packages/scrape/scrapy.cfg rename to packages/autonews-scrape/scrapy.cfg diff --git a/packages/scrape/scrapy_scheduler.py b/packages/autonews-scrape/scrapy_scheduler.py similarity index 100% rename from packages/scrape/scrapy_scheduler.py rename to packages/autonews-scrape/scrapy_scheduler.py diff --git a/packages/scrape/setup.py b/packages/autonews-scrape/setup.py similarity index 100% rename from packages/scrape/setup.py rename to packages/autonews-scrape/setup.py diff --git a/packages/client/node_modules/.bin/_mocha b/packages/client/node_modules/.bin/_mocha deleted file mode 100644 index 222f7da..0000000 --- a/packages/client/node_modules/.bin/_mocha +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/mocha/bin/_mocha" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/mocha/bin/_mocha" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/_mocha.cmd b/packages/client/node_modules/.bin/_mocha.cmd deleted file mode 100644 index f75d463..0000000 --- a/packages/client/node_modules/.bin/_mocha.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\mocha\bin\_mocha" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\mocha\bin\_mocha" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel b/packages/client/node_modules/.bin/babel deleted file mode 100644 index c91472a..0000000 --- a/packages/client/node_modules/.bin/babel +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/babel-cli/bin/babel.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/babel-doctor b/packages/client/node_modules/.bin/babel-doctor deleted file mode 100644 index b5cf606..0000000 --- a/packages/client/node_modules/.bin/babel-doctor +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-doctor.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/babel-cli/bin/babel-doctor.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/babel-doctor.cmd b/packages/client/node_modules/.bin/babel-doctor.cmd deleted file mode 100644 index 645138c..0000000 --- a/packages/client/node_modules/.bin/babel-doctor.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-doctor.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-doctor.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel-external-helpers b/packages/client/node_modules/.bin/babel-external-helpers deleted file mode 100644 index 85031db..0000000 --- a/packages/client/node_modules/.bin/babel-external-helpers +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-external-helpers.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/babel-cli/bin/babel-external-helpers.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/babel-external-helpers.cmd b/packages/client/node_modules/.bin/babel-external-helpers.cmd deleted file mode 100644 index b5f2e81..0000000 --- a/packages/client/node_modules/.bin/babel-external-helpers.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-external-helpers.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-external-helpers.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel-node b/packages/client/node_modules/.bin/babel-node deleted file mode 100644 index 3195ab8..0000000 --- a/packages/client/node_modules/.bin/babel-node +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/babel-cli/bin/babel-node.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/babel-cli/bin/babel-node.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/babel-node.cmd b/packages/client/node_modules/.bin/babel-node.cmd deleted file mode 100644 index 23dc259..0000000 --- a/packages/client/node_modules/.bin/babel-node.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-node.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel-node.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/babel.cmd b/packages/client/node_modules/.bin/babel.cmd deleted file mode 100644 index a59af85..0000000 --- a/packages/client/node_modules/.bin/babel.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\babel-cli\bin\babel.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/better-npm-run b/packages/client/node_modules/.bin/better-npm-run deleted file mode 100644 index dbcadd7..0000000 --- a/packages/client/node_modules/.bin/better-npm-run +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/better-npm-run.cmd b/packages/client/node_modules/.bin/better-npm-run.cmd deleted file mode 100644 index bc9358f..0000000 --- a/packages/client/node_modules/.bin/better-npm-run.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/bnr b/packages/client/node_modules/.bin/bnr deleted file mode 100644 index dbcadd7..0000000 --- a/packages/client/node_modules/.bin/bnr +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/better-npm-run/index.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/bnr.cmd b/packages/client/node_modules/.bin/bnr.cmd deleted file mode 100644 index bc9358f..0000000 --- a/packages/client/node_modules/.bin/bnr.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\better-npm-run\index.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/codecov b/packages/client/node_modules/.bin/codecov deleted file mode 100644 index 992a5cb..0000000 --- a/packages/client/node_modules/.bin/codecov +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/codecov/bin/codecov" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/codecov/bin/codecov" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/codecov.cmd b/packages/client/node_modules/.bin/codecov.cmd deleted file mode 100644 index d6cbcef..0000000 --- a/packages/client/node_modules/.bin/codecov.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\codecov\bin\codecov" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\codecov\bin\codecov" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/eslint b/packages/client/node_modules/.bin/eslint deleted file mode 100644 index 52fdf27..0000000 --- a/packages/client/node_modules/.bin/eslint +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/eslint/bin/eslint.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/eslint/bin/eslint.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/eslint.cmd b/packages/client/node_modules/.bin/eslint.cmd deleted file mode 100644 index 2c35a91..0000000 --- a/packages/client/node_modules/.bin/eslint.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\eslint\bin\eslint.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\eslint\bin\eslint.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/karma b/packages/client/node_modules/.bin/karma deleted file mode 100644 index 19e0599..0000000 --- a/packages/client/node_modules/.bin/karma +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/karma/bin/karma" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/karma/bin/karma" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/karma.cmd b/packages/client/node_modules/.bin/karma.cmd deleted file mode 100644 index 9ce8d0c..0000000 --- a/packages/client/node_modules/.bin/karma.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\karma\bin\karma" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\karma\bin\karma" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/mocha b/packages/client/node_modules/.bin/mocha deleted file mode 100644 index 2c09b45..0000000 --- a/packages/client/node_modules/.bin/mocha +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/mocha/bin/mocha" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/mocha/bin/mocha" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/mocha.cmd b/packages/client/node_modules/.bin/mocha.cmd deleted file mode 100644 index b6b5c70..0000000 --- a/packages/client/node_modules/.bin/mocha.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\mocha\bin\mocha" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\mocha\bin\mocha" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/node-sass b/packages/client/node_modules/.bin/node-sass deleted file mode 100644 index 78039b8..0000000 --- a/packages/client/node_modules/.bin/node-sass +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/node-sass/bin/node-sass" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/node-sass/bin/node-sass" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/node-sass.cmd b/packages/client/node_modules/.bin/node-sass.cmd deleted file mode 100644 index 948df69..0000000 --- a/packages/client/node_modules/.bin/node-sass.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\node-sass\bin\node-sass" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\node-sass\bin\node-sass" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/nodemon b/packages/client/node_modules/.bin/nodemon deleted file mode 100644 index cf4a03e..0000000 --- a/packages/client/node_modules/.bin/nodemon +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/nodemon/bin/nodemon.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/nodemon/bin/nodemon.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/nodemon.cmd b/packages/client/node_modules/.bin/nodemon.cmd deleted file mode 100644 index 91d49c0..0000000 --- a/packages/client/node_modules/.bin/nodemon.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\nodemon\bin\nodemon.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\nodemon\bin\nodemon.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/phantomjs b/packages/client/node_modules/.bin/phantomjs deleted file mode 100644 index e7c08dc..0000000 --- a/packages/client/node_modules/.bin/phantomjs +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/phantomjs-prebuilt/bin/phantomjs" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/phantomjs-prebuilt/bin/phantomjs" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/phantomjs.cmd b/packages/client/node_modules/.bin/phantomjs.cmd deleted file mode 100644 index 3d1a1ee..0000000 --- a/packages/client/node_modules/.bin/phantomjs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\phantomjs-prebuilt\bin\phantomjs" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\phantomjs-prebuilt\bin\phantomjs" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/rimraf b/packages/client/node_modules/.bin/rimraf deleted file mode 100644 index 0df1e97..0000000 --- a/packages/client/node_modules/.bin/rimraf +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/rimraf/bin.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/rimraf/bin.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/rimraf.cmd b/packages/client/node_modules/.bin/rimraf.cmd deleted file mode 100644 index cd719bd..0000000 --- a/packages/client/node_modules/.bin/rimraf.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\rimraf\bin.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\rimraf\bin.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/.bin/webpack b/packages/client/node_modules/.bin/webpack deleted file mode 100644 index f95aa81..0000000 --- a/packages/client/node_modules/.bin/webpack +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../../../../node_modules/webpack/bin/webpack.js" "$@" - ret=$? -else - node "$basedir/../../../../node_modules/webpack/bin/webpack.js" "$@" - ret=$? -fi -exit $ret diff --git a/packages/client/node_modules/.bin/webpack.cmd b/packages/client/node_modules/.bin/webpack.cmd deleted file mode 100644 index cead068..0000000 --- a/packages/client/node_modules/.bin/webpack.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@IF EXIST "%~dp0\node.exe" ( - "%~dp0\node.exe" "%~dp0\..\..\..\..\node_modules\webpack\bin\webpack.js" %* -) ELSE ( - @SETLOCAL - @SET PATHEXT=%PATHEXT:;.JS;=;% - node "%~dp0\..\..\..\..\node_modules\webpack\bin\webpack.js" %* -) \ No newline at end of file diff --git a/packages/client/node_modules/immutable/LICENSE b/packages/client/node_modules/immutable/LICENSE deleted file mode 100644 index cde61b6..0000000 --- a/packages/client/node_modules/immutable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2014-present, Facebook, Inc. - -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. diff --git a/packages/client/node_modules/immutable/README.md b/packages/client/node_modules/immutable/README.md deleted file mode 100644 index a42b346..0000000 --- a/packages/client/node_modules/immutable/README.md +++ /dev/null @@ -1,474 +0,0 @@ -Immutable collections for JavaScript -==================================== - -[![Build Status](https://travis-ci.org/facebook/immutable-js.svg)](https://travis-ci.org/facebook/immutable-js) - -[Immutable][] data cannot be changed once created, leading to much simpler -application development, no defensive copying, and enabling advanced memoization -and change detection techniques with simple logic. [Persistent][] data presents -a mutative API which does not update the data in-place, but instead always -yields new updated data. - -Immutable.js provides many Persistent Immutable data structures including: -`List`, `Stack`, `Map`, `OrderedMap`, `Set`, `OrderedSet` and `Record`. - -These data structures are highly efficient on modern JavaScript VMs by using -structural sharing via [hash maps tries][] and [vector tries][] as popularized -by Clojure and Scala, minimizing the need to copy or cache data. - -`Immutable` also provides a lazy `Seq`, allowing efficient -chaining of collection methods like `map` and `filter` without creating -intermediate representations. Create some `Seq` with `Range` and `Repeat`. - -Want to hear more? Watch the presentation about Immutable.js: - - - -[Persistent]: http://en.wikipedia.org/wiki/Persistent_data_structure -[Immutable]: http://en.wikipedia.org/wiki/Immutable_object -[hash maps tries]: http://en.wikipedia.org/wiki/Hash_array_mapped_trie -[vector tries]: http://hypirion.com/musings/understanding-persistent-vector-pt-1 - - -Getting started ---------------- - -Install `immutable` using npm. - -```shell -npm install immutable -``` - -Then require it into any module. - -```javascript -var Immutable = require('immutable'); -var map1 = Immutable.Map({a:1, b:2, c:3}); -var map2 = map1.set('b', 50); -map1.get('b'); // 2 -map2.get('b'); // 50 -``` - -### Browser - -To use `immutable` from a browser, download [dist/immutable.min.js](https://github.com/facebook/immutable-js/blob/master/dist/immutable.min.js) -or use a CDN such as [CDNJS](https://cdnjs.com/libraries/immutable) -or [jsDelivr](http://www.jsdelivr.com/#!immutable.js). - -Then, add it as a script tag to your page: - -```html - - -``` - -Or use an AMD loader (such as [RequireJS](http://requirejs.org/)): - -```javascript -require(['./immutable.min.js'], function (Immutable) { - var map1 = Immutable.Map({a:1, b:2, c:3}); - var map2 = map1.set('b', 50); - map1.get('b'); // 2 - map2.get('b'); // 50 -}); -``` - -If you're using [browserify](http://browserify.org/), the `immutable` npm module -also works from the browser. - -### TypeScript - -Use these Immutable collections and sequences as you would use native -collections in your [TypeScript](http://typescriptlang.org) programs while still taking -advantage of type generics, error detection, and auto-complete in your IDE. - -Just add a reference with a relative path to the type declarations at the top -of your file. - -```javascript -/// -import Immutable = require('immutable'); -var map1: Immutable.Map; -map1 = Immutable.Map({a:1, b:2, c:3}); -var map2 = map1.set('b', 50); -map1.get('b'); // 2 -map2.get('b'); // 50 -``` - - -The case for Immutability -------------------------- - -Much of what makes application development difficult is tracking mutation and -maintaining state. Developing with immutable data encourages you to think -differently about how data flows through your application. - -Subscribing to data events throughout your application creates a huge overhead of -book-keeping which can hurt performance, sometimes dramatically, and creates -opportunities for areas of your application to get out of sync with each other -due to easy to make programmer error. Since immutable data never changes, -subscribing to changes throughout the model is a dead-end and new data can only -ever be passed from above. - -This model of data flow aligns well with the architecture of [React][] -and especially well with an application designed using the ideas of [Flux][]. - -When data is passed from above rather than being subscribed to, and you're only -interested in doing work when something has changed, you can use equality. - -Immutable collections should be treated as *values* rather than *objects*. While -objects represents some thing which could change over time, a value represents -the state of that thing at a particular instance of time. This principle is most -important to understanding the appropriate use of immutable data. In order to -treat Immutable.js collections as values, it's important to use the -`Immutable.is()` function or `.equals()` method to determine value equality -instead of the `===` operator which determines object reference identity. - -```javascript -var map1 = Immutable.Map({a:1, b:2, c:3}); -var map2 = map1.set('b', 2); -assert(map1.equals(map2) === true); -var map3 = map1.set('b', 50); -assert(map1.equals(map3) === false); -``` - -Note: As a performance optimization `Immutable` attempts to return the existing -collection when an operation would result in an identical collection, allowing -for using `===` reference equality to determine if something definitely has not -changed. This can be extremely useful when used within memoization function -which would prefer to re-run the function if a deeper equality check could -potentially be more costly. The `===` equality check is also used internally by -`Immutable.is` and `.equals()` as a performance optimization. - -If an object is immutable, it can be "copied" simply by making another reference -to it instead of copying the entire object. Because a reference is much smaller -than the object itself, this results in memory savings and a potential boost in -execution speed for programs which rely on copies (such as an undo-stack). - -```javascript -var map1 = Immutable.Map({a:1, b:2, c:3}); -var clone = map1; -``` - -[React]: http://facebook.github.io/react/ -[Flux]: http://facebook.github.io/flux/docs/overview.html - - -JavaScript-first API --------------------- - -While `immutable` is inspired by Clojure, Scala, Haskell and other functional -programming environments, it's designed to bring these powerful concepts to -JavaScript, and therefore has an Object-Oriented API that closely mirrors that -of [ES6][] [Array][], [Map][], and [Set][]. - -[ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla -[Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array -[Map]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map -[Set]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set - -The difference for the immutable collections is that methods which would mutate -the collection, like `push`, `set`, `unshift` or `splice` instead return a new -immutable collection. Methods which return new arrays like `slice` or `concat` -instead return new immutable collections. - -```javascript -var list1 = Immutable.List.of(1, 2); -var list2 = list1.push(3, 4, 5); -var list3 = list2.unshift(0); -var list4 = list1.concat(list2, list3); -assert(list1.size === 2); -assert(list2.size === 5); -assert(list3.size === 6); -assert(list4.size === 13); -assert(list4.get(0) === 1); -``` - -Almost all of the methods on [Array][] will be found in similar form on -`Immutable.List`, those of [Map][] found on `Immutable.Map`, and those of [Set][] -found on `Immutable.Set`, including collection operations like `forEach()` -and `map()`. - -```javascript -var alpha = Immutable.Map({a:1, b:2, c:3, d:4}); -alpha.map((v, k) => k.toUpperCase()).join(); -// 'A,B,C,D' -``` - -### Accepts raw JavaScript objects. - -Designed to inter-operate with your existing JavaScript, `immutable` -accepts plain JavaScript Arrays and Objects anywhere a method expects an -`Iterable` with no performance penalty. - -```javascript -var map1 = Immutable.Map({a:1, b:2, c:3, d:4}); -var map2 = Immutable.Map({c:10, a:20, t:30}); -var obj = {d:100, o:200, g:300}; -var map3 = map1.merge(map2, obj); -// Map { a: 20, b: 2, c: 10, d: 100, t: 30, o: 200, g: 300 } -``` - -This is possible because `immutable` can treat any JavaScript Array or Object -as an Iterable. You can take advantage of this in order to get sophisticated -collection methods on JavaScript Objects, which otherwise have a very sparse -native API. Because Seq evaluates lazily and does not cache intermediate -results, these operations can be extremely efficient. - -```javascript -var myObject = {a:1,b:2,c:3}; -Immutable.Seq(myObject).map(x => x * x).toObject(); -// { a: 1, b: 4, c: 9 } -``` - -Keep in mind, when using JS objects to construct Immutable Maps, that -JavaScript Object properties are always strings, even if written in a quote-less -shorthand, while Immutable Maps accept keys of any type. - -```js -var obj = { 1: "one" }; -Object.keys(obj); // [ "1" ] -obj["1"]; // "one" -obj[1]; // "one" - -var map = Immutable.fromJS(obj); -map.get("1"); // "one" -map.get(1); // undefined -``` - -Property access for JavaScript Objects first converts the key to a string, but -since Immutable Map keys can be of any type the argument to `get()` is -not altered. - - -### Converts back to raw JavaScript objects. - -All `immutable` Iterables can be converted to plain JavaScript Arrays and -Objects shallowly with `toArray()` and `toObject()` or deeply with `toJS()`. -All Immutable Iterables also implement `toJSON()` allowing them to be passed to -`JSON.stringify` directly. - -```javascript -var deep = Immutable.Map({ a: 1, b: 2, c: Immutable.List.of(3, 4, 5) }); -deep.toObject() // { a: 1, b: 2, c: List [ 3, 4, 5 ] } -deep.toArray() // [ 1, 2, List [ 3, 4, 5 ] ] -deep.toJS() // { a: 1, b: 2, c: [ 3, 4, 5 ] } -JSON.stringify(deep) // '{"a":1,"b":2,"c":[3,4,5]}' -``` - -### Embraces ES6 - -`Immutable` takes advantage of features added to JavaScript in [ES6][], -the latest standard version of ECMAScript (JavaScript), including [Iterators][], -[Arrow Functions][], [Classes][], and [Modules][]. It's also inspired by the -[Map][] and [Set][] collections added to ES6. The library is "transpiled" to ES3 -in order to support all modern browsers. - -All examples are presented in ES6. To run in all browsers, they need to be -translated to ES3. - -```js -// ES6 -foo.map(x => x * x); -// ES3 -foo.map(function (x) { return x * x; }); -``` - -[Iterators]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol -[Arrow Functions]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions -[Classes]: http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes -[Modules]: http://www.2ality.com/2014/09/es6-modules-final.html - - -Nested Structures ------------------ - -The collections in `immutable` are intended to be nested, allowing for deep -trees of data, similar to JSON. - -```javascript -var nested = Immutable.fromJS({a:{b:{c:[3,4,5]}}}); -// Map { a: Map { b: Map { c: List [ 3, 4, 5 ] } } } -``` - -A few power-tools allow for reading and operating on nested data. The -most useful are `mergeDeep`, `getIn`, `setIn`, and `updateIn`, found on `List`, -`Map` and `OrderedMap`. - -```javascript -var nested2 = nested.mergeDeep({a:{b:{d:6}}}); -// Map { a: Map { b: Map { c: List [ 3, 4, 5 ], d: 6 } } } -``` - -```javascript -nested2.getIn(['a', 'b', 'd']); // 6 - -var nested3 = nested2.updateIn(['a', 'b', 'd'], value => value + 1); -// Map { a: Map { b: Map { c: List [ 3, 4, 5 ], d: 7 } } } - -var nested4 = nested3.updateIn(['a', 'b', 'c'], list => list.push(6)); -// Map { a: Map { b: Map { c: List [ 3, 4, 5, 6 ], d: 7 } } } -``` - - -Lazy Seq --------- - -`Seq` describes a lazy operation, allowing them to efficiently chain -use of all the Iterable methods (such as `map` and `filter`). - -**Seq is immutable** — Once a Seq is created, it cannot be -changed, appended to, rearranged or otherwise modified. Instead, any mutative -method called on a Seq will return a new Seq. - -**Seq is lazy** — Seq does as little work as necessary to respond to any -method call. - -For example, the following does not perform any work, because the resulting -Seq is never used: - - var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) - .filter(x => x % 2).map(x => x * x); - -Once the Seq is used, it performs only the work necessary. In this -example, no intermediate arrays are ever created, filter is called three times, -and map is only called twice: - - console.log(oddSquares.get(1)); // 9 - -Any collection can be converted to a lazy Seq with `.toSeq()`. - - var seq = Immutable.Map({a:1, b:1, c:1}).toSeq(); - -Seq allow for the efficient chaining of sequence operations, especially when -converting to a different concrete type (such as to a JS object): - - seq.flip().map(key => key.toUpperCase()).flip().toObject(); - // Map { A: 1, B: 1, C: 1 } - -As well as expressing logic that would otherwise seem memory-limited: - - Immutable.Range(1, Infinity) - .skip(1000) - .map(n => -n) - .filter(n => n % 2 === 0) - .take(2) - .reduce((r, n) => r * n, 1); - // 1006008 - -Note: An iterable is always iterated in the same order, however that order may -not always be well defined, as is the case for the `Map`. - - -Equality treats Collections as Data ------------------------------------ - -`Immutable` provides equality which treats immutable data structures as pure -data, performing a deep equality check if necessary. - -```javascript -var map1 = Immutable.Map({a:1, b:1, c:1}); -var map2 = Immutable.Map({a:1, b:1, c:1}); -assert(map1 !== map2); // two different instances -assert(Immutable.is(map1, map2)); // have equivalent values -assert(map1.equals(map2)); // alternatively use the equals method -``` - -`Immutable.is()` uses the same measure of equality as [Object.is][] -including if both are immutable and all keys and values are equal -using the same measure of equality. - -[Object.is]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - - -Batching Mutations ------------------- - -> If a tree falls in the woods, does it make a sound? -> -> If a pure function mutates some local data in order to produce an immutable -> return value, is that ok? -> -> — Rich Hickey, Clojure - -Applying a mutation to create a new immutable object results in some overhead, -which can add up to a minor performance penalty. If you need to apply a series -of mutations locally before returning, `Immutable` gives you the ability to -create a temporary mutable (transient) copy of a collection and apply a batch of -mutations in a performant manner by using `withMutations`. In fact, this is -exactly how `Immutable` applies complex mutations itself. - -As an example, building `list2` results in the creation of 1, not 3, new -immutable Lists. - -```javascript -var list1 = Immutable.List.of(1,2,3); -var list2 = list1.withMutations(function (list) { - list.push(4).push(5).push(6); -}); -assert(list1.size === 3); -assert(list2.size === 6); -``` - -Note: `immutable` also provides `asMutable` and `asImmutable`, but only -encourages their use when `withMutations` will not suffice. Use caution to not -return a mutable copy, which could result in undesired behavior. - -*Important!*: Only a select few methods can be used in `withMutations` including -`set`, `push` and `pop`. These methods can be applied directly against a -persistent data-structure where other methods like `map`, `filter`, `sort`, -and `splice` will always return new immutable data-structures and never mutate -a mutable collection. - - -Documentation -------------- - -[Read the docs](http://facebook.github.io/immutable-js/docs/) and eat your vegetables. - -Docs are automatically generated from [Immutable.d.ts](https://github.com/facebook/immutable-js/blob/master/type-definitions/Immutable.d.ts). -Please contribute! - -Also, don't miss the [Wiki](https://github.com/facebook/immutable-js/wiki) which -contains articles on specific topics. Can't find something? Open an [issue](https://github.com/facebook/immutable-js/issues). - - -Testing -------- - -If you are using the [Chai Assertion Library](http://chaijs.com/), [Chai Immutable](https://github.com/astorije/chai-immutable) provides a set of assertions to use against `Immutable` collections. - - -Contribution ------------- - -Use [Github issues](https://github.com/facebook/immutable-js/issues) for requests. - -We actively welcome pull requests, learn how to [contribute](./CONTRIBUTING.md). - - -Changelog ---------- - -Changes are tracked as [Github releases](https://github.com/facebook/immutable-js/releases). - - -Thanks ------- - -[Phil Bagwell](https://www.youtube.com/watch?v=K2NYwP90bNs), for his inspiration -and research in persistent data structures. - -[Hugh Jackson](https://github.com/hughfdjackson/), for providing the npm package -name. If you're looking for his unsupported package, see [this repository](https://github.com/hughfdjackson/immutable). - - -License -------- - -Immutable.js is [MIT-licensed](https://github.com/facebook/immutable-js/blob/master/LICENSE). diff --git a/packages/client/node_modules/immutable/contrib/cursor/README.md b/packages/client/node_modules/immutable/contrib/cursor/README.md deleted file mode 100644 index 3021432..0000000 --- a/packages/client/node_modules/immutable/contrib/cursor/README.md +++ /dev/null @@ -1,33 +0,0 @@ -Cursors -------- - -Cursors allow you to hold a reference to a path in a nested immutable data -structure, allowing you to pass smaller sections of a larger nested -collection to portions of your application while maintaining a central point -aware of changes to the entire data structure: an `onChange` function which is -called whenever a cursor or sub-cursor calls `update`. - -This is particularly useful when used in conjuction with component-based UI -libraries like [React](http://facebook.github.io/react/) or to simulate -"state" throughout an application while maintaining a single flow of logic. - - -```javascript -var Immutable = require('immutable'); -var Cursor = require('immutable/contrib/cursor'); - -var data = Immutable.fromJS({ a: { b: { c: 1 } } }); -var cursor = Cursor.from(data, ['a', 'b'], newData => { - data = newData; -}); - -// ... elsewhere ... - -cursor.get('c'); // 1 -cursor = cursor.update('c', x => x + 1); -cursor.get('c'); // 2 - -// ... back to data ... - -data.getIn(['a', 'b', 'c']); // 2 -``` diff --git a/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip b/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip deleted file mode 100644 index 32c33bb..0000000 --- a/packages/client/node_modules/immutable/contrib/cursor/__tests__/Cursor.ts.skip +++ /dev/null @@ -1,400 +0,0 @@ -/** - * 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. - */ - -/// -/// -/// - -jest.autoMockOff(); - -import Immutable = require('immutable'); -import Cursor = require('immutable/contrib/cursor'); - -describe('Cursor', () => { - - beforeEach(function () { - this.addMatchers({ - toValueEqual: function (expected) { - var actual = this.actual; - if (!Immutable.is(expected, this.actual)) { - this.message = 'Expected\n' + this.actual + '\nto equal\n' + expected; - return false; - } - return true; - } - }); - }); - - var json = { a: { b: { c: 1 } } }; - - it('gets from its path', () => { - var data = Immutable.fromJS(json); - var cursor = Cursor.from(data); - - expect(cursor.deref()).toBe(data); - - var deepCursor = cursor.cursor(['a', 'b']); - expect(deepCursor.deref().toJS()).toEqual(json.a.b); - expect(deepCursor.deref()).toBe(data.getIn(['a', 'b'])); - expect(deepCursor.get('c')).toBe(1); - - var leafCursor = deepCursor.cursor('c'); - expect(leafCursor.deref()).toBe(1); - - var missCursor = leafCursor.cursor('d'); - expect(missCursor.deref()).toBe(undefined); - }); - - it('gets return new cursors', () => { - var data = Immutable.fromJS(json); - var cursor = Cursor.from(data); - var deepCursor = cursor.getIn(['a', 'b']); - expect(deepCursor.deref()).toBe(data.getIn(['a', 'b'])); - }); - - it('gets return new cursors using List', () => { - var data = Immutable.fromJS(json); - var cursor = Cursor.from(data); - var deepCursor = cursor.getIn(Immutable.fromJS(['a', 'b'])); - expect(deepCursor.deref()).toBe(data.getIn(Immutable.fromJS(['a', 'b']))); - }); - - it('cursor return new cursors of correct type', () => { - var data = Immutable.fromJS({ a: [1, 2, 3] }); - var cursor = Cursor.from(data); - var deepCursor = cursor.cursor('a'); - expect(deepCursor.findIndex).toBeDefined(); - }); - - it('can be treated as a value', () => { - var data = Immutable.fromJS(json); - var cursor = Cursor.from(data, ['a', 'b']); - expect(cursor.toJS()).toEqual(json.a.b); - expect(cursor).toValueEqual(data.getIn(['a', 'b'])); - expect(cursor.size).toBe(1); - expect(cursor.get('c')).toBe(1); - }); - - it('can be value compared to a primitive', () => { - var data = Immutable.Map({ a: 'A' }); - var aCursor = Cursor.from(data, 'a'); - expect(aCursor.size).toBe(undefined); - expect(aCursor.deref()).toBe('A'); - expect(Immutable.is(aCursor, 'A')).toBe(true); - }); - - it('updates at its path', () => { - var onChange = jest.genMockFunction(); - - var data = Immutable.fromJS(json); - var aCursor = Cursor.from(data, 'a', onChange); - - var deepCursor = aCursor.cursor(['b', 'c']); - expect(deepCursor.deref()).toBe(1); - - // cursor edits return new cursors: - var newDeepCursor = deepCursor.update(x => x + 1); - expect(newDeepCursor.deref()).toBe(2); - var call1 = onChange.mock.calls[0]; - expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); - expect(call1[1]).toBe(data); - expect(call1[2]).toEqual(['a', 'b', 'c']); - - var newestDeepCursor = newDeepCursor.update(x => x + 1); - expect(newestDeepCursor.deref()).toBe(3); - var call2 = onChange.mock.calls[1]; - expect(call2[0]).toValueEqual(Immutable.fromJS({a:{b:{c:3}}})); - expect(call2[1]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); - expect(call2[2]).toEqual(['a', 'b', 'c']); - - // meanwhile, data is still immutable: - expect(data.toJS()).toEqual(json); - - // as is the original cursor. - expect(deepCursor.deref()).toBe(1); - var otherNewDeepCursor = deepCursor.update(x => x + 10); - expect(otherNewDeepCursor.deref()).toBe(11); - var call3 = onChange.mock.calls[2]; - expect(call3[0]).toValueEqual(Immutable.fromJS({a:{b:{c:11}}})); - expect(call3[1]).toBe(data); - expect(call3[2]).toEqual(['a', 'b', 'c']); - - // and update has been called exactly thrice. - expect(onChange.mock.calls.length).toBe(3); - }); - - it('updates with the return value of onChange', () => { - var onChange = jest.genMockFunction(); - - var data = Immutable.fromJS(json); - var deepCursor = Cursor.from(data, ['a', 'b', 'c'], onChange); - - onChange.mockReturnValueOnce(undefined); - // onChange returning undefined has no effect - var newCursor = deepCursor.update(x => x + 1); - expect(newCursor.deref()).toBe(2); - var call1 = onChange.mock.calls[0]; - expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); - expect(call1[1]).toBe(data); - expect(call1[2]).toEqual(['a', 'b', 'c']); - - onChange.mockReturnValueOnce(Immutable.fromJS({a:{b:{c:11}}})); - // onChange returning something else has an effect - newCursor = newCursor.update(x => 999); - expect(newCursor.deref()).toBe(11); - var call2 = onChange.mock.calls[1]; - expect(call2[0]).toValueEqual(Immutable.fromJS({a:{b:{c:999}}})); - expect(call2[1]).toValueEqual(Immutable.fromJS({a:{b:{c:2}}})); - expect(call2[2]).toEqual(['a', 'b', 'c']); - - // and update has been called exactly twice - expect(onChange.mock.calls.length).toBe(2); - }); - - it('has map API for update shorthand', () => { - var onChange = jest.genMockFunction(); - - var data = Immutable.fromJS(json); - var aCursor = Cursor.from(data, 'a', onChange); - var bCursor = aCursor.cursor('b'); - var cCursor = bCursor.cursor('c'); - - expect(bCursor.set('c', 10).deref()).toValueEqual( - Immutable.fromJS({ c: 10 }) - ); - - var call1 = onChange.mock.calls[0]; - expect(call1[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); - expect(call1[1]).toBe(data); - expect(call1[2]).toEqual(['a', 'b', 'c']); - }); - - it('creates maps as necessary', () => { - var data = Immutable.Map(); - var cursor = Cursor.from(data, ['a', 'b', 'c']); - expect(cursor.deref()).toBe(undefined); - cursor = cursor.set('d', 3); - expect(cursor.deref()).toValueEqual(Immutable.Map({d: 3})); - }); - - it('can set undefined', () => { - var data = Immutable.Map(); - var cursor = Cursor.from(data, ['a', 'b', 'c']); - expect(cursor.deref()).toBe(undefined); - cursor = cursor.set('d', undefined); - expect(cursor.toJS()).toEqual({d: undefined}); - }); - - it('has the sequence API', () => { - var data = Immutable.Map({a: 1, b: 2, c: 3}); - var cursor = Cursor.from(data); - expect(cursor.map((x: number) => x * x)).toValueEqual(Immutable.Map({a: 1, b: 4, c: 9})); - }); - - it('can push values on a List', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); - var cursor = Cursor.from(data, ['a', 'b'], onChange); - - expect(cursor.push(3,4)).toValueEqual(Immutable.List([0, 1, 2, 3, 4])); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [0, 1, 2, 3, 4]}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b']); - }); - - it('can pop values of a List', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); - var cursor = Cursor.from(data, ['a', 'b'], onChange); - - expect(cursor.pop()).toValueEqual(Immutable.List([0, 1])); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [0, 1]}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b']); - }); - - it('can unshift values on a List', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); - var cursor = Cursor.from(data, ['a', 'b'], onChange); - - expect(cursor.unshift(-2, -1)).toValueEqual(Immutable.List([-2, -1, 0, 1, 2])); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [-2, -1, 0, 1, 2]}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b']); - }); - - it('can shift values of a List', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a: {b: [0, 1, 2]}}); - var cursor = Cursor.from(data, ['a', 'b'], onChange); - - expect(cursor.shift()).toValueEqual(Immutable.List([1, 2])); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a: {b: [1, 2]}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b']); - }); - - - it('returns wrapped values for sequence API', () => { - var data = Immutable.fromJS({a: {v: 1}, b: {v: 2}, c: {v: 3}}); - var onChange = jest.genMockFunction(); - var cursor = Cursor.from(data, onChange); - - var found = cursor.find(map => map.get('v') === 2); - expect(typeof found.deref).toBe('function'); // is a cursor! - found = found.set('v', 20); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a: {v: 1}, b: {v: 20}, c: {v: 3}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['b', 'v']); - }); - - it('returns wrapped values for iteration API', () => { - var jsData = [{val: 0}, {val: 1}, {val: 2}]; - var data = Immutable.fromJS(jsData); - var cursor = Cursor.from(data); - cursor.forEach(function (c, i) { - expect(typeof c.deref).toBe('function'); // is a cursor! - expect(c.get('val')).toBe(i); - }); - }); - - it('can map over values to get subcursors', () => { - var data = Immutable.fromJS({a: {v: 1}, b: {v: 2}, c: {v: 3}}); - var cursor = Cursor.from(data); - - var mapped = cursor.map(val => { - expect(typeof val.deref).toBe('function'); // mapped values are cursors. - return val; - }).toMap(); - // Mapped is not a cursor, but it is a sequence of cursors. - expect(typeof (mapped).deref).not.toBe('function'); - expect(typeof (mapped.get('a')).deref).toBe('function'); - - // Same for indexed cursors - var data2 = Immutable.fromJS({x: [{v: 1}, {v: 2}, {v: 3}]}); - var cursor2 = Cursor.from(data2); - - var mapped2 = cursor2.get('x').map(val => { - expect(typeof val.deref).toBe('function'); // mapped values are cursors. - return val; - }).toList(); - // Mapped is not a cursor, but it is a sequence of cursors. - expect(typeof mapped2.deref).not.toBe('function'); - expect(typeof mapped2.get(0).deref).toBe('function'); - }); - - it('can have mutations apply with a single callback', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({'a': 1}); - - var c1 = Cursor.from(data, onChange); - var c2 = c1.withMutations(m => m.set('b', 2).set('c', 3).set('d', 4)); - - expect(c1.deref().toObject()).toEqual({'a': 1}); - expect(c2.deref().toObject()).toEqual({'a': 1, 'b': 2, 'c': 3, 'd': 4}); - expect(onChange.mock.calls.length).toBe(1); - }); - - it('can use withMutations on an unfulfilled cursor', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({}); - - var c1 = Cursor.from(data, ['a', 'b', 'c'], onChange); - var c2 = c1.withMutations(m => m.set('x', 1).set('y', 2).set('z', 3)); - - expect(c1.deref()).toEqual(undefined); - expect(c2.deref()).toValueEqual(Immutable.fromJS( - { x: 1, y: 2, z: 3 } - )); - expect(onChange.mock.calls.length).toBe(1); - }); - - it('maintains indexed sequences', () => { - var data = Immutable.fromJS([]); - var c = Cursor.from(data); - expect(c.toJS()).toEqual([]); - }); - - it('properly acts as an iterable', () => { - var data = Immutable.fromJS({key: {val: 1}}); - var c = Cursor.from(data).values(); - var c1 = c.next().value.get('val'); - expect(c1).toBe(1); - }); - - it('can update deeply', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a:{b:{c:1}}}); - var c = Cursor.from(data, ['a'], onChange); - var c1 = c.updateIn(['b', 'c'], x => x * 10); - expect(c1.getIn(['b', 'c'])).toBe(10); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b', 'c']); - }); - - it('can set deeply', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a:{b:{c:1}}}); - var c = Cursor.from(data, ['a'], onChange); - var c1 = c.setIn(['b', 'c'], 10); - expect(c1.getIn(['b', 'c'])).toBe(10); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a:{b:{c:10}}})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a', 'b', 'c']); - }); - - it('can get Record value as a property', () => { - var User = Immutable.Record({ name: 'John' }); - var users = Immutable.List.of(new User()); - var data = Immutable.Map({'users': users}); - var cursor = Cursor.from(data, ['users']); - expect(cursor.first().name).toBe('John'); - }); - - it('can set value of a cursor directly', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a:1}); - var c = Cursor.from(data, ['a'], onChange); - var c1 = c.set(2); - expect(c1.deref()).toBe(2); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a:2})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a']); - }); - - it('can set value of a cursor to undefined directly', () => { - var onChange = jest.genMockFunction(); - var data = Immutable.fromJS({a:1}); - var c = Cursor.from(data, ['a'], onChange); - var c1 = c.set(undefined); - expect(c1.deref()).toBe(undefined); - - var call = onChange.mock.calls[0]; - expect(call[0]).toValueEqual(Immutable.fromJS({a:undefined})); - expect(call[1]).toBe(data); - expect(call[2]).toEqual(['a']); - }); - -}); diff --git a/packages/client/node_modules/immutable/contrib/cursor/index.d.ts b/packages/client/node_modules/immutable/contrib/cursor/index.d.ts deleted file mode 100644 index 1d38db4..0000000 --- a/packages/client/node_modules/immutable/contrib/cursor/index.d.ts +++ /dev/null @@ -1,290 +0,0 @@ -/** - * 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. - */ - -/** - * Cursors - * ------- - * - * Cursors allow you to hold a reference to a path in a nested immutable data - * structure, allowing you to pass smaller sections of a larger nested - * collection to portions of your application while maintaining a central point - * aware of changes to the entire data structure. - * - * This is particularly useful when used in conjuction with component-based UI - * libraries like [React](http://facebook.github.io/react/) or to simulate - * "state" throughout an application while maintaining a single flow of logic. - * - * Cursors provide a simple API for getting the value at that path - * (the equivalent of `this.getIn(keyPath)`), updating the value at that path - * (the equivalent of `this.updateIn(keyPath)`), and getting a sub-cursor - * starting from that path. - * - * When updated, a new root collection is created and provided to the `onChange` - * function provided to the first call to `Cursor(map, onChange)`. - * - * When this cursor's (or any of its sub-cursors') `update` method is called, - * the resulting new data structure will be provided to the `onChange` - * function. Use this callback to keep track of the most current value or - * update the rest of your application. - */ - -/// - -declare module __Cursor { - - export function from( - collection: Immutable.Collection, - onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any - ): Cursor; - export function from( - collection: Immutable.Collection, - keyPath: Array, - onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any - ): Cursor; - export function from( - collection: Immutable.Collection, - key: any, - onChange?: (newValue: any, oldValue?: any, keyPath?: Array) => any - ): Cursor; - - - export interface Cursor extends Immutable.Seq { - - /** - * Returns a sub-cursor following the key-path starting from this cursor. - */ - cursor(subKeyPath: Array): Cursor; - cursor(subKey: any): Cursor; - - /** - * Returns the value at the cursor, if the cursor path does not yet exist, - * returns `notSetValue`. - */ - deref(notSetValue?: any): any; - - /** - * Returns the value at the `key` in the cursor, or `notSetValue` if it - * does not exist. - * - * If the key would return a collection, a new Cursor is returned. - */ - get(key: any, notSetValue?: any): any; - - /** - * Returns the value at the `keyPath` in the cursor, or `notSetValue` if it - * does not exist. - * - * If the keyPath would return a collection, a new Cursor is returned. - */ - getIn(keyPath: Array, notSetValue?: any): any; - getIn(keyPath: Immutable.Iterable, notSetValue?: any): any; - - /** - * Sets `value` at `key` in the cursor, returning a new cursor to the same - * point in the new data. - * - * If only one parameter is provided, it is set directly as the cursor's value. - */ - set(key: any, value: any): Cursor; - set(value: any): Cursor; - - /** - * Deletes `key` from the cursor, returning a new cursor to the same - * point in the new data. - * - * Note: `delete` cannot be safely used in IE8 - * @alias remove - */ - delete(key: any): Cursor; - remove(key: any): Cursor; - - /** - * Clears the value at this cursor, returning a new cursor to the same - * point in the new data. - */ - clear(): Cursor; - - /** - * Updates the value in the data this cursor points to, triggering the - * callback for the root cursor and returning a new cursor pointing to the - * new data. - */ - update(updater: (value: any) => any): Cursor; - update(key: any, updater: (value: any) => any): Cursor; - update(key: any, notSetValue: any, updater: (value: any) => any): Cursor; - - /** - * @see `Map#merge` - */ - merge(...iterables: Immutable.Iterable[]): Cursor; - merge(...iterables: {[key: string]: any}[]): Cursor; - - /** - * @see `Map#mergeWith` - */ - mergeWith( - merger: (previous?: any, next?: any) => any, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeWith( - merger: (previous?: any, next?: any) => any, - ...iterables: {[key: string]: any}[] - ): Cursor; - - /** - * @see `Map#mergeDeep` - */ - mergeDeep(...iterables: Immutable.Iterable[]): Cursor; - mergeDeep(...iterables: {[key: string]: any}[]): Cursor; - - /** - * @see `Map#mergeDeepWith` - */ - mergeDeepWith( - merger: (previous?: any, next?: any) => any, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeDeepWith( - merger: (previous?: any, next?: any) => any, - ...iterables: {[key: string]: any}[] - ): Cursor; - - // Deep persistent changes - - /** - * Returns a new Cursor having set `value` at this `keyPath`. If any keys in - * `keyPath` do not exist, a new immutable Map will be created at that key. - */ - setIn(keyPath: Array, value: any): Cursor; - setIn(keyPath: Immutable.Iterable, value: any): Cursor; - - /** - * Returns a new Cursor with provided `values` appended - */ - push(...values: Array): Cursor; - - /** - * Returns a new Cursor with a size ones less than this Cursor, - * excluding the last index in this Cursor. - */ - pop(): Cursor; - - /** - * Returns a new Cursor with the provided `values` prepended, - * shifting other values ahead to higher indices. - */ - unshift(...values: Array): Cursor; - - /** - * Returns a new Cursor with a size ones less than this Cursor, excluding - * the first index in this Cursor, shifting all other values to a lower index. - */ - shift(): Cursor; - - /** - * Returns a new Cursor having removed the value at this `keyPath`. - * - * @alias removeIn - */ - deleteIn(keyPath: Array): Cursor; - deleteIn(keyPath: Immutable.Iterable): Cursor; - removeIn(keyPath: Array): Cursor; - removeIn(keyPath: Immutable.Iterable): Cursor; - - /** - * Returns a new Cursor having applied the `updater` to the value found at - * the keyPath. - * - * If any keys in `keyPath` do not exist, new Immutable `Map`s will - * be created at those keys. If the `keyPath` does not already contain a - * value, the `updater` function will be called with `notSetValue`, if - * provided, otherwise `undefined`. - * - * If the `updater` function returns the same value it was called with, then - * no change will occur. This is still true if `notSetValue` is provided. - */ - updateIn( - keyPath: Array, - updater: (value: any) => any - ): Cursor; - updateIn( - keyPath: Array, - notSetValue: any, - updater: (value: any) => any - ): Cursor; - updateIn( - keyPath: Immutable.Iterable, - updater: (value: any) => any - ): Cursor; - updateIn( - keyPath: Immutable.Iterable, - notSetValue: any, - updater: (value: any) => any - ): Cursor; - - /** - * A combination of `updateIn` and `merge`, returning a new Cursor, but - * performing the merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); - * x.mergeIn(['a', 'b', 'c'], y); - * - */ - mergeIn( - keyPath: Immutable.Iterable, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeIn( - keyPath: Array, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeIn( - keyPath: Array, - ...iterables: {[key: string]: any}[] - ): Cursor; - - /** - * A combination of `updateIn` and `mergeDeep`, returning a new Cursor, but - * performing the deep merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); - * x.mergeDeepIn(['a', 'b', 'c'], y); - * - */ - mergeDeepIn( - keyPath: Immutable.Iterable, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeDeepIn( - keyPath: Array, - ...iterables: Immutable.Iterable[] - ): Cursor; - mergeDeepIn( - keyPath: Array, - ...iterables: {[key: string]: any}[] - ): Cursor; - - // Transient changes - - /** - * Every time you call one of the above functions, a new immutable value is - * created and the callback is triggered. If you need to apply a series of - * mutations to a Cursor without triggering the callback repeatedly, - * `withMutations()` creates a temporary mutable copy of the value which - * can apply mutations in a highly performant manner. Afterwards the - * callback is triggered with the final value. - */ - withMutations(mutator: (mutable: any) => any): Cursor; - } - -} - -declare module 'immutable/contrib/cursor' { - export = __Cursor -} \ No newline at end of file diff --git a/packages/client/node_modules/immutable/contrib/cursor/index.js b/packages/client/node_modules/immutable/contrib/cursor/index.js deleted file mode 100644 index 7420f69..0000000 --- a/packages/client/node_modules/immutable/contrib/cursor/index.js +++ /dev/null @@ -1,341 +0,0 @@ -/** - * 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. - */ - -/** - * Cursor is expected to be required in a node or other CommonJS context: - * - * var Cursor = require('immutable/contrib/cursor'); - * - * If you wish to use it in the browser, please check out Browserify or WebPack! - */ - -var Immutable = require('../../'); -var Iterable = Immutable.Iterable; -var Iterator = Iterable.Iterator; -var Seq = Immutable.Seq; -var Map = Immutable.Map; -var Record = Immutable.Record; - - -function cursorFrom(rootData, keyPath, onChange) { - if (arguments.length === 1) { - keyPath = []; - } else if (typeof keyPath === 'function') { - onChange = keyPath; - keyPath = []; - } else { - keyPath = valToKeyPath(keyPath); - } - return makeCursor(rootData, keyPath, onChange); -} - - -var KeyedCursorPrototype = Object.create(Seq.Keyed.prototype); -var IndexedCursorPrototype = Object.create(Seq.Indexed.prototype); - -function KeyedCursor(rootData, keyPath, onChange, size) { - this.size = size; - this._rootData = rootData; - this._keyPath = keyPath; - this._onChange = onChange; -} -KeyedCursorPrototype.constructor = KeyedCursor; - -function IndexedCursor(rootData, keyPath, onChange, size) { - this.size = size; - this._rootData = rootData; - this._keyPath = keyPath; - this._onChange = onChange; -} -IndexedCursorPrototype.constructor = IndexedCursor; - -KeyedCursorPrototype.toString = function() { - return this.__toString('Cursor {', '}'); -} -IndexedCursorPrototype.toString = function() { - return this.__toString('Cursor [', ']'); -} - -KeyedCursorPrototype.deref = -KeyedCursorPrototype.valueOf = -IndexedCursorPrototype.deref = -IndexedCursorPrototype.valueOf = function(notSetValue) { - return this._rootData.getIn(this._keyPath, notSetValue); -} - -KeyedCursorPrototype.get = -IndexedCursorPrototype.get = function(key, notSetValue) { - return this.getIn([key], notSetValue); -} - -KeyedCursorPrototype.getIn = -IndexedCursorPrototype.getIn = function(keyPath, notSetValue) { - keyPath = listToKeyPath(keyPath); - if (keyPath.length === 0) { - return this; - } - var value = this._rootData.getIn(newKeyPath(this._keyPath, keyPath), NOT_SET); - return value === NOT_SET ? notSetValue : wrappedValue(this, keyPath, value); -} - -IndexedCursorPrototype.set = -KeyedCursorPrototype.set = function(key, value) { - if(arguments.length === 1) { - return updateCursor(this, function() { return key; }, []); - } else { - return updateCursor(this, function (m) { return m.set(key, value); }, [key]); - } -} - -IndexedCursorPrototype.push = function(/* values */) { - var args = arguments; - return updateCursor(this, function (m) { - return m.push.apply(m, args); - }); -} - -IndexedCursorPrototype.pop = function() { - return updateCursor(this, function (m) { - return m.pop(); - }); -} - -IndexedCursorPrototype.unshift = function(/* values */) { - var args = arguments; - return updateCursor(this, function (m) { - return m.unshift.apply(m, args); - }); -} - -IndexedCursorPrototype.shift = function() { - return updateCursor(this, function (m) { - return m.shift(); - }); -} - -IndexedCursorPrototype.setIn = -KeyedCursorPrototype.setIn = Map.prototype.setIn; - -KeyedCursorPrototype.remove = -KeyedCursorPrototype['delete'] = -IndexedCursorPrototype.remove = -IndexedCursorPrototype['delete'] = function(key) { - return updateCursor(this, function (m) { return m.remove(key); }, [key]); -} - -IndexedCursorPrototype.removeIn = -IndexedCursorPrototype.deleteIn = -KeyedCursorPrototype.removeIn = -KeyedCursorPrototype.deleteIn = Map.prototype.deleteIn; - -KeyedCursorPrototype.clear = -IndexedCursorPrototype.clear = function() { - return updateCursor(this, function (m) { return m.clear(); }); -} - -IndexedCursorPrototype.update = -KeyedCursorPrototype.update = function(keyOrFn, notSetValue, updater) { - return arguments.length === 1 ? - updateCursor(this, keyOrFn) : - this.updateIn([keyOrFn], notSetValue, updater); -} - -IndexedCursorPrototype.updateIn = -KeyedCursorPrototype.updateIn = function(keyPath, notSetValue, updater) { - return updateCursor(this, function (m) { - return m.updateIn(keyPath, notSetValue, updater); - }, keyPath); -} - -IndexedCursorPrototype.merge = -KeyedCursorPrototype.merge = function(/*...iters*/) { - var args = arguments; - return updateCursor(this, function (m) { - return m.merge.apply(m, args); - }); -} - -IndexedCursorPrototype.mergeWith = -KeyedCursorPrototype.mergeWith = function(merger/*, ...iters*/) { - var args = arguments; - return updateCursor(this, function (m) { - return m.mergeWith.apply(m, args); - }); -} - -IndexedCursorPrototype.mergeIn = -KeyedCursorPrototype.mergeIn = Map.prototype.mergeIn; - -IndexedCursorPrototype.mergeDeep = -KeyedCursorPrototype.mergeDeep = function(/*...iters*/) { - var args = arguments; - return updateCursor(this, function (m) { - return m.mergeDeep.apply(m, args); - }); -} - -IndexedCursorPrototype.mergeDeepWith = -KeyedCursorPrototype.mergeDeepWith = function(merger/*, ...iters*/) { - var args = arguments; - return updateCursor(this, function (m) { - return m.mergeDeepWith.apply(m, args); - }); -} - -IndexedCursorPrototype.mergeDeepIn = -KeyedCursorPrototype.mergeDeepIn = Map.prototype.mergeDeepIn; - -KeyedCursorPrototype.withMutations = -IndexedCursorPrototype.withMutations = function(fn) { - return updateCursor(this, function (m) { - return (m || Map()).withMutations(fn); - }); -} - -KeyedCursorPrototype.cursor = -IndexedCursorPrototype.cursor = function(subKeyPath) { - subKeyPath = valToKeyPath(subKeyPath); - return subKeyPath.length === 0 ? this : subCursor(this, subKeyPath); -} - -/** - * All iterables need to implement __iterate - */ -KeyedCursorPrototype.__iterate = -IndexedCursorPrototype.__iterate = function(fn, reverse) { - var cursor = this; - var deref = cursor.deref(); - return deref && deref.__iterate ? deref.__iterate( - function (v, k) { return fn(wrappedValue(cursor, [k], v), k, cursor); }, - reverse - ) : 0; -} - -/** - * All iterables need to implement __iterator - */ -KeyedCursorPrototype.__iterator = -IndexedCursorPrototype.__iterator = function(type, reverse) { - var deref = this.deref(); - var cursor = this; - var iterator = deref && deref.__iterator && - deref.__iterator(Iterator.ENTRIES, reverse); - return new Iterator(function () { - if (!iterator) { - return { value: undefined, done: true }; - } - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var k = entry[0]; - var v = wrappedValue(cursor, [k], entry[1]); - return { - value: type === Iterator.KEYS ? k : type === Iterator.VALUES ? v : [k, v], - done: false - }; - }); -} - -KeyedCursor.prototype = KeyedCursorPrototype; -IndexedCursor.prototype = IndexedCursorPrototype; - - -var NOT_SET = {}; // Sentinel value - -function makeCursor(rootData, keyPath, onChange, value) { - if (arguments.length < 4) { - value = rootData.getIn(keyPath); - } - var size = value && value.size; - var CursorClass = Iterable.isIndexed(value) ? IndexedCursor : KeyedCursor; - var cursor = new CursorClass(rootData, keyPath, onChange, size); - - if (value instanceof Record) { - defineRecordProperties(cursor, value); - } - - return cursor; -} - -function defineRecordProperties(cursor, value) { - try { - value._keys.forEach(setProp.bind(undefined, cursor)); - } catch (error) { - // Object.defineProperty failed. Probably IE8. - } -} - -function setProp(prototype, name) { - Object.defineProperty(prototype, name, { - get: function() { - return this.get(name); - }, - set: function(value) { - if (!this.__ownerID) { - throw new Error('Cannot set on an immutable record.'); - } - } - }); -} - -function wrappedValue(cursor, keyPath, value) { - return Iterable.isIterable(value) ? subCursor(cursor, keyPath, value) : value; -} - -function subCursor(cursor, keyPath, value) { - if (arguments.length < 3) { - return makeCursor( // call without value - cursor._rootData, - newKeyPath(cursor._keyPath, keyPath), - cursor._onChange - ); - } - return makeCursor( - cursor._rootData, - newKeyPath(cursor._keyPath, keyPath), - cursor._onChange, - value - ); -} - -function updateCursor(cursor, changeFn, changeKeyPath) { - var deepChange = arguments.length > 2; - var newRootData = cursor._rootData.updateIn( - cursor._keyPath, - deepChange ? Map() : undefined, - changeFn - ); - var keyPath = cursor._keyPath || []; - var result = cursor._onChange && cursor._onChange.call( - undefined, - newRootData, - cursor._rootData, - deepChange ? newKeyPath(keyPath, changeKeyPath) : keyPath - ); - if (result !== undefined) { - newRootData = result; - } - return makeCursor(newRootData, cursor._keyPath, cursor._onChange); -} - -function newKeyPath(head, tail) { - return head.concat(listToKeyPath(tail)); -} - -function listToKeyPath(list) { - return Array.isArray(list) ? list : Immutable.Iterable(list).toArray(); -} - -function valToKeyPath(val) { - return Array.isArray(val) ? val : - Iterable.isIterable(val) ? val.toArray() : - [val]; -} - -exports.from = cursorFrom; diff --git a/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts b/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts deleted file mode 100644 index dc38000..0000000 --- a/packages/client/node_modules/immutable/dist/immutable-nonambient.d.ts +++ /dev/null @@ -1,2533 +0,0 @@ -/** - * 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. - */ - -/** - * Immutable data encourages pure functions (data-in, data-out) and lends itself - * to much simpler application development and enabling techniques from - * functional programming such as lazy evaluation. - * - * While designed to bring these powerful functional concepts to JavaScript, it - * presents an Object-Oriented API familiar to Javascript engineers and closely - * mirroring that of Array, Map, and Set. It is easy and efficient to convert to - * and from plain Javascript types. - - * Note: all examples are presented in [ES6][]. To run in all browsers, they - * need to be translated to ES3. For example: - * - * // ES6 - * foo.map(x => x * x); - * // ES3 - * foo.map(function (x) { return x * x; }); - * - * [ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla - */ - - - - /** - * Deeply converts plain JS objects and arrays to Immutable Maps and Lists. - * - * If a `reviver` is optionally provided, it will be called with every - * collection as a Seq (beginning with the most nested collections - * and proceeding to the top-level collection itself), along with the key - * refering to each collection and the parent JS object provided as `this`. - * For the top level, object, the key will be `""`. This `reviver` is expected - * to return a new Immutable Iterable, allowing for custom conversions from - * deep JS objects. - * - * This example converts JSON to List and OrderedMap: - * - * Immutable.fromJS({a: {b: [10, 20, 30]}, c: 40}, function (key, value) { - * var isIndexed = Immutable.Iterable.isIndexed(value); - * return isIndexed ? value.toList() : value.toOrderedMap(); - * }); - * - * // true, "b", {b: [10, 20, 30]} - * // false, "a", {a: {b: [10, 20, 30]}, c: 40} - * // false, "", {"": {a: {b: [10, 20, 30]}, c: 40}} - * - * If `reviver` is not provided, the default behavior will convert Arrays into - * Lists and Objects into Maps. - * - * `reviver` acts similarly to the [same parameter in `JSON.parse`][1]. - * - * `Immutable.fromJS` is conservative in its conversion. It will only convert - * arrays which pass `Array.isArray` to Lists, and only raw objects (no custom - * prototype) to Map. - * - * Keep in mind, when using JS objects to construct Immutable Maps, that - * JavaScript Object properties are always strings, even if written in a - * quote-less shorthand, while Immutable Maps accept keys of any type. - * - * ```js - * var obj = { 1: "one" }; - * Object.keys(obj); // [ "1" ] - * obj["1"]; // "one" - * obj[1]; // "one" - * - * var map = Map(obj); - * map.get("1"); // "one" - * map.get(1); // undefined - * ``` - * - * Property access for JavaScript Objects first converts the key to a string, - * but since Immutable Map keys can be of any type the argument to `get()` is - * not altered. - * - * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter - * "Using the reviver parameter" - */ - export function fromJS( - json: any, - reviver?: (k: any, v: Iterable) => any - ): any; - - - /** - * Value equality check with semantics similar to `Object.is`, but treats - * Immutable `Iterable`s as values, equal if the second `Iterable` includes - * equivalent values. - * - * It's used throughout Immutable when checking for equality, including `Map` - * key equality and `Set` membership. - * - * var map1 = Immutable.Map({a:1, b:1, c:1}); - * var map2 = Immutable.Map({a:1, b:1, c:1}); - * assert(map1 !== map2); - * assert(Object.is(map1, map2) === false); - * assert(Immutable.is(map1, map2) === true); - * - * Note: Unlike `Object.is`, `Immutable.is` assumes `0` and `-0` are the same - * value, matching the behavior of ES6 Map key equality. - */ - export function is(first: any, second: any): boolean; - - - /** - * Lists are ordered indexed dense collections, much like a JavaScript - * Array. - * - * Lists are immutable and fully persistent with O(log32 N) gets and sets, - * and O(1) push and pop. - * - * Lists implement Deque, with efficient addition and removal from both the - * end (`push`, `pop`) and beginning (`unshift`, `shift`). - * - * Unlike a JavaScript Array, there is no distinction between an - * "unset" index and an index set to `undefined`. `List#forEach` visits all - * indices from 0 to size, regardless of whether they were explicitly defined. - */ - export module List { - - /** - * True if the provided value is a List - */ - function isList(maybeList: any): boolean; - - /** - * Creates a new List containing `values`. - */ - function of(...values: T[]): List; - } - - /** - * Create a new immutable List containing the values of the provided - * iterable-like. - */ - export function List(): List; - export function List(iter: Iterable.Indexed): List; - export function List(iter: Iterable.Set): List; - export function List(iter: Iterable.Keyed): List; - export function List(array: Array): List; - export function List(iterator: Iterator): List; - export function List(iterable: /*Iterable*/Object): List; - - - export interface List extends Collection.Indexed { - - // Persistent changes - - /** - * Returns a new List which includes `value` at `index`. If `index` already - * exists in this List, it will be replaced. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.set(-1, "value")` sets the last item in the List. - * - * If `index` larger than `size`, the returned List's `size` will be large - * enough to include the `index`. - */ - set(index: number, value: T): List; - - /** - * Returns a new List which excludes this `index` and with a size 1 less - * than this List. Values at indices above `index` are shifted down by 1 to - * fill the position. - * - * This is synonymous with `list.splice(index, 1)`. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.delete(-1)` deletes the last item in the List. - * - * Note: `delete` cannot be safely used in IE8 - * @alias remove - */ - delete(index: number): List; - remove(index: number): List; - - /** - * Returns a new List with `value` at `index` with a size 1 more than this - * List. Values at indices above `index` are shifted over by 1. - * - * This is synonymous with `list.splice(index, 0, value) - */ - insert(index: number, value: T): List; - - /** - * Returns a new List with 0 size and no values. - */ - clear(): List; - - /** - * Returns a new List with the provided `values` appended, starting at this - * List's `size`. - */ - push(...values: T[]): List; - - /** - * Returns a new List with a size ones less than this List, excluding - * the last index in this List. - * - * Note: this differs from `Array#pop` because it returns a new - * List rather than the removed value. Use `last()` to get the last value - * in this List. - */ - pop(): List; - - /** - * Returns a new List with the provided `values` prepended, shifting other - * values ahead to higher indices. - */ - unshift(...values: T[]): List; - - /** - * Returns a new List with a size ones less than this List, excluding - * the first index in this List, shifting all other values to a lower index. - * - * Note: this differs from `Array#shift` because it returns a new - * List rather than the removed value. Use `first()` to get the first - * value in this List. - */ - shift(): List; - - /** - * Returns a new List with an updated value at `index` with the return - * value of calling `updater` with the existing value, or `notSetValue` if - * `index` was not set. If called with a single argument, `updater` is - * called with the List itself. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.update(-1)` updates the last item in the List. - * - * @see `Map#update` - */ - update(updater: (value: List) => List): List; - update(index: number, updater: (value: T) => T): List; - update(index: number, notSetValue: T, updater: (value: T) => T): List; - - /** - * @see `Map#merge` - */ - merge(...iterables: Iterable.Indexed[]): List; - merge(...iterables: Array[]): List; - - /** - * @see `Map#mergeWith` - */ - mergeWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Iterable.Indexed[] - ): List; - mergeWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Array[] - ): List; - - /** - * @see `Map#mergeDeep` - */ - mergeDeep(...iterables: Iterable.Indexed[]): List; - mergeDeep(...iterables: Array[]): List; - - /** - * @see `Map#mergeDeepWith` - */ - mergeDeepWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Array[] - ): List; - - /** - * Returns a new List with size `size`. If `size` is less than this - * List's size, the new List will exclude values at the higher indices. - * If `size` is greater than this List's size, the new List will have - * undefined values for the newly available indices. - * - * When building a new List and the final size is known up front, `setSize` - * used in conjunction with `withMutations` may result in the more - * performant construction. - */ - setSize(size: number): List; - - - // Deep persistent changes - - /** - * Returns a new List having set `value` at this `keyPath`. If any keys in - * `keyPath` do not exist, a new immutable Map will be created at that key. - * - * Index numbers are used as keys to determine the path to follow in - * the List. - */ - setIn(keyPath: Array, value: any): List; - setIn(keyPath: Iterable, value: any): List; - - /** - * Returns a new List having removed the value at this `keyPath`. If any - * keys in `keyPath` do not exist, no change will occur. - * - * @alias removeIn - */ - deleteIn(keyPath: Array): List; - deleteIn(keyPath: Iterable): List; - removeIn(keyPath: Array): List; - removeIn(keyPath: Iterable): List; - - /** - * @see `Map#updateIn` - */ - updateIn( - keyPath: Array, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Array, - notSetValue: any, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Iterable, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Iterable, - notSetValue: any, - updater: (value: any) => any - ): List; - - /** - * @see `Map#mergeIn` - */ - mergeIn( - keyPath: Iterable, - ...iterables: Iterable.Indexed[] - ): List; - mergeIn( - keyPath: Array, - ...iterables: Iterable.Indexed[] - ): List; - mergeIn( - keyPath: Array, - ...iterables: Array[] - ): List; - - /** - * @see `Map#mergeDeepIn` - */ - mergeDeepIn( - keyPath: Iterable, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepIn( - keyPath: Array, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepIn( - keyPath: Array, - ...iterables: Array[] - ): List; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set`, `push`, `pop`, `shift`, `unshift` and - * `merge` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: List) => any): List; - - /** - * @see `Map#asMutable` - */ - asMutable(): List; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): List; - } - - - /** - * Immutable Map is an unordered Iterable.Keyed of (key, value) pairs with - * `O(log32 N)` gets and `O(log32 N)` persistent sets. - * - * Iteration order of a Map is undefined, however is stable. Multiple - * iterations of the same Map will iterate in the same order. - * - * Map's keys can be of any type, and use `Immutable.is` to determine key - * equality. This allows the use of any value (including NaN) as a key. - * - * Because `Immutable.is` returns equality based on value semantics, and - * Immutable collections are treated as values, any Immutable collection may - * be used as a key. - * - * Map().set(List.of(1), 'listofone').get(List.of(1)); - * // 'listofone' - * - * Any JavaScript object may be used as a key, however strict identity is used - * to evaluate key equality. Two similar looking objects will represent two - * different keys. - * - * Implemented by a hash-array mapped trie. - */ - export module Map { - - /** - * True if the provided value is a Map - */ - function isMap(maybeMap: any): boolean; - - /** - * Creates a new Map from alternating keys and values - */ - function of(...keyValues: any[]): Map; - } - - /** - * Creates a new Immutable Map. - * - * Created with the same key value pairs as the provided Iterable.Keyed or - * JavaScript Object or expects an Iterable of [K, V] tuple entries. - * - * var newMap = Map({key: "value"}); - * var newMap = Map([["key", "value"]]); - * - * Keep in mind, when using JS objects to construct Immutable Maps, that - * JavaScript Object properties are always strings, even if written in a - * quote-less shorthand, while Immutable Maps accept keys of any type. - * - * ```js - * var obj = { 1: "one" }; - * Object.keys(obj); // [ "1" ] - * obj["1"]; // "one" - * obj[1]; // "one" - * - * var map = Map(obj); - * map.get("1"); // "one" - * map.get(1); // undefined - * ``` - * - * Property access for JavaScript Objects first converts the key to a string, - * but since Immutable Map keys can be of any type the argument to `get()` is - * not altered. - */ - export function Map(): Map; - export function Map(iter: Iterable.Keyed): Map; - export function Map(iter: Iterable>): Map; - export function Map(array: Array>): Map; - export function Map(obj: {[key: string]: V}): Map; - export function Map(iterator: Iterator>): Map; - export function Map(iterable: /*Iterable<[K,V]>*/Object): Map; - - export interface Map extends Collection.Keyed { - - // Persistent changes - - /** - * Returns a new Map also containing the new key, value pair. If an equivalent - * key already exists in this Map, it will be replaced. - */ - set(key: K, value: V): Map; - - /** - * Returns a new Map which excludes this `key`. - * - * Note: `delete` cannot be safely used in IE8, but is provided to mirror - * the ES6 collection API. - * @alias remove - */ - delete(key: K): Map; - remove(key: K): Map; - - /** - * Returns a new Map containing no keys or values. - */ - clear(): Map; - - /** - * Returns a new Map having updated the value at this `key` with the return - * value of calling `updater` with the existing value, or `notSetValue` if - * the key was not set. If called with only a single argument, `updater` is - * called with the Map itself. - * - * Equivalent to: `map.set(key, updater(map.get(key, notSetValue)))`. - */ - update(updater: (value: Map) => Map): Map; - update(key: K, updater: (value: V) => V): Map; - update(key: K, notSetValue: V, updater: (value: V) => V): Map; - - /** - * Returns a new Map resulting from merging the provided Iterables - * (or JS objects) into this Map. In other words, this takes each entry of - * each iterable and sets it on this Map. - * - * If any of the values provided to `merge` are not Iterable (would return - * false for `Immutable.Iterable.isIterable`) then they are deeply converted - * via `Immutable.fromJS` before being merged. However, if the value is an - * Iterable but includes non-iterable JS objects or arrays, those nested - * values will be preserved. - * - * var x = Immutable.Map({a: 10, b: 20, c: 30}); - * var y = Immutable.Map({b: 40, a: 50, d: 60}); - * x.merge(y) // { a: 50, b: 40, c: 30, d: 60 } - * y.merge(x) // { b: 20, a: 10, d: 60, c: 30 } - * - */ - merge(...iterables: Iterable[]): Map; - merge(...iterables: {[key: string]: V}[]): Map; - - /** - * Like `merge()`, `mergeWith()` returns a new Map resulting from merging - * the provided Iterables (or JS objects) into this Map, but uses the - * `merger` function for dealing with conflicts. - * - * var x = Immutable.Map({a: 10, b: 20, c: 30}); - * var y = Immutable.Map({b: 40, a: 50, d: 60}); - * x.mergeWith((prev, next) => prev / next, y) // { a: 0.2, b: 0.5, c: 30, d: 60 } - * y.mergeWith((prev, next) => prev / next, x) // { b: 2, a: 5, d: 60, c: 30 } - * - */ - mergeWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: Iterable[] - ): Map; - mergeWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: {[key: string]: V}[] - ): Map; - - /** - * Like `merge()`, but when two Iterables conflict, it merges them as well, - * recursing deeply through the nested data. - * - * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); - * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); - * x.mergeDeep(y) // {a: { x: 2, y: 10 }, b: { x: 20, y: 5 }, c: { z: 3 } } - * - */ - mergeDeep(...iterables: Iterable[]): Map; - mergeDeep(...iterables: {[key: string]: V}[]): Map; - - /** - * Like `mergeDeep()`, but when two non-Iterables conflict, it uses the - * `merger` function to determine the resulting value. - * - * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); - * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); - * x.mergeDeepWith((prev, next) => prev / next, y) - * // {a: { x: 5, y: 10 }, b: { x: 20, y: 10 }, c: { z: 3 } } - * - */ - mergeDeepWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: Iterable[] - ): Map; - mergeDeepWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: {[key: string]: V}[] - ): Map; - - - // Deep persistent changes - - /** - * Returns a new Map having set `value` at this `keyPath`. If any keys in - * `keyPath` do not exist, a new immutable Map will be created at that key. - */ - setIn(keyPath: Array, value: any): Map; - setIn(KeyPath: Iterable, value: any): Map; - - /** - * Returns a new Map having removed the value at this `keyPath`. If any keys - * in `keyPath` do not exist, no change will occur. - * - * @alias removeIn - */ - deleteIn(keyPath: Array): Map; - deleteIn(keyPath: Iterable): Map; - removeIn(keyPath: Array): Map; - removeIn(keyPath: Iterable): Map; - - /** - * Returns a new Map having applied the `updater` to the entry found at the - * keyPath. - * - * If any keys in `keyPath` do not exist, new Immutable `Map`s will - * be created at those keys. If the `keyPath` does not already contain a - * value, the `updater` function will be called with `notSetValue`, if - * provided, otherwise `undefined`. - * - * var data = Immutable.fromJS({ a: { b: { c: 10 } } }); - * data = data.updateIn(['a', 'b', 'c'], val => val * 2); - * // { a: { b: { c: 20 } } } - * - * If the `updater` function returns the same value it was called with, then - * no change will occur. This is still true if `notSetValue` is provided. - * - * var data1 = Immutable.fromJS({ a: { b: { c: 10 } } }); - * data2 = data1.updateIn(['x', 'y', 'z'], 100, val => val); - * assert(data2 === data1); - * - */ - updateIn( - keyPath: Array, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Array, - notSetValue: any, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Iterable, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Iterable, - notSetValue: any, - updater: (value: any) => any - ): Map; - - /** - * A combination of `updateIn` and `merge`, returning a new Map, but - * performing the merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); - * x.mergeIn(['a', 'b', 'c'], y); - * - */ - mergeIn( - keyPath: Iterable, - ...iterables: Iterable[] - ): Map; - mergeIn( - keyPath: Array, - ...iterables: Iterable[] - ): Map; - mergeIn( - keyPath: Array, - ...iterables: {[key: string]: V}[] - ): Map; - - /** - * A combination of `updateIn` and `mergeDeep`, returning a new Map, but - * performing the deep merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); - * x.mergeDeepIn(['a', 'b', 'c'], y); - * - */ - mergeDeepIn( - keyPath: Iterable, - ...iterables: Iterable[] - ): Map; - mergeDeepIn( - keyPath: Array, - ...iterables: Iterable[] - ): Map; - mergeDeepIn( - keyPath: Array, - ...iterables: {[key: string]: V}[] - ): Map; - - - // Transient changes - - /** - * Every time you call one of the above functions, a new immutable Map is - * created. If a pure function calls a number of these to produce a final - * return value, then a penalty on performance and memory has been paid by - * creating all of the intermediate immutable Maps. - * - * If you need to apply a series of mutations to produce a new immutable - * Map, `withMutations()` creates a temporary mutable copy of the Map which - * can apply mutations in a highly performant manner. In fact, this is - * exactly how complex mutations like `merge` are done. - * - * As an example, this results in the creation of 2, not 4, new Maps: - * - * var map1 = Immutable.Map(); - * var map2 = map1.withMutations(map => { - * map.set('a', 1).set('b', 2).set('c', 3); - * }); - * assert(map1.size === 0); - * assert(map2.size === 3); - * - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set` and `merge` may be used mutatively. - * - */ - withMutations(mutator: (mutable: Map) => any): Map; - - /** - * Another way to avoid creation of intermediate Immutable maps is to create - * a mutable copy of this collection. Mutable copies *always* return `this`, - * and thus shouldn't be used for equality. Your function should never return - * a mutable copy of a collection, only use it internally to create a new - * collection. If possible, use `withMutations` as it provides an easier to - * use API. - * - * Note: if the collection is already mutable, `asMutable` returns itself. - * - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set` and `merge` may be used mutatively. - */ - asMutable(): Map; - - /** - * The yin to `asMutable`'s yang. Because it applies to mutable collections, - * this operation is *mutable* and returns itself. Once performed, the mutable - * copy has become immutable and can be safely returned from a function. - */ - asImmutable(): Map; - } - - - /** - * A type of Map that has the additional guarantee that the iteration order of - * entries will be the order in which they were set(). - * - * The iteration behavior of OrderedMap is the same as native ES6 Map and - * JavaScript Object. - * - * Note that `OrderedMap` are more expensive than non-ordered `Map` and may - * consume more memory. `OrderedMap#set` is amortized O(log32 N), but not - * stable. - */ - - export module OrderedMap { - - /** - * True if the provided value is an OrderedMap. - */ - function isOrderedMap(maybeOrderedMap: any): boolean; - } - - /** - * Creates a new Immutable OrderedMap. - * - * Created with the same key value pairs as the provided Iterable.Keyed or - * JavaScript Object or expects an Iterable of [K, V] tuple entries. - * - * The iteration order of key-value pairs provided to this constructor will - * be preserved in the OrderedMap. - * - * var newOrderedMap = OrderedMap({key: "value"}); - * var newOrderedMap = OrderedMap([["key", "value"]]); - * - */ - export function OrderedMap(): OrderedMap; - export function OrderedMap(iter: Iterable.Keyed): OrderedMap; - export function OrderedMap(iter: Iterable>): OrderedMap; - export function OrderedMap(array: Array>): OrderedMap; - export function OrderedMap(obj: {[key: string]: V}): OrderedMap; - export function OrderedMap(iterator: Iterator>): OrderedMap; - export function OrderedMap(iterable: /*Iterable<[K,V]>*/Object): OrderedMap; - - export interface OrderedMap extends Map {} - - - /** - * A Collection of unique values with `O(log32 N)` adds and has. - * - * When iterating a Set, the entries will be (value, value) pairs. Iteration - * order of a Set is undefined, however is stable. Multiple iterations of the - * same Set will iterate in the same order. - * - * Set values, like Map keys, may be of any type. Equality is determined using - * `Immutable.is`, enabling Sets to uniquely include other Immutable - * collections, custom value types, and NaN. - */ - export module Set { - - /** - * True if the provided value is a Set - */ - function isSet(maybeSet: any): boolean; - - /** - * Creates a new Set containing `values`. - */ - function of(...values: T[]): Set; - - /** - * `Set.fromKeys()` creates a new immutable Set containing the keys from - * this Iterable or JavaScript Object. - */ - function fromKeys(iter: Iterable): Set; - function fromKeys(obj: {[key: string]: any}): Set; - } - - /** - * Create a new immutable Set containing the values of the provided - * iterable-like. - */ - export function Set(): Set; - export function Set(iter: Iterable.Set): Set; - export function Set(iter: Iterable.Indexed): Set; - export function Set(iter: Iterable.Keyed): Set; - export function Set(array: Array): Set; - export function Set(iterator: Iterator): Set; - export function Set(iterable: /*Iterable*/Object): Set; - - export interface Set extends Collection.Set { - - // Persistent changes - - /** - * Returns a new Set which also includes this value. - */ - add(value: T): Set; - - /** - * Returns a new Set which excludes this value. - * - * Note: `delete` cannot be safely used in IE8 - * @alias remove - */ - delete(value: T): Set; - remove(value: T): Set; - - /** - * Returns a new Set containing no values. - */ - clear(): Set; - - /** - * Returns a Set including any value from `iterables` that does not already - * exist in this Set. - * @alias merge - */ - union(...iterables: Iterable[]): Set; - union(...iterables: Array[]): Set; - merge(...iterables: Iterable[]): Set; - merge(...iterables: Array[]): Set; - - - /** - * Returns a Set which has removed any values not also contained - * within `iterables`. - */ - intersect(...iterables: Iterable[]): Set; - intersect(...iterables: Array[]): Set; - - /** - * Returns a Set excluding any values contained within `iterables`. - */ - subtract(...iterables: Iterable[]): Set; - subtract(...iterables: Array[]): Set; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `add` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: Set) => any): Set; - - /** - * @see `Map#asMutable` - */ - asMutable(): Set; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): Set; - } - - - /** - * A type of Set that has the additional guarantee that the iteration order of - * values will be the order in which they were `add`ed. - * - * The iteration behavior of OrderedSet is the same as native ES6 Set. - * - * Note that `OrderedSet` are more expensive than non-ordered `Set` and may - * consume more memory. `OrderedSet#add` is amortized O(log32 N), but not - * stable. - */ - export module OrderedSet { - - /** - * True if the provided value is an OrderedSet. - */ - function isOrderedSet(maybeOrderedSet: any): boolean; - - /** - * Creates a new OrderedSet containing `values`. - */ - function of(...values: T[]): OrderedSet; - - /** - * `OrderedSet.fromKeys()` creates a new immutable OrderedSet containing - * the keys from this Iterable or JavaScript Object. - */ - function fromKeys(iter: Iterable): OrderedSet; - function fromKeys(obj: {[key: string]: any}): OrderedSet; - } - - /** - * Create a new immutable OrderedSet containing the values of the provided - * iterable-like. - */ - export function OrderedSet(): OrderedSet; - export function OrderedSet(iter: Iterable.Set): OrderedSet; - export function OrderedSet(iter: Iterable.Indexed): OrderedSet; - export function OrderedSet(iter: Iterable.Keyed): OrderedSet; - export function OrderedSet(array: Array): OrderedSet; - export function OrderedSet(iterator: Iterator): OrderedSet; - export function OrderedSet(iterable: /*Iterable*/Object): OrderedSet; - - export interface OrderedSet extends Set {} - - - /** - * Stacks are indexed collections which support very efficient O(1) addition - * and removal from the front using `unshift(v)` and `shift()`. - * - * For familiarity, Stack also provides `push(v)`, `pop()`, and `peek()`, but - * be aware that they also operate on the front of the list, unlike List or - * a JavaScript Array. - * - * Note: `reverse()` or any inherent reverse traversal (`reduceRight`, - * `lastIndexOf`, etc.) is not efficient with a Stack. - * - * Stack is implemented with a Single-Linked List. - */ - export module Stack { - - /** - * True if the provided value is a Stack - */ - function isStack(maybeStack: any): boolean; - - /** - * Creates a new Stack containing `values`. - */ - function of(...values: T[]): Stack; - } - - /** - * Create a new immutable Stack containing the values of the provided - * iterable-like. - * - * The iteration order of the provided iterable is preserved in the - * resulting `Stack`. - */ - export function Stack(): Stack; - export function Stack(iter: Iterable.Indexed): Stack; - export function Stack(iter: Iterable.Set): Stack; - export function Stack(iter: Iterable.Keyed): Stack; - export function Stack(array: Array): Stack; - export function Stack(iterator: Iterator): Stack; - export function Stack(iterable: /*Iterable*/Object): Stack; - - export interface Stack extends Collection.Indexed { - - // Reading values - - /** - * Alias for `Stack.first()`. - */ - peek(): T; - - - // Persistent changes - - /** - * Returns a new Stack with 0 size and no values. - */ - clear(): Stack; - - /** - * Returns a new Stack with the provided `values` prepended, shifting other - * values ahead to higher indices. - * - * This is very efficient for Stack. - */ - unshift(...values: T[]): Stack; - - /** - * Like `Stack#unshift`, but accepts a iterable rather than varargs. - */ - unshiftAll(iter: Iterable): Stack; - unshiftAll(iter: Array): Stack; - - /** - * Returns a new Stack with a size ones less than this Stack, excluding - * the first item in this Stack, shifting all other values to a lower index. - * - * Note: this differs from `Array#shift` because it returns a new - * Stack rather than the removed value. Use `first()` or `peek()` to get the - * first value in this Stack. - */ - shift(): Stack; - - /** - * Alias for `Stack#unshift` and is not equivalent to `List#push`. - */ - push(...values: T[]): Stack; - - /** - * Alias for `Stack#unshiftAll`. - */ - pushAll(iter: Iterable): Stack; - pushAll(iter: Array): Stack; - - /** - * Alias for `Stack#shift` and is not equivalent to `List#pop`. - */ - pop(): Stack; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set`, `push`, and `pop` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: Stack) => any): Stack; - - /** - * @see `Map#asMutable` - */ - asMutable(): Stack; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): Stack; - } - - - /** - * Returns a Seq.Indexed of numbers from `start` (inclusive) to `end` - * (exclusive), by `step`, where `start` defaults to 0, `step` to 1, and `end` to - * infinity. When `start` is equal to `end`, returns empty range. - * - * Range() // [0,1,2,3,...] - * Range(10) // [10,11,12,13,...] - * Range(10,15) // [10,11,12,13,14] - * Range(10,30,5) // [10,15,20,25] - * Range(30,10,5) // [30,25,20,15] - * Range(30,30,5) // [] - * - */ - export function Range(start?: number, end?: number, step?: number): Seq.Indexed; - - - /** - * Returns a Seq.Indexed of `value` repeated `times` times. When `times` is - * not defined, returns an infinite `Seq` of `value`. - * - * Repeat('foo') // ['foo','foo','foo',...] - * Repeat('bar',4) // ['bar','bar','bar','bar'] - * - */ - export function Repeat(value: T, times?: number): Seq.Indexed; - - - /** - * Creates a new Class which produces Record instances. A record is similar to - * a JS object, but enforce a specific set of allowed string keys, and have - * default values. - * - * var ABRecord = Record({a:1, b:2}) - * var myRecord = new ABRecord({b:3}) - * - * Records always have a value for the keys they define. `remove`ing a key - * from a record simply resets it to the default value for that key. - * - * myRecord.size // 2 - * myRecord.get('a') // 1 - * myRecord.get('b') // 3 - * myRecordWithoutB = myRecord.remove('b') - * myRecordWithoutB.get('b') // 2 - * myRecordWithoutB.size // 2 - * - * Values provided to the constructor not found in the Record type will - * be ignored. For example, in this case, ABRecord is provided a key "x" even - * though only "a" and "b" have been defined. The value for "x" will be - * ignored for this record. - * - * var myRecord = new ABRecord({b:3, x:10}) - * myRecord.get('x') // undefined - * - * Because Records have a known set of string keys, property get access works - * as expected, however property sets will throw an Error. - * - * Note: IE8 does not support property access. Only use `get()` when - * supporting IE8. - * - * myRecord.b // 3 - * myRecord.b = 5 // throws Error - * - * Record Classes can be extended as well, allowing for custom methods on your - * Record. This is not a common pattern in functional environments, but is in - * many JS programs. - * - * Note: TypeScript does not support this type of subclassing. - * - * class ABRecord extends Record({a:1,b:2}) { - * getAB() { - * return this.a + this.b; - * } - * } - * - * var myRecord = new ABRecord({b: 3}) - * myRecord.getAB() // 4 - * - */ - export module Record { - export interface Class { - new (): Map; - new (values: {[key: string]: any}): Map; - new (values: Iterable): Map; // deprecated - - (): Map; - (values: {[key: string]: any}): Map; - (values: Iterable): Map; // deprecated - } - } - - export function Record( - defaultValues: {[key: string]: any}, name?: string - ): Record.Class; - - - /** - * Represents a sequence of values, but may not be backed by a concrete data - * structure. - * - * **Seq is immutable** — Once a Seq is created, it cannot be - * changed, appended to, rearranged or otherwise modified. Instead, any - * mutative method called on a `Seq` will return a new `Seq`. - * - * **Seq is lazy** — Seq does as little work as necessary to respond to any - * method call. Values are often created during iteration, including implicit - * iteration when reducing or converting to a concrete data structure such as - * a `List` or JavaScript `Array`. - * - * For example, the following performs no work, because the resulting - * Seq's values are never iterated: - * - * var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) - * .filter(x => x % 2).map(x => x * x); - * - * Once the Seq is used, it performs only the work necessary. In this - * example, no intermediate data structures are ever created, filter is only - * called three times, and map is only called once: - * - * console.log(oddSquares.get(1)); // 9 - * - * Seq allows for the efficient chaining of operations, - * allowing for the expression of logic that can otherwise be very tedious: - * - * Immutable.Seq({a:1, b:1, c:1}) - * .flip().map(key => key.toUpperCase()).flip().toObject(); - * // Map { A: 1, B: 1, C: 1 } - * - * As well as expressing logic that would otherwise be memory or time limited: - * - * Immutable.Range(1, Infinity) - * .skip(1000) - * .map(n => -n) - * .filter(n => n % 2 === 0) - * .take(2) - * .reduce((r, n) => r * n, 1); - * // 1006008 - * - * Seq is often used to provide a rich collection API to JavaScript Object. - * - * Immutable.Seq({ x: 0, y: 1, z: 2 }).map(v => v * 2).toObject(); - * // { x: 0, y: 2, z: 4 } - */ - - export module Seq { - /** - * True if `maybeSeq` is a Seq, it is not backed by a concrete - * structure such as Map, List, or Set. - */ - function isSeq(maybeSeq: any): boolean; - - /** - * Returns a Seq of the values provided. Alias for `Seq.Indexed.of()`. - */ - function of(...values: T[]): Seq.Indexed; - - - /** - * `Seq` which represents key-value pairs. - */ - export module Keyed {} - - /** - * Always returns a Seq.Keyed, if input is not keyed, expects an - * iterable of [K, V] tuples. - */ - export function Keyed(): Seq.Keyed; - export function Keyed(seq: Iterable.Keyed): Seq.Keyed; - export function Keyed(seq: Iterable): Seq.Keyed; - export function Keyed(array: Array): Seq.Keyed; - export function Keyed(obj: {[key: string]: V}): Seq.Keyed; - export function Keyed(iterator: Iterator): Seq.Keyed; - export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Seq.Keyed; - - export interface Keyed extends Seq, Iterable.Keyed { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Keyed - } - - - /** - * `Seq` which represents an ordered indexed list of values. - */ - module Indexed { - - /** - * Provides an Seq.Indexed of the values provided. - */ - function of(...values: T[]): Seq.Indexed; - } - - /** - * Always returns Seq.Indexed, discarding associated keys and - * supplying incrementing indices. - */ - export function Indexed(): Seq.Indexed; - export function Indexed(seq: Iterable.Indexed): Seq.Indexed; - export function Indexed(seq: Iterable.Set): Seq.Indexed; - export function Indexed(seq: Iterable.Keyed): Seq.Indexed; - export function Indexed(array: Array): Seq.Indexed; - export function Indexed(iterator: Iterator): Seq.Indexed; - export function Indexed(iterable: /*Iterable*/Object): Seq.Indexed; - - export interface Indexed extends Seq, Iterable.Indexed { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Indexed - } - - - /** - * `Seq` which represents a set of values. - * - * Because `Seq` are often lazy, `Seq.Set` does not provide the same guarantee - * of value uniqueness as the concrete `Set`. - */ - export module Set { - - /** - * Returns a Seq.Set of the provided values - */ - function of(...values: T[]): Seq.Set; - } - - /** - * Always returns a Seq.Set, discarding associated indices or keys. - */ - export function Set(): Seq.Set; - export function Set(seq: Iterable.Set): Seq.Set; - export function Set(seq: Iterable.Indexed): Seq.Set; - export function Set(seq: Iterable.Keyed): Seq.Set; - export function Set(array: Array): Seq.Set; - export function Set(iterator: Iterator): Seq.Set; - export function Set(iterable: /*Iterable*/Object): Seq.Set; - - export interface Set extends Seq, Iterable.Set { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Set - } - - } - - /** - * Creates a Seq. - * - * Returns a particular kind of `Seq` based on the input. - * - * * If a `Seq`, that same `Seq`. - * * If an `Iterable`, a `Seq` of the same kind (Keyed, Indexed, or Set). - * * If an Array-like, an `Seq.Indexed`. - * * If an Object with an Iterator, an `Seq.Indexed`. - * * If an Iterator, an `Seq.Indexed`. - * * If an Object, a `Seq.Keyed`. - * - */ - export function Seq(): Seq; - export function Seq(seq: Seq): Seq; - export function Seq(iterable: Iterable): Seq; - export function Seq(array: Array): Seq.Indexed; - export function Seq(obj: {[key: string]: V}): Seq.Keyed; - export function Seq(iterator: Iterator): Seq.Indexed; - export function Seq(iterable: /*ES6Iterable*/Object): Seq.Indexed; - - export interface Seq extends Iterable { - - /** - * Some Seqs can describe their size lazily. When this is the case, - * size will be an integer. Otherwise it will be undefined. - * - * For example, Seqs returned from `map()` or `reverse()` - * preserve the size of the original `Seq` while `filter()` does not. - * - * Note: `Range`, `Repeat` and `Seq`s made from `Array`s and `Object`s will - * always have a size. - */ - size: number/*?*/; - - - // Force evaluation - - /** - * Because Sequences are lazy and designed to be chained together, they do - * not cache their results. For example, this map function is called a total - * of 6 times, as each `join` iterates the Seq of three values. - * - * var squares = Seq.of(1,2,3).map(x => x * x); - * squares.join() + squares.join(); - * - * If you know a `Seq` will be used multiple times, it may be more - * efficient to first cache it in memory. Here, the map function is called - * only 3 times. - * - * var squares = Seq.of(1,2,3).map(x => x * x).cacheResult(); - * squares.join() + squares.join(); - * - * Use this method judiciously, as it must fully evaluate a Seq which can be - * a burden on memory and possibly performance. - * - * Note: after calling `cacheResult`, a Seq will always have a `size`. - */ - cacheResult(): /*this*/Seq; - } - - /** - * The `Iterable` is a set of (key, value) entries which can be iterated, and - * is the base class for all collections in `immutable`, allowing them to - * make use of all the Iterable methods (such as `map` and `filter`). - * - * Note: An iterable is always iterated in the same order, however that order - * may not always be well defined, as is the case for the `Map` and `Set`. - */ - export module Iterable { - /** - * True if `maybeIterable` is an Iterable, or any of its subclasses. - */ - function isIterable(maybeIterable: any): boolean; - - /** - * True if `maybeKeyed` is an Iterable.Keyed, or any of its subclasses. - */ - function isKeyed(maybeKeyed: any): boolean; - - /** - * True if `maybeIndexed` is a Iterable.Indexed, or any of its subclasses. - */ - function isIndexed(maybeIndexed: any): boolean; - - /** - * True if `maybeAssociative` is either a keyed or indexed Iterable. - */ - function isAssociative(maybeAssociative: any): boolean; - - /** - * True if `maybeOrdered` is an Iterable where iteration order is well - * defined. True for Iterable.Indexed as well as OrderedMap and OrderedSet. - */ - function isOrdered(maybeOrdered: any): boolean; - - - /** - * Keyed Iterables have discrete keys tied to each value. - * - * When iterating `Iterable.Keyed`, each iteration will yield a `[K, V]` - * tuple, in other words, `Iterable#entries` is the default iterator for - * Keyed Iterables. - */ - export module Keyed {} - - /** - * Creates an Iterable.Keyed - * - * Similar to `Iterable()`, however it expects iterable-likes of [K, V] - * tuples if not constructed from a Iterable.Keyed or JS Object. - */ - export function Keyed(iter: Iterable.Keyed): Iterable.Keyed; - export function Keyed(iter: Iterable): Iterable.Keyed; - export function Keyed(array: Array): Iterable.Keyed; - export function Keyed(obj: {[key: string]: V}): Iterable.Keyed; - export function Keyed(iterator: Iterator): Iterable.Keyed; - export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Iterable.Keyed; - - export interface Keyed extends Iterable { - - /** - * Returns Seq.Keyed. - * @override - */ - toSeq(): Seq.Keyed; - - - // Sequence functions - - /** - * Returns a new Iterable.Keyed of the same type where the keys and values - * have been flipped. - * - * Seq({ a: 'z', b: 'y' }).flip() // { z: 'a', y: 'b' } - * - */ - flip(): /*this*/Iterable.Keyed; - - /** - * Returns a new Iterable.Keyed of the same type with keys passed through - * a `mapper` function. - * - * Seq({ a: 1, b: 2 }) - * .mapKeys(x => x.toUpperCase()) - * // Seq { A: 1, B: 2 } - * - */ - mapKeys( - mapper: (key?: K, value?: V, iter?: /*this*/Iterable.Keyed) => M, - context?: any - ): /*this*/Iterable.Keyed; - - /** - * Returns a new Iterable.Keyed of the same type with entries - * ([key, value] tuples) passed through a `mapper` function. - * - * Seq({ a: 1, b: 2 }) - * .mapEntries(([k, v]) => [k.toUpperCase(), v * 2]) - * // Seq { A: 2, B: 4 } - * - */ - mapEntries( - mapper: ( - entry?: /*(K, V)*/Array, - index?: number, - iter?: /*this*/Iterable.Keyed - ) => /*[KM, VM]*/Array, - context?: any - ): /*this*/Iterable.Keyed; - } - - - /** - * Indexed Iterables have incrementing numeric keys. They exhibit - * slightly different behavior than `Iterable.Keyed` for some methods in order - * to better mirror the behavior of JavaScript's `Array`, and add methods - * which do not make sense on non-indexed Iterables such as `indexOf`. - * - * Unlike JavaScript arrays, `Iterable.Indexed`s are always dense. "Unset" - * indices and `undefined` indices are indistinguishable, and all indices from - * 0 to `size` are visited when iterated. - * - * All Iterable.Indexed methods return re-indexed Iterables. In other words, - * indices always start at 0 and increment until size. If you wish to - * preserve indices, using them as keys, convert to a Iterable.Keyed by - * calling `toKeyedSeq`. - */ - export module Indexed {} - - /** - * Creates a new Iterable.Indexed. - */ - export function Indexed(iter: Iterable.Indexed): Iterable.Indexed; - export function Indexed(iter: Iterable.Set): Iterable.Indexed; - export function Indexed(iter: Iterable.Keyed): Iterable.Indexed; - export function Indexed(array: Array): Iterable.Indexed; - export function Indexed(iterator: Iterator): Iterable.Indexed; - export function Indexed(iterable: /*Iterable*/Object): Iterable.Indexed; - - export interface Indexed extends Iterable { - - // Reading values - - /** - * Returns the value associated with the provided index, or notSetValue if - * the index is beyond the bounds of the Iterable. - * - * `index` may be a negative number, which indexes back from the end of the - * Iterable. `s.get(-1)` gets the last item in the Iterable. - */ - get(index: number, notSetValue?: T): T; - - - // Conversion to Seq - - /** - * Returns Seq.Indexed. - * @override - */ - toSeq(): Seq.Indexed; - - /** - * If this is an iterable of [key, value] entry tuples, it will return a - * Seq.Keyed of those entries. - */ - fromEntrySeq(): Seq.Keyed; - - - // Combination - - /** - * Returns an Iterable of the same type with `separator` between each item - * in this Iterable. - */ - interpose(separator: T): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type with the provided `iterables` - * interleaved into this iterable. - * - * The resulting Iterable includes the first item from each, then the - * second from each, etc. - * - * I.Seq.of(1,2,3).interleave(I.Seq.of('A','B','C')) - * // Seq [ 1, 'A', 2, 'B', 3, 'C' ] - * - * The shortest Iterable stops interleave. - * - * I.Seq.of(1,2,3).interleave( - * I.Seq.of('A','B'), - * I.Seq.of('X','Y','Z') - * ) - * // Seq [ 1, 'A', 'X', 2, 'B', 'Y' ] - */ - interleave(...iterables: Array>): /*this*/Iterable.Indexed; - - /** - * Splice returns a new indexed Iterable by replacing a region of this - * Iterable with new values. If values are not provided, it only skips the - * region to be removed. - * - * `index` may be a negative number, which indexes back from the end of the - * Iterable. `s.splice(-2)` splices after the second to last item. - * - * Seq(['a','b','c','d']).splice(1, 2, 'q', 'r', 's') - * // Seq ['a', 'q', 'r', 's', 'd'] - * - */ - splice( - index: number, - removeNum: number, - ...values: /*Array | T>*/any[] - ): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type "zipped" with the provided - * iterables. - * - * Like `zipWith`, but using the default `zipper`: creating an `Array`. - * - * var a = Seq.of(1, 2, 3); - * var b = Seq.of(4, 5, 6); - * var c = a.zip(b); // Seq [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] - * - */ - zip(...iterables: Array>): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type "zipped" with the provided - * iterables by using a custom `zipper` function. - * - * var a = Seq.of(1, 2, 3); - * var b = Seq.of(4, 5, 6); - * var c = a.zipWith((a, b) => a + b, b); // Seq [ 5, 7, 9 ] - * - */ - zipWith( - zipper: (value: T, otherValue: U) => Z, - otherIterable: Iterable - ): Iterable.Indexed; - zipWith( - zipper: (value: T, otherValue: U, thirdValue: V) => Z, - otherIterable: Iterable, - thirdIterable: Iterable - ): Iterable.Indexed; - zipWith( - zipper: (...any: Array) => Z, - ...iterables: Array> - ): Iterable.Indexed; - - - // Search for value - - /** - * Returns the first index at which a given value can be found in the - * Iterable, or -1 if it is not present. - */ - indexOf(searchValue: T): number; - - /** - * Returns the last index at which a given value can be found in the - * Iterable, or -1 if it is not present. - */ - lastIndexOf(searchValue: T): number; - - /** - * Returns the first index in the Iterable where a value satisfies the - * provided predicate function. Otherwise -1 is returned. - */ - findIndex( - predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, - context?: any - ): number; - - /** - * Returns the last index in the Iterable where a value satisfies the - * provided predicate function. Otherwise -1 is returned. - */ - findLastIndex( - predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, - context?: any - ): number; - } - - - /** - * Set Iterables only represent values. They have no associated keys or - * indices. Duplicate values are possible in Seq.Sets, however the - * concrete `Set` does not allow duplicate values. - * - * Iterable methods on Iterable.Set such as `map` and `forEach` will provide - * the value as both the first and second arguments to the provided function. - * - * var seq = Seq.Set.of('A', 'B', 'C'); - * assert.equal(seq.every((v, k) => v === k), true); - * - */ - export module Set {} - - /** - * Similar to `Iterable()`, but always returns a Iterable.Set. - */ - export function Set(iter: Iterable.Set): Iterable.Set; - export function Set(iter: Iterable.Indexed): Iterable.Set; - export function Set(iter: Iterable.Keyed): Iterable.Set; - export function Set(array: Array): Iterable.Set; - export function Set(iterator: Iterator): Iterable.Set; - export function Set(iterable: /*Iterable*/Object): Iterable.Set; - - export interface Set extends Iterable { - - /** - * Returns Seq.Set. - * @override - */ - toSeq(): Seq.Set; - } - - } - - /** - * Creates an Iterable. - * - * The type of Iterable created is based on the input. - * - * * If an `Iterable`, that same `Iterable`. - * * If an Array-like, an `Iterable.Indexed`. - * * If an Object with an Iterator, an `Iterable.Indexed`. - * * If an Iterator, an `Iterable.Indexed`. - * * If an Object, an `Iterable.Keyed`. - * - * This methods forces the conversion of Objects and Strings to Iterables. - * If you want to ensure that a Iterable of one item is returned, use - * `Seq.of`. - */ - export function Iterable(iterable: Iterable): Iterable; - export function Iterable(array: Array): Iterable.Indexed; - export function Iterable(obj: {[key: string]: V}): Iterable.Keyed; - export function Iterable(iterator: Iterator): Iterable.Indexed; - export function Iterable(iterable: /*ES6Iterable*/Object): Iterable.Indexed; - export function Iterable(value: V): Iterable.Indexed; - - export interface Iterable { - - // Value equality - - /** - * True if this and the other Iterable have value equality, as defined - * by `Immutable.is()`. - * - * Note: This is equivalent to `Immutable.is(this, other)`, but provided to - * allow for chained expressions. - */ - equals(other: Iterable): boolean; - - /** - * Computes and returns the hashed identity for this Iterable. - * - * The `hashCode` of an Iterable is used to determine potential equality, - * and is used when adding this to a `Set` or as a key in a `Map`, enabling - * lookup via a different instance. - * - * var a = List.of(1, 2, 3); - * var b = List.of(1, 2, 3); - * assert(a !== b); // different instances - * var set = Set.of(a); - * assert(set.has(b) === true); - * - * If two values have the same `hashCode`, they are [not guaranteed - * to be equal][Hash Collision]. If two values have different `hashCode`s, - * they must not be equal. - * - * [Hash Collision]: http://en.wikipedia.org/wiki/Collision_(computer_science) - */ - hashCode(): number; - - - // Reading values - - /** - * Returns the value associated with the provided key, or notSetValue if - * the Iterable does not contain this key. - * - * Note: it is possible a key may be associated with an `undefined` value, - * so if `notSetValue` is not provided and this method returns `undefined`, - * that does not guarantee the key was not found. - */ - get(key: K, notSetValue?: V): V; - - /** - * True if a key exists within this `Iterable`, using `Immutable.is` to determine equality - */ - has(key: K): boolean; - - /** - * True if a value exists within this `Iterable`, using `Immutable.is` to determine equality - * @alias contains - */ - includes(value: V): boolean; - contains(value: V): boolean; - - /** - * The first value in the Iterable. - */ - first(): V; - - /** - * The last value in the Iterable. - */ - last(): V; - - - // Reading deep values - - /** - * Returns the value found by following a path of keys or indices through - * nested Iterables. - */ - getIn(searchKeyPath: Array, notSetValue?: any): any; - getIn(searchKeyPath: Iterable, notSetValue?: any): any; - - /** - * True if the result of following a path of keys or indices through nested - * Iterables results in a set value. - */ - hasIn(searchKeyPath: Array): boolean; - hasIn(searchKeyPath: Iterable): boolean; - - - // Conversion to JavaScript types - - /** - * Deeply converts this Iterable to equivalent JS. - * - * `Iterable.Indexeds`, and `Iterable.Sets` become Arrays, while - * `Iterable.Keyeds` become Objects. - * - * @alias toJSON - */ - toJS(): any; - - /** - * Shallowly converts this iterable to an Array, discarding keys. - */ - toArray(): Array; - - /** - * Shallowly converts this Iterable to an Object. - * - * Throws if keys are not strings. - */ - toObject(): { [key: string]: V }; - - - // Conversion to Collections - - /** - * Converts this Iterable to a Map, Throws if keys are not hashable. - * - * Note: This is equivalent to `Map(this.toKeyedSeq())`, but provided - * for convenience and to allow for chained expressions. - */ - toMap(): Map; - - /** - * Converts this Iterable to a Map, maintaining the order of iteration. - * - * Note: This is equivalent to `OrderedMap(this.toKeyedSeq())`, but - * provided for convenience and to allow for chained expressions. - */ - toOrderedMap(): OrderedMap; - - /** - * Converts this Iterable to a Set, discarding keys. Throws if values - * are not hashable. - * - * Note: This is equivalent to `Set(this)`, but provided to allow for - * chained expressions. - */ - toSet(): Set; - - /** - * Converts this Iterable to a Set, maintaining the order of iteration and - * discarding keys. - * - * Note: This is equivalent to `OrderedSet(this.valueSeq())`, but provided - * for convenience and to allow for chained expressions. - */ - toOrderedSet(): OrderedSet; - - /** - * Converts this Iterable to a List, discarding keys. - * - * Note: This is equivalent to `List(this)`, but provided to allow - * for chained expressions. - */ - toList(): List; - - /** - * Converts this Iterable to a Stack, discarding keys. Throws if values - * are not hashable. - * - * Note: This is equivalent to `Stack(this)`, but provided to allow for - * chained expressions. - */ - toStack(): Stack; - - - // Conversion to Seq - - /** - * Converts this Iterable to a Seq of the same kind (indexed, - * keyed, or set). - */ - toSeq(): Seq; - - /** - * Returns a Seq.Keyed from this Iterable where indices are treated as keys. - * - * This is useful if you want to operate on an - * Iterable.Indexed and preserve the [index, value] pairs. - * - * The returned Seq will have identical iteration order as - * this Iterable. - * - * Example: - * - * var indexedSeq = Immutable.Seq.of('A', 'B', 'C'); - * indexedSeq.filter(v => v === 'B').toString() // Seq [ 'B' ] - * var keyedSeq = indexedSeq.toKeyedSeq(); - * keyedSeq.filter(v => v === 'B').toString() // Seq { 1: 'B' } - * - */ - toKeyedSeq(): Seq.Keyed; - - /** - * Returns an Seq.Indexed of the values of this Iterable, discarding keys. - */ - toIndexedSeq(): Seq.Indexed; - - /** - * Returns a Seq.Set of the values of this Iterable, discarding keys. - */ - toSetSeq(): Seq.Set; - - - // Iterators - - /** - * An iterator of this `Iterable`'s keys. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `keySeq` instead, if this is what you want. - */ - keys(): Iterator; - - /** - * An iterator of this `Iterable`'s values. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `valueSeq` instead, if this is what you want. - */ - values(): Iterator; - - /** - * An iterator of this `Iterable`'s entries as `[key, value]` tuples. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `entrySeq` instead, if this is what you want. - */ - entries(): Iterator>; - - - // Iterables (Seq) - - /** - * Returns a new Seq.Indexed of the keys of this Iterable, - * discarding values. - */ - keySeq(): Seq.Indexed; - - /** - * Returns an Seq.Indexed of the values of this Iterable, discarding keys. - */ - valueSeq(): Seq.Indexed; - - /** - * Returns a new Seq.Indexed of [key, value] tuples. - */ - entrySeq(): Seq.Indexed>; - - - // Sequence algorithms - - /** - * Returns a new Iterable of the same type with values passed through a - * `mapper` function. - * - * Seq({ a: 1, b: 2 }).map(x => 10 * x) - * // Seq { a: 10, b: 20 } - * - */ - map( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => M, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type with only the entries for which - * the `predicate` function returns true. - * - * Seq({a:1,b:2,c:3,d:4}).filter(x => x % 2 === 0) - * // Seq { b: 2, d: 4 } - * - */ - filter( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type with only the entries for which - * the `predicate` function returns false. - * - * Seq({a:1,b:2,c:3,d:4}).filterNot(x => x % 2 === 0) - * // Seq { a: 1, c: 3 } - * - */ - filterNot( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type in reverse order. - */ - reverse(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the same entries, - * stably sorted by using a `comparator`. - * - * If a `comparator` is not provided, a default comparator uses `<` and `>`. - * - * `comparator(valueA, valueB)`: - * - * * Returns `0` if the elements should not be swapped. - * * Returns `-1` (or any negative number) if `valueA` comes before `valueB` - * * Returns `1` (or any positive number) if `valueA` comes after `valueB` - * * Is pure, i.e. it must always return the same value for the same pair - * of values. - * - * When sorting collections which have no defined order, their ordered - * equivalents will be returned. e.g. `map.sort()` returns OrderedMap. - */ - sort(comparator?: (valueA: V, valueB: V) => number): /*this*/Iterable; - - /** - * Like `sort`, but also accepts a `comparatorValueMapper` which allows for - * sorting by more sophisticated means: - * - * hitters.sortBy(hitter => hitter.avgHits); - * - */ - sortBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): /*this*/Iterable; - - /** - * Returns a `Iterable.Keyed` of `Iterable.Keyeds`, grouped by the return - * value of the `grouper` function. - * - * Note: This is always an eager operation. - */ - groupBy( - grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, - context?: any - ): /*Map*/Seq.Keyed>; - - - // Side effects - - /** - * The `sideEffect` is executed for every entry in the Iterable. - * - * Unlike `Array#forEach`, if any call of `sideEffect` returns - * `false`, the iteration will stop. Returns the number of entries iterated - * (including the last iteration which returned false). - */ - forEach( - sideEffect: (value?: V, key?: K, iter?: /*this*/Iterable) => any, - context?: any - ): number; - - - // Creating subsets - - /** - * Returns a new Iterable of the same type representing a portion of this - * Iterable from start up to but not including end. - * - * If begin is negative, it is offset from the end of the Iterable. e.g. - * `slice(-2)` returns a Iterable of the last two entries. If it is not - * provided the new Iterable will begin at the beginning of this Iterable. - * - * If end is negative, it is offset from the end of the Iterable. e.g. - * `slice(0, -1)` returns an Iterable of everything but the last entry. If - * it is not provided, the new Iterable will continue through the end of - * this Iterable. - * - * If the requested slice is equivalent to the current Iterable, then it - * will return itself. - */ - slice(begin?: number, end?: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type containing all entries except - * the first. - */ - rest(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type containing all entries except - * the last. - */ - butLast(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which excludes the first `amount` - * entries from this Iterable. - */ - skip(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which excludes the last `amount` - * entries from this Iterable. - */ - skipLast(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries starting - * from when `predicate` first returns false. - * - * Seq.of('dog','frog','cat','hat','god') - * .skipWhile(x => x.match(/g/)) - * // Seq [ 'cat', 'hat', 'god' ] - * - */ - skipWhile( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries starting - * from when `predicate` first returns true. - * - * Seq.of('dog','frog','cat','hat','god') - * .skipUntil(x => x.match(/hat/)) - * // Seq [ 'hat', 'god' ] - * - */ - skipUntil( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the first `amount` - * entries from this Iterable. - */ - take(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the last `amount` - * entries from this Iterable. - */ - takeLast(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries from this - * Iterable as long as the `predicate` returns true. - * - * Seq.of('dog','frog','cat','hat','god') - * .takeWhile(x => x.match(/o/)) - * // Seq [ 'dog', 'frog' ] - * - */ - takeWhile( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries from this - * Iterable as long as the `predicate` returns false. - * - * Seq.of('dog','frog','cat','hat','god').takeUntil(x => x.match(/at/)) - * // ['dog', 'frog'] - * - */ - takeUntil( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - - // Combination - - /** - * Returns a new Iterable of the same type with other values and - * iterable-like concatenated to this one. - * - * For Seqs, all entries will be present in - * the resulting iterable, even if they have the same key. - */ - concat(...valuesOrIterables: /*Array|V*/any[]): /*this*/Iterable; - - /** - * Flattens nested Iterables. - * - * Will deeply flatten the Iterable by default, returning an Iterable of the - * same type, but a `depth` can be provided in the form of a number or - * boolean (where true means to shallowly flatten one level). A depth of 0 - * (or shallow: false) will deeply flatten. - * - * Flattens only others Iterable, not Arrays or Objects. - * - * Note: `flatten(true)` operates on Iterable> and - * returns Iterable - */ - flatten(depth?: number): /*this*/Iterable; - flatten(shallow?: boolean): /*this*/Iterable; - - /** - * Flat-maps the Iterable, returning an Iterable of the same type. - * - * Similar to `iter.map(...).flatten(true)`. - */ - flatMap( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => Iterable, - context?: any - ): /*this*/Iterable; - flatMap( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => /*iterable-like*/any, - context?: any - ): /*this*/Iterable; - - - // Reducing a value - - /** - * Reduces the Iterable to a value by calling the `reducer` for every entry - * in the Iterable and passing along the reduced value. - * - * If `initialReduction` is not provided, or is null, the first item in the - * Iterable will be used. - * - * @see `Array#reduce`. - */ - reduce( - reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, - initialReduction?: R, - context?: any - ): R; - - /** - * Reduces the Iterable in reverse (from the right side). - * - * Note: Similar to this.reverse().reduce(), and provided for parity - * with `Array#reduceRight`. - */ - reduceRight( - reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, - initialReduction?: R, - context?: any - ): R; - - /** - * True if `predicate` returns true for all entries in the Iterable. - */ - every( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): boolean; - - /** - * True if `predicate` returns true for any entry in the Iterable. - */ - some( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): boolean; - - /** - * Joins values together as a string, inserting a separator between each. - * The default separator is `","`. - */ - join(separator?: string): string; - - /** - * Returns true if this Iterable includes no values. - * - * For some lazy `Seq`, `isEmpty` might need to iterate to determine - * emptiness. At most one iteration will occur. - */ - isEmpty(): boolean; - - /** - * Returns the size of this Iterable. - * - * Regardless of if this Iterable can describe its size lazily (some Seqs - * cannot), this method will always return the correct size. E.g. it - * evaluates a lazy `Seq` if necessary. - * - * If `predicate` is provided, then this returns the count of entries in the - * Iterable for which the `predicate` returns true. - */ - count(): number; - count( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): number; - - /** - * Returns a `Seq.Keyed` of counts, grouped by the return value of - * the `grouper` function. - * - * Note: This is not a lazy operation. - */ - countBy( - grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, - context?: any - ): Map; - - - // Search for value - - /** - * Returns the first value for which the `predicate` returns true. - */ - find( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): V; - - /** - * Returns the last value for which the `predicate` returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLast( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): V; - - /** - * Returns the first [key, value] entry for which the `predicate` returns true. - */ - findEntry( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): /*[K, V]*/Array; - - /** - * Returns the last [key, value] entry for which the `predicate` - * returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLastEntry( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): /*[K, V]*/Array; - - /** - * Returns the key for which the `predicate` returns true. - */ - findKey( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, - context?: any - ): K; - - /** - * Returns the last key for which the `predicate` returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLastKey( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, - context?: any - ): K; - - /** - * Returns the key associated with the search value, or undefined. - */ - keyOf(searchValue: V): K; - - /** - * Returns the last key associated with the search value, or undefined. - */ - lastKeyOf(searchValue: V): K; - - /** - * Returns the maximum value in this collection. If any values are - * comparatively equivalent, the first one found will be returned. - * - * The `comparator` is used in the same way as `Iterable#sort`. If it is not - * provided, the default comparator is `>`. - * - * When two values are considered equivalent, the first encountered will be - * returned. Otherwise, `max` will operate independent of the order of input - * as long as the comparator is commutative. The default comparator `>` is - * commutative *only* when types do not differ. - * - * If `comparator` returns 0 and either value is NaN, undefined, or null, - * that value will be returned. - */ - max(comparator?: (valueA: V, valueB: V) => number): V; - - /** - * Like `max`, but also accepts a `comparatorValueMapper` which allows for - * comparing by more sophisticated means: - * - * hitters.maxBy(hitter => hitter.avgHits); - * - */ - maxBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - - /** - * Returns the minimum value in this collection. If any values are - * comparatively equivalent, the first one found will be returned. - * - * The `comparator` is used in the same way as `Iterable#sort`. If it is not - * provided, the default comparator is `<`. - * - * When two values are considered equivalent, the first encountered will be - * returned. Otherwise, `min` will operate independent of the order of input - * as long as the comparator is commutative. The default comparator `<` is - * commutative *only* when types do not differ. - * - * If `comparator` returns 0 and either value is NaN, undefined, or null, - * that value will be returned. - */ - min(comparator?: (valueA: V, valueB: V) => number): V; - - /** - * Like `min`, but also accepts a `comparatorValueMapper` which allows for - * comparing by more sophisticated means: - * - * hitters.minBy(hitter => hitter.avgHits); - * - */ - minBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - - - // Comparison - - /** - * True if `iter` includes every value in this Iterable. - */ - isSubset(iter: Iterable): boolean; - isSubset(iter: Array): boolean; - - /** - * True if this Iterable includes every value in `iter`. - */ - isSuperset(iter: Iterable): boolean; - isSuperset(iter: Array): boolean; - - - /** - * Note: this is here as a convenience to work around an issue with - * TypeScript https://github.com/Microsoft/TypeScript/issues/285, but - * Iterable does not define `size`, instead `Seq` defines `size` as - * nullable number, and `Collection` defines `size` as always a number. - * - * @ignore - */ - size: number; - } - - - /** - * Collection is the abstract base class for concrete data structures. It - * cannot be constructed directly. - * - * Implementations should extend one of the subclasses, `Collection.Keyed`, - * `Collection.Indexed`, or `Collection.Set`. - */ - export module Collection { - - - /** - * `Collection` which represents key-value pairs. - */ - export module Keyed {} - - export interface Keyed extends Collection, Iterable.Keyed { - - /** - * Returns Seq.Keyed. - * @override - */ - toSeq(): Seq.Keyed; - } - - - /** - * `Collection` which represents ordered indexed values. - */ - export module Indexed {} - - export interface Indexed extends Collection, Iterable.Indexed { - - /** - * Returns Seq.Indexed. - * @override - */ - toSeq(): Seq.Indexed; - } - - - /** - * `Collection` which represents values, unassociated with keys or indices. - * - * `Collection.Set` implementations should guarantee value uniqueness. - */ - export module Set {} - - export interface Set extends Collection, Iterable.Set { - - /** - * Returns Seq.Set. - * @override - */ - toSeq(): Seq.Set; - } - - } - - export interface Collection extends Iterable { - - /** - * All collections maintain their current `size` as an integer. - */ - size: number; - } - - - /** - * ES6 Iterator. - * - * This is not part of the Immutable library, but a common interface used by - * many types in ES6 JavaScript. - * - * @ignore - */ - export interface Iterator { - next(): { value: T; done: boolean; } - } - - diff --git a/packages/client/node_modules/immutable/dist/immutable.d.ts b/packages/client/node_modules/immutable/dist/immutable.d.ts deleted file mode 100644 index 999cc3a..0000000 --- a/packages/client/node_modules/immutable/dist/immutable.d.ts +++ /dev/null @@ -1,2537 +0,0 @@ -/** - * 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. - */ - -/** - * Immutable data encourages pure functions (data-in, data-out) and lends itself - * to much simpler application development and enabling techniques from - * functional programming such as lazy evaluation. - * - * While designed to bring these powerful functional concepts to JavaScript, it - * presents an Object-Oriented API familiar to Javascript engineers and closely - * mirroring that of Array, Map, and Set. It is easy and efficient to convert to - * and from plain Javascript types. - - * Note: all examples are presented in [ES6][]. To run in all browsers, they - * need to be translated to ES3. For example: - * - * // ES6 - * foo.map(x => x * x); - * // ES3 - * foo.map(function (x) { return x * x; }); - * - * [ES6]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla - */ - -declare module Immutable { - - /** - * Deeply converts plain JS objects and arrays to Immutable Maps and Lists. - * - * If a `reviver` is optionally provided, it will be called with every - * collection as a Seq (beginning with the most nested collections - * and proceeding to the top-level collection itself), along with the key - * refering to each collection and the parent JS object provided as `this`. - * For the top level, object, the key will be `""`. This `reviver` is expected - * to return a new Immutable Iterable, allowing for custom conversions from - * deep JS objects. - * - * This example converts JSON to List and OrderedMap: - * - * Immutable.fromJS({a: {b: [10, 20, 30]}, c: 40}, function (key, value) { - * var isIndexed = Immutable.Iterable.isIndexed(value); - * return isIndexed ? value.toList() : value.toOrderedMap(); - * }); - * - * // true, "b", {b: [10, 20, 30]} - * // false, "a", {a: {b: [10, 20, 30]}, c: 40} - * // false, "", {"": {a: {b: [10, 20, 30]}, c: 40}} - * - * If `reviver` is not provided, the default behavior will convert Arrays into - * Lists and Objects into Maps. - * - * `reviver` acts similarly to the [same parameter in `JSON.parse`][1]. - * - * `Immutable.fromJS` is conservative in its conversion. It will only convert - * arrays which pass `Array.isArray` to Lists, and only raw objects (no custom - * prototype) to Map. - * - * Keep in mind, when using JS objects to construct Immutable Maps, that - * JavaScript Object properties are always strings, even if written in a - * quote-less shorthand, while Immutable Maps accept keys of any type. - * - * ```js - * var obj = { 1: "one" }; - * Object.keys(obj); // [ "1" ] - * obj["1"]; // "one" - * obj[1]; // "one" - * - * var map = Map(obj); - * map.get("1"); // "one" - * map.get(1); // undefined - * ``` - * - * Property access for JavaScript Objects first converts the key to a string, - * but since Immutable Map keys can be of any type the argument to `get()` is - * not altered. - * - * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter - * "Using the reviver parameter" - */ - export function fromJS( - json: any, - reviver?: (k: any, v: Iterable) => any - ): any; - - - /** - * Value equality check with semantics similar to `Object.is`, but treats - * Immutable `Iterable`s as values, equal if the second `Iterable` includes - * equivalent values. - * - * It's used throughout Immutable when checking for equality, including `Map` - * key equality and `Set` membership. - * - * var map1 = Immutable.Map({a:1, b:1, c:1}); - * var map2 = Immutable.Map({a:1, b:1, c:1}); - * assert(map1 !== map2); - * assert(Object.is(map1, map2) === false); - * assert(Immutable.is(map1, map2) === true); - * - * Note: Unlike `Object.is`, `Immutable.is` assumes `0` and `-0` are the same - * value, matching the behavior of ES6 Map key equality. - */ - export function is(first: any, second: any): boolean; - - - /** - * Lists are ordered indexed dense collections, much like a JavaScript - * Array. - * - * Lists are immutable and fully persistent with O(log32 N) gets and sets, - * and O(1) push and pop. - * - * Lists implement Deque, with efficient addition and removal from both the - * end (`push`, `pop`) and beginning (`unshift`, `shift`). - * - * Unlike a JavaScript Array, there is no distinction between an - * "unset" index and an index set to `undefined`. `List#forEach` visits all - * indices from 0 to size, regardless of whether they were explicitly defined. - */ - export module List { - - /** - * True if the provided value is a List - */ - function isList(maybeList: any): boolean; - - /** - * Creates a new List containing `values`. - */ - function of(...values: T[]): List; - } - - /** - * Create a new immutable List containing the values of the provided - * iterable-like. - */ - export function List(): List; - export function List(iter: Iterable.Indexed): List; - export function List(iter: Iterable.Set): List; - export function List(iter: Iterable.Keyed): List; - export function List(array: Array): List; - export function List(iterator: Iterator): List; - export function List(iterable: /*Iterable*/Object): List; - - - export interface List extends Collection.Indexed { - - // Persistent changes - - /** - * Returns a new List which includes `value` at `index`. If `index` already - * exists in this List, it will be replaced. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.set(-1, "value")` sets the last item in the List. - * - * If `index` larger than `size`, the returned List's `size` will be large - * enough to include the `index`. - */ - set(index: number, value: T): List; - - /** - * Returns a new List which excludes this `index` and with a size 1 less - * than this List. Values at indices above `index` are shifted down by 1 to - * fill the position. - * - * This is synonymous with `list.splice(index, 1)`. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.delete(-1)` deletes the last item in the List. - * - * Note: `delete` cannot be safely used in IE8 - * @alias remove - */ - delete(index: number): List; - remove(index: number): List; - - /** - * Returns a new List with `value` at `index` with a size 1 more than this - * List. Values at indices above `index` are shifted over by 1. - * - * This is synonymous with `list.splice(index, 0, value) - */ - insert(index: number, value: T): List; - - /** - * Returns a new List with 0 size and no values. - */ - clear(): List; - - /** - * Returns a new List with the provided `values` appended, starting at this - * List's `size`. - */ - push(...values: T[]): List; - - /** - * Returns a new List with a size ones less than this List, excluding - * the last index in this List. - * - * Note: this differs from `Array#pop` because it returns a new - * List rather than the removed value. Use `last()` to get the last value - * in this List. - */ - pop(): List; - - /** - * Returns a new List with the provided `values` prepended, shifting other - * values ahead to higher indices. - */ - unshift(...values: T[]): List; - - /** - * Returns a new List with a size ones less than this List, excluding - * the first index in this List, shifting all other values to a lower index. - * - * Note: this differs from `Array#shift` because it returns a new - * List rather than the removed value. Use `first()` to get the first - * value in this List. - */ - shift(): List; - - /** - * Returns a new List with an updated value at `index` with the return - * value of calling `updater` with the existing value, or `notSetValue` if - * `index` was not set. If called with a single argument, `updater` is - * called with the List itself. - * - * `index` may be a negative number, which indexes back from the end of the - * List. `v.update(-1)` updates the last item in the List. - * - * @see `Map#update` - */ - update(updater: (value: List) => List): List; - update(index: number, updater: (value: T) => T): List; - update(index: number, notSetValue: T, updater: (value: T) => T): List; - - /** - * @see `Map#merge` - */ - merge(...iterables: Iterable.Indexed[]): List; - merge(...iterables: Array[]): List; - - /** - * @see `Map#mergeWith` - */ - mergeWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Iterable.Indexed[] - ): List; - mergeWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Array[] - ): List; - - /** - * @see `Map#mergeDeep` - */ - mergeDeep(...iterables: Iterable.Indexed[]): List; - mergeDeep(...iterables: Array[]): List; - - /** - * @see `Map#mergeDeepWith` - */ - mergeDeepWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepWith( - merger: (previous?: T, next?: T, key?: number) => T, - ...iterables: Array[] - ): List; - - /** - * Returns a new List with size `size`. If `size` is less than this - * List's size, the new List will exclude values at the higher indices. - * If `size` is greater than this List's size, the new List will have - * undefined values for the newly available indices. - * - * When building a new List and the final size is known up front, `setSize` - * used in conjunction with `withMutations` may result in the more - * performant construction. - */ - setSize(size: number): List; - - - // Deep persistent changes - - /** - * Returns a new List having set `value` at this `keyPath`. If any keys in - * `keyPath` do not exist, a new immutable Map will be created at that key. - * - * Index numbers are used as keys to determine the path to follow in - * the List. - */ - setIn(keyPath: Array, value: any): List; - setIn(keyPath: Iterable, value: any): List; - - /** - * Returns a new List having removed the value at this `keyPath`. If any - * keys in `keyPath` do not exist, no change will occur. - * - * @alias removeIn - */ - deleteIn(keyPath: Array): List; - deleteIn(keyPath: Iterable): List; - removeIn(keyPath: Array): List; - removeIn(keyPath: Iterable): List; - - /** - * @see `Map#updateIn` - */ - updateIn( - keyPath: Array, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Array, - notSetValue: any, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Iterable, - updater: (value: any) => any - ): List; - updateIn( - keyPath: Iterable, - notSetValue: any, - updater: (value: any) => any - ): List; - - /** - * @see `Map#mergeIn` - */ - mergeIn( - keyPath: Iterable, - ...iterables: Iterable.Indexed[] - ): List; - mergeIn( - keyPath: Array, - ...iterables: Iterable.Indexed[] - ): List; - mergeIn( - keyPath: Array, - ...iterables: Array[] - ): List; - - /** - * @see `Map#mergeDeepIn` - */ - mergeDeepIn( - keyPath: Iterable, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepIn( - keyPath: Array, - ...iterables: Iterable.Indexed[] - ): List; - mergeDeepIn( - keyPath: Array, - ...iterables: Array[] - ): List; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set`, `push`, `pop`, `shift`, `unshift` and - * `merge` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: List) => any): List; - - /** - * @see `Map#asMutable` - */ - asMutable(): List; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): List; - } - - - /** - * Immutable Map is an unordered Iterable.Keyed of (key, value) pairs with - * `O(log32 N)` gets and `O(log32 N)` persistent sets. - * - * Iteration order of a Map is undefined, however is stable. Multiple - * iterations of the same Map will iterate in the same order. - * - * Map's keys can be of any type, and use `Immutable.is` to determine key - * equality. This allows the use of any value (including NaN) as a key. - * - * Because `Immutable.is` returns equality based on value semantics, and - * Immutable collections are treated as values, any Immutable collection may - * be used as a key. - * - * Map().set(List.of(1), 'listofone').get(List.of(1)); - * // 'listofone' - * - * Any JavaScript object may be used as a key, however strict identity is used - * to evaluate key equality. Two similar looking objects will represent two - * different keys. - * - * Implemented by a hash-array mapped trie. - */ - export module Map { - - /** - * True if the provided value is a Map - */ - function isMap(maybeMap: any): boolean; - - /** - * Creates a new Map from alternating keys and values - */ - function of(...keyValues: any[]): Map; - } - - /** - * Creates a new Immutable Map. - * - * Created with the same key value pairs as the provided Iterable.Keyed or - * JavaScript Object or expects an Iterable of [K, V] tuple entries. - * - * var newMap = Map({key: "value"}); - * var newMap = Map([["key", "value"]]); - * - * Keep in mind, when using JS objects to construct Immutable Maps, that - * JavaScript Object properties are always strings, even if written in a - * quote-less shorthand, while Immutable Maps accept keys of any type. - * - * ```js - * var obj = { 1: "one" }; - * Object.keys(obj); // [ "1" ] - * obj["1"]; // "one" - * obj[1]; // "one" - * - * var map = Map(obj); - * map.get("1"); // "one" - * map.get(1); // undefined - * ``` - * - * Property access for JavaScript Objects first converts the key to a string, - * but since Immutable Map keys can be of any type the argument to `get()` is - * not altered. - */ - export function Map(): Map; - export function Map(iter: Iterable.Keyed): Map; - export function Map(iter: Iterable>): Map; - export function Map(array: Array>): Map; - export function Map(obj: {[key: string]: V}): Map; - export function Map(iterator: Iterator>): Map; - export function Map(iterable: /*Iterable<[K,V]>*/Object): Map; - - export interface Map extends Collection.Keyed { - - // Persistent changes - - /** - * Returns a new Map also containing the new key, value pair. If an equivalent - * key already exists in this Map, it will be replaced. - */ - set(key: K, value: V): Map; - - /** - * Returns a new Map which excludes this `key`. - * - * Note: `delete` cannot be safely used in IE8, but is provided to mirror - * the ES6 collection API. - * @alias remove - */ - delete(key: K): Map; - remove(key: K): Map; - - /** - * Returns a new Map containing no keys or values. - */ - clear(): Map; - - /** - * Returns a new Map having updated the value at this `key` with the return - * value of calling `updater` with the existing value, or `notSetValue` if - * the key was not set. If called with only a single argument, `updater` is - * called with the Map itself. - * - * Equivalent to: `map.set(key, updater(map.get(key, notSetValue)))`. - */ - update(updater: (value: Map) => Map): Map; - update(key: K, updater: (value: V) => V): Map; - update(key: K, notSetValue: V, updater: (value: V) => V): Map; - - /** - * Returns a new Map resulting from merging the provided Iterables - * (or JS objects) into this Map. In other words, this takes each entry of - * each iterable and sets it on this Map. - * - * If any of the values provided to `merge` are not Iterable (would return - * false for `Immutable.Iterable.isIterable`) then they are deeply converted - * via `Immutable.fromJS` before being merged. However, if the value is an - * Iterable but includes non-iterable JS objects or arrays, those nested - * values will be preserved. - * - * var x = Immutable.Map({a: 10, b: 20, c: 30}); - * var y = Immutable.Map({b: 40, a: 50, d: 60}); - * x.merge(y) // { a: 50, b: 40, c: 30, d: 60 } - * y.merge(x) // { b: 20, a: 10, d: 60, c: 30 } - * - */ - merge(...iterables: Iterable[]): Map; - merge(...iterables: {[key: string]: V}[]): Map; - - /** - * Like `merge()`, `mergeWith()` returns a new Map resulting from merging - * the provided Iterables (or JS objects) into this Map, but uses the - * `merger` function for dealing with conflicts. - * - * var x = Immutable.Map({a: 10, b: 20, c: 30}); - * var y = Immutable.Map({b: 40, a: 50, d: 60}); - * x.mergeWith((prev, next) => prev / next, y) // { a: 0.2, b: 0.5, c: 30, d: 60 } - * y.mergeWith((prev, next) => prev / next, x) // { b: 2, a: 5, d: 60, c: 30 } - * - */ - mergeWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: Iterable[] - ): Map; - mergeWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: {[key: string]: V}[] - ): Map; - - /** - * Like `merge()`, but when two Iterables conflict, it merges them as well, - * recursing deeply through the nested data. - * - * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); - * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); - * x.mergeDeep(y) // {a: { x: 2, y: 10 }, b: { x: 20, y: 5 }, c: { z: 3 } } - * - */ - mergeDeep(...iterables: Iterable[]): Map; - mergeDeep(...iterables: {[key: string]: V}[]): Map; - - /** - * Like `mergeDeep()`, but when two non-Iterables conflict, it uses the - * `merger` function to determine the resulting value. - * - * var x = Immutable.fromJS({a: { x: 10, y: 10 }, b: { x: 20, y: 50 } }); - * var y = Immutable.fromJS({a: { x: 2 }, b: { y: 5 }, c: { z: 3 } }); - * x.mergeDeepWith((prev, next) => prev / next, y) - * // {a: { x: 5, y: 10 }, b: { x: 20, y: 10 }, c: { z: 3 } } - * - */ - mergeDeepWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: Iterable[] - ): Map; - mergeDeepWith( - merger: (previous?: V, next?: V, key?: K) => V, - ...iterables: {[key: string]: V}[] - ): Map; - - - // Deep persistent changes - - /** - * Returns a new Map having set `value` at this `keyPath`. If any keys in - * `keyPath` do not exist, a new immutable Map will be created at that key. - */ - setIn(keyPath: Array, value: any): Map; - setIn(KeyPath: Iterable, value: any): Map; - - /** - * Returns a new Map having removed the value at this `keyPath`. If any keys - * in `keyPath` do not exist, no change will occur. - * - * @alias removeIn - */ - deleteIn(keyPath: Array): Map; - deleteIn(keyPath: Iterable): Map; - removeIn(keyPath: Array): Map; - removeIn(keyPath: Iterable): Map; - - /** - * Returns a new Map having applied the `updater` to the entry found at the - * keyPath. - * - * If any keys in `keyPath` do not exist, new Immutable `Map`s will - * be created at those keys. If the `keyPath` does not already contain a - * value, the `updater` function will be called with `notSetValue`, if - * provided, otherwise `undefined`. - * - * var data = Immutable.fromJS({ a: { b: { c: 10 } } }); - * data = data.updateIn(['a', 'b', 'c'], val => val * 2); - * // { a: { b: { c: 20 } } } - * - * If the `updater` function returns the same value it was called with, then - * no change will occur. This is still true if `notSetValue` is provided. - * - * var data1 = Immutable.fromJS({ a: { b: { c: 10 } } }); - * data2 = data1.updateIn(['x', 'y', 'z'], 100, val => val); - * assert(data2 === data1); - * - */ - updateIn( - keyPath: Array, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Array, - notSetValue: any, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Iterable, - updater: (value: any) => any - ): Map; - updateIn( - keyPath: Iterable, - notSetValue: any, - updater: (value: any) => any - ): Map; - - /** - * A combination of `updateIn` and `merge`, returning a new Map, but - * performing the merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.merge(y)); - * x.mergeIn(['a', 'b', 'c'], y); - * - */ - mergeIn( - keyPath: Iterable, - ...iterables: Iterable[] - ): Map; - mergeIn( - keyPath: Array, - ...iterables: Iterable[] - ): Map; - mergeIn( - keyPath: Array, - ...iterables: {[key: string]: V}[] - ): Map; - - /** - * A combination of `updateIn` and `mergeDeep`, returning a new Map, but - * performing the deep merge at a point arrived at by following the keyPath. - * In other words, these two lines are equivalent: - * - * x.updateIn(['a', 'b', 'c'], abc => abc.mergeDeep(y)); - * x.mergeDeepIn(['a', 'b', 'c'], y); - * - */ - mergeDeepIn( - keyPath: Iterable, - ...iterables: Iterable[] - ): Map; - mergeDeepIn( - keyPath: Array, - ...iterables: Iterable[] - ): Map; - mergeDeepIn( - keyPath: Array, - ...iterables: {[key: string]: V}[] - ): Map; - - - // Transient changes - - /** - * Every time you call one of the above functions, a new immutable Map is - * created. If a pure function calls a number of these to produce a final - * return value, then a penalty on performance and memory has been paid by - * creating all of the intermediate immutable Maps. - * - * If you need to apply a series of mutations to produce a new immutable - * Map, `withMutations()` creates a temporary mutable copy of the Map which - * can apply mutations in a highly performant manner. In fact, this is - * exactly how complex mutations like `merge` are done. - * - * As an example, this results in the creation of 2, not 4, new Maps: - * - * var map1 = Immutable.Map(); - * var map2 = map1.withMutations(map => { - * map.set('a', 1).set('b', 2).set('c', 3); - * }); - * assert(map1.size === 0); - * assert(map2.size === 3); - * - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set` and `merge` may be used mutatively. - * - */ - withMutations(mutator: (mutable: Map) => any): Map; - - /** - * Another way to avoid creation of intermediate Immutable maps is to create - * a mutable copy of this collection. Mutable copies *always* return `this`, - * and thus shouldn't be used for equality. Your function should never return - * a mutable copy of a collection, only use it internally to create a new - * collection. If possible, use `withMutations` as it provides an easier to - * use API. - * - * Note: if the collection is already mutable, `asMutable` returns itself. - * - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set` and `merge` may be used mutatively. - */ - asMutable(): Map; - - /** - * The yin to `asMutable`'s yang. Because it applies to mutable collections, - * this operation is *mutable* and returns itself. Once performed, the mutable - * copy has become immutable and can be safely returned from a function. - */ - asImmutable(): Map; - } - - - /** - * A type of Map that has the additional guarantee that the iteration order of - * entries will be the order in which they were set(). - * - * The iteration behavior of OrderedMap is the same as native ES6 Map and - * JavaScript Object. - * - * Note that `OrderedMap` are more expensive than non-ordered `Map` and may - * consume more memory. `OrderedMap#set` is amortized O(log32 N), but not - * stable. - */ - - export module OrderedMap { - - /** - * True if the provided value is an OrderedMap. - */ - function isOrderedMap(maybeOrderedMap: any): boolean; - } - - /** - * Creates a new Immutable OrderedMap. - * - * Created with the same key value pairs as the provided Iterable.Keyed or - * JavaScript Object or expects an Iterable of [K, V] tuple entries. - * - * The iteration order of key-value pairs provided to this constructor will - * be preserved in the OrderedMap. - * - * var newOrderedMap = OrderedMap({key: "value"}); - * var newOrderedMap = OrderedMap([["key", "value"]]); - * - */ - export function OrderedMap(): OrderedMap; - export function OrderedMap(iter: Iterable.Keyed): OrderedMap; - export function OrderedMap(iter: Iterable>): OrderedMap; - export function OrderedMap(array: Array>): OrderedMap; - export function OrderedMap(obj: {[key: string]: V}): OrderedMap; - export function OrderedMap(iterator: Iterator>): OrderedMap; - export function OrderedMap(iterable: /*Iterable<[K,V]>*/Object): OrderedMap; - - export interface OrderedMap extends Map {} - - - /** - * A Collection of unique values with `O(log32 N)` adds and has. - * - * When iterating a Set, the entries will be (value, value) pairs. Iteration - * order of a Set is undefined, however is stable. Multiple iterations of the - * same Set will iterate in the same order. - * - * Set values, like Map keys, may be of any type. Equality is determined using - * `Immutable.is`, enabling Sets to uniquely include other Immutable - * collections, custom value types, and NaN. - */ - export module Set { - - /** - * True if the provided value is a Set - */ - function isSet(maybeSet: any): boolean; - - /** - * Creates a new Set containing `values`. - */ - function of(...values: T[]): Set; - - /** - * `Set.fromKeys()` creates a new immutable Set containing the keys from - * this Iterable or JavaScript Object. - */ - function fromKeys(iter: Iterable): Set; - function fromKeys(obj: {[key: string]: any}): Set; - } - - /** - * Create a new immutable Set containing the values of the provided - * iterable-like. - */ - export function Set(): Set; - export function Set(iter: Iterable.Set): Set; - export function Set(iter: Iterable.Indexed): Set; - export function Set(iter: Iterable.Keyed): Set; - export function Set(array: Array): Set; - export function Set(iterator: Iterator): Set; - export function Set(iterable: /*Iterable*/Object): Set; - - export interface Set extends Collection.Set { - - // Persistent changes - - /** - * Returns a new Set which also includes this value. - */ - add(value: T): Set; - - /** - * Returns a new Set which excludes this value. - * - * Note: `delete` cannot be safely used in IE8 - * @alias remove - */ - delete(value: T): Set; - remove(value: T): Set; - - /** - * Returns a new Set containing no values. - */ - clear(): Set; - - /** - * Returns a Set including any value from `iterables` that does not already - * exist in this Set. - * @alias merge - */ - union(...iterables: Iterable[]): Set; - union(...iterables: Array[]): Set; - merge(...iterables: Iterable[]): Set; - merge(...iterables: Array[]): Set; - - - /** - * Returns a Set which has removed any values not also contained - * within `iterables`. - */ - intersect(...iterables: Iterable[]): Set; - intersect(...iterables: Array[]): Set; - - /** - * Returns a Set excluding any values contained within `iterables`. - */ - subtract(...iterables: Iterable[]): Set; - subtract(...iterables: Array[]): Set; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `add` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: Set) => any): Set; - - /** - * @see `Map#asMutable` - */ - asMutable(): Set; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): Set; - } - - - /** - * A type of Set that has the additional guarantee that the iteration order of - * values will be the order in which they were `add`ed. - * - * The iteration behavior of OrderedSet is the same as native ES6 Set. - * - * Note that `OrderedSet` are more expensive than non-ordered `Set` and may - * consume more memory. `OrderedSet#add` is amortized O(log32 N), but not - * stable. - */ - export module OrderedSet { - - /** - * True if the provided value is an OrderedSet. - */ - function isOrderedSet(maybeOrderedSet: any): boolean; - - /** - * Creates a new OrderedSet containing `values`. - */ - function of(...values: T[]): OrderedSet; - - /** - * `OrderedSet.fromKeys()` creates a new immutable OrderedSet containing - * the keys from this Iterable or JavaScript Object. - */ - function fromKeys(iter: Iterable): OrderedSet; - function fromKeys(obj: {[key: string]: any}): OrderedSet; - } - - /** - * Create a new immutable OrderedSet containing the values of the provided - * iterable-like. - */ - export function OrderedSet(): OrderedSet; - export function OrderedSet(iter: Iterable.Set): OrderedSet; - export function OrderedSet(iter: Iterable.Indexed): OrderedSet; - export function OrderedSet(iter: Iterable.Keyed): OrderedSet; - export function OrderedSet(array: Array): OrderedSet; - export function OrderedSet(iterator: Iterator): OrderedSet; - export function OrderedSet(iterable: /*Iterable*/Object): OrderedSet; - - export interface OrderedSet extends Set {} - - - /** - * Stacks are indexed collections which support very efficient O(1) addition - * and removal from the front using `unshift(v)` and `shift()`. - * - * For familiarity, Stack also provides `push(v)`, `pop()`, and `peek()`, but - * be aware that they also operate on the front of the list, unlike List or - * a JavaScript Array. - * - * Note: `reverse()` or any inherent reverse traversal (`reduceRight`, - * `lastIndexOf`, etc.) is not efficient with a Stack. - * - * Stack is implemented with a Single-Linked List. - */ - export module Stack { - - /** - * True if the provided value is a Stack - */ - function isStack(maybeStack: any): boolean; - - /** - * Creates a new Stack containing `values`. - */ - function of(...values: T[]): Stack; - } - - /** - * Create a new immutable Stack containing the values of the provided - * iterable-like. - * - * The iteration order of the provided iterable is preserved in the - * resulting `Stack`. - */ - export function Stack(): Stack; - export function Stack(iter: Iterable.Indexed): Stack; - export function Stack(iter: Iterable.Set): Stack; - export function Stack(iter: Iterable.Keyed): Stack; - export function Stack(array: Array): Stack; - export function Stack(iterator: Iterator): Stack; - export function Stack(iterable: /*Iterable*/Object): Stack; - - export interface Stack extends Collection.Indexed { - - // Reading values - - /** - * Alias for `Stack.first()`. - */ - peek(): T; - - - // Persistent changes - - /** - * Returns a new Stack with 0 size and no values. - */ - clear(): Stack; - - /** - * Returns a new Stack with the provided `values` prepended, shifting other - * values ahead to higher indices. - * - * This is very efficient for Stack. - */ - unshift(...values: T[]): Stack; - - /** - * Like `Stack#unshift`, but accepts a iterable rather than varargs. - */ - unshiftAll(iter: Iterable): Stack; - unshiftAll(iter: Array): Stack; - - /** - * Returns a new Stack with a size ones less than this Stack, excluding - * the first item in this Stack, shifting all other values to a lower index. - * - * Note: this differs from `Array#shift` because it returns a new - * Stack rather than the removed value. Use `first()` or `peek()` to get the - * first value in this Stack. - */ - shift(): Stack; - - /** - * Alias for `Stack#unshift` and is not equivalent to `List#push`. - */ - push(...values: T[]): Stack; - - /** - * Alias for `Stack#unshiftAll`. - */ - pushAll(iter: Iterable): Stack; - pushAll(iter: Array): Stack; - - /** - * Alias for `Stack#shift` and is not equivalent to `List#pop`. - */ - pop(): Stack; - - - // Transient changes - - /** - * Note: Not all methods can be used on a mutable collection or within - * `withMutations`! Only `set`, `push`, and `pop` may be used mutatively. - * - * @see `Map#withMutations` - */ - withMutations(mutator: (mutable: Stack) => any): Stack; - - /** - * @see `Map#asMutable` - */ - asMutable(): Stack; - - /** - * @see `Map#asImmutable` - */ - asImmutable(): Stack; - } - - - /** - * Returns a Seq.Indexed of numbers from `start` (inclusive) to `end` - * (exclusive), by `step`, where `start` defaults to 0, `step` to 1, and `end` to - * infinity. When `start` is equal to `end`, returns empty range. - * - * Range() // [0,1,2,3,...] - * Range(10) // [10,11,12,13,...] - * Range(10,15) // [10,11,12,13,14] - * Range(10,30,5) // [10,15,20,25] - * Range(30,10,5) // [30,25,20,15] - * Range(30,30,5) // [] - * - */ - export function Range(start?: number, end?: number, step?: number): Seq.Indexed; - - - /** - * Returns a Seq.Indexed of `value` repeated `times` times. When `times` is - * not defined, returns an infinite `Seq` of `value`. - * - * Repeat('foo') // ['foo','foo','foo',...] - * Repeat('bar',4) // ['bar','bar','bar','bar'] - * - */ - export function Repeat(value: T, times?: number): Seq.Indexed; - - - /** - * Creates a new Class which produces Record instances. A record is similar to - * a JS object, but enforce a specific set of allowed string keys, and have - * default values. - * - * var ABRecord = Record({a:1, b:2}) - * var myRecord = new ABRecord({b:3}) - * - * Records always have a value for the keys they define. `remove`ing a key - * from a record simply resets it to the default value for that key. - * - * myRecord.size // 2 - * myRecord.get('a') // 1 - * myRecord.get('b') // 3 - * myRecordWithoutB = myRecord.remove('b') - * myRecordWithoutB.get('b') // 2 - * myRecordWithoutB.size // 2 - * - * Values provided to the constructor not found in the Record type will - * be ignored. For example, in this case, ABRecord is provided a key "x" even - * though only "a" and "b" have been defined. The value for "x" will be - * ignored for this record. - * - * var myRecord = new ABRecord({b:3, x:10}) - * myRecord.get('x') // undefined - * - * Because Records have a known set of string keys, property get access works - * as expected, however property sets will throw an Error. - * - * Note: IE8 does not support property access. Only use `get()` when - * supporting IE8. - * - * myRecord.b // 3 - * myRecord.b = 5 // throws Error - * - * Record Classes can be extended as well, allowing for custom methods on your - * Record. This is not a common pattern in functional environments, but is in - * many JS programs. - * - * Note: TypeScript does not support this type of subclassing. - * - * class ABRecord extends Record({a:1,b:2}) { - * getAB() { - * return this.a + this.b; - * } - * } - * - * var myRecord = new ABRecord({b: 3}) - * myRecord.getAB() // 4 - * - */ - export module Record { - export interface Class { - new (): Map; - new (values: {[key: string]: any}): Map; - new (values: Iterable): Map; // deprecated - - (): Map; - (values: {[key: string]: any}): Map; - (values: Iterable): Map; // deprecated - } - } - - export function Record( - defaultValues: {[key: string]: any}, name?: string - ): Record.Class; - - - /** - * Represents a sequence of values, but may not be backed by a concrete data - * structure. - * - * **Seq is immutable** — Once a Seq is created, it cannot be - * changed, appended to, rearranged or otherwise modified. Instead, any - * mutative method called on a `Seq` will return a new `Seq`. - * - * **Seq is lazy** — Seq does as little work as necessary to respond to any - * method call. Values are often created during iteration, including implicit - * iteration when reducing or converting to a concrete data structure such as - * a `List` or JavaScript `Array`. - * - * For example, the following performs no work, because the resulting - * Seq's values are never iterated: - * - * var oddSquares = Immutable.Seq.of(1,2,3,4,5,6,7,8) - * .filter(x => x % 2).map(x => x * x); - * - * Once the Seq is used, it performs only the work necessary. In this - * example, no intermediate data structures are ever created, filter is only - * called three times, and map is only called once: - * - * console.log(oddSquares.get(1)); // 9 - * - * Seq allows for the efficient chaining of operations, - * allowing for the expression of logic that can otherwise be very tedious: - * - * Immutable.Seq({a:1, b:1, c:1}) - * .flip().map(key => key.toUpperCase()).flip().toObject(); - * // Map { A: 1, B: 1, C: 1 } - * - * As well as expressing logic that would otherwise be memory or time limited: - * - * Immutable.Range(1, Infinity) - * .skip(1000) - * .map(n => -n) - * .filter(n => n % 2 === 0) - * .take(2) - * .reduce((r, n) => r * n, 1); - * // 1006008 - * - * Seq is often used to provide a rich collection API to JavaScript Object. - * - * Immutable.Seq({ x: 0, y: 1, z: 2 }).map(v => v * 2).toObject(); - * // { x: 0, y: 2, z: 4 } - */ - - export module Seq { - /** - * True if `maybeSeq` is a Seq, it is not backed by a concrete - * structure such as Map, List, or Set. - */ - function isSeq(maybeSeq: any): boolean; - - /** - * Returns a Seq of the values provided. Alias for `Seq.Indexed.of()`. - */ - function of(...values: T[]): Seq.Indexed; - - - /** - * `Seq` which represents key-value pairs. - */ - export module Keyed {} - - /** - * Always returns a Seq.Keyed, if input is not keyed, expects an - * iterable of [K, V] tuples. - */ - export function Keyed(): Seq.Keyed; - export function Keyed(seq: Iterable.Keyed): Seq.Keyed; - export function Keyed(seq: Iterable): Seq.Keyed; - export function Keyed(array: Array): Seq.Keyed; - export function Keyed(obj: {[key: string]: V}): Seq.Keyed; - export function Keyed(iterator: Iterator): Seq.Keyed; - export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Seq.Keyed; - - export interface Keyed extends Seq, Iterable.Keyed { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Keyed - } - - - /** - * `Seq` which represents an ordered indexed list of values. - */ - module Indexed { - - /** - * Provides an Seq.Indexed of the values provided. - */ - function of(...values: T[]): Seq.Indexed; - } - - /** - * Always returns Seq.Indexed, discarding associated keys and - * supplying incrementing indices. - */ - export function Indexed(): Seq.Indexed; - export function Indexed(seq: Iterable.Indexed): Seq.Indexed; - export function Indexed(seq: Iterable.Set): Seq.Indexed; - export function Indexed(seq: Iterable.Keyed): Seq.Indexed; - export function Indexed(array: Array): Seq.Indexed; - export function Indexed(iterator: Iterator): Seq.Indexed; - export function Indexed(iterable: /*Iterable*/Object): Seq.Indexed; - - export interface Indexed extends Seq, Iterable.Indexed { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Indexed - } - - - /** - * `Seq` which represents a set of values. - * - * Because `Seq` are often lazy, `Seq.Set` does not provide the same guarantee - * of value uniqueness as the concrete `Set`. - */ - export module Set { - - /** - * Returns a Seq.Set of the provided values - */ - function of(...values: T[]): Seq.Set; - } - - /** - * Always returns a Seq.Set, discarding associated indices or keys. - */ - export function Set(): Seq.Set; - export function Set(seq: Iterable.Set): Seq.Set; - export function Set(seq: Iterable.Indexed): Seq.Set; - export function Set(seq: Iterable.Keyed): Seq.Set; - export function Set(array: Array): Seq.Set; - export function Set(iterator: Iterator): Seq.Set; - export function Set(iterable: /*Iterable*/Object): Seq.Set; - - export interface Set extends Seq, Iterable.Set { - - /** - * Returns itself - */ - toSeq(): /*this*/Seq.Set - } - - } - - /** - * Creates a Seq. - * - * Returns a particular kind of `Seq` based on the input. - * - * * If a `Seq`, that same `Seq`. - * * If an `Iterable`, a `Seq` of the same kind (Keyed, Indexed, or Set). - * * If an Array-like, an `Seq.Indexed`. - * * If an Object with an Iterator, an `Seq.Indexed`. - * * If an Iterator, an `Seq.Indexed`. - * * If an Object, a `Seq.Keyed`. - * - */ - export function Seq(): Seq; - export function Seq(seq: Seq): Seq; - export function Seq(iterable: Iterable): Seq; - export function Seq(array: Array): Seq.Indexed; - export function Seq(obj: {[key: string]: V}): Seq.Keyed; - export function Seq(iterator: Iterator): Seq.Indexed; - export function Seq(iterable: /*ES6Iterable*/Object): Seq.Indexed; - - export interface Seq extends Iterable { - - /** - * Some Seqs can describe their size lazily. When this is the case, - * size will be an integer. Otherwise it will be undefined. - * - * For example, Seqs returned from `map()` or `reverse()` - * preserve the size of the original `Seq` while `filter()` does not. - * - * Note: `Range`, `Repeat` and `Seq`s made from `Array`s and `Object`s will - * always have a size. - */ - size: number/*?*/; - - - // Force evaluation - - /** - * Because Sequences are lazy and designed to be chained together, they do - * not cache their results. For example, this map function is called a total - * of 6 times, as each `join` iterates the Seq of three values. - * - * var squares = Seq.of(1,2,3).map(x => x * x); - * squares.join() + squares.join(); - * - * If you know a `Seq` will be used multiple times, it may be more - * efficient to first cache it in memory. Here, the map function is called - * only 3 times. - * - * var squares = Seq.of(1,2,3).map(x => x * x).cacheResult(); - * squares.join() + squares.join(); - * - * Use this method judiciously, as it must fully evaluate a Seq which can be - * a burden on memory and possibly performance. - * - * Note: after calling `cacheResult`, a Seq will always have a `size`. - */ - cacheResult(): /*this*/Seq; - } - - /** - * The `Iterable` is a set of (key, value) entries which can be iterated, and - * is the base class for all collections in `immutable`, allowing them to - * make use of all the Iterable methods (such as `map` and `filter`). - * - * Note: An iterable is always iterated in the same order, however that order - * may not always be well defined, as is the case for the `Map` and `Set`. - */ - export module Iterable { - /** - * True if `maybeIterable` is an Iterable, or any of its subclasses. - */ - function isIterable(maybeIterable: any): boolean; - - /** - * True if `maybeKeyed` is an Iterable.Keyed, or any of its subclasses. - */ - function isKeyed(maybeKeyed: any): boolean; - - /** - * True if `maybeIndexed` is a Iterable.Indexed, or any of its subclasses. - */ - function isIndexed(maybeIndexed: any): boolean; - - /** - * True if `maybeAssociative` is either a keyed or indexed Iterable. - */ - function isAssociative(maybeAssociative: any): boolean; - - /** - * True if `maybeOrdered` is an Iterable where iteration order is well - * defined. True for Iterable.Indexed as well as OrderedMap and OrderedSet. - */ - function isOrdered(maybeOrdered: any): boolean; - - - /** - * Keyed Iterables have discrete keys tied to each value. - * - * When iterating `Iterable.Keyed`, each iteration will yield a `[K, V]` - * tuple, in other words, `Iterable#entries` is the default iterator for - * Keyed Iterables. - */ - export module Keyed {} - - /** - * Creates an Iterable.Keyed - * - * Similar to `Iterable()`, however it expects iterable-likes of [K, V] - * tuples if not constructed from a Iterable.Keyed or JS Object. - */ - export function Keyed(iter: Iterable.Keyed): Iterable.Keyed; - export function Keyed(iter: Iterable): Iterable.Keyed; - export function Keyed(array: Array): Iterable.Keyed; - export function Keyed(obj: {[key: string]: V}): Iterable.Keyed; - export function Keyed(iterator: Iterator): Iterable.Keyed; - export function Keyed(iterable: /*Iterable<[K,V]>*/Object): Iterable.Keyed; - - export interface Keyed extends Iterable { - - /** - * Returns Seq.Keyed. - * @override - */ - toSeq(): Seq.Keyed; - - - // Sequence functions - - /** - * Returns a new Iterable.Keyed of the same type where the keys and values - * have been flipped. - * - * Seq({ a: 'z', b: 'y' }).flip() // { z: 'a', y: 'b' } - * - */ - flip(): /*this*/Iterable.Keyed; - - /** - * Returns a new Iterable.Keyed of the same type with keys passed through - * a `mapper` function. - * - * Seq({ a: 1, b: 2 }) - * .mapKeys(x => x.toUpperCase()) - * // Seq { A: 1, B: 2 } - * - */ - mapKeys( - mapper: (key?: K, value?: V, iter?: /*this*/Iterable.Keyed) => M, - context?: any - ): /*this*/Iterable.Keyed; - - /** - * Returns a new Iterable.Keyed of the same type with entries - * ([key, value] tuples) passed through a `mapper` function. - * - * Seq({ a: 1, b: 2 }) - * .mapEntries(([k, v]) => [k.toUpperCase(), v * 2]) - * // Seq { A: 2, B: 4 } - * - */ - mapEntries( - mapper: ( - entry?: /*(K, V)*/Array, - index?: number, - iter?: /*this*/Iterable.Keyed - ) => /*[KM, VM]*/Array, - context?: any - ): /*this*/Iterable.Keyed; - } - - - /** - * Indexed Iterables have incrementing numeric keys. They exhibit - * slightly different behavior than `Iterable.Keyed` for some methods in order - * to better mirror the behavior of JavaScript's `Array`, and add methods - * which do not make sense on non-indexed Iterables such as `indexOf`. - * - * Unlike JavaScript arrays, `Iterable.Indexed`s are always dense. "Unset" - * indices and `undefined` indices are indistinguishable, and all indices from - * 0 to `size` are visited when iterated. - * - * All Iterable.Indexed methods return re-indexed Iterables. In other words, - * indices always start at 0 and increment until size. If you wish to - * preserve indices, using them as keys, convert to a Iterable.Keyed by - * calling `toKeyedSeq`. - */ - export module Indexed {} - - /** - * Creates a new Iterable.Indexed. - */ - export function Indexed(iter: Iterable.Indexed): Iterable.Indexed; - export function Indexed(iter: Iterable.Set): Iterable.Indexed; - export function Indexed(iter: Iterable.Keyed): Iterable.Indexed; - export function Indexed(array: Array): Iterable.Indexed; - export function Indexed(iterator: Iterator): Iterable.Indexed; - export function Indexed(iterable: /*Iterable*/Object): Iterable.Indexed; - - export interface Indexed extends Iterable { - - // Reading values - - /** - * Returns the value associated with the provided index, or notSetValue if - * the index is beyond the bounds of the Iterable. - * - * `index` may be a negative number, which indexes back from the end of the - * Iterable. `s.get(-1)` gets the last item in the Iterable. - */ - get(index: number, notSetValue?: T): T; - - - // Conversion to Seq - - /** - * Returns Seq.Indexed. - * @override - */ - toSeq(): Seq.Indexed; - - /** - * If this is an iterable of [key, value] entry tuples, it will return a - * Seq.Keyed of those entries. - */ - fromEntrySeq(): Seq.Keyed; - - - // Combination - - /** - * Returns an Iterable of the same type with `separator` between each item - * in this Iterable. - */ - interpose(separator: T): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type with the provided `iterables` - * interleaved into this iterable. - * - * The resulting Iterable includes the first item from each, then the - * second from each, etc. - * - * I.Seq.of(1,2,3).interleave(I.Seq.of('A','B','C')) - * // Seq [ 1, 'A', 2, 'B', 3, 'C' ] - * - * The shortest Iterable stops interleave. - * - * I.Seq.of(1,2,3).interleave( - * I.Seq.of('A','B'), - * I.Seq.of('X','Y','Z') - * ) - * // Seq [ 1, 'A', 'X', 2, 'B', 'Y' ] - */ - interleave(...iterables: Array>): /*this*/Iterable.Indexed; - - /** - * Splice returns a new indexed Iterable by replacing a region of this - * Iterable with new values. If values are not provided, it only skips the - * region to be removed. - * - * `index` may be a negative number, which indexes back from the end of the - * Iterable. `s.splice(-2)` splices after the second to last item. - * - * Seq(['a','b','c','d']).splice(1, 2, 'q', 'r', 's') - * // Seq ['a', 'q', 'r', 's', 'd'] - * - */ - splice( - index: number, - removeNum: number, - ...values: /*Array | T>*/any[] - ): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type "zipped" with the provided - * iterables. - * - * Like `zipWith`, but using the default `zipper`: creating an `Array`. - * - * var a = Seq.of(1, 2, 3); - * var b = Seq.of(4, 5, 6); - * var c = a.zip(b); // Seq [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] - * - */ - zip(...iterables: Array>): /*this*/Iterable.Indexed; - - /** - * Returns an Iterable of the same type "zipped" with the provided - * iterables by using a custom `zipper` function. - * - * var a = Seq.of(1, 2, 3); - * var b = Seq.of(4, 5, 6); - * var c = a.zipWith((a, b) => a + b, b); // Seq [ 5, 7, 9 ] - * - */ - zipWith( - zipper: (value: T, otherValue: U) => Z, - otherIterable: Iterable - ): Iterable.Indexed; - zipWith( - zipper: (value: T, otherValue: U, thirdValue: V) => Z, - otherIterable: Iterable, - thirdIterable: Iterable - ): Iterable.Indexed; - zipWith( - zipper: (...any: Array) => Z, - ...iterables: Array> - ): Iterable.Indexed; - - - // Search for value - - /** - * Returns the first index at which a given value can be found in the - * Iterable, or -1 if it is not present. - */ - indexOf(searchValue: T): number; - - /** - * Returns the last index at which a given value can be found in the - * Iterable, or -1 if it is not present. - */ - lastIndexOf(searchValue: T): number; - - /** - * Returns the first index in the Iterable where a value satisfies the - * provided predicate function. Otherwise -1 is returned. - */ - findIndex( - predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, - context?: any - ): number; - - /** - * Returns the last index in the Iterable where a value satisfies the - * provided predicate function. Otherwise -1 is returned. - */ - findLastIndex( - predicate: (value?: T, index?: number, iter?: /*this*/Iterable.Indexed) => boolean, - context?: any - ): number; - } - - - /** - * Set Iterables only represent values. They have no associated keys or - * indices. Duplicate values are possible in Seq.Sets, however the - * concrete `Set` does not allow duplicate values. - * - * Iterable methods on Iterable.Set such as `map` and `forEach` will provide - * the value as both the first and second arguments to the provided function. - * - * var seq = Seq.Set.of('A', 'B', 'C'); - * assert.equal(seq.every((v, k) => v === k), true); - * - */ - export module Set {} - - /** - * Similar to `Iterable()`, but always returns a Iterable.Set. - */ - export function Set(iter: Iterable.Set): Iterable.Set; - export function Set(iter: Iterable.Indexed): Iterable.Set; - export function Set(iter: Iterable.Keyed): Iterable.Set; - export function Set(array: Array): Iterable.Set; - export function Set(iterator: Iterator): Iterable.Set; - export function Set(iterable: /*Iterable*/Object): Iterable.Set; - - export interface Set extends Iterable { - - /** - * Returns Seq.Set. - * @override - */ - toSeq(): Seq.Set; - } - - } - - /** - * Creates an Iterable. - * - * The type of Iterable created is based on the input. - * - * * If an `Iterable`, that same `Iterable`. - * * If an Array-like, an `Iterable.Indexed`. - * * If an Object with an Iterator, an `Iterable.Indexed`. - * * If an Iterator, an `Iterable.Indexed`. - * * If an Object, an `Iterable.Keyed`. - * - * This methods forces the conversion of Objects and Strings to Iterables. - * If you want to ensure that a Iterable of one item is returned, use - * `Seq.of`. - */ - export function Iterable(iterable: Iterable): Iterable; - export function Iterable(array: Array): Iterable.Indexed; - export function Iterable(obj: {[key: string]: V}): Iterable.Keyed; - export function Iterable(iterator: Iterator): Iterable.Indexed; - export function Iterable(iterable: /*ES6Iterable*/Object): Iterable.Indexed; - export function Iterable(value: V): Iterable.Indexed; - - export interface Iterable { - - // Value equality - - /** - * True if this and the other Iterable have value equality, as defined - * by `Immutable.is()`. - * - * Note: This is equivalent to `Immutable.is(this, other)`, but provided to - * allow for chained expressions. - */ - equals(other: Iterable): boolean; - - /** - * Computes and returns the hashed identity for this Iterable. - * - * The `hashCode` of an Iterable is used to determine potential equality, - * and is used when adding this to a `Set` or as a key in a `Map`, enabling - * lookup via a different instance. - * - * var a = List.of(1, 2, 3); - * var b = List.of(1, 2, 3); - * assert(a !== b); // different instances - * var set = Set.of(a); - * assert(set.has(b) === true); - * - * If two values have the same `hashCode`, they are [not guaranteed - * to be equal][Hash Collision]. If two values have different `hashCode`s, - * they must not be equal. - * - * [Hash Collision]: http://en.wikipedia.org/wiki/Collision_(computer_science) - */ - hashCode(): number; - - - // Reading values - - /** - * Returns the value associated with the provided key, or notSetValue if - * the Iterable does not contain this key. - * - * Note: it is possible a key may be associated with an `undefined` value, - * so if `notSetValue` is not provided and this method returns `undefined`, - * that does not guarantee the key was not found. - */ - get(key: K, notSetValue?: V): V; - - /** - * True if a key exists within this `Iterable`, using `Immutable.is` to determine equality - */ - has(key: K): boolean; - - /** - * True if a value exists within this `Iterable`, using `Immutable.is` to determine equality - * @alias contains - */ - includes(value: V): boolean; - contains(value: V): boolean; - - /** - * The first value in the Iterable. - */ - first(): V; - - /** - * The last value in the Iterable. - */ - last(): V; - - - // Reading deep values - - /** - * Returns the value found by following a path of keys or indices through - * nested Iterables. - */ - getIn(searchKeyPath: Array, notSetValue?: any): any; - getIn(searchKeyPath: Iterable, notSetValue?: any): any; - - /** - * True if the result of following a path of keys or indices through nested - * Iterables results in a set value. - */ - hasIn(searchKeyPath: Array): boolean; - hasIn(searchKeyPath: Iterable): boolean; - - - // Conversion to JavaScript types - - /** - * Deeply converts this Iterable to equivalent JS. - * - * `Iterable.Indexeds`, and `Iterable.Sets` become Arrays, while - * `Iterable.Keyeds` become Objects. - * - * @alias toJSON - */ - toJS(): any; - - /** - * Shallowly converts this iterable to an Array, discarding keys. - */ - toArray(): Array; - - /** - * Shallowly converts this Iterable to an Object. - * - * Throws if keys are not strings. - */ - toObject(): { [key: string]: V }; - - - // Conversion to Collections - - /** - * Converts this Iterable to a Map, Throws if keys are not hashable. - * - * Note: This is equivalent to `Map(this.toKeyedSeq())`, but provided - * for convenience and to allow for chained expressions. - */ - toMap(): Map; - - /** - * Converts this Iterable to a Map, maintaining the order of iteration. - * - * Note: This is equivalent to `OrderedMap(this.toKeyedSeq())`, but - * provided for convenience and to allow for chained expressions. - */ - toOrderedMap(): OrderedMap; - - /** - * Converts this Iterable to a Set, discarding keys. Throws if values - * are not hashable. - * - * Note: This is equivalent to `Set(this)`, but provided to allow for - * chained expressions. - */ - toSet(): Set; - - /** - * Converts this Iterable to a Set, maintaining the order of iteration and - * discarding keys. - * - * Note: This is equivalent to `OrderedSet(this.valueSeq())`, but provided - * for convenience and to allow for chained expressions. - */ - toOrderedSet(): OrderedSet; - - /** - * Converts this Iterable to a List, discarding keys. - * - * Note: This is equivalent to `List(this)`, but provided to allow - * for chained expressions. - */ - toList(): List; - - /** - * Converts this Iterable to a Stack, discarding keys. Throws if values - * are not hashable. - * - * Note: This is equivalent to `Stack(this)`, but provided to allow for - * chained expressions. - */ - toStack(): Stack; - - - // Conversion to Seq - - /** - * Converts this Iterable to a Seq of the same kind (indexed, - * keyed, or set). - */ - toSeq(): Seq; - - /** - * Returns a Seq.Keyed from this Iterable where indices are treated as keys. - * - * This is useful if you want to operate on an - * Iterable.Indexed and preserve the [index, value] pairs. - * - * The returned Seq will have identical iteration order as - * this Iterable. - * - * Example: - * - * var indexedSeq = Immutable.Seq.of('A', 'B', 'C'); - * indexedSeq.filter(v => v === 'B').toString() // Seq [ 'B' ] - * var keyedSeq = indexedSeq.toKeyedSeq(); - * keyedSeq.filter(v => v === 'B').toString() // Seq { 1: 'B' } - * - */ - toKeyedSeq(): Seq.Keyed; - - /** - * Returns an Seq.Indexed of the values of this Iterable, discarding keys. - */ - toIndexedSeq(): Seq.Indexed; - - /** - * Returns a Seq.Set of the values of this Iterable, discarding keys. - */ - toSetSeq(): Seq.Set; - - - // Iterators - - /** - * An iterator of this `Iterable`'s keys. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `keySeq` instead, if this is what you want. - */ - keys(): Iterator; - - /** - * An iterator of this `Iterable`'s values. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `valueSeq` instead, if this is what you want. - */ - values(): Iterator; - - /** - * An iterator of this `Iterable`'s entries as `[key, value]` tuples. - * - * Note: this will return an ES6 iterator which does not support Immutable JS sequence algorithms. Use `entrySeq` instead, if this is what you want. - */ - entries(): Iterator>; - - - // Iterables (Seq) - - /** - * Returns a new Seq.Indexed of the keys of this Iterable, - * discarding values. - */ - keySeq(): Seq.Indexed; - - /** - * Returns an Seq.Indexed of the values of this Iterable, discarding keys. - */ - valueSeq(): Seq.Indexed; - - /** - * Returns a new Seq.Indexed of [key, value] tuples. - */ - entrySeq(): Seq.Indexed>; - - - // Sequence algorithms - - /** - * Returns a new Iterable of the same type with values passed through a - * `mapper` function. - * - * Seq({ a: 1, b: 2 }).map(x => 10 * x) - * // Seq { a: 10, b: 20 } - * - */ - map( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => M, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type with only the entries for which - * the `predicate` function returns true. - * - * Seq({a:1,b:2,c:3,d:4}).filter(x => x % 2 === 0) - * // Seq { b: 2, d: 4 } - * - */ - filter( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type with only the entries for which - * the `predicate` function returns false. - * - * Seq({a:1,b:2,c:3,d:4}).filterNot(x => x % 2 === 0) - * // Seq { a: 1, c: 3 } - * - */ - filterNot( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type in reverse order. - */ - reverse(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the same entries, - * stably sorted by using a `comparator`. - * - * If a `comparator` is not provided, a default comparator uses `<` and `>`. - * - * `comparator(valueA, valueB)`: - * - * * Returns `0` if the elements should not be swapped. - * * Returns `-1` (or any negative number) if `valueA` comes before `valueB` - * * Returns `1` (or any positive number) if `valueA` comes after `valueB` - * * Is pure, i.e. it must always return the same value for the same pair - * of values. - * - * When sorting collections which have no defined order, their ordered - * equivalents will be returned. e.g. `map.sort()` returns OrderedMap. - */ - sort(comparator?: (valueA: V, valueB: V) => number): /*this*/Iterable; - - /** - * Like `sort`, but also accepts a `comparatorValueMapper` which allows for - * sorting by more sophisticated means: - * - * hitters.sortBy(hitter => hitter.avgHits); - * - */ - sortBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): /*this*/Iterable; - - /** - * Returns a `Iterable.Keyed` of `Iterable.Keyeds`, grouped by the return - * value of the `grouper` function. - * - * Note: This is always an eager operation. - */ - groupBy( - grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, - context?: any - ): /*Map*/Seq.Keyed>; - - - // Side effects - - /** - * The `sideEffect` is executed for every entry in the Iterable. - * - * Unlike `Array#forEach`, if any call of `sideEffect` returns - * `false`, the iteration will stop. Returns the number of entries iterated - * (including the last iteration which returned false). - */ - forEach( - sideEffect: (value?: V, key?: K, iter?: /*this*/Iterable) => any, - context?: any - ): number; - - - // Creating subsets - - /** - * Returns a new Iterable of the same type representing a portion of this - * Iterable from start up to but not including end. - * - * If begin is negative, it is offset from the end of the Iterable. e.g. - * `slice(-2)` returns a Iterable of the last two entries. If it is not - * provided the new Iterable will begin at the beginning of this Iterable. - * - * If end is negative, it is offset from the end of the Iterable. e.g. - * `slice(0, -1)` returns an Iterable of everything but the last entry. If - * it is not provided, the new Iterable will continue through the end of - * this Iterable. - * - * If the requested slice is equivalent to the current Iterable, then it - * will return itself. - */ - slice(begin?: number, end?: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type containing all entries except - * the first. - */ - rest(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type containing all entries except - * the last. - */ - butLast(): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which excludes the first `amount` - * entries from this Iterable. - */ - skip(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which excludes the last `amount` - * entries from this Iterable. - */ - skipLast(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries starting - * from when `predicate` first returns false. - * - * Seq.of('dog','frog','cat','hat','god') - * .skipWhile(x => x.match(/g/)) - * // Seq [ 'cat', 'hat', 'god' ] - * - */ - skipWhile( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries starting - * from when `predicate` first returns true. - * - * Seq.of('dog','frog','cat','hat','god') - * .skipUntil(x => x.match(/hat/)) - * // Seq [ 'hat', 'god' ] - * - */ - skipUntil( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the first `amount` - * entries from this Iterable. - */ - take(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes the last `amount` - * entries from this Iterable. - */ - takeLast(amount: number): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries from this - * Iterable as long as the `predicate` returns true. - * - * Seq.of('dog','frog','cat','hat','god') - * .takeWhile(x => x.match(/o/)) - * // Seq [ 'dog', 'frog' ] - * - */ - takeWhile( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - /** - * Returns a new Iterable of the same type which includes entries from this - * Iterable as long as the `predicate` returns false. - * - * Seq.of('dog','frog','cat','hat','god').takeUntil(x => x.match(/at/)) - * // ['dog', 'frog'] - * - */ - takeUntil( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): /*this*/Iterable; - - - // Combination - - /** - * Returns a new Iterable of the same type with other values and - * iterable-like concatenated to this one. - * - * For Seqs, all entries will be present in - * the resulting iterable, even if they have the same key. - */ - concat(...valuesOrIterables: /*Array|V*/any[]): /*this*/Iterable; - - /** - * Flattens nested Iterables. - * - * Will deeply flatten the Iterable by default, returning an Iterable of the - * same type, but a `depth` can be provided in the form of a number or - * boolean (where true means to shallowly flatten one level). A depth of 0 - * (or shallow: false) will deeply flatten. - * - * Flattens only others Iterable, not Arrays or Objects. - * - * Note: `flatten(true)` operates on Iterable> and - * returns Iterable - */ - flatten(depth?: number): /*this*/Iterable; - flatten(shallow?: boolean): /*this*/Iterable; - - /** - * Flat-maps the Iterable, returning an Iterable of the same type. - * - * Similar to `iter.map(...).flatten(true)`. - */ - flatMap( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => Iterable, - context?: any - ): /*this*/Iterable; - flatMap( - mapper: (value?: V, key?: K, iter?: /*this*/Iterable) => /*iterable-like*/any, - context?: any - ): /*this*/Iterable; - - - // Reducing a value - - /** - * Reduces the Iterable to a value by calling the `reducer` for every entry - * in the Iterable and passing along the reduced value. - * - * If `initialReduction` is not provided, or is null, the first item in the - * Iterable will be used. - * - * @see `Array#reduce`. - */ - reduce( - reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, - initialReduction?: R, - context?: any - ): R; - - /** - * Reduces the Iterable in reverse (from the right side). - * - * Note: Similar to this.reverse().reduce(), and provided for parity - * with `Array#reduceRight`. - */ - reduceRight( - reducer: (reduction?: R, value?: V, key?: K, iter?: /*this*/Iterable) => R, - initialReduction?: R, - context?: any - ): R; - - /** - * True if `predicate` returns true for all entries in the Iterable. - */ - every( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): boolean; - - /** - * True if `predicate` returns true for any entry in the Iterable. - */ - some( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): boolean; - - /** - * Joins values together as a string, inserting a separator between each. - * The default separator is `","`. - */ - join(separator?: string): string; - - /** - * Returns true if this Iterable includes no values. - * - * For some lazy `Seq`, `isEmpty` might need to iterate to determine - * emptiness. At most one iteration will occur. - */ - isEmpty(): boolean; - - /** - * Returns the size of this Iterable. - * - * Regardless of if this Iterable can describe its size lazily (some Seqs - * cannot), this method will always return the correct size. E.g. it - * evaluates a lazy `Seq` if necessary. - * - * If `predicate` is provided, then this returns the count of entries in the - * Iterable for which the `predicate` returns true. - */ - count(): number; - count( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any - ): number; - - /** - * Returns a `Seq.Keyed` of counts, grouped by the return value of - * the `grouper` function. - * - * Note: This is not a lazy operation. - */ - countBy( - grouper: (value?: V, key?: K, iter?: /*this*/Iterable) => G, - context?: any - ): Map; - - - // Search for value - - /** - * Returns the first value for which the `predicate` returns true. - */ - find( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): V; - - /** - * Returns the last value for which the `predicate` returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLast( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): V; - - /** - * Returns the first [key, value] entry for which the `predicate` returns true. - */ - findEntry( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): /*[K, V]*/Array; - - /** - * Returns the last [key, value] entry for which the `predicate` - * returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLastEntry( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable) => boolean, - context?: any, - notSetValue?: V - ): /*[K, V]*/Array; - - /** - * Returns the key for which the `predicate` returns true. - */ - findKey( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, - context?: any - ): K; - - /** - * Returns the last key for which the `predicate` returns true. - * - * Note: `predicate` will be called for each entry in reverse. - */ - findLastKey( - predicate: (value?: V, key?: K, iter?: /*this*/Iterable.Keyed) => boolean, - context?: any - ): K; - - /** - * Returns the key associated with the search value, or undefined. - */ - keyOf(searchValue: V): K; - - /** - * Returns the last key associated with the search value, or undefined. - */ - lastKeyOf(searchValue: V): K; - - /** - * Returns the maximum value in this collection. If any values are - * comparatively equivalent, the first one found will be returned. - * - * The `comparator` is used in the same way as `Iterable#sort`. If it is not - * provided, the default comparator is `>`. - * - * When two values are considered equivalent, the first encountered will be - * returned. Otherwise, `max` will operate independent of the order of input - * as long as the comparator is commutative. The default comparator `>` is - * commutative *only* when types do not differ. - * - * If `comparator` returns 0 and either value is NaN, undefined, or null, - * that value will be returned. - */ - max(comparator?: (valueA: V, valueB: V) => number): V; - - /** - * Like `max`, but also accepts a `comparatorValueMapper` which allows for - * comparing by more sophisticated means: - * - * hitters.maxBy(hitter => hitter.avgHits); - * - */ - maxBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - - /** - * Returns the minimum value in this collection. If any values are - * comparatively equivalent, the first one found will be returned. - * - * The `comparator` is used in the same way as `Iterable#sort`. If it is not - * provided, the default comparator is `<`. - * - * When two values are considered equivalent, the first encountered will be - * returned. Otherwise, `min` will operate independent of the order of input - * as long as the comparator is commutative. The default comparator `<` is - * commutative *only* when types do not differ. - * - * If `comparator` returns 0 and either value is NaN, undefined, or null, - * that value will be returned. - */ - min(comparator?: (valueA: V, valueB: V) => number): V; - - /** - * Like `min`, but also accepts a `comparatorValueMapper` which allows for - * comparing by more sophisticated means: - * - * hitters.minBy(hitter => hitter.avgHits); - * - */ - minBy( - comparatorValueMapper: (value?: V, key?: K, iter?: /*this*/Iterable) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - - - // Comparison - - /** - * True if `iter` includes every value in this Iterable. - */ - isSubset(iter: Iterable): boolean; - isSubset(iter: Array): boolean; - - /** - * True if this Iterable includes every value in `iter`. - */ - isSuperset(iter: Iterable): boolean; - isSuperset(iter: Array): boolean; - - - /** - * Note: this is here as a convenience to work around an issue with - * TypeScript https://github.com/Microsoft/TypeScript/issues/285, but - * Iterable does not define `size`, instead `Seq` defines `size` as - * nullable number, and `Collection` defines `size` as always a number. - * - * @ignore - */ - size: number; - } - - - /** - * Collection is the abstract base class for concrete data structures. It - * cannot be constructed directly. - * - * Implementations should extend one of the subclasses, `Collection.Keyed`, - * `Collection.Indexed`, or `Collection.Set`. - */ - export module Collection { - - - /** - * `Collection` which represents key-value pairs. - */ - export module Keyed {} - - export interface Keyed extends Collection, Iterable.Keyed { - - /** - * Returns Seq.Keyed. - * @override - */ - toSeq(): Seq.Keyed; - } - - - /** - * `Collection` which represents ordered indexed values. - */ - export module Indexed {} - - export interface Indexed extends Collection, Iterable.Indexed { - - /** - * Returns Seq.Indexed. - * @override - */ - toSeq(): Seq.Indexed; - } - - - /** - * `Collection` which represents values, unassociated with keys or indices. - * - * `Collection.Set` implementations should guarantee value uniqueness. - */ - export module Set {} - - export interface Set extends Collection, Iterable.Set { - - /** - * Returns Seq.Set. - * @override - */ - toSeq(): Seq.Set; - } - - } - - export interface Collection extends Iterable { - - /** - * All collections maintain their current `size` as an integer. - */ - size: number; - } - - - /** - * ES6 Iterator. - * - * This is not part of the Immutable library, but a common interface used by - * many types in ES6 JavaScript. - * - * @ignore - */ - export interface Iterator { - next(): { value: T; done: boolean; } - } - -} - -declare module "immutable" { - export = Immutable -} diff --git a/packages/client/node_modules/immutable/dist/immutable.js b/packages/client/node_modules/immutable/dist/immutable.js deleted file mode 100644 index c88ae83..0000000 --- a/packages/client/node_modules/immutable/dist/immutable.js +++ /dev/null @@ -1,4977 +0,0 @@ -/** - * 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, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.Immutable = factory()); -}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice; - - function createClass(ctor, superClass) { - if (superClass) { - ctor.prototype = Object.create(superClass.prototype); - } - ctor.prototype.constructor = ctor; - } - - function Iterable(value) { - return isIterable(value) ? value : Seq(value); - } - - - createClass(KeyedIterable, Iterable); - function KeyedIterable(value) { - return isKeyed(value) ? value : KeyedSeq(value); - } - - - createClass(IndexedIterable, Iterable); - function IndexedIterable(value) { - return isIndexed(value) ? value : IndexedSeq(value); - } - - - createClass(SetIterable, Iterable); - function SetIterable(value) { - return isIterable(value) && !isAssociative(value) ? value : SetSeq(value); - } - - - - function isIterable(maybeIterable) { - return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]); - } - - function isKeyed(maybeKeyed) { - return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]); - } - - function isIndexed(maybeIndexed) { - return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]); - } - - function isAssociative(maybeAssociative) { - return isKeyed(maybeAssociative) || isIndexed(maybeAssociative); - } - - function isOrdered(maybeOrdered) { - return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]); - } - - Iterable.isIterable = isIterable; - Iterable.isKeyed = isKeyed; - Iterable.isIndexed = isIndexed; - Iterable.isAssociative = isAssociative; - Iterable.isOrdered = isOrdered; - - Iterable.Keyed = KeyedIterable; - Iterable.Indexed = IndexedIterable; - Iterable.Set = SetIterable; - - - var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; - var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; - var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; - var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; - - // Used for setting prototype methods that IE8 chokes on. - var DELETE = 'delete'; - - // Constants describing the size of trie nodes. - var SHIFT = 5; // Resulted in best performance after ______? - var SIZE = 1 << SHIFT; - var MASK = SIZE - 1; - - // A consistent shared value representing "not set" which equals nothing other - // than itself, and nothing that could be provided externally. - var NOT_SET = {}; - - // Boolean references, Rough equivalent of `bool &`. - var CHANGE_LENGTH = { value: false }; - var DID_ALTER = { value: false }; - - function MakeRef(ref) { - ref.value = false; - return ref; - } - - function SetRef(ref) { - ref && (ref.value = true); - } - - // A function which returns a value representing an "owner" for transient writes - // to tries. The return value will only ever equal itself, and will not equal - // the return of any subsequent call of this function. - function OwnerID() {} - - // http://jsperf.com/copy-array-inline - function arrCopy(arr, offset) { - offset = offset || 0; - var len = Math.max(0, arr.length - offset); - var newArr = new Array(len); - for (var ii = 0; ii < len; ii++) { - newArr[ii] = arr[ii + offset]; - } - return newArr; - } - - function ensureSize(iter) { - if (iter.size === undefined) { - iter.size = iter.__iterate(returnTrue); - } - return iter.size; - } - - function wrapIndex(iter, index) { - // This implements "is array index" which the ECMAString spec defines as: - // - // A String property name P is an array index if and only if - // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal - // to 2^32−1. - // - // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects - if (typeof index !== 'number') { - var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32 - if ('' + uint32Index !== index || uint32Index === 4294967295) { - return NaN; - } - index = uint32Index; - } - return index < 0 ? ensureSize(iter) + index : index; - } - - function returnTrue() { - return true; - } - - function wholeSlice(begin, end, size) { - return (begin === 0 || (size !== undefined && begin <= -size)) && - (end === undefined || (size !== undefined && end >= size)); - } - - function resolveBegin(begin, size) { - return resolveIndex(begin, size, 0); - } - - function resolveEnd(end, size) { - return resolveIndex(end, size, size); - } - - function resolveIndex(index, size, defaultIndex) { - return index === undefined ? - defaultIndex : - index < 0 ? - Math.max(0, size + index) : - size === undefined ? - index : - Math.min(size, index); - } - - /* global Symbol */ - - var ITERATE_KEYS = 0; - var ITERATE_VALUES = 1; - var ITERATE_ENTRIES = 2; - - var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; - - var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL; - - - function Iterator(next) { - this.next = next; - } - - Iterator.prototype.toString = function() { - return '[Iterator]'; - }; - - - Iterator.KEYS = ITERATE_KEYS; - Iterator.VALUES = ITERATE_VALUES; - Iterator.ENTRIES = ITERATE_ENTRIES; - - Iterator.prototype.inspect = - Iterator.prototype.toSource = function () { return this.toString(); } - Iterator.prototype[ITERATOR_SYMBOL] = function () { - return this; - }; - - - function iteratorValue(type, k, v, iteratorResult) { - var value = type === 0 ? k : type === 1 ? v : [k, v]; - iteratorResult ? (iteratorResult.value = value) : (iteratorResult = { - value: value, done: false - }); - return iteratorResult; - } - - function iteratorDone() { - return { value: undefined, done: true }; - } - - function hasIterator(maybeIterable) { - return !!getIteratorFn(maybeIterable); - } - - function isIterator(maybeIterator) { - return maybeIterator && typeof maybeIterator.next === 'function'; - } - - function getIterator(iterable) { - var iteratorFn = getIteratorFn(iterable); - return iteratorFn && iteratorFn.call(iterable); - } - - function getIteratorFn(iterable) { - var iteratorFn = iterable && ( - (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) || - iterable[FAUX_ITERATOR_SYMBOL] - ); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - function isArrayLike(value) { - return value && typeof value.length === 'number'; - } - - createClass(Seq, Iterable); - function Seq(value) { - return value === null || value === undefined ? emptySequence() : - isIterable(value) ? value.toSeq() : seqFromValue(value); - } - - Seq.of = function(/*...values*/) { - return Seq(arguments); - }; - - Seq.prototype.toSeq = function() { - return this; - }; - - Seq.prototype.toString = function() { - return this.__toString('Seq {', '}'); - }; - - Seq.prototype.cacheResult = function() { - if (!this._cache && this.__iterateUncached) { - this._cache = this.entrySeq().toArray(); - this.size = this._cache.length; - } - return this; - }; - - // abstract __iterateUncached(fn, reverse) - - Seq.prototype.__iterate = function(fn, reverse) { - return seqIterate(this, fn, reverse, true); - }; - - // abstract __iteratorUncached(type, reverse) - - Seq.prototype.__iterator = function(type, reverse) { - return seqIterator(this, type, reverse, true); - }; - - - - createClass(KeyedSeq, Seq); - function KeyedSeq(value) { - return value === null || value === undefined ? - emptySequence().toKeyedSeq() : - isIterable(value) ? - (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) : - keyedSeqFromValue(value); - } - - KeyedSeq.prototype.toKeyedSeq = function() { - return this; - }; - - - - createClass(IndexedSeq, Seq); - function IndexedSeq(value) { - return value === null || value === undefined ? emptySequence() : - !isIterable(value) ? indexedSeqFromValue(value) : - isKeyed(value) ? value.entrySeq() : value.toIndexedSeq(); - } - - IndexedSeq.of = function(/*...values*/) { - return IndexedSeq(arguments); - }; - - IndexedSeq.prototype.toIndexedSeq = function() { - return this; - }; - - IndexedSeq.prototype.toString = function() { - return this.__toString('Seq [', ']'); - }; - - IndexedSeq.prototype.__iterate = function(fn, reverse) { - return seqIterate(this, fn, reverse, false); - }; - - IndexedSeq.prototype.__iterator = function(type, reverse) { - return seqIterator(this, type, reverse, false); - }; - - - - createClass(SetSeq, Seq); - function SetSeq(value) { - return ( - value === null || value === undefined ? emptySequence() : - !isIterable(value) ? indexedSeqFromValue(value) : - isKeyed(value) ? value.entrySeq() : value - ).toSetSeq(); - } - - SetSeq.of = function(/*...values*/) { - return SetSeq(arguments); - }; - - SetSeq.prototype.toSetSeq = function() { - return this; - }; - - - - Seq.isSeq = isSeq; - Seq.Keyed = KeyedSeq; - Seq.Set = SetSeq; - Seq.Indexed = IndexedSeq; - - var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@'; - - Seq.prototype[IS_SEQ_SENTINEL] = true; - - - - createClass(ArraySeq, IndexedSeq); - function ArraySeq(array) { - this._array = array; - this.size = array.length; - } - - ArraySeq.prototype.get = function(index, notSetValue) { - return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue; - }; - - ArraySeq.prototype.__iterate = function(fn, reverse) { - var array = this._array; - var maxIndex = array.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) { - return ii + 1; - } - } - return ii; - }; - - ArraySeq.prototype.__iterator = function(type, reverse) { - var array = this._array; - var maxIndex = array.length - 1; - var ii = 0; - return new Iterator(function() - {return ii > maxIndex ? - iteratorDone() : - iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])} - ); - }; - - - - createClass(ObjectSeq, KeyedSeq); - function ObjectSeq(object) { - var keys = Object.keys(object); - this._object = object; - this._keys = keys; - this.size = keys.length; - } - - ObjectSeq.prototype.get = function(key, notSetValue) { - if (notSetValue !== undefined && !this.has(key)) { - return notSetValue; - } - return this._object[key]; - }; - - ObjectSeq.prototype.has = function(key) { - return this._object.hasOwnProperty(key); - }; - - ObjectSeq.prototype.__iterate = function(fn, reverse) { - var object = this._object; - var keys = this._keys; - var maxIndex = keys.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - var key = keys[reverse ? maxIndex - ii : ii]; - if (fn(object[key], key, this) === false) { - return ii + 1; - } - } - return ii; - }; - - ObjectSeq.prototype.__iterator = function(type, reverse) { - var object = this._object; - var keys = this._keys; - var maxIndex = keys.length - 1; - var ii = 0; - return new Iterator(function() { - var key = keys[reverse ? maxIndex - ii : ii]; - return ii++ > maxIndex ? - iteratorDone() : - iteratorValue(type, key, object[key]); - }); - }; - - ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true; - - - createClass(IterableSeq, IndexedSeq); - function IterableSeq(iterable) { - this._iterable = iterable; - this.size = iterable.length || iterable.size; - } - - IterableSeq.prototype.__iterateUncached = function(fn, reverse) { - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterable = this._iterable; - var iterator = getIterator(iterable); - var iterations = 0; - if (isIterator(iterator)) { - var step; - while (!(step = iterator.next()).done) { - if (fn(step.value, iterations++, this) === false) { - break; - } - } - } - return iterations; - }; - - IterableSeq.prototype.__iteratorUncached = function(type, reverse) { - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterable = this._iterable; - var iterator = getIterator(iterable); - if (!isIterator(iterator)) { - return new Iterator(iteratorDone); - } - var iterations = 0; - return new Iterator(function() { - var step = iterator.next(); - return step.done ? step : iteratorValue(type, iterations++, step.value); - }); - }; - - - - createClass(IteratorSeq, IndexedSeq); - function IteratorSeq(iterator) { - this._iterator = iterator; - this._iteratorCache = []; - } - - IteratorSeq.prototype.__iterateUncached = function(fn, reverse) { - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterator = this._iterator; - var cache = this._iteratorCache; - var iterations = 0; - while (iterations < cache.length) { - if (fn(cache[iterations], iterations++, this) === false) { - return iterations; - } - } - var step; - while (!(step = iterator.next()).done) { - var val = step.value; - cache[iterations] = val; - if (fn(val, iterations++, this) === false) { - break; - } - } - return iterations; - }; - - IteratorSeq.prototype.__iteratorUncached = function(type, reverse) { - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = this._iterator; - var cache = this._iteratorCache; - var iterations = 0; - return new Iterator(function() { - if (iterations >= cache.length) { - var step = iterator.next(); - if (step.done) { - return step; - } - cache[iterations] = step.value; - } - return iteratorValue(type, iterations, cache[iterations++]); - }); - }; - - - - - // # pragma Helper functions - - function isSeq(maybeSeq) { - return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]); - } - - var EMPTY_SEQ; - - function emptySequence() { - return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([])); - } - - function keyedSeqFromValue(value) { - var seq = - Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() : - isIterator(value) ? new IteratorSeq(value).fromEntrySeq() : - hasIterator(value) ? new IterableSeq(value).fromEntrySeq() : - typeof value === 'object' ? new ObjectSeq(value) : - undefined; - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of [k, v] entries, '+ - 'or keyed object: ' + value - ); - } - return seq; - } - - function indexedSeqFromValue(value) { - var seq = maybeIndexedSeqFromValue(value); - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of values: ' + value - ); - } - return seq; - } - - function seqFromValue(value) { - var seq = maybeIndexedSeqFromValue(value) || - (typeof value === 'object' && new ObjectSeq(value)); - if (!seq) { - throw new TypeError( - 'Expected Array or iterable object of values, or keyed object: ' + value - ); - } - return seq; - } - - function maybeIndexedSeqFromValue(value) { - return ( - isArrayLike(value) ? new ArraySeq(value) : - isIterator(value) ? new IteratorSeq(value) : - hasIterator(value) ? new IterableSeq(value) : - undefined - ); - } - - function seqIterate(seq, fn, reverse, useKeys) { - var cache = seq._cache; - if (cache) { - var maxIndex = cache.length - 1; - for (var ii = 0; ii <= maxIndex; ii++) { - var entry = cache[reverse ? maxIndex - ii : ii]; - if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) { - return ii + 1; - } - } - return ii; - } - return seq.__iterateUncached(fn, reverse); - } - - function seqIterator(seq, type, reverse, useKeys) { - var cache = seq._cache; - if (cache) { - var maxIndex = cache.length - 1; - var ii = 0; - return new Iterator(function() { - var entry = cache[reverse ? maxIndex - ii : ii]; - return ii++ > maxIndex ? - iteratorDone() : - iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]); - }); - } - return seq.__iteratorUncached(type, reverse); - } - - function fromJS(json, converter) { - return converter ? - fromJSWith(converter, json, '', {'': json}) : - fromJSDefault(json); - } - - function fromJSWith(converter, json, key, parentJSON) { - if (Array.isArray(json)) { - return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); - } - if (isPlainObj(json)) { - return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)})); - } - return json; - } - - function fromJSDefault(json) { - if (Array.isArray(json)) { - return IndexedSeq(json).map(fromJSDefault).toList(); - } - if (isPlainObj(json)) { - return KeyedSeq(json).map(fromJSDefault).toMap(); - } - return json; - } - - function isPlainObj(value) { - return value && (value.constructor === Object || value.constructor === undefined); - } - - /** - * An extension of the "same-value" algorithm as [described for use by ES6 Map - * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality) - * - * NaN is considered the same as NaN, however -0 and 0 are considered the same - * value, which is different from the algorithm described by - * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). - * - * This is extended further to allow Objects to describe the values they - * represent, by way of `valueOf` or `equals` (and `hashCode`). - * - * Note: because of this extension, the key equality of Immutable.Map and the - * value equality of Immutable.Set will differ from ES6 Map and Set. - * - * ### Defining custom values - * - * The easiest way to describe the value an object represents is by implementing - * `valueOf`. For example, `Date` represents a value by returning a unix - * timestamp for `valueOf`: - * - * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ... - * var date2 = new Date(1234567890000); - * date1.valueOf(); // 1234567890000 - * assert( date1 !== date2 ); - * assert( Immutable.is( date1, date2 ) ); - * - * Note: overriding `valueOf` may have other implications if you use this object - * where JavaScript expects a primitive, such as implicit string coercion. - * - * For more complex types, especially collections, implementing `valueOf` may - * not be performant. An alternative is to implement `equals` and `hashCode`. - * - * `equals` takes another object, presumably of similar type, and returns true - * if the it is equal. Equality is symmetrical, so the same result should be - * returned if this and the argument are flipped. - * - * assert( a.equals(b) === b.equals(a) ); - * - * `hashCode` returns a 32bit integer number representing the object which will - * be used to determine how to store the value object in a Map or Set. You must - * provide both or neither methods, one must not exist without the other. - * - * Also, an important relationship between these methods must be upheld: if two - * values are equal, they *must* return the same hashCode. If the values are not - * equal, they might have the same hashCode; this is called a hash collision, - * and while undesirable for performance reasons, it is acceptable. - * - * if (a.equals(b)) { - * assert( a.hashCode() === b.hashCode() ); - * } - * - * All Immutable collections implement `equals` and `hashCode`. - * - */ - function is(valueA, valueB) { - if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { - return true; - } - if (!valueA || !valueB) { - return false; - } - if (typeof valueA.valueOf === 'function' && - typeof valueB.valueOf === 'function') { - valueA = valueA.valueOf(); - valueB = valueB.valueOf(); - if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) { - return true; - } - if (!valueA || !valueB) { - return false; - } - } - if (typeof valueA.equals === 'function' && - typeof valueB.equals === 'function' && - valueA.equals(valueB)) { - return true; - } - return false; - } - - function deepEqual(a, b) { - if (a === b) { - return true; - } - - if ( - !isIterable(b) || - a.size !== undefined && b.size !== undefined && a.size !== b.size || - a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash || - isKeyed(a) !== isKeyed(b) || - isIndexed(a) !== isIndexed(b) || - isOrdered(a) !== isOrdered(b) - ) { - return false; - } - - if (a.size === 0 && b.size === 0) { - return true; - } - - var notAssociative = !isAssociative(a); - - if (isOrdered(a)) { - var entries = a.entries(); - return b.every(function(v, k) { - var entry = entries.next().value; - return entry && is(entry[1], v) && (notAssociative || is(entry[0], k)); - }) && entries.next().done; - } - - var flipped = false; - - if (a.size === undefined) { - if (b.size === undefined) { - if (typeof a.cacheResult === 'function') { - a.cacheResult(); - } - } else { - flipped = true; - var _ = a; - a = b; - b = _; - } - } - - var allEqual = true; - var bSize = b.__iterate(function(v, k) { - if (notAssociative ? !a.has(v) : - flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) { - allEqual = false; - return false; - } - }); - - return allEqual && a.size === bSize; - } - - createClass(Repeat, IndexedSeq); - - function Repeat(value, times) { - if (!(this instanceof Repeat)) { - return new Repeat(value, times); - } - this._value = value; - this.size = times === undefined ? Infinity : Math.max(0, times); - if (this.size === 0) { - if (EMPTY_REPEAT) { - return EMPTY_REPEAT; - } - EMPTY_REPEAT = this; - } - } - - Repeat.prototype.toString = function() { - if (this.size === 0) { - return 'Repeat []'; - } - return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]'; - }; - - Repeat.prototype.get = function(index, notSetValue) { - return this.has(index) ? this._value : notSetValue; - }; - - Repeat.prototype.includes = function(searchValue) { - return is(this._value, searchValue); - }; - - Repeat.prototype.slice = function(begin, end) { - var size = this.size; - return wholeSlice(begin, end, size) ? this : - new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size)); - }; - - Repeat.prototype.reverse = function() { - return this; - }; - - Repeat.prototype.indexOf = function(searchValue) { - if (is(this._value, searchValue)) { - return 0; - } - return -1; - }; - - Repeat.prototype.lastIndexOf = function(searchValue) { - if (is(this._value, searchValue)) { - return this.size; - } - return -1; - }; - - Repeat.prototype.__iterate = function(fn, reverse) { - for (var ii = 0; ii < this.size; ii++) { - if (fn(this._value, ii, this) === false) { - return ii + 1; - } - } - return ii; - }; - - Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this; - var ii = 0; - return new Iterator(function() - {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()} - ); - }; - - Repeat.prototype.equals = function(other) { - return other instanceof Repeat ? - is(this._value, other._value) : - deepEqual(other); - }; - - - var EMPTY_REPEAT; - - function invariant(condition, error) { - if (!condition) throw new Error(error); - } - - createClass(Range, IndexedSeq); - - function Range(start, end, step) { - if (!(this instanceof Range)) { - return new Range(start, end, step); - } - invariant(step !== 0, 'Cannot step a Range by 0'); - start = start || 0; - if (end === undefined) { - end = Infinity; - } - step = step === undefined ? 1 : Math.abs(step); - if (end < start) { - step = -step; - } - this._start = start; - this._end = end; - this._step = step; - this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1); - if (this.size === 0) { - if (EMPTY_RANGE) { - return EMPTY_RANGE; - } - EMPTY_RANGE = this; - } - } - - Range.prototype.toString = function() { - if (this.size === 0) { - return 'Range []'; - } - return 'Range [ ' + - this._start + '...' + this._end + - (this._step !== 1 ? ' by ' + this._step : '') + - ' ]'; - }; - - Range.prototype.get = function(index, notSetValue) { - return this.has(index) ? - this._start + wrapIndex(this, index) * this._step : - notSetValue; - }; - - Range.prototype.includes = function(searchValue) { - var possibleIndex = (searchValue - this._start) / this._step; - return possibleIndex >= 0 && - possibleIndex < this.size && - possibleIndex === Math.floor(possibleIndex); - }; - - Range.prototype.slice = function(begin, end) { - if (wholeSlice(begin, end, this.size)) { - return this; - } - begin = resolveBegin(begin, this.size); - end = resolveEnd(end, this.size); - if (end <= begin) { - return new Range(0, 0); - } - return new Range(this.get(begin, this._end), this.get(end, this._end), this._step); - }; - - Range.prototype.indexOf = function(searchValue) { - var offsetValue = searchValue - this._start; - if (offsetValue % this._step === 0) { - var index = offsetValue / this._step; - if (index >= 0 && index < this.size) { - return index - } - } - return -1; - }; - - Range.prototype.lastIndexOf = function(searchValue) { - return this.indexOf(searchValue); - }; - - Range.prototype.__iterate = function(fn, reverse) { - var maxIndex = this.size - 1; - var step = this._step; - var value = reverse ? this._start + maxIndex * step : this._start; - for (var ii = 0; ii <= maxIndex; ii++) { - if (fn(value, ii, this) === false) { - return ii + 1; - } - value += reverse ? -step : step; - } - return ii; - }; - - Range.prototype.__iterator = function(type, reverse) { - var maxIndex = this.size - 1; - var step = this._step; - var value = reverse ? this._start + maxIndex * step : this._start; - var ii = 0; - return new Iterator(function() { - var v = value; - value += reverse ? -step : step; - return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v); - }); - }; - - Range.prototype.equals = function(other) { - return other instanceof Range ? - this._start === other._start && - this._end === other._end && - this._step === other._step : - deepEqual(this, other); - }; - - - var EMPTY_RANGE; - - createClass(Collection, Iterable); - function Collection() { - throw TypeError('Abstract'); - } - - - createClass(KeyedCollection, Collection);function KeyedCollection() {} - - createClass(IndexedCollection, Collection);function IndexedCollection() {} - - createClass(SetCollection, Collection);function SetCollection() {} - - - Collection.Keyed = KeyedCollection; - Collection.Indexed = IndexedCollection; - Collection.Set = SetCollection; - - var imul = - typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ? - Math.imul : - function imul(a, b) { - a = a | 0; // int - b = b | 0; // int - var c = a & 0xffff; - var d = b & 0xffff; - // Shift by 0 fixes the sign on the high part. - return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int - }; - - // v8 has an optimization for storing 31-bit signed numbers. - // Values which have either 00 or 11 as the high order bits qualify. - // This function drops the highest order bit in a signed number, maintaining - // the sign bit. - function smi(i32) { - return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF); - } - - function hash(o) { - if (o === false || o === null || o === undefined) { - return 0; - } - if (typeof o.valueOf === 'function') { - o = o.valueOf(); - if (o === false || o === null || o === undefined) { - return 0; - } - } - if (o === true) { - return 1; - } - var type = typeof o; - if (type === 'number') { - if (o !== o || o === Infinity) { - return 0; - } - var h = o | 0; - if (h !== o) { - h ^= o * 0xFFFFFFFF; - } - while (o > 0xFFFFFFFF) { - o /= 0xFFFFFFFF; - h ^= o; - } - return smi(h); - } - if (type === 'string') { - return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o); - } - if (typeof o.hashCode === 'function') { - return o.hashCode(); - } - if (type === 'object') { - return hashJSObj(o); - } - if (typeof o.toString === 'function') { - return hashString(o.toString()); - } - throw new Error('Value type ' + type + ' cannot be hashed.'); - } - - function cachedHashString(string) { - var hash = stringHashCache[string]; - if (hash === undefined) { - hash = hashString(string); - if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) { - STRING_HASH_CACHE_SIZE = 0; - stringHashCache = {}; - } - STRING_HASH_CACHE_SIZE++; - stringHashCache[string] = hash; - } - return hash; - } - - // http://jsperf.com/hashing-strings - function hashString(string) { - // This is the hash from JVM - // The hash code for a string is computed as - // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1], - // where s[i] is the ith character of the string and n is the length of - // the string. We "mod" the result to make it between 0 (inclusive) and 2^31 - // (exclusive) by dropping high bits. - var hash = 0; - for (var ii = 0; ii < string.length; ii++) { - hash = 31 * hash + string.charCodeAt(ii) | 0; - } - return smi(hash); - } - - function hashJSObj(obj) { - var hash; - if (usingWeakMap) { - hash = weakMap.get(obj); - if (hash !== undefined) { - return hash; - } - } - - hash = obj[UID_HASH_KEY]; - if (hash !== undefined) { - return hash; - } - - if (!canDefineProperty) { - hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY]; - if (hash !== undefined) { - return hash; - } - - hash = getIENodeHash(obj); - if (hash !== undefined) { - return hash; - } - } - - hash = ++objHashUID; - if (objHashUID & 0x40000000) { - objHashUID = 0; - } - - if (usingWeakMap) { - weakMap.set(obj, hash); - } else if (isExtensible !== undefined && isExtensible(obj) === false) { - throw new Error('Non-extensible objects are not allowed as keys.'); - } else if (canDefineProperty) { - Object.defineProperty(obj, UID_HASH_KEY, { - 'enumerable': false, - 'configurable': false, - 'writable': false, - 'value': hash - }); - } else if (obj.propertyIsEnumerable !== undefined && - obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) { - // Since we can't define a non-enumerable property on the object - // we'll hijack one of the less-used non-enumerable properties to - // save our hash on it. Since this is a function it will not show up in - // `JSON.stringify` which is what we want. - obj.propertyIsEnumerable = function() { - return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments); - }; - obj.propertyIsEnumerable[UID_HASH_KEY] = hash; - } else if (obj.nodeType !== undefined) { - // At this point we couldn't get the IE `uniqueID` to use as a hash - // and we couldn't use a non-enumerable property to exploit the - // dontEnum bug so we simply add the `UID_HASH_KEY` on the node - // itself. - obj[UID_HASH_KEY] = hash; - } else { - throw new Error('Unable to set a non-enumerable property on object.'); - } - - return hash; - } - - // Get references to ES5 object methods. - var isExtensible = Object.isExtensible; - - // True if Object.defineProperty works as expected. IE8 fails this test. - var canDefineProperty = (function() { - try { - Object.defineProperty({}, '@', {}); - return true; - } catch (e) { - return false; - } - }()); - - // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it - // and avoid memory leaks from the IE cloneNode bug. - function getIENodeHash(node) { - if (node && node.nodeType > 0) { - switch (node.nodeType) { - case 1: // Element - return node.uniqueID; - case 9: // Document - return node.documentElement && node.documentElement.uniqueID; - } - } - } - - // If possible, use a WeakMap. - var usingWeakMap = typeof WeakMap === 'function'; - var weakMap; - if (usingWeakMap) { - weakMap = new WeakMap(); - } - - var objHashUID = 0; - - var UID_HASH_KEY = '__immutablehash__'; - if (typeof Symbol === 'function') { - UID_HASH_KEY = Symbol(UID_HASH_KEY); - } - - var STRING_HASH_CACHE_MIN_STRLEN = 16; - var STRING_HASH_CACHE_MAX_SIZE = 255; - var STRING_HASH_CACHE_SIZE = 0; - var stringHashCache = {}; - - function assertNotInfinite(size) { - invariant( - size !== Infinity, - 'Cannot perform this action with an infinite size.' - ); - } - - createClass(Map, KeyedCollection); - - // @pragma Construction - - function Map(value) { - return value === null || value === undefined ? emptyMap() : - isMap(value) && !isOrdered(value) ? value : - emptyMap().withMutations(function(map ) { - var iter = KeyedIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v, k) {return map.set(k, v)}); - }); - } - - Map.of = function() {var keyValues = SLICE$0.call(arguments, 0); - return emptyMap().withMutations(function(map ) { - for (var i = 0; i < keyValues.length; i += 2) { - if (i + 1 >= keyValues.length) { - throw new Error('Missing value for key: ' + keyValues[i]); - } - map.set(keyValues[i], keyValues[i + 1]); - } - }); - }; - - Map.prototype.toString = function() { - return this.__toString('Map {', '}'); - }; - - // @pragma Access - - Map.prototype.get = function(k, notSetValue) { - return this._root ? - this._root.get(0, undefined, k, notSetValue) : - notSetValue; - }; - - // @pragma Modification - - Map.prototype.set = function(k, v) { - return updateMap(this, k, v); - }; - - Map.prototype.setIn = function(keyPath, v) { - return this.updateIn(keyPath, NOT_SET, function() {return v}); - }; - - Map.prototype.remove = function(k) { - return updateMap(this, k, NOT_SET); - }; - - Map.prototype.deleteIn = function(keyPath) { - return this.updateIn(keyPath, function() {return NOT_SET}); - }; - - Map.prototype.update = function(k, notSetValue, updater) { - return arguments.length === 1 ? - k(this) : - this.updateIn([k], notSetValue, updater); - }; - - Map.prototype.updateIn = function(keyPath, notSetValue, updater) { - if (!updater) { - updater = notSetValue; - notSetValue = undefined; - } - var updatedValue = updateInDeepMap( - this, - forceIterator(keyPath), - notSetValue, - updater - ); - return updatedValue === NOT_SET ? undefined : updatedValue; - }; - - Map.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._root = null; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyMap(); - }; - - // @pragma Composition - - Map.prototype.merge = function(/*...iters*/) { - return mergeIntoMapWith(this, undefined, arguments); - }; - - Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoMapWith(this, merger, iters); - }; - - Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); - return this.updateIn( - keyPath, - emptyMap(), - function(m ) {return typeof m.merge === 'function' ? - m.merge.apply(m, iters) : - iters[iters.length - 1]} - ); - }; - - Map.prototype.mergeDeep = function(/*...iters*/) { - return mergeIntoMapWith(this, deepMerger, arguments); - }; - - Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoMapWith(this, deepMergerWith(merger), iters); - }; - - Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1); - return this.updateIn( - keyPath, - emptyMap(), - function(m ) {return typeof m.mergeDeep === 'function' ? - m.mergeDeep.apply(m, iters) : - iters[iters.length - 1]} - ); - }; - - Map.prototype.sort = function(comparator) { - // Late binding - return OrderedMap(sortFactory(this, comparator)); - }; - - Map.prototype.sortBy = function(mapper, comparator) { - // Late binding - return OrderedMap(sortFactory(this, comparator, mapper)); - }; - - // @pragma Mutability - - Map.prototype.withMutations = function(fn) { - var mutable = this.asMutable(); - fn(mutable); - return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this; - }; - - Map.prototype.asMutable = function() { - return this.__ownerID ? this : this.__ensureOwner(new OwnerID()); - }; - - Map.prototype.asImmutable = function() { - return this.__ensureOwner(); - }; - - Map.prototype.wasAltered = function() { - return this.__altered; - }; - - Map.prototype.__iterator = function(type, reverse) { - return new MapIterator(this, type, reverse); - }; - - Map.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var iterations = 0; - this._root && this._root.iterate(function(entry ) { - iterations++; - return fn(entry[1], entry[0], this$0); - }, reverse); - return iterations; - }; - - Map.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - this.__altered = false; - return this; - } - return makeMap(this.size, this._root, ownerID, this.__hash); - }; - - - function isMap(maybeMap) { - return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]); - } - - Map.isMap = isMap; - - var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@'; - - var MapPrototype = Map.prototype; - MapPrototype[IS_MAP_SENTINEL] = true; - MapPrototype[DELETE] = MapPrototype.remove; - MapPrototype.removeIn = MapPrototype.deleteIn; - - - // #pragma Trie Nodes - - - - function ArrayMapNode(ownerID, entries) { - this.ownerID = ownerID; - this.entries = entries; - } - - ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { - var entries = this.entries; - for (var ii = 0, len = entries.length; ii < len; ii++) { - if (is(key, entries[ii][0])) { - return entries[ii][1]; - } - } - return notSetValue; - }; - - ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - var removed = value === NOT_SET; - - var entries = this.entries; - var idx = 0; - for (var len = entries.length; idx < len; idx++) { - if (is(key, entries[idx][0])) { - break; - } - } - var exists = idx < len; - - if (exists ? entries[idx][1] === value : removed) { - return this; - } - - SetRef(didAlter); - (removed || !exists) && SetRef(didChangeSize); - - if (removed && entries.length === 1) { - return; // undefined - } - - if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) { - return createNodes(ownerID, entries, key, value); - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newEntries = isEditable ? entries : arrCopy(entries); - - if (exists) { - if (removed) { - idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); - } else { - newEntries[idx] = [key, value]; - } - } else { - newEntries.push([key, value]); - } - - if (isEditable) { - this.entries = newEntries; - return this; - } - - return new ArrayMapNode(ownerID, newEntries); - }; - - - - - function BitmapIndexedNode(ownerID, bitmap, nodes) { - this.ownerID = ownerID; - this.bitmap = bitmap; - this.nodes = nodes; - } - - BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK)); - var bitmap = this.bitmap; - return (bitmap & bit) === 0 ? notSetValue : - this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue); - }; - - BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var bit = 1 << keyHashFrag; - var bitmap = this.bitmap; - var exists = (bitmap & bit) !== 0; - - if (!exists && value === NOT_SET) { - return this; - } - - var idx = popCount(bitmap & (bit - 1)); - var nodes = this.nodes; - var node = exists ? nodes[idx] : undefined; - var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); - - if (newNode === node) { - return this; - } - - if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) { - return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode); - } - - if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) { - return nodes[idx ^ 1]; - } - - if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) { - return newNode; - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit; - var newNodes = exists ? newNode ? - setIn(nodes, idx, newNode, isEditable) : - spliceOut(nodes, idx, isEditable) : - spliceIn(nodes, idx, newNode, isEditable); - - if (isEditable) { - this.bitmap = newBitmap; - this.nodes = newNodes; - return this; - } - - return new BitmapIndexedNode(ownerID, newBitmap, newNodes); - }; - - - - - function HashArrayMapNode(ownerID, count, nodes) { - this.ownerID = ownerID; - this.count = count; - this.nodes = nodes; - } - - HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var node = this.nodes[idx]; - return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue; - }; - - HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - var removed = value === NOT_SET; - var nodes = this.nodes; - var node = nodes[idx]; - - if (removed && !node) { - return this; - } - - var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter); - if (newNode === node) { - return this; - } - - var newCount = this.count; - if (!node) { - newCount++; - } else if (!newNode) { - newCount--; - if (newCount < MIN_HASH_ARRAY_MAP_SIZE) { - return packNodes(ownerID, nodes, newCount, idx); - } - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newNodes = setIn(nodes, idx, newNode, isEditable); - - if (isEditable) { - this.count = newCount; - this.nodes = newNodes; - return this; - } - - return new HashArrayMapNode(ownerID, newCount, newNodes); - }; - - - - - function HashCollisionNode(ownerID, keyHash, entries) { - this.ownerID = ownerID; - this.keyHash = keyHash; - this.entries = entries; - } - - HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) { - var entries = this.entries; - for (var ii = 0, len = entries.length; ii < len; ii++) { - if (is(key, entries[ii][0])) { - return entries[ii][1]; - } - } - return notSetValue; - }; - - HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (keyHash === undefined) { - keyHash = hash(key); - } - - var removed = value === NOT_SET; - - if (keyHash !== this.keyHash) { - if (removed) { - return this; - } - SetRef(didAlter); - SetRef(didChangeSize); - return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]); - } - - var entries = this.entries; - var idx = 0; - for (var len = entries.length; idx < len; idx++) { - if (is(key, entries[idx][0])) { - break; - } - } - var exists = idx < len; - - if (exists ? entries[idx][1] === value : removed) { - return this; - } - - SetRef(didAlter); - (removed || !exists) && SetRef(didChangeSize); - - if (removed && len === 2) { - return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]); - } - - var isEditable = ownerID && ownerID === this.ownerID; - var newEntries = isEditable ? entries : arrCopy(entries); - - if (exists) { - if (removed) { - idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop()); - } else { - newEntries[idx] = [key, value]; - } - } else { - newEntries.push([key, value]); - } - - if (isEditable) { - this.entries = newEntries; - return this; - } - - return new HashCollisionNode(ownerID, this.keyHash, newEntries); - }; - - - - - function ValueNode(ownerID, keyHash, entry) { - this.ownerID = ownerID; - this.keyHash = keyHash; - this.entry = entry; - } - - ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) { - return is(key, this.entry[0]) ? this.entry[1] : notSetValue; - }; - - ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - var removed = value === NOT_SET; - var keyMatch = is(key, this.entry[0]); - if (keyMatch ? value === this.entry[1] : removed) { - return this; - } - - SetRef(didAlter); - - if (removed) { - SetRef(didChangeSize); - return; // undefined - } - - if (keyMatch) { - if (ownerID && ownerID === this.ownerID) { - this.entry[1] = value; - return this; - } - return new ValueNode(ownerID, this.keyHash, [key, value]); - } - - SetRef(didChangeSize); - return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]); - }; - - - - // #pragma Iterators - - ArrayMapNode.prototype.iterate = - HashCollisionNode.prototype.iterate = function (fn, reverse) { - var entries = this.entries; - for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) { - if (fn(entries[reverse ? maxIndex - ii : ii]) === false) { - return false; - } - } - } - - BitmapIndexedNode.prototype.iterate = - HashArrayMapNode.prototype.iterate = function (fn, reverse) { - var nodes = this.nodes; - for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) { - var node = nodes[reverse ? maxIndex - ii : ii]; - if (node && node.iterate(fn, reverse) === false) { - return false; - } - } - } - - ValueNode.prototype.iterate = function (fn, reverse) { - return fn(this.entry); - } - - createClass(MapIterator, Iterator); - - function MapIterator(map, type, reverse) { - this._type = type; - this._reverse = reverse; - this._stack = map._root && mapIteratorFrame(map._root); - } - - MapIterator.prototype.next = function() { - var type = this._type; - var stack = this._stack; - while (stack) { - var node = stack.node; - var index = stack.index++; - var maxIndex; - if (node.entry) { - if (index === 0) { - return mapIteratorValue(type, node.entry); - } - } else if (node.entries) { - maxIndex = node.entries.length - 1; - if (index <= maxIndex) { - return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]); - } - } else { - maxIndex = node.nodes.length - 1; - if (index <= maxIndex) { - var subNode = node.nodes[this._reverse ? maxIndex - index : index]; - if (subNode) { - if (subNode.entry) { - return mapIteratorValue(type, subNode.entry); - } - stack = this._stack = mapIteratorFrame(subNode, stack); - } - continue; - } - } - stack = this._stack = this._stack.__prev; - } - return iteratorDone(); - }; - - - function mapIteratorValue(type, entry) { - return iteratorValue(type, entry[0], entry[1]); - } - - function mapIteratorFrame(node, prev) { - return { - node: node, - index: 0, - __prev: prev - }; - } - - function makeMap(size, root, ownerID, hash) { - var map = Object.create(MapPrototype); - map.size = size; - map._root = root; - map.__ownerID = ownerID; - map.__hash = hash; - map.__altered = false; - return map; - } - - var EMPTY_MAP; - function emptyMap() { - return EMPTY_MAP || (EMPTY_MAP = makeMap(0)); - } - - function updateMap(map, k, v) { - var newRoot; - var newSize; - if (!map._root) { - if (v === NOT_SET) { - return map; - } - newSize = 1; - newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]); - } else { - var didChangeSize = MakeRef(CHANGE_LENGTH); - var didAlter = MakeRef(DID_ALTER); - newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter); - if (!didAlter.value) { - return map; - } - newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0); - } - if (map.__ownerID) { - map.size = newSize; - map._root = newRoot; - map.__hash = undefined; - map.__altered = true; - return map; - } - return newRoot ? makeMap(newSize, newRoot) : emptyMap(); - } - - function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) { - if (!node) { - if (value === NOT_SET) { - return node; - } - SetRef(didAlter); - SetRef(didChangeSize); - return new ValueNode(ownerID, keyHash, [key, value]); - } - return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter); - } - - function isLeafNode(node) { - return node.constructor === ValueNode || node.constructor === HashCollisionNode; - } - - function mergeIntoNode(node, ownerID, shift, keyHash, entry) { - if (node.keyHash === keyHash) { - return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]); - } - - var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK; - var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK; - - var newNode; - var nodes = idx1 === idx2 ? - [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] : - ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]); - - return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes); - } - - function createNodes(ownerID, entries, key, value) { - if (!ownerID) { - ownerID = new OwnerID(); - } - var node = new ValueNode(ownerID, hash(key), [key, value]); - for (var ii = 0; ii < entries.length; ii++) { - var entry = entries[ii]; - node = node.update(ownerID, 0, undefined, entry[0], entry[1]); - } - return node; - } - - function packNodes(ownerID, nodes, count, excluding) { - var bitmap = 0; - var packedII = 0; - var packedNodes = new Array(count); - for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) { - var node = nodes[ii]; - if (node !== undefined && ii !== excluding) { - bitmap |= bit; - packedNodes[packedII++] = node; - } - } - return new BitmapIndexedNode(ownerID, bitmap, packedNodes); - } - - function expandNodes(ownerID, nodes, bitmap, including, node) { - var count = 0; - var expandedNodes = new Array(SIZE); - for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) { - expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined; - } - expandedNodes[including] = node; - return new HashArrayMapNode(ownerID, count + 1, expandedNodes); - } - - function mergeIntoMapWith(map, merger, iterables) { - var iters = []; - for (var ii = 0; ii < iterables.length; ii++) { - var value = iterables[ii]; - var iter = KeyedIterable(value); - if (!isIterable(value)) { - iter = iter.map(function(v ) {return fromJS(v)}); - } - iters.push(iter); - } - return mergeIntoCollectionWith(map, merger, iters); - } - - function deepMerger(existing, value, key) { - return existing && existing.mergeDeep && isIterable(value) ? - existing.mergeDeep(value) : - is(existing, value) ? existing : value; - } - - function deepMergerWith(merger) { - return function(existing, value, key) { - if (existing && existing.mergeDeepWith && isIterable(value)) { - return existing.mergeDeepWith(merger, value); - } - var nextValue = merger(existing, value, key); - return is(existing, nextValue) ? existing : nextValue; - }; - } - - function mergeIntoCollectionWith(collection, merger, iters) { - iters = iters.filter(function(x ) {return x.size !== 0}); - if (iters.length === 0) { - return collection; - } - if (collection.size === 0 && !collection.__ownerID && iters.length === 1) { - return collection.constructor(iters[0]); - } - return collection.withMutations(function(collection ) { - var mergeIntoMap = merger ? - function(value, key) { - collection.update(key, NOT_SET, function(existing ) - {return existing === NOT_SET ? value : merger(existing, value, key)} - ); - } : - function(value, key) { - collection.set(key, value); - } - for (var ii = 0; ii < iters.length; ii++) { - iters[ii].forEach(mergeIntoMap); - } - }); - } - - function updateInDeepMap(existing, keyPathIter, notSetValue, updater) { - var isNotSet = existing === NOT_SET; - var step = keyPathIter.next(); - if (step.done) { - var existingValue = isNotSet ? notSetValue : existing; - var newValue = updater(existingValue); - return newValue === existingValue ? existing : newValue; - } - invariant( - isNotSet || (existing && existing.set), - 'invalid keyPath' - ); - var key = step.value; - var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET); - var nextUpdated = updateInDeepMap( - nextExisting, - keyPathIter, - notSetValue, - updater - ); - return nextUpdated === nextExisting ? existing : - nextUpdated === NOT_SET ? existing.remove(key) : - (isNotSet ? emptyMap() : existing).set(key, nextUpdated); - } - - function popCount(x) { - x = x - ((x >> 1) & 0x55555555); - x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - x = (x + (x >> 4)) & 0x0f0f0f0f; - x = x + (x >> 8); - x = x + (x >> 16); - return x & 0x7f; - } - - function setIn(array, idx, val, canEdit) { - var newArray = canEdit ? array : arrCopy(array); - newArray[idx] = val; - return newArray; - } - - function spliceIn(array, idx, val, canEdit) { - var newLen = array.length + 1; - if (canEdit && idx + 1 === newLen) { - array[idx] = val; - return array; - } - var newArray = new Array(newLen); - var after = 0; - for (var ii = 0; ii < newLen; ii++) { - if (ii === idx) { - newArray[ii] = val; - after = -1; - } else { - newArray[ii] = array[ii + after]; - } - } - return newArray; - } - - function spliceOut(array, idx, canEdit) { - var newLen = array.length - 1; - if (canEdit && idx === newLen) { - array.pop(); - return array; - } - var newArray = new Array(newLen); - var after = 0; - for (var ii = 0; ii < newLen; ii++) { - if (ii === idx) { - after = 1; - } - newArray[ii] = array[ii + after]; - } - return newArray; - } - - var MAX_ARRAY_MAP_SIZE = SIZE / 4; - var MAX_BITMAP_INDEXED_SIZE = SIZE / 2; - var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4; - - createClass(List, IndexedCollection); - - // @pragma Construction - - function List(value) { - var empty = emptyList(); - if (value === null || value === undefined) { - return empty; - } - if (isList(value)) { - return value; - } - var iter = IndexedIterable(value); - var size = iter.size; - if (size === 0) { - return empty; - } - assertNotInfinite(size); - if (size > 0 && size < SIZE) { - return makeList(0, size, SHIFT, null, new VNode(iter.toArray())); - } - return empty.withMutations(function(list ) { - list.setSize(size); - iter.forEach(function(v, i) {return list.set(i, v)}); - }); - } - - List.of = function(/*...values*/) { - return this(arguments); - }; - - List.prototype.toString = function() { - return this.__toString('List [', ']'); - }; - - // @pragma Access - - List.prototype.get = function(index, notSetValue) { - index = wrapIndex(this, index); - if (index >= 0 && index < this.size) { - index += this._origin; - var node = listNodeFor(this, index); - return node && node.array[index & MASK]; - } - return notSetValue; - }; - - // @pragma Modification - - List.prototype.set = function(index, value) { - return updateList(this, index, value); - }; - - List.prototype.remove = function(index) { - return !this.has(index) ? this : - index === 0 ? this.shift() : - index === this.size - 1 ? this.pop() : - this.splice(index, 1); - }; - - List.prototype.insert = function(index, value) { - return this.splice(index, 0, value); - }; - - List.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = this._origin = this._capacity = 0; - this._level = SHIFT; - this._root = this._tail = null; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyList(); - }; - - List.prototype.push = function(/*...values*/) { - var values = arguments; - var oldSize = this.size; - return this.withMutations(function(list ) { - setListBounds(list, 0, oldSize + values.length); - for (var ii = 0; ii < values.length; ii++) { - list.set(oldSize + ii, values[ii]); - } - }); - }; - - List.prototype.pop = function() { - return setListBounds(this, 0, -1); - }; - - List.prototype.unshift = function(/*...values*/) { - var values = arguments; - return this.withMutations(function(list ) { - setListBounds(list, -values.length); - for (var ii = 0; ii < values.length; ii++) { - list.set(ii, values[ii]); - } - }); - }; - - List.prototype.shift = function() { - return setListBounds(this, 1); - }; - - // @pragma Composition - - List.prototype.merge = function(/*...iters*/) { - return mergeIntoListWith(this, undefined, arguments); - }; - - List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoListWith(this, merger, iters); - }; - - List.prototype.mergeDeep = function(/*...iters*/) { - return mergeIntoListWith(this, deepMerger, arguments); - }; - - List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return mergeIntoListWith(this, deepMergerWith(merger), iters); - }; - - List.prototype.setSize = function(size) { - return setListBounds(this, 0, size); - }; - - // @pragma Iteration - - List.prototype.slice = function(begin, end) { - var size = this.size; - if (wholeSlice(begin, end, size)) { - return this; - } - return setListBounds( - this, - resolveBegin(begin, size), - resolveEnd(end, size) - ); - }; - - List.prototype.__iterator = function(type, reverse) { - var index = 0; - var values = iterateList(this, reverse); - return new Iterator(function() { - var value = values(); - return value === DONE ? - iteratorDone() : - iteratorValue(type, index++, value); - }); - }; - - List.prototype.__iterate = function(fn, reverse) { - var index = 0; - var values = iterateList(this, reverse); - var value; - while ((value = values()) !== DONE) { - if (fn(value, index++, this) === false) { - break; - } - } - return index; - }; - - List.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - return this; - } - return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash); - }; - - - function isList(maybeList) { - return !!(maybeList && maybeList[IS_LIST_SENTINEL]); - } - - List.isList = isList; - - var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@'; - - var ListPrototype = List.prototype; - ListPrototype[IS_LIST_SENTINEL] = true; - ListPrototype[DELETE] = ListPrototype.remove; - ListPrototype.setIn = MapPrototype.setIn; - ListPrototype.deleteIn = - ListPrototype.removeIn = MapPrototype.removeIn; - ListPrototype.update = MapPrototype.update; - ListPrototype.updateIn = MapPrototype.updateIn; - ListPrototype.mergeIn = MapPrototype.mergeIn; - ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; - ListPrototype.withMutations = MapPrototype.withMutations; - ListPrototype.asMutable = MapPrototype.asMutable; - ListPrototype.asImmutable = MapPrototype.asImmutable; - ListPrototype.wasAltered = MapPrototype.wasAltered; - - - - function VNode(array, ownerID) { - this.array = array; - this.ownerID = ownerID; - } - - // TODO: seems like these methods are very similar - - VNode.prototype.removeBefore = function(ownerID, level, index) { - if (index === level ? 1 << level : 0 || this.array.length === 0) { - return this; - } - var originIndex = (index >>> level) & MASK; - if (originIndex >= this.array.length) { - return new VNode([], ownerID); - } - var removingFirst = originIndex === 0; - var newChild; - if (level > 0) { - var oldChild = this.array[originIndex]; - newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index); - if (newChild === oldChild && removingFirst) { - return this; - } - } - if (removingFirst && !newChild) { - return this; - } - var editable = editableVNode(this, ownerID); - if (!removingFirst) { - for (var ii = 0; ii < originIndex; ii++) { - editable.array[ii] = undefined; - } - } - if (newChild) { - editable.array[originIndex] = newChild; - } - return editable; - }; - - VNode.prototype.removeAfter = function(ownerID, level, index) { - if (index === (level ? 1 << level : 0) || this.array.length === 0) { - return this; - } - var sizeIndex = ((index - 1) >>> level) & MASK; - if (sizeIndex >= this.array.length) { - return this; - } - - var newChild; - if (level > 0) { - var oldChild = this.array[sizeIndex]; - newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index); - if (newChild === oldChild && sizeIndex === this.array.length - 1) { - return this; - } - } - - var editable = editableVNode(this, ownerID); - editable.array.splice(sizeIndex + 1); - if (newChild) { - editable.array[sizeIndex] = newChild; - } - return editable; - }; - - - - var DONE = {}; - - function iterateList(list, reverse) { - var left = list._origin; - var right = list._capacity; - var tailPos = getTailOffset(right); - var tail = list._tail; - - return iterateNodeOrLeaf(list._root, list._level, 0); - - function iterateNodeOrLeaf(node, level, offset) { - return level === 0 ? - iterateLeaf(node, offset) : - iterateNode(node, level, offset); - } - - function iterateLeaf(node, offset) { - var array = offset === tailPos ? tail && tail.array : node && node.array; - var from = offset > left ? 0 : left - offset; - var to = right - offset; - if (to > SIZE) { - to = SIZE; - } - return function() { - if (from === to) { - return DONE; - } - var idx = reverse ? --to : from++; - return array && array[idx]; - }; - } - - function iterateNode(node, level, offset) { - var values; - var array = node && node.array; - var from = offset > left ? 0 : (left - offset) >> level; - var to = ((right - offset) >> level) + 1; - if (to > SIZE) { - to = SIZE; - } - return function() { - do { - if (values) { - var value = values(); - if (value !== DONE) { - return value; - } - values = null; - } - if (from === to) { - return DONE; - } - var idx = reverse ? --to : from++; - values = iterateNodeOrLeaf( - array && array[idx], level - SHIFT, offset + (idx << level) - ); - } while (true); - }; - } - } - - function makeList(origin, capacity, level, root, tail, ownerID, hash) { - var list = Object.create(ListPrototype); - list.size = capacity - origin; - list._origin = origin; - list._capacity = capacity; - list._level = level; - list._root = root; - list._tail = tail; - list.__ownerID = ownerID; - list.__hash = hash; - list.__altered = false; - return list; - } - - var EMPTY_LIST; - function emptyList() { - return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT)); - } - - function updateList(list, index, value) { - index = wrapIndex(list, index); - - if (index !== index) { - return list; - } - - if (index >= list.size || index < 0) { - return list.withMutations(function(list ) { - index < 0 ? - setListBounds(list, index).set(0, value) : - setListBounds(list, 0, index + 1).set(index, value) - }); - } - - index += list._origin; - - var newTail = list._tail; - var newRoot = list._root; - var didAlter = MakeRef(DID_ALTER); - if (index >= getTailOffset(list._capacity)) { - newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter); - } else { - newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter); - } - - if (!didAlter.value) { - return list; - } - - if (list.__ownerID) { - list._root = newRoot; - list._tail = newTail; - list.__hash = undefined; - list.__altered = true; - return list; - } - return makeList(list._origin, list._capacity, list._level, newRoot, newTail); - } - - function updateVNode(node, ownerID, level, index, value, didAlter) { - var idx = (index >>> level) & MASK; - var nodeHas = node && idx < node.array.length; - if (!nodeHas && value === undefined) { - return node; - } - - var newNode; - - if (level > 0) { - var lowerNode = node && node.array[idx]; - var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter); - if (newLowerNode === lowerNode) { - return node; - } - newNode = editableVNode(node, ownerID); - newNode.array[idx] = newLowerNode; - return newNode; - } - - if (nodeHas && node.array[idx] === value) { - return node; - } - - SetRef(didAlter); - - newNode = editableVNode(node, ownerID); - if (value === undefined && idx === newNode.array.length - 1) { - newNode.array.pop(); - } else { - newNode.array[idx] = value; - } - return newNode; - } - - function editableVNode(node, ownerID) { - if (ownerID && node && ownerID === node.ownerID) { - return node; - } - return new VNode(node ? node.array.slice() : [], ownerID); - } - - function listNodeFor(list, rawIndex) { - if (rawIndex >= getTailOffset(list._capacity)) { - return list._tail; - } - if (rawIndex < 1 << (list._level + SHIFT)) { - var node = list._root; - var level = list._level; - while (node && level > 0) { - node = node.array[(rawIndex >>> level) & MASK]; - level -= SHIFT; - } - return node; - } - } - - function setListBounds(list, begin, end) { - // Sanitize begin & end using this shorthand for ToInt32(argument) - // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 - if (begin !== undefined) { - begin = begin | 0; - } - if (end !== undefined) { - end = end | 0; - } - var owner = list.__ownerID || new OwnerID(); - var oldOrigin = list._origin; - var oldCapacity = list._capacity; - var newOrigin = oldOrigin + begin; - var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end; - if (newOrigin === oldOrigin && newCapacity === oldCapacity) { - return list; - } - - // If it's going to end after it starts, it's empty. - if (newOrigin >= newCapacity) { - return list.clear(); - } - - var newLevel = list._level; - var newRoot = list._root; - - // New origin might need creating a higher root. - var offsetShift = 0; - while (newOrigin + offsetShift < 0) { - newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner); - newLevel += SHIFT; - offsetShift += 1 << newLevel; - } - if (offsetShift) { - newOrigin += offsetShift; - oldOrigin += offsetShift; - newCapacity += offsetShift; - oldCapacity += offsetShift; - } - - var oldTailOffset = getTailOffset(oldCapacity); - var newTailOffset = getTailOffset(newCapacity); - - // New size might need creating a higher root. - while (newTailOffset >= 1 << (newLevel + SHIFT)) { - newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner); - newLevel += SHIFT; - } - - // Locate or create the new tail. - var oldTail = list._tail; - var newTail = newTailOffset < oldTailOffset ? - listNodeFor(list, newCapacity - 1) : - newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail; - - // Merge Tail into tree. - if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) { - newRoot = editableVNode(newRoot, owner); - var node = newRoot; - for (var level = newLevel; level > SHIFT; level -= SHIFT) { - var idx = (oldTailOffset >>> level) & MASK; - node = node.array[idx] = editableVNode(node.array[idx], owner); - } - node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail; - } - - // If the size has been reduced, there's a chance the tail needs to be trimmed. - if (newCapacity < oldCapacity) { - newTail = newTail && newTail.removeAfter(owner, 0, newCapacity); - } - - // If the new origin is within the tail, then we do not need a root. - if (newOrigin >= newTailOffset) { - newOrigin -= newTailOffset; - newCapacity -= newTailOffset; - newLevel = SHIFT; - newRoot = null; - newTail = newTail && newTail.removeBefore(owner, 0, newOrigin); - - // Otherwise, if the root has been trimmed, garbage collect. - } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) { - offsetShift = 0; - - // Identify the new top root node of the subtree of the old root. - while (newRoot) { - var beginIndex = (newOrigin >>> newLevel) & MASK; - if (beginIndex !== (newTailOffset >>> newLevel) & MASK) { - break; - } - if (beginIndex) { - offsetShift += (1 << newLevel) * beginIndex; - } - newLevel -= SHIFT; - newRoot = newRoot.array[beginIndex]; - } - - // Trim the new sides of the new root. - if (newRoot && newOrigin > oldOrigin) { - newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift); - } - if (newRoot && newTailOffset < oldTailOffset) { - newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift); - } - if (offsetShift) { - newOrigin -= offsetShift; - newCapacity -= offsetShift; - } - } - - if (list.__ownerID) { - list.size = newCapacity - newOrigin; - list._origin = newOrigin; - list._capacity = newCapacity; - list._level = newLevel; - list._root = newRoot; - list._tail = newTail; - list.__hash = undefined; - list.__altered = true; - return list; - } - return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail); - } - - function mergeIntoListWith(list, merger, iterables) { - var iters = []; - var maxSize = 0; - for (var ii = 0; ii < iterables.length; ii++) { - var value = iterables[ii]; - var iter = IndexedIterable(value); - if (iter.size > maxSize) { - maxSize = iter.size; - } - if (!isIterable(value)) { - iter = iter.map(function(v ) {return fromJS(v)}); - } - iters.push(iter); - } - if (maxSize > list.size) { - list = list.setSize(maxSize); - } - return mergeIntoCollectionWith(list, merger, iters); - } - - function getTailOffset(size) { - return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT); - } - - createClass(OrderedMap, Map); - - // @pragma Construction - - function OrderedMap(value) { - return value === null || value === undefined ? emptyOrderedMap() : - isOrderedMap(value) ? value : - emptyOrderedMap().withMutations(function(map ) { - var iter = KeyedIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v, k) {return map.set(k, v)}); - }); - } - - OrderedMap.of = function(/*...values*/) { - return this(arguments); - }; - - OrderedMap.prototype.toString = function() { - return this.__toString('OrderedMap {', '}'); - }; - - // @pragma Access - - OrderedMap.prototype.get = function(k, notSetValue) { - var index = this._map.get(k); - return index !== undefined ? this._list.get(index)[1] : notSetValue; - }; - - // @pragma Modification - - OrderedMap.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._map.clear(); - this._list.clear(); - return this; - } - return emptyOrderedMap(); - }; - - OrderedMap.prototype.set = function(k, v) { - return updateOrderedMap(this, k, v); - }; - - OrderedMap.prototype.remove = function(k) { - return updateOrderedMap(this, k, NOT_SET); - }; - - OrderedMap.prototype.wasAltered = function() { - return this._map.wasAltered() || this._list.wasAltered(); - }; - - OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._list.__iterate( - function(entry ) {return entry && fn(entry[1], entry[0], this$0)}, - reverse - ); - }; - - OrderedMap.prototype.__iterator = function(type, reverse) { - return this._list.fromEntrySeq().__iterator(type, reverse); - }; - - OrderedMap.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map.__ensureOwner(ownerID); - var newList = this._list.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - this._list = newList; - return this; - } - return makeOrderedMap(newMap, newList, ownerID, this.__hash); - }; - - - function isOrderedMap(maybeOrderedMap) { - return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap); - } - - OrderedMap.isOrderedMap = isOrderedMap; - - OrderedMap.prototype[IS_ORDERED_SENTINEL] = true; - OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove; - - - - function makeOrderedMap(map, list, ownerID, hash) { - var omap = Object.create(OrderedMap.prototype); - omap.size = map ? map.size : 0; - omap._map = map; - omap._list = list; - omap.__ownerID = ownerID; - omap.__hash = hash; - return omap; - } - - var EMPTY_ORDERED_MAP; - function emptyOrderedMap() { - return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList())); - } - - function updateOrderedMap(omap, k, v) { - var map = omap._map; - var list = omap._list; - var i = map.get(k); - var has = i !== undefined; - var newMap; - var newList; - if (v === NOT_SET) { // removed - if (!has) { - return omap; - } - if (list.size >= SIZE && list.size >= map.size * 2) { - newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx}); - newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap(); - if (omap.__ownerID) { - newMap.__ownerID = newList.__ownerID = omap.__ownerID; - } - } else { - newMap = map.remove(k); - newList = i === list.size - 1 ? list.pop() : list.set(i, undefined); - } - } else { - if (has) { - if (v === list.get(i)[1]) { - return omap; - } - newMap = map; - newList = list.set(i, [k, v]); - } else { - newMap = map.set(k, list.size); - newList = list.set(list.size, [k, v]); - } - } - if (omap.__ownerID) { - omap.size = newMap.size; - omap._map = newMap; - omap._list = newList; - omap.__hash = undefined; - return omap; - } - return makeOrderedMap(newMap, newList); - } - - createClass(ToKeyedSequence, KeyedSeq); - function ToKeyedSequence(indexed, useKeys) { - this._iter = indexed; - this._useKeys = useKeys; - this.size = indexed.size; - } - - ToKeyedSequence.prototype.get = function(key, notSetValue) { - return this._iter.get(key, notSetValue); - }; - - ToKeyedSequence.prototype.has = function(key) { - return this._iter.has(key); - }; - - ToKeyedSequence.prototype.valueSeq = function() { - return this._iter.valueSeq(); - }; - - ToKeyedSequence.prototype.reverse = function() {var this$0 = this; - var reversedSequence = reverseFactory(this, true); - if (!this._useKeys) { - reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()}; - } - return reversedSequence; - }; - - ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this; - var mappedSequence = mapFactory(this, mapper, context); - if (!this._useKeys) { - mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)}; - } - return mappedSequence; - }; - - ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var ii; - return this._iter.__iterate( - this._useKeys ? - function(v, k) {return fn(v, k, this$0)} : - ((ii = reverse ? resolveSize(this) : 0), - function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}), - reverse - ); - }; - - ToKeyedSequence.prototype.__iterator = function(type, reverse) { - if (this._useKeys) { - return this._iter.__iterator(type, reverse); - } - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - var ii = reverse ? resolveSize(this) : 0; - return new Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, reverse ? --ii : ii++, step.value, step); - }); - }; - - ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true; - - - createClass(ToIndexedSequence, IndexedSeq); - function ToIndexedSequence(iter) { - this._iter = iter; - this.size = iter.size; - } - - ToIndexedSequence.prototype.includes = function(value) { - return this._iter.includes(value); - }; - - ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - var iterations = 0; - return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse); - }; - - ToIndexedSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - var iterations = 0; - return new Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, iterations++, step.value, step) - }); - }; - - - - createClass(ToSetSequence, SetSeq); - function ToSetSequence(iter) { - this._iter = iter; - this.size = iter.size; - } - - ToSetSequence.prototype.has = function(key) { - return this._iter.includes(key); - }; - - ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse); - }; - - ToSetSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - return new Iterator(function() { - var step = iterator.next(); - return step.done ? step : - iteratorValue(type, step.value, step.value, step); - }); - }; - - - - createClass(FromEntriesSequence, KeyedSeq); - function FromEntriesSequence(entries) { - this._iter = entries; - this.size = entries.size; - } - - FromEntriesSequence.prototype.entrySeq = function() { - return this._iter.toSeq(); - }; - - FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._iter.__iterate(function(entry ) { - // Check if entry exists first so array access doesn't throw for holes - // in the parent iteration. - if (entry) { - validateEntry(entry); - var indexedIterable = isIterable(entry); - return fn( - indexedIterable ? entry.get(1) : entry[1], - indexedIterable ? entry.get(0) : entry[0], - this$0 - ); - } - }, reverse); - }; - - FromEntriesSequence.prototype.__iterator = function(type, reverse) { - var iterator = this._iter.__iterator(ITERATE_VALUES, reverse); - return new Iterator(function() { - while (true) { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - // Check if entry exists first so array access doesn't throw for holes - // in the parent iteration. - if (entry) { - validateEntry(entry); - var indexedIterable = isIterable(entry); - return iteratorValue( - type, - indexedIterable ? entry.get(0) : entry[0], - indexedIterable ? entry.get(1) : entry[1], - step - ); - } - } - }); - }; - - - ToIndexedSequence.prototype.cacheResult = - ToKeyedSequence.prototype.cacheResult = - ToSetSequence.prototype.cacheResult = - FromEntriesSequence.prototype.cacheResult = - cacheResultThrough; - - - function flipFactory(iterable) { - var flipSequence = makeSequence(iterable); - flipSequence._iter = iterable; - flipSequence.size = iterable.size; - flipSequence.flip = function() {return iterable}; - flipSequence.reverse = function () { - var reversedSequence = iterable.reverse.apply(this); // super.reverse() - reversedSequence.flip = function() {return iterable.reverse()}; - return reversedSequence; - }; - flipSequence.has = function(key ) {return iterable.includes(key)}; - flipSequence.includes = function(key ) {return iterable.has(key)}; - flipSequence.cacheResult = cacheResultThrough; - flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse); - } - flipSequence.__iteratorUncached = function(type, reverse) { - if (type === ITERATE_ENTRIES) { - var iterator = iterable.__iterator(type, reverse); - return new Iterator(function() { - var step = iterator.next(); - if (!step.done) { - var k = step.value[0]; - step.value[0] = step.value[1]; - step.value[1] = k; - } - return step; - }); - } - return iterable.__iterator( - type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES, - reverse - ); - } - return flipSequence; - } - - - function mapFactory(iterable, mapper, context) { - var mappedSequence = makeSequence(iterable); - mappedSequence.size = iterable.size; - mappedSequence.has = function(key ) {return iterable.has(key)}; - mappedSequence.get = function(key, notSetValue) { - var v = iterable.get(key, NOT_SET); - return v === NOT_SET ? - notSetValue : - mapper.call(context, v, key, iterable); - }; - mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - return iterable.__iterate( - function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false}, - reverse - ); - } - mappedSequence.__iteratorUncached = function (type, reverse) { - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - return new Iterator(function() { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var key = entry[0]; - return iteratorValue( - type, - key, - mapper.call(context, entry[1], key, iterable), - step - ); - }); - } - return mappedSequence; - } - - - function reverseFactory(iterable, useKeys) { - var reversedSequence = makeSequence(iterable); - reversedSequence._iter = iterable; - reversedSequence.size = iterable.size; - reversedSequence.reverse = function() {return iterable}; - if (iterable.flip) { - reversedSequence.flip = function () { - var flipSequence = flipFactory(iterable); - flipSequence.reverse = function() {return iterable.flip()}; - return flipSequence; - }; - } - reversedSequence.get = function(key, notSetValue) - {return iterable.get(useKeys ? key : -1 - key, notSetValue)}; - reversedSequence.has = function(key ) - {return iterable.has(useKeys ? key : -1 - key)}; - reversedSequence.includes = function(value ) {return iterable.includes(value)}; - reversedSequence.cacheResult = cacheResultThrough; - reversedSequence.__iterate = function (fn, reverse) {var this$0 = this; - return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse); - }; - reversedSequence.__iterator = - function(type, reverse) {return iterable.__iterator(type, !reverse)}; - return reversedSequence; - } - - - function filterFactory(iterable, predicate, context, useKeys) { - var filterSequence = makeSequence(iterable); - if (useKeys) { - filterSequence.has = function(key ) { - var v = iterable.get(key, NOT_SET); - return v !== NOT_SET && !!predicate.call(context, v, key, iterable); - }; - filterSequence.get = function(key, notSetValue) { - var v = iterable.get(key, NOT_SET); - return v !== NOT_SET && predicate.call(context, v, key, iterable) ? - v : notSetValue; - }; - } - filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - var iterations = 0; - iterable.__iterate(function(v, k, c) { - if (predicate.call(context, v, k, c)) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0); - } - }, reverse); - return iterations; - }; - filterSequence.__iteratorUncached = function (type, reverse) { - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var iterations = 0; - return new Iterator(function() { - while (true) { - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var key = entry[0]; - var value = entry[1]; - if (predicate.call(context, value, key, iterable)) { - return iteratorValue(type, useKeys ? key : iterations++, value, step); - } - } - }); - } - return filterSequence; - } - - - function countByFactory(iterable, grouper, context) { - var groups = Map().asMutable(); - iterable.__iterate(function(v, k) { - groups.update( - grouper.call(context, v, k, iterable), - 0, - function(a ) {return a + 1} - ); - }); - return groups.asImmutable(); - } - - - function groupByFactory(iterable, grouper, context) { - var isKeyedIter = isKeyed(iterable); - var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable(); - iterable.__iterate(function(v, k) { - groups.update( - grouper.call(context, v, k, iterable), - function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)} - ); - }); - var coerce = iterableClass(iterable); - return groups.map(function(arr ) {return reify(iterable, coerce(arr))}); - } - - - function sliceFactory(iterable, begin, end, useKeys) { - var originalSize = iterable.size; - - // Sanitize begin & end using this shorthand for ToInt32(argument) - // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32 - if (begin !== undefined) { - begin = begin | 0; - } - if (end !== undefined) { - if (end === Infinity) { - end = originalSize; - } else { - end = end | 0; - } - } - - if (wholeSlice(begin, end, originalSize)) { - return iterable; - } - - var resolvedBegin = resolveBegin(begin, originalSize); - var resolvedEnd = resolveEnd(end, originalSize); - - // begin or end will be NaN if they were provided as negative numbers and - // this iterable's size is unknown. In that case, cache first so there is - // a known size and these do not resolve to NaN. - if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) { - return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys); - } - - // Note: resolvedEnd is undefined when the original sequence's length is - // unknown and this slice did not supply an end and should contain all - // elements after resolvedBegin. - // In that case, resolvedSize will be NaN and sliceSize will remain undefined. - var resolvedSize = resolvedEnd - resolvedBegin; - var sliceSize; - if (resolvedSize === resolvedSize) { - sliceSize = resolvedSize < 0 ? 0 : resolvedSize; - } - - var sliceSeq = makeSequence(iterable); - - // If iterable.size is undefined, the size of the realized sliceSeq is - // unknown at this point unless the number of items to slice is 0 - sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined; - - if (!useKeys && isSeq(iterable) && sliceSize >= 0) { - sliceSeq.get = function (index, notSetValue) { - index = wrapIndex(this, index); - return index >= 0 && index < sliceSize ? - iterable.get(index + resolvedBegin, notSetValue) : - notSetValue; - } - } - - sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this; - if (sliceSize === 0) { - return 0; - } - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var skipped = 0; - var isSkipping = true; - var iterations = 0; - iterable.__iterate(function(v, k) { - if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0) !== false && - iterations !== sliceSize; - } - }); - return iterations; - }; - - sliceSeq.__iteratorUncached = function(type, reverse) { - if (sliceSize !== 0 && reverse) { - return this.cacheResult().__iterator(type, reverse); - } - // Don't bother instantiating parent iterator if taking 0. - var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse); - var skipped = 0; - var iterations = 0; - return new Iterator(function() { - while (skipped++ < resolvedBegin) { - iterator.next(); - } - if (++iterations > sliceSize) { - return iteratorDone(); - } - var step = iterator.next(); - if (useKeys || type === ITERATE_VALUES) { - return step; - } else if (type === ITERATE_KEYS) { - return iteratorValue(type, iterations - 1, undefined, step); - } else { - return iteratorValue(type, iterations - 1, step.value[1], step); - } - }); - } - - return sliceSeq; - } - - - function takeWhileFactory(iterable, predicate, context) { - var takeSequence = makeSequence(iterable); - takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var iterations = 0; - iterable.__iterate(function(v, k, c) - {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)} - ); - return iterations; - }; - takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var iterating = true; - return new Iterator(function() { - if (!iterating) { - return iteratorDone(); - } - var step = iterator.next(); - if (step.done) { - return step; - } - var entry = step.value; - var k = entry[0]; - var v = entry[1]; - if (!predicate.call(context, v, k, this$0)) { - iterating = false; - return iteratorDone(); - } - return type === ITERATE_ENTRIES ? step : - iteratorValue(type, k, v, step); - }); - }; - return takeSequence; - } - - - function skipWhileFactory(iterable, predicate, context, useKeys) { - var skipSequence = makeSequence(iterable); - skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterate(fn, reverse); - } - var isSkipping = true; - var iterations = 0; - iterable.__iterate(function(v, k, c) { - if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) { - iterations++; - return fn(v, useKeys ? k : iterations - 1, this$0); - } - }); - return iterations; - }; - skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this; - if (reverse) { - return this.cacheResult().__iterator(type, reverse); - } - var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse); - var skipping = true; - var iterations = 0; - return new Iterator(function() { - var step, k, v; - do { - step = iterator.next(); - if (step.done) { - if (useKeys || type === ITERATE_VALUES) { - return step; - } else if (type === ITERATE_KEYS) { - return iteratorValue(type, iterations++, undefined, step); - } else { - return iteratorValue(type, iterations++, step.value[1], step); - } - } - var entry = step.value; - k = entry[0]; - v = entry[1]; - skipping && (skipping = predicate.call(context, v, k, this$0)); - } while (skipping); - return type === ITERATE_ENTRIES ? step : - iteratorValue(type, k, v, step); - }); - }; - return skipSequence; - } - - - function concatFactory(iterable, values) { - var isKeyedIterable = isKeyed(iterable); - var iters = [iterable].concat(values).map(function(v ) { - if (!isIterable(v)) { - v = isKeyedIterable ? - keyedSeqFromValue(v) : - indexedSeqFromValue(Array.isArray(v) ? v : [v]); - } else if (isKeyedIterable) { - v = KeyedIterable(v); - } - return v; - }).filter(function(v ) {return v.size !== 0}); - - if (iters.length === 0) { - return iterable; - } - - if (iters.length === 1) { - var singleton = iters[0]; - if (singleton === iterable || - isKeyedIterable && isKeyed(singleton) || - isIndexed(iterable) && isIndexed(singleton)) { - return singleton; - } - } - - var concatSeq = new ArraySeq(iters); - if (isKeyedIterable) { - concatSeq = concatSeq.toKeyedSeq(); - } else if (!isIndexed(iterable)) { - concatSeq = concatSeq.toSetSeq(); - } - concatSeq = concatSeq.flatten(true); - concatSeq.size = iters.reduce( - function(sum, seq) { - if (sum !== undefined) { - var size = seq.size; - if (size !== undefined) { - return sum + size; - } - } - }, - 0 - ); - return concatSeq; - } - - - function flattenFactory(iterable, depth, useKeys) { - var flatSequence = makeSequence(iterable); - flatSequence.__iterateUncached = function(fn, reverse) { - var iterations = 0; - var stopped = false; - function flatDeep(iter, currentDepth) {var this$0 = this; - iter.__iterate(function(v, k) { - if ((!depth || currentDepth < depth) && isIterable(v)) { - flatDeep(v, currentDepth + 1); - } else if (fn(v, useKeys ? k : iterations++, this$0) === false) { - stopped = true; - } - return !stopped; - }, reverse); - } - flatDeep(iterable, 0); - return iterations; - } - flatSequence.__iteratorUncached = function(type, reverse) { - var iterator = iterable.__iterator(type, reverse); - var stack = []; - var iterations = 0; - return new Iterator(function() { - while (iterator) { - var step = iterator.next(); - if (step.done !== false) { - iterator = stack.pop(); - continue; - } - var v = step.value; - if (type === ITERATE_ENTRIES) { - v = v[1]; - } - if ((!depth || stack.length < depth) && isIterable(v)) { - stack.push(iterator); - iterator = v.__iterator(type, reverse); - } else { - return useKeys ? step : iteratorValue(type, iterations++, v, step); - } - } - return iteratorDone(); - }); - } - return flatSequence; - } - - - function flatMapFactory(iterable, mapper, context) { - var coerce = iterableClass(iterable); - return iterable.toSeq().map( - function(v, k) {return coerce(mapper.call(context, v, k, iterable))} - ).flatten(true); - } - - - function interposeFactory(iterable, separator) { - var interposedSequence = makeSequence(iterable); - interposedSequence.size = iterable.size && iterable.size * 2 -1; - interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this; - var iterations = 0; - iterable.__iterate(function(v, k) - {return (!iterations || fn(separator, iterations++, this$0) !== false) && - fn(v, iterations++, this$0) !== false}, - reverse - ); - return iterations; - }; - interposedSequence.__iteratorUncached = function(type, reverse) { - var iterator = iterable.__iterator(ITERATE_VALUES, reverse); - var iterations = 0; - var step; - return new Iterator(function() { - if (!step || iterations % 2) { - step = iterator.next(); - if (step.done) { - return step; - } - } - return iterations % 2 ? - iteratorValue(type, iterations++, separator) : - iteratorValue(type, iterations++, step.value, step); - }); - }; - return interposedSequence; - } - - - function sortFactory(iterable, comparator, mapper) { - if (!comparator) { - comparator = defaultComparator; - } - var isKeyedIterable = isKeyed(iterable); - var index = 0; - var entries = iterable.toSeq().map( - function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]} - ).toArray(); - entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach( - isKeyedIterable ? - function(v, i) { entries[i].length = 2; } : - function(v, i) { entries[i] = v[1]; } - ); - return isKeyedIterable ? KeyedSeq(entries) : - isIndexed(iterable) ? IndexedSeq(entries) : - SetSeq(entries); - } - - - function maxFactory(iterable, comparator, mapper) { - if (!comparator) { - comparator = defaultComparator; - } - if (mapper) { - var entry = iterable.toSeq() - .map(function(v, k) {return [v, mapper(v, k, iterable)]}) - .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a}); - return entry && entry[0]; - } else { - return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a}); - } - } - - function maxCompare(comparator, a, b) { - var comp = comparator(b, a); - // b is considered the new max if the comparator declares them equal, but - // they are not equal and b is in fact a nullish value. - return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0; - } - - - function zipWithFactory(keyIter, zipper, iters) { - var zipSequence = makeSequence(keyIter); - zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min(); - // Note: this a generic base implementation of __iterate in terms of - // __iterator which may be more generically useful in the future. - zipSequence.__iterate = function(fn, reverse) { - /* generic: - var iterator = this.__iterator(ITERATE_ENTRIES, reverse); - var step; - var iterations = 0; - while (!(step = iterator.next()).done) { - iterations++; - if (fn(step.value[1], step.value[0], this) === false) { - break; - } - } - return iterations; - */ - // indexed: - var iterator = this.__iterator(ITERATE_VALUES, reverse); - var step; - var iterations = 0; - while (!(step = iterator.next()).done) { - if (fn(step.value, iterations++, this) === false) { - break; - } - } - return iterations; - }; - zipSequence.__iteratorUncached = function(type, reverse) { - var iterators = iters.map(function(i ) - {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))} - ); - var iterations = 0; - var isDone = false; - return new Iterator(function() { - var steps; - if (!isDone) { - steps = iterators.map(function(i ) {return i.next()}); - isDone = steps.some(function(s ) {return s.done}); - } - if (isDone) { - return iteratorDone(); - } - return iteratorValue( - type, - iterations++, - zipper.apply(null, steps.map(function(s ) {return s.value})) - ); - }); - }; - return zipSequence - } - - - // #pragma Helper Functions - - function reify(iter, seq) { - return isSeq(iter) ? seq : iter.constructor(seq); - } - - function validateEntry(entry) { - if (entry !== Object(entry)) { - throw new TypeError('Expected [K, V] tuple: ' + entry); - } - } - - function resolveSize(iter) { - assertNotInfinite(iter.size); - return ensureSize(iter); - } - - function iterableClass(iterable) { - return isKeyed(iterable) ? KeyedIterable : - isIndexed(iterable) ? IndexedIterable : - SetIterable; - } - - function makeSequence(iterable) { - return Object.create( - ( - isKeyed(iterable) ? KeyedSeq : - isIndexed(iterable) ? IndexedSeq : - SetSeq - ).prototype - ); - } - - function cacheResultThrough() { - if (this._iter.cacheResult) { - this._iter.cacheResult(); - this.size = this._iter.size; - return this; - } else { - return Seq.prototype.cacheResult.call(this); - } - } - - function defaultComparator(a, b) { - return a > b ? 1 : a < b ? -1 : 0; - } - - function forceIterator(keyPath) { - var iter = getIterator(keyPath); - if (!iter) { - // Array might not be iterable in this environment, so we need a fallback - // to our wrapped type. - if (!isArrayLike(keyPath)) { - throw new TypeError('Expected iterable or array-like: ' + keyPath); - } - iter = getIterator(Iterable(keyPath)); - } - return iter; - } - - createClass(Record, KeyedCollection); - - function Record(defaultValues, name) { - var hasInitialized; - - var RecordType = function Record(values) { - if (values instanceof RecordType) { - return values; - } - if (!(this instanceof RecordType)) { - return new RecordType(values); - } - if (!hasInitialized) { - hasInitialized = true; - var keys = Object.keys(defaultValues); - setProps(RecordTypePrototype, keys); - RecordTypePrototype.size = keys.length; - RecordTypePrototype._name = name; - RecordTypePrototype._keys = keys; - RecordTypePrototype._defaultValues = defaultValues; - } - this._map = Map(values); - }; - - var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype); - RecordTypePrototype.constructor = RecordType; - - return RecordType; - } - - Record.prototype.toString = function() { - return this.__toString(recordName(this) + ' {', '}'); - }; - - // @pragma Access - - Record.prototype.has = function(k) { - return this._defaultValues.hasOwnProperty(k); - }; - - Record.prototype.get = function(k, notSetValue) { - if (!this.has(k)) { - return notSetValue; - } - var defaultVal = this._defaultValues[k]; - return this._map ? this._map.get(k, defaultVal) : defaultVal; - }; - - // @pragma Modification - - Record.prototype.clear = function() { - if (this.__ownerID) { - this._map && this._map.clear(); - return this; - } - var RecordType = this.constructor; - return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap())); - }; - - Record.prototype.set = function(k, v) { - if (!this.has(k)) { - throw new Error('Cannot set unknown key "' + k + '" on ' + recordName(this)); - } - if (this._map && !this._map.has(k)) { - var defaultVal = this._defaultValues[k]; - if (v === defaultVal) { - return this; - } - } - var newMap = this._map && this._map.set(k, v); - if (this.__ownerID || newMap === this._map) { - return this; - } - return makeRecord(this, newMap); - }; - - Record.prototype.remove = function(k) { - if (!this.has(k)) { - return this; - } - var newMap = this._map && this._map.remove(k); - if (this.__ownerID || newMap === this._map) { - return this; - } - return makeRecord(this, newMap); - }; - - Record.prototype.wasAltered = function() { - return this._map.wasAltered(); - }; - - Record.prototype.__iterator = function(type, reverse) {var this$0 = this; - return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse); - }; - - Record.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse); - }; - - Record.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map && this._map.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - return this; - } - return makeRecord(this, newMap, ownerID); - }; - - - var RecordPrototype = Record.prototype; - RecordPrototype[DELETE] = RecordPrototype.remove; - RecordPrototype.deleteIn = - RecordPrototype.removeIn = MapPrototype.removeIn; - RecordPrototype.merge = MapPrototype.merge; - RecordPrototype.mergeWith = MapPrototype.mergeWith; - RecordPrototype.mergeIn = MapPrototype.mergeIn; - RecordPrototype.mergeDeep = MapPrototype.mergeDeep; - RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith; - RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn; - RecordPrototype.setIn = MapPrototype.setIn; - RecordPrototype.update = MapPrototype.update; - RecordPrototype.updateIn = MapPrototype.updateIn; - RecordPrototype.withMutations = MapPrototype.withMutations; - RecordPrototype.asMutable = MapPrototype.asMutable; - RecordPrototype.asImmutable = MapPrototype.asImmutable; - - - function makeRecord(likeRecord, map, ownerID) { - var record = Object.create(Object.getPrototypeOf(likeRecord)); - record._map = map; - record.__ownerID = ownerID; - return record; - } - - function recordName(record) { - return record._name || record.constructor.name || 'Record'; - } - - function setProps(prototype, names) { - try { - names.forEach(setProp.bind(undefined, prototype)); - } catch (error) { - // Object.defineProperty failed. Probably IE8. - } - } - - function setProp(prototype, name) { - Object.defineProperty(prototype, name, { - get: function() { - return this.get(name); - }, - set: function(value) { - invariant(this.__ownerID, 'Cannot set on an immutable record.'); - this.set(name, value); - } - }); - } - - createClass(Set, SetCollection); - - // @pragma Construction - - function Set(value) { - return value === null || value === undefined ? emptySet() : - isSet(value) && !isOrdered(value) ? value : - emptySet().withMutations(function(set ) { - var iter = SetIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v ) {return set.add(v)}); - }); - } - - Set.of = function(/*...values*/) { - return this(arguments); - }; - - Set.fromKeys = function(value) { - return this(KeyedIterable(value).keySeq()); - }; - - Set.prototype.toString = function() { - return this.__toString('Set {', '}'); - }; - - // @pragma Access - - Set.prototype.has = function(value) { - return this._map.has(value); - }; - - // @pragma Modification - - Set.prototype.add = function(value) { - return updateSet(this, this._map.set(value, true)); - }; - - Set.prototype.remove = function(value) { - return updateSet(this, this._map.remove(value)); - }; - - Set.prototype.clear = function() { - return updateSet(this, this._map.clear()); - }; - - // @pragma Composition - - Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0); - iters = iters.filter(function(x ) {return x.size !== 0}); - if (iters.length === 0) { - return this; - } - if (this.size === 0 && !this.__ownerID && iters.length === 1) { - return this.constructor(iters[0]); - } - return this.withMutations(function(set ) { - for (var ii = 0; ii < iters.length; ii++) { - SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)}); - } - }); - }; - - Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0); - if (iters.length === 0) { - return this; - } - iters = iters.map(function(iter ) {return SetIterable(iter)}); - var originalSet = this; - return this.withMutations(function(set ) { - originalSet.forEach(function(value ) { - if (!iters.every(function(iter ) {return iter.includes(value)})) { - set.remove(value); - } - }); - }); - }; - - Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0); - if (iters.length === 0) { - return this; - } - iters = iters.map(function(iter ) {return SetIterable(iter)}); - var originalSet = this; - return this.withMutations(function(set ) { - originalSet.forEach(function(value ) { - if (iters.some(function(iter ) {return iter.includes(value)})) { - set.remove(value); - } - }); - }); - }; - - Set.prototype.merge = function() { - return this.union.apply(this, arguments); - }; - - Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1); - return this.union.apply(this, iters); - }; - - Set.prototype.sort = function(comparator) { - // Late binding - return OrderedSet(sortFactory(this, comparator)); - }; - - Set.prototype.sortBy = function(mapper, comparator) { - // Late binding - return OrderedSet(sortFactory(this, comparator, mapper)); - }; - - Set.prototype.wasAltered = function() { - return this._map.wasAltered(); - }; - - Set.prototype.__iterate = function(fn, reverse) {var this$0 = this; - return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse); - }; - - Set.prototype.__iterator = function(type, reverse) { - return this._map.map(function(_, k) {return k}).__iterator(type, reverse); - }; - - Set.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - var newMap = this._map.__ensureOwner(ownerID); - if (!ownerID) { - this.__ownerID = ownerID; - this._map = newMap; - return this; - } - return this.__make(newMap, ownerID); - }; - - - function isSet(maybeSet) { - return !!(maybeSet && maybeSet[IS_SET_SENTINEL]); - } - - Set.isSet = isSet; - - var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@'; - - var SetPrototype = Set.prototype; - SetPrototype[IS_SET_SENTINEL] = true; - SetPrototype[DELETE] = SetPrototype.remove; - SetPrototype.mergeDeep = SetPrototype.merge; - SetPrototype.mergeDeepWith = SetPrototype.mergeWith; - SetPrototype.withMutations = MapPrototype.withMutations; - SetPrototype.asMutable = MapPrototype.asMutable; - SetPrototype.asImmutable = MapPrototype.asImmutable; - - SetPrototype.__empty = emptySet; - SetPrototype.__make = makeSet; - - function updateSet(set, newMap) { - if (set.__ownerID) { - set.size = newMap.size; - set._map = newMap; - return set; - } - return newMap === set._map ? set : - newMap.size === 0 ? set.__empty() : - set.__make(newMap); - } - - function makeSet(map, ownerID) { - var set = Object.create(SetPrototype); - set.size = map ? map.size : 0; - set._map = map; - set.__ownerID = ownerID; - return set; - } - - var EMPTY_SET; - function emptySet() { - return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap())); - } - - createClass(OrderedSet, Set); - - // @pragma Construction - - function OrderedSet(value) { - return value === null || value === undefined ? emptyOrderedSet() : - isOrderedSet(value) ? value : - emptyOrderedSet().withMutations(function(set ) { - var iter = SetIterable(value); - assertNotInfinite(iter.size); - iter.forEach(function(v ) {return set.add(v)}); - }); - } - - OrderedSet.of = function(/*...values*/) { - return this(arguments); - }; - - OrderedSet.fromKeys = function(value) { - return this(KeyedIterable(value).keySeq()); - }; - - OrderedSet.prototype.toString = function() { - return this.__toString('OrderedSet {', '}'); - }; - - - function isOrderedSet(maybeOrderedSet) { - return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet); - } - - OrderedSet.isOrderedSet = isOrderedSet; - - var OrderedSetPrototype = OrderedSet.prototype; - OrderedSetPrototype[IS_ORDERED_SENTINEL] = true; - - OrderedSetPrototype.__empty = emptyOrderedSet; - OrderedSetPrototype.__make = makeOrderedSet; - - function makeOrderedSet(map, ownerID) { - var set = Object.create(OrderedSetPrototype); - set.size = map ? map.size : 0; - set._map = map; - set.__ownerID = ownerID; - return set; - } - - var EMPTY_ORDERED_SET; - function emptyOrderedSet() { - return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap())); - } - - createClass(Stack, IndexedCollection); - - // @pragma Construction - - function Stack(value) { - return value === null || value === undefined ? emptyStack() : - isStack(value) ? value : - emptyStack().unshiftAll(value); - } - - Stack.of = function(/*...values*/) { - return this(arguments); - }; - - Stack.prototype.toString = function() { - return this.__toString('Stack [', ']'); - }; - - // @pragma Access - - Stack.prototype.get = function(index, notSetValue) { - var head = this._head; - index = wrapIndex(this, index); - while (head && index--) { - head = head.next; - } - return head ? head.value : notSetValue; - }; - - Stack.prototype.peek = function() { - return this._head && this._head.value; - }; - - // @pragma Modification - - Stack.prototype.push = function(/*...values*/) { - if (arguments.length === 0) { - return this; - } - var newSize = this.size + arguments.length; - var head = this._head; - for (var ii = arguments.length - 1; ii >= 0; ii--) { - head = { - value: arguments[ii], - next: head - }; - } - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - Stack.prototype.pushAll = function(iter) { - iter = IndexedIterable(iter); - if (iter.size === 0) { - return this; - } - assertNotInfinite(iter.size); - var newSize = this.size; - var head = this._head; - iter.reverse().forEach(function(value ) { - newSize++; - head = { - value: value, - next: head - }; - }); - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - Stack.prototype.pop = function() { - return this.slice(1); - }; - - Stack.prototype.unshift = function(/*...values*/) { - return this.push.apply(this, arguments); - }; - - Stack.prototype.unshiftAll = function(iter) { - return this.pushAll(iter); - }; - - Stack.prototype.shift = function() { - return this.pop.apply(this, arguments); - }; - - Stack.prototype.clear = function() { - if (this.size === 0) { - return this; - } - if (this.__ownerID) { - this.size = 0; - this._head = undefined; - this.__hash = undefined; - this.__altered = true; - return this; - } - return emptyStack(); - }; - - Stack.prototype.slice = function(begin, end) { - if (wholeSlice(begin, end, this.size)) { - return this; - } - var resolvedBegin = resolveBegin(begin, this.size); - var resolvedEnd = resolveEnd(end, this.size); - if (resolvedEnd !== this.size) { - // super.slice(begin, end); - return IndexedCollection.prototype.slice.call(this, begin, end); - } - var newSize = this.size - resolvedBegin; - var head = this._head; - while (resolvedBegin--) { - head = head.next; - } - if (this.__ownerID) { - this.size = newSize; - this._head = head; - this.__hash = undefined; - this.__altered = true; - return this; - } - return makeStack(newSize, head); - }; - - // @pragma Mutability - - Stack.prototype.__ensureOwner = function(ownerID) { - if (ownerID === this.__ownerID) { - return this; - } - if (!ownerID) { - this.__ownerID = ownerID; - this.__altered = false; - return this; - } - return makeStack(this.size, this._head, ownerID, this.__hash); - }; - - // @pragma Iteration - - Stack.prototype.__iterate = function(fn, reverse) { - if (reverse) { - return this.reverse().__iterate(fn); - } - var iterations = 0; - var node = this._head; - while (node) { - if (fn(node.value, iterations++, this) === false) { - break; - } - node = node.next; - } - return iterations; - }; - - Stack.prototype.__iterator = function(type, reverse) { - if (reverse) { - return this.reverse().__iterator(type); - } - var iterations = 0; - var node = this._head; - return new Iterator(function() { - if (node) { - var value = node.value; - node = node.next; - return iteratorValue(type, iterations++, value); - } - return iteratorDone(); - }); - }; - - - function isStack(maybeStack) { - return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]); - } - - Stack.isStack = isStack; - - var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@'; - - var StackPrototype = Stack.prototype; - StackPrototype[IS_STACK_SENTINEL] = true; - StackPrototype.withMutations = MapPrototype.withMutations; - StackPrototype.asMutable = MapPrototype.asMutable; - StackPrototype.asImmutable = MapPrototype.asImmutable; - StackPrototype.wasAltered = MapPrototype.wasAltered; - - - function makeStack(size, head, ownerID, hash) { - var map = Object.create(StackPrototype); - map.size = size; - map._head = head; - map.__ownerID = ownerID; - map.__hash = hash; - map.__altered = false; - return map; - } - - var EMPTY_STACK; - function emptyStack() { - return EMPTY_STACK || (EMPTY_STACK = makeStack(0)); - } - - /** - * Contributes additional methods to a constructor - */ - function mixin(ctor, methods) { - var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; }; - Object.keys(methods).forEach(keyCopier); - Object.getOwnPropertySymbols && - Object.getOwnPropertySymbols(methods).forEach(keyCopier); - return ctor; - } - - Iterable.Iterator = Iterator; - - mixin(Iterable, { - - // ### Conversion to other types - - toArray: function() { - assertNotInfinite(this.size); - var array = new Array(this.size || 0); - this.valueSeq().__iterate(function(v, i) { array[i] = v; }); - return array; - }, - - toIndexedSeq: function() { - return new ToIndexedSequence(this); - }, - - toJS: function() { - return this.toSeq().map( - function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value} - ).__toJS(); - }, - - toJSON: function() { - return this.toSeq().map( - function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value} - ).__toJS(); - }, - - toKeyedSeq: function() { - return new ToKeyedSequence(this, true); - }, - - toMap: function() { - // Use Late Binding here to solve the circular dependency. - return Map(this.toKeyedSeq()); - }, - - toObject: function() { - assertNotInfinite(this.size); - var object = {}; - this.__iterate(function(v, k) { object[k] = v; }); - return object; - }, - - toOrderedMap: function() { - // Use Late Binding here to solve the circular dependency. - return OrderedMap(this.toKeyedSeq()); - }, - - toOrderedSet: function() { - // Use Late Binding here to solve the circular dependency. - return OrderedSet(isKeyed(this) ? this.valueSeq() : this); - }, - - toSet: function() { - // Use Late Binding here to solve the circular dependency. - return Set(isKeyed(this) ? this.valueSeq() : this); - }, - - toSetSeq: function() { - return new ToSetSequence(this); - }, - - toSeq: function() { - return isIndexed(this) ? this.toIndexedSeq() : - isKeyed(this) ? this.toKeyedSeq() : - this.toSetSeq(); - }, - - toStack: function() { - // Use Late Binding here to solve the circular dependency. - return Stack(isKeyed(this) ? this.valueSeq() : this); - }, - - toList: function() { - // Use Late Binding here to solve the circular dependency. - return List(isKeyed(this) ? this.valueSeq() : this); - }, - - - // ### Common JavaScript methods and properties - - toString: function() { - return '[Iterable]'; - }, - - __toString: function(head, tail) { - if (this.size === 0) { - return head + tail; - } - return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail; - }, - - - // ### ES6 Collection methods (ES6 Array and Map) - - concat: function() {var values = SLICE$0.call(arguments, 0); - return reify(this, concatFactory(this, values)); - }, - - includes: function(searchValue) { - return this.some(function(value ) {return is(value, searchValue)}); - }, - - entries: function() { - return this.__iterator(ITERATE_ENTRIES); - }, - - every: function(predicate, context) { - assertNotInfinite(this.size); - var returnValue = true; - this.__iterate(function(v, k, c) { - if (!predicate.call(context, v, k, c)) { - returnValue = false; - return false; - } - }); - return returnValue; - }, - - filter: function(predicate, context) { - return reify(this, filterFactory(this, predicate, context, true)); - }, - - find: function(predicate, context, notSetValue) { - var entry = this.findEntry(predicate, context); - return entry ? entry[1] : notSetValue; - }, - - forEach: function(sideEffect, context) { - assertNotInfinite(this.size); - return this.__iterate(context ? sideEffect.bind(context) : sideEffect); - }, - - join: function(separator) { - assertNotInfinite(this.size); - separator = separator !== undefined ? '' + separator : ','; - var joined = ''; - var isFirst = true; - this.__iterate(function(v ) { - isFirst ? (isFirst = false) : (joined += separator); - joined += v !== null && v !== undefined ? v.toString() : ''; - }); - return joined; - }, - - keys: function() { - return this.__iterator(ITERATE_KEYS); - }, - - map: function(mapper, context) { - return reify(this, mapFactory(this, mapper, context)); - }, - - reduce: function(reducer, initialReduction, context) { - assertNotInfinite(this.size); - var reduction; - var useFirst; - if (arguments.length < 2) { - useFirst = true; - } else { - reduction = initialReduction; - } - this.__iterate(function(v, k, c) { - if (useFirst) { - useFirst = false; - reduction = v; - } else { - reduction = reducer.call(context, reduction, v, k, c); - } - }); - return reduction; - }, - - reduceRight: function(reducer, initialReduction, context) { - var reversed = this.toKeyedSeq().reverse(); - return reversed.reduce.apply(reversed, arguments); - }, - - reverse: function() { - return reify(this, reverseFactory(this, true)); - }, - - slice: function(begin, end) { - return reify(this, sliceFactory(this, begin, end, true)); - }, - - some: function(predicate, context) { - return !this.every(not(predicate), context); - }, - - sort: function(comparator) { - return reify(this, sortFactory(this, comparator)); - }, - - values: function() { - return this.__iterator(ITERATE_VALUES); - }, - - - // ### More sequential methods - - butLast: function() { - return this.slice(0, -1); - }, - - isEmpty: function() { - return this.size !== undefined ? this.size === 0 : !this.some(function() {return true}); - }, - - count: function(predicate, context) { - return ensureSize( - predicate ? this.toSeq().filter(predicate, context) : this - ); - }, - - countBy: function(grouper, context) { - return countByFactory(this, grouper, context); - }, - - equals: function(other) { - return deepEqual(this, other); - }, - - entrySeq: function() { - var iterable = this; - if (iterable._cache) { - // We cache as an entries array, so we can just return the cache! - return new ArraySeq(iterable._cache); - } - var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq(); - entriesSequence.fromEntrySeq = function() {return iterable.toSeq()}; - return entriesSequence; - }, - - filterNot: function(predicate, context) { - return this.filter(not(predicate), context); - }, - - findEntry: function(predicate, context, notSetValue) { - var found = notSetValue; - this.__iterate(function(v, k, c) { - if (predicate.call(context, v, k, c)) { - found = [k, v]; - return false; - } - }); - return found; - }, - - findKey: function(predicate, context) { - var entry = this.findEntry(predicate, context); - return entry && entry[0]; - }, - - findLast: function(predicate, context, notSetValue) { - return this.toKeyedSeq().reverse().find(predicate, context, notSetValue); - }, - - findLastEntry: function(predicate, context, notSetValue) { - return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue); - }, - - findLastKey: function(predicate, context) { - return this.toKeyedSeq().reverse().findKey(predicate, context); - }, - - first: function() { - return this.find(returnTrue); - }, - - flatMap: function(mapper, context) { - return reify(this, flatMapFactory(this, mapper, context)); - }, - - flatten: function(depth) { - return reify(this, flattenFactory(this, depth, true)); - }, - - fromEntrySeq: function() { - return new FromEntriesSequence(this); - }, - - get: function(searchKey, notSetValue) { - return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue); - }, - - getIn: function(searchKeyPath, notSetValue) { - var nested = this; - // Note: in an ES6 environment, we would prefer: - // for (var key of searchKeyPath) { - var iter = forceIterator(searchKeyPath); - var step; - while (!(step = iter.next()).done) { - var key = step.value; - nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET; - if (nested === NOT_SET) { - return notSetValue; - } - } - return nested; - }, - - groupBy: function(grouper, context) { - return groupByFactory(this, grouper, context); - }, - - has: function(searchKey) { - return this.get(searchKey, NOT_SET) !== NOT_SET; - }, - - hasIn: function(searchKeyPath) { - return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET; - }, - - isSubset: function(iter) { - iter = typeof iter.includes === 'function' ? iter : Iterable(iter); - return this.every(function(value ) {return iter.includes(value)}); - }, - - isSuperset: function(iter) { - iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter); - return iter.isSubset(this); - }, - - keyOf: function(searchValue) { - return this.findKey(function(value ) {return is(value, searchValue)}); - }, - - keySeq: function() { - return this.toSeq().map(keyMapper).toIndexedSeq(); - }, - - last: function() { - return this.toSeq().reverse().first(); - }, - - lastKeyOf: function(searchValue) { - return this.toKeyedSeq().reverse().keyOf(searchValue); - }, - - max: function(comparator) { - return maxFactory(this, comparator); - }, - - maxBy: function(mapper, comparator) { - return maxFactory(this, comparator, mapper); - }, - - min: function(comparator) { - return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator); - }, - - minBy: function(mapper, comparator) { - return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper); - }, - - rest: function() { - return this.slice(1); - }, - - skip: function(amount) { - return this.slice(Math.max(0, amount)); - }, - - skipLast: function(amount) { - return reify(this, this.toSeq().reverse().skip(amount).reverse()); - }, - - skipWhile: function(predicate, context) { - return reify(this, skipWhileFactory(this, predicate, context, true)); - }, - - skipUntil: function(predicate, context) { - return this.skipWhile(not(predicate), context); - }, - - sortBy: function(mapper, comparator) { - return reify(this, sortFactory(this, comparator, mapper)); - }, - - take: function(amount) { - return this.slice(0, Math.max(0, amount)); - }, - - takeLast: function(amount) { - return reify(this, this.toSeq().reverse().take(amount).reverse()); - }, - - takeWhile: function(predicate, context) { - return reify(this, takeWhileFactory(this, predicate, context)); - }, - - takeUntil: function(predicate, context) { - return this.takeWhile(not(predicate), context); - }, - - valueSeq: function() { - return this.toIndexedSeq(); - }, - - - // ### Hashable Object - - hashCode: function() { - return this.__hash || (this.__hash = hashIterable(this)); - } - - - // ### Internal - - // abstract __iterate(fn, reverse) - - // abstract __iterator(type, reverse) - }); - - // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@'; - // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@'; - // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@'; - // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@'; - - var IterablePrototype = Iterable.prototype; - IterablePrototype[IS_ITERABLE_SENTINEL] = true; - IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values; - IterablePrototype.__toJS = IterablePrototype.toArray; - IterablePrototype.__toStringMapper = quoteString; - IterablePrototype.inspect = - IterablePrototype.toSource = function() { return this.toString(); }; - IterablePrototype.chain = IterablePrototype.flatMap; - IterablePrototype.contains = IterablePrototype.includes; - - mixin(KeyedIterable, { - - // ### More sequential methods - - flip: function() { - return reify(this, flipFactory(this)); - }, - - mapEntries: function(mapper, context) {var this$0 = this; - var iterations = 0; - return reify(this, - this.toSeq().map( - function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)} - ).fromEntrySeq() - ); - }, - - mapKeys: function(mapper, context) {var this$0 = this; - return reify(this, - this.toSeq().flip().map( - function(k, v) {return mapper.call(context, k, v, this$0)} - ).flip() - ); - } - - }); - - var KeyedIterablePrototype = KeyedIterable.prototype; - KeyedIterablePrototype[IS_KEYED_SENTINEL] = true; - KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries; - KeyedIterablePrototype.__toJS = IterablePrototype.toObject; - KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)}; - - - - mixin(IndexedIterable, { - - // ### Conversion to other types - - toKeyedSeq: function() { - return new ToKeyedSequence(this, false); - }, - - - // ### ES6 Collection methods (ES6 Array and Map) - - filter: function(predicate, context) { - return reify(this, filterFactory(this, predicate, context, false)); - }, - - findIndex: function(predicate, context) { - var entry = this.findEntry(predicate, context); - return entry ? entry[0] : -1; - }, - - indexOf: function(searchValue) { - var key = this.keyOf(searchValue); - return key === undefined ? -1 : key; - }, - - lastIndexOf: function(searchValue) { - var key = this.lastKeyOf(searchValue); - return key === undefined ? -1 : key; - }, - - reverse: function() { - return reify(this, reverseFactory(this, false)); - }, - - slice: function(begin, end) { - return reify(this, sliceFactory(this, begin, end, false)); - }, - - splice: function(index, removeNum /*, ...values*/) { - var numArgs = arguments.length; - removeNum = Math.max(removeNum | 0, 0); - if (numArgs === 0 || (numArgs === 2 && !removeNum)) { - return this; - } - // If index is negative, it should resolve relative to the size of the - // collection. However size may be expensive to compute if not cached, so - // only call count() if the number is in fact negative. - index = resolveBegin(index, index < 0 ? this.count() : this.size); - var spliced = this.slice(0, index); - return reify( - this, - numArgs === 1 ? - spliced : - spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum)) - ); - }, - - - // ### More collection methods - - findLastIndex: function(predicate, context) { - var entry = this.findLastEntry(predicate, context); - return entry ? entry[0] : -1; - }, - - first: function() { - return this.get(0); - }, - - flatten: function(depth) { - return reify(this, flattenFactory(this, depth, false)); - }, - - get: function(index, notSetValue) { - index = wrapIndex(this, index); - return (index < 0 || (this.size === Infinity || - (this.size !== undefined && index > this.size))) ? - notSetValue : - this.find(function(_, key) {return key === index}, undefined, notSetValue); - }, - - has: function(index) { - index = wrapIndex(this, index); - return index >= 0 && (this.size !== undefined ? - this.size === Infinity || index < this.size : - this.indexOf(index) !== -1 - ); - }, - - interpose: function(separator) { - return reify(this, interposeFactory(this, separator)); - }, - - interleave: function(/*...iterables*/) { - var iterables = [this].concat(arrCopy(arguments)); - var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables); - var interleaved = zipped.flatten(true); - if (zipped.size) { - interleaved.size = zipped.size * iterables.length; - } - return reify(this, interleaved); - }, - - keySeq: function() { - return Range(0, this.size); - }, - - last: function() { - return this.get(-1); - }, - - skipWhile: function(predicate, context) { - return reify(this, skipWhileFactory(this, predicate, context, false)); - }, - - zip: function(/*, ...iterables */) { - var iterables = [this].concat(arrCopy(arguments)); - return reify(this, zipWithFactory(this, defaultZipper, iterables)); - }, - - zipWith: function(zipper/*, ...iterables */) { - var iterables = arrCopy(arguments); - iterables[0] = this; - return reify(this, zipWithFactory(this, zipper, iterables)); - } - - }); - - IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true; - IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true; - - - - mixin(SetIterable, { - - // ### ES6 Collection methods (ES6 Array and Map) - - get: function(value, notSetValue) { - return this.has(value) ? value : notSetValue; - }, - - includes: function(value) { - return this.has(value); - }, - - - // ### More sequential methods - - keySeq: function() { - return this.valueSeq(); - } - - }); - - SetIterable.prototype.has = IterablePrototype.includes; - SetIterable.prototype.contains = SetIterable.prototype.includes; - - - // Mixin subclasses - - mixin(KeyedSeq, KeyedIterable.prototype); - mixin(IndexedSeq, IndexedIterable.prototype); - mixin(SetSeq, SetIterable.prototype); - - mixin(KeyedCollection, KeyedIterable.prototype); - mixin(IndexedCollection, IndexedIterable.prototype); - mixin(SetCollection, SetIterable.prototype); - - - // #pragma Helper functions - - function keyMapper(v, k) { - return k; - } - - function entryMapper(v, k) { - return [k, v]; - } - - function not(predicate) { - return function() { - return !predicate.apply(this, arguments); - } - } - - function neg(predicate) { - return function() { - return -predicate.apply(this, arguments); - } - } - - function quoteString(value) { - return typeof value === 'string' ? JSON.stringify(value) : String(value); - } - - function defaultZipper() { - return arrCopy(arguments); - } - - function defaultNegComparator(a, b) { - return a < b ? 1 : a > b ? -1 : 0; - } - - function hashIterable(iterable) { - if (iterable.size === Infinity) { - return 0; - } - var ordered = isOrdered(iterable); - var keyed = isKeyed(iterable); - var h = ordered ? 1 : 0; - var size = iterable.__iterate( - keyed ? - ordered ? - function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } : - function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } : - ordered ? - function(v ) { h = 31 * h + hash(v) | 0; } : - function(v ) { h = h + hash(v) | 0; } - ); - return murmurHashOfSize(size, h); - } - - function murmurHashOfSize(size, h) { - h = imul(h, 0xCC9E2D51); - h = imul(h << 15 | h >>> -15, 0x1B873593); - h = imul(h << 13 | h >>> -13, 5); - h = (h + 0xE6546B64 | 0) ^ size; - h = imul(h ^ h >>> 16, 0x85EBCA6B); - h = imul(h ^ h >>> 13, 0xC2B2AE35); - h = smi(h ^ h >>> 16); - return h; - } - - function hashMerge(a, b) { - return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int - } - - var Immutable = { - - Iterable: Iterable, - - Seq: Seq, - Collection: Collection, - Map: Map, - OrderedMap: OrderedMap, - List: List, - Stack: Stack, - Set: Set, - OrderedSet: OrderedSet, - - Record: Record, - Range: Range, - Repeat: Repeat, - - is: is, - fromJS: fromJS - - }; - - return Immutable; - -})); \ No newline at end of file diff --git a/packages/client/node_modules/immutable/dist/immutable.js.flow b/packages/client/node_modules/immutable/dist/immutable.js.flow deleted file mode 100644 index f6f469a..0000000 --- a/packages/client/node_modules/immutable/dist/immutable.js.flow +++ /dev/null @@ -1,670 +0,0 @@ -/** - * 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 file provides type definitions for use with the Flow type checker. - * - * An important caveat when using these definitions is that the types for - * `Iterable.Keyed`, `Iterable.Indexed`, `Seq.Keyed`, and so on are stubs. - * When referring to those types, you can get the proper definitions by - * importing the types `KeyedIterable`, `IndexedIterable`, `KeyedSeq`, etc. - * For example, - * - * import { Seq } from 'immutable' - * import type { IndexedIterable, IndexedSeq } from 'immutable' - * - * const someSeq: IndexedSeq = Seq.Indexed.of(1, 2, 3) - * - * function takesASeq>(iter: TS): TS { - * return iter.butLast() - * } - * - * takesASeq(someSeq) - * - * @flow - */ - -/* - * Alias for ECMAScript `Iterable` type, declared in - * https://github.com/facebook/flow/blob/master/lib/core.js - * - * Note that Immutable values implement the `ESIterable` interface. - */ -type ESIterable = $Iterable; - -declare class Iterable extends _Iterable {} - -declare class _Iterable { - static Keyed: KI; - static Indexed: II; - static Set: SI; - - static isIterable(maybeIterable: any): boolean; - static isKeyed(maybeKeyed: any): boolean; - static isIndexed(maybeIndexed: any): boolean; - static isAssociative(maybeAssociative: any): boolean; - static isOrdered(maybeOrdered: any): boolean; - - equals(other: Iterable): boolean; - hashCode(): number; - get(key: K): V; - get(key: K, notSetValue: V_): V|V_; - has(key: K): boolean; - includes(value: V): boolean; - contains(value: V): boolean; - first(): V; - last(): V; - - getIn(searchKeyPath: ESIterable, notSetValue: T): T; - getIn(searchKeyPath: ESIterable): T; - hasIn(searchKeyPath: ESIterable): boolean; - - toJS(): any; - toArray(): V[]; - toObject(): { [key: string]: V }; - toMap(): Map; - toOrderedMap(): Map; - toSet(): Set; - toOrderedSet(): Set; - toList(): List; - toStack(): Stack; - toSeq(): Seq; - toKeyedSeq(): KeyedSeq; - toIndexedSeq(): IndexedSeq; - toSetSeq(): SetSeq; - - keys(): Iterator; - values(): Iterator; - entries(): Iterator<[K,V]>; - - keySeq(): IndexedSeq; - valueSeq(): IndexedSeq; - entrySeq(): IndexedSeq<[K,V]>; - - reverse(): this; - sort(comparator?: (valueA: V, valueB: V) => number): this; - - sortBy( - comparatorValueMapper: (value: V, key: K, iter: this) => C, - comparator?: (valueA: C, valueB: C) => number - ): this; - - groupBy( - grouper: (value: V, key: K, iter: this) => G, - context?: any - ): KeyedSeq; - - forEach( - sideEffect: (value: V, key: K, iter: this) => any, - context?: any - ): number; - - slice(begin?: number, end?: number): this; - rest(): this; - butLast(): this; - skip(amount: number): this; - skipLast(amount: number): this; - skipWhile(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; - skipUntil(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; - take(amount: number): this; - takeLast(amount: number): this; - takeWhile(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; - takeUntil(predicate: (value: V, key: K, iter: this) => mixed, context?: any): this; - flatten(depth?: number): /*this*/Iterable; - flatten(shallow?: boolean): /*this*/Iterable; - - filter( - predicate: (value: V, key: K, iter: this) => mixed, - context?: any - ): this; - - filterNot( - predicate: (value: V, key: K, iter: this) => mixed, - context?: any - ): this; - - reduce( - reducer: (reduction: R, value: V, key: K, iter: this) => R, - initialReduction?: R, - context?: any, - ): R; - - reduceRight( - reducer: (reduction: R, value: V, key: K, iter: this) => R, - initialReduction?: R, - context?: any, - ): R; - - every(predicate: (value: V, key: K, iter: this) => mixed, context?: any): boolean; - some(predicate: (value: V, key: K, iter: this) => mixed, context?: any): boolean; - join(separator?: string): string; - isEmpty(): boolean; - count(predicate?: (value: V, key: K, iter: this) => mixed, context?: any): number; - countBy(grouper: (value: V, key: K, iter: this) => G, context?: any): Map; - - find( - predicate: (value: V, key: K, iter: this) => mixed, - context?: any, - ): ?V; - find( - predicate: (value: V, key: K, iter: this) => mixed, - context: any, - notSetValue: V_ - ): V|V_; - - findLast( - predicate: (value: V, key: K, iter: this) => mixed, - context?: any, - ): ?V; - findLast( - predicate: (value: V, key: K, iter: this) => mixed, - context: any, - notSetValue: V_ - ): V|V_; - - - findEntry(predicate: (value: V, key: K, iter: this) => mixed): ?[K,V]; - findLastEntry(predicate: (value: V, key: K, iter: this) => mixed): ?[K,V]; - - findKey(predicate: (value: V, key: K, iter: this) => mixed, context?: any): ?K; - findLastKey(predicate: (value: V, key: K, iter: this) => mixed, context?: any): ?K; - - keyOf(searchValue: V): ?K; - lastKeyOf(searchValue: V): ?K; - - max(comparator?: (valueA: V, valueB: V) => number): V; - maxBy( - comparatorValueMapper: (value: V, key: K, iter: this) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - min(comparator?: (valueA: V, valueB: V) => number): V; - minBy( - comparatorValueMapper: (value: V, key: K, iter: this) => C, - comparator?: (valueA: C, valueB: C) => number - ): V; - - isSubset(iter: Iterable): boolean; - isSubset(iter: ESIterable): boolean; - isSuperset(iter: Iterable): boolean; - isSuperset(iter: ESIterable): boolean; -} - -declare class KeyedIterable extends Iterable { - static (iter?: ESIterable<[K,V]>): KeyedIterable; - static (obj?: { [key: K]: V }): KeyedIterable; - - @@iterator(): Iterator<[K,V]>; - toSeq(): KeyedSeq; - flip(): /*this*/KeyedIterable; - - mapKeys( - mapper: (key: K, value: V, iter: this) => K_, - context?: any - ): /*this*/KeyedIterable; - - mapEntries( - mapper: (entry: [K,V], index: number, iter: this) => [K_,V_], - context?: any - ): /*this*/KeyedIterable; - - concat(...iters: ESIterable<[K,V]>[]): this; - - map( - mapper: (value: V, key: K, iter: this) => V_, - context?: any - ): /*this*/KeyedIterable; - - flatMap( - mapper: (value: V, key: K, iter: this) => ESIterable<[K_,V_]>, - context?: any - ): /*this*/KeyedIterable; - - flatten(depth?: number): /*this*/KeyedIterable; - flatten(shallow?: boolean): /*this*/KeyedIterable; -} - -declare class IndexedIterable extends Iterable { - static (iter?: ESIterable): IndexedIterable; - - @@iterator(): Iterator; - toSeq(): IndexedSeq; - fromEntrySeq(): KeyedSeq; - interpose(separator: T): this; - interleave(...iterables: ESIterable[]): this; - splice( - index: number, - removeNum: number, - ...values: T[] - ): this; - - zip( - a: ESIterable, - $?: null - ): IndexedIterable<[T,A]>; - zip( - a: ESIterable, - b: ESIterable, - $?: null - ): IndexedIterable<[T,A,B]>; - zip( - a: ESIterable, - b: ESIterable, - c: ESIterable, - $?: null - ): IndexedIterable<[T,A,B,C]>; - zip( - a: ESIterable, - b: ESIterable, - c: ESIterable, - d: ESIterable, - $?: null - ): IndexedIterable<[T,A,B,C,D]>; - zip( - a: ESIterable, - b: ESIterable, - c: ESIterable, - d: ESIterable, - e: ESIterable, - $?: null - ): IndexedIterable<[T,A,B,C,D,E]>; - - zipWith( - zipper: (value: T, a: A) => R, - a: ESIterable, - $?: null - ): IndexedIterable; - zipWith( - zipper: (value: T, a: A, b: B) => R, - a: ESIterable, - b: ESIterable, - $?: null - ): IndexedIterable; - zipWith( - zipper: (value: T, a: A, b: B, c: C) => R, - a: ESIterable, - b: ESIterable, - c: ESIterable, - $?: null - ): IndexedIterable; - zipWith( - zipper: (value: T, a: A, b: B, c: C, d: D) => R, - a: ESIterable, - b: ESIterable, - c: ESIterable, - d: ESIterable, - $?: null - ): IndexedIterable; - zipWith( - zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R, - a: ESIterable, - b: ESIterable, - c: ESIterable, - d: ESIterable, - e: ESIterable, - $?: null - ): IndexedIterable; - - indexOf(searchValue: T): number; - lastIndexOf(searchValue: T): number; - findIndex( - predicate: (value: T, index: number, iter: this) => mixed, - context?: any - ): number; - findLastIndex( - predicate: (value: T, index: number, iter: this) => mixed, - context?: any - ): number; - - concat(...iters: ESIterable[]): this; - - map( - mapper: (value: T, index: number, iter: this) => U, - context?: any - ): /*this*/IndexedIterable; - - flatMap( - mapper: (value: T, index: number, iter: this) => ESIterable, - context?: any - ): /*this*/IndexedIterable; - - flatten(depth?: number): /*this*/IndexedIterable; - flatten(shallow?: boolean): /*this*/IndexedIterable; -} - -declare class SetIterable extends Iterable { - static (iter?: ESIterable): SetIterable; - - @@iterator(): Iterator; - toSeq(): SetSeq; - - concat(...iters: ESIterable[]): this; - - // `map` and `flatMap` cannot be defined further up the hiearchy, because the - // implementation for `KeyedIterable` allows the value type to change without - // constraining the key type. That does not work for `SetIterable` - the value - // and key types *must* match. - map( - mapper: (value: T, value: T, iter: this) => U, - context?: any - ): /*this*/SetIterable; - - flatMap( - mapper: (value: T, value: T, iter: this) => ESIterable, - context?: any - ): /*this*/SetIterable; - - flatten(depth?: number): /*this*/SetIterable; - flatten(shallow?: boolean): /*this*/SetIterable; -} - -declare class Collection extends _Iterable { - size: number; -} - -declare class KeyedCollection extends Collection mixins KeyedIterable { - toSeq(): KeyedSeq; -} - -declare class IndexedCollection extends Collection mixins IndexedIterable { - toSeq(): IndexedSeq; -} - -declare class SetCollection extends Collection mixins SetIterable { - toSeq(): SetSeq; -} - -declare class Seq extends _Iterable { - static (iter: KeyedSeq): KeyedSeq; - static (iter: SetSeq): SetSeq; - static (iter?: ESIterable): IndexedSeq; - static (iter: { [key: K]: V }): KeyedSeq; - - static isSeq(maybeSeq: any): boolean; - static of(...values: T[]): IndexedSeq; - - size: ?number; - cacheResult(): this; - toSeq(): this; -} - -declare class KeyedSeq extends Seq mixins KeyedIterable { - static (iter?: ESIterable<[K,V]>): KeyedSeq; - static (iter?: { [key: K]: V }): KeyedSeq; -} - -declare class IndexedSeq extends Seq mixins IndexedIterable { - static (iter?: ESIterable): IndexedSeq; - static of(...values: T[]): IndexedSeq; -} - -declare class SetSeq extends Seq mixins SetIterable { - static (iter?: ESIterable): IndexedSeq; - static of(...values: T[]): SetSeq; -} - -declare class List extends IndexedCollection { - static (iterable?: ESIterable): List; - - static isList(maybeList: any): boolean; - static of(...values: T[]): List; - - set(index: number, value: U): List; - delete(index: number): this; - remove(index: number): this; - insert(index: number, value: U): List; - clear(): this; - push(...values: U[]): List; - pop(): this; - unshift(...values: U[]): List; - shift(): this; - - update(updater: (value: this) => List): List; - update(index: number, updater: (value: T) => U): List; - update(index: number, notSetValue: U, updater: (value: T) => U): List; - - merge(...iterables: ESIterable[]): List; - - mergeWith( - merger: (previous: T, next: U, key: number) => V, - ...iterables: ESIterable[] - ): List; - - mergeDeep(...iterables: ESIterable[]): List; - - mergeDeepWith( - merger: (previous: T, next: U, key: number) => V, - ...iterables: ESIterable[] - ): List; - - setSize(size: number): List; - setIn(keyPath: ESIterable, value: any): List; - deleteIn(keyPath: ESIterable, value: any): this; - removeIn(keyPath: ESIterable, value: any): this; - - updateIn(keyPath: ESIterable, notSetValue: any, value: any): List; - updateIn(keyPath: ESIterable, value: any): List; - - mergeIn(keyPath: ESIterable, ...iterables: ESIterable[]): List; - mergeDeepIn(keyPath: ESIterable, ...iterables: ESIterable[]): List; - - withMutations(mutator: (mutable: this) => any): this; - asMutable(): this; - asImmutable(): this; - - // Overrides that specialize return types - map( - mapper: (value: T, index: number, iter: this) => M, - context?: any - ): List; - - flatMap( - mapper: (value: T, index: number, iter: this) => ESIterable, - context?: any - ): List; - - flatten(depth?: number): /*this*/List; - flatten(shallow?: boolean): /*this*/List; -} - -declare class Map extends KeyedCollection { - static (): Map; - static (obj?: {[key: string]: V}): Map; - static (iterable?: ESIterable<[K,V]>): Map; - - static isMap(maybeMap: any): boolean; - - set(key: K_, value: V_): Map; - delete(key: K): this; - remove(key: K): this; - clear(): this; - - update(updater: (value: this) => Map): Map; - update(key: K, updater: (value: V) => V_): Map; - update(key: K, notSetValue: V_, updater: (value: V) => V_): Map; - - merge( - ...iterables: (ESIterable<[K_,V_]> | { [key: K_]: V_ })[] - ): Map; - - mergeWith( - merger: (previous: V, next: W, key: number) => X, - ...iterables: ESIterable[] - ): Map; - - mergeDeep( - ...iterables: (ESIterable<[K_,V_]> | { [key: K_]: V_ })[] - ): Map; - - mergeDeepWith( - merger: (previous: V, next: W, key: number) => X, - ...iterables: ESIterable[] - ): Map; - - setIn(keyPath: ESIterable, value: any): Map; - deleteIn(keyPath: ESIterable, value: any): this; - removeIn(keyPath: ESIterable, value: any): this; - - updateIn(keyPath: ESIterable, notSetValue: any, value: any): Map; - updateIn(keyPath: ESIterable, value: any): Map; - - mergeIn(keyPath: ESIterable, ...iterables: ESIterable[]): Map; - mergeDeepIn(keyPath: ESIterable, ...iterables: ESIterable[]): Map; - - withMutations(mutator: (mutable: this) => any): this; - asMutable(): this; - asImmutable(): this; - - // Overrides that specialize return types - - map( - mapper: (value: V, key: K, iter: this) => V_, - context?: any - ): Map; - - flatMap( - mapper: (value: V, key: K, iter: this) => ESIterable<[K_,V_]>, - context?: any - ): Map; - - flip(): Map; - - mapKeys( - mapper: (key: K, value: V, iter: this) => K_, - context?: any - ): Map; - - flatten(depth?: number): /*this*/Map; - flatten(shallow?: boolean): /*this*/Map; -} - -// OrderedMaps have nothing that Maps do not have. We do not need to override constructor & other statics -declare class OrderedMap extends Map { - static isOrderedMap(maybeOrderedMap: any): bool; -} - -declare class Set extends SetCollection { - static (iterable?: ESIterable): Set; - - static isSet(maybeSet: any): boolean; - static of(...values: T[]): Set; - static fromKeys(iter: ESIterable<[T,any]>): Set; - static fromKeys(iter: { [key: string]: any }): Set; - - add(value: U): Set; - delete(value: T): this; - remove(value: T): this; - clear(): this; - union(...iterables: ESIterable[]): Set; - merge(...iterables: ESIterable[]): Set; - intersect(...iterables: ESIterable[]): Set; - subtract(...iterables: ESIterable[]): Set; - - withMutations(mutator: (mutable: this) => any): this; - asMutable(): this; - asImmutable(): this; - - // Overrides that specialize return types - - map( - mapper: (value: T, value: T, iter: this) => M, - context?: any - ): Set; - - flatMap( - mapper: (value: T, value: T, iter: this) => ESIterable, - context?: any - ): Set; - - flatten(depth?: number): /*this*/Set; - flatten(shallow?: boolean): /*this*/Set; -} - -// OrderedSets have nothing that Sets do not have. We do not need to override constructor & other statics -declare class OrderedSet extends Set { - static isOrderedSet(maybeOrderedSet: any): bool; -} - -declare class Stack extends IndexedCollection { - static (iterable?: ESIterable): Stack; - - static isStack(maybeStack: any): boolean; - static of(...values: T[]): Stack; - - peek(): T; - clear(): this; - unshift(...values: U[]): Stack; - unshiftAll(iter: ESIterable): Stack; - shift(): this; - push(...values: U[]): Stack; - pushAll(iter: ESIterable): Stack; - pop(): this; - - withMutations(mutator: (mutable: this) => any): this; - asMutable(): this; - asImmutable(): this; - - // Overrides that specialize return types - - map( - mapper: (value: T, index: number, iter: this) => U, - context?: any - ): Stack; - - flatMap( - mapper: (value: T, index: number, iter: this) => ESIterable, - context?: any - ): Stack; - - flatten(depth?: number): /*this*/Stack; - flatten(shallow?: boolean): /*this*/Stack; -} - -declare function Range(start?: number, end?: number, step?: number): IndexedSeq; -declare function Repeat(value: T, times?: number): IndexedSeq; - -//TODO: Once flow can extend normal Objects we can change this back to actually reflect Record behavior. -// For now fallback to any to not break existing Code -declare class Record { - static (spec: T, name?: string): /*T & Record*/any; - get(key: $Keys): A; - set(key: $Keys, value: A): /*T & Record*/this; - remove(key: $Keys): /*T & Record*/this; -} - -declare function fromJS(json: any, reviver?: (k: any, v: Iterable) => any): any; -declare function is(first: any, second: any): boolean; - -export { - Iterable, - Collection, - Seq, - - // These classes do not actually exist under these names. But it is useful to - // have the types available. - KeyedIterable, - IndexedIterable, - SetIterable, - KeyedCollection, - IndexedCollection, - SetCollection, - KeyedSeq, - IndexedSeq, - SetSeq, - - List, - Map, - OrderedMap, - OrderedSet, - Range, - Repeat, - Record, - Set, - Stack, - - fromJS, - is, -} diff --git a/packages/client/node_modules/immutable/dist/immutable.min.js b/packages/client/node_modules/immutable/dist/immutable.min.js deleted file mode 100644 index 5ea82ee..0000000 --- a/packages/client/node_modules/immutable/dist/immutable.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * 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(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Immutable=e()}(this,function(){"use strict";function t(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function e(t){return o(t)?t:O(t)}function r(t){return u(t)?t:x(t)}function n(t){return s(t)?t:k(t)}function i(t){return o(t)&&!a(t)?t:A(t)}function o(t){return!(!t||!t[ar])}function u(t){return!(!t||!t[hr])}function s(t){return!(!t||!t[fr])}function a(t){return u(t)||s(t)}function h(t){return!(!t||!t[cr])}function f(t){return t.value=!1,t}function c(t){t&&(t.value=!0)}function _(){}function p(t,e){e=e||0;for(var r=Math.max(0,t.length-e),n=Array(r),i=0;r>i;i++)n[i]=t[i+e];return n}function v(t){return void 0===t.size&&(t.size=t.__iterate(y)),t.size}function l(t,e){if("number"!=typeof e){var r=e>>>0;if(""+r!==e||4294967295===r)return NaN;e=r}return 0>e?v(t)+e:e}function y(){return!0}function d(t,e,r){return(0===t||void 0!==r&&-r>=t)&&(void 0===e||void 0!==r&&e>=r)}function m(t,e){return w(t,e,0)}function g(t,e){return w(t,e,e)}function w(t,e,r){return void 0===t?r:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function S(t){this.next=t}function z(t,e,r,n){var i=0===t?e:1===t?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function I(){return{value:void 0,done:!0}}function b(t){return!!M(t)}function q(t){return t&&"function"==typeof t.next}function D(t){var e=M(t);return e&&e.call(t)}function M(t){var e=t&&(zr&&t[zr]||t[Ir]);return"function"==typeof e?e:void 0}function E(t){return t&&"number"==typeof t.length}function O(t){return null===t||void 0===t?T():o(t)?t.toSeq():C(t)}function x(t){return null===t||void 0===t?T().toKeyedSeq():o(t)?u(t)?t.toSeq():t.fromEntrySeq():B(t)}function k(t){return null===t||void 0===t?T():o(t)?u(t)?t.entrySeq():t.toIndexedSeq():W(t)}function A(t){return(null===t||void 0===t?T():o(t)?u(t)?t.entrySeq():t:W(t)).toSetSeq()}function j(t){this._array=t,this.size=t.length}function R(t){var e=Object.keys(t);this._object=t,this._keys=e, -this.size=e.length}function U(t){this._iterable=t,this.size=t.length||t.size}function K(t){this._iterator=t,this._iteratorCache=[]}function L(t){return!(!t||!t[qr])}function T(){return Dr||(Dr=new j([]))}function B(t){var e=Array.isArray(t)?new j(t).fromEntrySeq():q(t)?new K(t).fromEntrySeq():b(t)?new U(t).fromEntrySeq():"object"==typeof t?new R(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function W(t){var e=J(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function C(t){var e=J(t)||"object"==typeof t&&new R(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function J(t){return E(t)?new j(t):q(t)?new K(t):b(t)?new U(t):void 0}function N(t,e,r,n){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var s=i[r?o-u:u];if(e(s[1],n?s[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,r)}function P(t,e,r,n){var i=t._cache;if(i){var o=i.length-1,u=0;return new S(function(){var t=i[r?o-u:u];return u++>o?I():z(e,n?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,r)}function H(t,e){return e?V(e,t,"",{"":t}):Y(t)}function V(t,e,r,n){return Array.isArray(e)?t.call(n,r,k(e).map(function(r,n){return V(t,r,n,e)})):Q(e)?t.call(n,r,x(e).map(function(r,n){return V(t,r,n,e)})):e}function Y(t){return Array.isArray(t)?k(t).map(Y).toList():Q(t)?x(t).map(Y).toMap():t}function Q(t){return t&&(t.constructor===Object||void 0===t.constructor)}function X(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return"function"==typeof t.equals&&"function"==typeof e.equals&&t.equals(e)?!0:!1}function F(t,e){if(t===e)return!0;if(!o(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||u(t)!==u(e)||s(t)!==s(e)||h(t)!==h(e))return!1;if(0===t.size&&0===e.size)return!0; -var r=!a(t);if(h(t)){var n=t.entries();return e.every(function(t,e){var i=n.next().value;return i&&X(i[1],t)&&(r||X(i[0],e))})&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var f=t;t=e,e=f}var c=!0,_=e.__iterate(function(e,n){return(r?t.has(e):i?X(e,t.get(n,yr)):X(t.get(n,yr),e))?void 0:(c=!1,!1)});return c&&t.size===_}function G(t,e){if(!(this instanceof G))return new G(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(Mr)return Mr;Mr=this}}function Z(t,e){if(!t)throw Error(e)}function $(t,e,r){if(!(this instanceof $))return new $(t,e,r);if(Z(0!==r,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),r=void 0===r?1:Math.abs(r),t>e&&(r=-r),this._start=t,this._end=e,this._step=r,this.size=Math.max(0,Math.ceil((e-t)/r-1)+1),0===this.size){if(Er)return Er;Er=this}}function tt(){throw TypeError("Abstract")}function et(){}function rt(){}function nt(){}function it(t){return t>>>1&1073741824|3221225471&t}function ot(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){if(t!==t||t===1/0)return 0;var r=0|t;for(r!==t&&(r^=4294967295*t);t>4294967295;)t/=4294967295,r^=t;return it(r)}if("string"===e)return t.length>Kr?ut(t):st(t);if("function"==typeof t.hashCode)return t.hashCode();if("object"===e)return at(t);if("function"==typeof t.toString)return st(""+t);throw Error("Value type "+e+" cannot be hashed.")}function ut(t){var e=Br[t];return void 0===e&&(e=st(t),Tr===Lr&&(Tr=0,Br={}),Tr++,Br[t]=e),e}function st(t){for(var e=0,r=0;t.length>r;r++)e=31*e+t.charCodeAt(r)|0;return it(e)}function at(t){var e;if(jr&&(e=Or.get(t),void 0!==e))return e;if(e=t[Ur],void 0!==e)return e;if(!Ar){if(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[Ur],void 0!==e)return e;if(e=ht(t),void 0!==e)return e}if(e=++Rr,1073741824&Rr&&(Rr=0),jr)Or.set(t,e);else{if(void 0!==kr&&kr(t)===!1)throw Error("Non-extensible objects are not allowed as keys."); -if(Ar)Object.defineProperty(t,Ur,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[Ur]=e;else{if(void 0===t.nodeType)throw Error("Unable to set a non-enumerable property on object.");t[Ur]=e}}return e}function ht(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ft(t){Z(t!==1/0,"Cannot perform this action with an infinite size.")}function ct(t){return null===t||void 0===t?zt():_t(t)&&!h(t)?t:zt().withMutations(function(e){var n=r(t);ft(n.size),n.forEach(function(t,r){return e.set(r,t)})})}function _t(t){return!(!t||!t[Wr])}function pt(t,e){this.ownerID=t,this.entries=e}function vt(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r}function lt(t,e,r){this.ownerID=t,this.count=e,this.nodes=r}function yt(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r}function dt(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r}function mt(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&wt(t._root)}function gt(t,e){return z(t,e[0],e[1])}function wt(t,e){return{node:t,index:0,__prev:e}}function St(t,e,r,n){var i=Object.create(Cr);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function zt(){return Jr||(Jr=St(0))}function It(t,e,r){var n,i;if(t._root){var o=f(dr),u=f(mr);if(n=bt(t._root,t.__ownerID,0,void 0,e,r,o,u),!u.value)return t;i=t.size+(o.value?r===yr?-1:1:0)}else{if(r===yr)return t;i=1,n=new pt(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?St(i,n):zt()}function bt(t,e,r,n,i,o,u,s){return t?t.update(e,r,n,i,o,u,s):o===yr?t:(c(s),c(u),new dt(e,n,[i,o]))}function qt(t){return t.constructor===dt||t.constructor===yt}function Dt(t,e,r,n,i){if(t.keyHash===n)return new yt(e,n,[t.entry,i]);var o,u=(0===r?t.keyHash:t.keyHash>>>r)&lr,s=(0===r?n:n>>>r)&lr,a=u===s?[Dt(t,e,r+pr,n,i)]:(o=new dt(e,n,i), -s>u?[t,o]:[o,t]);return new vt(e,1<o;o++){var u=e[o];i=i.update(t,0,void 0,u[0],u[1])}return i}function Et(t,e,r,n){for(var i=0,o=0,u=Array(r),s=0,a=1,h=e.length;h>s;s++,a<<=1){var f=e[s];void 0!==f&&s!==n&&(i|=a,u[o++]=f)}return new vt(t,i,u)}function Ot(t,e,r,n,i){for(var o=0,u=Array(vr),s=0;0!==r;s++,r>>>=1)u[s]=1&r?e[o++]:void 0;return u[n]=i,new lt(t,o+1,u)}function xt(t,e,n){for(var i=[],u=0;n.length>u;u++){var s=n[u],a=r(s);o(s)||(a=a.map(function(t){return H(t)})),i.push(a)}return jt(t,e,i)}function kt(t,e,r){return t&&t.mergeDeep&&o(e)?t.mergeDeep(e):X(t,e)?t:e}function At(t){return function(e,r,n){if(e&&e.mergeDeepWith&&o(r))return e.mergeDeepWith(t,r);var i=t(e,r,n);return X(e,i)?e:i}}function jt(t,e,r){return r=r.filter(function(t){return 0!==t.size}),0===r.length?t:0!==t.size||t.__ownerID||1!==r.length?t.withMutations(function(t){for(var n=e?function(r,n){t.update(n,yr,function(t){return t===yr?r:e(t,r,n)})}:function(e,r){t.set(r,e)},i=0;r.length>i;i++)r[i].forEach(n)}):t.constructor(r[0])}function Rt(t,e,r,n){var i=t===yr,o=e.next();if(o.done){var u=i?r:t,s=n(u);return s===u?t:s}Z(i||t&&t.set,"invalid keyPath");var a=o.value,h=i?yr:t.get(a,yr),f=Rt(h,e,r,n);return f===h?t:f===yr?t.remove(a):(i?zt():t).set(a,f)}function Ut(t){return t-=t>>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function Kt(t,e,r,n){var i=n?t:p(t);return i[e]=r,i}function Lt(t,e,r,n){var i=t.length+1;if(n&&e+1===i)return t[e]=r,t;for(var o=Array(i),u=0,s=0;i>s;s++)s===e?(o[s]=r,u=-1):o[s]=t[s+u];return o}function Tt(t,e,r){var n=t.length-1;if(r&&e===n)return t.pop(),t;for(var i=Array(n),o=0,u=0;n>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function Bt(t){var e=Pt();if(null===t||void 0===t)return e;if(Wt(t))return t;var r=n(t),i=r.size;return 0===i?e:(ft(i),i>0&&vr>i?Nt(0,i,pr,null,new Ct(r.toArray())):e.withMutations(function(t){t.setSize(i),r.forEach(function(e,r){return t.set(r,e)})}))}function Wt(t){ -return!(!t||!t[Vr])}function Ct(t,e){this.array=t,this.ownerID=e}function Jt(t,e){function r(t,e,r){return 0===e?n(t,r):i(t,e,r)}function n(t,r){var n=r===s?a&&a.array:t&&t.array,i=r>o?0:o-r,h=u-r;return h>vr&&(h=vr),function(){if(i===h)return Xr;var t=e?--h:i++;return n&&n[t]}}function i(t,n,i){var s,a=t&&t.array,h=i>o?0:o-i>>n,f=(u-i>>n)+1;return f>vr&&(f=vr),function(){for(;;){if(s){var t=s();if(t!==Xr)return t;s=null}if(h===f)return Xr;var o=e?--f:h++;s=r(a&&a[o],n-pr,i+(o<=t.size||0>e)return t.withMutations(function(t){0>e?Xt(t,e).set(0,r):Xt(t,0,e+1).set(e,r)});e+=t._origin;var n=t._tail,i=t._root,o=f(mr);return e>=Gt(t._capacity)?n=Vt(n,t.__ownerID,0,e,r,o):i=Vt(i,t.__ownerID,t._level,e,r,o),o.value?t.__ownerID?(t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t):Nt(t._origin,t._capacity,t._level,i,n):t}function Vt(t,e,r,n,i,o){var u=n>>>r&lr,s=t&&t.array.length>u;if(!s&&void 0===i)return t;var a;if(r>0){var h=t&&t.array[u],f=Vt(h,e,r-pr,n,i,o);return f===h?t:(a=Yt(t,e),a.array[u]=f,a)}return s&&t.array[u]===i?t:(c(o),a=Yt(t,e),void 0===i&&u===a.array.length-1?a.array.pop():a.array[u]=i,a)}function Yt(t,e){return e&&t&&e===t.ownerID?t:new Ct(t?t.array.slice():[],e)}function Qt(t,e){if(e>=Gt(t._capacity))return t._tail;if(1<e){for(var r=t._root,n=t._level;r&&n>0;)r=r.array[e>>>n&lr],n-=pr;return r}}function Xt(t,e,r){void 0!==e&&(e=0|e),void 0!==r&&(r=0|r);var n=t.__ownerID||new _,i=t._origin,o=t._capacity,u=i+e,s=void 0===r?o:0>r?o+r:i+r;if(u===i&&s===o)return t;if(u>=s)return t.clear();for(var a=t._level,h=t._root,f=0;0>u+f;)h=new Ct(h&&h.array.length?[void 0,h]:[],n),a+=pr,f+=1<=1<p?Qt(t,s-1):p>c?new Ct([],n):v;if(v&&p>c&&o>u&&v.array.length){h=Yt(h,n);for(var y=h,d=a;d>pr;d-=pr){var m=c>>>d&lr;y=y.array[m]=Yt(y.array[m],n)}y.array[c>>>pr&lr]=v}if(o>s&&(l=l&&l.removeAfter(n,0,s)),u>=p)u-=p,s-=p,a=pr,h=null,l=l&&l.removeBefore(n,0,u);else if(u>i||c>p){for(f=0;h;){var g=u>>>a&lr;if(g!==p>>>a&lr)break;g&&(f+=(1<i&&(h=h.removeBefore(n,a,u-f)),h&&c>p&&(h=h.removeAfter(n,a,p-f)),f&&(u-=f,s-=f)}return t.__ownerID?(t.size=s-u,t._origin=u,t._capacity=s,t._level=a,t._root=h,t._tail=l,t.__hash=void 0,t.__altered=!0,t):Nt(u,s,a,h,l)}function Ft(t,e,r){for(var i=[],u=0,s=0;r.length>s;s++){var a=r[s],h=n(a);h.size>u&&(u=h.size),o(a)||(h=h.map(function(t){return H(t)})),i.push(h)}return u>t.size&&(t=t.setSize(u)),jt(t,e,i)}function Gt(t){return vr>t?0:t-1>>>pr<=vr&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&s!==e}),n=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=s===u.size-1?u.pop():u.set(s,void 0))}else if(a){if(r===u.get(s)[1])return t;n=o,i=u.set(s,[e,r])}else n=o.set(e,u.size),i=u.set(u.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t):te(n,i)}function ne(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ie(t){this._iter=t,this.size=t.size}function oe(t){this._iter=t,this.size=t.size}function ue(t){this._iter=t,this.size=t.size}function se(t){var e=Ee(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this); -return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Oe,e.__iterateUncached=function(e,r){var n=this;return t.__iterate(function(t,r){return e(r,t,n)!==!1},r)},e.__iteratorUncached=function(e,r){if(e===Sr){var n=t.__iterator(e,r);return new S(function(){var t=n.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===wr?gr:wr,r)},e}function ae(t,e,r){var n=Ee(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,yr);return o===yr?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate(function(t,i,u){return n(e.call(r,t,i,u),i,o)!==!1},i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(Sr,i);return new S(function(){var i=o.next();if(i.done)return i;var u=i.value,s=u[0];return z(n,s,e.call(r,u[1],s,t),i)})},n}function he(t,e){var r=Ee(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=se(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=Oe,r.__iterate=function(e,r){var n=this;return t.__iterate(function(t,r){return e(t,r,n)},!r)},r.__iterator=function(e,r){return t.__iterator(e,!r)},r}function fe(t,e,r,n){var i=Ee(t);return n&&(i.has=function(n){var i=t.get(n,yr);return i!==yr&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,yr);return o!==yr&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,s=0;return t.__iterate(function(t,o,a){return e.call(r,t,o,a)?(s++,i(t,n?o:s-1,u)):void 0},o),s},i.__iteratorUncached=function(i,o){var u=t.__iterator(Sr,o),s=0;return new S(function(){for(;;){var o=u.next();if(o.done)return o;var a=o.value,h=a[0],f=a[1];if(e.call(r,f,h,t))return z(i,n?h:s++,f,o)}})},i}function ce(t,e,r){var n=ct().asMutable();return t.__iterate(function(i,o){n.update(e.call(r,i,o,t),0,function(t){ -return t+1})}),n.asImmutable()}function _e(t,e,r){var n=u(t),i=(h(t)?Zt():ct()).asMutable();t.__iterate(function(o,u){i.update(e.call(r,o,u,t),function(t){return t=t||[],t.push(n?[u,o]:o),t})});var o=Me(t);return i.map(function(e){return be(t,o(e))})}function pe(t,e,r,n){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==r&&(r=r===1/0?i:0|r),d(e,r,i))return t;var o=m(e,i),u=g(r,i);if(o!==o||u!==u)return pe(t.toSeq().cacheResult(),e,r,n);var s,a=u-o;a===a&&(s=0>a?0:a);var h=Ee(t);return h.size=0===s?s:t.size&&s||void 0,!n&&L(t)&&s>=0&&(h.get=function(e,r){return e=l(this,e),e>=0&&s>e?t.get(e+o,r):r}),h.__iterateUncached=function(e,r){var i=this;if(0===s)return 0;if(r)return this.cacheResult().__iterate(e,r);var u=0,a=!0,h=0;return t.__iterate(function(t,r){return a&&(a=u++s)return I();var t=i.next();return n||e===wr?t:e===gr?z(e,a-1,void 0,t):z(e,a-1,t.value[1],t)})},h}function ve(t,e,r){var n=Ee(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var u=0;return t.__iterate(function(t,i,s){return e.call(r,t,i,s)&&++u&&n(t,i,o)}),u},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var u=t.__iterator(Sr,i),s=!0;return new S(function(){if(!s)return I();var t=u.next();if(t.done)return t;var i=t.value,a=i[0],h=i[1];return e.call(r,h,a,o)?n===Sr?t:z(n,a,h,t):(s=!1,I())})},n}function le(t,e,r,n){var i=Ee(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,a=0;return t.__iterate(function(t,o,h){return s&&(s=e.call(r,t,o,h))?void 0:(a++,i(t,n?o:a-1,u))}),a},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(Sr,o),a=!0,h=0;return new S(function(){var t,o,f;do{if(t=s.next(),t.done)return n||i===wr?t:i===gr?z(i,h++,void 0,t):z(i,h++,t.value[1],t); -var c=t.value;o=c[0],f=c[1],a&&(a=e.call(r,f,o,u))}while(a);return i===Sr?t:z(i,o,f,t)})},i}function ye(t,e){var n=u(t),i=[t].concat(e).map(function(t){return o(t)?n&&(t=r(t)):t=n?B(t):W(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===i.length)return t;if(1===i.length){var a=i[0];if(a===t||n&&u(a)||s(t)&&s(a))return a}var h=new j(i);return n?h=h.toKeyedSeq():s(t)||(h=h.toSetSeq()),h=h.flatten(!0),h.size=i.reduce(function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}},0),h}function de(t,e,r){var n=Ee(t);return n.__iterateUncached=function(n,i){function u(t,h){var f=this;t.__iterate(function(t,i){return(!e||e>h)&&o(t)?u(t,h+1):n(t,r?i:s++,f)===!1&&(a=!0),!a},i)}var s=0,a=!1;return u(t,0),s},n.__iteratorUncached=function(n,i){var u=t.__iterator(n,i),s=[],a=0;return new S(function(){for(;u;){var t=u.next();if(t.done===!1){var h=t.value;if(n===Sr&&(h=h[1]),e&&!(e>s.length)||!o(h))return r?t:z(n,a++,h,t);s.push(u),u=h.__iterator(n,i)}else u=s.pop()}return I()})},n}function me(t,e,r){var n=Me(t);return t.toSeq().map(function(i,o){return n(e.call(r,i,o,t))}).flatten(!0)}function ge(t,e){var r=Ee(t);return r.size=t.size&&2*t.size-1,r.__iterateUncached=function(r,n){var i=this,o=0;return t.__iterate(function(t,n){return(!o||r(e,o++,i)!==!1)&&r(t,o++,i)!==!1},n),o},r.__iteratorUncached=function(r,n){var i,o=t.__iterator(wr,n),u=0;return new S(function(){return(!i||u%2)&&(i=o.next(),i.done)?i:u%2?z(r,u++,e):z(r,u++,i.value,i)})},r}function we(t,e,r){e||(e=xe);var n=u(t),i=0,o=t.toSeq().map(function(e,n){return[n,e,i++,r?r(e,n,t):e]}).toArray();return o.sort(function(t,r){return e(t[3],r[3])||t[2]-r[2]}).forEach(n?function(t,e){o[e].length=2}:function(t,e){o[e]=t[1]}),n?x(o):s(t)?k(o):A(o)}function Se(t,e,r){if(e||(e=xe),r){var n=t.toSeq().map(function(e,n){return[e,r(e,n,t)]}).reduce(function(t,r){return ze(e,t[1],r[1])?r:t});return n&&n[0]}return t.reduce(function(t,r){return ze(e,t,r)?r:t})}function ze(t,e,r){var n=t(r,e);return 0===n&&r!==e&&(void 0===r||null===r||r!==r)||n>0}function Ie(t,r,n){ -var i=Ee(t);return i.size=new j(n).map(function(t){return t.size}).min(),i.__iterate=function(t,e){for(var r,n=this.__iterator(wr,e),i=0;!(r=n.next()).done&&t(r.value,i++,this)!==!1;);return i},i.__iteratorUncached=function(t,i){var o=n.map(function(t){return t=e(t),D(i?t.reverse():t)}),u=0,s=!1;return new S(function(){var e;return s||(e=o.map(function(t){return t.next()}),s=e.some(function(t){return t.done})),s?I():z(t,u++,r.apply(null,e.map(function(t){return t.value})))})},i}function be(t,e){return L(t)?e:t.constructor(e)}function qe(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function De(t){return ft(t.size),v(t)}function Me(t){return u(t)?r:s(t)?n:i}function Ee(t){return Object.create((u(t)?x:s(t)?k:A).prototype)}function Oe(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):O.prototype.cacheResult.call(this)}function xe(t,e){return t>e?1:e>t?-1:0}function ke(t){var r=D(t);if(!r){if(!E(t))throw new TypeError("Expected iterable or array-like: "+t);r=D(e(t))}return r}function Ae(t,e){var r,n=function(o){if(o instanceof n)return o;if(!(this instanceof n))return new n(o);if(!r){r=!0;var u=Object.keys(t);Ue(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=ct(o)},i=n.prototype=Object.create(Gr);return i.constructor=n,n}function je(t,e,r){var n=Object.create(Object.getPrototypeOf(t));return n._map=e,n.__ownerID=r,n}function Re(t){return t._name||t.constructor.name||"Record"}function Ue(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(r){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){Z(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Le(t){return null===t||void 0===t?Ce():Te(t)&&!h(t)?t:Ce().withMutations(function(e){var r=i(t);ft(r.size),r.forEach(function(t){return e.add(t)})})}function Te(t){return!(!t||!t[Zr])}function Be(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function We(t,e){var r=Object.create($r); -return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function Ce(){return tn||(tn=We(zt()))}function Je(t){return null===t||void 0===t?He():Ne(t)?t:He().withMutations(function(e){var r=i(t);ft(r.size),r.forEach(function(t){return e.add(t)})})}function Ne(t){return Te(t)&&h(t)}function Pe(t,e){var r=Object.create(en);return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function He(){return rn||(rn=Pe(ee()))}function Ve(t){return null===t||void 0===t?Xe():Ye(t)?t:Xe().unshiftAll(t)}function Ye(t){return!(!t||!t[nn])}function Qe(t,e,r,n){var i=Object.create(on);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function Xe(){return un||(un=Qe(0))}function Fe(t,e){var r=function(r){t.prototype[r]=e[r]};return Object.keys(e).forEach(r),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(r),t}function Ge(t,e){return e}function Ze(t,e){return[e,t]}function $e(t){return function(){return!t.apply(this,arguments)}}function tr(t){return function(){return-t.apply(this,arguments)}}function er(t){return"string"==typeof t?JSON.stringify(t):t+""}function rr(){return p(arguments)}function nr(t,e){return e>t?1:t>e?-1:0}function ir(t){if(t.size===1/0)return 0;var e=h(t),r=u(t),n=e?1:0,i=t.__iterate(r?e?function(t,e){n=31*n+ur(ot(t),ot(e))|0}:function(t,e){n=n+ur(ot(t),ot(e))|0}:e?function(t){n=31*n+ot(t)|0}:function(t){n=n+ot(t)|0});return or(i,n)}function or(t,e){return e=xr(e,3432918353),e=xr(e<<15|e>>>-15,461845907),e=xr(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=xr(e^e>>>16,2246822507),e=xr(e^e>>>13,3266489909),e=it(e^e>>>16)}function ur(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var sr=Array.prototype.slice;t(r,e),t(n,e),t(i,e),e.isIterable=o,e.isKeyed=u,e.isIndexed=s,e.isAssociative=a,e.isOrdered=h,e.Keyed=r,e.Indexed=n,e.Set=i;var ar="@@__IMMUTABLE_ITERABLE__@@",hr="@@__IMMUTABLE_KEYED__@@",fr="@@__IMMUTABLE_INDEXED__@@",cr="@@__IMMUTABLE_ORDERED__@@",_r="delete",pr=5,vr=1<=i;i++)if(t(r[e?n-i:i],i,this)===!1)return i+1;return i},j.prototype.__iterator=function(t,e){var r=this._array,n=r.length-1,i=0;return new S(function(){return i>n?I():z(t,i,r[e?n-i++:i++])})},t(R,x),R.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},R.prototype.has=function(t){return this._object.hasOwnProperty(t)},R.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length-1,o=0;i>=o;o++){var u=n[e?i-o:o];if(t(r[u],u,this)===!1)return o+1}return o},R.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length-1,o=0;return new S(function(){var u=n[e?i-o:o];return o++>i?I():z(t,u,r[u])})},R.prototype[cr]=!0,t(U,k),U.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e); -var r=this._iterable,n=D(r),i=0;if(q(n))for(var o;!(o=n.next()).done&&t(o.value,i++,this)!==!1;);return i},U.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterable,n=D(r);if(!q(n))return new S(I);var i=0;return new S(function(){var e=n.next();return e.done?e:z(t,i++,e.value)})},t(K,k),K.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var r=this._iterator,n=this._iteratorCache,i=0;n.length>i;)if(t(n[i],i++,this)===!1)return i;for(var o;!(o=r.next()).done;){var u=o.value;if(n[i]=u,t(u,i++,this)===!1)break}return i},K.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterator,n=this._iteratorCache,i=0;return new S(function(){if(i>=n.length){var e=r.next();if(e.done)return e;n[i]=e.value}return z(t,i,n[i++])})};var Dr;t(G,k),G.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},G.prototype.get=function(t,e){return this.has(t)?this._value:e},G.prototype.includes=function(t){return X(this._value,t)},G.prototype.slice=function(t,e){var r=this.size;return d(t,e,r)?this:new G(this._value,g(e,r)-m(t,r))},G.prototype.reverse=function(){return this},G.prototype.indexOf=function(t){return X(this._value,t)?0:-1},G.prototype.lastIndexOf=function(t){return X(this._value,t)?this.size:-1},G.prototype.__iterate=function(t,e){for(var r=0;this.size>r;r++)if(t(this._value,r,this)===!1)return r+1;return r},G.prototype.__iterator=function(t,e){var r=this,n=0;return new S(function(){return r.size>n?z(t,n++,r._value):I()})},G.prototype.equals=function(t){return t instanceof G?X(this._value,t._value):F(t)};var Mr;t($,k),$.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},$.prototype.get=function(t,e){return this.has(t)?this._start+l(this,t)*this._step:e},$.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&this.size>e&&e===Math.floor(e); -},$.prototype.slice=function(t,e){return d(t,e,this.size)?this:(t=m(t,this.size),e=g(e,this.size),t>=e?new $(0,0):new $(this.get(t,this._end),this.get(e,this._end),this._step))},$.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var r=e/this._step;if(r>=0&&this.size>r)return r}return-1},$.prototype.lastIndexOf=function(t){return this.indexOf(t)},$.prototype.__iterate=function(t,e){for(var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;r>=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-n:n}return o},$.prototype.__iterator=function(t,e){var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;return new S(function(){var u=i;return i+=e?-n:n,o>r?I():z(t,o++,u)})},$.prototype.equals=function(t){return t instanceof $?this._start===t._start&&this._end===t._end&&this._step===t._step:F(this,t)};var Er;t(tt,e),t(et,tt),t(rt,tt),t(nt,tt),tt.Keyed=et,tt.Indexed=rt,tt.Set=nt;var Or,xr="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var r=65535&t,n=65535&e;return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0},kr=Object.isExtensible,Ar=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),jr="function"==typeof WeakMap;jr&&(Or=new WeakMap);var Rr=0,Ur="__immutablehash__";"function"==typeof Symbol&&(Ur=Symbol(Ur));var Kr=16,Lr=255,Tr=0,Br={};t(ct,et),ct.of=function(){var t=sr.call(arguments,0);return zt().withMutations(function(e){for(var r=0;t.length>r;r+=2){if(r+1>=t.length)throw Error("Missing value for key: "+t[r]);e.set(t[r],t[r+1])}})},ct.prototype.toString=function(){return this.__toString("Map {","}")},ct.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},ct.prototype.set=function(t,e){return It(this,t,e)},ct.prototype.setIn=function(t,e){return this.updateIn(t,yr,function(){return e})},ct.prototype.remove=function(t){return It(this,t,yr)},ct.prototype.deleteIn=function(t){return this.updateIn(t,function(){return yr})},ct.prototype.update=function(t,e,r){return 1===arguments.length?t(this):this.updateIn([t],e,r); -},ct.prototype.updateIn=function(t,e,r){r||(r=e,e=void 0);var n=Rt(this,ke(t),e,r);return n===yr?void 0:n},ct.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):zt()},ct.prototype.merge=function(){return xt(this,void 0,arguments)},ct.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return xt(this,t,e)},ct.prototype.mergeIn=function(t){var e=sr.call(arguments,1);return this.updateIn(t,zt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},ct.prototype.mergeDeep=function(){return xt(this,kt,arguments)},ct.prototype.mergeDeepWith=function(t){var e=sr.call(arguments,1);return xt(this,At(t),e)},ct.prototype.mergeDeepIn=function(t){var e=sr.call(arguments,1);return this.updateIn(t,zt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},ct.prototype.sort=function(t){return Zt(we(this,t))},ct.prototype.sortBy=function(t,e){return Zt(we(this,e,t))},ct.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},ct.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new _)},ct.prototype.asImmutable=function(){return this.__ensureOwner()},ct.prototype.wasAltered=function(){return this.__altered},ct.prototype.__iterator=function(t,e){return new mt(this,t,e)},ct.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate(function(e){return n++,t(e[1],e[0],r)},e),n},ct.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?St(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},ct.isMap=_t;var Wr="@@__IMMUTABLE_MAP__@@",Cr=ct.prototype;Cr[Wr]=!0,Cr[_r]=Cr.remove,Cr.removeIn=Cr.deleteIn,pt.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(X(r,i[o][0]))return i[o][1];return n},pt.prototype.update=function(t,e,r,n,i,o,u){for(var s=i===yr,a=this.entries,h=0,f=a.length;f>h&&!X(n,a[h][0]);h++); -var _=f>h;if(_?a[h][1]===i:s)return this;if(c(u),(s||!_)&&c(o),!s||1!==a.length){if(!_&&!s&&a.length>=Nr)return Mt(t,a,n,i);var v=t&&t===this.ownerID,l=v?a:p(a);return _?s?h===f-1?l.pop():l[h]=l.pop():l[h]=[n,i]:l.push([n,i]),v?(this.entries=l,this):new pt(t,l)}},vt.prototype.get=function(t,e,r,n){void 0===e&&(e=ot(r));var i=1<<((0===t?e:e>>>t)&lr),o=this.bitmap;return 0===(o&i)?n:this.nodes[Ut(o&i-1)].get(t+pr,e,r,n)},vt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=(0===e?r:r>>>e)&lr,a=1<=Pr)return Ot(t,_,h,s,v);if(f&&!v&&2===_.length&&qt(_[1^c]))return _[1^c];if(f&&v&&1===_.length&&qt(v))return v;var l=t&&t===this.ownerID,y=f?v?h:h^a:h|a,d=f?v?Kt(_,c,v,l):Tt(_,c,l):Lt(_,c,v,l);return l?(this.bitmap=y,this.nodes=d,this):new vt(t,y,d)},lt.prototype.get=function(t,e,r,n){void 0===e&&(e=ot(r));var i=(0===t?e:e>>>t)&lr,o=this.nodes[i];return o?o.get(t+pr,e,r,n):n},lt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=(0===e?r:r>>>e)&lr,a=i===yr,h=this.nodes,f=h[s];if(a&&!f)return this;var c=bt(f,t,e+pr,r,n,i,o,u);if(c===f)return this;var _=this.count;if(f){if(!c&&(_--,Hr>_))return Et(t,h,_,s)}else _++;var p=t&&t===this.ownerID,v=Kt(h,s,c,p);return p?(this.count=_,this.nodes=v,this):new lt(t,_,v)},yt.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(X(r,i[o][0]))return i[o][1];return n},yt.prototype.update=function(t,e,r,n,i,o,u){void 0===r&&(r=ot(n));var s=i===yr;if(r!==this.keyHash)return s?this:(c(u),c(o),Dt(this,t,e,r,[n,i]));for(var a=this.entries,h=0,f=a.length;f>h&&!X(n,a[h][0]);h++);var _=f>h;if(_?a[h][1]===i:s)return this;if(c(u),(s||!_)&&c(o),s&&2===f)return new dt(t,this.keyHash,a[1^h]);var v=t&&t===this.ownerID,l=v?a:p(a);return _?s?h===f-1?l.pop():l[h]=l.pop():l[h]=[n,i]:l.push([n,i]),v?(this.entries=l,this):new yt(t,this.keyHash,l)},dt.prototype.get=function(t,e,r,n){return X(r,this.entry[0])?this.entry[1]:n; -},dt.prototype.update=function(t,e,r,n,i,o,u){var s=i===yr,a=X(n,this.entry[0]);return(a?i===this.entry[1]:s)?this:(c(u),s?void c(o):a?t&&t===this.ownerID?(this.entry[1]=i,this):new dt(t,this.keyHash,[n,i]):(c(o),Dt(this,t,e,ot(n),[n,i])))},pt.prototype.iterate=yt.prototype.iterate=function(t,e){for(var r=this.entries,n=0,i=r.length-1;i>=n;n++)if(t(r[e?i-n:n])===!1)return!1},vt.prototype.iterate=lt.prototype.iterate=function(t,e){for(var r=this.nodes,n=0,i=r.length-1;i>=n;n++){var o=r[e?i-n:n];if(o&&o.iterate(t,e)===!1)return!1}},dt.prototype.iterate=function(t,e){return t(this.entry)},t(mt,S),mt.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var r,n=e.node,i=e.index++;if(n.entry){if(0===i)return gt(t,n.entry)}else if(n.entries){if(r=n.entries.length-1,r>=i)return gt(t,n.entries[this._reverse?r-i:i])}else if(r=n.nodes.length-1,r>=i){var o=n.nodes[this._reverse?r-i:i];if(o){if(o.entry)return gt(t,o.entry);e=this._stack=wt(o,e)}continue}e=this._stack=this._stack.__prev}return I()};var Jr,Nr=vr/4,Pr=vr/2,Hr=vr/4;t(Bt,rt),Bt.of=function(){return this(arguments)},Bt.prototype.toString=function(){return this.__toString("List [","]")},Bt.prototype.get=function(t,e){if(t=l(this,t),t>=0&&this.size>t){t+=this._origin;var r=Qt(this,t);return r&&r.array[t&lr]}return e},Bt.prototype.set=function(t,e){return Ht(this,t,e)},Bt.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},Bt.prototype.insert=function(t,e){return this.splice(t,0,e)},Bt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=pr,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Pt()},Bt.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations(function(r){Xt(r,0,e+t.length);for(var n=0;t.length>n;n++)r.set(e+n,t[n])})},Bt.prototype.pop=function(){return Xt(this,0,-1)},Bt.prototype.unshift=function(){var t=arguments;return this.withMutations(function(e){Xt(e,-t.length);for(var r=0;t.length>r;r++)e.set(r,t[r]); -})},Bt.prototype.shift=function(){return Xt(this,1)},Bt.prototype.merge=function(){return Ft(this,void 0,arguments)},Bt.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return Ft(this,t,e)},Bt.prototype.mergeDeep=function(){return Ft(this,kt,arguments)},Bt.prototype.mergeDeepWith=function(t){var e=sr.call(arguments,1);return Ft(this,At(t),e)},Bt.prototype.setSize=function(t){return Xt(this,0,t)},Bt.prototype.slice=function(t,e){var r=this.size;return d(t,e,r)?this:Xt(this,m(t,r),g(e,r))},Bt.prototype.__iterator=function(t,e){var r=0,n=Jt(this,e);return new S(function(){var e=n();return e===Xr?I():z(t,r++,e)})},Bt.prototype.__iterate=function(t,e){for(var r,n=0,i=Jt(this,e);(r=i())!==Xr&&t(r,n++,this)!==!1;);return n},Bt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Nt(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},Bt.isList=Wt;var Vr="@@__IMMUTABLE_LIST__@@",Yr=Bt.prototype;Yr[Vr]=!0,Yr[_r]=Yr.remove,Yr.setIn=Cr.setIn,Yr.deleteIn=Yr.removeIn=Cr.removeIn,Yr.update=Cr.update,Yr.updateIn=Cr.updateIn,Yr.mergeIn=Cr.mergeIn,Yr.mergeDeepIn=Cr.mergeDeepIn,Yr.withMutations=Cr.withMutations,Yr.asMutable=Cr.asMutable,Yr.asImmutable=Cr.asImmutable,Yr.wasAltered=Cr.wasAltered,Ct.prototype.removeBefore=function(t,e,r){if(r===e?1<>>e&lr;if(n>=this.array.length)return new Ct([],t);var i,o=0===n;if(e>0){var u=this.array[n];if(i=u&&u.removeBefore(t,e-pr,r),i===u&&o)return this}if(o&&!i)return this;var s=Yt(this,t);if(!o)for(var a=0;n>a;a++)s.array[a]=void 0;return i&&(s.array[n]=i),s},Ct.prototype.removeAfter=function(t,e,r){if(r===(e?1<>>e&lr;if(n>=this.array.length)return this;var i;if(e>0){var o=this.array[n];if(i=o&&o.removeAfter(t,e-pr,r),i===o&&n===this.array.length-1)return this}var u=Yt(this,t);return u.array.splice(n+1),i&&(u.array[n]=i),u};var Qr,Xr={};t(Zt,ct),Zt.of=function(){return this(arguments)},Zt.prototype.toString=function(){return this.__toString("OrderedMap {","}"); -},Zt.prototype.get=function(t,e){var r=this._map.get(t);return void 0!==r?this._list.get(r)[1]:e},Zt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):ee()},Zt.prototype.set=function(t,e){return re(this,t,e)},Zt.prototype.remove=function(t){return re(this,t,yr)},Zt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Zt.prototype.__iterate=function(t,e){var r=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],r)},e)},Zt.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},Zt.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),r=this._list.__ensureOwner(t);return t?te(e,r,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=r,this)},Zt.isOrderedMap=$t,Zt.prototype[cr]=!0,Zt.prototype[_r]=Zt.prototype.remove;var Fr;t(ne,x),ne.prototype.get=function(t,e){return this._iter.get(t,e)},ne.prototype.has=function(t){return this._iter.has(t)},ne.prototype.valueSeq=function(){return this._iter.valueSeq()},ne.prototype.reverse=function(){var t=this,e=he(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},ne.prototype.map=function(t,e){var r=this,n=ae(this,t,e);return this._useKeys||(n.valueSeq=function(){return r._iter.toSeq().map(t,e)}),n},ne.prototype.__iterate=function(t,e){var r,n=this;return this._iter.__iterate(this._useKeys?function(e,r){return t(e,r,n)}:(r=e?De(this):0,function(i){return t(i,e?--r:r++,n)}),e)},ne.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var r=this._iter.__iterator(wr,e),n=e?De(this):0;return new S(function(){var i=r.next();return i.done?i:z(t,e?--n:n++,i.value,i)})},ne.prototype[cr]=!0,t(ie,k),ie.prototype.includes=function(t){return this._iter.includes(t)},ie.prototype.__iterate=function(t,e){var r=this,n=0;return this._iter.__iterate(function(e){return t(e,n++,r)},e)},ie.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e),n=0; -return new S(function(){var e=r.next();return e.done?e:z(t,n++,e.value,e)})},t(oe,A),oe.prototype.has=function(t){return this._iter.includes(t)},oe.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate(function(e){return t(e,e,r)},e)},oe.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e);return new S(function(){var e=r.next();return e.done?e:z(t,e.value,e.value,e)})},t(ue,x),ue.prototype.entrySeq=function(){return this._iter.toSeq()},ue.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate(function(e){if(e){qe(e);var n=o(e);return t(n?e.get(1):e[1],n?e.get(0):e[0],r)}},e)},ue.prototype.__iterator=function(t,e){var r=this._iter.__iterator(wr,e);return new S(function(){for(;;){var e=r.next();if(e.done)return e;var n=e.value;if(n){qe(n);var i=o(n);return z(t,i?n.get(0):n[0],i?n.get(1):n[1],e)}}})},ie.prototype.cacheResult=ne.prototype.cacheResult=oe.prototype.cacheResult=ue.prototype.cacheResult=Oe,t(Ae,et),Ae.prototype.toString=function(){return this.__toString(Re(this)+" {","}")},Ae.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Ae.prototype.get=function(t,e){if(!this.has(t))return e;var r=this._defaultValues[t];return this._map?this._map.get(t,r):r},Ae.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=this.constructor;return t._empty||(t._empty=je(this,zt()))},Ae.prototype.set=function(t,e){if(!this.has(t))throw Error('Cannot set unknown key "'+t+'" on '+Re(this));if(this._map&&!this._map.has(t)){var r=this._defaultValues[t];if(e===r)return this}var n=this._map&&this._map.set(t,e);return this.__ownerID||n===this._map?this:je(this,n)},Ae.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:je(this,e)},Ae.prototype.wasAltered=function(){return this._map.wasAltered()},Ae.prototype.__iterator=function(t,e){var n=this;return r(this._defaultValues).map(function(t,e){return n.get(e)}).__iterator(t,e)},Ae.prototype.__iterate=function(t,e){ -var n=this;return r(this._defaultValues).map(function(t,e){return n.get(e)}).__iterate(t,e)},Ae.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?je(this,e,t):(this.__ownerID=t,this._map=e,this)};var Gr=Ae.prototype;Gr[_r]=Gr.remove,Gr.deleteIn=Gr.removeIn=Cr.removeIn,Gr.merge=Cr.merge,Gr.mergeWith=Cr.mergeWith,Gr.mergeIn=Cr.mergeIn,Gr.mergeDeep=Cr.mergeDeep,Gr.mergeDeepWith=Cr.mergeDeepWith,Gr.mergeDeepIn=Cr.mergeDeepIn,Gr.setIn=Cr.setIn,Gr.update=Cr.update,Gr.updateIn=Cr.updateIn,Gr.withMutations=Cr.withMutations,Gr.asMutable=Cr.asMutable,Gr.asImmutable=Cr.asImmutable,t(Le,nt),Le.of=function(){return this(arguments)},Le.fromKeys=function(t){return this(r(t).keySeq())},Le.prototype.toString=function(){return this.__toString("Set {","}")},Le.prototype.has=function(t){return this._map.has(t)},Le.prototype.add=function(t){return Be(this,this._map.set(t,!0))},Le.prototype.remove=function(t){return Be(this,this._map.remove(t))},Le.prototype.clear=function(){return Be(this,this._map.clear())},Le.prototype.union=function(){var t=sr.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var r=0;t.length>r;r++)i(t[r]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},Le.prototype.intersect=function(){var t=sr.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return i(t)});var e=this;return this.withMutations(function(r){e.forEach(function(e){t.every(function(t){return t.includes(e)})||r.remove(e)})})},Le.prototype.subtract=function(){var t=sr.call(arguments,0);if(0===t.length)return this;t=t.map(function(t){return i(t)});var e=this;return this.withMutations(function(r){e.forEach(function(e){t.some(function(t){return t.includes(e)})&&r.remove(e)})})},Le.prototype.merge=function(){return this.union.apply(this,arguments)},Le.prototype.mergeWith=function(t){var e=sr.call(arguments,1);return this.union.apply(this,e)}, -Le.prototype.sort=function(t){return Je(we(this,t))},Le.prototype.sortBy=function(t,e){return Je(we(this,e,t))},Le.prototype.wasAltered=function(){return this._map.wasAltered()},Le.prototype.__iterate=function(t,e){var r=this;return this._map.__iterate(function(e,n){return t(n,n,r)},e)},Le.prototype.__iterator=function(t,e){return this._map.map(function(t,e){return e}).__iterator(t,e)},Le.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},Le.isSet=Te;var Zr="@@__IMMUTABLE_SET__@@",$r=Le.prototype;$r[Zr]=!0,$r[_r]=$r.remove,$r.mergeDeep=$r.merge,$r.mergeDeepWith=$r.mergeWith,$r.withMutations=Cr.withMutations,$r.asMutable=Cr.asMutable,$r.asImmutable=Cr.asImmutable,$r.__empty=Ce,$r.__make=We;var tn;t(Je,Le),Je.of=function(){return this(arguments)},Je.fromKeys=function(t){return this(r(t).keySeq())},Je.prototype.toString=function(){return this.__toString("OrderedSet {","}")},Je.isOrderedSet=Ne;var en=Je.prototype;en[cr]=!0,en.__empty=He,en.__make=Pe;var rn;t(Ve,rt),Ve.of=function(){return this(arguments)},Ve.prototype.toString=function(){return this.__toString("Stack [","]")},Ve.prototype.get=function(t,e){var r=this._head;for(t=l(this,t);r&&t--;)r=r.next;return r?r.value:e},Ve.prototype.peek=function(){return this._head&&this._head.value},Ve.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,r=arguments.length-1;r>=0;r--)e={value:arguments[r],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Qe(t,e)},Ve.prototype.pushAll=function(t){if(t=n(t),0===t.size)return this;ft(t.size);var e=this.size,r=this._head;return t.reverse().forEach(function(t){e++,r={value:t,next:r}}),this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):Qe(e,r)},Ve.prototype.pop=function(){return this.slice(1)},Ve.prototype.unshift=function(){return this.push.apply(this,arguments)},Ve.prototype.unshiftAll=function(t){ -return this.pushAll(t)},Ve.prototype.shift=function(){return this.pop.apply(this,arguments)},Ve.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xe()},Ve.prototype.slice=function(t,e){if(d(t,e,this.size))return this;var r=m(t,this.size),n=g(e,this.size);if(n!==this.size)return rt.prototype.slice.call(this,t,e);for(var i=this.size-r,o=this._head;r--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Qe(i,o)},Ve.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Qe(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Ve.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var r=0,n=this._head;n&&t(n.value,r++,this)!==!1;)n=n.next;return r},Ve.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var r=0,n=this._head;return new S(function(){if(n){var e=n.value;return n=n.next,z(t,r++,e)}return I()})},Ve.isStack=Ye;var nn="@@__IMMUTABLE_STACK__@@",on=Ve.prototype;on[nn]=!0,on.withMutations=Cr.withMutations,on.asMutable=Cr.asMutable,on.asImmutable=Cr.asImmutable,on.wasAltered=Cr.wasAltered;var un;e.Iterator=S,Fe(e,{toArray:function(){ft(this.size);var t=Array(this.size||0);return this.valueSeq().__iterate(function(e,r){t[r]=e}),t},toIndexedSeq:function(){return new ie(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new ne(this,!0)},toMap:function(){return ct(this.toKeyedSeq())},toObject:function(){ft(this.size);var t={};return this.__iterate(function(e,r){t[r]=e}),t},toOrderedMap:function(){return Zt(this.toKeyedSeq())},toOrderedSet:function(){return Je(u(this)?this.valueSeq():this)},toSet:function(){return Le(u(this)?this.valueSeq():this)},toSetSeq:function(){return new oe(this); -},toSeq:function(){return s(this)?this.toIndexedSeq():u(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ve(u(this)?this.valueSeq():this)},toList:function(){return Bt(u(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){var t=sr.call(arguments,0);return be(this,ye(this,t))},includes:function(t){return this.some(function(e){return X(e,t)})},entries:function(){return this.__iterator(Sr)},every:function(t,e){ft(this.size);var r=!0;return this.__iterate(function(n,i,o){return t.call(e,n,i,o)?void 0:(r=!1,!1)}),r},filter:function(t,e){return be(this,fe(this,t,e,!0))},find:function(t,e,r){var n=this.findEntry(t,e);return n?n[1]:r},forEach:function(t,e){return ft(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){ft(this.size),t=void 0!==t?""+t:",";var e="",r=!0;return this.__iterate(function(n){r?r=!1:e+=t,e+=null!==n&&void 0!==n?""+n:""}),e},keys:function(){return this.__iterator(gr)},map:function(t,e){return be(this,ae(this,t,e))},reduce:function(t,e,r){ft(this.size);var n,i;return arguments.length<2?i=!0:n=e,this.__iterate(function(e,o,u){i?(i=!1,n=e):n=t.call(r,n,e,o,u)}),n},reduceRight:function(t,e,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return be(this,he(this,!0))},slice:function(t,e){return be(this,pe(this,t,e,!0))},some:function(t,e){return!this.every($e(t),e)},sort:function(t){return be(this,we(this,t))},values:function(){return this.__iterator(wr)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return v(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return ce(this,t,e)},equals:function(t){return F(this,t)},entrySeq:function(){var t=this;if(t._cache)return new j(t._cache);var e=t.toSeq().map(Ze).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){ -return this.filter($e(t),e)},findEntry:function(t,e,r){var n=r;return this.__iterate(function(r,i,o){return t.call(e,r,i,o)?(n=[i,r],!1):void 0}),n},findKey:function(t,e){var r=this.findEntry(t,e);return r&&r[0]},findLast:function(t,e,r){return this.toKeyedSeq().reverse().find(t,e,r)},findLastEntry:function(t,e,r){return this.toKeyedSeq().reverse().findEntry(t,e,r)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(y)},flatMap:function(t,e){return be(this,me(this,t,e))},flatten:function(t){return be(this,de(this,t,!0))},fromEntrySeq:function(){return new ue(this)},get:function(t,e){return this.find(function(e,r){return X(r,t)},void 0,e)},getIn:function(t,e){for(var r,n=this,i=ke(t);!(r=i.next()).done;){var o=r.value;if(n=n&&n.get?n.get(o,yr):yr,n===yr)return e}return n},groupBy:function(t,e){return _e(this,t,e)},has:function(t){return this.get(t,yr)!==yr},hasIn:function(t){return this.getIn(t,yr)!==yr},isSubset:function(t){return t="function"==typeof t.includes?t:e(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return t="function"==typeof t.isSubset?t:e(t),t.isSubset(this)},keyOf:function(t){return this.findKey(function(e){return X(e,t)})},keySeq:function(){return this.toSeq().map(Ge).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Se(this,t)},maxBy:function(t,e){return Se(this,e,t)},min:function(t){return Se(this,t?tr(t):nr)},minBy:function(t,e){return Se(this,e?tr(e):nr,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return be(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return be(this,le(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile($e(t),e)},sortBy:function(t,e){return be(this,we(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return be(this,this.toSeq().reverse().take(t).reverse()); -},takeWhile:function(t,e){return be(this,ve(this,t,e))},takeUntil:function(t,e){return this.takeWhile($e(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=ir(this))}});var sn=e.prototype;sn[ar]=!0,sn[br]=sn.values,sn.__toJS=sn.toArray,sn.__toStringMapper=er,sn.inspect=sn.toSource=function(){return""+this},sn.chain=sn.flatMap,sn.contains=sn.includes,Fe(r,{flip:function(){return be(this,se(this))},mapEntries:function(t,e){var r=this,n=0;return be(this,this.toSeq().map(function(i,o){return t.call(e,[o,i],n++,r)}).fromEntrySeq())},mapKeys:function(t,e){var r=this;return be(this,this.toSeq().flip().map(function(n,i){return t.call(e,n,i,r)}).flip())}});var an=r.prototype;an[hr]=!0,an[br]=sn.entries,an.__toJS=sn.toObject,an.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+er(t)},Fe(n,{toKeyedSeq:function(){return new ne(this,!1)},filter:function(t,e){return be(this,fe(this,t,e,!1))},findIndex:function(t,e){var r=this.findEntry(t,e);return r?r[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return be(this,he(this,!1))},slice:function(t,e){return be(this,pe(this,t,e,!1))},splice:function(t,e){var r=arguments.length;if(e=Math.max(0|e,0),0===r||2===r&&!e)return this;t=m(t,0>t?this.count():this.size);var n=this.slice(0,t);return be(this,1===r?n:n.concat(p(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var r=this.findLastEntry(t,e);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(t){return be(this,de(this,t,!1))},get:function(t,e){return t=l(this,t),0>t||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,r){return r===t},void 0,e)},has:function(t){return t=l(this,t),t>=0&&(void 0!==this.size?this.size===1/0||this.size>t:-1!==this.indexOf(t))},interpose:function(t){return be(this,ge(this,t))},interleave:function(){var t=[this].concat(p(arguments)),e=Ie(this.toSeq(),k.of,t),r=e.flatten(!0);return e.size&&(r.size=e.size*t.length), -be(this,r)},keySeq:function(){return $(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(t,e){return be(this,le(this,t,e,!1))},zip:function(){var t=[this].concat(p(arguments));return be(this,Ie(this,rr,t))},zipWith:function(t){var e=p(arguments);return e[0]=this,be(this,Ie(this,t,e))}}),n.prototype[fr]=!0,n.prototype[cr]=!0,Fe(i,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=sn.includes,i.prototype.contains=i.prototype.includes,Fe(x,r.prototype),Fe(k,n.prototype),Fe(A,i.prototype),Fe(et,r.prototype),Fe(rt,n.prototype),Fe(nt,i.prototype);var hn={Iterable:e,Seq:O,Collection:tt,Map:ct,OrderedMap:Zt,List:Bt,Stack:Ve,Set:Le,OrderedSet:Je,Record:Ae,Range:$,Repeat:G,is:X,fromJS:H};return hn}); \ No newline at end of file diff --git a/packages/client/node_modules/immutable/package.json b/packages/client/node_modules/immutable/package.json deleted file mode 100644 index 6dc5f27..0000000 --- a/packages/client/node_modules/immutable/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "immutable", - "version": "3.8.2", - "description": "Immutable Data Collections", - "license": "MIT", - "homepage": "https://facebook.github.com/immutable-js", - "author": { - "name": "Lee Byron", - "url": "https://github.com/leebyron" - }, - "repository": { - "type": "git", - "url": "git://github.com/facebook/immutable-js.git" - }, - "bugs": { - "url": "https://github.com/facebook/immutable-js/issues" - }, - "main": "dist/immutable.js", - "typings": "dist/immutable-nonambient.d.ts", - "typescript": { - "definition": "dist/immutable.d.ts" - }, - "scripts": { - "build": "grunt default && gulp default", - "lint": "eslint src/ && grunt lint && gulp lint", - "testonly": "./resources/node_test.sh", - "test": "npm run lint && npm run testonly", - "perf": "node ./resources/bench.js", - "start": "npm run build && node ./pages/resources/start.js", - "deploy": "(cd ./pages/out && git init && git config user.name \"Travis CI\" && git config user.email \"github@fb.com\" && git add . && git commit -m \"Deploy to GitHub Pages\" && git push --force --quiet \"https://${GH_TOKEN}@github.com/facebook/immutable-js.git\" master:gh-pages > /dev/null 2>1)" - }, - "jest": { - "scriptPreprocessor": "resources/jestPreprocessor.js", - "testFileExtensions": [ - "js", - "ts" - ], - "persistModuleRegistryBetweenSpecs": true - }, - "devDependencies": { - "acorn": "0.11.x", - "babel-eslint": "^4.1.8", - "benchmark": "^1.0.0", - "bluebird": "3.1.1", - "browser-sync": "2.11.0", - "browserify": "^5.11.2", - "colors": "1.1.2", - "del": "2.2.0", - "es6-transpiler": "0.7.18", - "eslint": "^1.10.3", - "estraverse": "1.9.3", - "express": "^4.13.4", - "fbjs-scripts": "^0.5.0", - "grunt": "0.4.5", - "grunt-cli": "0.1.13", - "grunt-contrib-clean": "0.7.0", - "grunt-contrib-copy": "0.8.2", - "grunt-contrib-jshint": "0.11.3", - "grunt-release": "0.13.0", - "gulp": "3.9.0", - "gulp-concat": "2.6.0", - "gulp-filter": "3.0.1", - "gulp-header": "1.7.1", - "gulp-jest": "^0.2.1", - "gulp-jshint": "^1.8.4", - "gulp-less": "3.0.5", - "gulp-size": "2.0.0", - "gulp-sourcemaps": "1.6.0", - "gulp-uglify": "1.5.1", - "gulp-util": "3.0.7", - "harmonize": "1.4.4", - "jasmine-check": "^0.1.2", - "jest-cli": "^0.5.10", - "jshint-stylish": "^0.4.0", - "magic-string": "0.10.2", - "marked": "0.3.5", - "microtime": "^2.0.0", - "node-jsx": "^0.12.4", - "react": "^0.12.0", - "react-router": "^0.11.2", - "react-tools": "^0.12.0", - "rollup": "0.24.0", - "run-sequence": "1.1.5", - "through2": "2.0.0", - "typescript": "1.7.5", - "uglify-js": "2.6.1", - "vinyl-buffer": "1.0.0", - "vinyl-source-stream": "1.1.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "dist", - "contrib", - "README.md", - "LICENSE" - ], - "keywords": [ - "immutable", - "persistent", - "lazy", - "data", - "datastructure", - "functional", - "collection", - "stateless", - "sequence", - "iteration" - ] -} diff --git a/packages/client/node_modules/rc-animate/HISTORY.md b/packages/client/node_modules/rc-animate/HISTORY.md deleted file mode 100644 index a966ad7..0000000 --- a/packages/client/node_modules/rc-animate/HISTORY.md +++ /dev/null @@ -1,42 +0,0 @@ -# History ----- - -## 3.0.0 / 2020-05-07 - -- Remove css-animation/babel-runtime/prop-types/react-lifecycles-compat from deps. - -## 2.10.2 / 2019-11-09 - -- There should not be any lifecycle warning now! - -## 2.10.0 / 2019-08-27 - -- CSSMotionList support `component` to be `false` to render nothing - -## 2.9.0 / 2019-07-09 - -- CSSMotion support forward ref to render props - -## 2.8.0 / 2019-04-29 - -- `keys` on CSSMotionList can be an object - -## 2.7.0 / 2019-04-29 - -- add CSSMotionList component - -## 2.6.0 / 2018-11-26 - -- add CSSMotion component - -## 2.3.0 / 2016-07-05 - -- support null/undefined child: https://github.com/react-component/animate/pull/11 - -## 2.2.0 / 2016-06-28 - -- support transitionName as object - -## 2.1.0 / 2016-06-16 - -- make onEnter/onLeave/onAppear async diff --git a/packages/client/node_modules/rc-animate/LICENSE.md b/packages/client/node_modules/rc-animate/LICENSE.md deleted file mode 100644 index 1f5a0d9..0000000 --- a/packages/client/node_modules/rc-animate/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-present yiminghe - -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. diff --git a/packages/client/node_modules/rc-animate/README.md b/packages/client/node_modules/rc-animate/README.md deleted file mode 100644 index 190d0a8..0000000 --- a/packages/client/node_modules/rc-animate/README.md +++ /dev/null @@ -1,193 +0,0 @@ -# rc-animate ---- - -Animate React Component easily. - -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Dependencies][david-image]][david-url] -[![DevDependencies][david-dev-image]][david-dev-url] -[![npm download][download-image]][download-url] -[![bundle size][bundlephobia-image]][bundlephobia-url] - -[npm-image]: http://img.shields.io/npm/v/rc-animate.svg?style=flat-square -[npm-url]: http://npmjs.org/package/rc-animate -[travis-image]: https://img.shields.io/travis/react-component/animate.svg?style=flat-square -[travis-url]: https://travis-ci.org/react-component/animate -[coveralls-image]: https://img.shields.io/coveralls/react-component/animate.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/react-component/animate?branch=master -[david-url]: https://david-dm.org/react-component/animate -[david-image]: https://david-dm.org/react-component/animate/status.svg?style=flat-square -[david-dev-url]: https://david-dm.org/react-component/animate?type=dev -[david-dev-image]: https://david-dm.org/react-component/animate/dev-status.svg?style=flat-square -[download-image]: https://img.shields.io/npm/dm/rc-animate.svg?style=flat-square -[download-url]: https://npmjs.org/package/rc-animate -[bundlephobia-url]: https://bundlephobia.com/result?p=rc-animate -[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/rc-animate - -## Install - -[![rc-animate](https://nodei.co/npm/rc-animate.png)](https://npmjs.org/package/rc-animate) - -## Usage - -```js -import Animate from 'rc-animate'; - -export default () => ( - -

1

-

2

-
-); -``` - -## Compatibility - -| [IE / Edge](http://godban.github.io/browsers-support-badges/)
IE / Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | [Electron](http://godban.github.io/browsers-support-badges/)
Electron | -| --- | --- | --- | --- | --- | -| IE11, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions | - -## API - -### props - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nametypedefaultdescription
componentReact.Element/String'span'wrap dom node or component for children. set to '' if you do not wrap for only one child
componentPropsObject{}extra props that will be passed to component
showPropStringusing prop for show and hide. [demo](http://react-component.github.io/animate/examples/hide-todo.html)
exclusiveBooleanwhether allow only one set of animations(enter and leave) at the same time.
transitionNameString|Objectspecify corresponding css, see ReactCSSTransitionGroup
transitionAppearBooleanfalsewhether support transition appear anim
transitionEnterBooleantruewhether support transition enter anim
transitionLeaveBooleantruewhether support transition leave anim
onEndfunction(key:String, exists:Boolean)trueanimation end callback
animationObject{} - to animate with js. see animation format below. -
- -### animation format - -with appear, enter and leave as keys. for example: - -```js - { - appear: function(node, done){ - node.style.display='none'; - $(node).slideUp(done); - return { - stop:function(){ - // jq will call done on finish - $(node).stop(true); - } - }; - }, - enter: function(){ - this.appear.apply(this,arguments); - }, - leave: function(node, done){ - node.style.display=''; - $(node).slideDown(done); - return { - stop:function(){ - // jq will call done on finish - $(node).stop(true); - } - }; - } - } -``` - -## Development - -``` -npm install -npm start -``` - -## Example - -http://localhost:8200/examples/index.md - -online example: http://react-component.github.io/animate/examples/ - -## Test Case - -``` -npm test -npm run chrome-test -``` - -## Coverage - -``` -npm run coverage -``` - -open coverage/ dir - -## License - -rc-animate is released under the MIT license. diff --git a/packages/client/node_modules/rc-animate/es/Animate.js b/packages/client/node_modules/rc-animate/es/Animate.js deleted file mode 100644 index 8fbd592..0000000 --- a/packages/client/node_modules/rc-animate/es/Animate.js +++ /dev/null @@ -1,340 +0,0 @@ -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 _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; } - -/* eslint react/prop-types: 0 */ -import React from 'react'; -import unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill'; -import { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils'; -import AnimateChild from './AnimateChild'; -import animUtil from './util/animate'; - -var defaultKey = 'rc_animate_' + Date.now(); - -function getChildrenFromProps(props) { - var children = props.children; - if (React.isValidElement(children)) { - if (!children.key) { - return React.cloneElement(children, { - key: defaultKey - }); - } - } - return children; -} - -function noop() {} - -var Animate = function (_React$Component) { - _inherits(Animate, _React$Component); - - function Animate(props) { - _classCallCheck(this, Animate); - - var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props)); - - _initialiseProps.call(_this); - - _this.currentlyAnimatingKeys = {}; - _this.keysToEnter = []; - _this.keysToLeave = []; - - _this.state = { - children: toArrayChildren(getChildrenFromProps(props)) - }; - - _this.childrenRefs = {}; - return _this; - } // eslint-disable-line - - _createClass(Animate, [{ - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - var showProp = this.props.showProp; - var children = this.state.children; - if (showProp) { - children = children.filter(function (child) { - return !!child.props[showProp]; - }); - } - children.forEach(function (child) { - if (child) { - _this2.performAppear(child.key); - } - }); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var _this3 = this; - - this.nextProps = nextProps; - var nextChildren = toArrayChildren(getChildrenFromProps(nextProps)); - var props = this.props; - // exclusive needs immediate response - if (props.exclusive) { - Object.keys(this.currentlyAnimatingKeys).forEach(function (key) { - _this3.stop(key); - }); - } - var showProp = props.showProp; - var currentlyAnimatingKeys = this.currentlyAnimatingKeys; - // last props children if exclusive - var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children; - // in case destroy in showProp mode - var newChildren = []; - if (showProp) { - currentChildren.forEach(function (currentChild) { - var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key); - var newChild = void 0; - if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) { - newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true)); - } else { - newChild = nextChild; - } - if (newChild) { - newChildren.push(newChild); - } - }); - nextChildren.forEach(function (nextChild) { - if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) { - newChildren.push(nextChild); - } - }); - } else { - newChildren = mergeChildren(currentChildren, nextChildren); - } - - // need render to avoid update - this.setState({ - children: newChildren - }); - - nextChildren.forEach(function (child) { - var key = child && child.key; - if (child && currentlyAnimatingKeys[key]) { - return; - } - var hasPrev = child && findChildInChildrenByKey(currentChildren, key); - if (showProp) { - var showInNext = child.props[showProp]; - if (hasPrev) { - var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp); - if (!showInNow && showInNext) { - _this3.keysToEnter.push(key); - } - } else if (showInNext) { - _this3.keysToEnter.push(key); - } - } else if (!hasPrev) { - _this3.keysToEnter.push(key); - } - }); - - currentChildren.forEach(function (child) { - var key = child && child.key; - if (child && currentlyAnimatingKeys[key]) { - return; - } - var hasNext = child && findChildInChildrenByKey(nextChildren, key); - if (showProp) { - var showInNow = child.props[showProp]; - if (hasNext) { - var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp); - if (!showInNext && showInNow) { - _this3.keysToLeave.push(key); - } - } else if (showInNow) { - _this3.keysToLeave.push(key); - } - } else if (!hasNext) { - _this3.keysToLeave.push(key); - } - }); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - var keysToEnter = this.keysToEnter; - this.keysToEnter = []; - keysToEnter.forEach(this.performEnter); - var keysToLeave = this.keysToLeave; - this.keysToLeave = []; - keysToLeave.forEach(this.performLeave); - } - }, { - key: 'isValidChildByKey', - value: function isValidChildByKey(currentChildren, key) { - var showProp = this.props.showProp; - if (showProp) { - return findShownChildInChildrenByKey(currentChildren, key, showProp); - } - return findChildInChildrenByKey(currentChildren, key); - } - }, { - key: 'stop', - value: function stop(key) { - delete this.currentlyAnimatingKeys[key]; - var component = this.childrenRefs[key]; - if (component) { - component.stop(); - } - } - }, { - key: 'render', - value: function render() { - var _this4 = this; - - var props = this.props; - this.nextProps = props; - var stateChildren = this.state.children; - var children = null; - if (stateChildren) { - children = stateChildren.map(function (child) { - if (child === null || child === undefined) { - return child; - } - if (!child.key) { - throw new Error('must set key for children'); - } - return React.createElement( - AnimateChild, - { - key: child.key, - ref: function ref(node) { - _this4.childrenRefs[child.key] = node; - }, - animation: props.animation, - transitionName: props.transitionName, - transitionEnter: props.transitionEnter, - transitionAppear: props.transitionAppear, - transitionLeave: props.transitionLeave - }, - child - ); - }); - } - var Component = props.component; - if (Component) { - var passedProps = props; - if (typeof Component === 'string') { - passedProps = _extends({ - className: props.className, - style: props.style - }, props.componentProps); - } - return React.createElement( - Component, - passedProps, - children - ); - } - return children[0] || null; - } - }]); - - return Animate; -}(React.Component); - -Animate.isAnimate = true; -Animate.defaultProps = { - animation: {}, - component: 'span', - componentProps: {}, - transitionEnter: true, - transitionLeave: true, - transitionAppear: false, - onEnd: noop, - onEnter: noop, - onLeave: noop, - onAppear: noop -}; - -var _initialiseProps = function _initialiseProps() { - var _this5 = this; - - this.performEnter = function (key) { - // may already remove by exclusive - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter')); - } - }; - - this.performAppear = function (key) { - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear')); - } - }; - - this.handleDoneAdding = function (key, type) { - var props = _this5.props; - delete _this5.currentlyAnimatingKeys[key]; - // if update on exclusive mode, skip check - if (props.exclusive && props !== _this5.nextProps) { - return; - } - var currentChildren = toArrayChildren(getChildrenFromProps(props)); - if (!_this5.isValidChildByKey(currentChildren, key)) { - // exclusive will not need this - _this5.performLeave(key); - } else if (type === 'appear') { - if (animUtil.allowAppearCallback(props)) { - props.onAppear(key); - props.onEnd(key, true); - } - } else if (animUtil.allowEnterCallback(props)) { - props.onEnter(key); - props.onEnd(key, true); - } - }; - - this.performLeave = function (key) { - // may already remove by exclusive - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key)); - } - }; - - this.handleDoneLeaving = function (key) { - var props = _this5.props; - delete _this5.currentlyAnimatingKeys[key]; - // if update on exclusive mode, skip check - if (props.exclusive && props !== _this5.nextProps) { - return; - } - var currentChildren = toArrayChildren(getChildrenFromProps(props)); - // in case state change is too fast - if (_this5.isValidChildByKey(currentChildren, key)) { - _this5.performEnter(key); - } else { - var end = function end() { - if (animUtil.allowLeaveCallback(props)) { - props.onLeave(key); - props.onEnd(key, false); - } - }; - if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) { - _this5.setState({ - children: currentChildren - }, end); - } else { - end(); - } - } - }; -}; - -export default unsafeLifecyclesPolyfill(Animate); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/AnimateChild.js b/packages/client/node_modules/rc-animate/es/AnimateChild.js deleted file mode 100644 index 55b971c..0000000 --- a/packages/client/node_modules/rc-animate/es/AnimateChild.js +++ /dev/null @@ -1,112 +0,0 @@ -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 _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; } - -/* eslint react/prop-types: 0 */ -import React from 'react'; -import ReactDOM from 'react-dom'; -import cssAnimate, { isCssAnimationSupported } from '@ant-design/css-animation'; -import animUtil from './util/animate'; - -var transitionMap = { - enter: 'transitionEnter', - appear: 'transitionAppear', - leave: 'transitionLeave' -}; - -var AnimateChild = function (_React$Component) { - _inherits(AnimateChild, _React$Component); - - function AnimateChild() { - _classCallCheck(this, AnimateChild); - - return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments)); - } - - _createClass(AnimateChild, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.stop(); - } - }, { - key: 'componentWillEnter', - value: function componentWillEnter(done) { - if (animUtil.isEnterSupported(this.props)) { - this.transition('enter', done); - } else { - done(); - } - } - }, { - key: 'componentWillAppear', - value: function componentWillAppear(done) { - if (animUtil.isAppearSupported(this.props)) { - this.transition('appear', done); - } else { - done(); - } - } - }, { - key: 'componentWillLeave', - value: function componentWillLeave(done) { - if (animUtil.isLeaveSupported(this.props)) { - this.transition('leave', done); - } else { - // always sync, do not interupt with react component life cycle - // update hidden -> animate hidden -> - // didUpdate -> animate leave -> unmount (if animate is none) - done(); - } - } - }, { - key: 'transition', - value: function transition(animationType, finishCallback) { - var _this2 = this; - - var node = ReactDOM.findDOMNode(this); - var props = this.props; - var transitionName = props.transitionName; - var nameIsObj = typeof transitionName === 'object'; - this.stop(); - var end = function end() { - _this2.stopper = null; - finishCallback(); - }; - if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) { - var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType; - var activeName = name + '-active'; - if (nameIsObj && transitionName[animationType + 'Active']) { - activeName = transitionName[animationType + 'Active']; - } - this.stopper = cssAnimate(node, { - name: name, - active: activeName - }, end); - } else { - this.stopper = props.animation[animationType](node, end); - } - } - }, { - key: 'stop', - value: function stop() { - var stopper = this.stopper; - if (stopper) { - this.stopper = null; - stopper.stop(); - } - } - }, { - key: 'render', - value: function render() { - return this.props.children; - } - }]); - - return AnimateChild; -}(React.Component); - -export default AnimateChild; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/CSSMotion.js b/packages/client/node_modules/rc-animate/es/CSSMotion.js deleted file mode 100644 index 8c7a50c..0000000 --- a/packages/client/node_modules/rc-animate/es/CSSMotion.js +++ /dev/null @@ -1,339 +0,0 @@ -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 _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; } - -/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */ -import React from 'react'; -import findDOMNode from 'rc-util/es/Dom/findDOMNode'; -import classNames from 'classnames'; -import raf from 'raf'; -import { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util/motion'; - -var STATUS_NONE = 'none'; -var STATUS_APPEAR = 'appear'; -var STATUS_ENTER = 'enter'; -var STATUS_LEAVE = 'leave'; - -/** - * `transitionSupport` is used for none transition test case. - * Default we use browser transition event support check. - */ -export function genCSSMotion(config) { - var transitionSupport = config; - var forwardRef = !!React.forwardRef; - - if (typeof config === 'object') { - transitionSupport = config.transitionSupport; - forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef; - } - - function isSupportTransition(props) { - return !!(props.motionName && transitionSupport); - } - - var CSSMotion = function (_React$Component) { - _inherits(CSSMotion, _React$Component); - - function CSSMotion() { - _classCallCheck(this, CSSMotion); - - var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); - - _this.onDomUpdate = function () { - var _this$state = _this.state, - status = _this$state.status, - newStatus = _this$state.newStatus; - var _this$props = _this.props, - onAppearStart = _this$props.onAppearStart, - onEnterStart = _this$props.onEnterStart, - onLeaveStart = _this$props.onLeaveStart, - onAppearActive = _this$props.onAppearActive, - onEnterActive = _this$props.onEnterActive, - onLeaveActive = _this$props.onLeaveActive, - motionAppear = _this$props.motionAppear, - motionEnter = _this$props.motionEnter, - motionLeave = _this$props.motionLeave; - - - if (!isSupportTransition(_this.props)) { - return; - } - - // Event injection - var $ele = _this.getElement(); - if (_this.$cacheEle !== $ele) { - _this.removeEventListener(_this.$cacheEle); - _this.addEventListener($ele); - _this.$cacheEle = $ele; - } - - // Init status - if (newStatus && status === STATUS_APPEAR && motionAppear) { - _this.updateStatus(onAppearStart, null, null, function () { - _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); - }); - } else if (newStatus && status === STATUS_ENTER && motionEnter) { - _this.updateStatus(onEnterStart, null, null, function () { - _this.updateActiveStatus(onEnterActive, STATUS_ENTER); - }); - } else if (newStatus && status === STATUS_LEAVE && motionLeave) { - _this.updateStatus(onLeaveStart, null, null, function () { - _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); - }); - } - }; - - _this.onMotionEnd = function (event) { - var _this$state2 = _this.state, - status = _this$state2.status, - statusActive = _this$state2.statusActive; - var _this$props2 = _this.props, - onAppearEnd = _this$props2.onAppearEnd, - onEnterEnd = _this$props2.onEnterEnd, - onLeaveEnd = _this$props2.onLeaveEnd; - - if (status === STATUS_APPEAR && statusActive) { - _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_ENTER && statusActive) { - _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_LEAVE && statusActive) { - _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); - } - }; - - _this.setNodeRef = function (node) { - var internalRef = _this.props.internalRef; - - _this.node = node; - - if (typeof internalRef === 'function') { - internalRef(node); - } else if (internalRef && 'current' in internalRef) { - internalRef.current = node; - } - }; - - _this.getElement = function () { - try { - return findDOMNode(_this.node || _this); - } catch (e) { - /** - * Fallback to cache element. - * This is only happen when `motionDeadline` trigger but element removed. - */ - return _this.$cacheEle; - } - }; - - _this.addEventListener = function ($ele) { - if (!$ele) return; - - $ele.addEventListener(transitionEndName, _this.onMotionEnd); - $ele.addEventListener(animationEndName, _this.onMotionEnd); - }; - - _this.removeEventListener = function ($ele) { - if (!$ele) return; - - $ele.removeEventListener(transitionEndName, _this.onMotionEnd); - $ele.removeEventListener(animationEndName, _this.onMotionEnd); - }; - - _this.updateStatus = function (styleFunc, additionalState, event, callback) { - var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null; - - if (statusStyle === false || _this._destroyed) return; - - var nextStep = void 0; - if (callback) { - nextStep = function nextStep() { - _this.nextFrame(callback); - }; - } - - _this.setState(_extends({ - statusStyle: typeof statusStyle === 'object' ? statusStyle : null, - newStatus: false - }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` - }; - - _this.updateActiveStatus = function (styleFunc, currentStatus) { - // `setState` use `postMessage` to trigger at the end of frame. - // Let's use requestAnimationFrame to update new state in next frame. - _this.nextFrame(function () { - var status = _this.state.status; - - if (status !== currentStatus) return; - - var motionDeadline = _this.props.motionDeadline; - - - _this.updateStatus(styleFunc, { statusActive: true }); - - if (motionDeadline > 0) { - _this.timer = setTimeout(function () { - _this.onMotionEnd({ - deadline: true - }); - }, motionDeadline); - } - }); - }; - - _this.nextFrame = function (func) { - _this.cancelNextFrame(); - _this.raf = raf(func); - }; - - _this.cancelNextFrame = function () { - if (_this.raf) { - raf.cancel(_this.raf); - _this.raf = null; - } - }; - - _this.state = { - status: STATUS_NONE, - statusActive: false, - newStatus: false, - statusStyle: null - }; - _this.$cacheEle = null; - _this.node = null; - _this.raf = null; - return _this; - } - - _createClass(CSSMotion, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.onDomUpdate(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.onDomUpdate(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this._destroyed = true; - this.removeEventListener(this.$cacheEle); - this.cancelNextFrame(); - clearTimeout(this.timer); - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _state = this.state, - status = _state.status, - statusActive = _state.statusActive, - statusStyle = _state.statusStyle; - var _props = this.props, - children = _props.children, - motionName = _props.motionName, - visible = _props.visible, - removeOnLeave = _props.removeOnLeave, - leavedClassName = _props.leavedClassName, - eventProps = _props.eventProps; - - - if (!children) return null; - - if (status === STATUS_NONE || !isSupportTransition(this.props)) { - if (visible) { - return children(_extends({}, eventProps), this.setNodeRef); - } else if (!removeOnLeave) { - return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef); - } - - return null; - } - - return children(_extends({}, eventProps, { - className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)), - style: statusStyle - }), this.setNodeRef); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(props, _ref) { - var prevProps = _ref.prevProps, - prevStatus = _ref.status; - - if (!isSupportTransition(props)) return {}; - - var visible = props.visible, - motionAppear = props.motionAppear, - motionEnter = props.motionEnter, - motionLeave = props.motionLeave, - motionLeaveImmediately = props.motionLeaveImmediately; - - var newState = { - prevProps: props - }; - - // Clean up status if prop set to false - if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) { - newState.status = STATUS_NONE; - newState.statusActive = false; - newState.newStatus = false; - } - - // Appear - if (!prevProps && visible && motionAppear) { - newState.status = STATUS_APPEAR; - newState.statusActive = false; - newState.newStatus = true; - } - - // Enter - if (prevProps && !prevProps.visible && visible && motionEnter) { - newState.status = STATUS_ENTER; - newState.statusActive = false; - newState.newStatus = true; - } - - // Leave - if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { - newState.status = STATUS_LEAVE; - newState.statusActive = false; - newState.newStatus = true; - } - - return newState; - } - }]); - - return CSSMotion; - }(React.Component); - - CSSMotion.defaultProps = { - visible: true, - motionEnter: true, - motionAppear: true, - motionLeave: true, - removeOnLeave: true - }; - - - if (!forwardRef) { - return CSSMotion; - } - - return React.forwardRef(function (props, ref) { - return React.createElement(CSSMotion, _extends({ internalRef: ref }, props)); - }); -} - -export default genCSSMotion(supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/CSSMotionList.js b/packages/client/node_modules/rc-animate/es/CSSMotionList.js deleted file mode 100644 index 29c249c..0000000 --- a/packages/client/node_modules/rc-animate/es/CSSMotionList.js +++ /dev/null @@ -1,155 +0,0 @@ -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; } - -/* eslint react/prop-types: 0 */ -import React from 'react'; -import OriginCSSMotion from './CSSMotion'; -import { supportTransition } from './util/motion'; -import { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff'; - -var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd']; - -export function genCSSMotionList(transitionSupport) { - var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion; - - var CSSMotionList = function (_React$Component) { - _inherits(CSSMotionList, _React$Component); - - function CSSMotionList() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, CSSMotionList); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CSSMotionList.__proto__ || Object.getPrototypeOf(CSSMotionList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - keyEntities: [] - }, _this.removeKey = function (removeKey) { - _this.setState(function (_ref2) { - var keyEntities = _ref2.keyEntities; - return { - keyEntities: keyEntities.map(function (entity) { - if (entity.key !== removeKey) return entity; - return _extends({}, entity, { - status: STATUS_REMOVED - }); - }) - }; - }); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(CSSMotionList, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var keyEntities = this.state.keyEntities; - - var _props = this.props, - component = _props.component, - children = _props.children, - restProps = _objectWithoutProperties(_props, ['component', 'children']); - - var Component = component || React.Fragment; - - var motionProps = {}; - MOTION_PROP_NAMES.forEach(function (prop) { - motionProps[prop] = restProps[prop]; - delete restProps[prop]; - }); - delete restProps.keys; - - return React.createElement( - Component, - restProps, - keyEntities.map(function (_ref3) { - var status = _ref3.status, - eventProps = _objectWithoutProperties(_ref3, ['status']); - - var visible = status === STATUS_ADD || status === STATUS_KEEP; - return React.createElement( - CSSMotion, - _extends({}, motionProps, { - key: eventProps.key, - visible: visible, - eventProps: eventProps, - onLeaveEnd: function onLeaveEnd() { - if (motionProps.onLeaveEnd) { - motionProps.onLeaveEnd.apply(motionProps, arguments); - } - _this2.removeKey(eventProps.key); - } - }), - children - ); - }) - ); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(_ref4, _ref5) { - var keys = _ref4.keys; - var keyEntities = _ref5.keyEntities; - - var parsedKeyObjects = parseKeys(keys); - - // Always as keep when motion not support - if (!transitionSupport) { - return { - keyEntities: parsedKeyObjects.map(function (obj) { - return _extends({}, obj, { status: STATUS_KEEP }); - }) - }; - } - - var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects); - - var keyEntitiesLen = keyEntities.length; - return { - keyEntities: mixedKeyEntities.filter(function (entity) { - // IE 9 not support Array.prototype.find - var prevEntity = null; - for (var i = 0; i < keyEntitiesLen; i += 1) { - var currentEntity = keyEntities[i]; - if (currentEntity.key === entity.key) { - prevEntity = currentEntity; - break; - } - } - - // Remove if already mark as removed - if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) { - return false; - } - return true; - }) - }; - } - }]); - - return CSSMotionList; - }(React.Component); - - CSSMotionList.defaultProps = { - component: 'div' - }; - - - return CSSMotionList; -} - -export default genCSSMotionList(supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/ChildrenUtils.js b/packages/client/node_modules/rc-animate/es/ChildrenUtils.js deleted file mode 100644 index 82c5e9a..0000000 --- a/packages/client/node_modules/rc-animate/es/ChildrenUtils.js +++ /dev/null @@ -1,101 +0,0 @@ -import React from 'react'; - -export function toArrayChildren(children) { - var ret = []; - React.Children.forEach(children, function (child) { - ret.push(child); - }); - return ret; -} - -export function findChildInChildrenByKey(children, key) { - var ret = null; - if (children) { - children.forEach(function (child) { - if (ret) { - return; - } - if (child && child.key === key) { - ret = child; - } - }); - } - return ret; -} - -export function findShownChildInChildrenByKey(children, key, showProp) { - var ret = null; - if (children) { - children.forEach(function (child) { - if (child && child.key === key && child.props[showProp]) { - if (ret) { - throw new Error('two child with same key for children'); - } - ret = child; - } - }); - } - return ret; -} - -export function findHiddenChildInChildrenByKey(children, key, showProp) { - var found = 0; - if (children) { - children.forEach(function (child) { - if (found) { - return; - } - found = child && child.key === key && !child.props[showProp]; - }); - } - return found; -} - -export function isSameChildren(c1, c2, showProp) { - var same = c1.length === c2.length; - if (same) { - c1.forEach(function (child, index) { - var child2 = c2[index]; - if (child && child2) { - if (child && !child2 || !child && child2) { - same = false; - } else if (child.key !== child2.key) { - same = false; - } else if (showProp && child.props[showProp] !== child2.props[showProp]) { - same = false; - } - } - }); - } - return same; -} - -export function mergeChildren(prev, next) { - var ret = []; - - // For each key of `next`, the list of keys to insert before that key in - // the combined list - var nextChildrenPending = {}; - var pendingChildren = []; - prev.forEach(function (child) { - if (child && findChildInChildrenByKey(next, child.key)) { - if (pendingChildren.length) { - nextChildrenPending[child.key] = pendingChildren; - pendingChildren = []; - } - } else { - pendingChildren.push(child); - } - }); - - next.forEach(function (child) { - if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) { - ret = ret.concat(nextChildrenPending[child.key]); - } - ret.push(child); - }); - - ret = ret.concat(pendingChildren); - - return ret; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/animate.js b/packages/client/node_modules/rc-animate/es/util/animate.js deleted file mode 100644 index 7608383..0000000 --- a/packages/client/node_modules/rc-animate/es/util/animate.js +++ /dev/null @@ -1,21 +0,0 @@ -var util = { - isAppearSupported: function isAppearSupported(props) { - return props.transitionName && props.transitionAppear || props.animation.appear; - }, - isEnterSupported: function isEnterSupported(props) { - return props.transitionName && props.transitionEnter || props.animation.enter; - }, - isLeaveSupported: function isLeaveSupported(props) { - return props.transitionName && props.transitionLeave || props.animation.leave; - }, - allowAppearCallback: function allowAppearCallback(props) { - return props.transitionAppear || props.animation.appear; - }, - allowEnterCallback: function allowEnterCallback(props) { - return props.transitionEnter || props.animation.enter; - }, - allowLeaveCallback: function allowLeaveCallback(props) { - return props.transitionLeave || props.animation.leave; - } -}; -export default util; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/diff.js b/packages/client/node_modules/rc-animate/es/util/diff.js deleted file mode 100644 index 45c423e..0000000 --- a/packages/client/node_modules/rc-animate/es/util/diff.js +++ /dev/null @@ -1,106 +0,0 @@ -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; }; - -export var STATUS_ADD = 'add'; -export var STATUS_KEEP = 'keep'; -export var STATUS_REMOVE = 'remove'; -export var STATUS_REMOVED = 'removed'; - -export function wrapKeyToObject(key) { - var keyObj = void 0; - if (key && typeof key === 'object' && 'key' in key) { - keyObj = key; - } else { - keyObj = { key: key }; - } - return _extends({}, keyObj, { - key: String(keyObj.key) - }); -} - -export function parseKeys() { - var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - - return keys.map(wrapKeyToObject); -} - -export function diffKeys() { - var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - - var list = []; - var currentIndex = 0; - var currentLen = currentKeys.length; - - var prevKeyObjects = parseKeys(prevKeys); - var currentKeyObjects = parseKeys(currentKeys); - - // Check prev keys to insert or keep - prevKeyObjects.forEach(function (keyObj) { - var hit = false; - - for (var i = currentIndex; i < currentLen; i += 1) { - var currentKeyObj = currentKeyObjects[i]; - if (currentKeyObj.key === keyObj.key) { - // New added keys should add before current key - if (currentIndex < i) { - list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) { - return _extends({}, obj, { status: STATUS_ADD }); - })); - currentIndex = i; - } - list.push(_extends({}, currentKeyObj, { - status: STATUS_KEEP - })); - currentIndex += 1; - - hit = true; - break; - } - } - - // If not hit, it means key is removed - if (!hit) { - list.push(_extends({}, keyObj, { - status: STATUS_REMOVE - })); - } - }); - - // Add rest to the list - if (currentIndex < currentLen) { - list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) { - return _extends({}, obj, { status: STATUS_ADD }); - })); - } - - /** - * Merge same key when it remove and add again: - * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep] - */ - var keys = {}; - list.forEach(function (_ref) { - var key = _ref.key; - - keys[key] = (keys[key] || 0) + 1; - }); - var duplicatedKeys = Object.keys(keys).filter(function (key) { - return keys[key] > 1; - }); - duplicatedKeys.forEach(function (matchKey) { - // Remove `STATUS_REMOVE` node. - list = list.filter(function (_ref2) { - var key = _ref2.key, - status = _ref2.status; - return key !== matchKey || status !== STATUS_REMOVE; - }); - - // Update `STATUS_ADD` to `STATUS_KEEP` - list.forEach(function (node) { - if (node.key === matchKey) { - node.status = STATUS_KEEP; - } - }); - }); - - return list; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/es/util/motion.js b/packages/client/node_modules/rc-animate/es/util/motion.js deleted file mode 100644 index 6b4f9de..0000000 --- a/packages/client/node_modules/rc-animate/es/util/motion.js +++ /dev/null @@ -1,83 +0,0 @@ -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -// ================= Transition ================= -// Event wrapper. Copy from react source code -function makePrefixMap(styleProp, eventName) { - var prefixes = {}; - - prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); - prefixes['Webkit' + styleProp] = 'webkit' + eventName; - prefixes['Moz' + styleProp] = 'moz' + eventName; - prefixes['ms' + styleProp] = 'MS' + eventName; - prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); - - return prefixes; -} - -export function getVendorPrefixes(domSupport, win) { - var prefixes = { - animationend: makePrefixMap('Animation', 'AnimationEnd'), - transitionend: makePrefixMap('Transition', 'TransitionEnd') - }; - - if (domSupport) { - if (!('AnimationEvent' in win)) { - delete prefixes.animationend.animation; - } - - if (!('TransitionEvent' in win)) { - delete prefixes.transitionend.transition; - } - } - - return prefixes; -} - -var vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {}); - -var style = {}; - -if (canUseDOM) { - style = document.createElement('div').style; -} - -var prefixedEventNames = {}; - -export function getVendorPrefixedEventName(eventName) { - if (prefixedEventNames[eventName]) { - return prefixedEventNames[eventName]; - } - - var prefixMap = vendorPrefixes[eventName]; - - if (prefixMap) { - var stylePropList = Object.keys(prefixMap); - var len = stylePropList.length; - for (var i = 0; i < len; i += 1) { - var styleProp = stylePropList[i]; - if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { - prefixedEventNames[eventName] = prefixMap[styleProp]; - return prefixedEventNames[eventName]; - } - } - } - - return ''; -} - -export var animationEndName = getVendorPrefixedEventName('animationend'); -export var transitionEndName = getVendorPrefixedEventName('transitionend'); -export var supportTransition = !!(animationEndName && transitionEndName); - -export function getTransitionName(transitionName, transitionType) { - if (!transitionName) return null; - - if (typeof transitionName === 'object') { - var type = transitionType.replace(/-\w/g, function (match) { - return match[1].toUpperCase(); - }); - return transitionName[type]; - } - - return transitionName + '-' + transitionType; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/Animate.js b/packages/client/node_modules/rc-animate/lib/Animate.js deleted file mode 100644 index dfa6819..0000000 --- a/packages/client/node_modules/rc-animate/lib/Animate.js +++ /dev/null @@ -1,361 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _unsafeLifecyclesPolyfill = require('rc-util/lib/unsafeLifecyclesPolyfill'); - -var _unsafeLifecyclesPolyfill2 = _interopRequireDefault(_unsafeLifecyclesPolyfill); - -var _ChildrenUtils = require('./ChildrenUtils'); - -var _AnimateChild = require('./AnimateChild'); - -var _AnimateChild2 = _interopRequireDefault(_AnimateChild); - -var _animate = require('./util/animate'); - -var _animate2 = _interopRequireDefault(_animate); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -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; } /* eslint react/prop-types: 0 */ - - -var defaultKey = 'rc_animate_' + Date.now(); - -function getChildrenFromProps(props) { - var children = props.children; - if (_react2['default'].isValidElement(children)) { - if (!children.key) { - return _react2['default'].cloneElement(children, { - key: defaultKey - }); - } - } - return children; -} - -function noop() {} - -var Animate = function (_React$Component) { - _inherits(Animate, _React$Component); - - function Animate(props) { - _classCallCheck(this, Animate); - - var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props)); - - _initialiseProps.call(_this); - - _this.currentlyAnimatingKeys = {}; - _this.keysToEnter = []; - _this.keysToLeave = []; - - _this.state = { - children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) - }; - - _this.childrenRefs = {}; - return _this; - } // eslint-disable-line - - _createClass(Animate, [{ - key: 'componentDidMount', - value: function componentDidMount() { - var _this2 = this; - - var showProp = this.props.showProp; - var children = this.state.children; - if (showProp) { - children = children.filter(function (child) { - return !!child.props[showProp]; - }); - } - children.forEach(function (child) { - if (child) { - _this2.performAppear(child.key); - } - }); - } - }, { - key: 'componentWillReceiveProps', - value: function componentWillReceiveProps(nextProps) { - var _this3 = this; - - this.nextProps = nextProps; - var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps)); - var props = this.props; - // exclusive needs immediate response - if (props.exclusive) { - Object.keys(this.currentlyAnimatingKeys).forEach(function (key) { - _this3.stop(key); - }); - } - var showProp = props.showProp; - var currentlyAnimatingKeys = this.currentlyAnimatingKeys; - // last props children if exclusive - var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children; - // in case destroy in showProp mode - var newChildren = []; - if (showProp) { - currentChildren.forEach(function (currentChild) { - var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key); - var newChild = void 0; - if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) { - newChild = _react2['default'].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true)); - } else { - newChild = nextChild; - } - if (newChild) { - newChildren.push(newChild); - } - }); - nextChildren.forEach(function (nextChild) { - if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) { - newChildren.push(nextChild); - } - }); - } else { - newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren); - } - - // need render to avoid update - this.setState({ - children: newChildren - }); - - nextChildren.forEach(function (child) { - var key = child && child.key; - if (child && currentlyAnimatingKeys[key]) { - return; - } - var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key); - if (showProp) { - var showInNext = child.props[showProp]; - if (hasPrev) { - var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp); - if (!showInNow && showInNext) { - _this3.keysToEnter.push(key); - } - } else if (showInNext) { - _this3.keysToEnter.push(key); - } - } else if (!hasPrev) { - _this3.keysToEnter.push(key); - } - }); - - currentChildren.forEach(function (child) { - var key = child && child.key; - if (child && currentlyAnimatingKeys[key]) { - return; - } - var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key); - if (showProp) { - var showInNow = child.props[showProp]; - if (hasNext) { - var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp); - if (!showInNext && showInNow) { - _this3.keysToLeave.push(key); - } - } else if (showInNow) { - _this3.keysToLeave.push(key); - } - } else if (!hasNext) { - _this3.keysToLeave.push(key); - } - }); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - var keysToEnter = this.keysToEnter; - this.keysToEnter = []; - keysToEnter.forEach(this.performEnter); - var keysToLeave = this.keysToLeave; - this.keysToLeave = []; - keysToLeave.forEach(this.performLeave); - } - }, { - key: 'isValidChildByKey', - value: function isValidChildByKey(currentChildren, key) { - var showProp = this.props.showProp; - if (showProp) { - return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp); - } - return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key); - } - }, { - key: 'stop', - value: function stop(key) { - delete this.currentlyAnimatingKeys[key]; - var component = this.childrenRefs[key]; - if (component) { - component.stop(); - } - } - }, { - key: 'render', - value: function render() { - var _this4 = this; - - var props = this.props; - this.nextProps = props; - var stateChildren = this.state.children; - var children = null; - if (stateChildren) { - children = stateChildren.map(function (child) { - if (child === null || child === undefined) { - return child; - } - if (!child.key) { - throw new Error('must set key for children'); - } - return _react2['default'].createElement( - _AnimateChild2['default'], - { - key: child.key, - ref: function ref(node) { - _this4.childrenRefs[child.key] = node; - }, - animation: props.animation, - transitionName: props.transitionName, - transitionEnter: props.transitionEnter, - transitionAppear: props.transitionAppear, - transitionLeave: props.transitionLeave - }, - child - ); - }); - } - var Component = props.component; - if (Component) { - var passedProps = props; - if (typeof Component === 'string') { - passedProps = _extends({ - className: props.className, - style: props.style - }, props.componentProps); - } - return _react2['default'].createElement( - Component, - passedProps, - children - ); - } - return children[0] || null; - } - }]); - - return Animate; -}(_react2['default'].Component); - -Animate.isAnimate = true; -Animate.defaultProps = { - animation: {}, - component: 'span', - componentProps: {}, - transitionEnter: true, - transitionLeave: true, - transitionAppear: false, - onEnd: noop, - onEnter: noop, - onLeave: noop, - onAppear: noop -}; - -var _initialiseProps = function _initialiseProps() { - var _this5 = this; - - this.performEnter = function (key) { - // may already remove by exclusive - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter')); - } - }; - - this.performAppear = function (key) { - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear')); - } - }; - - this.handleDoneAdding = function (key, type) { - var props = _this5.props; - delete _this5.currentlyAnimatingKeys[key]; - // if update on exclusive mode, skip check - if (props.exclusive && props !== _this5.nextProps) { - return; - } - var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)); - if (!_this5.isValidChildByKey(currentChildren, key)) { - // exclusive will not need this - _this5.performLeave(key); - } else if (type === 'appear') { - if (_animate2['default'].allowAppearCallback(props)) { - props.onAppear(key); - props.onEnd(key, true); - } - } else if (_animate2['default'].allowEnterCallback(props)) { - props.onEnter(key); - props.onEnd(key, true); - } - }; - - this.performLeave = function (key) { - // may already remove by exclusive - if (_this5.childrenRefs[key]) { - _this5.currentlyAnimatingKeys[key] = true; - _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key)); - } - }; - - this.handleDoneLeaving = function (key) { - var props = _this5.props; - delete _this5.currentlyAnimatingKeys[key]; - // if update on exclusive mode, skip check - if (props.exclusive && props !== _this5.nextProps) { - return; - } - var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)); - // in case state change is too fast - if (_this5.isValidChildByKey(currentChildren, key)) { - _this5.performEnter(key); - } else { - var end = function end() { - if (_animate2['default'].allowLeaveCallback(props)) { - props.onLeave(key); - props.onEnd(key, false); - } - }; - if (!(0, _ChildrenUtils.isSameChildren)(_this5.state.children, currentChildren, props.showProp)) { - _this5.setState({ - children: currentChildren - }, end); - } else { - end(); - } - } - }; -}; - -exports['default'] = (0, _unsafeLifecyclesPolyfill2['default'])(Animate); -module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/AnimateChild.js b/packages/client/node_modules/rc-animate/lib/AnimateChild.js deleted file mode 100644 index de6282a..0000000 --- a/packages/client/node_modules/rc-animate/lib/AnimateChild.js +++ /dev/null @@ -1,132 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _reactDom = require('react-dom'); - -var _reactDom2 = _interopRequireDefault(_reactDom); - -var _cssAnimation = require('@ant-design/css-animation'); - -var _cssAnimation2 = _interopRequireDefault(_cssAnimation); - -var _animate = require('./util/animate'); - -var _animate2 = _interopRequireDefault(_animate); - -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; } /* eslint react/prop-types: 0 */ - - -var transitionMap = { - enter: 'transitionEnter', - appear: 'transitionAppear', - leave: 'transitionLeave' -}; - -var AnimateChild = function (_React$Component) { - _inherits(AnimateChild, _React$Component); - - function AnimateChild() { - _classCallCheck(this, AnimateChild); - - return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments)); - } - - _createClass(AnimateChild, [{ - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this.stop(); - } - }, { - key: 'componentWillEnter', - value: function componentWillEnter(done) { - if (_animate2['default'].isEnterSupported(this.props)) { - this.transition('enter', done); - } else { - done(); - } - } - }, { - key: 'componentWillAppear', - value: function componentWillAppear(done) { - if (_animate2['default'].isAppearSupported(this.props)) { - this.transition('appear', done); - } else { - done(); - } - } - }, { - key: 'componentWillLeave', - value: function componentWillLeave(done) { - if (_animate2['default'].isLeaveSupported(this.props)) { - this.transition('leave', done); - } else { - // always sync, do not interupt with react component life cycle - // update hidden -> animate hidden -> - // didUpdate -> animate leave -> unmount (if animate is none) - done(); - } - } - }, { - key: 'transition', - value: function transition(animationType, finishCallback) { - var _this2 = this; - - var node = _reactDom2['default'].findDOMNode(this); - var props = this.props; - var transitionName = props.transitionName; - var nameIsObj = typeof transitionName === 'object'; - this.stop(); - var end = function end() { - _this2.stopper = null; - finishCallback(); - }; - if ((_cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) { - var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType; - var activeName = name + '-active'; - if (nameIsObj && transitionName[animationType + 'Active']) { - activeName = transitionName[animationType + 'Active']; - } - this.stopper = (0, _cssAnimation2['default'])(node, { - name: name, - active: activeName - }, end); - } else { - this.stopper = props.animation[animationType](node, end); - } - } - }, { - key: 'stop', - value: function stop() { - var stopper = this.stopper; - if (stopper) { - this.stopper = null; - stopper.stop(); - } - } - }, { - key: 'render', - value: function render() { - return this.props.children; - } - }]); - - return AnimateChild; -}(_react2['default'].Component); - -exports['default'] = AnimateChild; -module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/CSSMotion.js b/packages/client/node_modules/rc-animate/lib/CSSMotion.js deleted file mode 100644 index 5201000..0000000 --- a/packages/client/node_modules/rc-animate/lib/CSSMotion.js +++ /dev/null @@ -1,361 +0,0 @@ -'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; }; }(); - -exports.genCSSMotion = genCSSMotion; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _findDOMNode = require('rc-util/lib/Dom/findDOMNode'); - -var _findDOMNode2 = _interopRequireDefault(_findDOMNode); - -var _classnames = require('classnames'); - -var _classnames2 = _interopRequireDefault(_classnames); - -var _raf = require('raf'); - -var _raf2 = _interopRequireDefault(_raf); - -var _motion = require('./util/motion'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -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; } /* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */ - - -var STATUS_NONE = 'none'; -var STATUS_APPEAR = 'appear'; -var STATUS_ENTER = 'enter'; -var STATUS_LEAVE = 'leave'; - -/** - * `transitionSupport` is used for none transition test case. - * Default we use browser transition event support check. - */ -function genCSSMotion(config) { - var transitionSupport = config; - var forwardRef = !!_react2['default'].forwardRef; - - if (typeof config === 'object') { - transitionSupport = config.transitionSupport; - forwardRef = 'forwardRef' in config ? config.forwardRef : forwardRef; - } - - function isSupportTransition(props) { - return !!(props.motionName && transitionSupport); - } - - var CSSMotion = function (_React$Component) { - _inherits(CSSMotion, _React$Component); - - function CSSMotion() { - _classCallCheck(this, CSSMotion); - - var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); - - _this.onDomUpdate = function () { - var _this$state = _this.state, - status = _this$state.status, - newStatus = _this$state.newStatus; - var _this$props = _this.props, - onAppearStart = _this$props.onAppearStart, - onEnterStart = _this$props.onEnterStart, - onLeaveStart = _this$props.onLeaveStart, - onAppearActive = _this$props.onAppearActive, - onEnterActive = _this$props.onEnterActive, - onLeaveActive = _this$props.onLeaveActive, - motionAppear = _this$props.motionAppear, - motionEnter = _this$props.motionEnter, - motionLeave = _this$props.motionLeave; - - - if (!isSupportTransition(_this.props)) { - return; - } - - // Event injection - var $ele = _this.getElement(); - if (_this.$cacheEle !== $ele) { - _this.removeEventListener(_this.$cacheEle); - _this.addEventListener($ele); - _this.$cacheEle = $ele; - } - - // Init status - if (newStatus && status === STATUS_APPEAR && motionAppear) { - _this.updateStatus(onAppearStart, null, null, function () { - _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); - }); - } else if (newStatus && status === STATUS_ENTER && motionEnter) { - _this.updateStatus(onEnterStart, null, null, function () { - _this.updateActiveStatus(onEnterActive, STATUS_ENTER); - }); - } else if (newStatus && status === STATUS_LEAVE && motionLeave) { - _this.updateStatus(onLeaveStart, null, null, function () { - _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); - }); - } - }; - - _this.onMotionEnd = function (event) { - var _this$state2 = _this.state, - status = _this$state2.status, - statusActive = _this$state2.statusActive; - var _this$props2 = _this.props, - onAppearEnd = _this$props2.onAppearEnd, - onEnterEnd = _this$props2.onEnterEnd, - onLeaveEnd = _this$props2.onLeaveEnd; - - if (status === STATUS_APPEAR && statusActive) { - _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_ENTER && statusActive) { - _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_LEAVE && statusActive) { - _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); - } - }; - - _this.setNodeRef = function (node) { - var internalRef = _this.props.internalRef; - - _this.node = node; - - if (typeof internalRef === 'function') { - internalRef(node); - } else if (internalRef && 'current' in internalRef) { - internalRef.current = node; - } - }; - - _this.getElement = function () { - try { - return (0, _findDOMNode2['default'])(_this.node || _this); - } catch (e) { - /** - * Fallback to cache element. - * This is only happen when `motionDeadline` trigger but element removed. - */ - return _this.$cacheEle; - } - }; - - _this.addEventListener = function ($ele) { - if (!$ele) return; - - $ele.addEventListener(_motion.transitionEndName, _this.onMotionEnd); - $ele.addEventListener(_motion.animationEndName, _this.onMotionEnd); - }; - - _this.removeEventListener = function ($ele) { - if (!$ele) return; - - $ele.removeEventListener(_motion.transitionEndName, _this.onMotionEnd); - $ele.removeEventListener(_motion.animationEndName, _this.onMotionEnd); - }; - - _this.updateStatus = function (styleFunc, additionalState, event, callback) { - var statusStyle = styleFunc ? styleFunc(_this.getElement(), event) : null; - - if (statusStyle === false || _this._destroyed) return; - - var nextStep = void 0; - if (callback) { - nextStep = function nextStep() { - _this.nextFrame(callback); - }; - } - - _this.setState(_extends({ - statusStyle: typeof statusStyle === 'object' ? statusStyle : null, - newStatus: false - }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` - }; - - _this.updateActiveStatus = function (styleFunc, currentStatus) { - // `setState` use `postMessage` to trigger at the end of frame. - // Let's use requestAnimationFrame to update new state in next frame. - _this.nextFrame(function () { - var status = _this.state.status; - - if (status !== currentStatus) return; - - var motionDeadline = _this.props.motionDeadline; - - - _this.updateStatus(styleFunc, { statusActive: true }); - - if (motionDeadline > 0) { - _this.timer = setTimeout(function () { - _this.onMotionEnd({ - deadline: true - }); - }, motionDeadline); - } - }); - }; - - _this.nextFrame = function (func) { - _this.cancelNextFrame(); - _this.raf = (0, _raf2['default'])(func); - }; - - _this.cancelNextFrame = function () { - if (_this.raf) { - _raf2['default'].cancel(_this.raf); - _this.raf = null; - } - }; - - _this.state = { - status: STATUS_NONE, - statusActive: false, - newStatus: false, - statusStyle: null - }; - _this.$cacheEle = null; - _this.node = null; - _this.raf = null; - return _this; - } - - _createClass(CSSMotion, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.onDomUpdate(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.onDomUpdate(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this._destroyed = true; - this.removeEventListener(this.$cacheEle); - this.cancelNextFrame(); - clearTimeout(this.timer); - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _state = this.state, - status = _state.status, - statusActive = _state.statusActive, - statusStyle = _state.statusStyle; - var _props = this.props, - children = _props.children, - motionName = _props.motionName, - visible = _props.visible, - removeOnLeave = _props.removeOnLeave, - leavedClassName = _props.leavedClassName, - eventProps = _props.eventProps; - - - if (!children) return null; - - if (status === STATUS_NONE || !isSupportTransition(this.props)) { - if (visible) { - return children(_extends({}, eventProps), this.setNodeRef); - } else if (!removeOnLeave) { - return children(_extends({}, eventProps, { className: leavedClassName }), this.setNodeRef); - } - - return null; - } - - return children(_extends({}, eventProps, { - className: (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, (0, _motion.getTransitionName)(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, (0, _motion.getTransitionName)(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)), - style: statusStyle - }), this.setNodeRef); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(props, _ref) { - var prevProps = _ref.prevProps, - prevStatus = _ref.status; - - if (!isSupportTransition(props)) return {}; - - var visible = props.visible, - motionAppear = props.motionAppear, - motionEnter = props.motionEnter, - motionLeave = props.motionLeave, - motionLeaveImmediately = props.motionLeaveImmediately; - - var newState = { - prevProps: props - }; - - // Clean up status if prop set to false - if (prevStatus === STATUS_APPEAR && !motionAppear || prevStatus === STATUS_ENTER && !motionEnter || prevStatus === STATUS_LEAVE && !motionLeave) { - newState.status = STATUS_NONE; - newState.statusActive = false; - newState.newStatus = false; - } - - // Appear - if (!prevProps && visible && motionAppear) { - newState.status = STATUS_APPEAR; - newState.statusActive = false; - newState.newStatus = true; - } - - // Enter - if (prevProps && !prevProps.visible && visible && motionEnter) { - newState.status = STATUS_ENTER; - newState.statusActive = false; - newState.newStatus = true; - } - - // Leave - if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { - newState.status = STATUS_LEAVE; - newState.statusActive = false; - newState.newStatus = true; - } - - return newState; - } - }]); - - return CSSMotion; - }(_react2['default'].Component); - - CSSMotion.defaultProps = { - visible: true, - motionEnter: true, - motionAppear: true, - motionLeave: true, - removeOnLeave: true - }; - - - if (!forwardRef) { - return CSSMotion; - } - - return _react2['default'].forwardRef(function (props, ref) { - return _react2['default'].createElement(CSSMotion, _extends({ internalRef: ref }, props)); - }); -} - -exports['default'] = genCSSMotion(_motion.supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/CSSMotionList.js b/packages/client/node_modules/rc-animate/lib/CSSMotionList.js deleted file mode 100644 index 0867565..0000000 --- a/packages/client/node_modules/rc-animate/lib/CSSMotionList.js +++ /dev/null @@ -1,172 +0,0 @@ -'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; }; }(); - -exports.genCSSMotionList = genCSSMotionList; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -var _CSSMotion = require('./CSSMotion'); - -var _CSSMotion2 = _interopRequireDefault(_CSSMotion); - -var _motion = require('./util/motion'); - -var _diff = require('./util/diff'); - -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; } /* eslint react/prop-types: 0 */ - - -var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd']; - -function genCSSMotionList(transitionSupport) { - var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _CSSMotion2['default']; - - var CSSMotionList = function (_React$Component) { - _inherits(CSSMotionList, _React$Component); - - function CSSMotionList() { - var _ref; - - var _temp, _this, _ret; - - _classCallCheck(this, CSSMotionList); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CSSMotionList.__proto__ || Object.getPrototypeOf(CSSMotionList)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - keyEntities: [] - }, _this.removeKey = function (removeKey) { - _this.setState(function (_ref2) { - var keyEntities = _ref2.keyEntities; - return { - keyEntities: keyEntities.map(function (entity) { - if (entity.key !== removeKey) return entity; - return _extends({}, entity, { - status: _diff.STATUS_REMOVED - }); - }) - }; - }); - }, _temp), _possibleConstructorReturn(_this, _ret); - } - - _createClass(CSSMotionList, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var keyEntities = this.state.keyEntities; - - var _props = this.props, - component = _props.component, - children = _props.children, - restProps = _objectWithoutProperties(_props, ['component', 'children']); - - var Component = component || _react2['default'].Fragment; - - var motionProps = {}; - MOTION_PROP_NAMES.forEach(function (prop) { - motionProps[prop] = restProps[prop]; - delete restProps[prop]; - }); - delete restProps.keys; - - return _react2['default'].createElement( - Component, - restProps, - keyEntities.map(function (_ref3) { - var status = _ref3.status, - eventProps = _objectWithoutProperties(_ref3, ['status']); - - var visible = status === _diff.STATUS_ADD || status === _diff.STATUS_KEEP; - return _react2['default'].createElement( - CSSMotion, - _extends({}, motionProps, { - key: eventProps.key, - visible: visible, - eventProps: eventProps, - onLeaveEnd: function onLeaveEnd() { - if (motionProps.onLeaveEnd) { - motionProps.onLeaveEnd.apply(motionProps, arguments); - } - _this2.removeKey(eventProps.key); - } - }), - children - ); - }) - ); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(_ref4, _ref5) { - var keys = _ref4.keys; - var keyEntities = _ref5.keyEntities; - - var parsedKeyObjects = (0, _diff.parseKeys)(keys); - - // Always as keep when motion not support - if (!transitionSupport) { - return { - keyEntities: parsedKeyObjects.map(function (obj) { - return _extends({}, obj, { status: _diff.STATUS_KEEP }); - }) - }; - } - - var mixedKeyEntities = (0, _diff.diffKeys)(keyEntities, parsedKeyObjects); - - var keyEntitiesLen = keyEntities.length; - return { - keyEntities: mixedKeyEntities.filter(function (entity) { - // IE 9 not support Array.prototype.find - var prevEntity = null; - for (var i = 0; i < keyEntitiesLen; i += 1) { - var currentEntity = keyEntities[i]; - if (currentEntity.key === entity.key) { - prevEntity = currentEntity; - break; - } - } - - // Remove if already mark as removed - if (prevEntity && prevEntity.status === _diff.STATUS_REMOVED && entity.status === _diff.STATUS_REMOVE) { - return false; - } - return true; - }) - }; - } - }]); - - return CSSMotionList; - }(_react2['default'].Component); - - CSSMotionList.defaultProps = { - component: 'div' - }; - - - return CSSMotionList; -} - -exports['default'] = genCSSMotionList(_motion.supportTransition); \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js b/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js deleted file mode 100644 index 8862307..0000000 --- a/packages/client/node_modules/rc-animate/lib/ChildrenUtils.js +++ /dev/null @@ -1,117 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.toArrayChildren = toArrayChildren; -exports.findChildInChildrenByKey = findChildInChildrenByKey; -exports.findShownChildInChildrenByKey = findShownChildInChildrenByKey; -exports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey; -exports.isSameChildren = isSameChildren; -exports.mergeChildren = mergeChildren; - -var _react = require('react'); - -var _react2 = _interopRequireDefault(_react); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function toArrayChildren(children) { - var ret = []; - _react2['default'].Children.forEach(children, function (child) { - ret.push(child); - }); - return ret; -} - -function findChildInChildrenByKey(children, key) { - var ret = null; - if (children) { - children.forEach(function (child) { - if (ret) { - return; - } - if (child && child.key === key) { - ret = child; - } - }); - } - return ret; -} - -function findShownChildInChildrenByKey(children, key, showProp) { - var ret = null; - if (children) { - children.forEach(function (child) { - if (child && child.key === key && child.props[showProp]) { - if (ret) { - throw new Error('two child with same key for children'); - } - ret = child; - } - }); - } - return ret; -} - -function findHiddenChildInChildrenByKey(children, key, showProp) { - var found = 0; - if (children) { - children.forEach(function (child) { - if (found) { - return; - } - found = child && child.key === key && !child.props[showProp]; - }); - } - return found; -} - -function isSameChildren(c1, c2, showProp) { - var same = c1.length === c2.length; - if (same) { - c1.forEach(function (child, index) { - var child2 = c2[index]; - if (child && child2) { - if (child && !child2 || !child && child2) { - same = false; - } else if (child.key !== child2.key) { - same = false; - } else if (showProp && child.props[showProp] !== child2.props[showProp]) { - same = false; - } - } - }); - } - return same; -} - -function mergeChildren(prev, next) { - var ret = []; - - // For each key of `next`, the list of keys to insert before that key in - // the combined list - var nextChildrenPending = {}; - var pendingChildren = []; - prev.forEach(function (child) { - if (child && findChildInChildrenByKey(next, child.key)) { - if (pendingChildren.length) { - nextChildrenPending[child.key] = pendingChildren; - pendingChildren = []; - } - } else { - pendingChildren.push(child); - } - }); - - next.forEach(function (child) { - if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) { - ret = ret.concat(nextChildrenPending[child.key]); - } - ret.push(child); - }); - - ret = ret.concat(pendingChildren); - - return ret; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/animate.js b/packages/client/node_modules/rc-animate/lib/util/animate.js deleted file mode 100644 index 42a613e..0000000 --- a/packages/client/node_modules/rc-animate/lib/util/animate.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var util = { - isAppearSupported: function isAppearSupported(props) { - return props.transitionName && props.transitionAppear || props.animation.appear; - }, - isEnterSupported: function isEnterSupported(props) { - return props.transitionName && props.transitionEnter || props.animation.enter; - }, - isLeaveSupported: function isLeaveSupported(props) { - return props.transitionName && props.transitionLeave || props.animation.leave; - }, - allowAppearCallback: function allowAppearCallback(props) { - return props.transitionAppear || props.animation.appear; - }, - allowEnterCallback: function allowEnterCallback(props) { - return props.transitionEnter || props.animation.enter; - }, - allowLeaveCallback: function allowLeaveCallback(props) { - return props.transitionLeave || props.animation.leave; - } -}; -exports["default"] = util; -module.exports = exports['default']; \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/diff.js b/packages/client/node_modules/rc-animate/lib/util/diff.js deleted file mode 100644 index 8cda9a4..0000000 --- a/packages/client/node_modules/rc-animate/lib/util/diff.js +++ /dev/null @@ -1,115 +0,0 @@ -'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.wrapKeyToObject = wrapKeyToObject; -exports.parseKeys = parseKeys; -exports.diffKeys = diffKeys; -var STATUS_ADD = exports.STATUS_ADD = 'add'; -var STATUS_KEEP = exports.STATUS_KEEP = 'keep'; -var STATUS_REMOVE = exports.STATUS_REMOVE = 'remove'; -var STATUS_REMOVED = exports.STATUS_REMOVED = 'removed'; - -function wrapKeyToObject(key) { - var keyObj = void 0; - if (key && typeof key === 'object' && 'key' in key) { - keyObj = key; - } else { - keyObj = { key: key }; - } - return _extends({}, keyObj, { - key: String(keyObj.key) - }); -} - -function parseKeys() { - var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - - return keys.map(wrapKeyToObject); -} - -function diffKeys() { - var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - - var list = []; - var currentIndex = 0; - var currentLen = currentKeys.length; - - var prevKeyObjects = parseKeys(prevKeys); - var currentKeyObjects = parseKeys(currentKeys); - - // Check prev keys to insert or keep - prevKeyObjects.forEach(function (keyObj) { - var hit = false; - - for (var i = currentIndex; i < currentLen; i += 1) { - var currentKeyObj = currentKeyObjects[i]; - if (currentKeyObj.key === keyObj.key) { - // New added keys should add before current key - if (currentIndex < i) { - list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) { - return _extends({}, obj, { status: STATUS_ADD }); - })); - currentIndex = i; - } - list.push(_extends({}, currentKeyObj, { - status: STATUS_KEEP - })); - currentIndex += 1; - - hit = true; - break; - } - } - - // If not hit, it means key is removed - if (!hit) { - list.push(_extends({}, keyObj, { - status: STATUS_REMOVE - })); - } - }); - - // Add rest to the list - if (currentIndex < currentLen) { - list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) { - return _extends({}, obj, { status: STATUS_ADD }); - })); - } - - /** - * Merge same key when it remove and add again: - * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep] - */ - var keys = {}; - list.forEach(function (_ref) { - var key = _ref.key; - - keys[key] = (keys[key] || 0) + 1; - }); - var duplicatedKeys = Object.keys(keys).filter(function (key) { - return keys[key] > 1; - }); - duplicatedKeys.forEach(function (matchKey) { - // Remove `STATUS_REMOVE` node. - list = list.filter(function (_ref2) { - var key = _ref2.key, - status = _ref2.status; - return key !== matchKey || status !== STATUS_REMOVE; - }); - - // Update `STATUS_ADD` to `STATUS_KEEP` - list.forEach(function (node) { - if (node.key === matchKey) { - node.status = STATUS_KEEP; - } - }); - }); - - return list; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/lib/util/motion.js b/packages/client/node_modules/rc-animate/lib/util/motion.js deleted file mode 100644 index 5d64269..0000000 --- a/packages/client/node_modules/rc-animate/lib/util/motion.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getVendorPrefixes = getVendorPrefixes; -exports.getVendorPrefixedEventName = getVendorPrefixedEventName; -exports.getTransitionName = getTransitionName; -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -// ================= Transition ================= -// Event wrapper. Copy from react source code -function makePrefixMap(styleProp, eventName) { - var prefixes = {}; - - prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); - prefixes['Webkit' + styleProp] = 'webkit' + eventName; - prefixes['Moz' + styleProp] = 'moz' + eventName; - prefixes['ms' + styleProp] = 'MS' + eventName; - prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); - - return prefixes; -} - -function getVendorPrefixes(domSupport, win) { - var prefixes = { - animationend: makePrefixMap('Animation', 'AnimationEnd'), - transitionend: makePrefixMap('Transition', 'TransitionEnd') - }; - - if (domSupport) { - if (!('AnimationEvent' in win)) { - delete prefixes.animationend.animation; - } - - if (!('TransitionEvent' in win)) { - delete prefixes.transitionend.transition; - } - } - - return prefixes; -} - -var vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {}); - -var style = {}; - -if (canUseDOM) { - style = document.createElement('div').style; -} - -var prefixedEventNames = {}; - -function getVendorPrefixedEventName(eventName) { - if (prefixedEventNames[eventName]) { - return prefixedEventNames[eventName]; - } - - var prefixMap = vendorPrefixes[eventName]; - - if (prefixMap) { - var stylePropList = Object.keys(prefixMap); - var len = stylePropList.length; - for (var i = 0; i < len; i += 1) { - var styleProp = stylePropList[i]; - if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { - prefixedEventNames[eventName] = prefixMap[styleProp]; - return prefixedEventNames[eventName]; - } - } - } - - return ''; -} - -var animationEndName = exports.animationEndName = getVendorPrefixedEventName('animationend'); -var transitionEndName = exports.transitionEndName = getVendorPrefixedEventName('transitionend'); -var supportTransition = exports.supportTransition = !!(animationEndName && transitionEndName); - -function getTransitionName(transitionName, transitionType) { - if (!transitionName) return null; - - if (typeof transitionName === 'object') { - var type = transitionType.replace(/-\w/g, function (match) { - return match[1].toUpperCase(); - }); - return transitionName[type]; - } - - return transitionName + '-' + transitionType; -} \ No newline at end of file diff --git a/packages/client/node_modules/rc-animate/package.json b/packages/client/node_modules/rc-animate/package.json deleted file mode 100644 index 2dae9fa..0000000 --- a/packages/client/node_modules/rc-animate/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "rc-animate", - "version": "3.1.1", - "description": "css-transition ui component for react", - "keywords": [ - "react", - "react-component", - "react-animate", - "animate" - ], - "files": [ - "es", - "lib" - ], - "homepage": "https://github.com/react-component/animate", - "author": "", - "repository": { - "type": "git", - "url": "git@github.com:react-component/animate.git" - }, - "bugs": { - "url": "http://github.com/react-component/animate/issues" - }, - "license": "MIT", - "main": "./lib/Animate", - "module": "./es/Animate", - "config": { - "port": 8201 - }, - "scripts": { - "build": "rc-tools run build", - "gh-pages": "rc-tools run gh-pages", - "start": "rc-tools run server", - "pub": "rc-tools run pub", - "lint": "rc-tools run lint", - "karma": "rc-test run karma", - "saucelabs": "rc-test run saucelabs", - "test": "rc-test run test", - "chrome-test": "rc-test run chrome-test", - "coverage": "rc-test run coverage", - "prepublish": "rc-tools run guard", - "now-build": "npm run build" - }, - "devDependencies": { - "core-js": "^2.5.1", - "expect.js": "0.3.x", - "jquery": "^3.3.1", - "pre-commit": "1.x", - "rc-test": "6.x", - "rc-tools": "8.x", - "react": "^16.0.0", - "react-dom": "^16.0.0", - "velocity-animate": "~1.2.2" - }, - "pre-commit": [ - "lint" - ], - "dependencies": { - "classnames": "^2.2.6", - "@ant-design/css-animation": "^1.7.2", - "raf": "^3.4.0", - "rc-util": "^4.15.3" - } -} diff --git a/packages/client/node_modules/rc-tree/HISTORY.md b/packages/client/node_modules/rc-tree/HISTORY.md deleted file mode 100644 index 5b05899..0000000 --- a/packages/client/node_modules/rc-tree/HISTORY.md +++ /dev/null @@ -1,70 +0,0 @@ -# History ---- - -## 1.11.5 / 2018-04-19 -- add `onClick` & `onDoubleClick` for node click event -- add related className in treeNode -- fix drag into another tree will throw exception - -## 1.10.0 / 2018-04-17 -- `onCheck` arguments provide nativeEvent -- `onSelect` arguments provide nativeEvent -- `onExpand` arguments provide nativeEvent - -## 1.9.0 / 2018-04-09 -- adjust `dragable` logic to make drag more smooth -- fix `loadData` trigger twice when expand node -- add `icon` prop on `Tree` -- fix check by prop not work on `disabled` node - - -## 1.8.0 / 2018-03-29 -- code refactor and optimize logic -- add `disabled` API -- add `icon` API - -## 1.4.0 / 2016-10-24 -- add `onDragEnd` API and fix related issues. - -## 1.3.0 / 2016-04-15 -- make `autoExpandParent` also work in controlled mode.(Before just work in uncontrolled mode) -- change `onExpand` params - - old: function(node, expanded, expandedKeys) - - new: function(expandedKeys, {expanded: bool, node}) - -## 1.2.1 / 2016-04-08 -- remove `halfCheckedKeys` api, and change `checkedKeys` to an object on setting `checkStrictly`. - -## 1.2.0 / 2016-04-06 -- improve performance. -- add `checkStrictly`/`halfCheckedKeys` api. - -## 1.1.0 / 2016-01-25 -- change `onDrop` params (from `originExpandedKeys` to `rawExpandedKeys`) - -## 1.0.x / 2016-01-15 -- change `onSelect`/`onCheck` params - -## 0.26.x / 2016-01-13 -- change drag api (from `onTreeXX` to `onXX`) - -## 0.23.x / 2015-12-31 -- change `onDataLoaded` api to `loadData` - -## 0.22.x / 2015-12-30 -- add `expandedKeys`/`onExpand`/`filterTreeNode` api - -## 0.21.x / 2015-12-25 -- add `onMouseEnter`/`onMouseLeave` api - -## 0.20.0 / 2015-12-01 -- add draggable feature #5 - -## 0.18.0 / 2015-10-23 -- add contextmenu feature #5 - -## 0.17.0 / 2015-10-14 -- add dynamic feature #4 - -## 0.9.5 / 2015-05-26 -- support checkbox diff --git a/packages/client/node_modules/rc-tree/LICENSE.md b/packages/client/node_modules/rc-tree/LICENSE.md deleted file mode 100644 index 12189b6..0000000 --- a/packages/client/node_modules/rc-tree/LICENSE.md +++ /dev/null @@ -1,22 +0,0 @@ -MIT LICENSE - -Copyright (c) 2015-present Alipay.com, https://www.alipay.com/ - -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. diff --git a/packages/client/node_modules/rc-tree/README.md b/packages/client/node_modules/rc-tree/README.md deleted file mode 100644 index c7a7737..0000000 --- a/packages/client/node_modules/rc-tree/README.md +++ /dev/null @@ -1,143 +0,0 @@ -# rc-tree ---- - -tree ui component for react - -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][codecov-image]][codecov-url] -[![gemnasium deps][gemnasium-image]][gemnasium-url] -[![npm download][download-image]][download-url] - -[npm-image]: http://img.shields.io/npm/v/rc-tree.svg?style=flat-square -[npm-url]: http://npmjs.org/package/rc-tree -[travis-image]: https://img.shields.io/travis/react-component/tree.svg?style=flat-square -[travis-url]: https://travis-ci.org/react-component/tree -[codecov-image]: https://img.shields.io/codecov/c/github/react-component/tree/master.svg?style=flat-square -[codecov-url]: https://codecov.io/gh/react-component/tree/branch/master -[gemnasium-image]: http://img.shields.io/gemnasium/react-component/tree.svg?style=flat-square -[gemnasium-url]: https://gemnasium.com/react-component/tree -[node-image]: https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square -[node-url]: http://nodejs.org/download/ -[download-image]: https://img.shields.io/npm/dm/rc-tree.svg?style=flat-square -[download-url]: https://npmjs.org/package/rc-tree - -## Screenshots - - - - -## Feature - -* Support all popular browsers, including Internet Explorer 9 and above. - - -## Example - -http://localhost:8018/examples/ - -online example: http://react-component.github.io/tree/examples/ - - -## install - -[![rc-tree](https://nodei.co/npm/rc-tree.png)](https://npmjs.org/package/rc-tree) - -## Usage - -see examples - -## API - -### Tree props - -| name | description | type | default | -|----------|----------------|----------|--------------| -| autoExpandParent | whether auto expand parent treeNodes | bool | false | -| checkable | whether support checked | bool/React Node | false | -| checkedKeys | Controlled checked treeNodes(After setting, defaultCheckedKeys will not work). Note: parent and children nodes are associated, if the parent node's key exists, it all children node will be checked, and vice versa. When set checkable and checkStrictly, it should be an object, which contains checked array and halfChecked array. | String[]/{checked:Array,halfChecked:Array} | [] | -| checkStrictly| check node precisely, parent and children nodes are not associated| bool | false | -| className | additional css class of root dom node | String | '' | -| defaultCheckedKeys | default checked treeNodes | String[] | [] | -| defaultExpandedKeys | expand specific treeNodes | String[] | - | -| defaultExpandAll | expand all treeNodes | bool | false | -| defaultExpandParent | auto expand parent treeNodes when init | bool | true | -| defaultSelectedKeys | default selected treeNodes | String[] | [] | -| disabled | whether disabled the tree | bool | false | -| draggable | whether can drag treeNode. (drag events are not supported in Internet Explorer 8 and earlier versions or Safari 5.1 and earlier versions.) | bool | false | -| expandedKeys | Controlled expand specific treeNodes | String[] | - | -| filterTreeNode | filter some treeNodes as you need. it should return true | function(node) | - | -| icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | element/Function(props) | - | -| loadedKeys | Mark node is loaded when `loadData` is true | string[] | - | -| loadData | load data asynchronously and the return value should be a promise | function(node) | - | -| multiple | whether multiple select | bool | false | -| prefixCls | prefix class | String | 'rc-tree' | -| selectable | whether can be selected | bool | true | -| selectedKeys | Controlled selected treeNodes(After setting, defaultSelectedKeys will not work) | String[] | [] | -| showIcon | whether show icon | bool | true | -| showLine | whether show line | bool | false | -| treeData | treeNodes data Array, if set it then you need not to construct children TreeNode. (value should be unique across the whole array) | array<{key,title,children, [disabled, selectable]}> | - | -| onCheck | click the treeNode/checkbox to fire | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, nativeEvent}) | - | -| onExpand | fire on treeNode expand or not | function(expandedKeys, {expanded: bool, node, nativeEvent}) | - | -| onDragEnd | it execs when fire the tree's dragend event | function({event,node}) | - | -| onDragEnter | it execs when fire the tree's dragenter event | function({event,node,expandedKeys}) | - | -| onDragLeave | it execs when fire the tree's dragleave event | function({event,node}) | - | -| onDragOver | it execs when fire the tree's dragover event | function({event,node}) | - | -| onDragStart | it execs when fire the tree's dragstart event | function({event,node}) | - | -| onDrop | it execs when fire the tree's drop event | function({event, node, dragNode, dragNodesKeys}) | - | -| onLoad | Trigger when a node is loaded. If you set the `loadedKeys`, you must handle `onLoad` to avoid infinity loop | function(loadedKeys, {event, node}) | - | -| onMouseEnter | call when mouse enter a treeNode | function({event,node}) | - | -| onMouseLeave | call when mouse leave a treeNode | function({event,node}) | - | -| onRightClick | select current treeNode and show customized contextmenu | function({event,node}) | - | -| onSelect | click the treeNode to fire | function(selectedKeys, e:{selected: bool, selectedNodes, node, event, nativeEvent}) | - | -| switcherIcon | specific the switcher icon. | ReactNode / (props: TreeNodeAttribute) => ReactNode | - | - -### TreeNode props -> note: if you have a lot of TreeNode, like more than 1000, -> make the parent node is collapsed by default, will obvious effect, very fast. -> Because the children hide TreeNode will not insert into dom. - -| name | description | type | default | -|----------|----------------|----------|--------------| -|className | additional class to treeNode | String | '' | -|style | set style to treeNode | Object | '' | -|disabled | whether disabled the treeNode | bool | false | -|disableCheckbox | whether disable the treeNode' checkbox | bool | false | -|title | tree/subTree's title | String/element | '---' | -|key | it's used with tree props's (default)ExpandedKeys / (default)CheckedKeys / (default)SelectedKeys. you'd better to set it, and it must be unique in the tree's all treeNodes | String | treeNode's position | -|isLeaf | whether it's leaf node | bool | false | -|icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | element/Function(props) | - | -| switcherIcon | specific the switcher icon. | ReactNode / (props: TreeNodeAttribute) => ReactNode | - | - -## note - -The number of treeNodes can be very large, but when enable `checkable`, -it will spend more computing time, so we cached some calculations(e.g. `this.treeNodesStates`), -to avoid double computing. But, this bring some restrictions, -**when you async load treeNodes, you should render tree like this** -`{this.state.treeData.length ? {this.state.treeData.map(t => )} : 'loading tree'}` - - -## Development - -``` -npm install -npm start -``` - -## Test Case - -http://localhost:8018/tests/runner.html?coverage - -## Coverage - -http://localhost:8018/node_modules/rc-server/node_modules/node-jscover/lib/front-end/jscoverage.html?w=http://localhost:8018/tests/runner.html?coverage - -## License -rc-tree is released under the MIT license. - -## other tree view -- [ztree](http://www.ztree.me/) -- [jqTree](http://mbraak.github.io/jqTree/) -- [jquery.treeselect](http://travistidwell.com/jquery.treeselect.js/) -- [angular Select Tree](http://a5hik.github.io/angular-multi-select-tree/) diff --git a/packages/client/node_modules/rc-tree/assets/icons.png b/packages/client/node_modules/rc-tree/assets/icons.png deleted file mode 100644 index b745907fd497f594d3573fa9e3fa6aac72392b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9968 zcmZ{KWmFtZ(C#j7iv(W+1Pc<}gS)!~f&_PmB?MnIxCBCQ4ek~!I3&0`1Pd12UGDIH z-~Dla+_O8=Gu74I)m2Y*SJ#CAX$kk zi-SPbv6%NJ$iVw6GdT@q5XkE_2m}uXfo=g3dG_x4T9^O=(XGo%iEDjYILPoc(6m~FrIr?x?uC#`OEKVf$AraIv5CJ&?jjO1=%8gti}yu$ZuJlD zN#8)i?=;j)z&)Nbac0l>bcT`-i!evEmM7u15LyGVgPq%WmbCsF9Iln zX^B_G&1x5#B-bYQHu0ZX8=Sr|!mb>VOG=nro*oUudaq87b4VbN`Zzi0*c5FJh@T|O z0KJJYxp9e9ANz(XE-h5Q!HJ4n1d&K~?wJVG)v-fn3W-}Wl79_wG8jX-Fq3~3BP;!_ z@XNn!x6JloMW)U-qqA!6R2YG6DU6&?eNF#o_@Hp$KP+}*zyr!cQCC#NXMs0gZ{V`5 z>>+?)iYzJh3_fR~&_1zQA zQ6Sv7@h>rdCzoKbB&|1%3 z*ffv#%8G|aM_LkH46*HEoAX*j2u`9y3R93>n(#0`vZ&sm$q6{Us`|q9#~9*46iAT~ z>=cVH)berNXI902@BLYM>$(A49_o0?=j~peJ>G z{XCQvsrGQ&HULmau9J1QKO4(5%G^xGZvpA5e@-Di$vp`^zT_tSz$a|uJE|D}({#@J zm$epcB}uzXM(U98&Oz9iJWq-@0Z%Q9NNw@iJo@)^MCwaKJZ#mzJfUTr@9B~mqblb5 zK9+g+!uPm0;n8+$MA!9#-Fcp5Dtufn%_+rI16khOPC-U3Tn3m8tDpN+?Fm4(m|0p2 z%3!s_gzf@#5sQ_?uN95%cS-NEW|tO18Q&P%_&%l8kep3E#f<)q;uv?LF33z%+VlQU za}@;!ouA8%PtOPZn0YPar}a5hkIFWSCI{EmHI#p3Xw$4DWs{n7j{cqSZV!*HUD%k&KaeY_LYUQWU@S zQB{WZ#w|qm2WS-YM(MBP=8=i?(79uKa}Ynn0vd5VBR4rKwdP9#hhU>_sFLgX>O+qMm!=Hj^Gc zFor8ZFt$Xr@ee8c^>tmbCTRmQ`NcL&!(xdD1MYibHFoF_dWo4f=4X7UcjUPezhu%evATH? zvhn%U4*P5As(KUVYm-Tg|FFdb4?5|eJ)5C8mK<_#lL_N}X+Bwji2dv8r;OMpUL!khA-R@w5wYpg+bP!Qa{;%1MYEUx1Pk09 zi0;Nd!IR+RxEWT|_Pw$r11sHKZusfsZc1w!)uc1hE2jG6683NOijD`e^oe~jzeNl? z4{`K9^AG}nkAD`b_|RH63ro`A9b>BgVqCI5_Tr>Y-2(df^i>_6GdqAA8p`SjSIsyN zns@(;oUW>)aUZ946(+2^59(*+63d(VqrHERC5uGuB2v4bB!+W(6SEA5*ZgxH%NQv> zQzEQ*u`W|>7!C+zQ+aw2dZ4JF?;GowBSfYdb?Kaqyx5JLm;L#I+Cj#1j(>m4}17{l)Fm{hYb^P!lJE6o)D3Lf9oyt6FTa>=>qId zQ_PnG4L!?4)4IJG0iG3qm(Zxp7zC-4 zfvvJ^L+Q82a>5bGf!Ak^AcR*G#Gq(WF$bYrDU+R+?dW9;k8=!zam{@=MH~5dKGHZ# zhl1zLdbc&be36mXbtJdGhdf-zz}Rios{9b_egU~ayRMlfRf2}%nu?)$Cg5_$<8qc8 z;olieGC|JjpmjDR4ph5s)u9-xuY6p?c=Rf>b?Kb*Jf#MiV4yTMxpq*Lb-3l5$#^u>OSHy&7JKx`vn6?ZKOG z&uLaWI4_yik^-u&z>{;eucqf}vrCPNA1X;1vIMnw`tDw@vOVCi9`uw4rL-_kMNkkx-c3+S-?M3F$}Eu?o^k%g?YhiU%xo0F6ecoi z8{ki>E75U8wMvCVR1<=6BaEagVGIzXMz-INgXMJo>V8$Cc&Hqoesz?_&v=-RvV^a4 zOJs=tlnr9If+UBkpC|)i+02WS%BJclqK>WG7ce^C$lpuIiQG{&v8)iu?a6I0>Ifp# zn~22cuotxyEUv zh`TQs#_dko+)*V?8JL&=62<_mT$Zrk;#KVnHNSWaXpDS4g{Rj4pYkAAc*pP0;8_{{ zKju?3KD%jmJaTsAoTGob8!U<))dmY{?jFyl*eg(|)rT(8`!l1aR-gdkqdZ6COKYcw zH;0Nam-cMXbx+}2NZu}{JS%)SAZxt4LDFMQ1b~Ak*q%X>-ifDqy)F2{k!wIW`+w#~ zcIY)Dls!J5K2)2p!B2?z@rJV>XZp8FZ^yg_W7No&+9^EMc5YKsRv0KE)abV6^Pmi~Uqp4v z#h3Y9a?57>t;$cm`EJl=`fo4=@}e0)*uMb0bJZ_KKZCoi5mV9F)=atuo1bLGSxHLt zg#oK(QS_`#=W5Twt~F*eYB#y`E_qzQ>SSxnEcucmbGC6 zAOmcKaypVtN%u{*5K=iki78J9BEk;wYb_6M`%6d3^id|EEmpB5X?)!y-bq_}DV>!w zx$d8RQn1BtW;v!M_vR}*Jg?lGYbyl`=ga;*WJk|(c16eD-8sv$7>DOAZ;rW%5FjS| zo(j<66cwWw3Qt2Tfz^O;wK8tWYOAX&3Q{qr@JI4pI$t{ec&l(mk%C2T?YRCPgP&C% zUx`KvLu<2!`dQwC$;c2t-p6CTV@WMxrHUC%%l6a1pNqWqSL@-V^j)%d-3*>$(@;^V z={G_pquO>mlkAnw)VC(pIJ*&7yNRJh7EZGA8>jRxWh?DxhfA0~F9-avCX>DH-;|+5 zO4>4f8}SdB?%*z<_*_G2c8Dy}ceIkT1?HJjODcf2-=YkpJahZ6{t)Hw-8`|+zA&5Wj$W;o&DqGbN zW3KMwTJ*y84g2Cb?!L+`6?Fe<>8KdVCG%(MS?~=U(VxQ}Q9cAaE z1d4tT#)Rgo8L~Af4n-t0nO+luBOY&$0SC@oa~u1}A9b<5B&>I?N&VHE(snk@jZaDq ztV)*BeR-nUan9VfmKjD7!5-+Ek)X}td)ZZk4_7`3<~(|>9Ma#rKX zgnvi&VSWdP!ofQCxVURL?}FQ*KKKu>19iG3SEt1W1Xiu~a01AQf*N(PySgQC``WNB zEr<~2zu^%<0~>W&yUbpk+-ylEx{FyD8Tjqv_w@?(Z1zsvhI&(bF-)?n4xZX1gpSvT zV$rg!wG5f6gRmOcQ8U?kJppzKKJfA`-dW9Ml5Q+;`#^^o!x2 zOsys$lDs7Sew@-$g-bFb4LjGaVyk61W|aJNphrN>-_I`CqjA>1rm5V0+#|%Z;=F<> zk~R_5-Pyo1Fv5uOA{=ReaU*B#(Mm^tw- zjYNcRSJ6m3=@865?@l>?8eI}l7EU;vf;x#!aknRJZ4 z5GiUfIlQFxVaC}?y^e0}&BC&uWD=mTwvG-l40s7Xw(>FKox~TXt~D$&^b;2}Y}3hQ z#2U6*+`-M&Y%2zd7q!zq)qHPP!#xwZu~df;>A&S|ksS(nDn~6Zf8e=ZXby075!_GD zB^c=IQ@i8K**lQ+7`wP6s}TZ@ILO7IovTQ;IUTk^c{Wr-yvO}6|?;c@f+6;{p=wiSE zZ^~(8z?7D8p&4zXL4}?}^Ri!w?*sS6rMDi1GnIZ(63+KwK#^HYa91NWT757TxzB*e zJNQ#k@RI2q#hGLu4=aBZVgu)GuzgweKHm}V-B!&lD*jRzOzYSH0UGJI1Q+KMu{e}+B`7< zY1nGtE4^ziP-17IcJNKoAwP_Y#ALjBHU9(`4?mLT1C?%%P)uVKbrr(>Q+5r0Zmm;e zEd29B#Mm;V4kjE>d0VaIdW~TRPHQ!(1C?A}PEM`FRy1VsrbuiWWd9Oc#azJjv$aBM zF6TG&?KZ3+cH{2SnP&)Mt3;XmAt*-!A837ec~qtW|NF^`P@Adsp{}2RX&V7p=-Mwu zlUbebp|4tZ1*uRU6Dk@vCOW^ddw7Bekx%rdWx>?C@X%{=Rom=!Mf5Dj4~rVI^(@oTcNGjM9n6oyeb;({2Vf zgj!BuSlNrZVxV(ajcdVPqU#t`|CvWm&}qa<4ju31Gr%8rJrL~*D3T`^c?|g`302qC_yUY#=q)Fsf@;&6O=N^*zJt-GKF^E3TXjk~vBX-sFKqN(n)y{vu{8kF_0NrjE zqRAHZ$rf5bwHWv%H05U(DSCC=PSN?Vyf2uz-#&C^MA&Pc1f8%?B7cFQtRpa=tSJyr zadVH~Dja^uFGD2KMj8iJw%DDleZ=f&CB94vJv}J5eJ`X0(8VTrlV(oLy9?H8vKxY@ zmu~{)I08-TPuR*BOi%xx~@YBKV{~e;VPO+QYz^L#zrMW5& z*Nw=5j{X&EYaq2B$|swXRo4pY7_yMPpGb*+j>R4By_|iOs+Ye4y)yvu8IVnA!wTQA zijfqS{BQLcIQj#G#07g0O(Rd0Qf?(gr>|XCYfL)agygcAPwa&c7I;!6IDspsAZd#!f6 zB)SN7xVHs!A}FJl(z$zF@^Fcu!N*m`v^}yxS?ds&A*ge!j#xH!1-wySllx6#Qeu4+#xjx4~^AcmQuI zvivVbjCRn*xN633nCF7&=Ru}w8li6E{ii;>A_ia;i>~(#~Xn^4BS6H zw~FlAC4SA1aM%97TG;u`SEyPCm<+@Y6vxu;GDSAl5^}C0Gc7gGcGNu@kdV_5v4y5i z3D96k%Z98#;U%(9P3GCmS*~^;rj@c-AHdpo2m|>^sQ2|xovt-6GWTxUdHTWo2M5wd zMwHJvq}a{TBbjvRt%{=!fkMW?!ha-6{$kA{LAIV9>19YeC4THEdzwYfB`+)jeF!!R z0chbN-~401-^c@K1KYxpM-2$sT1+8YOwt}6eA0%7hDBJy(L;tS;NFuR7Wps2GjW@f zFsuU6>>3@`dLd(#cL`Oq1tu5JeUECF z4HyZmCNxtonq6R!tw*7T{e}1Ve{*5paB=7)T z#!$A)(x+N@5iYG=R9Pu|(W*c|Y?&M9pD}YK1ok0)F@CD(?BUU{&N+0#fwa)LdQC#j zx9>eaban5?|Msnm)+96APf-9MfiuVQ`F{vNM=R}-cUMPD#(6=Nt*u|z2ZvRHwV0-D zkrEa1`-WA%UueH0$lG0Z&{}3f5zV5nd|oKRtx-`wXOvJOy@luM|L#2Dkb+0|Bhu5; z#{>m+t3W_)jgRoR@6q+TXBQVG!D`HHIMt1*AN!?&5N<^+8Xow?fPm04H=DAJm;(V= zcC97)_JZS{sDqW__R=T!bofO=0kPLbRs6$tM>igHo|!vk2yMhJIM=x^#t}+MB~Mq>zHkR>eJ8^ehf?**2XFM^ei@~r&650p z|2^I_keibYcpTjBTYjTLEfpstC*2HYl!tO~dy3uUYmz-@R}=3jgiC(^{T&Tm)4UW; z8GeWJiJZtL9eHnyEGFDKU^ig0qTUx}7Dojhbq04c3emz=~gg{la0|TUq z&bW=&6-z@)9}#z-tnOBdDT4cs*yq(yEGZ8ky~5>(x3Re5B?9o##Qy<+h&Je}@9=Oe zPgmi(cTFb!_s{aQK0tmEyKOBwjMYpCTx`CV_0%$UjyQTpKU=Rut{0IDNg!CXZ`g0^ zvmS;dY8~ESNRz!j@?(Nm2X7eA<=wdC{YkU?c)>HfzYEOd<7ktD%$Zp|g4)&d3IPD1 z7=d4IrD_h{Gky=A|Bg$}^Qlkgr)P;>{h8=^{608QX8q9wf1{F=Sna2$t)bbDNcK9@ zcOTxv{U;RZyHQQYW;sf}>(rgX=2#NB%e%!74vulV8zCJtX;6Rk8Q{9fH`$4`cc- zqnNI~GMEhsFr!v+d-m*Y{;M2jRirr^oao~VBsfJDO}b}b!_y2gp~!3q-u^|XMl%mNBb6O($>#dv&8N<~AY{Mhba{39i#ElN?W4*ynY7SxsoZZ8+RRuyX`$F)S2Izaq_ zohP_RhT~T)z7~5Vi&Q^bg0 z1RS}Z#Eg_dve7Ta(WuPV?oe7Hc~z0AFU7t597KcDKuO5B<`9Ew)Ec%N>u%aa`-dGi zgkQ|Pw86NX>mGT1J02^q{RM0O*6#>(zO*Sc$Je9u3n8k;)9aD3_Pr()pi5JuPo@!m zW_aej`@_JQipy!5EtFlLw2FCzQ#4yUxL;e{v(w74F+3~#Ksh+?)XbM<0A}{SCDeZIy6(S=2TkYJe zL~VA?TPbe4lSb&zL+vILt#uT0tmG;7fO9^rncYvj-e5k_ax(ZEb#+SP{N6OC0DmR# z-!VcRg?`i_*PsQiS0yR}GhECr8y=Db1N_5s3cbvdWB{Bln1(xP5lrywi>J2dlW*m} zPCdCE%<*>(AP0BMS9okvlR@=G19wN>A=T!Y|2R`*NyU_bR1o22Q5u>@f(*F))P0xy#V zylELHJBqnO{Z{uaRaua}DwTr>}ag0OnO7m|9CXBC~>)sdUbJWQ?iMQOM zB>Txqs_iOUz7E^LU6AVMO(B^!Ute$uS+Ec*X{u7rvx^-@^f>{kBTCAr)AB^@hNH24 ztLUxBv~h16ObnKSs~Vzq{kiRWioQlPn=-PV!%{Wd$A0w93|x_Kz&{RwHAOG|{BB8~ zG$Cz704k%DCYCgkqO_dJmGV>A0pY#Z%sBh{yI&gx>)%(liJbejnw;cL;a>0$t+2WY zjtE@Ne`DYLBmTkeurtPG?-u+XYc`IKo|b!zr^3RQBbSH&H8-NKe`x%=jX{AZqHws^?)7v;e1RjjsEr-C7qf1x$O zb*d8V2x3v7hBNjiIc8>xK||;L`}cTcWMo~&>|y!&bR1kY5s8>fL)`vGxxFx3eW&B%l3uk;%n>4=Dk z+%nSBgH=>iBrq`}n;t6hUMCcz9$O$EOMlPXzD=~5XlfF%*m+X$RK*0za*<$N0dZy< zaEYJlLX7u!b19oWW)Oj7+ zY3yTSVset#(&FtaE)K@Pz*s#z{NMzTXn^Y6r}UeL%-IXjqs%P$D@dw<0L@qFtC6s? z1cN5*4WYzWJm-Se)`vfNvat~{ew|hlhPS&6Uoc8`NE*kA)fzAb9RH%nWx8vBdc0Hpc(6bx zuc9JjW5dYF$%#uz8N0J%jf9Fy!_QALK0Y268!Ia#gQB3Q7@wXVW!UmjzU{fyIcOK$ z6T$@dbTe*3gGcd_1}6${@-36JemYr)D81%N7`D91&(Ejg<|g>YY8cqi!1uGY)#cv= z9T1~Zv#>zyd0S%p%`I6!{QT5S=Jb<84=0;KEWHH8d+NmtTHh# z<)1-&4?!e(jet$8QP0=vE_>(%%$M!{i z?bD}Et3BcP{4VQALPA2gP$`4jhDftK%Sx zOv|HD1xJzb#SEptP0-cV9dd)ge*U(sUEACYQT)cbHj%G*e0qwIHXNFl_g5Ierze-y z2<_ir(UXWp#B%%bQG0rNI%a1Zf&hla8jHw)uU`pMxU6C*#2)C9{iyUrI7_+;F|u1* zg{$l9>3;n9fq!|l;!h(W01XHTsH(5`Wp`Q@I`TZ*@?2b45JAJjl7hjwpIN$RWi};9JPq(wpOX4|_lmqcv&kBZLF!*I=5`CzY zK4K!*tB4Y4RH31vngz;fm)&#KW}-aY+}v?@0MvL0+KtM57&!g&WTL5oE7w<56m!OI zZs!S+2 .draggable { - background-color: #316ac5; - color: white; - border: 1px #316ac5 solid; - opacity: 0.8; -} -.rc-tree li.drag-over-gap-top > .draggable { - border-top: 2px blue solid; -} -.rc-tree li.drag-over-gap-bottom > .draggable { - border-bottom: 2px blue solid; -} -.rc-tree li.filter-node > .rc-tree-node-content-wrapper { - color: #a60000!important; - font-weight: bold!important; -} -.rc-tree li ul { - margin: 0; - padding: 0 0 0 18px; -} -.rc-tree li .rc-tree-node-content-wrapper { - display: inline-block; - padding: 1px 3px 0 0; - margin: 0; - cursor: pointer; - height: 17px; - text-decoration: none; - vertical-align: top; -} -.rc-tree li span.rc-tree-switcher, -.rc-tree li span.rc-tree-checkbox, -.rc-tree li span.rc-tree-iconEle { - line-height: 16px; - margin-right: 2px; - width: 16px; - height: 16px; - display: inline-block; - vertical-align: middle; - border: 0 none; - cursor: pointer; - outline: none; - background-color: transparent; - background-repeat: no-repeat; - background-attachment: scroll; - background-image: url('data:image/png;base64,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'); -} -.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, -.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, -.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { - background-image: none; -} -.rc-tree li span.rc-tree-icon_loading { - margin-right: 2px; - vertical-align: top; - background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { - cursor: auto; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { - background-position: -93px -56px; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { - background-position: -75px -56px; -} -.rc-tree li span.rc-tree-checkbox { - width: 13px; - height: 13px; - margin: 0 3px; - background-position: 0 0; -} -.rc-tree li span.rc-tree-checkbox-checked { - background-position: -14px 0; -} -.rc-tree li span.rc-tree-checkbox-indeterminate { - background-position: -14px -28px; -} -.rc-tree li span.rc-tree-checkbox-disabled { - background-position: 0 -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { - background-position: -14px -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { - position: relative; - background: #ccc; - border-radius: 3px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { - content: ' '; - -webkit-transform: scale(1); - transform: scale(1); - position: absolute; - left: 3px; - top: 5px; - width: 5px; - height: 0; - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { - background: none; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > ul { - background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { - background-position: -56px -18px; -} -.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { - background-position: -56px -36px; -} -.rc-tree-child-tree { - display: none; -} -.rc-tree-child-tree-open { - display: block; -} -.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), -.rc-tree-treenode-disabled > a, -.rc-tree-treenode-disabled > a span { - color: #767676; - cursor: not-allowed; -} -.rc-tree-node-selected { - background-color: #ffe6b0; - border: 1px #ffb951 solid; - opacity: 0.8; -} -.rc-tree-icon__open { - margin-right: 2px; - background-position: -110px -16px; - vertical-align: top; -} -.rc-tree-icon__close { - margin-right: 2px; - background-position: -110px 0; - vertical-align: top; -} -.rc-tree-icon__docu { - margin-right: 2px; - background-position: -110px -32px; - vertical-align: top; -} -.rc-tree-icon__customize { - margin-right: 2px; - vertical-align: top; -} diff --git a/packages/client/node_modules/rc-tree/assets/line.gif b/packages/client/node_modules/rc-tree/assets/line.gif deleted file mode 100644 index d561d36a915776730eb3069cee4c949f027667ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45 xcmZ?wbhEHbT_)p@)n z{^qIIq1(T$e$~zMQ}6t1w^a|Cj;Amo3}FHq!p^`7G=x7ROJIXqM}S9S9}m;(SWbi* zHiVjpkZW$u7K%QH zEX1o> .draggable { - background-color: #316ac5; - color: white; - border: 1px #316ac5 solid; - opacity: 0.8; -} -.rc-tree li.drag-over-gap-top > .draggable { - border-top: 2px blue solid; -} -.rc-tree li.drag-over-gap-bottom > .draggable { - border-bottom: 2px blue solid; -} -.rc-tree li.filter-node > .rc-tree-node-content-wrapper { - color: #a60000!important; - font-weight: bold!important; -} -.rc-tree li ul { - margin: 0; - padding: 0 0 0 18px; -} -.rc-tree li .rc-tree-node-content-wrapper { - display: inline-block; - padding: 1px 3px 0 0; - margin: 0; - cursor: pointer; - height: 17px; - text-decoration: none; - vertical-align: top; -} -.rc-tree li span.rc-tree-switcher, -.rc-tree li span.rc-tree-checkbox, -.rc-tree li span.rc-tree-iconEle { - line-height: 16px; - margin-right: 2px; - width: 16px; - height: 16px; - display: inline-block; - vertical-align: middle; - border: 0 none; - cursor: pointer; - outline: none; - background-color: transparent; - background-repeat: no-repeat; - background-attachment: scroll; - background-image: url('data:image/png;base64,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'); -} -.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, -.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, -.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { - background-image: none; -} -.rc-tree li span.rc-tree-icon_loading { - margin-right: 2px; - vertical-align: top; - background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { - cursor: auto; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { - background-position: -93px -56px; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { - background-position: -75px -56px; -} -.rc-tree li span.rc-tree-checkbox { - width: 13px; - height: 13px; - margin: 0 3px; - background-position: 0 0; -} -.rc-tree li span.rc-tree-checkbox-checked { - background-position: -14px 0; -} -.rc-tree li span.rc-tree-checkbox-indeterminate { - background-position: -14px -28px; -} -.rc-tree li span.rc-tree-checkbox-disabled { - background-position: 0 -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { - background-position: -14px -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { - position: relative; - background: #ccc; - border-radius: 3px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { - content: ' '; - -webkit-transform: scale(1); - transform: scale(1); - position: absolute; - left: 3px; - top: 5px; - width: 5px; - height: 0; - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { - background: none; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > ul { - background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { - background-position: -56px -18px; -} -.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { - background-position: -56px -36px; -} -.rc-tree-child-tree { - display: none; -} -.rc-tree-child-tree-open { - display: block; -} -.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), -.rc-tree-treenode-disabled > a, -.rc-tree-treenode-disabled > a span { - color: #767676; - cursor: not-allowed; -} -.rc-tree-node-selected { - background-color: #ffe6b0; - border: 1px #ffb951 solid; - opacity: 0.8; -} -.rc-tree-icon__open { - margin-right: 2px; - background-position: -110px -16px; - vertical-align: top; -} -.rc-tree-icon__close { - margin-right: 2px; - background-position: -110px 0; - vertical-align: top; -} -.rc-tree-icon__docu { - margin-right: 2px; - background-position: -110px -32px; - vertical-align: top; -} -.rc-tree-icon__customize { - margin-right: 2px; - vertical-align: top; -} - -/*# sourceMappingURL=rc-tree.css.map*/ \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.css.map b/packages/client/node_modules/rc-tree/dist/rc-tree.css.map deleted file mode 100644 index 577716c..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./assets/index.less"],"names":[],"mappings":"AACA;EACE;EACA;CAAD;AAFD;EAII;EACA;EACA;EACA;EACA;CACH;AATD;EAUM;EACA;EACA;EACA;EACA;MAAA;EAEJ,uDAAuD;EAAnD;EACA;CAEL;AAAG;EAEI;EACA;EACA;EACA;CACP;AAEG;EAEI;CADP;AAIG;EAEI;CAHP;AAMG;EAEI;EACA;CALP;AAnCD;EA4CM;EACA;CANL;AAvCD;EAgDM;EACA;EACA;EACA;EACA;EACA;EACA;CANL;AASK;;;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAPP;AASO;;;EACE;CALT;AAQK;EACE;EACA;EACA;CANP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AAUK;EACE;EACA;EACA;EACA;CARP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;EACA;EACA;CAPT;AAQS;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CANX;AAYC;EAEI;CAXL;AAcC;EAGM;CAdP;AAWC;EAMM;CAdP;AAQC;EAWM;CAhBP;AAoBC;EACE;CAlBH;AAmBG;EACE;CAjBL;AAoBC;;;EAII;EACA;CAnBL;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;CApBH","file":"rc-tree.css","sourcesContent":["@treePrefixCls: rc-tree;\n.@{treePrefixCls} {\n margin: 0;\n padding: 5px;\n li {\n padding: 0;\n margin: 0;\n list-style: none;\n white-space: nowrap;\n outline: 0;\n .draggable {\n color: #333;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n /* Required to make elements draggable in old WebKit */\n -khtml-user-drag: element;\n -webkit-user-drag: element;\n }\n &.drag-over {\n > .draggable {\n background-color: #316ac5;\n color: white;\n border: 1px #316ac5 solid;\n opacity: 0.8;\n }\n }\n &.drag-over-gap-top {\n > .draggable {\n border-top: 2px blue solid;\n }\n }\n &.drag-over-gap-bottom {\n > .draggable {\n border-bottom: 2px blue solid;\n }\n }\n &.filter-node {\n > .@{treePrefixCls}-node-content-wrapper {\n color: #a60000!important;\n font-weight: bold!important;\n }\n }\n ul {\n margin: 0;\n padding: 0 0 0 18px;\n }\n .@{treePrefixCls}-node-content-wrapper {\n display: inline-block;\n padding: 1px 3px 0 0;\n margin: 0;\n cursor: pointer;\n height: 17px;\n text-decoration: none;\n vertical-align: top;\n }\n span {\n &.@{treePrefixCls}-switcher,\n &.@{treePrefixCls}-checkbox,\n &.@{treePrefixCls}-iconEle {\n line-height: 16px;\n margin-right: 2px;\n width: 16px;\n height: 16px;\n display: inline-block;\n vertical-align: middle;\n border: 0 none;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n background-attachment: scroll;\n background-image: url('data:image/png;base64,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');\n\n &.@{treePrefixCls}-icon__customize {\n background-image: none;\n }\n }\n &.@{treePrefixCls}-icon_loading {\n margin-right: 2px;\n vertical-align: top;\n background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent;\n }\n &.@{treePrefixCls}-switcher {\n &.@{treePrefixCls}-switcher-noop {\n cursor: auto;\n }\n &.@{treePrefixCls}-switcher_open {\n background-position: -93px -56px;\n }\n &.@{treePrefixCls}-switcher_close {\n background-position: -75px -56px;\n }\n }\n &.@{treePrefixCls}-checkbox {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n background-position: 0 0;\n &-checked {\n background-position: -14px 0;\n }\n &-indeterminate {\n background-position: -14px -28px;\n }\n &-disabled {\n background-position: 0 -56px;\n }\n &.@{treePrefixCls}-checkbox-checked.@{treePrefixCls}-checkbox-disabled {\n background-position: -14px -56px;\n }\n &.@{treePrefixCls}-checkbox-indeterminate.@{treePrefixCls}-checkbox-disabled {\n position: relative;\n background: #ccc;\n border-radius: 3px;\n &::after {\n content: ' ';\n -webkit-transform: scale(1);\n transform: scale(1);\n position: absolute;\n left: 3px;\n top: 5px;\n width: 5px;\n height: 0;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n }\n }\n }\n }\n }\n &:not(.@{treePrefixCls}-show-line) {\n .@{treePrefixCls}-switcher-noop {\n background: none;\n }\n }\n &.@{treePrefixCls}-show-line {\n li:not(:last-child) {\n > ul {\n background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y;\n }\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -18px;\n }\n }\n li:last-child {\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -36px;\n }\n }\n }\n &-child-tree {\n display: none;\n &-open {\n display: block;\n }\n }\n &-treenode-disabled {\n >span:not(.@{treePrefixCls}-switcher),\n >a,\n >a span {\n color: #767676;\n cursor: not-allowed;\n }\n }\n &-node-selected {\n background-color: #ffe6b0;\n border: 1px #ffb951 solid;\n opacity: 0.8;\n }\n &-icon__open {\n margin-right: 2px;\n background-position: -110px -16px;\n vertical-align: top;\n }\n &-icon__close {\n margin-right: 2px;\n background-position: -110px 0;\n vertical-align: top;\n }\n &-icon__docu {\n margin-right: 2px;\n background-position: -110px -32px;\n vertical-align: top;\n }\n &-icon__customize {\n margin-right: 2px;\n vertical-align: top;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./assets/index.less"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.js b/packages/client/node_modules/rc-tree/dist/rc-tree.js deleted file mode 100644 index ab9f2e4..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.js +++ /dev/null @@ -1,7538 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("react"), require("react-dom")); - else if(typeof define === 'function' && define.amd) - define(["react", "react-dom"], factory); - else if(typeof exports === 'object') - exports["rc-tree"] = factory(require("react"), require("react-dom")); - else - root["rc-tree"] = factory(root["React"], root["ReactDOM"]); -})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_65__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 68); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.6.5' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(35)('wks'); -var uid = __webpack_require__(26); -var Symbol = __webpack_require__(2).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(46); -var toPrimitive = __webpack_require__(30); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(2); -var core = __webpack_require__(0); -var ctx = __webpack_require__(29); -var hide = __webpack_require__(9); -var has = __webpack_require__(7); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(15)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_8__; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var createDesc = __webpack_require__(16); -module.exports = __webpack_require__(6) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(11); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(49); -var defined = __webpack_require__(32); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {/** - * 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 (process.env.NODE_ENV !== 'production') { - var ReactIs = __webpack_require__(58); - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = __webpack_require__(111)(ReactIs.isElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(114)(); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _assign = __webpack_require__(72); - -var _assign2 = _interopRequireDefault(_assign); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _assign2.default || 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; -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(51); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = 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; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -}(); - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _typeof2 = __webpack_require__(52); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _setPrototypeOf = __webpack_require__(102); - -var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); - -var _create = __webpack_require__(106); - -var _create2 = _interopRequireDefault(_create); - -var _typeof2 = __webpack_require__(52); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (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" : (0, _typeof3.default)(superClass))); - } - - subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; -}; - -/***/ }), -/* 22 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["a"] = toArray; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); - - -function toArray(children) { - var ret = []; - __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (c) { - ret.push(c); - }); - return ret; -} - -/***/ }), -/* 23 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", 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; -} - - - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(48); -var enumBugKeys = __webpack_require__(36); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ -/* global define */ - -(function () { - 'use strict'; - - var hasOwn = {}.hasOwnProperty; - - function classNames () { - var classes = []; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes.push(arg); - } else if (Array.isArray(arg) && arg.length) { - var inner = classNames.apply(null, arg); - if (inner) { - classes.push(inner); - } - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes.push(key); - } - } - } - } - - return classes.join(' '); - } - - if (typeof module !== 'undefined' && module.exports) { - classNames.default = classNames; - module.exports = classNames; - } else if (true) { - // register as 'classnames', consistent with npm package name - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { - return classNames; - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - window.classNames = classNames; - } -}()); - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(75); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(11); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(35)('keys'); -var uid = __webpack_require__(26); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(0); -var global = __webpack_require__(2); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(25) ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 37 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(32); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(51); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(85); -var enumBugKeys = __webpack_require__(36); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(47)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(86).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(3).f; -var has = __webpack_require__(7); -var TAG = __webpack_require__(1)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(1); - - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(2); -var core = __webpack_require__(0); -var LIBRARY = __webpack_require__(25); -var wksExt = __webpack_require__(42); -var defineProperty = __webpack_require__(3).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * 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. - */ - - - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - - -/***/ }), -/* 45 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export getStyleProperty */ -/* harmony export (immutable) */ __webpack_exports__["c"] = getStyleValue; -/* unused harmony export getVendorPrefixes */ -/* unused harmony export getVendorPrefixedEventName */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return animationEndName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return transitionEndName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return supportTransition; }); -/* harmony export (immutable) */ __webpack_exports__["e"] = mergeChildren; -/* harmony export (immutable) */ __webpack_exports__["b"] = cloneProps; -/* harmony export (immutable) */ __webpack_exports__["d"] = getTransitionName; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__ = __webpack_require__(132); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__); - - - -// =================== Style ==================== -var stylePrefixes = ['-webkit-', '-moz-', '-o-', 'ms-', '']; - -function getStyleProperty(node, name) { - // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle - var style = window.getComputedStyle(node, null); - var ret = ''; - for (var i = 0; i < stylePrefixes.length; i++) { - ret = style.getPropertyValue(stylePrefixes[i] + name); - if (ret) { - break; - } - } - return ret; -} - -function getStyleValue(node, name) { - return parseFloat(getStyleProperty(node, name)); -} - -// ================= Transition ================= -// Event wrapper. Copy from react source code -function makePrefixMap(styleProp, eventName) { - var prefixes = {}; - - prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); - prefixes['Webkit' + styleProp] = 'webkit' + eventName; - prefixes['Moz' + styleProp] = 'moz' + eventName; - prefixes['ms' + styleProp] = 'MS' + eventName; - prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); - - return prefixes; -} - -function getVendorPrefixes(domSupport, win) { - var prefixes = { - animationend: makePrefixMap('Animation', 'AnimationEnd'), - transitionend: makePrefixMap('Transition', 'TransitionEnd') - }; - - if (domSupport) { - if (!('AnimationEvent' in win)) { - delete prefixes.animationend.animation; - } - - if (!('TransitionEvent' in win)) { - delete prefixes.transitionend.transition; - } - } - - return prefixes; -} - -var vendorPrefixes = getVendorPrefixes(__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__["canUseDOM"], typeof window !== 'undefined' ? window : {}); - -var style = {}; - -if (__WEBPACK_IMPORTED_MODULE_1_fbjs_lib_ExecutionEnvironment__["canUseDOM"]) { - style = document.createElement('div').style; -} - -var prefixedEventNames = {}; - -function getVendorPrefixedEventName(eventName) { - if (prefixedEventNames[eventName]) { - return prefixedEventNames[eventName]; - } - - var prefixMap = vendorPrefixes[eventName]; - - if (prefixMap) { - var stylePropList = Object.keys(prefixMap); - var len = stylePropList.length; - for (var i = 0; i < len; i += 1) { - var styleProp = stylePropList[i]; - if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { - prefixedEventNames[eventName] = prefixMap[styleProp]; - return prefixedEventNames[eventName]; - } - } - } - - return ''; -} - -var animationEndName = getVendorPrefixedEventName('animationend'); -var transitionEndName = getVendorPrefixedEventName('transitionend'); -var supportTransition = !!(animationEndName && transitionEndName); - -// ==================== Node ==================== -/** - * [Legacy] Find the same children in both prev & next list. - * Insert not find one before the find one, otherwise in the end. For example: - * - prev: [1,2,3] - * - next: [2,4] - * -> [1,2,4,3] - */ -function mergeChildren(prev, next) { - var prevList = Object(__WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__["a" /* default */])(prev); - var nextList = Object(__WEBPACK_IMPORTED_MODULE_0_rc_util_es_Children_toArray__["a" /* default */])(next); - - // Skip if is single children - if (prevList.length === 1 && nextList.length === 1 && prevList[0].key === nextList[0].key) { - return nextList; - } - - var mergeList = []; - var nextChildrenMap = {}; - var missMatchChildrenList = []; - - // Fill matched prev node into next node map - prevList.forEach(function (prevNode) { - if (prevNode && nextList.some(function (_ref) { - var key = _ref.key; - return key === prevNode.key; - })) { - if (missMatchChildrenList.length) { - nextChildrenMap[prevNode.key] = missMatchChildrenList; - missMatchChildrenList = []; - } - } else { - missMatchChildrenList.push(prevNode); - } - }); - - // Insert prev node before the matched next node - nextList.forEach(function (nextNode) { - if (nextNode && nextChildrenMap[nextNode.key]) { - mergeList = mergeList.concat(nextChildrenMap[nextNode.key]); - } - mergeList.push(nextNode); - }); - - mergeList = mergeList.concat(missMatchChildrenList); - - return mergeList; -} - -function cloneProps(props, propList) { - var newProps = {}; - propList.forEach(function (prop) { - if (prop in props) { - newProps[prop] = props[prop]; - } - }); - - return newProps; -} - -function getTransitionName(transitionName, transitionType) { - if (!transitionName) return null; - - if (typeof transitionName === 'object') { - var type = transitionType.replace(/-\w/g, function (match) { - return match[1].toUpperCase(); - }); - return transitionName[type]; - } - - return transitionName + '-' + transitionType; -} - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(6) && !__webpack_require__(15)(function () { - return Object.defineProperty(__webpack_require__(47)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(11); -var document = __webpack_require__(2).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(7); -var toIObject = __webpack_require__(12); -var arrayIndexOf = __webpack_require__(77)(false); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(31); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(33); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(79), __esModule: true }; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(81); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(92); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(83)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(54)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(25); -var $export = __webpack_require__(5); -var redefine = __webpack_require__(55); -var hide = __webpack_require__(9); -var Iterators = __webpack_require__(20); -var $iterCreate = __webpack_require__(84); -var setToStringTag = __webpack_require__(41); -var getPrototypeOf = __webpack_require__(87); -var ITERATOR = __webpack_require__(1)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(9); - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(48); -var hiddenKeys = __webpack_require__(36).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(27); -var createDesc = __webpack_require__(16); -var toIObject = __webpack_require__(12); -var toPrimitive = __webpack_require__(30); -var has = __webpack_require__(7); -var IE8_DOM_DEFINE = __webpack_require__(46); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(6) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -if (process.env.NODE_ENV === 'production') { - module.exports = __webpack_require__(109); -} else { - module.exports = __webpack_require__(110); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = function() {}; - -if (process.env.NODE_ENV !== 'production') { - warning = function(condition, format, args) { - var len = arguments.length; - args = new Array(len > 2 ? len - 2 : 0); - for (var key = 2; key < len; key++) { - args[key - 2] = arguments[key]; - } - if (format === undefined) { - throw new Error( - '`warning(condition, format, ...args)` requires a warning ' + - 'message argument' - ); - } - - if (format.length < 10 || (/^[s\W]*$/).test(format)) { - throw new Error( - 'The warning format should be able to uniquely identify this ' + - 'warning. Please, use a more descriptive format than: ' + format - ); - } - - if (!condition) { - var argIndex = 0; - var message = 'Warning: ' + - format.replace(/%s/g, function() { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch(x) {} - } - }; -} - -module.exports = warning; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 60 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return treeContextTypes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return nodeContextTypes; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__); - -/** - * Webpack has bug for import loop, which is not the same behavior as ES module. - * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty. - */ - - - -/** - * Thought we still use `cloneElement` to pass `key`, - * other props can pass with context for future refactor. - */ -var treeContextTypes = { - rcTree: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({ - root: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object, - - prefixCls: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, - selectable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, - showIcon: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, - icon: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func]), - draggable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, - checkable: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node]), - checkStrictly: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, - disabled: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool, - openTransitionName: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, - openAnimation: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]), - - loadData: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - filterTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - renderTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - - isKeyChecked: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - - onNodeClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDoubleClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeExpand: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeSelect: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeCheck: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeMouseEnter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeMouseLeave: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeContextMenu: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDragStart: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDragEnter: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDragOver: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDragLeave: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDragEnd: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, - onNodeDrop: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func - - // TODO: Remove this - // onBatchNodeCheck: PropTypes.func, - // onCheckConductFinished: PropTypes.func, - - // Tree will store the entities when the treeNode refresh. - // User can pass the func to add more info to customize the additional info. - // processTreeEntity: PropTypes.func, - }) -}; - -var nodeContextTypes = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, treeContextTypes, { - rcTreeNode: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({ - onUpCheckConduct: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func - }) -}); - -/***/ }), -/* 61 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (immutable) */ __webpack_exports__["p"] = warnOnlyTreeNode; -/* harmony export (immutable) */ __webpack_exports__["b"] = arrDel; -/* harmony export (immutable) */ __webpack_exports__["a"] = arrAdd; -/* harmony export (immutable) */ __webpack_exports__["o"] = posToArr; -/* harmony export (immutable) */ __webpack_exports__["l"] = getPosition; -/* unused harmony export isTreeNode */ -/* harmony export (immutable) */ __webpack_exports__["k"] = getNodeChildren; -/* unused harmony export isCheckDisabled */ -/* unused harmony export traverseTreeNodes */ -/* harmony export (immutable) */ __webpack_exports__["m"] = mapChildren; -/* harmony export (immutable) */ __webpack_exports__["j"] = getDragNodesKeys; -/* harmony export (immutable) */ __webpack_exports__["c"] = calcDropPosition; -/* harmony export (immutable) */ __webpack_exports__["d"] = calcSelectedKeys; -/* harmony export (immutable) */ __webpack_exports__["g"] = convertDataToTree; -/* harmony export (immutable) */ __webpack_exports__["h"] = convertTreeToEntities; -/* harmony export (immutable) */ __webpack_exports__["n"] = parseCheckedKeys; -/* harmony export (immutable) */ __webpack_exports__["e"] = conductCheck; -/* harmony export (immutable) */ __webpack_exports__["f"] = conductExpandParent; -/* harmony export (immutable) */ __webpack_exports__["i"] = getDataAndAria; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(62); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning__ = __webpack_require__(59); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__TreeNode__ = __webpack_require__(63); - - - - - - -var DRAG_SIDE_RANGE = 0.25; -var DRAG_MIN_GAP = 2; - -var onlyTreeNodeWarned = false; - -function warnOnlyTreeNode() { - if (onlyTreeNodeWarned) return; - - onlyTreeNodeWarned = true; - __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, 'Tree only accept TreeNode as children.'); -} - -function arrDel(list, value) { - var clone = list.slice(); - var index = clone.indexOf(value); - if (index >= 0) { - clone.splice(index, 1); - } - return clone; -} - -function arrAdd(list, value) { - var clone = list.slice(); - if (clone.indexOf(value) === -1) { - clone.push(value); - } - return clone; -} - -function posToArr(pos) { - return pos.split('-'); -} - -function getPosition(level, index) { - return level + '-' + index; -} - -function isTreeNode(node) { - return node && node.type && node.type.isTreeNode; -} - -function getNodeChildren(children) { - return Object(__WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__["a" /* default */])(children).filter(isTreeNode); -} - -function isCheckDisabled(node) { - var _ref = node.props || {}, - disabled = _ref.disabled, - disableCheckbox = _ref.disableCheckbox; - - return !!(disabled || disableCheckbox); -} - -function traverseTreeNodes(treeNodes, callback) { - function processNode(node, index, parent) { - var children = node ? node.props.children : treeNodes; - var pos = node ? getPosition(parent.pos, index) : 0; - - // Filter children - var childList = getNodeChildren(children); - - // Process node if is not root - if (node) { - var data = { - node: node, - index: index, - pos: pos, - key: node.key || pos, - parentPos: parent.node ? parent.pos : null - }; - - callback(data); - } - - // Process children node - __WEBPACK_IMPORTED_MODULE_1_react__["Children"].forEach(childList, function (subNode, subIndex) { - processNode(subNode, subIndex, { node: node, pos: pos }); - }); - } - - processNode(null); -} - -/** - * Use `rc-util` `toArray` to get the children list which keeps the key. - * And return single node if children is only one(This can avoid `key` missing check). - */ -function mapChildren(children, func) { - var list = Object(__WEBPACK_IMPORTED_MODULE_2_rc_util_es_Children_toArray__["a" /* default */])(children).map(func); - if (list.length === 1) { - return list[0]; - } - return list; -} - -function getDragNodesKeys(treeNodes, node) { - var _node$props = node.props, - eventKey = _node$props.eventKey, - pos = _node$props.pos; - - var dragNodesKeys = []; - - traverseTreeNodes(treeNodes, function (_ref2) { - var key = _ref2.key; - - dragNodesKeys.push(key); - }); - dragNodesKeys.push(eventKey || pos); - return dragNodesKeys; -} - -// Only used when drag, not affect SSR. -function calcDropPosition(event, treeNode) { - var clientY = event.clientY; - - var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(), - top = _treeNode$selectHandl.top, - bottom = _treeNode$selectHandl.bottom, - height = _treeNode$selectHandl.height; - - var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP); - - if (clientY <= top + des) { - return -1; - } else if (clientY >= bottom - des) { - return 1; - } - - return 0; -} - -/** - * Return selectedKeys according with multiple prop - * @param selectedKeys - * @param props - * @returns [string] - */ -function calcSelectedKeys(selectedKeys, props) { - if (!selectedKeys) return undefined; - - var multiple = props.multiple; - - if (multiple) { - return selectedKeys.slice(); - } - - if (selectedKeys.length) { - return [selectedKeys[0]]; - } - return selectedKeys; -} - -/** - * Since React internal will convert key to string, - * we need do this to avoid `checkStrictly` use number match - */ -function keyListToString(keyList) { - if (!keyList) return keyList; - return keyList.map(function (key) { - return String(key); - }); -} - -var internalProcessProps = function internalProcessProps(props) { - return props; -}; -function convertDataToTree(treeData, processer) { - if (!treeData) return []; - - var _ref3 = processer || {}, - _ref3$processProps = _ref3.processProps, - processProps = _ref3$processProps === undefined ? internalProcessProps : _ref3$processProps; - - var list = Array.isArray(treeData) ? treeData : [treeData]; - return list.map(function (_ref4) { - var children = _ref4.children, - props = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(_ref4, ['children']); - - var childrenNodes = convertDataToTree(children, processer); - - return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement( - __WEBPACK_IMPORTED_MODULE_4__TreeNode__["a" /* default */], - processProps(props), - childrenNodes - ); - }); -} - -// TODO: ========================= NEW LOGIC ========================= -/** - * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select` - * @param treeNodes - * @param processTreeEntity User can customize the entity - */ -function convertTreeToEntities(treeNodes) { - var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - initWrapper = _ref5.initWrapper, - processEntity = _ref5.processEntity, - onProcessFinished = _ref5.onProcessFinished; - - var posEntities = {}; - var keyEntities = {}; - var wrapper = { - posEntities: posEntities, - keyEntities: keyEntities - }; - - if (initWrapper) { - wrapper = initWrapper(wrapper) || wrapper; - } - - traverseTreeNodes(treeNodes, function (item) { - var node = item.node, - index = item.index, - pos = item.pos, - key = item.key, - parentPos = item.parentPos; - - var entity = { node: node, index: index, key: key, pos: pos }; - - posEntities[pos] = entity; - keyEntities[key] = entity; - - // Fill children - entity.parent = posEntities[parentPos]; - if (entity.parent) { - entity.parent.children = entity.parent.children || []; - entity.parent.children.push(entity); - } - - if (processEntity) { - processEntity(entity, wrapper); - } - }); - - if (onProcessFinished) { - onProcessFinished(wrapper); - } - - return wrapper; -} - -/** - * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style - */ -function parseCheckedKeys(keys) { - if (!keys) { - return null; - } - - // Convert keys to object format - var keyProps = void 0; - if (Array.isArray(keys)) { - // [Legacy] Follow the api doc - keyProps = { - checkedKeys: keys, - halfCheckedKeys: undefined - }; - } else if (typeof keys === 'object') { - keyProps = { - checkedKeys: keys.checked || undefined, - halfCheckedKeys: keys.halfChecked || undefined - }; - } else { - __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, '`checkedKeys` is not an array or an object'); - return null; - } - - keyProps.checkedKeys = keyListToString(keyProps.checkedKeys); - keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys); - - return keyProps; -} - -/** - * Conduct check state by the keyList. It will conduct up & from the provided key. - * If the conduct path reach the disabled or already checked / unchecked node will stop conduct. - * @param keyList list of keys - * @param isCheck is check the node or not - * @param keyEntities parsed by `convertTreeToEntities` function in Tree - * @param checkStatus Can pass current checked status for process (usually for uncheck operation) - * @returns {{checkedKeys: [], halfCheckedKeys: []}} - */ -function conductCheck(keyList, isCheck, keyEntities) { - var checkStatus = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - var checkedKeys = {}; - var halfCheckedKeys = {}; // Record the key has some child checked (include child half checked) - - (checkStatus.checkedKeys || []).forEach(function (key) { - checkedKeys[key] = true; - }); - - (checkStatus.halfCheckedKeys || []).forEach(function (key) { - halfCheckedKeys[key] = true; - }); - - // Conduct up - function conductUp(key) { - if (checkedKeys[key] === isCheck) return; - - var entity = keyEntities[key]; - if (!entity) return; - - var children = entity.children, - parent = entity.parent, - node = entity.node; - - - if (isCheckDisabled(node)) return; - - // Check child node checked status - var everyChildChecked = true; - var someChildChecked = false; // Child checked or half checked - - (children || []).filter(function (child) { - return !isCheckDisabled(child.node); - }).forEach(function (_ref6) { - var childKey = _ref6.key; - - var childChecked = checkedKeys[childKey]; - var childHalfChecked = halfCheckedKeys[childKey]; - - if (childChecked || childHalfChecked) someChildChecked = true; - if (!childChecked) everyChildChecked = false; - }); - - // Update checked status - if (isCheck) { - checkedKeys[key] = everyChildChecked; - } else { - checkedKeys[key] = false; - } - halfCheckedKeys[key] = someChildChecked; - - if (parent) { - conductUp(parent.key); - } - } - - // Conduct down - function conductDown(key) { - if (checkedKeys[key] === isCheck) return; - - var entity = keyEntities[key]; - if (!entity) return; - - var children = entity.children, - node = entity.node; - - - if (isCheckDisabled(node)) return; - - checkedKeys[key] = isCheck; - - (children || []).forEach(function (child) { - conductDown(child.key); - }); - } - - function conduct(key) { - var entity = keyEntities[key]; - - if (!entity) { - __WEBPACK_IMPORTED_MODULE_3_warning___default()(false, '\'' + key + '\' does not exist in the tree.'); - return; - } - - var children = entity.children, - parent = entity.parent, - node = entity.node; - - checkedKeys[key] = isCheck; - - if (isCheckDisabled(node)) return; - - // Conduct down - (children || []).filter(function (child) { - return !isCheckDisabled(child.node); - }).forEach(function (child) { - conductDown(child.key); - }); - - // Conduct up - if (parent) { - conductUp(parent.key); - } - } - - (keyList || []).forEach(function (key) { - conduct(key); - }); - - var checkedKeyList = []; - var halfCheckedKeyList = []; - - // Fill checked list - Object.keys(checkedKeys).forEach(function (key) { - if (checkedKeys[key]) { - checkedKeyList.push(key); - } - }); - - // Fill half checked list - Object.keys(halfCheckedKeys).forEach(function (key) { - if (!checkedKeys[key] && halfCheckedKeys[key]) { - halfCheckedKeyList.push(key); - } - }); - - return { - checkedKeys: checkedKeyList, - halfCheckedKeys: halfCheckedKeyList - }; -} - -/** - * If user use `autoExpandParent` we should get the list of parent node - * @param keyList - * @param keyEntities - */ -function conductExpandParent(keyList, keyEntities) { - var expandedKeys = {}; - - function conductUp(key) { - if (expandedKeys[key]) return; - - var entity = keyEntities[key]; - if (!entity) return; - - expandedKeys[key] = true; - - var parent = entity.parent, - node = entity.node; - - - if (isCheckDisabled(node)) return; - - if (parent) { - conductUp(parent.key); - } - } - - (keyList || []).forEach(function (key) { - conductUp(key); - }); - - return Object.keys(expandedKeys); -} - -/** - * Returns only the data- and aria- key/value pairs - * @param {object} props - */ -function getDataAndAria(props) { - return Object.keys(props).reduce(function (prev, key) { - if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-') { - prev[key] = props[key]; - } - return prev; - }, {}); -} - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -exports.default = 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; -}; - -/***/ }), -/* 63 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(62); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__ = __webpack_require__(18); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__ = __webpack_require__(21); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_rc_animate__ = __webpack_require__(115); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_rc_util_es_Children_toArray__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_lifecycles_compat__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__contextTypes__ = __webpack_require__(60); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util__ = __webpack_require__(61); - - - - - - - - - - - - - - - - -var ICON_OPEN = 'open'; -var ICON_CLOSE = 'close'; - -var defaultTitle = '---'; - -var TreeNode = function (_React$Component) { - __WEBPACK_IMPORTED_MODULE_6_babel_runtime_helpers_inherits___default()(TreeNode, _React$Component); - - function TreeNode(props) { - __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, TreeNode); - - var _this = __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_possibleConstructorReturn___default()(this, (TreeNode.__proto__ || Object.getPrototypeOf(TreeNode)).call(this, props)); - - _initialiseProps.call(_this); - - _this.state = { - dragNodeHighlight: false - }; - return _this; - } - - __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_createClass___default()(TreeNode, [{ - key: 'getChildContext', - value: function getChildContext() { - return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, this.context, { - rcTreeNode: { - // onUpCheckConduct: this.onUpCheckConduct, - } - }); - } - - // Isomorphic needn't load data in server side - - }, { - key: 'componentDidMount', - value: function componentDidMount() { - var eventKey = this.props.eventKey; - var registerTreeNode = this.context.rcTree.registerTreeNode; - - - this.syncLoadData(this.props); - - registerTreeNode(eventKey, this); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.syncLoadData(this.props); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - var eventKey = this.props.eventKey; - var registerTreeNode = this.context.rcTree.registerTreeNode; - - registerTreeNode(eventKey, null); - } - - // Disabled item still can be switch - - - // Drag usage - - }, { - key: 'isSelectable', - value: function isSelectable() { - var selectable = this.props.selectable; - var treeSelectable = this.context.rcTree.selectable; - - // Ignore when selectable is undefined or null - - if (typeof selectable === 'boolean') { - return selectable; - } - - return treeSelectable; - } - - // Load data to avoid default expanded tree without data - - - // Switcher - - - // Checkbox - - - // Icon + Title - - - // Children list wrapped with `Animation` - - }, { - key: 'render', - value: function render() { - var _classNames; - - var loading = this.props.loading; - - var _props = this.props, - className = _props.className, - style = _props.style, - dragOver = _props.dragOver, - dragOverGapTop = _props.dragOverGapTop, - dragOverGapBottom = _props.dragOverGapBottom, - isLeaf = _props.isLeaf, - expanded = _props.expanded, - selected = _props.selected, - checked = _props.checked, - halfChecked = _props.halfChecked, - otherProps = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['className', 'style', 'dragOver', 'dragOverGapTop', 'dragOverGapBottom', 'isLeaf', 'expanded', 'selected', 'checked', 'halfChecked']); - - var _context$rcTree = this.context.rcTree, - prefixCls = _context$rcTree.prefixCls, - filterTreeNode = _context$rcTree.filterTreeNode, - draggable = _context$rcTree.draggable; - - var disabled = this.isDisabled(); - var dataOrAriaAttributeProps = Object(__WEBPACK_IMPORTED_MODULE_14__util__["i" /* getDataAndAria */])(otherProps); - - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'li', - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({ - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(className, (_classNames = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-disabled', disabled), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-switcher-' + (expanded ? 'open' : 'close'), !isLeaf), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-checkbox-checked', checked), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-checkbox-indeterminate', halfChecked), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-selected', selected), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, prefixCls + '-treenode-loading', loading), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over', !disabled && dragOver), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, 'filter-node', filterTreeNode && filterTreeNode(this)), _classNames)), - - style: style, - - role: 'treeitem', - - onDragEnter: draggable ? this.onDragEnter : undefined, - onDragOver: draggable ? this.onDragOver : undefined, - onDragLeave: draggable ? this.onDragLeave : undefined, - onDrop: draggable ? this.onDrop : undefined, - onDragEnd: draggable ? this.onDragEnd : undefined - }, dataOrAriaAttributeProps), - this.renderSwitcher(), - this.renderCheckbox(), - this.renderSelector(), - this.renderChildren() - ); - } - }]); - - return TreeNode; -}(__WEBPACK_IMPORTED_MODULE_7_react___default.a.Component); - -TreeNode.propTypes = { - eventKey: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, // Pass by parent `cloneElement` - prefixCls: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, - className: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, - style: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, - root: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object, - onSelect: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - - // By parent - expanded: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - selected: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - checked: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - loaded: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - loading: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - halfChecked: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - children: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, - title: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, - pos: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, - dragOver: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - dragOverGapTop: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - dragOverGapBottom: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - - // By user - isLeaf: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - selectable: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - disabled: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - disableCheckbox: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - icon: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]), - switcherIcon: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func]) -}; -TreeNode.contextTypes = __WEBPACK_IMPORTED_MODULE_13__contextTypes__["a" /* nodeContextTypes */]; -TreeNode.childContextTypes = __WEBPACK_IMPORTED_MODULE_13__contextTypes__["a" /* nodeContextTypes */]; -TreeNode.defaultProps = { - title: defaultTitle -}; - -var _initialiseProps = function _initialiseProps() { - var _this2 = this; - - this.onSelectorClick = function (e) { - // Click trigger before select/check operation - var onNodeClick = _this2.context.rcTree.onNodeClick; - - onNodeClick(e, _this2); - - if (_this2.isSelectable()) { - _this2.onSelect(e); - } else { - _this2.onCheck(e); - } - }; - - this.onSelectorDoubleClick = function (e) { - var onNodeDoubleClick = _this2.context.rcTree.onNodeDoubleClick; - - onNodeDoubleClick(e, _this2); - }; - - this.onSelect = function (e) { - if (_this2.isDisabled()) return; - - var onNodeSelect = _this2.context.rcTree.onNodeSelect; - - e.preventDefault(); - onNodeSelect(e, _this2); - }; - - this.onCheck = function (e) { - if (_this2.isDisabled()) return; - - var _props2 = _this2.props, - disableCheckbox = _props2.disableCheckbox, - checked = _props2.checked; - var _context$rcTree2 = _this2.context.rcTree, - checkable = _context$rcTree2.checkable, - onNodeCheck = _context$rcTree2.onNodeCheck; - - - if (!checkable || disableCheckbox) return; - - e.preventDefault(); - var targetChecked = !checked; - onNodeCheck(e, _this2, targetChecked); - }; - - this.onMouseEnter = function (e) { - var onNodeMouseEnter = _this2.context.rcTree.onNodeMouseEnter; - - onNodeMouseEnter(e, _this2); - }; - - this.onMouseLeave = function (e) { - var onNodeMouseLeave = _this2.context.rcTree.onNodeMouseLeave; - - onNodeMouseLeave(e, _this2); - }; - - this.onContextMenu = function (e) { - var onNodeContextMenu = _this2.context.rcTree.onNodeContextMenu; - - onNodeContextMenu(e, _this2); - }; - - this.onDragStart = function (e) { - var onNodeDragStart = _this2.context.rcTree.onNodeDragStart; - - - e.stopPropagation(); - _this2.setState({ - dragNodeHighlight: true - }); - onNodeDragStart(e, _this2); - - try { - // ie throw error - // firefox-need-it - e.dataTransfer.setData('text/plain', ''); - } catch (error) { - // empty - } - }; - - this.onDragEnter = function (e) { - var onNodeDragEnter = _this2.context.rcTree.onNodeDragEnter; - - - e.preventDefault(); - e.stopPropagation(); - onNodeDragEnter(e, _this2); - }; - - this.onDragOver = function (e) { - var onNodeDragOver = _this2.context.rcTree.onNodeDragOver; - - - e.preventDefault(); - e.stopPropagation(); - onNodeDragOver(e, _this2); - }; - - this.onDragLeave = function (e) { - var onNodeDragLeave = _this2.context.rcTree.onNodeDragLeave; - - - e.stopPropagation(); - onNodeDragLeave(e, _this2); - }; - - this.onDragEnd = function (e) { - var onNodeDragEnd = _this2.context.rcTree.onNodeDragEnd; - - - e.stopPropagation(); - _this2.setState({ - dragNodeHighlight: false - }); - onNodeDragEnd(e, _this2); - }; - - this.onDrop = function (e) { - var onNodeDrop = _this2.context.rcTree.onNodeDrop; - - - e.preventDefault(); - e.stopPropagation(); - _this2.setState({ - dragNodeHighlight: false - }); - onNodeDrop(e, _this2); - }; - - this.onExpand = function (e) { - var onNodeExpand = _this2.context.rcTree.onNodeExpand; - - onNodeExpand(e, _this2); - }; - - this.setSelectHandle = function (node) { - _this2.selectHandle = node; - }; - - this.getNodeChildren = function () { - var children = _this2.props.children; - - var originList = Object(__WEBPACK_IMPORTED_MODULE_11_rc_util_es_Children_toArray__["a" /* default */])(children).filter(function (node) { - return node; - }); - var targetList = Object(__WEBPACK_IMPORTED_MODULE_14__util__["k" /* getNodeChildren */])(originList); - - if (originList.length !== targetList.length) { - Object(__WEBPACK_IMPORTED_MODULE_14__util__["p" /* warnOnlyTreeNode */])(); - } - - return targetList; - }; - - this.getNodeState = function () { - var expanded = _this2.props.expanded; - - - if (_this2.isLeaf()) { - return null; - } - - return expanded ? ICON_OPEN : ICON_CLOSE; - }; - - this.isLeaf = function () { - var _props3 = _this2.props, - isLeaf = _props3.isLeaf, - loaded = _props3.loaded; - var loadData = _this2.context.rcTree.loadData; - - - var hasChildren = _this2.getNodeChildren().length !== 0; - - if (isLeaf === false) { - return false; - } - - return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren; - }; - - this.isDisabled = function () { - var disabled = _this2.props.disabled; - var treeDisabled = _this2.context.rcTree.disabled; - - // Follow the logic of Selectable - - if (disabled === false) { - return false; - } - - return !!(treeDisabled || disabled); - }; - - this.syncLoadData = function (props) { - var expanded = props.expanded, - loading = props.loading, - loaded = props.loaded; - var _context$rcTree3 = _this2.context.rcTree, - loadData = _context$rcTree3.loadData, - onNodeLoad = _context$rcTree3.onNodeLoad; - - - if (loading) return; - - // read from state to avoid loadData at same time - if (loadData && expanded && !_this2.isLeaf()) { - // We needn't reload data when has children in sync logic - // It's only needed in node expanded - var hasChildren = _this2.getNodeChildren().length !== 0; - if (!hasChildren && !loaded) { - onNodeLoad(_this2); - } - } - }; - - this.renderSwitcher = function () { - var _props4 = _this2.props, - expanded = _props4.expanded, - switcherIconFromProps = _props4.switcherIcon; - var _context$rcTree4 = _this2.context.rcTree, - prefixCls = _context$rcTree4.prefixCls, - switcherIconFromCtx = _context$rcTree4.switcherIcon; - - - var switcherIcon = switcherIconFromProps || switcherIconFromCtx; - - if (_this2.isLeaf()) { - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-switcher', prefixCls + '-switcher-noop') }, - typeof switcherIcon === 'function' ? switcherIcon(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props, { isLeaf: true })) : switcherIcon - ); - } - - var switcherCls = __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-switcher', prefixCls + '-switcher_' + (expanded ? ICON_OPEN : ICON_CLOSE)); - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { onClick: _this2.onExpand, className: switcherCls }, - typeof switcherIcon === 'function' ? switcherIcon(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props, { isLeaf: false })) : switcherIcon - ); - }; - - this.renderCheckbox = function () { - var _props5 = _this2.props, - checked = _props5.checked, - halfChecked = _props5.halfChecked, - disableCheckbox = _props5.disableCheckbox; - var _context$rcTree5 = _this2.context.rcTree, - prefixCls = _context$rcTree5.prefixCls, - checkable = _context$rcTree5.checkable; - - var disabled = _this2.isDisabled(); - - if (!checkable) return null; - - // [Legacy] Custom element should be separate with `checkable` in future - var $custom = typeof checkable !== 'boolean' ? checkable : null; - - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-checkbox', checked && prefixCls + '-checkbox-checked', !checked && halfChecked && prefixCls + '-checkbox-indeterminate', (disabled || disableCheckbox) && prefixCls + '-checkbox-disabled'), - onClick: _this2.onCheck - }, - $custom - ); - }; - - this.renderIcon = function () { - var loading = _this2.props.loading; - var prefixCls = _this2.context.rcTree.prefixCls; - - - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement('span', { - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-iconEle', prefixCls + '-icon__' + (_this2.getNodeState() || 'docu'), loading && prefixCls + '-icon_loading') - }); - }; - - this.renderSelector = function () { - var dragNodeHighlight = _this2.state.dragNodeHighlight; - var _props6 = _this2.props, - title = _props6.title, - selected = _props6.selected, - icon = _props6.icon, - loading = _props6.loading; - var _context$rcTree6 = _this2.context.rcTree, - prefixCls = _context$rcTree6.prefixCls, - showIcon = _context$rcTree6.showIcon, - treeIcon = _context$rcTree6.icon, - draggable = _context$rcTree6.draggable, - loadData = _context$rcTree6.loadData; - - var disabled = _this2.isDisabled(); - - var wrapClass = prefixCls + '-node-content-wrapper'; - - // Icon - Still show loading icon when loading without showIcon - var $icon = void 0; - - if (showIcon) { - var currentIcon = icon || treeIcon; - - $icon = currentIcon ? __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-iconEle', prefixCls + '-icon__customize') - }, - typeof currentIcon === 'function' ? __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(currentIcon, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, _this2.props)) : currentIcon - ) : _this2.renderIcon(); - } else if (loadData && loading) { - $icon = _this2.renderIcon(); - } - - // Title - var $title = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { className: prefixCls + '-title' }, - title - ); - - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'span', - { - ref: _this2.setSelectHandle, - title: typeof title === 'string' ? title : '', - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('' + wrapClass, wrapClass + '-' + (_this2.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && prefixCls + '-node-selected', !disabled && draggable && 'draggable'), - draggable: !disabled && draggable || undefined, - 'aria-grabbed': !disabled && draggable || undefined, - - onMouseEnter: _this2.onMouseEnter, - onMouseLeave: _this2.onMouseLeave, - onContextMenu: _this2.onContextMenu, - onClick: _this2.onSelectorClick, - onDoubleClick: _this2.onSelectorDoubleClick, - onDragStart: draggable ? _this2.onDragStart : undefined - }, - $icon, - $title - ); - }; - - this.renderChildren = function () { - var _props7 = _this2.props, - expanded = _props7.expanded, - pos = _props7.pos; - var _context$rcTree7 = _this2.context.rcTree, - prefixCls = _context$rcTree7.prefixCls, - openTransitionName = _context$rcTree7.openTransitionName, - openAnimation = _context$rcTree7.openAnimation, - renderTreeNode = _context$rcTree7.renderTreeNode; - - - var animProps = {}; - if (openTransitionName) { - animProps.transitionName = openTransitionName; - } else if (typeof openAnimation === 'object') { - animProps.animation = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, openAnimation); - } - - // Children TreeNode - var nodeList = _this2.getNodeChildren(); - - if (nodeList.length === 0) { - return null; - } - - var $children = void 0; - if (expanded) { - $children = __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - 'ul', - { - className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()(prefixCls + '-child-tree', expanded && prefixCls + '-child-tree-open'), - 'data-expanded': expanded, - role: 'group' - }, - Object(__WEBPACK_IMPORTED_MODULE_14__util__["m" /* mapChildren */])(nodeList, function (node, index) { - return renderTreeNode(node, index, pos); - }) - ); - } - - return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement( - __WEBPACK_IMPORTED_MODULE_10_rc_animate__["a" /* default */], - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, animProps, { - showProp: 'data-expanded', - component: '' - }), - $children - ); - }; -}; - -TreeNode.isTreeNode = 1; - -Object(__WEBPACK_IMPORTED_MODULE_12_react_lifecycles_compat__["a" /* polyfill */])(TreeNode); - -/* harmony default export */ __webpack_exports__["a"] = (TreeNode); - -/***/ }), -/* 64 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export genAnimateChild */ -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray__ = __webpack_require__(119); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(18); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(21); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_dom__ = __webpack_require__(65); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_dom__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_lifecycles_compat__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_component_classes__ = __webpack_require__(129); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_component_classes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_component_classes__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf__ = __webpack_require__(67); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_raf__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util__ = __webpack_require__(45); - - - - - - - - - - - - - - - -var clonePropList = ['appeared', 'show', 'exclusive', 'children', 'animation']; - -/** - * AnimateChild only accept one child node. - * `transitionSupport` is used for none transition test case. - * Default we use browser transition event support check. - */ -function genAnimateChild(transitionSupport) { - var AnimateChild = function (_React$Component) { - __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(AnimateChild, _React$Component); - - function AnimateChild() { - __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, AnimateChild); - - // [Legacy] Since old code addListener on the element. - // To avoid break the behaviour that component not handle animation/transition - // also can handle the animate, let keep the logic. - var _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).call(this)); - - _this.state = { - child: null, - - eventQueue: [], - eventActive: false - }; - - _this.onDomUpdated = function () { - var eventActive = _this.state.eventActive; - var _this$props = _this.props, - transitionName = _this$props.transitionName, - animation = _this$props.animation, - onChildLeaved = _this$props.onChildLeaved, - animateKey = _this$props.animateKey; - - - var $ele = _this.getDomElement(); - - // Skip if dom element not ready - if (!$ele) return; - - // [Legacy] Add animation/transition event by dom level - if (transitionSupport && _this.$prevEle !== $ele) { - _this.cleanDomEvent(); - - _this.$prevEle = $ele; - _this.$prevEle.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); - _this.$prevEle.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); - } - - var currentEvent = _this.getCurrentEvent(); - if (currentEvent.empty) { - // Additional process the leave event - if (currentEvent.lastEventType === 'leave') { - onChildLeaved(animateKey); - } - return; - } - - var eventType = currentEvent.eventType, - restQueue = currentEvent.restQueue; - - var nodeClasses = __WEBPACK_IMPORTED_MODULE_10_component_classes___default()($ele); - - // [Legacy] Since origin code use js to set `className`. - // This caused that any component without support `className` can be forced set. - // Let's keep the logic. - function legacyAppendClass() { - if (!transitionSupport) return; - - var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, '' + eventType); - if (basicClassName) nodeClasses.add(basicClassName); - - if (eventActive) { - var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, eventType + '-active'); - if (activeClassName) nodeClasses.add(activeClassName); - } - } - - if (_this.currentEvent && _this.currentEvent.type === eventType) { - legacyAppendClass(); - return; - } - - // Clear timeout for legacy check - clearTimeout(_this.timeout); - - // Clean up last event environment - if (_this.currentEvent && _this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) { - _this.currentEvent.animateObj.stop(); - } - - // Clean up last transition class - if (_this.currentEvent) { - var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, '' + _this.currentEvent.type); - var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type + '-active'); - if (basicClassName) nodeClasses.remove(basicClassName); - if (activeClassName) nodeClasses.remove(activeClassName); - } - - // New event come - _this.currentEvent = { - type: eventType - }; - - var animationHandler = (animation || {})[eventType]; - // =============== Check if has customize animation =============== - if (animationHandler) { - _this.currentEvent.animateObj = animationHandler($ele, function () { - _this.onMotionEnd({ target: $ele }); - }); - - // Do next step if not animate object provided - if (!_this.currentEvent || !_this.currentEvent.animateObj) { - _this.nextEvent(restQueue); - } - - // ==================== Use transition instead ==================== - } else if (transitionSupport) { - legacyAppendClass(); - if (!eventActive) { - // Trigger `eventActive` in next frame - __WEBPACK_IMPORTED_MODULE_11_raf___default()(function () { - if (_this.currentEvent && _this.currentEvent.type === eventType && !_this._destroy) { - _this.setState({ eventActive: true }, function () { - // [Legacy] Handle timeout if browser transition event not handle - var transitionDelay = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'transition-delay') || 0; - var transitionDuration = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'transition-duration') || 0; - var animationDelay = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'animation-delay') || 0; - var animationDuration = Object(__WEBPACK_IMPORTED_MODULE_12__util__["c" /* getStyleValue */])($ele, 'animation-duration') || 0; - var totalTime = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay); - - if (totalTime >= 0) { - _this.timeout = setTimeout(function () { - _this.onMotionEnd({ target: $ele }); - }, totalTime * 1000); - } - }); - } - }); - } - - // ======================= Just next action ======================= - } else { - _this.onMotionEnd({ target: $ele }); - } - }; - - _this.onMotionEnd = function (_ref) { - var target = _ref.target; - var _this$props2 = _this.props, - transitionName = _this$props2.transitionName, - onChildLeaved = _this$props2.onChildLeaved, - animateKey = _this$props2.animateKey, - onAppear = _this$props2.onAppear, - onEnter = _this$props2.onEnter, - onLeave = _this$props2.onLeave, - onEnd = _this$props2.onEnd; - - var currentEvent = _this.getCurrentEvent(); - if (currentEvent.empty) return; - - // Clear timeout for legacy check - clearTimeout(_this.timeout); - - var restQueue = currentEvent.restQueue; - - - var $ele = _this.getDomElement(); - if (!_this.currentEvent || $ele !== target) return; - - if (_this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) { - _this.currentEvent.animateObj.stop(); - } - - // [Legacy] Same as above, we need call js to remove the class - if (transitionSupport && _this.currentEvent) { - var basicClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type); - var activeClassName = Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, _this.currentEvent.type + '-active'); - - var nodeClasses = __WEBPACK_IMPORTED_MODULE_10_component_classes___default()($ele); - if (basicClassName) nodeClasses.remove(basicClassName); - if (activeClassName) nodeClasses.remove(activeClassName); - } - - // Additional process the leave event - if (_this.currentEvent && _this.currentEvent.type === 'leave') { - onChildLeaved(animateKey); - } - - // [Legacy] Trigger on event when it's last event - if (_this.currentEvent && !restQueue.length) { - if (_this.currentEvent.type === 'appear' && onAppear) { - onAppear(animateKey); - } else if (_this.currentEvent.type === 'enter' && onEnter) { - onEnter(animateKey); - } else if (_this.currentEvent.type === 'leave' && onLeave) { - onLeave(animateKey); - } - - if (onEnd) { - // OnEnd(key, isShow) - onEnd(animateKey, _this.currentEvent.type !== 'leave'); - } - } - - _this.currentEvent = null; - - // Next queue - _this.nextEvent(restQueue); - }; - - _this.getDomElement = function () { - if (_this._destroy) return null; - return __WEBPACK_IMPORTED_MODULE_6_react_dom___default.a.findDOMNode(_this); - }; - - _this.getCurrentEvent = function () { - var _this$state$eventQueu = _this.state.eventQueue, - eventQueue = _this$state$eventQueu === undefined ? [] : _this$state$eventQueu; - var _this$props3 = _this.props, - animation = _this$props3.animation, - exclusive = _this$props3.exclusive, - transitionAppear = _this$props3.transitionAppear, - transitionEnter = _this$props3.transitionEnter, - transitionLeave = _this$props3.transitionLeave; - - - function hasEventHandler(eventType) { - return eventType === 'appear' && (transitionAppear || animation.appear) || eventType === 'enter' && (transitionEnter || animation.enter) || eventType === 'leave' && (transitionLeave || animation.leave); - } - - var event = null; - // If is exclusive, only check the last event - if (exclusive) { - var eventType = eventQueue[eventQueue.length - 1]; - if (hasEventHandler(eventType)) { - event = { - eventType: eventType, - restQueue: [] - }; - } - } else { - // Loop check the queue until find match - var cloneQueue = eventQueue.slice(); - while (cloneQueue.length) { - var _cloneQueue = cloneQueue, - _cloneQueue2 = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toArray___default()(_cloneQueue), - _eventType = _cloneQueue2[0], - restQueue = _cloneQueue2.slice(1); - - if (hasEventHandler(_eventType)) { - event = { - eventType: _eventType, - restQueue: restQueue - }; - break; - } - cloneQueue = restQueue; - } - } - - if (!event) { - event = { - empty: true, - lastEventType: eventQueue[eventQueue.length - 1] - }; - } - - return event; - }; - - _this.nextEvent = function (restQueue) { - // Next queue - if (!_this._destroy) { - _this.setState({ - eventQueue: restQueue, - eventActive: false - }); - } - }; - - _this.cleanDomEvent = function () { - if (_this.$prevEle && transitionSupport) { - _this.$prevEle.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); - _this.$prevEle.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); - } - }; - - _this.$prevEle = null; - - _this.currentEvent = null; - _this.timeout = null; - return _this; - } - - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(AnimateChild, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.onDomUpdated(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.onDomUpdated(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - clearTimeout(this.timeout); - this._destroy = true; - this.cleanDomEvent(); - } - }, { - key: 'render', - value: function render() { - var _state = this.state, - child = _state.child, - eventActive = _state.eventActive; - var _props = this.props, - showProp = _props.showProp, - transitionName = _props.transitionName; - - var _ref2 = child.props || {}, - className = _ref2.className; - - var currentEvent = this.getCurrentEvent(); - - // Class name - var connectClassName = transitionSupport && this.currentEvent ? __WEBPACK_IMPORTED_MODULE_9_classnames___default()(className, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, this.currentEvent.type), eventActive && Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(transitionName, this.currentEvent.type + '-active')) : className; - - var show = true; - - // Keep show when is in transition or has customize animate - if (transitionSupport && (!currentEvent.empty || this.currentEvent && this.currentEvent.animateObj)) { - show = true; - } else { - show = child.props[showProp]; - } - - // Clone child - var newChildProps = { - className: connectClassName - }; - - if (showProp) { - newChildProps[showProp] = show; - } - - return __WEBPACK_IMPORTED_MODULE_5_react___default.a.cloneElement(child, newChildProps); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(nextProps, prevState) { - var _prevState$prevProps = prevState.prevProps, - prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps; - var appeared = nextProps.appeared; - - - var newState = { - prevProps: Object(__WEBPACK_IMPORTED_MODULE_12__util__["b" /* cloneProps */])(nextProps, clonePropList) - }; - - function processState(propName, updater) { - if (prevProps[propName] !== nextProps[propName]) { - if (updater) { - updater(nextProps[propName]); - } - return true; - } - return false; - } - - function pushEvent(eventType) { - var eventQueue = newState.eventQueue || prevState.eventQueue.slice(); - var matchIndex = eventQueue.indexOf(eventType); - - // Clean the rest event if eventType match - if (matchIndex !== -1) { - eventQueue = eventQueue.slice(0, matchIndex); - } - - eventQueue.push(eventType); - newState.eventQueue = eventQueue; - } - - // Child update. Only set child. - processState('children', function (child) { - newState.child = child; - }); - - processState('appeared', function (isAppeared) { - if (isAppeared) { - pushEvent('appear'); - } - }); - - // Show update - processState('show', function (show) { - if (!appeared) { - if (show) { - pushEvent('enter'); - } else { - pushEvent('leave'); - } - } - }); - - return newState; - } - }]); - - return AnimateChild; - }(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); - - AnimateChild.propTypes = { - transitionName: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), - transitionAppear: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - transitionEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - transitionLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - exclusive: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - appeared: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - showProp: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, - - animateKey: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.any, - animation: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object, - onChildLeaved: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - - onEnd: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onAppear: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func - }; - - - Object(__WEBPACK_IMPORTED_MODULE_8_react_lifecycles_compat__["a" /* polyfill */])(AnimateChild); - - return AnimateChild; -} - -/* harmony default export */ __webpack_exports__["a"] = (genAnimateChild(__WEBPACK_IMPORTED_MODULE_12__util__["f" /* supportTransition */])); - -/***/ }), -/* 65 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_65__; - -/***/ }), -/* 66 */ -/***/ (function(module, exports) { - -module.exports = function(arr, obj){ - if (arr.indexOf) return arr.indexOf(obj); - for (var i = 0; i < arr.length; ++i) { - if (arr[i] === obj) return i; - } - return -1; -}; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(131) - , root = typeof window === 'undefined' ? global : window - , vendors = ['moz', 'webkit'] - , suffix = 'AnimationFrame' - , raf = root['request' + suffix] - , caf = root['cancel' + suffix] || root['cancelRequest' + suffix] - -for(var i = 0; !raf && i < vendors.length; i++) { - raf = root[vendors[i] + 'Request' + suffix] - caf = root[vendors[i] + 'Cancel' + suffix] - || root[vendors[i] + 'CancelRequest' + suffix] -} - -// Some versions of FF have rAF but not cAF -if(!raf || !caf) { - var last = 0 - , id = 0 - , queue = [] - , frameDuration = 1000 / 60 - - raf = function(callback) { - if(queue.length === 0) { - var _now = now() - , next = Math.max(0, frameDuration - (_now - last)) - last = next + _now - setTimeout(function() { - var cp = queue.slice(0) - // Clear queue here to prevent - // callbacks from appending listeners - // to the current frame's queue - queue.length = 0 - for(var i = 0; i < cp.length; i++) { - if(!cp[i].cancelled) { - try{ - cp[i].callback(last) - } catch(e) { - setTimeout(function() { throw e }, 0) - } - } - } - }, Math.round(next)) - } - queue.push({ - handle: ++id, - callback: callback, - cancelled: false - }) - return id - } - - caf = function(handle) { - for(var i = 0; i < queue.length; i++) { - if(queue[i].handle === handle) { - queue[i].cancelled = true - } - } - } -} - -module.exports = function(fn) { - // Wrap in a new function to prevent - // `cancel` potentially being assigned - // to the native rAF function - return raf.call(root, fn) -} -module.exports.cancel = function() { - caf.apply(root, arguments) -} -module.exports.polyfill = function(object) { - if (!object) { - object = root; - } - object.requestAnimationFrame = raf - object.cancelAnimationFrame = caf -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(130))) - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(69); -module.exports = __webpack_require__(70); - - -/***/ }), -/* 69 */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), -/* 70 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Tree__ = __webpack_require__(71); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TreeNode__ = __webpack_require__(63); -/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TreeNode", function() { return __WEBPACK_IMPORTED_MODULE_1__TreeNode__["a"]; }); - - - -__WEBPACK_IMPORTED_MODULE_0__Tree__["a" /* default */].TreeNode = __WEBPACK_IMPORTED_MODULE_1__TreeNode__["a" /* default */]; - - -/* harmony default export */ __webpack_exports__["default"] = (__WEBPACK_IMPORTED_MODULE_0__Tree__["a" /* default */]); - -/***/ }), -/* 71 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(18); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(21); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_warning__ = __webpack_require__(59); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_rc_util_es_Children_toArray__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_lifecycles_compat__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__contextTypes__ = __webpack_require__(60); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__util__ = __webpack_require__(61); - - - - - - - - - - - - - - - - -var Tree = function (_React$Component) { - __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(Tree, _React$Component); - - function Tree(props) { - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, Tree); - - var _this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, (Tree.__proto__ || Object.getPrototypeOf(Tree)).call(this, props)); - - _this.onNodeDragStart = function (event, node) { - var expandedKeys = _this.state.expandedKeys; - var onDragStart = _this.props.onDragStart; - var _node$props = node.props, - eventKey = _node$props.eventKey, - children = _node$props.children; - - - _this.dragNode = node; - - _this.setState({ - dragNodesKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["j" /* getDragNodesKeys */])(children, node), - expandedKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(expandedKeys, eventKey) - }); - - if (onDragStart) { - onDragStart({ event: event, node: node }); - } - }; - - _this.onNodeDragEnter = function (event, node) { - var expandedKeys = _this.state.expandedKeys; - var onDragEnter = _this.props.onDragEnter; - var _node$props2 = node.props, - pos = _node$props2.pos, - eventKey = _node$props2.eventKey; - - - if (!_this.dragNode) return; - - var dropPosition = Object(__WEBPACK_IMPORTED_MODULE_13__util__["c" /* calcDropPosition */])(event, node); - - // Skip if drag node is self - if (_this.dragNode.props.eventKey === eventKey && dropPosition === 0) { - _this.setState({ - dragOverNodeKey: '', - dropPosition: null - }); - return; - } - - // Ref: https://github.com/react-component/tree/issues/132 - // Add timeout to let onDragLevel fire before onDragEnter, - // so that we can clean drag props for onDragLeave node. - // Macro task for this: - // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script - setTimeout(function () { - // Update drag over node - _this.setState({ - dragOverNodeKey: eventKey, - dropPosition: dropPosition - }); - - // Side effect for delay drag - if (!_this.delayedDragEnterLogic) { - _this.delayedDragEnterLogic = {}; - } - Object.keys(_this.delayedDragEnterLogic).forEach(function (key) { - clearTimeout(_this.delayedDragEnterLogic[key]); - }); - _this.delayedDragEnterLogic[pos] = setTimeout(function () { - var newExpandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(expandedKeys, eventKey); - if (!('expandedKeys' in _this.props)) { - _this.setState({ - expandedKeys: newExpandedKeys - }); - } - - if (onDragEnter) { - onDragEnter({ event: event, node: node, expandedKeys: newExpandedKeys }); - } - }, 400); - }, 0); - }; - - _this.onNodeDragOver = function (event, node) { - var onDragOver = _this.props.onDragOver; - var eventKey = node.props.eventKey; - - // Update drag position - - if (_this.dragNode && eventKey === _this.state.dragOverNodeKey) { - var dropPosition = Object(__WEBPACK_IMPORTED_MODULE_13__util__["c" /* calcDropPosition */])(event, node); - - if (dropPosition === _this.state.dropPosition) return; - - _this.setState({ - dropPosition: dropPosition - }); - } - - if (onDragOver) { - onDragOver({ event: event, node: node }); - } - }; - - _this.onNodeDragLeave = function (event, node) { - var onDragLeave = _this.props.onDragLeave; - - - _this.setState({ - dragOverNodeKey: '' - }); - - if (onDragLeave) { - onDragLeave({ event: event, node: node }); - } - }; - - _this.onNodeDragEnd = function (event, node) { - var onDragEnd = _this.props.onDragEnd; - - _this.setState({ - dragOverNodeKey: '' - }); - if (onDragEnd) { - onDragEnd({ event: event, node: node }); - } - - _this.dragNode = null; - }; - - _this.onNodeDrop = function (event, node) { - var _this$state = _this.state, - _this$state$dragNodes = _this$state.dragNodesKeys, - dragNodesKeys = _this$state$dragNodes === undefined ? [] : _this$state$dragNodes, - dropPosition = _this$state.dropPosition; - var onDrop = _this.props.onDrop; - var _node$props3 = node.props, - eventKey = _node$props3.eventKey, - pos = _node$props3.pos; - - - _this.setState({ - dragOverNodeKey: '' - }); - - if (dragNodesKeys.indexOf(eventKey) !== -1) { - __WEBPACK_IMPORTED_MODULE_9_warning___default()(false, 'Can not drop to dragNode(include it\'s children node)'); - return; - } - - var posArr = Object(__WEBPACK_IMPORTED_MODULE_13__util__["o" /* posToArr */])(pos); - - var dropResult = { - event: event, - node: node, - dragNode: _this.dragNode, - dragNodesKeys: dragNodesKeys.slice(), - dropPosition: dropPosition + Number(posArr[posArr.length - 1]) - }; - - if (dropPosition !== 0) { - dropResult.dropToGap = true; - } - - if (onDrop) { - onDrop(dropResult); - } - - _this.dragNode = null; - }; - - _this.onNodeClick = function (e, treeNode) { - var onClick = _this.props.onClick; - - if (onClick) { - onClick(e, treeNode); - } - }; - - _this.onNodeDoubleClick = function (e, treeNode) { - var onDoubleClick = _this.props.onDoubleClick; - - if (onDoubleClick) { - onDoubleClick(e, treeNode); - } - }; - - _this.onNodeSelect = function (e, treeNode) { - var selectedKeys = _this.state.selectedKeys; - var keyEntities = _this.state.keyEntities; - var _this$props = _this.props, - onSelect = _this$props.onSelect, - multiple = _this$props.multiple; - var _treeNode$props = treeNode.props, - selected = _treeNode$props.selected, - eventKey = _treeNode$props.eventKey; - - var targetSelected = !selected; - - // Update selected keys - if (!targetSelected) { - selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(selectedKeys, eventKey); - } else if (!multiple) { - selectedKeys = [eventKey]; - } else { - selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(selectedKeys, eventKey); - } - - // [Legacy] Not found related usage in doc or upper libs - var selectedNodes = selectedKeys.map(function (key) { - var entity = keyEntities[key]; - if (!entity) return null; - - return entity.node; - }).filter(function (node) { - return node; - }); - - _this.setUncontrolledState({ selectedKeys: selectedKeys }); - - if (onSelect) { - var eventObj = { - event: 'select', - selected: targetSelected, - node: treeNode, - selectedNodes: selectedNodes, - nativeEvent: e.nativeEvent - }; - onSelect(selectedKeys, eventObj); - } - }; - - _this.onNodeCheck = function (e, treeNode, checked) { - var _this$state2 = _this.state, - keyEntities = _this$state2.keyEntities, - oriCheckedKeys = _this$state2.checkedKeys, - oriHalfCheckedKeys = _this$state2.halfCheckedKeys; - var _this$props2 = _this.props, - checkStrictly = _this$props2.checkStrictly, - onCheck = _this$props2.onCheck; - var eventKey = treeNode.props.eventKey; - - // Prepare trigger arguments - - var checkedObj = void 0; - var eventObj = { - event: 'check', - node: treeNode, - checked: checked, - nativeEvent: e.nativeEvent - }; - - if (checkStrictly) { - var checkedKeys = checked ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(oriCheckedKeys, eventKey) : Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(oriCheckedKeys, eventKey); - var halfCheckedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(oriHalfCheckedKeys, eventKey); - checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys }; - - eventObj.checkedNodes = checkedKeys.map(function (key) { - return keyEntities[key]; - }).filter(function (entity) { - return entity; - }).map(function (entity) { - return entity.node; - }); - - _this.setUncontrolledState({ checkedKeys: checkedKeys }); - } else { - var _conductCheck = Object(__WEBPACK_IMPORTED_MODULE_13__util__["e" /* conductCheck */])([eventKey], checked, keyEntities, { - checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys - }), - _checkedKeys = _conductCheck.checkedKeys, - _halfCheckedKeys = _conductCheck.halfCheckedKeys; - - checkedObj = _checkedKeys; - - // [Legacy] This is used for `rc-tree-select` - eventObj.checkedNodes = []; - eventObj.checkedNodesPositions = []; - eventObj.halfCheckedKeys = _halfCheckedKeys; - - _checkedKeys.forEach(function (key) { - var entity = keyEntities[key]; - if (!entity) return; - - var node = entity.node, - pos = entity.pos; - - - eventObj.checkedNodes.push(node); - eventObj.checkedNodesPositions.push({ node: node, pos: pos }); - }); - - _this.setUncontrolledState({ - checkedKeys: _checkedKeys, - halfCheckedKeys: _halfCheckedKeys - }); - } - - if (onCheck) { - onCheck(checkedObj, eventObj); - } - }; - - _this.onNodeLoad = function (treeNode) { - return new Promise(function (resolve) { - // We need to get the latest state of loading/loaded keys - _this.setState(function (_ref) { - var _ref$loadedKeys = _ref.loadedKeys, - loadedKeys = _ref$loadedKeys === undefined ? [] : _ref$loadedKeys, - _ref$loadingKeys = _ref.loadingKeys, - loadingKeys = _ref$loadingKeys === undefined ? [] : _ref$loadingKeys; - var _this$props3 = _this.props, - loadData = _this$props3.loadData, - onLoad = _this$props3.onLoad; - var eventKey = treeNode.props.eventKey; - - - if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) { - // react 15 will warn if return null - return {}; - } - - // Process load data - var promise = loadData(treeNode); - promise.then(function () { - var newLoadedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(_this.state.loadedKeys, eventKey); - var newLoadingKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(_this.state.loadingKeys, eventKey); - - // onLoad should trigger before internal setState to avoid `loadData` trigger twice. - // https://github.com/ant-design/ant-design/issues/12464 - if (onLoad) { - var eventObj = { - event: 'load', - node: treeNode - }; - onLoad(newLoadedKeys, eventObj); - } - - _this.setUncontrolledState({ - loadedKeys: newLoadedKeys - }); - _this.setState({ - loadingKeys: newLoadingKeys - }); - - resolve(); - }); - - return { - loadingKeys: Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(loadingKeys, eventKey) - }; - }); - }); - }; - - _this.onNodeExpand = function (e, treeNode) { - var expandedKeys = _this.state.expandedKeys; - var _this$props4 = _this.props, - onExpand = _this$props4.onExpand, - loadData = _this$props4.loadData; - var _treeNode$props2 = treeNode.props, - eventKey = _treeNode$props2.eventKey, - expanded = _treeNode$props2.expanded; - - // Update selected keys - - var index = expandedKeys.indexOf(eventKey); - var targetExpanded = !expanded; - - __WEBPACK_IMPORTED_MODULE_9_warning___default()(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check'); - - if (targetExpanded) { - expandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["a" /* arrAdd */])(expandedKeys, eventKey); - } else { - expandedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["b" /* arrDel */])(expandedKeys, eventKey); - } - - _this.setUncontrolledState({ expandedKeys: expandedKeys }); - - if (onExpand) { - onExpand(expandedKeys, { - node: treeNode, - expanded: targetExpanded, - nativeEvent: e.nativeEvent - }); - } - - // Async Load data - if (targetExpanded && loadData) { - var loadPromise = _this.onNodeLoad(treeNode); - return loadPromise ? loadPromise.then(function () { - // [Legacy] Refresh logic - _this.setUncontrolledState({ expandedKeys: expandedKeys }); - }) : null; - } - - return null; - }; - - _this.onNodeMouseEnter = function (event, node) { - var onMouseEnter = _this.props.onMouseEnter; - - if (onMouseEnter) { - onMouseEnter({ event: event, node: node }); - } - }; - - _this.onNodeMouseLeave = function (event, node) { - var onMouseLeave = _this.props.onMouseLeave; - - if (onMouseLeave) { - onMouseLeave({ event: event, node: node }); - } - }; - - _this.onNodeContextMenu = function (event, node) { - var onRightClick = _this.props.onRightClick; - - if (onRightClick) { - event.preventDefault(); - onRightClick({ event: event, node: node }); - } - }; - - _this.setUncontrolledState = function (state) { - var needSync = false; - var newState = {}; - - Object.keys(state).forEach(function (name) { - if (name in _this.props) return; - - needSync = true; - newState[name] = state[name]; - }); - - if (needSync) { - _this.setState(newState); - } - }; - - _this.registerTreeNode = function (key, node) { - if (node) { - _this.domTreeNodes[key] = node; - } else { - delete _this.domTreeNodes[key]; - } - }; - - _this.isKeyChecked = function (key) { - var _this$state$checkedKe = _this.state.checkedKeys, - checkedKeys = _this$state$checkedKe === undefined ? [] : _this$state$checkedKe; - - return checkedKeys.indexOf(key) !== -1; - }; - - _this.renderTreeNode = function (child, index) { - var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - var _this$state3 = _this.state, - keyEntities = _this$state3.keyEntities, - _this$state3$expanded = _this$state3.expandedKeys, - expandedKeys = _this$state3$expanded === undefined ? [] : _this$state3$expanded, - _this$state3$selected = _this$state3.selectedKeys, - selectedKeys = _this$state3$selected === undefined ? [] : _this$state3$selected, - _this$state3$halfChec = _this$state3.halfCheckedKeys, - halfCheckedKeys = _this$state3$halfChec === undefined ? [] : _this$state3$halfChec, - _this$state3$loadedKe = _this$state3.loadedKeys, - loadedKeys = _this$state3$loadedKe === undefined ? [] : _this$state3$loadedKe, - _this$state3$loadingK = _this$state3.loadingKeys, - loadingKeys = _this$state3$loadingK === undefined ? [] : _this$state3$loadingK, - dragOverNodeKey = _this$state3.dragOverNodeKey, - dropPosition = _this$state3.dropPosition; - - var pos = Object(__WEBPACK_IMPORTED_MODULE_13__util__["l" /* getPosition */])(level, index); - var key = child.key || pos; - - if (!keyEntities[key]) { - Object(__WEBPACK_IMPORTED_MODULE_13__util__["p" /* warnOnlyTreeNode */])(); - return null; - } - - return __WEBPACK_IMPORTED_MODULE_6_react___default.a.cloneElement(child, { - key: key, - eventKey: key, - expanded: expandedKeys.indexOf(key) !== -1, - selected: selectedKeys.indexOf(key) !== -1, - loaded: loadedKeys.indexOf(key) !== -1, - loading: loadingKeys.indexOf(key) !== -1, - checked: _this.isKeyChecked(key), - halfChecked: halfCheckedKeys.indexOf(key) !== -1, - pos: pos, - - // [Legacy] Drag props - dragOver: dragOverNodeKey === key && dropPosition === 0, - dragOverGapTop: dragOverNodeKey === key && dropPosition === -1, - dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1 - }); - }; - - _this.state = { - // TODO: Remove this eslint - posEntities: {}, // eslint-disable-line react/no-unused-state - keyEntities: {}, - - selectedKeys: [], - checkedKeys: [], - halfCheckedKeys: [], - loadedKeys: [], - loadingKeys: [], - - treeNode: [] - }; - - // Internal usage for `rc-tree-select`, we don't promise it will not change. - _this.domTreeNodes = {}; - return _this; - } - - __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(Tree, [{ - key: 'getChildContext', - value: function getChildContext() { - var _props = this.props, - prefixCls = _props.prefixCls, - selectable = _props.selectable, - showIcon = _props.showIcon, - icon = _props.icon, - draggable = _props.draggable, - checkable = _props.checkable, - checkStrictly = _props.checkStrictly, - disabled = _props.disabled, - loadData = _props.loadData, - filterTreeNode = _props.filterTreeNode, - openTransitionName = _props.openTransitionName, - openAnimation = _props.openAnimation, - switcherIcon = _props.switcherIcon; - - - return { - rcTree: { - // root: this, - - prefixCls: prefixCls, - selectable: selectable, - showIcon: showIcon, - icon: icon, - switcherIcon: switcherIcon, - draggable: draggable, - checkable: checkable, - checkStrictly: checkStrictly, - disabled: disabled, - openTransitionName: openTransitionName, - openAnimation: openAnimation, - - loadData: loadData, - filterTreeNode: filterTreeNode, - renderTreeNode: this.renderTreeNode, - isKeyChecked: this.isKeyChecked, - - onNodeClick: this.onNodeClick, - onNodeDoubleClick: this.onNodeDoubleClick, - onNodeExpand: this.onNodeExpand, - onNodeSelect: this.onNodeSelect, - onNodeCheck: this.onNodeCheck, - onNodeLoad: this.onNodeLoad, - onNodeMouseEnter: this.onNodeMouseEnter, - onNodeMouseLeave: this.onNodeMouseLeave, - onNodeContextMenu: this.onNodeContextMenu, - onNodeDragStart: this.onNodeDragStart, - onNodeDragEnter: this.onNodeDragEnter, - onNodeDragOver: this.onNodeDragOver, - onNodeDragLeave: this.onNodeDragLeave, - onNodeDragEnd: this.onNodeDragEnd, - onNodeDrop: this.onNodeDrop, - - registerTreeNode: this.registerTreeNode - } - }; - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var treeNode = this.state.treeNode; - var _props2 = this.props, - prefixCls = _props2.prefixCls, - className = _props2.className, - focusable = _props2.focusable, - style = _props2.style, - showLine = _props2.showLine, - _props2$tabIndex = _props2.tabIndex, - tabIndex = _props2$tabIndex === undefined ? 0 : _props2$tabIndex; - - var domProps = Object(__WEBPACK_IMPORTED_MODULE_13__util__["i" /* getDataAndAria */])(this.props); - - if (focusable) { - domProps.tabIndex = tabIndex; - domProps.onKeyDown = this.onKeyDown; - } - - return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement( - 'ul', - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, domProps, { - className: __WEBPACK_IMPORTED_MODULE_8_classnames___default()(prefixCls, className, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, prefixCls + '-show-line', showLine)), - style: style, - role: 'tree', - unselectable: 'on' - }), - Object(__WEBPACK_IMPORTED_MODULE_13__util__["m" /* mapChildren */])(treeNode, function (node, index) { - return _this2.renderTreeNode(node, index); - }) - ); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(props, prevState) { - var prevProps = prevState.prevProps; - - var newState = { - prevProps: props - }; - - function needSync(name) { - return !prevProps && name in props || prevProps && prevProps[name] !== props[name]; - } - - // ================== Tree Node ================== - var treeNode = null; - - // Check if `treeData` or `children` changed and save into the state. - if (needSync('treeData')) { - treeNode = Object(__WEBPACK_IMPORTED_MODULE_13__util__["g" /* convertDataToTree */])(props.treeData); - } else if (needSync('children')) { - treeNode = Object(__WEBPACK_IMPORTED_MODULE_10_rc_util_es_Children_toArray__["a" /* default */])(props.children); - } - - // Tree support filter function which will break the tree structure in the vdm. - // We cache the treeNodes in state so that we can return the treeNode in event trigger. - if (treeNode) { - newState.treeNode = treeNode; - - // Calculate the entities data for quick match - var entitiesMap = Object(__WEBPACK_IMPORTED_MODULE_13__util__["h" /* convertTreeToEntities */])(treeNode); - newState.posEntities = entitiesMap.posEntities; - newState.keyEntities = entitiesMap.keyEntities; - } - - var keyEntities = newState.keyEntities || prevState.keyEntities; - - // ================ expandedKeys ================= - if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) { - newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["f" /* conductExpandParent */])(props.expandedKeys, keyEntities) : props.expandedKeys; - } else if (!prevProps && props.defaultExpandAll) { - newState.expandedKeys = Object.keys(keyEntities); - } else if (!prevProps && props.defaultExpandedKeys) { - newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? Object(__WEBPACK_IMPORTED_MODULE_13__util__["f" /* conductExpandParent */])(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys; - } - - // ================ selectedKeys ================= - if (props.selectable) { - if (needSync('selectedKeys')) { - newState.selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["d" /* calcSelectedKeys */])(props.selectedKeys, props); - } else if (!prevProps && props.defaultSelectedKeys) { - newState.selectedKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["d" /* calcSelectedKeys */])(props.defaultSelectedKeys, props); - } - } - - // ================= checkedKeys ================= - if (props.checkable) { - var checkedKeyEntity = void 0; - - if (needSync('checkedKeys')) { - checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.checkedKeys) || {}; - } else if (!prevProps && props.defaultCheckedKeys) { - checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.defaultCheckedKeys) || {}; - } else if (treeNode) { - // If treeNode changed, we also need check it - checkedKeyEntity = Object(__WEBPACK_IMPORTED_MODULE_13__util__["n" /* parseCheckedKeys */])(props.checkedKeys) || { - checkedKeys: prevState.checkedKeys, - halfCheckedKeys: prevState.halfCheckedKeys - }; - } - - if (checkedKeyEntity) { - var _checkedKeyEntity = checkedKeyEntity, - _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys, - checkedKeys = _checkedKeyEntity$che === undefined ? [] : _checkedKeyEntity$che, - _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys, - halfCheckedKeys = _checkedKeyEntity$hal === undefined ? [] : _checkedKeyEntity$hal; - - - if (!props.checkStrictly) { - var conductKeys = Object(__WEBPACK_IMPORTED_MODULE_13__util__["e" /* conductCheck */])(checkedKeys, true, keyEntities); - checkedKeys = conductKeys.checkedKeys; - halfCheckedKeys = conductKeys.halfCheckedKeys; - } - - newState.checkedKeys = checkedKeys; - newState.halfCheckedKeys = halfCheckedKeys; - } - } - // ================= loadedKeys ================== - if (needSync('loadedKeys')) { - newState.loadedKeys = props.loadedKeys; - } - - return newState; - } - - /** - * [Legacy] Select handler is less small than node, - * so that this will trigger when drag enter node or select handler. - * This is a little tricky if customize css without padding. - * Better for use mouse move event to refresh drag state. - * But let's just keep it to avoid event trigger logic change. - */ - - - /** - * Only update the value which is not in props - */ - - - /** - * [Legacy] Original logic use `key` as tracking clue. - * We have to use `cloneElement` to pass `key`. - */ - - }]); - - return Tree; -}(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Component); - -Tree.propTypes = { - prefixCls: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, - className: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, - style: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object, - tabIndex: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number]), - children: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.any, - treeData: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.array, // Generate treeNode by children - showLine: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - showIcon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - icon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]), - focusable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - selectable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - disabled: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - multiple: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - checkable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node]), - checkStrictly: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - draggable: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - defaultExpandParent: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - autoExpandParent: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - defaultExpandAll: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.bool, - defaultExpandedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - expandedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - defaultCheckedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - checkedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.number])), __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), - defaultSelectedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - selectedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - onClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDoubleClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onExpand: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onCheck: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onSelect: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onLoad: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - loadData: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - loadedKeys: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.arrayOf(__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string), - onMouseEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onMouseLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onRightClick: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDragStart: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDragEnter: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDragOver: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDragLeave: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDragEnd: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - onDrop: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - filterTreeNode: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func, - openTransitionName: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, - openAnimation: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.object]), - switcherIcon: __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.node, __WEBPACK_IMPORTED_MODULE_7_prop_types___default.a.func]) -}; -Tree.childContextTypes = __WEBPACK_IMPORTED_MODULE_12__contextTypes__["b" /* treeContextTypes */]; -Tree.defaultProps = { - prefixCls: 'rc-tree', - showLine: false, - showIcon: true, - selectable: true, - multiple: false, - checkable: false, - disabled: false, - checkStrictly: false, - draggable: false, - defaultExpandParent: true, - autoExpandParent: false, - defaultExpandAll: false, - defaultExpandedKeys: [], - defaultCheckedKeys: [], - defaultSelectedKeys: [] -}; - - -Object(__WEBPACK_IMPORTED_MODULE_11_react_lifecycles_compat__["a" /* polyfill */])(Tree); - -/* harmony default export */ __webpack_exports__["a"] = (Tree); - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(73), __esModule: true }; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(74); -module.exports = __webpack_require__(0).Object.assign; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.1 Object.assign(target, source) -var $export = __webpack_require__(5); - -$export($export.S + $export.F, 'Object', { assign: __webpack_require__(76) }); - - -/***/ }), -/* 75 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// 19.1.2.1 Object.assign(target, source, ...) -var getKeys = __webpack_require__(24); -var gOPS = __webpack_require__(37); -var pIE = __webpack_require__(27); -var toObject = __webpack_require__(38); -var IObject = __webpack_require__(49); -var $assign = Object.assign; - -// should work with symbols and should have deterministic property order (V8 bug) -module.exports = !$assign || __webpack_require__(15)(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(12); -var toLength = __webpack_require__(50); -var toAbsoluteIndex = __webpack_require__(78); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(80); -var $Object = __webpack_require__(0).Object; -module.exports = function defineProperty(it, key, desc) { - return $Object.defineProperty(it, key, desc); -}; - - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(5); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperty: __webpack_require__(3).f }); - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(82), __esModule: true }; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(53); -__webpack_require__(88); -module.exports = __webpack_require__(42).f('iterator'); - - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var defined = __webpack_require__(32); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(40); -var descriptor = __webpack_require__(16); -var setToStringTag = __webpack_require__(41); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(9)(IteratorPrototype, __webpack_require__(1)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(24); - -module.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(2).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(7); -var toObject = __webpack_require__(38); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(89); -var global = __webpack_require__(2); -var hide = __webpack_require__(9); -var Iterators = __webpack_require__(20); -var TO_STRING_TAG = __webpack_require__(1)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(90); -var step = __webpack_require__(91); -var Iterators = __webpack_require__(20); -var toIObject = __webpack_require__(12); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(54)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 90 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 91 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(93), __esModule: true }; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(94); -__webpack_require__(99); -__webpack_require__(100); -__webpack_require__(101); -module.exports = __webpack_require__(0).Symbol; - - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(2); -var has = __webpack_require__(7); -var DESCRIPTORS = __webpack_require__(6); -var $export = __webpack_require__(5); -var redefine = __webpack_require__(55); -var META = __webpack_require__(95).KEY; -var $fails = __webpack_require__(15); -var shared = __webpack_require__(35); -var setToStringTag = __webpack_require__(41); -var uid = __webpack_require__(26); -var wks = __webpack_require__(1); -var wksExt = __webpack_require__(42); -var wksDefine = __webpack_require__(43); -var enumKeys = __webpack_require__(96); -var isArray = __webpack_require__(97); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(11); -var toIObject = __webpack_require__(12); -var toPrimitive = __webpack_require__(30); -var createDesc = __webpack_require__(16); -var _create = __webpack_require__(40); -var gOPNExt = __webpack_require__(98); -var $GOPD = __webpack_require__(57); -var $DP = __webpack_require__(3); -var $keys = __webpack_require__(24); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(56).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(27).f = $propertyIsEnumerable; - __webpack_require__(37).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(25)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 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 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(9)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(26)('meta'); -var isObject = __webpack_require__(11); -var has = __webpack_require__(7); -var setDesc = __webpack_require__(3).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(15)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(24); -var gOPS = __webpack_require__(37); -var pIE = __webpack_require__(27); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(31); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(12); -var gOPN = __webpack_require__(56).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 99 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(43)('asyncIterator'); - - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(43)('observable'); - - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(103), __esModule: true }; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(104); -module.exports = __webpack_require__(0).Object.setPrototypeOf; - - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.19 Object.setPrototypeOf(O, proto) -var $export = __webpack_require__(5); -$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(105).set }); - - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__(11); -var anObject = __webpack_require__(10); -var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = __webpack_require__(29)(Function.call, __webpack_require__(57).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(107), __esModule: true }; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(108); -var $Object = __webpack_require__(0).Object; -module.exports = function create(P, D) { - return $Object.create(P, D); -}; - - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(5); -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -$export($export.S, 'Object', { create: __webpack_require__(40) }); - - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** @license React v16.8.6 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -Object.defineProperty(exports,"__esModule",{value:!0}); -var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"): -60115,r=b?Symbol.for("react.lazy"):60116;function t(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n; -exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k}; -exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f}; -exports.isSuspense=function(a){return t(a)===p}; - - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.8.6 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - - - -if (process.env.NODE_ENV !== "production") { - (function() { -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -// 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_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - -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_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); -} - -/** - * 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('`lowPriorityWarning(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; - -function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - default: - return $$typeof; - } - } - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; -} - -// AsyncMode is deprecated along with isAsyncMode -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; -var ContextConsumer = REACT_CONTEXT_TYPE; -var ContextProvider = REACT_PROVIDER_TYPE; -var Element = REACT_ELEMENT_TYPE; -var ForwardRef = REACT_FORWARD_REF_TYPE; -var Fragment = REACT_FRAGMENT_TYPE; -var Lazy = REACT_LAZY_TYPE; -var Memo = REACT_MEMO_TYPE; -var Portal = REACT_PORTAL_TYPE; -var Profiler = REACT_PROFILER_TYPE; -var StrictMode = REACT_STRICT_MODE_TYPE; -var Suspense = REACT_SUSPENSE_TYPE; - -var hasWarnedAboutDeprecatedIsAsyncMode = false; - -// AsyncMode should be deprecated -function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; -} -function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; -} -function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; -} -function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; -} -function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -} -function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; -} -function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; -} -function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; -} -function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; -} -function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; -} -function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; -} -function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; -} -function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; -} - -exports.typeOf = typeOf; -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; -exports.ContextConsumer = ContextConsumer; -exports.ContextProvider = ContextProvider; -exports.Element = Element; -exports.ForwardRef = ForwardRef; -exports.Fragment = Fragment; -exports.Lazy = Lazy; -exports.Memo = Memo; -exports.Portal = Portal; -exports.Profiler = Profiler; -exports.StrictMode = StrictMode; -exports.Suspense = Suspense; -exports.isValidElementType = isValidElementType; -exports.isAsyncMode = isAsyncMode; -exports.isConcurrentMode = isConcurrentMode; -exports.isContextConsumer = isContextConsumer; -exports.isContextProvider = isContextProvider; -exports.isElement = isElement; -exports.isForwardRef = isForwardRef; -exports.isFragment = isFragment; -exports.isLazy = isLazy; -exports.isMemo = isMemo; -exports.isPortal = isPortal; -exports.isProfiler = isProfiler; -exports.isStrictMode = isStrictMode; -exports.isSuspense = isSuspense; - })(); -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * 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. - */ - - - -var ReactIs = __webpack_require__(58); -var assign = __webpack_require__(112); - -var ReactPropTypesSecret = __webpack_require__(44); -var checkPropTypes = __webpack_require__(113); - -var has = Function.call.bind(Object.prototype.hasOwnProperty); -var printWarning = function() {}; - -if (process.env.NODE_ENV !== 'production') { - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -function emptyFunctionThatReturnsNull() { - return null; -} - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!ReactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - if (process.env.NODE_ENV !== 'production') { - if (arguments.length > 1) { - printWarning( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * 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. - */ - - - -var printWarning = function() {}; - -if (process.env.NODE_ENV !== 'production') { - var ReactPropTypesSecret = __webpack_require__(44); - var loggedTypeFailures = {}; - var has = Function.call.bind(Object.prototype.hasOwnProperty); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } -} - -/** - * Resets warning cache when testing. - * - * @private - */ -checkPropTypes.resetWarningCache = function() { - if (process.env.NODE_ENV !== 'production') { - loggedTypeFailures = {}; - } -} - -module.exports = checkPropTypes; - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * 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. - */ - - - -var ReactPropTypesSecret = __webpack_require__(44); - -function emptyFunction() {} -function emptyFunctionWithReset() {} -emptyFunctionWithReset.resetWarningCache = emptyFunction; - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - elementType: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim, - - checkPropTypes: emptyFunctionWithReset, - resetWarningCache: emptyFunction - }; - - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - - -/***/ }), -/* 115 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Animate__ = __webpack_require__(116); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__AnimateChild__ = __webpack_require__(64); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CSSMotion__ = __webpack_require__(133); -/* unused harmony reexport AnimateChild */ -/* unused harmony reexport CSSMotion */ - - - - - - -/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__Animate__["a" /* default */]); - -/***/ }), -/* 116 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export genAnimate */ -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__ = __webpack_require__(18); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(21); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_lifecycles_compat__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning__ = __webpack_require__(117); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__AnimateChild__ = __webpack_require__(64); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util__ = __webpack_require__(45); - - - - - - - - - - - - - - -var defaultKey = 'rc_animate_' + Date.now(); -var clonePropList = ['children']; - -/** - * Default use `AnimateChild` as component. - * Here can also pass customize `ChildComponent` for test usage. - */ -function genAnimate(ChildComponent) { - var Animate = function (_React$Component) { - __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Animate, _React$Component); - - function Animate() { - var _ref; - - var _temp, _this, _ret; - - __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Animate); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, (_ref = Animate.__proto__ || Object.getPrototypeOf(Animate)).call.apply(_ref, [this].concat(args))), _this), _this.state = { - appeared: true, - mergedChildren: [] - }, _this.onChildLeaved = function (key) { - // Remove child which not exist anymore - if (!_this.hasChild(key)) { - var mergedChildren = _this.state.mergedChildren; - - _this.setState({ - mergedChildren: mergedChildren.filter(function (node) { - return node.key !== key; - }) - }); - } - }, _this.hasChild = function (key) { - var children = _this.props.children; - - - return Object(__WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__["a" /* default */])(children).some(function (node) { - return node && node.key === key; - }); - }, _temp), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret); - } - // [Legacy] Not sure usage - // commit: https://github.com/react-component/animate/commit/0a1cbfd647407498b10a8c6602a2dea80b42e324 - // eslint-disable-line - - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_createClass___default()(Animate, [{ - key: 'componentDidMount', - value: function componentDidMount() { - // No need to re-render - this.state.appeared = false; - } - }, { - key: 'render', - value: function render() { - var _this2 = this; - - var _state = this.state, - appeared = _state.appeared, - mergedChildren = _state.mergedChildren; - var _props = this.props, - Component = _props.component, - componentProps = _props.componentProps, - className = _props.className, - style = _props.style, - showProp = _props.showProp; - - - var $children = mergedChildren.map(function (node) { - if (mergedChildren.length > 1 && !node.key) { - __WEBPACK_IMPORTED_MODULE_9_fbjs_lib_warning___default()(false, 'must set key for children'); - return null; - } - - var show = true; - - if (!_this2.hasChild(node.key)) { - show = false; - } else if (showProp) { - show = node.props[showProp]; - } - - var key = node.key || defaultKey; - - return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement( - ChildComponent, - __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, _this2.props, { - appeared: appeared, - show: show, - className: node.props.className, - style: node.props.style, - key: key, - - animateKey: node.key // Keep trans origin key - , onChildLeaved: _this2.onChildLeaved - }), - node - ); - }); - - // Wrap with component - if (Component) { - var passedProps = this.props; - if (typeof Component === 'string') { - passedProps = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ - className: className, - style: style - }, componentProps); - } - - return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement( - Component, - passedProps, - $children - ); - } - - return $children[0] || null; - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(nextProps, prevState) { - var _prevState$prevProps = prevState.prevProps, - prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps; - - var newState = { - prevProps: Object(__WEBPACK_IMPORTED_MODULE_11__util__["b" /* cloneProps */])(nextProps, clonePropList) - }; - var showProp = nextProps.showProp; - - - function processState(propName, updater) { - if (prevProps[propName] !== nextProps[propName]) { - updater(nextProps[propName]); - return true; - } - return false; - } - - processState('children', function (children) { - var currentChildren = Object(__WEBPACK_IMPORTED_MODULE_8_rc_util_es_Children_toArray__["a" /* default */])(children).filter(function (node) { - return node; - }); - var prevChildren = prevState.mergedChildren.filter(function (node) { - // Remove prev child if not show anymore - if (currentChildren.every(function (_ref2) { - var key = _ref2.key; - return key !== node.key; - }) && showProp && !node.props[showProp]) { - return false; - } - return true; - }); - - // Merge prev children to keep the animation - newState.mergedChildren = Object(__WEBPACK_IMPORTED_MODULE_11__util__["e" /* mergeChildren */])(prevChildren, currentChildren); - }); - - return newState; - } - }]); - - return Animate; - }(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); - - Animate.isAnimate = true; - Animate.propTypes = { - component: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.any, - componentProps: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, - animation: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, - transitionName: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object]), - transitionEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, - transitionAppear: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, - exclusive: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, - transitionLeave: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, - onEnd: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, - onEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, - onLeave: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, - onAppear: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, - showProp: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, - children: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.node, - style: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object, - className: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string - }; - Animate.defaultProps = { - animation: {}, - component: 'span', - componentProps: {}, - transitionEnter: true, - transitionLeave: true, - transitionAppear: false - }; - - - Object(__WEBPACK_IMPORTED_MODULE_7_react_lifecycles_compat__["a" /* polyfill */])(Animate); - - return Animate; -} - -/* harmony default export */ __webpack_exports__["a"] = (genAnimate(__WEBPACK_IMPORTED_MODULE_10__AnimateChild__["a" /* default */])); - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * 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. - * - */ - - - -var emptyFunction = __webpack_require__(118); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if (process.env.NODE_ENV !== 'production') { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; -} - -module.exports = warning; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -/** - * 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 makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _from = __webpack_require__(120); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - return Array.isArray(arr) ? arr : (0, _from2.default)(arr); -}; - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(121), __esModule: true }; - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(53); -__webpack_require__(122); -module.exports = __webpack_require__(0).Array.from; - - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var ctx = __webpack_require__(29); -var $export = __webpack_require__(5); -var toObject = __webpack_require__(38); -var call = __webpack_require__(123); -var isArrayIter = __webpack_require__(124); -var toLength = __webpack_require__(50); -var createProperty = __webpack_require__(125); -var getIterFn = __webpack_require__(126); - -$export($export.S + $export.F * !__webpack_require__(128)(function (iter) { Array.from(iter); }), 'Array', { - // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) - from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - // if object isn't iterable or it's array with default iterator - use simple case - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - result.length = index; - return result; - } -}); - - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - -// call something on iterator step with safe closing on error -var anObject = __webpack_require__(10); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -// check on default Array iterator -var Iterators = __webpack_require__(20); -var ITERATOR = __webpack_require__(1)('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $defineProperty = __webpack_require__(3); -var createDesc = __webpack_require__(16); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; -}; - - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(127); -var ITERATOR = __webpack_require__(1)('iterator'); -var Iterators = __webpack_require__(20); -module.exports = __webpack_require__(0).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - -// getting tag from 19.1.3.6 Object.prototype.toString() -var cof = __webpack_require__(31); -var TAG = __webpack_require__(1)('toStringTag'); -// ES3 wrong here -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(1)('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Module dependencies. - */ - -try { - var index = __webpack_require__(66); -} catch (err) { - var index = __webpack_require__(66); -} - -/** - * Whitespace regexp. - */ - -var re = /\s+/; - -/** - * toString reference. - */ - -var toString = Object.prototype.toString; - -/** - * Wrap `el` in a `ClassList`. - * - * @param {Element} el - * @return {ClassList} - * @api public - */ - -module.exports = function(el){ - return new ClassList(el); -}; - -/** - * Initialize a new ClassList for `el`. - * - * @param {Element} el - * @api private - */ - -function ClassList(el) { - if (!el || !el.nodeType) { - throw new Error('A DOM element reference is required'); - } - this.el = el; - this.list = el.classList; -} - -/** - * Add class `name` if not already present. - * - * @param {String} name - * @return {ClassList} - * @api public - */ - -ClassList.prototype.add = function(name){ - // classList - if (this.list) { - this.list.add(name); - return this; - } - - // fallback - var arr = this.array(); - var i = index(arr, name); - if (!~i) arr.push(name); - this.el.className = arr.join(' '); - return this; -}; - -/** - * Remove class `name` when present, or - * pass a regular expression to remove - * any which match. - * - * @param {String|RegExp} name - * @return {ClassList} - * @api public - */ - -ClassList.prototype.remove = function(name){ - if ('[object RegExp]' == toString.call(name)) { - return this.removeMatching(name); - } - - // classList - if (this.list) { - this.list.remove(name); - return this; - } - - // fallback - var arr = this.array(); - var i = index(arr, name); - if (~i) arr.splice(i, 1); - this.el.className = arr.join(' '); - return this; -}; - -/** - * Remove all classes matching `re`. - * - * @param {RegExp} re - * @return {ClassList} - * @api private - */ - -ClassList.prototype.removeMatching = function(re){ - var arr = this.array(); - for (var i = 0; i < arr.length; i++) { - if (re.test(arr[i])) { - this.remove(arr[i]); - } - } - return this; -}; - -/** - * Toggle class `name`, can force state via `force`. - * - * For browsers that support classList, but do not support `force` yet, - * the mistake will be detected and corrected. - * - * @param {String} name - * @param {Boolean} force - * @return {ClassList} - * @api public - */ - -ClassList.prototype.toggle = function(name, force){ - // classList - if (this.list) { - if ("undefined" !== typeof force) { - if (force !== this.list.toggle(name, force)) { - this.list.toggle(name); // toggle again to correct - } - } else { - this.list.toggle(name); - } - return this; - } - - // fallback - if ("undefined" !== typeof force) { - if (!force) { - this.remove(name); - } else { - this.add(name); - } - } else { - if (this.has(name)) { - this.remove(name); - } else { - this.add(name); - } - } - - return this; -}; - -/** - * Return an array of classes. - * - * @return {Array} - * @api public - */ - -ClassList.prototype.array = function(){ - var className = this.el.getAttribute('class') || ''; - var str = className.replace(/^\s+|\s+$/g, ''); - var arr = str.split(re); - if ('' === arr[0]) arr.shift(); - return arr; -}; - -/** - * Check if class `name` is present. - * - * @param {String} name - * @return {ClassList} - * @api public - */ - -ClassList.prototype.has = -ClassList.prototype.contains = function(name){ - return this.list - ? this.list.contains(name) - : !! ~index(this.array(), name); -}; - - -/***/ }), -/* 130 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2 -(function() { - var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; - - if ((typeof performance !== "undefined" && performance !== null) && performance.now) { - module.exports = function() { - return performance.now(); - }; - } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) { - module.exports = function() { - return (getNanoSeconds() - nodeLoadTime) / 1e6; - }; - hrtime = process.hrtime; - getNanoSeconds = function() { - var hr; - hr = hrtime(); - return hr[0] * 1e9 + hr[1]; - }; - moduleLoadTime = getNanoSeconds(); - upTime = process.uptime() * 1e9; - nodeLoadTime = moduleLoadTime - upTime; - } else if (Date.now) { - module.exports = function() { - return Date.now() - loadTime; - }; - loadTime = Date.now(); - } else { - module.exports = function() { - return new Date().getTime() - loadTime; - }; - loadTime = new Date().getTime(); - } - -}).call(this); - -//# sourceMappingURL=performance-now.js.map - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4))) - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * 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. - * - */ - - - -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -/** - * Simple, lightweight module assisting with the detection and context of - * Worker. Helps avoid circular dependencies and allows code to reason about - * whether or not they are in a Worker, even if they never include the main - * `ReactWorker` dependency. - */ -var ExecutionEnvironment = { - - canUseDOM: canUseDOM, - - canUseWorkers: typeof Worker !== 'undefined', - - canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), - - canUseViewport: canUseDOM && !!window.screen, - - isInWorker: !canUseDOM // For now, this is true - might change in the future. - -}; - -module.exports = ExecutionEnvironment; - -/***/ }), -/* 133 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export genCSSMotion */ -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(39); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(18); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(21); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(65); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_lifecycles_compat__ = __webpack_require__(23); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_classnames__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf__ = __webpack_require__(67); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_raf___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_raf__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util__ = __webpack_require__(45); - - - - - - - - - - - - - - -var STATUS_NONE = 'none'; -var STATUS_APPEAR = 'appear'; -var STATUS_ENTER = 'enter'; -var STATUS_LEAVE = 'leave'; - -/** - * `transitionSupport` is used for none transition test case. - * Default we use browser transition event support check. - */ -function genCSSMotion(transitionSupport) { - var CSSMotion = function (_React$Component) { - __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(CSSMotion, _React$Component); - - function CSSMotion() { - __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, CSSMotion); - - var _this = __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this)); - - _this.onDomUpdate = function () { - var _this$state = _this.state, - status = _this$state.status, - newStatus = _this$state.newStatus; - var _this$props = _this.props, - onAppearStart = _this$props.onAppearStart, - onEnterStart = _this$props.onEnterStart, - onLeaveStart = _this$props.onLeaveStart, - onAppearActive = _this$props.onAppearActive, - onEnterActive = _this$props.onEnterActive, - onLeaveActive = _this$props.onLeaveActive, - motionAppear = _this$props.motionAppear, - motionEnter = _this$props.motionEnter, - motionLeave = _this$props.motionLeave; - - - if (!transitionSupport) { - return; - } - - // Event injection - var $ele = __WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.findDOMNode(_this); - if (_this.$ele !== $ele) { - _this.removeEventListener(_this.$ele); - _this.addEventListener($ele); - _this.$ele = $ele; - } - - // Init status - if (newStatus && status === STATUS_APPEAR && motionAppear) { - _this.updateStatus(onAppearStart, null, null, function () { - _this.updateActiveStatus(onAppearActive, STATUS_APPEAR); - }); - } else if (newStatus && status === STATUS_ENTER && motionEnter) { - _this.updateStatus(onEnterStart, null, null, function () { - _this.updateActiveStatus(onEnterActive, STATUS_ENTER); - }); - } else if (newStatus && status === STATUS_LEAVE && motionLeave) { - _this.updateStatus(onLeaveStart, null, null, function () { - _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE); - }); - } - }; - - _this.onMotionEnd = function (event) { - var _this$state2 = _this.state, - status = _this$state2.status, - statusActive = _this$state2.statusActive; - var _this$props2 = _this.props, - onAppearEnd = _this$props2.onAppearEnd, - onEnterEnd = _this$props2.onEnterEnd, - onLeaveEnd = _this$props2.onLeaveEnd; - - if (status === STATUS_APPEAR && statusActive) { - _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_ENTER && statusActive) { - _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event); - } else if (status === STATUS_LEAVE && statusActive) { - _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event); - } - }; - - _this.addEventListener = function ($ele) { - if (!$ele) return; - - $ele.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); - $ele.addEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); - }; - - _this.removeEventListener = function ($ele) { - if (!$ele) return; - - $ele.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["g" /* transitionEndName */], _this.onMotionEnd); - $ele.removeEventListener(__WEBPACK_IMPORTED_MODULE_12__util__["a" /* animationEndName */], _this.onMotionEnd); - }; - - _this.updateStatus = function (styleFunc, additionalState, event, callback) { - var statusStyle = styleFunc ? styleFunc(__WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.findDOMNode(_this), event) : null; - - if (statusStyle === false || _this._destroyed) return; - - var nextStep = void 0; - if (callback) { - nextStep = function nextStep() { - _this.nextFrame(callback); - }; - } - - _this.setState(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ - statusStyle: typeof statusStyle === 'object' ? statusStyle : null, - newStatus: false - }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount` - }; - - _this.updateActiveStatus = function (styleFunc, currentStatus) { - // `setState` use `postMessage` to trigger at the end of frame. - // Let's use requestAnimationFrame to update new state in next frame. - _this.nextFrame(function () { - var status = _this.state.status; - - if (status !== currentStatus) return; - - _this.updateStatus(styleFunc, { statusActive: true }); - }); - }; - - _this.nextFrame = function (func) { - _this.cancelNextFrame(); - _this.raf = __WEBPACK_IMPORTED_MODULE_11_raf___default()(func); - }; - - _this.cancelNextFrame = function () { - if (_this.raf) { - __WEBPACK_IMPORTED_MODULE_11_raf___default.a.cancel(_this.raf); - _this.raf = null; - } - }; - - _this.state = { - status: STATUS_NONE, - statusActive: false, - newStatus: false, - statusStyle: null - }; - _this.$ele = null; - _this.raf = null; - return _this; - } - - __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(CSSMotion, [{ - key: 'componentDidMount', - value: function componentDidMount() { - this.onDomUpdate(); - } - }, { - key: 'componentDidUpdate', - value: function componentDidUpdate() { - this.onDomUpdate(); - } - }, { - key: 'componentWillUnmount', - value: function componentWillUnmount() { - this._destroyed = true; - this.removeEventListener(this.$ele); - this.cancelNextFrame(); - } - }, { - key: 'render', - value: function render() { - var _classNames; - - var _state = this.state, - status = _state.status, - statusActive = _state.statusActive, - statusStyle = _state.statusStyle; - var _props = this.props, - children = _props.children, - motionName = _props.motionName, - visible = _props.visible; - - - if (!children) return null; - - if (status === STATUS_NONE || !transitionSupport) { - return visible ? children({}) : null; - } - - return children({ - className: __WEBPACK_IMPORTED_MODULE_10_classnames___default()((_classNames = {}, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(motionName, status), status !== STATUS_NONE), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, Object(__WEBPACK_IMPORTED_MODULE_12__util__["d" /* getTransitionName */])(motionName, status + '-active'), status !== STATUS_NONE && statusActive), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()(_classNames, motionName, typeof motionName === 'string'), _classNames)), - style: statusStyle - }); - } - }], [{ - key: 'getDerivedStateFromProps', - value: function getDerivedStateFromProps(props, _ref) { - var prevProps = _ref.prevProps; - - if (!transitionSupport) return {}; - - var visible = props.visible, - motionAppear = props.motionAppear, - motionEnter = props.motionEnter, - motionLeave = props.motionLeave, - motionLeaveImmediately = props.motionLeaveImmediately; - - var newState = { - prevProps: props - }; - - // Appear - if (!prevProps && visible && motionAppear) { - newState.status = STATUS_APPEAR; - newState.statusActive = false; - newState.newStatus = true; - } - - // Enter - if (prevProps && !prevProps.visible && visible && motionEnter) { - newState.status = STATUS_ENTER; - newState.statusActive = false; - newState.newStatus = true; - } - - // Leave - if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) { - newState.status = STATUS_LEAVE; - newState.statusActive = false; - newState.newStatus = true; - } - - return newState; - } - }]); - - return CSSMotion; - }(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Component); - - CSSMotion.propTypes = { - visible: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - children: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - motionName: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object]), - motionAppear: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - motionEnter: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - motionLeave: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, - motionLeaveImmediately: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, // Trigger leave motion immediately - onAppearStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onAppearActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onAppearEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onEnterStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onEnterActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onEnterEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onLeaveStart: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onLeaveActive: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, - onLeaveEnd: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func - }; - CSSMotion.defaultProps = { - visible: true, - motionEnter: true, - motionAppear: true, - motionLeave: true - }; - - - Object(__WEBPACK_IMPORTED_MODULE_9_react_lifecycles_compat__["a" /* polyfill */])(CSSMotion); - - return CSSMotion; -} - -/* unused harmony default export */ var _unused_webpack_default_export = (genCSSMotion(__WEBPACK_IMPORTED_MODULE_12__util__["f" /* supportTransition */])); - -/***/ }) -/******/ ])["default"]; -}); -//# sourceMappingURL=rc-tree.js.map \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.js.map b/packages/client/node_modules/rc-tree/dist/rc-tree.js.map deleted file mode 100644 index c947871..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap d7e30d1747246b9fc793","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_core.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_global.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dp.js","webpack:///./node_modules/_process@0.11.10@process/browser.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_export.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_descriptors.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_has.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_hide.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_an-object.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-object.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-iobject.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/index.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_fails.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_property-desc.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/createClass.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iterators.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/inherits.js","webpack:///./node_modules/_rc-util@4.6.0@rc-util/es/Children/toArray.js","webpack:///./node_modules/_react-lifecycles-compat@3.0.4@react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_library.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_uid.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-pie.js","webpack:///./node_modules/_classnames@2.2.6@classnames/index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_ctx.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-primitive.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_cof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_defined.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-integer.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_shared-key.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_shared.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gops.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-object.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-ext.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-define.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/util.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_dom-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iobject.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-length.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-define.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_redefine.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopd.js","webpack:///./node_modules/_react-is@16.8.6@react-is/index.js","webpack:///./node_modules/_warning@3.0.0@warning/browser.js","webpack:///./src/contextTypes.js","webpack:///./src/util.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/objectWithoutProperties.js","webpack:///./src/TreeNode.jsx","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/AnimateChild.js","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./node_modules/_component-indexof@0.0.3@component-indexof/index.js","webpack:///./node_modules/_raf@3.4.1@raf/index.js","webpack:///./assets/index.less?b3e7","webpack:///./src/index.js","webpack:///./src/Tree.jsx","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_a-function.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-assign.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_array-includes.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/define-property.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_string-at.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dps.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_html.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gpo.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-step.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/index.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.symbol.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_meta.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-keys.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_set-proto.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/object/create.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.create.js","webpack:///./node_modules/_react-is@16.8.6@react-is/cjs/react-is.production.min.js","webpack:///./node_modules/_react-is@16.8.6@react-is/cjs/react-is.development.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/_object-assign@4.1.1@object-assign/index.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/checkPropTypes.js","webpack:///./node_modules/_prop-types@15.7.2@prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/index.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/Animate.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/warning.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/emptyFunction.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toArray.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/fn/array/from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.from.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-call.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_create-property.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_classof.js","webpack:///./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-detect.js","webpack:///./node_modules/_component-classes@1.2.6@component-classes/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/_performance-now@2.1.0@performance-now/lib/performance-now.js","webpack:///./node_modules/_fbjs@0.8.17@fbjs/lib/ExecutionEnvironment.js","webpack:///./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/CSSMotion.js"],"names":["treeContextTypes","rcTree","PropTypes","shape","root","object","prefixCls","string","selectable","bool","showIcon","icon","oneOfType","node","func","draggable","checkable","checkStrictly","disabled","openTransitionName","openAnimation","loadData","filterTreeNode","renderTreeNode","isKeyChecked","onNodeClick","onNodeDoubleClick","onNodeExpand","onNodeSelect","onNodeCheck","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","nodeContextTypes","rcTreeNode","onUpCheckConduct","DRAG_SIDE_RANGE","DRAG_MIN_GAP","onlyTreeNodeWarned","warnOnlyTreeNode","warning","arrDel","list","value","clone","slice","index","indexOf","splice","arrAdd","push","posToArr","pos","split","getPosition","level","isTreeNode","type","getNodeChildren","children","toArray","filter","isCheckDisabled","props","disableCheckbox","traverseTreeNodes","treeNodes","callback","processNode","parent","childList","data","key","parentPos","Children","forEach","subNode","subIndex","mapChildren","map","length","getDragNodesKeys","eventKey","dragNodesKeys","calcDropPosition","event","treeNode","clientY","selectHandle","getBoundingClientRect","top","bottom","height","des","Math","max","calcSelectedKeys","selectedKeys","undefined","multiple","keyListToString","keyList","String","internalProcessProps","convertDataToTree","treeData","processer","processProps","Array","isArray","childrenNodes","convertTreeToEntities","initWrapper","processEntity","onProcessFinished","posEntities","keyEntities","wrapper","item","entity","parseCheckedKeys","keys","keyProps","checkedKeys","halfCheckedKeys","checked","halfChecked","conductCheck","isCheck","checkStatus","conductUp","everyChildChecked","someChildChecked","child","childKey","childChecked","childHalfChecked","conductDown","conduct","checkedKeyList","halfCheckedKeyList","Object","conductExpandParent","expandedKeys","getDataAndAria","reduce","prev","substr","ICON_OPEN","ICON_CLOSE","defaultTitle","TreeNode","state","dragNodeHighlight","context","registerTreeNode","syncLoadData","treeSelectable","loading","className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","expanded","selected","otherProps","isDisabled","dataOrAriaAttributeProps","classNames","onDragEnter","onDragOver","onDragLeave","onDrop","onDragEnd","renderSwitcher","renderCheckbox","renderSelector","renderChildren","React","Component","propTypes","onSelect","loaded","title","switcherIcon","contextTypes","childContextTypes","defaultProps","onSelectorClick","e","isSelectable","onCheck","onSelectorDoubleClick","preventDefault","targetChecked","onMouseEnter","onMouseLeave","onContextMenu","onDragStart","stopPropagation","setState","dataTransfer","setData","error","onExpand","setSelectHandle","originList","targetList","getNodeState","hasChildren","treeDisabled","onNodeLoad","switcherIconFromProps","switcherIconFromCtx","switcherCls","$custom","renderIcon","treeIcon","wrapClass","$icon","currentIcon","createElement","$title","animProps","transitionName","animation","nodeList","$children","polyfill","Tree","dragNode","dropPosition","dragOverNodeKey","setTimeout","delayedDragEnterLogic","clearTimeout","newExpandedKeys","posArr","dropResult","Number","dropToGap","onClick","onDoubleClick","targetSelected","selectedNodes","setUncontrolledState","eventObj","nativeEvent","oriCheckedKeys","oriHalfCheckedKeys","checkedObj","checkedNodes","checkedNodesPositions","Promise","resolve","loadedKeys","loadingKeys","onLoad","promise","then","newLoadedKeys","newLoadingKeys","targetExpanded","loadPromise","onRightClick","needSync","newState","name","domTreeNodes","cloneElement","focusable","showLine","tabIndex","domProps","onKeyDown","prevState","prevProps","entitiesMap","autoExpandParent","defaultExpandParent","defaultExpandAll","defaultExpandedKeys","defaultSelectedKeys","checkedKeyEntity","defaultCheckedKeys","conductKeys","number","any","array","arrayOf"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA,6BAA6B;AAC7B,uCAAuC;;;;;;;ACDvC,YAAY,mBAAO,CAAC,EAAW;AAC/B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,aAAa,mBAAO,CAAC,CAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;ACLzC,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,EAAmB;AAChD,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,CAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC,aAAa,mBAAO,CAAC,CAAW;AAChC,WAAW,mBAAO,CAAC,CAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,WAAW,mBAAO,CAAC,CAAS;AAC5B,UAAU,mBAAO,CAAC,CAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;AC7DA;AACA,kBAAkB,mBAAO,CAAC,EAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;ACHD,uBAAuB;AACvB;AACA;AACA;;;;;;;ACHA,+C;;;;;;ACAA,SAAS,mBAAO,CAAC,CAAc;AAC/B,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,iBAAiB,mBAAO,CAAC,CAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACPA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;;;;;;;ACFA;AACA,cAAc,mBAAO,CAAC,EAAY;AAClC,cAAc,mBAAO,CAAC,EAAY;AAClC;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAO,CAAC,EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,GAA2B;AACtD,CAAC;AACD;AACA;AACA,mBAAmB,mBAAO,CAAC,GAA4B;AACvD;;;;;;;;;AClBa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,EAA0B;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACtBA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;ACRa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,EAAmC;;AAEjE;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,G;;;;;;;AC1BY;;AAEb;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;AChBA;;;;;;;;ACAa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,GAAoC;;AAElE;;AAEA,cAAc,mBAAO,CAAC,GAA0B;;AAEhD;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,E;;;;;;;AChCA;AAAA;AAAA;AAA0B;;AAEX;AACf;AACA,EAAE,6CAAK;AACP;AACA,GAAG;AACH;AACA,C;;;;;;;ACRA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;AC7JpB;AACA,YAAY,mBAAO,CAAC,EAAyB;AAC7C,kBAAkB,mBAAO,CAAC,EAAkB;;AAE5C;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AACA;AACA;AACA;AACA;;;;;;;ACJA,cAAc;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;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;AACA,aAAa;AACb;;AAEA;AACA,SAAS;AACT,6BAA6B,eAAe;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,yEAAiB;AAChD,gCAAgC,yEAAiB;;AAEjD,4BAA4B,0DAAO;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iDAAQ;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,qEAAQ;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,6CAA6C,gEAAgB;AAC7D,6CAA6C,iEAAiB;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;;AAEA;;AAEA;AACA,wEAAwE,kDAAU,YAAY,yEAAiB,yDAAyD,yEAAiB;;AAEzL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,6CAAK;AACpB;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;AAC/D;;;AAGA;AACA,qBAAqB,kEAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,6CAAK;;AAET;AACA,oBAAoB,kDAAS,YAAY,kDAAS,SAAS,kDAAS;AACpE,sBAAsB,kDAAS;AAC/B,qBAAqB,kDAAS;AAC9B,qBAAqB,kDAAS;AAC9B,eAAe,kDAAS;AACxB,cAAc,kDAAS;AACvB,cAAc,kDAAS;;AAEvB,gBAAgB,kDAAS;AACzB,eAAe,kDAAS;AACxB,mBAAmB,kDAAS;;AAE5B,WAAW,kDAAS;AACpB,cAAc,kDAAS;AACvB,aAAa,kDAAS;AACtB,aAAa,kDAAS;AACtB;;;AAGA,EAAE,iFAAQ;;AAEV;AACA;;AAEe,yEAAgB,iEAAiB,CAAC,E;;;;;;ACtcjD,gD;;;;;;ACAA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,E;;;;;;ACNA,wDAAU,mBAAO,CAAC,GAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA,yC;;;;;;;ACAA;AAAA;AAA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,EAAU;AAC/B,aAAa,mBAAO,CAAC,EAAW;AAChC,qBAAqB,mBAAO,CAAC,EAAsB;AACnD,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,CAAQ;AAC1B,aAAa,mBAAO,CAAC,EAAY;AACjC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,eAAe,mBAAO,CAAC,EAAc;AACrC,cAAc,mBAAO,CAAC,EAAa;AACnC,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,EAAc;AACrC,gBAAgB,mBAAO,CAAC,EAAe;AACvC,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,cAAc,mBAAO,CAAC,EAAkB;AACxC,cAAc,mBAAO,CAAC,EAAoB;AAC1C,YAAY,mBAAO,CAAC,EAAgB;AACpC,UAAU,mBAAO,CAAC,CAAc;AAChC,YAAY,mBAAO,CAAC,EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB,uBAAuB,WAAW,IAAI;AAC5D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,EAAgB;AAC1B,EAAE,mBAAO,CAAC,EAAe;AACzB,EAAE,mBAAO,CAAC,EAAgB;;AAE1B,sBAAsB,mBAAO,CAAC,EAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,QAAQ,iCAAiC;AACpG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,CAAS;AACrD;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzOA,WAAW,mBAAO,CAAC,EAAQ;AAC3B,eAAe,mBAAO,CAAC,EAAc;AACrC,UAAU,mBAAO,CAAC,CAAQ;AAC1B,cAAc,mBAAO,CAAC,CAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,EAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA,cAAc,mBAAO,CAAC,EAAgB;AACtC,WAAW,mBAAO,CAAC,EAAgB;AACnC,UAAU,mBAAO,CAAC,EAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACdA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA;AACA;;;;;;;ACJA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC,WAAW,mBAAO,CAAC,EAAgB;AACnC,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClBA,mBAAO,CAAC,EAAe;;;;;;;ACAvB,mBAAO,CAAC,EAAe;;;;;;;ACAvB,kBAAkB,YAAY,mBAAO,CAAC,GAA4C,sB;;;;;;ACAlF,mBAAO,CAAC,GAA2C;AACnD,iBAAiB,mBAAO,CAAC,CAAqB;;;;;;;ACD9C;AACA,cAAc,mBAAO,CAAC,CAAW;AACjC,8BAA8B,iBAAiB,mBAAO,CAAC,GAAc,OAAO;;;;;;;ACF5E;AACA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,cAAc,mBAAO,CAAC,EAAQ,iBAAiB,mBAAO,CAAC,EAAgB;AACvE;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;ACxBA,kBAAkB,YAAY,mBAAO,CAAC,GAAkC,sB;;;;;;ACAxE,mBAAO,CAAC,GAAiC;AACzC,cAAc,mBAAO,CAAC,CAAqB;AAC3C;AACA;AACA;;;;;;;ACJA,cAAc,mBAAO,CAAC,CAAW;AACjC;AACA,8BAA8B,SAAS,mBAAO,CAAC,EAAkB,GAAG;;;;;;;;ACFpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa,4CAA4C,SAAS;AAClE;AACA,yCAAyC,cAAc,kCAAkC,iBAAiB,UAAU,0BAA0B,mDAAmD,kCAAkC,8BAA8B,kBAAkB,gCAAgC,cAAc,gBAAgB,iBAAiB,oBAAoB,yBAAyB,0BAA0B,0BAA0B,kBAAkB;AACrd,mBAAmB,eAAe,eAAe,iBAAiB,mBAAmB,qBAAqB,mBAAmB,uCAAuC,sMAAsM,gCAAgC,uBAAuB,2BAA2B,sCAAsC;AACle,sCAAsC,iBAAiB,8BAA8B,qDAAqD,iCAAiC,iBAAiB,+BAA+B,iBAAiB,2BAA2B,iBAAiB,2BAA2B,iBAAiB,6BAA6B,iBAAiB,+BAA+B,iBAAiB,iCAAiC;AACnc,+BAA+B;;;;;;;;ACd/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,4FAA4F,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,EAAU;AAChC,aAAa,mBAAO,CAAC,GAAe;;AAEpC,2BAA2B,mBAAO,CAAC,EAA4B;AAC/D,qBAAqB,mBAAO,CAAC,GAAkB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;AC9kBA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;AACA,6BAA6B,mBAAO,CAAC,EAA4B;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,2BAA2B,mBAAO,CAAC,EAA4B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACU;AACN;;AAED;;AAEpB,kHAAO,E;;;;;;;ACNtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACc;AACN;AAC4B;AAClC;AAC7B;AACS;AACgB;AACD;AACX;;AAEG;AACS;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA,IAAI,sEAAS;;AAEb;AACA;;AAEA;;AAEA,MAAM,4EAAe;;AAErB,qEAAqE,aAAa;AAClF;AACA;;AAEA,sCAAsC,uFAA0B;AAChE;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,OAAO;AACP;;;AAGA,eAAe,oFAAO;AACtB;AACA,SAAS;AACT,OAAO,UAAU,uFAA0B;AAC3C;AACA;AACA;AACA;;AAEA,IAAI,yEAAY;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,YAAY,wDAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA,iBAAiB,6CAAK;AACtB;AACA,YAAY,qEAAQ,GAAG;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,0BAA0B,qEAAQ;AAClC;AACA;AACA,aAAa;AACb;;AAEA,iBAAiB,6CAAK;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+DAA+D;;AAE/D;AACA,qBAAqB,kEAAU;AAC/B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,oFAAO;AACvC;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;;AAEX;AACA,oCAAoC,qEAAa;AACjD,SAAS;;AAET;AACA;AACA,KAAK;;AAEL;AACA,GAAG,CAAC,6CAAK;;AAET;AACA;AACA,eAAe,kDAAS;AACxB,oBAAoB,kDAAS;AAC7B,eAAe,kDAAS;AACxB,oBAAoB,kDAAS,YAAY,kDAAS,SAAS,kDAAS;AACpE,qBAAqB,kDAAS;AAC9B,sBAAsB,kDAAS;AAC/B,eAAe,kDAAS;AACxB,qBAAqB,kDAAS;AAC9B,WAAW,kDAAS;AACpB,aAA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A;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9LA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;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","file":"rc-tree.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rc-tree\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"rc-tree\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_65__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 68);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d7e30d1747246b9fc793","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_core.js\n// module id = 0\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks.js\n// module id = 1\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_global.js\n// module id = 2\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dp.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_process@0.11.10@process/browser.js\n// module id = 4\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_export.js\n// module id = 5\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_descriptors.js\n// module id = 6\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_has.js\n// module id = 7\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 8\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_hide.js\n// module id = 9\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_an-object.js\n// module id = 10\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-object.js\n// module id = 11\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-iobject.js\n// module id = 12\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/index.js\n// module id = 13\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js\n// module id = 14\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_fails.js\n// module id = 15\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_property-desc.js\n// module id = 16\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/classCallCheck.js\n// module id = 17\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/createClass.js\n// module id = 18\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/possibleConstructorReturn.js\n// module id = 19\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iterators.js\n// module id = 20\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/inherits.js\n// module id = 21\n// module chunks = 0","import React from 'react';\n\nexport default function toArray(children) {\n var ret = [];\n React.Children.forEach(children, function (c) {\n ret.push(c);\n });\n return ret;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-util@4.6.0@rc-util/es/Children/toArray.js\n// module id = 22\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-lifecycles-compat@3.0.4@react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 23\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys.js\n// module id = 24\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_library.js\n// module id = 25\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_uid.js\n// module id = 26\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-pie.js\n// module id = 27\n// module chunks = 0","/*!\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_classnames@2.2.6@classnames/index.js\n// module id = 28\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_ctx.js\n// module id = 29\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-primitive.js\n// module id = 30\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_cof.js\n// module id = 31\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_defined.js\n// module id = 32\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-integer.js\n// module id = 33\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_shared-key.js\n// module id = 34\n// module chunks = 0","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: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_shared.js\n// module id = 35\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-bug-keys.js\n// module id = 36\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gops.js\n// module id = 37\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-object.js\n// module id = 38\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js\n// module id = 39\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-create.js\n// module id = 40\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_set-to-string-tag.js\n// module id = 41\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-ext.js\n// module id = 42\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_wks-define.js\n// module id = 43\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/lib/ReactPropTypesSecret.js\n// module id = 44\n// module chunks = 0","import toArray from 'rc-util/es/Children/toArray';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\n// =================== Style ====================\nvar stylePrefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nexport function getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < stylePrefixes.length; i++) {\n ret = style.getPropertyValue(stylePrefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nexport function getStyleValue(node, name) {\n return parseFloat(getStyleProperty(node, name));\n}\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\n\nvar vendorPrefixes = getVendorPrefixes(canUseDOM, typeof window !== 'undefined' ? window : {});\n\nvar style = {};\n\nif (canUseDOM) {\n style = document.createElement('div').style;\n}\n\nvar prefixedEventNames = {};\n\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\n\nexport var animationEndName = getVendorPrefixedEventName('animationend');\nexport var transitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(animationEndName && transitionEndName);\n\n// ==================== Node ====================\n/**\n * [Legacy] Find the same children in both prev & next list.\n * Insert not find one before the find one, otherwise in the end. For example:\n * - prev: [1,2,3]\n * - next: [2,4]\n * -> [1,2,4,3]\n */\nexport function mergeChildren(prev, next) {\n var prevList = toArray(prev);\n var nextList = toArray(next);\n\n // Skip if is single children\n if (prevList.length === 1 && nextList.length === 1 && prevList[0].key === nextList[0].key) {\n return nextList;\n }\n\n var mergeList = [];\n var nextChildrenMap = {};\n var missMatchChildrenList = [];\n\n // Fill matched prev node into next node map\n prevList.forEach(function (prevNode) {\n if (prevNode && nextList.some(function (_ref) {\n var key = _ref.key;\n return key === prevNode.key;\n })) {\n if (missMatchChildrenList.length) {\n nextChildrenMap[prevNode.key] = missMatchChildrenList;\n missMatchChildrenList = [];\n }\n } else {\n missMatchChildrenList.push(prevNode);\n }\n });\n\n // Insert prev node before the matched next node\n nextList.forEach(function (nextNode) {\n if (nextNode && nextChildrenMap[nextNode.key]) {\n mergeList = mergeList.concat(nextChildrenMap[nextNode.key]);\n }\n mergeList.push(nextNode);\n });\n\n mergeList = mergeList.concat(missMatchChildrenList);\n\n return mergeList;\n}\n\nexport function cloneProps(props, propList) {\n var newProps = {};\n propList.forEach(function (prop) {\n if (prop in props) {\n newProps[prop] = props[prop];\n }\n });\n\n return newProps;\n}\n\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (typeof transitionName === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return transitionName + '-' + transitionType;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/util.js\n// module id = 45\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_ie8-dom-define.js\n// module id = 46\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_dom-create.js\n// module id = 47\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-keys-internal.js\n// module id = 48\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iobject.js\n// module id = 49\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-length.js\n// module id = 50\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js\n// module id = 51\n// module chunks = 0","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js\n// module id = 52\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.string.iterator.js\n// module id = 53\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-define.js\n// module id = 54\n// module chunks = 0","module.exports = require('./_hide');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_redefine.js\n// module id = 55\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn.js\n// module id = 56\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopd.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/index.js\n// module id = 58\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_warning@3.0.0@warning/browser.js\n// module id = 59\n// module chunks = 0","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\n\nimport PropTypes from 'prop-types';\n\n/**\n * Thought we still use `cloneElement` to pass `key`,\n * other props can pass with context for future refactor.\n */\nexport const treeContextTypes = {\n rcTree: PropTypes.shape({\n root: PropTypes.object,\n\n prefixCls: PropTypes.string,\n selectable: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n draggable: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n disabled: PropTypes.bool,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n loadData: PropTypes.func,\n filterTreeNode: PropTypes.func,\n renderTreeNode: PropTypes.func,\n\n isKeyChecked: PropTypes.func,\n\n onNodeClick: PropTypes.func,\n onNodeDoubleClick: PropTypes.func,\n onNodeExpand: PropTypes.func,\n onNodeSelect: PropTypes.func,\n onNodeCheck: PropTypes.func,\n onNodeMouseEnter: PropTypes.func,\n onNodeMouseLeave: PropTypes.func,\n onNodeContextMenu: PropTypes.func,\n onNodeDragStart: PropTypes.func,\n onNodeDragEnter: PropTypes.func,\n onNodeDragOver: PropTypes.func,\n onNodeDragLeave: PropTypes.func,\n onNodeDragEnd: PropTypes.func,\n onNodeDrop: PropTypes.func,\n\n // TODO: Remove this\n // onBatchNodeCheck: PropTypes.func,\n // onCheckConductFinished: PropTypes.func,\n\n // Tree will store the entities when the treeNode refresh.\n // User can pass the func to add more info to customize the additional info.\n // processTreeEntity: PropTypes.func,\n }),\n};\n\nexport const nodeContextTypes = {\n ...treeContextTypes,\n rcTreeNode: PropTypes.shape({\n onUpCheckConduct: PropTypes.func,\n }),\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/contextTypes.js","import React, { Children } from 'react';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport warning from 'warning';\nimport TreeNode from './TreeNode';\n\nconst DRAG_SIDE_RANGE = 0.25;\nconst DRAG_MIN_GAP = 2;\n\nlet onlyTreeNodeWarned = false;\n\nexport function warnOnlyTreeNode() {\n if (onlyTreeNodeWarned) return;\n\n onlyTreeNodeWarned = true;\n warning(false, 'Tree only accept TreeNode as children.');\n}\n\nexport function arrDel(list, value) {\n const clone = list.slice();\n const index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\n\nexport function arrAdd(list, value) {\n const clone = list.slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\n\nexport function posToArr(pos) {\n return pos.split('-');\n}\n\nexport function getPosition(level, index) {\n return `${level}-${index}`;\n}\n\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\n\nexport function getNodeChildren(children) {\n return toArray(children).filter(isTreeNode);\n}\n\nexport function isCheckDisabled(node) {\n const { disabled, disableCheckbox } = node.props || {};\n return !!(disabled || disableCheckbox);\n}\n\nexport function traverseTreeNodes(treeNodes, callback) {\n function processNode(node, index, parent) {\n const children = node ? node.props.children : treeNodes;\n const pos = node ? getPosition(parent.pos, index) : 0;\n\n // Filter children\n const childList = getNodeChildren(children);\n\n // Process node if is not root\n if (node) {\n const data = {\n node,\n index,\n pos,\n key: node.key || pos,\n parentPos: parent.node ? parent.pos : null,\n };\n\n callback(data);\n }\n\n // Process children node\n Children.forEach(childList, (subNode, subIndex) => {\n processNode(subNode, subIndex, { node, pos });\n });\n }\n\n processNode(null);\n}\n\n/**\n * Use `rc-util` `toArray` to get the children list which keeps the key.\n * And return single node if children is only one(This can avoid `key` missing check).\n */\nexport function mapChildren(children, func) {\n const list = toArray(children).map(func);\n if (list.length === 1) {\n return list[0];\n }\n return list;\n}\n\nexport function getDragNodesKeys(treeNodes, node) {\n const { eventKey, pos } = node.props;\n const dragNodesKeys = [];\n\n traverseTreeNodes(treeNodes, ({ key }) => {\n dragNodesKeys.push(key);\n });\n dragNodesKeys.push(eventKey || pos);\n return dragNodesKeys;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, treeNode) {\n const { clientY } = event;\n const { top, bottom, height } = treeNode.selectHandle.getBoundingClientRect();\n const des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n } else if (clientY >= bottom - des) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n\n const { multiple } = props;\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\n\n/**\n * Since React internal will convert key to string,\n * we need do this to avoid `checkStrictly` use number match\n */\nfunction keyListToString(keyList) {\n if (!keyList) return keyList;\n return keyList.map(key => String(key));\n}\n\nconst internalProcessProps = props => props;\nexport function convertDataToTree(treeData, processer) {\n if (!treeData) return [];\n\n const { processProps = internalProcessProps } = processer || {};\n const list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(({ children, ...props }) => {\n const childrenNodes = convertDataToTree(children, processer);\n\n return (\n \n {childrenNodes}\n \n );\n });\n}\n\n// TODO: ========================= NEW LOGIC =========================\n/**\n * Calculate treeNodes entities. `processTreeEntity` is used for `rc-tree-select`\n * @param treeNodes\n * @param processTreeEntity User can customize the entity\n */\nexport function convertTreeToEntities(treeNodes, { initWrapper, processEntity, onProcessFinished } = {}) {\n\n\n const posEntities = {};\n const keyEntities = {};\n let wrapper = {\n posEntities,\n keyEntities,\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseTreeNodes(treeNodes, (item) => {\n const { node, index, pos, key, parentPos } = item;\n const entity = { node, index, key, pos };\n\n posEntities[pos] = entity;\n keyEntities[key] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n });\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n let keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined,\n };\n } else if (typeof keys === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined,\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n keyProps.checkedKeys = keyListToString(keyProps.checkedKeys);\n keyProps.halfCheckedKeys = keyListToString(keyProps.halfCheckedKeys);\n\n return keyProps;\n}\n\n/**\n * Conduct check state by the keyList. It will conduct up & from the provided key.\n * If the conduct path reach the disabled or already checked / unchecked node will stop conduct.\n * @param keyList list of keys\n * @param isCheck is check the node or not\n * @param keyEntities parsed by `convertTreeToEntities` function in Tree\n * @param checkStatus Can pass current checked status for process (usually for uncheck operation)\n * @returns {{checkedKeys: [], halfCheckedKeys: []}}\n */\nexport function conductCheck(keyList, isCheck, keyEntities, checkStatus = {}) {\n const checkedKeys = {};\n const halfCheckedKeys = {}; // Record the key has some child checked (include child half checked)\n\n (checkStatus.checkedKeys || []).forEach((key) => {\n checkedKeys[key] = true;\n });\n\n (checkStatus.halfCheckedKeys || []).forEach((key) => {\n halfCheckedKeys[key] = true;\n });\n\n // Conduct up\n function conductUp(key) {\n if (checkedKeys[key] === isCheck) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { children, parent, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n // Check child node checked status\n let everyChildChecked = true;\n let someChildChecked = false; // Child checked or half checked\n\n (children || [])\n .filter(child => !isCheckDisabled(child.node))\n .forEach(({ key: childKey }) => {\n const childChecked = checkedKeys[childKey];\n const childHalfChecked = halfCheckedKeys[childKey];\n\n if (childChecked || childHalfChecked) someChildChecked = true;\n if (!childChecked) everyChildChecked = false;\n });\n\n // Update checked status\n if (isCheck) {\n checkedKeys[key] = everyChildChecked;\n } else {\n checkedKeys[key] = false;\n }\n halfCheckedKeys[key] = someChildChecked;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n // Conduct down\n function conductDown(key) {\n if (checkedKeys[key] === isCheck) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { children, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n checkedKeys[key] = isCheck;\n\n (children || []).forEach((child) => {\n conductDown(child.key);\n });\n }\n\n function conduct(key) {\n const entity = keyEntities[key];\n\n if (!entity) {\n warning(false, `'${key}' does not exist in the tree.`);\n return;\n }\n\n const { children, parent, node } = entity;\n checkedKeys[key] = isCheck;\n\n if (isCheckDisabled(node)) return;\n\n // Conduct down\n (children || [])\n .filter(child => !isCheckDisabled(child.node))\n .forEach((child) => {\n conductDown(child.key);\n });\n\n // Conduct up\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conduct(key);\n });\n\n const checkedKeyList = [];\n const halfCheckedKeyList = [];\n\n // Fill checked list\n Object.keys(checkedKeys).forEach((key) => {\n if (checkedKeys[key]) {\n checkedKeyList.push(key);\n }\n });\n\n // Fill half checked list\n Object.keys(halfCheckedKeys).forEach((key) => {\n if (!checkedKeys[key] && halfCheckedKeys[key]) {\n halfCheckedKeyList.push(key);\n }\n });\n\n return {\n checkedKeys: checkedKeyList,\n halfCheckedKeys: halfCheckedKeyList,\n };\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n const expandedKeys = {};\n\n function conductUp(key) {\n if (expandedKeys[key]) return;\n\n const entity = keyEntities[key];\n if (!entity) return;\n\n expandedKeys[key] = true;\n\n const { parent, node } = entity;\n\n if (isCheckDisabled(node)) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach((key) => {\n conductUp(key);\n });\n\n return Object.keys(expandedKeys);\n}\n\n/**\n * Returns only the data- and aria- key/value pairs\n * @param {object} props \n */\nexport function getDataAndAria(props) {\n return Object.keys(props).reduce((prev, key) => {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util.js","\"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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/objectWithoutProperties.js\n// module id = 62\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'rc-animate';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { nodeContextTypes } from './contextTypes';\nimport {\n getNodeChildren,\n getDataAndAria,\n mapChildren,\n warnOnlyTreeNode,\n} from './util';\n\nconst ICON_OPEN = 'open';\nconst ICON_CLOSE = 'close';\n\nconst defaultTitle = '---';\n\nclass TreeNode extends React.Component {\n static propTypes = {\n eventKey: PropTypes.string, // Pass by parent `cloneElement`\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n root: PropTypes.object,\n onSelect: PropTypes.func,\n\n // By parent\n expanded: PropTypes.bool,\n selected: PropTypes.bool,\n checked: PropTypes.bool,\n loaded: PropTypes.bool,\n loading: PropTypes.bool,\n halfChecked: PropTypes.bool,\n children: PropTypes.node,\n title: PropTypes.node,\n pos: PropTypes.string,\n dragOver: PropTypes.bool,\n dragOverGapTop: PropTypes.bool,\n dragOverGapBottom: PropTypes.bool,\n\n // By user\n isLeaf: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n disableCheckbox: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static contextTypes = nodeContextTypes;\n\n static childContextTypes = nodeContextTypes;\n\n static defaultProps = {\n title: defaultTitle,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n dragNodeHighlight: false,\n };\n }\n\n getChildContext() {\n return {\n ...this.context,\n rcTreeNode: {\n // onUpCheckConduct: this.onUpCheckConduct,\n },\n };\n }\n\n // Isomorphic needn't load data in server side\n componentDidMount() {\n const { eventKey } = this.props;\n const { rcTree: { registerTreeNode } } = this.context;\n\n this.syncLoadData(this.props);\n\n registerTreeNode(eventKey, this);\n }\n\n componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n\n componentWillUnmount() {\n const { eventKey } = this.props;\n const { rcTree: { registerTreeNode } } = this.context;\n registerTreeNode(eventKey, null);\n }\n\n onSelectorClick = (e) => {\n // Click trigger before select/check operation\n const { rcTree: { onNodeClick } } = this.context;\n onNodeClick(e, this);\n\n if (this.isSelectable()) {\n this.onSelect(e);\n } else {\n this.onCheck(e);\n }\n };\n\n onSelectorDoubleClick = (e) => {\n const { rcTree: { onNodeDoubleClick } } = this.context;\n onNodeDoubleClick(e, this);\n };\n\n onSelect = (e) => {\n if (this.isDisabled()) return;\n\n const { rcTree: { onNodeSelect } } = this.context;\n e.preventDefault();\n onNodeSelect(e, this);\n };\n\n onCheck = (e) => {\n if (this.isDisabled()) return;\n\n const { disableCheckbox, checked } = this.props;\n const {\n rcTree: { checkable, onNodeCheck },\n } = this.context;\n\n if (!checkable || disableCheckbox) return;\n\n e.preventDefault();\n const targetChecked = !checked;\n onNodeCheck(e, this, targetChecked);\n };\n\n onMouseEnter = (e) => {\n const { rcTree: { onNodeMouseEnter } } = this.context;\n onNodeMouseEnter(e, this);\n };\n\n onMouseLeave = (e) => {\n const { rcTree: { onNodeMouseLeave } } = this.context;\n onNodeMouseLeave(e, this);\n };\n\n onContextMenu = (e) => {\n const { rcTree: { onNodeContextMenu } } = this.context;\n onNodeContextMenu(e, this);\n };\n\n onDragStart = (e) => {\n const { rcTree: { onNodeDragStart } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: true,\n });\n onNodeDragStart(e, this);\n\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n\n onDragEnter = (e) => {\n const { rcTree: { onNodeDragEnter } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, this);\n };\n\n onDragOver = (e) => {\n const { rcTree: { onNodeDragOver } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, this);\n };\n\n onDragLeave = (e) => {\n const { rcTree: { onNodeDragLeave } } = this.context;\n\n e.stopPropagation();\n onNodeDragLeave(e, this);\n };\n\n onDragEnd = (e) => {\n const { rcTree: { onNodeDragEnd } } = this.context;\n\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDragEnd(e, this);\n };\n\n onDrop = (e) => {\n const { rcTree: { onNodeDrop } } = this.context;\n\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dragNodeHighlight: false,\n });\n onNodeDrop(e, this);\n };\n\n // Disabled item still can be switch\n onExpand = (e) => {\n const { rcTree: { onNodeExpand } } = this.context;\n onNodeExpand(e, this);\n };\n\n // Drag usage\n setSelectHandle = (node) => {\n this.selectHandle = node;\n };\n\n getNodeChildren = () => {\n const { children } = this.props;\n const originList = toArray(children).filter(node => node);\n const targetList = getNodeChildren(originList);\n\n if (originList.length !== targetList.length) {\n warnOnlyTreeNode();\n }\n\n return targetList;\n };\n\n getNodeState = () => {\n const { expanded } = this.props;\n\n if (this.isLeaf()) {\n return null;\n }\n\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n\n isLeaf = () => {\n const { isLeaf, loaded } = this.props;\n const { rcTree: { loadData } } = this.context;\n\n const hasChildren = this.getNodeChildren().length !== 0;\n\n if (isLeaf === false) {\n return false;\n }\n\n return (\n isLeaf ||\n (!loadData && !hasChildren) ||\n (loadData && loaded && !hasChildren)\n );\n };\n\n isDisabled = () => {\n const { disabled } = this.props;\n const { rcTree: { disabled: treeDisabled } } = this.context;\n\n // Follow the logic of Selectable\n if (disabled === false) {\n return false;\n }\n\n return !!(treeDisabled || disabled);\n };\n\n isSelectable() {\n const { selectable } = this.props;\n const { rcTree: { selectable: treeSelectable } } = this.context;\n\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n\n return treeSelectable;\n }\n\n // Load data to avoid default expanded tree without data\n syncLoadData = (props) => {\n const { expanded, loading, loaded } = props;\n const { rcTree: { loadData, onNodeLoad } } = this.context;\n\n if (loading) return;\n\n // read from state to avoid loadData at same time\n if (loadData && expanded && !this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n const hasChildren = this.getNodeChildren().length !== 0;\n if (!hasChildren && !loaded) {\n onNodeLoad(this);\n }\n }\n };\n\n // Switcher\n renderSwitcher = () => {\n const {\n expanded,\n switcherIcon: switcherIconFromProps,\n } = this.props;\n const {\n rcTree: {\n prefixCls,\n switcherIcon: switcherIconFromCtx,\n }\n } = this.context;\n\n const switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n\n if (this.isLeaf()) {\n return (\n \n {typeof switcherIcon === 'function' ?\n switcherIcon({ ...this.props, isLeaf: true }) : switcherIcon}\n \n );\n }\n\n const switcherCls = classNames(`${prefixCls}-switcher`, `${prefixCls}-switcher_${expanded ? ICON_OPEN : ICON_CLOSE}`);\n return (\n \n {typeof switcherIcon === 'function' ?\n switcherIcon({ ...this.props, isLeaf: false }) : switcherIcon}\n \n );\n };\n\n // Checkbox\n renderCheckbox = () => {\n const { checked, halfChecked, disableCheckbox } = this.props;\n const { rcTree: { prefixCls, checkable } } = this.context;\n const disabled = this.isDisabled();\n\n if (!checkable) return null;\n\n // [Legacy] Custom element should be separate with `checkable` in future\n const $custom = typeof checkable !== 'boolean' ? checkable : null;\n\n return (\n \n {$custom}\n \n );\n };\n\n renderIcon = () => {\n const { loading } = this.props;\n const { rcTree: { prefixCls } } = this.context;\n\n return (\n \n );\n };\n\n // Icon + Title\n renderSelector = () => {\n const { dragNodeHighlight } = this.state;\n const { title, selected, icon, loading } = this.props;\n const { rcTree: { prefixCls, showIcon, icon: treeIcon, draggable, loadData } } = this.context;\n const disabled = this.isDisabled();\n\n const wrapClass = `${prefixCls}-node-content-wrapper`;\n\n // Icon - Still show loading icon when loading without showIcon\n let $icon;\n\n if (showIcon) {\n const currentIcon = icon || treeIcon;\n\n $icon = currentIcon ? (\n \n {typeof currentIcon === 'function' ?\n React.createElement(currentIcon, {\n ...this.props,\n }) : currentIcon}\n \n ) : this.renderIcon();\n } else if (loadData && loading) {\n $icon = this.renderIcon();\n }\n\n // Title\n const $title = {title};\n\n return (\n \n {$icon}{$title}\n \n );\n };\n\n // Children list wrapped with `Animation`\n renderChildren = () => {\n const { expanded, pos } = this.props;\n const { rcTree: {\n prefixCls,\n openTransitionName, openAnimation,\n renderTreeNode,\n } } = this.context;\n\n const animProps = {};\n if (openTransitionName) {\n animProps.transitionName = openTransitionName;\n } else if (typeof openAnimation === 'object') {\n animProps.animation = { ...openAnimation };\n }\n\n // Children TreeNode\n const nodeList = this.getNodeChildren();\n\n if (nodeList.length === 0) {\n return null;\n }\n\n let $children;\n if (expanded) {\n $children = (\n \n {mapChildren(nodeList, (node, index) => (\n renderTreeNode(node, index, pos)\n ))}\n \n );\n }\n\n return (\n \n {$children}\n \n );\n };\n\n render() {\n const { loading } = this.props;\n const {\n className, style,\n dragOver, dragOverGapTop, dragOverGapBottom,\n isLeaf,\n expanded, selected, checked, halfChecked,\n ...otherProps\n } = this.props;\n const { rcTree: {\n prefixCls,\n filterTreeNode,\n draggable,\n } } = this.context;\n const disabled = this.isDisabled();\n const dataOrAriaAttributeProps = getDataAndAria(otherProps);\n\n return (\n \n {this.renderSwitcher()}\n {this.renderCheckbox()}\n {this.renderSelector()}\n {this.renderChildren()}\n \n );\n }\n}\n\nTreeNode.isTreeNode = 1;\n\npolyfill(TreeNode);\n\nexport default TreeNode;\n\n\n\n// WEBPACK FOOTER //\n// ./src/TreeNode.jsx","import _toArray from 'babel-runtime/helpers/toArray';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport classes from 'component-classes';\nimport raf from 'raf';\n\nimport { getStyleValue, cloneProps, getTransitionName, supportTransition, animationEndName, transitionEndName } from './util';\n\nvar clonePropList = ['appeared', 'show', 'exclusive', 'children', 'animation'];\n\n/**\n * AnimateChild only accept one child node.\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genAnimateChild(transitionSupport) {\n var AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n // [Legacy] Since old code addListener on the element.\n // To avoid break the behaviour that component not handle animation/transition\n // also can handle the animate, let keep the logic.\n var _this = _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).call(this));\n\n _this.state = {\n child: null,\n\n eventQueue: [],\n eventActive: false\n };\n\n _this.onDomUpdated = function () {\n var eventActive = _this.state.eventActive;\n var _this$props = _this.props,\n transitionName = _this$props.transitionName,\n animation = _this$props.animation,\n onChildLeaved = _this$props.onChildLeaved,\n animateKey = _this$props.animateKey;\n\n\n var $ele = _this.getDomElement();\n\n // Skip if dom element not ready\n if (!$ele) return;\n\n // [Legacy] Add animation/transition event by dom level\n if (transitionSupport && _this.$prevEle !== $ele) {\n _this.cleanDomEvent();\n\n _this.$prevEle = $ele;\n _this.$prevEle.addEventListener(animationEndName, _this.onMotionEnd);\n _this.$prevEle.addEventListener(transitionEndName, _this.onMotionEnd);\n }\n\n var currentEvent = _this.getCurrentEvent();\n if (currentEvent.empty) {\n // Additional process the leave event\n if (currentEvent.lastEventType === 'leave') {\n onChildLeaved(animateKey);\n }\n return;\n }\n\n var eventType = currentEvent.eventType,\n restQueue = currentEvent.restQueue;\n\n var nodeClasses = classes($ele);\n\n // [Legacy] Since origin code use js to set `className`.\n // This caused that any component without support `className` can be forced set.\n // Let's keep the logic.\n function legacyAppendClass() {\n if (!transitionSupport) return;\n\n var basicClassName = getTransitionName(transitionName, '' + eventType);\n if (basicClassName) nodeClasses.add(basicClassName);\n\n if (eventActive) {\n var activeClassName = getTransitionName(transitionName, eventType + '-active');\n if (activeClassName) nodeClasses.add(activeClassName);\n }\n }\n\n if (_this.currentEvent && _this.currentEvent.type === eventType) {\n legacyAppendClass();\n return;\n }\n\n // Clear timeout for legacy check\n clearTimeout(_this.timeout);\n\n // Clean up last event environment\n if (_this.currentEvent && _this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) {\n _this.currentEvent.animateObj.stop();\n }\n\n // Clean up last transition class\n if (_this.currentEvent) {\n var basicClassName = getTransitionName(transitionName, '' + _this.currentEvent.type);\n var activeClassName = getTransitionName(transitionName, _this.currentEvent.type + '-active');\n if (basicClassName) nodeClasses.remove(basicClassName);\n if (activeClassName) nodeClasses.remove(activeClassName);\n }\n\n // New event come\n _this.currentEvent = {\n type: eventType\n };\n\n var animationHandler = (animation || {})[eventType];\n // =============== Check if has customize animation ===============\n if (animationHandler) {\n _this.currentEvent.animateObj = animationHandler($ele, function () {\n _this.onMotionEnd({ target: $ele });\n });\n\n // Do next step if not animate object provided\n if (!_this.currentEvent || !_this.currentEvent.animateObj) {\n _this.nextEvent(restQueue);\n }\n\n // ==================== Use transition instead ====================\n } else if (transitionSupport) {\n legacyAppendClass();\n if (!eventActive) {\n // Trigger `eventActive` in next frame\n raf(function () {\n if (_this.currentEvent && _this.currentEvent.type === eventType && !_this._destroy) {\n _this.setState({ eventActive: true }, function () {\n // [Legacy] Handle timeout if browser transition event not handle\n var transitionDelay = getStyleValue($ele, 'transition-delay') || 0;\n var transitionDuration = getStyleValue($ele, 'transition-duration') || 0;\n var animationDelay = getStyleValue($ele, 'animation-delay') || 0;\n var animationDuration = getStyleValue($ele, 'animation-duration') || 0;\n var totalTime = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n\n if (totalTime >= 0) {\n _this.timeout = setTimeout(function () {\n _this.onMotionEnd({ target: $ele });\n }, totalTime * 1000);\n }\n });\n }\n });\n }\n\n // ======================= Just next action =======================\n } else {\n _this.onMotionEnd({ target: $ele });\n }\n };\n\n _this.onMotionEnd = function (_ref) {\n var target = _ref.target;\n var _this$props2 = _this.props,\n transitionName = _this$props2.transitionName,\n onChildLeaved = _this$props2.onChildLeaved,\n animateKey = _this$props2.animateKey,\n onAppear = _this$props2.onAppear,\n onEnter = _this$props2.onEnter,\n onLeave = _this$props2.onLeave,\n onEnd = _this$props2.onEnd;\n\n var currentEvent = _this.getCurrentEvent();\n if (currentEvent.empty) return;\n\n // Clear timeout for legacy check\n clearTimeout(_this.timeout);\n\n var restQueue = currentEvent.restQueue;\n\n\n var $ele = _this.getDomElement();\n if (!_this.currentEvent || $ele !== target) return;\n\n if (_this.currentEvent.animateObj && _this.currentEvent.animateObj.stop) {\n _this.currentEvent.animateObj.stop();\n }\n\n // [Legacy] Same as above, we need call js to remove the class\n if (transitionSupport && _this.currentEvent) {\n var basicClassName = getTransitionName(transitionName, _this.currentEvent.type);\n var activeClassName = getTransitionName(transitionName, _this.currentEvent.type + '-active');\n\n var nodeClasses = classes($ele);\n if (basicClassName) nodeClasses.remove(basicClassName);\n if (activeClassName) nodeClasses.remove(activeClassName);\n }\n\n // Additional process the leave event\n if (_this.currentEvent && _this.currentEvent.type === 'leave') {\n onChildLeaved(animateKey);\n }\n\n // [Legacy] Trigger on event when it's last event\n if (_this.currentEvent && !restQueue.length) {\n if (_this.currentEvent.type === 'appear' && onAppear) {\n onAppear(animateKey);\n } else if (_this.currentEvent.type === 'enter' && onEnter) {\n onEnter(animateKey);\n } else if (_this.currentEvent.type === 'leave' && onLeave) {\n onLeave(animateKey);\n }\n\n if (onEnd) {\n // OnEnd(key, isShow)\n onEnd(animateKey, _this.currentEvent.type !== 'leave');\n }\n }\n\n _this.currentEvent = null;\n\n // Next queue\n _this.nextEvent(restQueue);\n };\n\n _this.getDomElement = function () {\n if (_this._destroy) return null;\n return ReactDOM.findDOMNode(_this);\n };\n\n _this.getCurrentEvent = function () {\n var _this$state$eventQueu = _this.state.eventQueue,\n eventQueue = _this$state$eventQueu === undefined ? [] : _this$state$eventQueu;\n var _this$props3 = _this.props,\n animation = _this$props3.animation,\n exclusive = _this$props3.exclusive,\n transitionAppear = _this$props3.transitionAppear,\n transitionEnter = _this$props3.transitionEnter,\n transitionLeave = _this$props3.transitionLeave;\n\n\n function hasEventHandler(eventType) {\n return eventType === 'appear' && (transitionAppear || animation.appear) || eventType === 'enter' && (transitionEnter || animation.enter) || eventType === 'leave' && (transitionLeave || animation.leave);\n }\n\n var event = null;\n // If is exclusive, only check the last event\n if (exclusive) {\n var eventType = eventQueue[eventQueue.length - 1];\n if (hasEventHandler(eventType)) {\n event = {\n eventType: eventType,\n restQueue: []\n };\n }\n } else {\n // Loop check the queue until find match\n var cloneQueue = eventQueue.slice();\n while (cloneQueue.length) {\n var _cloneQueue = cloneQueue,\n _cloneQueue2 = _toArray(_cloneQueue),\n _eventType = _cloneQueue2[0],\n restQueue = _cloneQueue2.slice(1);\n\n if (hasEventHandler(_eventType)) {\n event = {\n eventType: _eventType,\n restQueue: restQueue\n };\n break;\n }\n cloneQueue = restQueue;\n }\n }\n\n if (!event) {\n event = {\n empty: true,\n lastEventType: eventQueue[eventQueue.length - 1]\n };\n }\n\n return event;\n };\n\n _this.nextEvent = function (restQueue) {\n // Next queue\n if (!_this._destroy) {\n _this.setState({\n eventQueue: restQueue,\n eventActive: false\n });\n }\n };\n\n _this.cleanDomEvent = function () {\n if (_this.$prevEle && transitionSupport) {\n _this.$prevEle.removeEventListener(animationEndName, _this.onMotionEnd);\n _this.$prevEle.removeEventListener(transitionEndName, _this.onMotionEnd);\n }\n };\n\n _this.$prevEle = null;\n\n _this.currentEvent = null;\n _this.timeout = null;\n return _this;\n }\n\n _createClass(AnimateChild, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdated();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdated();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n this._destroy = true;\n this.cleanDomEvent();\n }\n }, {\n key: 'render',\n value: function render() {\n var _state = this.state,\n child = _state.child,\n eventActive = _state.eventActive;\n var _props = this.props,\n showProp = _props.showProp,\n transitionName = _props.transitionName;\n\n var _ref2 = child.props || {},\n className = _ref2.className;\n\n var currentEvent = this.getCurrentEvent();\n\n // Class name\n var connectClassName = transitionSupport && this.currentEvent ? classNames(className, getTransitionName(transitionName, this.currentEvent.type), eventActive && getTransitionName(transitionName, this.currentEvent.type + '-active')) : className;\n\n var show = true;\n\n // Keep show when is in transition or has customize animate\n if (transitionSupport && (!currentEvent.empty || this.currentEvent && this.currentEvent.animateObj)) {\n show = true;\n } else {\n show = child.props[showProp];\n }\n\n // Clone child\n var newChildProps = {\n className: connectClassName\n };\n\n if (showProp) {\n newChildProps[showProp] = show;\n }\n\n return React.cloneElement(child, newChildProps);\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var _prevState$prevProps = prevState.prevProps,\n prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps;\n var appeared = nextProps.appeared;\n\n\n var newState = {\n prevProps: cloneProps(nextProps, clonePropList)\n };\n\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName]) {\n if (updater) {\n updater(nextProps[propName]);\n }\n return true;\n }\n return false;\n }\n\n function pushEvent(eventType) {\n var eventQueue = newState.eventQueue || prevState.eventQueue.slice();\n var matchIndex = eventQueue.indexOf(eventType);\n\n // Clean the rest event if eventType match\n if (matchIndex !== -1) {\n eventQueue = eventQueue.slice(0, matchIndex);\n }\n\n eventQueue.push(eventType);\n newState.eventQueue = eventQueue;\n }\n\n // Child update. Only set child.\n processState('children', function (child) {\n newState.child = child;\n });\n\n processState('appeared', function (isAppeared) {\n if (isAppeared) {\n pushEvent('appear');\n }\n });\n\n // Show update\n processState('show', function (show) {\n if (!appeared) {\n if (show) {\n pushEvent('enter');\n } else {\n pushEvent('leave');\n }\n }\n });\n\n return newState;\n }\n }]);\n\n return AnimateChild;\n }(React.Component);\n\n AnimateChild.propTypes = {\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionAppear: PropTypes.bool,\n transitionEnter: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n exclusive: PropTypes.bool,\n appeared: PropTypes.bool,\n showProp: PropTypes.string,\n\n animateKey: PropTypes.any,\n animation: PropTypes.object,\n onChildLeaved: PropTypes.func,\n\n onEnd: PropTypes.func,\n onAppear: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func\n };\n\n\n polyfill(AnimateChild);\n\n return AnimateChild;\n}\n\nexport default genAnimateChild(supportTransition);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/AnimateChild.js\n// module id = 64\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_65__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 65\n// module chunks = 0","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_component-indexof@0.0.3@component-indexof/index.js\n// module id = 66\n// module chunks = 0","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_raf@3.4.1@raf/index.js\n// module id = 67\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/index.less\n// module id = 69\n// module chunks = 0","import Tree from './Tree';\nimport TreeNode from './TreeNode';\n\nTree.TreeNode = TreeNode;\n\nexport { TreeNode };\nexport default Tree;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport toArray from 'rc-util/lib/Children/toArray';\nimport { polyfill } from 'react-lifecycles-compat';\n\nimport { treeContextTypes } from './contextTypes';\nimport {\n convertTreeToEntities, convertDataToTree,\n getDataAndAria,\n getPosition, getDragNodesKeys,\n parseCheckedKeys,\n conductExpandParent, calcSelectedKeys,\n calcDropPosition,\n arrAdd, arrDel, posToArr,\n mapChildren, conductCheck,\n warnOnlyTreeNode,\n} from './util';\n\nclass Tree extends React.Component {\n static propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.any,\n treeData: PropTypes.array, // Generate treeNode by children\n showLine: PropTypes.bool,\n showIcon: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n focusable: PropTypes.bool,\n selectable: PropTypes.bool,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n checkable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n ]),\n checkStrictly: PropTypes.bool,\n draggable: PropTypes.bool,\n defaultExpandParent: PropTypes.bool,\n autoExpandParent: PropTypes.bool,\n defaultExpandAll: PropTypes.bool,\n defaultExpandedKeys: PropTypes.arrayOf(PropTypes.string),\n expandedKeys: PropTypes.arrayOf(PropTypes.string),\n defaultCheckedKeys: PropTypes.arrayOf(PropTypes.string),\n checkedKeys: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.object,\n ]),\n defaultSelectedKeys: PropTypes.arrayOf(PropTypes.string),\n selectedKeys: PropTypes.arrayOf(PropTypes.string),\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onExpand: PropTypes.func,\n onCheck: PropTypes.func,\n onSelect: PropTypes.func,\n onLoad: PropTypes.func,\n loadData: PropTypes.func,\n loadedKeys: PropTypes.arrayOf(PropTypes.string),\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onRightClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragEnter: PropTypes.func,\n onDragOver: PropTypes.func,\n onDragLeave: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDrop: PropTypes.func,\n filterTreeNode: PropTypes.func,\n openTransitionName: PropTypes.string,\n openAnimation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n switcherIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n };\n\n static childContextTypes = treeContextTypes;\n\n static defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n // TODO: Remove this eslint\n posEntities: {}, // eslint-disable-line react/no-unused-state\n keyEntities: {},\n \n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n \n treeNode: [],\n };\n \n // Internal usage for `rc-tree-select`, we don't promise it will not change.\n this.domTreeNodes = {};\n }\n\n getChildContext() {\n const {\n prefixCls, selectable, showIcon, icon, draggable, checkable, checkStrictly, disabled,\n loadData, filterTreeNode,\n openTransitionName, openAnimation,\n switcherIcon,\n } = this.props;\n\n return {\n rcTree: {\n // root: this,\n\n prefixCls,\n selectable,\n showIcon,\n icon,\n switcherIcon,\n draggable,\n checkable,\n checkStrictly,\n disabled,\n openTransitionName,\n openAnimation,\n\n loadData,\n filterTreeNode,\n renderTreeNode: this.renderTreeNode,\n isKeyChecked: this.isKeyChecked,\n\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop,\n\n registerTreeNode: this.registerTreeNode,\n },\n };\n }\n\n static getDerivedStateFromProps(props, prevState) {\n const { prevProps } = prevState;\n const newState = {\n prevProps: props,\n };\n\n function needSync(name) {\n return (!prevProps && name in props) || (prevProps && prevProps[name] !== props[name]);\n }\n\n // ================== Tree Node ==================\n let treeNode = null;\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeNode = convertDataToTree(props.treeData);\n } else if (needSync('children')) {\n treeNode = toArray(props.children);\n }\n\n // Tree support filter function which will break the tree structure in the vdm.\n // We cache the treeNodes in state so that we can return the treeNode in event trigger.\n if (treeNode) {\n newState.treeNode = treeNode;\n\n // Calculate the entities data for quick match\n const entitiesMap = convertTreeToEntities(treeNode);\n newState.posEntities = entitiesMap.posEntities;\n newState.keyEntities = entitiesMap.keyEntities;\n }\n\n const keyEntities = newState.keyEntities || prevState.keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || (prevProps && needSync('autoExpandParent'))) {\n newState.expandedKeys = (props.autoExpandParent || (!prevProps && props.defaultExpandParent)) ?\n conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n newState.expandedKeys = Object.keys(keyEntities);\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = (props.autoExpandParent || props.defaultExpandParent) ?\n conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n let checkedKeyEntity;\n\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeNode) {\n // If treeNode changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys,\n };\n }\n\n if (checkedKeyEntity) {\n let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;\n\n if (!props.checkStrictly) {\n const conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n\n return newState;\n }\n\n onNodeDragStart = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragStart } = this.props;\n const { eventKey, children } = node.props;\n\n this.dragNode = node;\n\n this.setState({\n dragNodesKeys: getDragNodesKeys(children, node),\n expandedKeys: arrDel(expandedKeys, eventKey),\n });\n\n if (onDragStart) {\n onDragStart({ event, node });\n }\n };\n\n /**\n * [Legacy] Select handler is less small than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n onNodeDragEnter = (event, node) => {\n const { expandedKeys } = this.state;\n const { onDragEnter } = this.props;\n const { pos, eventKey } = node.props;\n\n if (!this.dragNode) return;\n\n const dropPosition = calcDropPosition(event, node);\n\n // Skip if drag node is self\n if (\n this.dragNode.props.eventKey === eventKey &&\n dropPosition === 0\n ) {\n this.setState({\n dragOverNodeKey: '',\n dropPosition: null,\n });\n return;\n }\n\n // Ref: https://github.com/react-component/tree/issues/132\n // Add timeout to let onDragLevel fire before onDragEnter,\n // so that we can clean drag props for onDragLeave node.\n // Macro task for this:\n // https://html.spec.whatwg.org/multipage/webappapis.html#clean-up-after-running-script\n setTimeout(() => {\n // Update drag over node\n this.setState({\n dragOverNodeKey: eventKey,\n dropPosition,\n });\n\n // Side effect for delay drag\n if (!this.delayedDragEnterLogic) {\n this.delayedDragEnterLogic = {};\n }\n Object.keys(this.delayedDragEnterLogic).forEach((key) => {\n clearTimeout(this.delayedDragEnterLogic[key]);\n });\n this.delayedDragEnterLogic[pos] = setTimeout(() => {\n const newExpandedKeys = arrAdd(expandedKeys, eventKey);\n if (!('expandedKeys' in this.props)) {\n this.setState({\n expandedKeys: newExpandedKeys,\n });\n }\n\n if (onDragEnter) {\n onDragEnter({ event, node, expandedKeys: newExpandedKeys });\n }\n }, 400);\n }, 0);\n };\n onNodeDragOver = (event, node) => {\n const { onDragOver } = this.props;\n const { eventKey } = node.props;\n\n // Update drag position\n if (this.dragNode && eventKey === this.state.dragOverNodeKey) {\n const dropPosition = calcDropPosition(event, node);\n\n if (dropPosition === this.state.dropPosition) return;\n\n this.setState({\n dropPosition,\n });\n }\n\n if (onDragOver) {\n onDragOver({ event, node });\n }\n };\n onNodeDragLeave = (event, node) => {\n const { onDragLeave } = this.props;\n\n this.setState({\n dragOverNodeKey: '',\n });\n\n if (onDragLeave) {\n onDragLeave({ event, node });\n }\n };\n onNodeDragEnd = (event, node) => {\n const { onDragEnd } = this.props;\n this.setState({\n dragOverNodeKey: '',\n });\n if (onDragEnd) {\n onDragEnd({ event, node });\n }\n\n this.dragNode = null;\n };\n onNodeDrop = (event, node) => {\n const { dragNodesKeys = [], dropPosition } = this.state;\n const { onDrop } = this.props;\n const { eventKey, pos } = node.props;\n\n this.setState({\n dragOverNodeKey: '',\n });\n\n if (dragNodesKeys.indexOf(eventKey) !== -1) {\n warning(false, 'Can not drop to dragNode(include it\\'s children node)');\n return;\n }\n\n const posArr = posToArr(pos);\n\n const dropResult = {\n event,\n node,\n dragNode: this.dragNode,\n dragNodesKeys: dragNodesKeys.slice(),\n dropPosition: dropPosition + Number(posArr[posArr.length - 1]),\n };\n\n if (dropPosition !== 0) {\n dropResult.dropToGap = true;\n }\n\n if (onDrop) {\n onDrop(dropResult);\n }\n\n this.dragNode = null;\n };\n\n onNodeClick = (e, treeNode) => {\n const { onClick } = this.props;\n if (onClick) {\n onClick(e, treeNode);\n }\n };\n\n onNodeDoubleClick = (e, treeNode) => {\n const { onDoubleClick } = this.props;\n if (onDoubleClick) {\n onDoubleClick(e, treeNode);\n }\n };\n\n onNodeSelect = (e, treeNode) => {\n let { selectedKeys } = this.state;\n const { keyEntities } = this.state;\n const { onSelect, multiple } = this.props;\n const { selected, eventKey } = treeNode.props;\n const targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, eventKey);\n } else if (!multiple) {\n selectedKeys = [eventKey];\n } else {\n selectedKeys = arrAdd(selectedKeys, eventKey);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n const selectedNodes = selectedKeys.map(key => {\n const entity = keyEntities[key];\n if (!entity) return null;\n\n return entity.node;\n }).filter(node => node);\n\n this.setUncontrolledState({ selectedKeys });\n\n if (onSelect) {\n const eventObj = {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes,\n nativeEvent: e.nativeEvent,\n };\n onSelect(selectedKeys, eventObj);\n }\n };\n\n onNodeCheck = (e, treeNode, checked) => {\n const { keyEntities, checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys } = this.state;\n const { checkStrictly, onCheck } = this.props;\n const { props: { eventKey } } = treeNode;\n\n // Prepare trigger arguments\n let checkedObj;\n const eventObj = {\n event: 'check',\n node: treeNode,\n checked,\n nativeEvent: e.nativeEvent,\n };\n\n if (checkStrictly) {\n const checkedKeys = checked ? arrAdd(oriCheckedKeys, eventKey) : arrDel(oriCheckedKeys, eventKey);\n const halfCheckedKeys = arrDel(oriHalfCheckedKeys, eventKey);\n checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };\n\n eventObj.checkedNodes = checkedKeys\n .map(key => keyEntities[key])\n .filter(entity => entity)\n .map(entity => entity.node);\n\n this.setUncontrolledState({ checkedKeys });\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck([eventKey], checked, keyEntities, {\n checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys,\n });\n\n checkedObj = checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = halfCheckedKeys;\n\n checkedKeys.forEach((key) => {\n const entity = keyEntities[key];\n if (!entity) return;\n\n const { node, pos } = entity;\n\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({ node, pos });\n });\n\n this.setUncontrolledState({\n checkedKeys,\n halfCheckedKeys,\n });\n }\n\n if (onCheck) {\n onCheck(checkedObj, eventObj);\n }\n };\n\n onNodeLoad = treeNode => (\n new Promise((resolve) => {\n // We need to get the latest state of loading/loaded keys\n this.setState(({ loadedKeys = [], loadingKeys = [] }) => {\n const { loadData, onLoad } = this.props;\n const { eventKey } = treeNode.props;\n\n if (!loadData || loadedKeys.indexOf(eventKey) !== -1 || loadingKeys.indexOf(eventKey) !== -1) {\n // react 15 will warn if return null\n return {};\n }\n\n // Process load data\n const promise = loadData(treeNode);\n promise.then(() => {\n const newLoadedKeys = arrAdd(this.state.loadedKeys, eventKey);\n const newLoadingKeys = arrDel(this.state.loadingKeys, eventKey);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n if (onLoad) {\n const eventObj = {\n event: 'load',\n node: treeNode,\n };\n onLoad(newLoadedKeys, eventObj);\n }\n\n this.setUncontrolledState({\n loadedKeys: newLoadedKeys,\n });\n this.setState({\n loadingKeys: newLoadingKeys,\n });\n\n resolve();\n });\n\n return {\n loadingKeys: arrAdd(loadingKeys, eventKey),\n };\n });\n })\n );\n\n onNodeExpand = (e, treeNode) => {\n let { expandedKeys } = this.state;\n const { onExpand, loadData } = this.props;\n const { eventKey, expanded } = treeNode.props;\n\n // Update selected keys\n const index = expandedKeys.indexOf(eventKey);\n const targetExpanded = !expanded;\n\n warning(\n (expanded && index !== -1) || (!expanded && index === -1),\n 'Expand state not sync with index check',\n );\n\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, eventKey);\n } else {\n expandedKeys = arrDel(expandedKeys, eventKey);\n }\n\n this.setUncontrolledState({ expandedKeys });\n\n if (onExpand) {\n onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent,\n });\n }\n\n // Async Load data\n if (targetExpanded && loadData) {\n const loadPromise = this.onNodeLoad(treeNode);\n return loadPromise ? loadPromise.then(() => {\n // [Legacy] Refresh logic\n this.setUncontrolledState({ expandedKeys });\n }) : null;\n }\n\n return null;\n };\n\n onNodeMouseEnter = (event, node) => {\n const { onMouseEnter } = this.props;\n if (onMouseEnter) {\n onMouseEnter({ event, node });\n }\n };\n\n onNodeMouseLeave = (event, node) => {\n const { onMouseLeave } = this.props;\n if (onMouseLeave) {\n onMouseLeave({ event, node });\n }\n };\n\n onNodeContextMenu = (event, node) => {\n const { onRightClick } = this.props;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({ event, node });\n }\n };\n\n /**\n * Only update the value which is not in props\n */\n setUncontrolledState = (state) => {\n let needSync = false;\n const newState = {};\n\n Object.keys(state).forEach(name => {\n if (name in this.props) return;\n\n needSync = true;\n newState[name] = state[name];\n });\n\n if (needSync) {\n this.setState(newState);\n }\n };\n\n registerTreeNode = (key, node) => {\n if (node) {\n this.domTreeNodes[key] = node;\n } else {\n delete this.domTreeNodes[key];\n }\n };\n\n isKeyChecked = (key) => {\n const { checkedKeys = [] } = this.state;\n return checkedKeys.indexOf(key) !== -1;\n };\n\n /**\n * [Legacy] Original logic use `key` as tracking clue.\n * We have to use `cloneElement` to pass `key`.\n */\n renderTreeNode = (child, index, level = 0) => {\n const {\n keyEntities,\n expandedKeys = [], selectedKeys = [], halfCheckedKeys = [],\n loadedKeys = [], loadingKeys = [],\n dragOverNodeKey, dropPosition,\n } = this.state;\n const pos = getPosition(level, index);\n const key = child.key || pos;\n\n if (!keyEntities[key]) {\n warnOnlyTreeNode();\n return null;\n }\n\n return React.cloneElement(child, {\n key,\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: this.isKeyChecked(key),\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos,\n\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1,\n });\n };\n\n render() {\n const { treeNode } = this.state;\n const {\n prefixCls, className, focusable, style,\n showLine, tabIndex = 0,\n } = this.props;\n const domProps = getDataAndAria(this.props);\n\n if (focusable) {\n domProps.tabIndex = tabIndex;\n domProps.onKeyDown = this.onKeyDown;\n }\n\n return (\n \n {mapChildren(treeNode, (node, index) => (\n this.renderTreeNode(node, index)\n ))}\n \n );\n }\n}\n\npolyfill(Tree);\n\nexport default Tree;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Tree.jsx","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js\n// module id = 72\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.assign.js\n// module id = 74\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_a-function.js\n// module id = 75\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-assign.js\n// module id = 76\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_array-includes.js\n// module id = 77\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_to-absolute-index.js\n// module id = 78\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/define-property.js\n// module id = 79\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.define-property.js\n// module id = 80\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js\n// module id = 81\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/iterator.js\n// module id = 82\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_string-at.js\n// module id = 83\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-create.js\n// module id = 84\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-dps.js\n// module id = 85\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_html.js\n// module id = 86\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gpo.js\n// module id = 87\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/web.dom.iterable.js\n// module id = 88\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.iterator.js\n// module id = 89\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_add-to-unscopables.js\n// module id = 90\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-step.js\n// module id = 91\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js\n// module id = 92\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/symbol/index.js\n// module id = 93\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.symbol.js\n// module id = 94\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_meta.js\n// module id = 95\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_enum-keys.js\n// module id = 96\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array.js\n// module id = 97\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_object-gopn-ext.js\n// module id = 98\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 100\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es7.symbol.observable.js\n// module id = 101\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/set-prototype-of.js\n// module id = 102\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/set-prototype-of.js\n// module id = 103\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 104\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_set-proto.js\n// module id = 105\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/create.js\n// module id = 106\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/object/create.js\n// module id = 107\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.object.create.js\n// module id = 108\n// module chunks = 0","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/cjs/react-is.production.min.js\n// module id = 109\n// module chunks = 0","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_react-is@16.8.6@react-is/cjs/react-is.development.js\n// module id = 110\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/factoryWithTypeCheckers.js\n// module id = 111\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_object-assign@4.1.1@object-assign/index.js\n// module id = 112\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/checkPropTypes.js\n// module id = 113\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_prop-types@15.7.2@prop-types/factoryWithThrowingShims.js\n// module id = 114\n// module chunks = 0","import Animate from './Animate';\nimport AnimateChild from './AnimateChild';\nimport CSSMotion from './CSSMotion';\n\nexport { AnimateChild, CSSMotion };\n\nexport default Animate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/index.js\n// module id = 115\n// module chunks = 0","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport toArray from 'rc-util/es/Children/toArray';\nimport warning from 'fbjs/lib/warning';\n\nimport AnimateChild from './AnimateChild';\nimport { cloneProps, mergeChildren } from './util';\n\nvar defaultKey = 'rc_animate_' + Date.now();\nvar clonePropList = ['children'];\n\n/**\n * Default use `AnimateChild` as component.\n * Here can also pass customize `ChildComponent` for test usage.\n */\nexport function genAnimate(ChildComponent) {\n var Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n function Animate() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Animate);\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 = _possibleConstructorReturn(this, (_ref = Animate.__proto__ || Object.getPrototypeOf(Animate)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n appeared: true,\n mergedChildren: []\n }, _this.onChildLeaved = function (key) {\n // Remove child which not exist anymore\n if (!_this.hasChild(key)) {\n var mergedChildren = _this.state.mergedChildren;\n\n _this.setState({\n mergedChildren: mergedChildren.filter(function (node) {\n return node.key !== key;\n })\n });\n }\n }, _this.hasChild = function (key) {\n var children = _this.props.children;\n\n\n return toArray(children).some(function (node) {\n return node && node.key === key;\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n // [Legacy] Not sure usage\n // commit: https://github.com/react-component/animate/commit/0a1cbfd647407498b10a8c6602a2dea80b42e324\n // eslint-disable-line\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // No need to re-render\n this.state.appeared = false;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _state = this.state,\n appeared = _state.appeared,\n mergedChildren = _state.mergedChildren;\n var _props = this.props,\n Component = _props.component,\n componentProps = _props.componentProps,\n className = _props.className,\n style = _props.style,\n showProp = _props.showProp;\n\n\n var $children = mergedChildren.map(function (node) {\n if (mergedChildren.length > 1 && !node.key) {\n warning(false, 'must set key for children');\n return null;\n }\n\n var show = true;\n\n if (!_this2.hasChild(node.key)) {\n show = false;\n } else if (showProp) {\n show = node.props[showProp];\n }\n\n var key = node.key || defaultKey;\n\n return React.createElement(\n ChildComponent,\n _extends({}, _this2.props, {\n appeared: appeared,\n show: show,\n className: node.props.className,\n style: node.props.style,\n key: key,\n\n animateKey: node.key // Keep trans origin key\n , onChildLeaved: _this2.onChildLeaved\n }),\n node\n );\n });\n\n // Wrap with component\n if (Component) {\n var passedProps = this.props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: className,\n style: style\n }, componentProps);\n }\n\n return React.createElement(\n Component,\n passedProps,\n $children\n );\n }\n\n return $children[0] || null;\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var _prevState$prevProps = prevState.prevProps,\n prevProps = _prevState$prevProps === undefined ? {} : _prevState$prevProps;\n\n var newState = {\n prevProps: cloneProps(nextProps, clonePropList)\n };\n var showProp = nextProps.showProp;\n\n\n function processState(propName, updater) {\n if (prevProps[propName] !== nextProps[propName]) {\n updater(nextProps[propName]);\n return true;\n }\n return false;\n }\n\n processState('children', function (children) {\n var currentChildren = toArray(children).filter(function (node) {\n return node;\n });\n var prevChildren = prevState.mergedChildren.filter(function (node) {\n // Remove prev child if not show anymore\n if (currentChildren.every(function (_ref2) {\n var key = _ref2.key;\n return key !== node.key;\n }) && showProp && !node.props[showProp]) {\n return false;\n }\n return true;\n });\n\n // Merge prev children to keep the animation\n newState.mergedChildren = mergeChildren(prevChildren, currentChildren);\n });\n\n return newState;\n }\n }]);\n\n return Animate;\n }(React.Component);\n\n Animate.isAnimate = true;\n Animate.propTypes = {\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n showProp: PropTypes.string,\n children: PropTypes.node,\n style: PropTypes.object,\n className: PropTypes.string\n };\n Animate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false\n };\n\n\n polyfill(Animate);\n\n return Animate;\n}\n\nexport default genAnimate(AnimateChild);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/Animate.js\n// module id = 116\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/warning.js\n// module id = 117\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/emptyFunction.js\n// module id = 118\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n return Array.isArray(arr) ? arr : (0, _from2.default)(arr);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toArray.js\n// module id = 119\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js\n// module id = 120\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/fn/array/from.js\n// module id = 121\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/es6.array.from.js\n// module id = 122\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-call.js\n// module id = 123\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_is-array-iter.js\n// module id = 124\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_create-property.js\n// module id = 125\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/core.get-iterator-method.js\n// module id = 126\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_classof.js\n// module id = 127\n// module chunks = 0","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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.6.5@core-js/library/modules/_iter-detect.js\n// module id = 128\n// module chunks = 0","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_component-classes@1.2.6@component-classes/index.js\n// module id = 129\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 130\n// module chunks = 0","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_performance-now@2.1.0@performance-now/lib/performance-now.js\n// module id = 131\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_fbjs@0.8.17@fbjs/lib/ExecutionEnvironment.js\n// module id = 132\n// module chunks = 0","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport raf from 'raf';\nimport { getTransitionName, animationEndName, transitionEndName, supportTransition } from './util';\n\nvar STATUS_NONE = 'none';\nvar STATUS_APPEAR = 'appear';\nvar STATUS_ENTER = 'enter';\nvar STATUS_LEAVE = 'leave';\n\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(transitionSupport) {\n var CSSMotion = function (_React$Component) {\n _inherits(CSSMotion, _React$Component);\n\n function CSSMotion() {\n _classCallCheck(this, CSSMotion);\n\n var _this = _possibleConstructorReturn(this, (CSSMotion.__proto__ || Object.getPrototypeOf(CSSMotion)).call(this));\n\n _this.onDomUpdate = function () {\n var _this$state = _this.state,\n status = _this$state.status,\n newStatus = _this$state.newStatus;\n var _this$props = _this.props,\n onAppearStart = _this$props.onAppearStart,\n onEnterStart = _this$props.onEnterStart,\n onLeaveStart = _this$props.onLeaveStart,\n onAppearActive = _this$props.onAppearActive,\n onEnterActive = _this$props.onEnterActive,\n onLeaveActive = _this$props.onLeaveActive,\n motionAppear = _this$props.motionAppear,\n motionEnter = _this$props.motionEnter,\n motionLeave = _this$props.motionLeave;\n\n\n if (!transitionSupport) {\n return;\n }\n\n // Event injection\n var $ele = ReactDOM.findDOMNode(_this);\n if (_this.$ele !== $ele) {\n _this.removeEventListener(_this.$ele);\n _this.addEventListener($ele);\n _this.$ele = $ele;\n }\n\n // Init status\n if (newStatus && status === STATUS_APPEAR && motionAppear) {\n _this.updateStatus(onAppearStart, null, null, function () {\n _this.updateActiveStatus(onAppearActive, STATUS_APPEAR);\n });\n } else if (newStatus && status === STATUS_ENTER && motionEnter) {\n _this.updateStatus(onEnterStart, null, null, function () {\n _this.updateActiveStatus(onEnterActive, STATUS_ENTER);\n });\n } else if (newStatus && status === STATUS_LEAVE && motionLeave) {\n _this.updateStatus(onLeaveStart, null, null, function () {\n _this.updateActiveStatus(onLeaveActive, STATUS_LEAVE);\n });\n }\n };\n\n _this.onMotionEnd = function (event) {\n var _this$state2 = _this.state,\n status = _this$state2.status,\n statusActive = _this$state2.statusActive;\n var _this$props2 = _this.props,\n onAppearEnd = _this$props2.onAppearEnd,\n onEnterEnd = _this$props2.onEnterEnd,\n onLeaveEnd = _this$props2.onLeaveEnd;\n\n if (status === STATUS_APPEAR && statusActive) {\n _this.updateStatus(onAppearEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_ENTER && statusActive) {\n _this.updateStatus(onEnterEnd, { status: STATUS_NONE }, event);\n } else if (status === STATUS_LEAVE && statusActive) {\n _this.updateStatus(onLeaveEnd, { status: STATUS_NONE }, event);\n }\n };\n\n _this.addEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.addEventListener(transitionEndName, _this.onMotionEnd);\n $ele.addEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.removeEventListener = function ($ele) {\n if (!$ele) return;\n\n $ele.removeEventListener(transitionEndName, _this.onMotionEnd);\n $ele.removeEventListener(animationEndName, _this.onMotionEnd);\n };\n\n _this.updateStatus = function (styleFunc, additionalState, event, callback) {\n var statusStyle = styleFunc ? styleFunc(ReactDOM.findDOMNode(_this), event) : null;\n\n if (statusStyle === false || _this._destroyed) return;\n\n var nextStep = void 0;\n if (callback) {\n nextStep = function nextStep() {\n _this.nextFrame(callback);\n };\n }\n\n _this.setState(_extends({\n statusStyle: typeof statusStyle === 'object' ? statusStyle : null,\n newStatus: false\n }, additionalState), nextStep); // Trigger before next frame & after `componentDidMount`\n };\n\n _this.updateActiveStatus = function (styleFunc, currentStatus) {\n // `setState` use `postMessage` to trigger at the end of frame.\n // Let's use requestAnimationFrame to update new state in next frame.\n _this.nextFrame(function () {\n var status = _this.state.status;\n\n if (status !== currentStatus) return;\n\n _this.updateStatus(styleFunc, { statusActive: true });\n });\n };\n\n _this.nextFrame = function (func) {\n _this.cancelNextFrame();\n _this.raf = raf(func);\n };\n\n _this.cancelNextFrame = function () {\n if (_this.raf) {\n raf.cancel(_this.raf);\n _this.raf = null;\n }\n };\n\n _this.state = {\n status: STATUS_NONE,\n statusActive: false,\n newStatus: false,\n statusStyle: null\n };\n _this.$ele = null;\n _this.raf = null;\n return _this;\n }\n\n _createClass(CSSMotion, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.onDomUpdate();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._destroyed = true;\n this.removeEventListener(this.$ele);\n this.cancelNextFrame();\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _state = this.state,\n status = _state.status,\n statusActive = _state.statusActive,\n statusStyle = _state.statusStyle;\n var _props = this.props,\n children = _props.children,\n motionName = _props.motionName,\n visible = _props.visible;\n\n\n if (!children) return null;\n\n if (status === STATUS_NONE || !transitionSupport) {\n return visible ? children({}) : null;\n }\n\n return children({\n className: classNames((_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, status), status !== STATUS_NONE), _defineProperty(_classNames, getTransitionName(motionName, status + '-active'), status !== STATUS_NONE && statusActive), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n });\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, _ref) {\n var prevProps = _ref.prevProps;\n\n if (!transitionSupport) return {};\n\n var visible = props.visible,\n motionAppear = props.motionAppear,\n motionEnter = props.motionEnter,\n motionLeave = props.motionLeave,\n motionLeaveImmediately = props.motionLeaveImmediately;\n\n var newState = {\n prevProps: props\n };\n\n // Appear\n if (!prevProps && visible && motionAppear) {\n newState.status = STATUS_APPEAR;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Enter\n if (prevProps && !prevProps.visible && visible && motionEnter) {\n newState.status = STATUS_ENTER;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n // Leave\n if (prevProps && prevProps.visible && !visible && motionLeave || !prevProps && motionLeaveImmediately && !visible && motionLeave) {\n newState.status = STATUS_LEAVE;\n newState.statusActive = false;\n newState.newStatus = true;\n }\n\n return newState;\n }\n }]);\n\n return CSSMotion;\n }(React.Component);\n\n CSSMotion.propTypes = {\n visible: PropTypes.bool,\n children: PropTypes.func,\n motionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n motionAppear: PropTypes.bool,\n motionEnter: PropTypes.bool,\n motionLeave: PropTypes.bool,\n motionLeaveImmediately: PropTypes.bool, // Trigger leave motion immediately\n onAppearStart: PropTypes.func,\n onAppearActive: PropTypes.func,\n onAppearEnd: PropTypes.func,\n onEnterStart: PropTypes.func,\n onEnterActive: PropTypes.func,\n onEnterEnd: PropTypes.func,\n onLeaveStart: PropTypes.func,\n onLeaveActive: PropTypes.func,\n onLeaveEnd: PropTypes.func\n };\n CSSMotion.defaultProps = {\n visible: true,\n motionEnter: true,\n motionAppear: true,\n motionLeave: true\n };\n\n\n polyfill(CSSMotion);\n\n return CSSMotion;\n}\n\nexport default genCSSMotion(supportTransition);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_rc-animate@3.0.0-rc.6@rc-animate/es/CSSMotion.js\n// module id = 133\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css deleted file mode 100644 index 56c835f..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css +++ /dev/null @@ -1,173 +0,0 @@ -.rc-tree { - margin: 0; - padding: 5px; -} -.rc-tree li { - padding: 0; - margin: 0; - list-style: none; - white-space: nowrap; - outline: 0; -} -.rc-tree li .draggable { - color: #333; - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - /* Required to make elements draggable in old WebKit */ - -khtml-user-drag: element; - -webkit-user-drag: element; -} -.rc-tree li.drag-over > .draggable { - background-color: #316ac5; - color: white; - border: 1px #316ac5 solid; - opacity: 0.8; -} -.rc-tree li.drag-over-gap-top > .draggable { - border-top: 2px blue solid; -} -.rc-tree li.drag-over-gap-bottom > .draggable { - border-bottom: 2px blue solid; -} -.rc-tree li.filter-node > .rc-tree-node-content-wrapper { - color: #a60000!important; - font-weight: bold!important; -} -.rc-tree li ul { - margin: 0; - padding: 0 0 0 18px; -} -.rc-tree li .rc-tree-node-content-wrapper { - display: inline-block; - padding: 1px 3px 0 0; - margin: 0; - cursor: pointer; - height: 17px; - text-decoration: none; - vertical-align: top; -} -.rc-tree li span.rc-tree-switcher, -.rc-tree li span.rc-tree-checkbox, -.rc-tree li span.rc-tree-iconEle { - line-height: 16px; - margin-right: 2px; - width: 16px; - height: 16px; - display: inline-block; - vertical-align: middle; - border: 0 none; - cursor: pointer; - outline: none; - background-color: transparent; - background-repeat: no-repeat; - background-attachment: scroll; - background-image: url('data:image/png;base64,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'); -} -.rc-tree li span.rc-tree-switcher.rc-tree-icon__customize, -.rc-tree li span.rc-tree-checkbox.rc-tree-icon__customize, -.rc-tree li span.rc-tree-iconEle.rc-tree-icon__customize { - background-image: none; -} -.rc-tree li span.rc-tree-icon_loading { - margin-right: 2px; - vertical-align: top; - background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher-noop { - cursor: auto; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_open { - background-position: -93px -56px; -} -.rc-tree li span.rc-tree-switcher.rc-tree-switcher_close { - background-position: -75px -56px; -} -.rc-tree li span.rc-tree-checkbox { - width: 13px; - height: 13px; - margin: 0 3px; - background-position: 0 0; -} -.rc-tree li span.rc-tree-checkbox-checked { - background-position: -14px 0; -} -.rc-tree li span.rc-tree-checkbox-indeterminate { - background-position: -14px -28px; -} -.rc-tree li span.rc-tree-checkbox-disabled { - background-position: 0 -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-checked.rc-tree-checkbox-disabled { - background-position: -14px -56px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled { - position: relative; - background: #ccc; - border-radius: 3px; -} -.rc-tree li span.rc-tree-checkbox.rc-tree-checkbox-indeterminate.rc-tree-checkbox-disabled::after { - content: ' '; - -webkit-transform: scale(1); - transform: scale(1); - position: absolute; - left: 3px; - top: 5px; - width: 5px; - height: 0; - border: 2px solid #fff; - border-top: 0; - border-left: 0; -} -.rc-tree:not(.rc-tree-show-line) .rc-tree-switcher-noop { - background: none; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > ul { - background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y; -} -.rc-tree.rc-tree-show-line li:not(:last-child) > .rc-tree-switcher-noop { - background-position: -56px -18px; -} -.rc-tree.rc-tree-show-line li:last-child > .rc-tree-switcher-noop { - background-position: -56px -36px; -} -.rc-tree-child-tree { - display: none; -} -.rc-tree-child-tree-open { - display: block; -} -.rc-tree-treenode-disabled > span:not(.rc-tree-switcher), -.rc-tree-treenode-disabled > a, -.rc-tree-treenode-disabled > a span { - color: #767676; - cursor: not-allowed; -} -.rc-tree-node-selected { - background-color: #ffe6b0; - border: 1px #ffb951 solid; - opacity: 0.8; -} -.rc-tree-icon__open { - margin-right: 2px; - background-position: -110px -16px; - vertical-align: top; -} -.rc-tree-icon__close { - margin-right: 2px; - background-position: -110px 0; - vertical-align: top; -} -.rc-tree-icon__docu { - margin-right: 2px; - background-position: -110px -32px; - vertical-align: top; -} -.rc-tree-icon__customize { - margin-right: 2px; - vertical-align: top; -} - -/*# sourceMappingURL=rc-tree.min.css.map*/ \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map b/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map deleted file mode 100644 index fef6a53..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./assets/index.less"],"names":[],"mappings":"AACA;EACE;EACA;CAAD;AAFD;EAII;EACA;EACA;EACA;EACA;CACH;AATD;EAUM;EACA;EACA;EACA;EACA;MAAA;EAEJ,uDAAuD;EAAnD;EACA;CAEL;AAAG;EAEI;EACA;EACA;EACA;CACP;AAEG;EAEI;CADP;AAIG;EAEI;CAHP;AAMG;EAEI;EACA;CALP;AAnCD;EA4CM;EACA;CANL;AAvCD;EAgDM;EACA;EACA;EACA;EACA;EACA;EACA;CANL;AASK;;;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAPP;AASO;;;EACE;CALT;AAQK;EACE;EACA;EACA;CANP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AAUK;EACE;EACA;EACA;EACA;CARP;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;CAPT;AASO;EACE;EACA;EACA;CAPT;AAQS;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CANX;AAYC;EAEI;CAXL;AAcC;EAGM;CAdP;AAWC;EAMM;CAdP;AAQC;EAWM;CAhBP;AAoBC;EACE;CAlBH;AAmBG;EACE;CAjBL;AAoBC;;;EAII;EACA;CAnBL;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;EACA;CApBH;AAsBC;EACE;EACA;CApBH","file":"rc-tree.min.css","sourcesContent":["@treePrefixCls: rc-tree;\n.@{treePrefixCls} {\n margin: 0;\n padding: 5px;\n li {\n padding: 0;\n margin: 0;\n list-style: none;\n white-space: nowrap;\n outline: 0;\n .draggable {\n color: #333;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n /* Required to make elements draggable in old WebKit */\n -khtml-user-drag: element;\n -webkit-user-drag: element;\n }\n &.drag-over {\n > .draggable {\n background-color: #316ac5;\n color: white;\n border: 1px #316ac5 solid;\n opacity: 0.8;\n }\n }\n &.drag-over-gap-top {\n > .draggable {\n border-top: 2px blue solid;\n }\n }\n &.drag-over-gap-bottom {\n > .draggable {\n border-bottom: 2px blue solid;\n }\n }\n &.filter-node {\n > .@{treePrefixCls}-node-content-wrapper {\n color: #a60000!important;\n font-weight: bold!important;\n }\n }\n ul {\n margin: 0;\n padding: 0 0 0 18px;\n }\n .@{treePrefixCls}-node-content-wrapper {\n display: inline-block;\n padding: 1px 3px 0 0;\n margin: 0;\n cursor: pointer;\n height: 17px;\n text-decoration: none;\n vertical-align: top;\n }\n span {\n &.@{treePrefixCls}-switcher,\n &.@{treePrefixCls}-checkbox,\n &.@{treePrefixCls}-iconEle {\n line-height: 16px;\n margin-right: 2px;\n width: 16px;\n height: 16px;\n display: inline-block;\n vertical-align: middle;\n border: 0 none;\n cursor: pointer;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n background-attachment: scroll;\n background-image: url('data:image/png;base64,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');\n\n &.@{treePrefixCls}-icon__customize {\n background-image: none;\n }\n }\n &.@{treePrefixCls}-icon_loading {\n margin-right: 2px;\n vertical-align: top;\n background: url('data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7') no-repeat scroll 0 0 transparent;\n }\n &.@{treePrefixCls}-switcher {\n &.@{treePrefixCls}-switcher-noop {\n cursor: auto;\n }\n &.@{treePrefixCls}-switcher_open {\n background-position: -93px -56px;\n }\n &.@{treePrefixCls}-switcher_close {\n background-position: -75px -56px;\n }\n }\n &.@{treePrefixCls}-checkbox {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n background-position: 0 0;\n &-checked {\n background-position: -14px 0;\n }\n &-indeterminate {\n background-position: -14px -28px;\n }\n &-disabled {\n background-position: 0 -56px;\n }\n &.@{treePrefixCls}-checkbox-checked.@{treePrefixCls}-checkbox-disabled {\n background-position: -14px -56px;\n }\n &.@{treePrefixCls}-checkbox-indeterminate.@{treePrefixCls}-checkbox-disabled {\n position: relative;\n background: #ccc;\n border-radius: 3px;\n &::after {\n content: ' ';\n -webkit-transform: scale(1);\n transform: scale(1);\n position: absolute;\n left: 3px;\n top: 5px;\n width: 5px;\n height: 0;\n border: 2px solid #fff;\n border-top: 0;\n border-left: 0;\n }\n }\n }\n }\n }\n &:not(.@{treePrefixCls}-show-line) {\n .@{treePrefixCls}-switcher-noop {\n background: none;\n }\n }\n &.@{treePrefixCls}-show-line {\n li:not(:last-child) {\n > ul {\n background: url('data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7') 0 0 repeat-y;\n }\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -18px;\n }\n }\n li:last-child {\n > .@{treePrefixCls}-switcher-noop {\n background-position: -56px -36px;\n }\n }\n }\n &-child-tree {\n display: none;\n &-open {\n display: block;\n }\n }\n &-treenode-disabled {\n >span:not(.@{treePrefixCls}-switcher),\n >a,\n >a span {\n color: #767676;\n cursor: not-allowed;\n }\n }\n &-node-selected {\n background-color: #ffe6b0;\n border: 1px #ffb951 solid;\n opacity: 0.8;\n }\n &-icon__open {\n margin-right: 2px;\n background-position: -110px -16px;\n vertical-align: top;\n }\n &-icon__close {\n margin-right: 2px;\n background-position: -110px 0;\n vertical-align: top;\n }\n &-icon__docu {\n margin-right: 2px;\n background-position: -110px -32px;\n vertical-align: top;\n }\n &-icon__customize {\n margin-right: 2px;\n vertical-align: top;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./assets/index.less"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/client/node_modules/rc-tree/dist/rc-tree.min.js b/packages/client/node_modules/rc-tree/dist/rc-tree.min.js deleted file mode 100644 index 31e6fb4..0000000 --- a/packages/client/node_modules/rc-tree/dist/rc-tree.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports["rc-tree"]=t(require("react"),require("react-dom")):e["rc-tree"]=t(e.React,e.ReactDOM)}("undefined"!=typeof self?self:this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=65)}([function(e,t){var n=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(34)("wks"),o=n(25),a=n(2).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(9),o=n(44),a=n(29),i=Object.defineProperty;t.f=n(5)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(2),o=n(0),a=n(28),i=n(8),c=n(6),u=function(e,t,n){var s,l,f,d=e&u.F,p=e&u.G,v=e&u.S,h=e&u.P,y=e&u.B,m=e&u.W,g=p?o:o[t]||(o[t]={}),b=g.prototype,E=p?r:v?r[t]:(r[t]||{}).prototype;p&&(n=t);for(s in n)(l=!d&&E&&void 0!==E[s])&&c(g,s)||(f=l?E[s]:n[s],g[s]=p&&"function"!=typeof E[s]?n[s]:y&&l?a(f,r):m&&E[s]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):h&&"function"==typeof f?a(Function.call,f):f,h&&((g.virtual||(g.virtual={}))[s]=f,e&u.R&&b&&!b[s]&&i(b,s,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){e.exports=!n(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(t,n){t.exports=e},function(e,t,n){var r=n(3),o=n(15);e.exports=n(5)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(47),o=n(31);e.exports=function(e){return r(o(e))}},function(e,t,n){e.exports=n(106)()},function(e,t,n){"use strict";t.__esModule=!0;var r=n(69),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default||function(e){for(var t=1;t0?r:n)(e)}},function(e,t,n){var r=n(34)("keys"),o=n(25);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(0),o=n(2),a=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(24)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(31);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(49),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e,t,n){return t in e?(0,o.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){var r=n(9),o=n(82),a=n(35),i=n(33)("IE_PROTO"),c=function(){},u=function(){var e,t=n(45)("iframe"),r=a.length;for(t.style.display="none",n(83).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("