rapidfireai 0.0.1__py3-none-any.whl → 0.9.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rapidfireai might be problematic. Click here for more details.
- rapidfireai/__init__.py +11 -5
- rapidfireai/automl/__init__.py +20 -0
- rapidfireai/automl/base.py +48 -0
- rapidfireai/automl/datatypes.py +42 -0
- rapidfireai/automl/grid_search.py +125 -0
- rapidfireai/automl/model_config.py +102 -0
- rapidfireai/automl/random_search.py +145 -0
- rapidfireai/backend/__init__.py +0 -0
- rapidfireai/backend/chunks.py +63 -0
- rapidfireai/backend/controller.py +637 -0
- rapidfireai/backend/scheduler.py +137 -0
- rapidfireai/backend/worker.py +272 -0
- rapidfireai/cli.py +380 -0
- rapidfireai/db/__init__.py +0 -0
- rapidfireai/db/db_interface.py +135 -0
- rapidfireai/db/rf_db.py +694 -0
- rapidfireai/db/tables.sql +64 -0
- rapidfireai/dispatcher/dispatcher.py +391 -0
- rapidfireai/dispatcher/gunicorn.conf.py +25 -0
- rapidfireai/experiment.py +168 -0
- rapidfireai/frontend/build/asset-manifest.json +276 -0
- rapidfireai/frontend/build/favicon.ico +0 -0
- rapidfireai/frontend/build/index.html +1 -0
- rapidfireai/frontend/build/manifest.json +15 -0
- rapidfireai/frontend/build/pdf.worker.js +1 -0
- rapidfireai/frontend/build/report.html +39 -0
- rapidfireai/frontend/build/static/css/1482.3b7bf531.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/2730.3f8937ff.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/318.0def90a7.css +7 -0
- rapidfireai/frontend/build/static/css/4762.9b7b71f7.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/4950.487ecc8b.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/5170.2574ce9d.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/6121.4d541986.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/6343.dd6979f2.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/6534.433c213f.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/6920.ffac4b2a.css +2 -0
- rapidfireai/frontend/build/static/css/7246.bf2f0c87.css +9 -0
- rapidfireai/frontend/build/static/css/7367.dd6979f2.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/8690.05d081e5.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/9531.d0910d3c.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/9780.363e4943.chunk.css +1 -0
- rapidfireai/frontend/build/static/css/main~d91a9049.c0be472c.css +1 -0
- rapidfireai/frontend/build/static/js/1000.e5ed264b.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1012.ac98ab59.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1079.6c13ac0d.js +1 -0
- rapidfireai/frontend/build/static/js/110.9059f3b8.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1142.872d0010.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1167.9a6da14c.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1248.60890b4f.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1262.83dc7673.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1273.56da3e13.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/1273.56da3e13.chunk.js.LICENSE.txt +9 -0
- rapidfireai/frontend/build/static/js/1303.7d19305c.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1351.45076ff3.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1355.b896a592.js +1 -0
- rapidfireai/frontend/build/static/js/1357.02c46a02.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1470.c51d60c6.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1482.23b74f50.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1500.19799d8d.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1648.d3b9edc7.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1860.7d96e3f9.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1909.5b1d9ff4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/1928.44245110.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/1928.44245110.chunk.js.LICENSE.txt +11 -0
- rapidfireai/frontend/build/static/js/1933.deba26ca.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/21.aac92802.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2103.0ca12071.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2258.b3b8fab4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2289.9ad51e87.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2323.7dd927d7.js +2 -0
- rapidfireai/frontend/build/static/js/2323.7dd927d7.js.LICENSE.txt +1 -0
- rapidfireai/frontend/build/static/js/2346.ed99ca72.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2386.0a660834.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2402.465048f9.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/243.5a83bbca.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2589.68571e16.js +1 -0
- rapidfireai/frontend/build/static/js/2647.65092bab.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2691.65d4a4e7.js +1 -0
- rapidfireai/frontend/build/static/js/2730.b38dd6f3.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2746.ef752da4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2779.580d4491.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2799.fe5993b2.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2844.9708db79.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/2844.9708db79.chunk.js.LICENSE.txt +21 -0
- rapidfireai/frontend/build/static/js/2901.ee0c606b.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2932.7cc0689b.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/2932.7cc0689b.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/2956.a393c8cc.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2972.679bed05.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/2985.7e51cdfa.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/2985.7e51cdfa.chunk.js.LICENSE.txt +51 -0
- rapidfireai/frontend/build/static/js/3093.488df653.js +1 -0
- rapidfireai/frontend/build/static/js/3145.66ee61b9.js +1 -0
- rapidfireai/frontend/build/static/js/3170.a22f966a.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/3170.a22f966a.chunk.js.LICENSE.txt +21 -0
- rapidfireai/frontend/build/static/js/3307.f6fb258c.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3325.d5b03d65.js +1 -0
- rapidfireai/frontend/build/static/js/3334.2d6704df.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/3334.2d6704df.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/3387.bb8edad3.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3448.438e6579.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3460.735eea87.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3505.7fd3921a.js +2 -0
- rapidfireai/frontend/build/static/js/3505.7fd3921a.js.LICENSE.txt +9 -0
- rapidfireai/frontend/build/static/js/3510.cd167a00.js +2 -0
- rapidfireai/frontend/build/static/js/3510.cd167a00.js.LICENSE.txt +18 -0
- rapidfireai/frontend/build/static/js/3563.cc828e19.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/359.08960b84.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/359.08960b84.chunk.js.LICENSE.txt +4 -0
- rapidfireai/frontend/build/static/js/3608.403b4b79.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3652.cb8add7f.js +1 -0
- rapidfireai/frontend/build/static/js/3775.5230b157.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3817.53555d18.js +2 -0
- rapidfireai/frontend/build/static/js/3817.53555d18.js.LICENSE.txt +18 -0
- rapidfireai/frontend/build/static/js/3835.d9946ff9.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3964.874f0297.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3968.275cbc3d.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/3999.765cbd82.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4020.4452c046.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4138.2f6f6d9f.js +1 -0
- rapidfireai/frontend/build/static/js/4160.f424554c.js +1 -0
- rapidfireai/frontend/build/static/js/4180.50cea095.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4221.b0bba3f5.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4250.5bb49278.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4297.15777d8f.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4349.c965f2de.js +2 -0
- rapidfireai/frontend/build/static/js/4349.c965f2de.js.LICENSE.txt +1 -0
- rapidfireai/frontend/build/static/js/4484.4cbe5e7f.js +2 -0
- rapidfireai/frontend/build/static/js/4484.4cbe5e7f.js.LICENSE.txt +10 -0
- rapidfireai/frontend/build/static/js/4578.a8124588.js +1 -0
- rapidfireai/frontend/build/static/js/4596.89a97480.js +1 -0
- rapidfireai/frontend/build/static/js/4748.566f435a.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4762.928e8a90.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4768.7945be63.js +2 -0
- rapidfireai/frontend/build/static/js/4768.7945be63.js.LICENSE.txt +1 -0
- rapidfireai/frontend/build/static/js/4804.26b50dd4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4850.62390a45.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4862.a0ccb221.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/491.5dc8ed40.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/492.9262f038.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/492.9262f038.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/4943.6d345fd3.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/4950.bc182e62.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5042.d4f0c65a.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/5042.d4f0c65a.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/5170.0065e96f.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5222.35c74a52.js +2 -0
- rapidfireai/frontend/build/static/js/5222.35c74a52.js.LICENSE.txt +10 -0
- rapidfireai/frontend/build/static/js/5223.3224f019.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/5223.3224f019.chunk.js.LICENSE.txt +3 -0
- rapidfireai/frontend/build/static/js/5229.7dd42316.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5286.4c1ad26b.js +1 -0
- rapidfireai/frontend/build/static/js/5486.21cff711.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5526.7b368956.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5605.1ee4d87b.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5682.40b42d8b.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5794.9433d867.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5826.38a56e8c.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/5826.38a56e8c.chunk.js.LICENSE.txt +1 -0
- rapidfireai/frontend/build/static/js/5862.50f42a0b.js +1 -0
- rapidfireai/frontend/build/static/js/5895.e26742f1.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/5919.edd4a5cf.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/598.a0e792ae.js +1 -0
- rapidfireai/frontend/build/static/js/6058.74162bf9.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/618.06051134.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/618.06051134.chunk.js.LICENSE.txt +21 -0
- rapidfireai/frontend/build/static/js/6335.9fca442d.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6336.e05e1154.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6343.2bcd28ff.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6363.a319b8f2.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6478.344abf25.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6504.1c004564.js +1 -0
- rapidfireai/frontend/build/static/js/6534.ec7e149b.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6715.55a5c19c.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6756.e6cb993c.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/6756.e6cb993c.chunk.js.LICENSE.txt +10 -0
- rapidfireai/frontend/build/static/js/6762.acfde9fd.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/6762.acfde9fd.chunk.js.LICENSE.txt +19 -0
- rapidfireai/frontend/build/static/js/6846.67103d0e.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6861.34cf0198.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/6899.0eaf36a8.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/6899.0eaf36a8.chunk.js.LICENSE.txt +5 -0
- rapidfireai/frontend/build/static/js/6933.8b564944.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/699.d0437920.js +1 -0
- rapidfireai/frontend/build/static/js/7076.4182f63a.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7186.42ad86d5.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7248.a46635fd.js +1 -0
- rapidfireai/frontend/build/static/js/725.6b15a14a.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7266.3575539d.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7270.0a1e84fc.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/7270.0a1e84fc.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/7367.7120474f.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7436.8e226055.js +1 -0
- rapidfireai/frontend/build/static/js/7504.ef223844.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7603.ee049fe3.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7670.2835b49a.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/7670.2835b49a.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/7721.7390b3cc.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7731.5796cced.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/775.660a5deb.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/775.660a5deb.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/7832.7976a3e4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7844.72cc2e81.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/7948.48eab032.js +1 -0
- rapidfireai/frontend/build/static/js/7972.085079d4.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/7972.085079d4.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/8017.a9e7dc5a.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8023.75f1f3df.js +2 -0
- rapidfireai/frontend/build/static/js/8023.75f1f3df.js.LICENSE.txt +41 -0
- rapidfireai/frontend/build/static/js/8123.b69db974.js +1 -0
- rapidfireai/frontend/build/static/js/813.065a87e5.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/819.2056f122.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/819.2056f122.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/8262.04bc17d1.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8300.75adcc4f.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8336.b1d3e764.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8365.26cf64ea.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8398.8bca8e0e.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/8398.8bca8e0e.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/847.33ceed50.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/847.33ceed50.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/8486.8ec852a7.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8497.19378265.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8541.4c55c9f4.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8690.e305a804.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/8690.e305a804.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/8712.a9445fe6.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8763.61761e08.js +1 -0
- rapidfireai/frontend/build/static/js/8823.baf9bffd.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/8823.baf9bffd.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/8867.767462b7.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8953.c0f88dea.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/8960.357cb1eb.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/8960.357cb1eb.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/9.f4492795.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/9.f4492795.chunk.js.LICENSE.txt +12 -0
- rapidfireai/frontend/build/static/js/9079.88a8d2a3.js +1 -0
- rapidfireai/frontend/build/static/js/9082.37c40520.chunk.js +10 -0
- rapidfireai/frontend/build/static/js/9133.90ae330d.js +2 -0
- rapidfireai/frontend/build/static/js/9133.90ae330d.js.LICENSE.txt +8 -0
- rapidfireai/frontend/build/static/js/9151.1ac359d5.js +2 -0
- rapidfireai/frontend/build/static/js/9151.1ac359d5.js.LICENSE.txt +8 -0
- rapidfireai/frontend/build/static/js/9168.027bf2fd.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9194.9c5cc548.chunk.js +10 -0
- rapidfireai/frontend/build/static/js/9244.026f4aee.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/936.2e02d037.js +2 -0
- rapidfireai/frontend/build/static/js/936.2e02d037.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/9369.7d1a0a1d.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9427.7c8442e7.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/944.55948859.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9499.c53a82da.js +2 -0
- rapidfireai/frontend/build/static/js/9499.c53a82da.js.LICENSE.txt +62 -0
- rapidfireai/frontend/build/static/js/9531.3ce05781.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9547.92fac952.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/9547.92fac952.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/9620.b6e973a7.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9645.6fddfa65.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9669.d38dda6d.js +1 -0
- rapidfireai/frontend/build/static/js/9682.41b6b807.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/9720.19d5ae76.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/9720.19d5ae76.chunk.js.LICENSE.txt +23 -0
- rapidfireai/frontend/build/static/js/9723.d3c7fe9e.js +1 -0
- rapidfireai/frontend/build/static/js/9780.02a27630.chunk.js +10 -0
- rapidfireai/frontend/build/static/js/9808.d0ca9674.chunk.js +2 -0
- rapidfireai/frontend/build/static/js/9808.d0ca9674.chunk.js.LICENSE.txt +6 -0
- rapidfireai/frontend/build/static/js/9815.b8db3c5d.js +1 -0
- rapidfireai/frontend/build/static/js/9886.2940b53a.chunk.js +1 -0
- rapidfireai/frontend/build/static/js/main~1f912138.fa9d03b1.js +1 -0
- rapidfireai/frontend/build/static/js/main~43dd7041.2e00860d.js +1 -0
- rapidfireai/frontend/build/static/js/main~84781932.68deffff.js +1 -0
- rapidfireai/frontend/build/static/media/404-overflow.fad9a31861b0afba6f921ebb8e769688.svg +32 -0
- rapidfireai/frontend/build/static/media/RapidFire_Square_Bug.27ceb48296314a4bc0d4.png +0 -0
- rapidfireai/frontend/build/static/media/chart-bar.0fd4a63680fba840a7b69fbf07969f79.svg +7 -0
- rapidfireai/frontend/build/static/media/chart-contour.0d4b306f2669f3ad25375568935e3ce3.svg +5 -0
- rapidfireai/frontend/build/static/media/chart-difference.16174216d6f3b7c24f40e3541fe0ca2c.svg +20 -0
- rapidfireai/frontend/build/static/media/chart-image.cc434c4dc50780966344e2385a15f8fe.svg +6 -0
- rapidfireai/frontend/build/static/media/chart-line.0adaa2036bb4eb5956db6d0c7e925a3d.svg +4 -0
- rapidfireai/frontend/build/static/media/chart-parallel.da7dedf539b2af4b654d377c679173e4.svg +7 -0
- rapidfireai/frontend/build/static/media/chart-scatter.69118d0023a6ff3973f7fa913834ac47.svg +9 -0
- rapidfireai/frontend/build/static/media/default-error.f246ddf367c6fbd67942e5a13382a7f1.svg +26 -0
- rapidfireai/frontend/build/static/media/fontawesome-webfont.1e59d2330b4c6deb84b3.ttf +0 -0
- rapidfireai/frontend/build/static/media/fontawesome-webfont.20fd1704ea223900efa9.woff2 +0 -0
- rapidfireai/frontend/build/static/media/fontawesome-webfont.8b43027f47b20503057d.eot +0 -0
- rapidfireai/frontend/build/static/media/fontawesome-webfont.c1e38fd9e0e74ba58f7a.svg +2671 -0
- rapidfireai/frontend/build/static/media/fontawesome-webfont.f691f37e57f04c152e23.woff +0 -0
- rapidfireai/frontend/build/static/media/icon-visible-fill.8d34cd35303828fdfc15154f5536e63b.svg +7 -0
- rapidfireai/frontend/build/static/media/no-experiments.0e4f4a114ef73e7d81c09474aba64b6c.svg +22 -0
- rapidfireai/frontend/build/static/media/parallel-chart-placeholder.234ef0c5b220ef2a5a6fa5bafff173f7.svg +16 -0
- rapidfireai/frontend/build/static/media/permission-denied-lock.16036747d57cd663d7df223781a447b2.svg +14 -0
- rapidfireai/frontend/build/static/media/promo-modal-content.e3b2c6c568ac192b9bec54b838b54850.svg +30 -0
- rapidfireai/frontend/build/static/media/registered-model-grey-ok.8274b58d39504c8d1b8c358aa1c9aa35.svg +23 -0
- rapidfireai/frontend/build/static/media/warning.290a3b14118933547965e91ea61c5a61.svg +3 -0
- rapidfireai/frontend/proxy_middleware.py +233 -0
- rapidfireai/frontend/server.py +25 -0
- rapidfireai/ml/__init__.py +0 -0
- rapidfireai/ml/callbacks.py +176 -0
- rapidfireai/ml/checkpoint_utils.py +540 -0
- rapidfireai/ml/trainer.py +309 -0
- rapidfireai/start.sh +634 -0
- rapidfireai/utils/__init__.py +0 -0
- rapidfireai/utils/automl_utils.py +51 -0
- rapidfireai/utils/constants.py +141 -0
- rapidfireai/utils/datapaths.py +69 -0
- rapidfireai/utils/exceptions.py +82 -0
- rapidfireai/utils/experiment_utils.py +370 -0
- rapidfireai/utils/logging.py +87 -0
- rapidfireai/utils/mlflow_manager.py +121 -0
- rapidfireai/utils/serialize.py +15 -0
- rapidfireai/utils/shm_manager.py +469 -0
- rapidfireai/utils/trainer_config.py +23 -0
- rapidfireai/utils/worker_manager.py +219 -0
- rapidfireai/version.py +6 -0
- rapidfireai-0.9.9.dist-info/METADATA +242 -0
- rapidfireai-0.9.9.dist-info/RECORD +318 -0
- rapidfireai-0.9.9.dist-info/entry_points.txt +2 -0
- rapidfireai-0.0.1.dist-info/METADATA +0 -37
- rapidfireai-0.0.1.dist-info/RECORD +0 -6
- {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/WHEEL +0 -0
- {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/licenses/LICENSE +0 -0
- {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_mlflow_mlflow=self.webpackChunk_mlflow_mlflow||[]).push([[2956],{71127:function(e,t,a){var r=a(70161),n=a(98265),i=a(71212),o=a(84525).sorterAsc,s=a(62282);t.containerArrayMatch=a(13717);var l=t.isAddVal=function(e){return"add"===e||r(e)},u=t.isRemoveVal=function(e){return null===e||"remove"===e};t.applyContainerArrayChanges=function(e,t,a,r,d){var c=t.astr,p=s.getComponentMethod(c,"supplyLayoutDefaults"),f=s.getComponentMethod(c,"draw"),h=s.getComponentMethod(c,"drawOne"),g=r.replot||r.recalc||p===n||f===n,y=e.layout,m=e._fullLayout;if(a[""]){Object.keys(a).length>1&&i.warn("Full array edits are incompatible with other edits",c);var v=a[""][""];if(u(v))t.set(null);else{if(!Array.isArray(v))return i.warn("Unrecognized full array edit value",c,v),!0;t.set(v)}return!g&&(p(y,m),f(e),!0)}var b,_,w,x,A,T,k,j,O=Object.keys(a).map(Number).sort(o),P=t.get(),C=P||[],D=d(m,c).get(),L=[],S=-1,M=C.length;for(b=0;b<O.length;b++)if(x=a[w=O[b]],A=Object.keys(x),T=x[""],k=l(T),w<0||w>C.length-(k?0:1))i.warn("index out of range",c,w);else if(void 0!==T)A.length>1&&i.warn("Insertion & removal are incompatible with edits to the same index.",c,w),u(T)?L.push(w):k?("add"===T&&(T={}),C.splice(w,0,T),D&&D.splice(w,0,{})):i.warn("Unrecognized full object edit value",c,w,T),-1===S&&(S=w);else for(_=0;_<A.length;_++)j=c+"["+w+"].",d(C[w],A[_],j).set(x[A[_]]);for(b=L.length-1;b>=0;b--)C.splice(L[b],1),D&&D.splice(L[b],1);if(C.length?P||t.set(C):t.set(null),g)return!1;if(p(y,m),h!==n){var R;if(-1===S)R=O;else{for(M=Math.max(C.length,M),R=[],b=0;b<O.length&&!((w=O[b])>=S);b++)R.push(w);for(b=S;b<M;b++)R.push(b)}for(b=0;b<R.length;b++)h(e,R[b])}else f(e);return!0}},9772:function(e,t,a){var r=a(62258),n=a(83491),i=a(66982),o=a(47401),s=o.nestedProperty,l=a(19428),u=a(79638),d=a(62282),c=a(16545),p=a(35722),f=a(37762),h=a(41707),g=a(31454),y=a(9636).initInteractions,m=a(6412),v=a(88987).clearSelect,b=a(12788).dfltConfig,_=a(71127),w=a(65143),x=a(665),A=a(17342),T=a(56890).AX_NAME_PATTERN,k=0;function j(e){var t=e._fullLayout;t._redrawFromAutoMarginCount?t._redrawFromAutoMarginCount--:e.emit("plotly_afterplot")}function O(e,t){try{e._fullLayout._paper.style("background",t)}catch(a){o.error(a)}}function P(e,t){O(e,g.combine(t,"white"))}function C(e,t){if(!e._context){e._context=o.extendDeep({},b);var a=r.select("base");e._context._baseUrl=a.size()&&a.attr("href")?window.location.href.split("#")[0]:""}var n,s,l,u=e._context;if(t){for(s=Object.keys(t),n=0;n<s.length;n++)"editable"!==(l=s[n])&&"edits"!==l&&l in u&&("setBackground"===l&&"opaque"===t[l]?u[l]=P:u[l]=t[l]);t.plot3dPixelRatio&&!u.plotGlPixelRatio&&(u.plotGlPixelRatio=u.plot3dPixelRatio);var d=t.editable;if(void 0!==d)for(u.editable=d,s=Object.keys(u.edits),n=0;n<s.length;n++)u.edits[s[n]]=d;if(t.edits)for(s=Object.keys(t.edits),n=0;n<s.length;n++)(l=s[n])in u.edits&&(u.edits[l]=t.edits[l]);u._exportedPlot=t._exportedPlot}u.staticPlot&&(u.editable=!1,u.edits={},u.autosizable=!1,u.scrollZoom=!1,u.doubleClick=!1,u.showTips=!1,u.showLink=!1,u.displayModeBar=!1),"hover"!==u.displayModeBar||i||(u.displayModeBar=!0),"transparent"!==u.setBackground&&"function"===typeof u.setBackground||(u.setBackground=O),u._hasZeroHeight=u._hasZeroHeight||0===e.clientHeight,u._hasZeroWidth=u._hasZeroWidth||0===e.clientWidth;var c=u.scrollZoom,p=u._scrollZoom={};if(!0===c)p.cartesian=1,p.gl3d=1,p.geo=1,p.mapbox=1;else if("string"===typeof c){var f=c.split("+");for(n=0;n<f.length;n++)p[f[n]]=1}else!1!==c&&(p.gl3d=1,p.geo=1,p.mapbox=1)}function D(e,t){var a,r,n=t+1,i=[];for(a=0;a<e.length;a++)(r=e[a])<0?i.push(n+r):i.push(r);return i}function L(e,t,a){var r,n;for(r=0;r<t.length;r++){if((n=t[r])!==parseInt(n,10))throw new Error("all values in "+a+" must be integers");if(n>=e.data.length||n<-e.data.length)throw new Error(a+" must be valid indices for gd.data.");if(t.indexOf(n,r+1)>-1||n>=0&&t.indexOf(-e.data.length+n)>-1||n<0&&t.indexOf(e.data.length+n)>-1)throw new Error("each index in "+a+" must be unique.")}}function S(e,t,a){if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if("undefined"===typeof t)throw new Error("currentIndices is a required argument.");if(Array.isArray(t)||(t=[t]),L(e,t,"currentIndices"),"undefined"===typeof a||Array.isArray(a)||(a=[a]),"undefined"!==typeof a&&L(e,a,"newIndices"),"undefined"!==typeof a&&t.length!==a.length)throw new Error("current and new indices must be of equal length.")}function M(e,t,a,r,i){!function(e,t,a,r){var n=o.isPlainObject(r);if(!Array.isArray(e.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(t))throw new Error("update must be a key:value object");if("undefined"===typeof a)throw new Error("indices must be an integer or array of integers");for(var i in L(e,a,"indices"),t){if(!Array.isArray(t[i])||t[i].length!==a.length)throw new Error("attribute "+i+" must be an array of length equal to indices array length");if(n&&(!(i in r)||!Array.isArray(r[i])||r[i].length!==t[i].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(e,t,a,r);for(var l=function(e,t,a,r){var i,l,u,d,c,p=o.isPlainObject(r),f=[];for(var h in Array.isArray(a)||(a=[a]),a=D(a,e.data.length-1),t)for(var g=0;g<a.length;g++){if(i=e.data[a[g]],l=(u=s(i,h)).get(),d=t[h][g],!o.isArrayOrTypedArray(d))throw new Error("attribute: "+h+" index: "+g+" must be an array");if(!o.isArrayOrTypedArray(l))throw new Error("cannot extend missing or non-array attribute: "+h);if(l.constructor!==d.constructor)throw new Error("cannot extend array with an array of a different type: "+h);c=p?r[h][g]:r,n(c)||(c=-1),f.push({prop:u,target:l,insert:d,maxp:Math.floor(c)})}return f}(e,t,a,r),u={},d={},c=0;c<l.length;c++){var p=l[c].prop,f=l[c].maxp,h=i(l[c].target,l[c].insert,f);p.set(h[0]),Array.isArray(u[p.astr])||(u[p.astr]=[]),u[p.astr].push(h[1]),Array.isArray(d[p.astr])||(d[p.astr]=[]),d[p.astr].push(l[c].target.length)}return{update:u,maxPoints:d}}function R(e,t){var a=new e.constructor(e.length+t.length);return a.set(e),a.set(t,e.length),a}function I(e,a,r,n){e=o.getGraphDiv(e),w.clearPromiseQueue(e);var i={};if("string"===typeof a)i[a]=r;else{if(!o.isPlainObject(a))return o.warn("Restyle fail.",a,r,n),Promise.reject();i=o.extendFlat({},a),void 0===n&&(n=r)}Object.keys(i).length&&(e.changed=!0);var s=w.coerceTraceIndices(e,n),l=z(e,i,s),d=l.flags;d.calc&&(e.calcdata=void 0),d.clearAxisTypes&&w.clearAxisTypes(e,s,{});var c=[];d.fullReplot?c.push(t._doPlot):(c.push(p.previousPromises),p.supplyDefaults(e),d.markerSize&&(p.doCalcdata(e),H(c)),d.style&&c.push(x.doTraceStyle),d.colorbars&&c.push(x.doColorBars),c.push(j)),c.push(p.rehover,p.redrag),u.add(e,I,[e,l.undoit,l.traces],I,[e,l.redoit,l.traces]);var f=o.syncOrAsync(c,e);return f&&f.then||(f=Promise.resolve()),f.then((function(){return e.emit("plotly_restyle",l.eventData),e}))}function E(e){return void 0===e?null:e}function F(e,t){return t?function(t,a,r){var n=s(t,a),i=n.set;return n.set=function(t){B((r||"")+a,n.get(),t,e),i(t)},n}:s}function B(e,t,a,r){if(Array.isArray(t)||Array.isArray(a))for(var n=Array.isArray(t)?t:[],i=Array.isArray(a)?a:[],s=Math.max(n.length,i.length),l=0;l<s;l++)B(e+"["+l+"]",n[l],i[l],r);else if(o.isPlainObject(t)||o.isPlainObject(a)){var u=o.isPlainObject(t)?t:{},d=o.isPlainObject(a)?a:{},c=o.extendFlat({},u,d);for(var p in c)B(e+"."+p,u[p],d[p],r)}else void 0===r[e]&&(r[e]=E(t))}function z(e,t,a){var r,n=e._fullLayout,i=e._fullData,l=e.data,u=n._guiEditing,h=F(n._preGUI,u),g=o.extendDeepAll({},t);G(t);var y,m=A.traceFlags(),v={},b={};function _(){return a.map((function(){}))}function x(e){var t=f.id2name(e);-1===y.indexOf(t)&&y.push(t)}function T(e){return"LAYOUT"+e+".autorange"}function k(e){return"LAYOUT"+e+".range"}function j(e){for(var t=e;t<i.length;t++)if(i[t]._input===l[e])return i[t]}function O(r,i,o){if(Array.isArray(r))r.forEach((function(e){O(e,i,o)}));else if(!(r in t)&&!w.hasParent(t,r)){var s;if("LAYOUT"===r.substr(0,6))s=h(e.layout,r.replace("LAYOUT",""));else{var d=a[o];s=F(n._tracePreGUI[j(d)._fullInput.uid],u)(l[d],r)}r in b||(b[r]=_()),void 0===b[r][o]&&(b[r][o]=E(s.get())),void 0!==i&&s.set(i)}}function P(e){return function(t){return i[t][e]}}function C(e){return function(t,r){return!1===t?i[a[r]][e]:null}}for(var D in t){if(w.hasParent(t,D))throw new Error("cannot set "+D+" and a parent attribute simultaneously");var L,S,M,R,I,B,z=t[D];if("autobinx"!==D&&"autobiny"!==D||(D=D.charAt(D.length-1)+"bins",z=Array.isArray(z)?z.map(C(D)):!1===z?a.map(P(D)):null),v[D]=z,"LAYOUT"!==D.substr(0,6)){for(b[D]=_(),r=0;r<a.length;r++){if(L=l[a[r]],S=j(a[r]),R=(M=F(n._tracePreGUI[S._fullInput.uid],u)(L,D)).get(),void 0!==(I=Array.isArray(z)?z[r%z.length]:z)){var U=M.parts[M.parts.length-1],N=D.substr(0,D.length-U.length-1),H=N?N+".":"",q=N?s(S,N).get():S;if((B=c.getTraceValObject(S,M.parts))&&B.impliedEdits&&null!==I)for(var V in B.impliedEdits)O(o.relativeAttr(D,V),B.impliedEdits[V],r);else if("thicknessmode"!==U&&"lenmode"!==U||R===I||"fraction"!==I&&"pixels"!==I||!q){if("type"===D&&("pie"===I!==("pie"===R)||"funnelarea"===I!==("funnelarea"===R))){var Y="x",W="y";"bar"!==I&&"bar"!==R||"h"!==L.orientation||(Y="y",W="x"),o.swapAttrs(L,["?","?src"],"labels",Y),o.swapAttrs(L,["d?","?0"],"label",Y),o.swapAttrs(L,["?","?src"],"values",W),"pie"===R||"funnelarea"===R?(s(L,"marker.color").set(s(L,"marker.colors").get()),n._pielayer.selectAll("g.trace").remove()):d.traceIs(L,"cartesian")&&s(L,"marker.colors").set(s(L,"marker.color").get())}}else{var $=n._size,Q=q.orient,Z="top"===Q||"bottom"===Q;if("thicknessmode"===U){var J=Z?$.h:$.w;O(H+"thickness",q.thickness*("fraction"===I?1/J:J),r)}else{var K=Z?$.w:$.h;O(H+"len",q.len*("fraction"===I?1/K:K),r)}}b[D][r]=E(R);if(-1!==["swapxy","swapxyaxes","orientation","orientationaxes"].indexOf(D)){if("orientation"===D){M.set(I);var X=L.x&&!L.y?"h":"v";if((M.get()||X)===S.orientation)continue}else"orientationaxes"===D&&(L.orientation={v:"h",h:"v"}[S.orientation]);w.swapXYData(L),m.calc=m.clearAxisTypes=!0}else-1!==p.dataArrayContainers.indexOf(M.parts[0])?(w.manageArrayContainers(M,I,b),m.calc=!0):(B?B.arrayOk&&!d.traceIs(S,"regl")&&(o.isArrayOrTypedArray(I)||o.isArrayOrTypedArray(R))?m.calc=!0:A.update(m,B):m.calc=!0,M.set(I))}}if(-1!==["swapxyaxes","orientationaxes"].indexOf(D)&&f.swap(e,a),"orientationaxes"===D){var ee=s(e.layout,"hovermode"),te=ee.get();"x"===te?ee.set("y"):"y"===te?ee.set("x"):"x unified"===te?ee.set("y unified"):"y unified"===te&&ee.set("x unified")}if(-1!==["orientation","type"].indexOf(D)){for(y=[],r=0;r<a.length;r++){var ae=l[a[r]];d.traceIs(ae,"cartesian")&&(x(ae.xaxis||"x"),x(ae.yaxis||"y"))}O(y.map(T),!0,0),O(y.map(k),[0,1],0)}}else M=h(e.layout,D.replace("LAYOUT","")),b[D]=[E(M.get())],M.set(Array.isArray(z)?z[0]:z),m.calc=!0}return(m.calc||m.plot)&&(m.fullReplot=!0),{flags:m,undoit:b,redoit:v,traces:a,eventData:o.extendDeepNoArrays([],[g,a])}}function G(e){var t,a,r,n=o.counterRegex("axis",".title",!1,!1),i=/colorbar\.title$/,s=Object.keys(e);for(t=0;t<s.length;t++)a=s[t],r=e[a],"title"!==a&&!n.test(a)&&!i.test(a)||"string"!==typeof r&&"number"!==typeof r?a.indexOf("titlefont")>-1?l(a,a.replace("titlefont","title.font")):a.indexOf("titleposition")>-1?l(a,a.replace("titleposition","title.position")):a.indexOf("titleside")>-1?l(a,a.replace("titleside","title.side")):a.indexOf("titleoffset")>-1&&l(a,a.replace("titleoffset","title.offset")):l(a,a.replace("title","title.text"));function l(t,a){e[a]=e[t],delete e[t]}}function U(e,t,a){e=o.getGraphDiv(e),w.clearPromiseQueue(e);var r={};if("string"===typeof t)r[t]=a;else{if(!o.isPlainObject(t))return o.warn("Relayout fail.",t,a),Promise.reject();r=o.extendFlat({},t)}Object.keys(r).length&&(e.changed=!0);var n=W(e,r),i=n.flags;i.calc&&(e.calcdata=void 0);var s=[p.previousPromises];i.layoutReplot?s.push(x.layoutReplot):Object.keys(r).length&&(N(e,i,n)||p.supplyDefaults(e),i.legend&&s.push(x.doLegend),i.layoutstyle&&s.push(x.layoutStyles),i.axrange&&H(s,n.rangesAltered),i.ticks&&s.push(x.doTicksRelayout),i.modebar&&s.push(x.doModeBar),i.camera&&s.push(x.doCamera),i.colorbars&&s.push(x.doColorBars),s.push(j)),s.push(p.rehover,p.redrag),u.add(e,U,[e,n.undoit],U,[e,n.redoit]);var l=o.syncOrAsync(s,e);return l&&l.then||(l=Promise.resolve(e)),l.then((function(){return e.emit("plotly_relayout",n.eventData),e}))}function N(e,t,a){var r=e._fullLayout;if(!t.axrange)return!1;for(var n in t)if("axrange"!==n&&t[n])return!1;for(var i in a.rangesAltered){var o=f.id2name(i),s=e.layout[o],l=r[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var u in l._matchGroup)if(u!==i){var d=r[f.id2name(u)];d.autorange=l.autorange,d.range=l.range.slice(),d._input.range=l.range.slice()}}return!0}function H(e,t){var a=t?function(e){var a=[],r=!0;for(var n in t){var i=f.getFromId(e,n);if(a.push(n),-1!==(i.ticklabelposition||"").indexOf("inside")&&i._anchorAxis&&a.push(i._anchorAxis._id),i._matchGroup)for(var o in i._matchGroup)t[o]||a.push(o);i.automargin&&(r=!1)}return f.draw(e,a,{skipTitle:r})}:function(e){return f.draw(e,"redraw")};e.push(v,x.doAutoRangeAndConstraints,a,x.drawData,x.finalDraw)}var q=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,V=/^[xyz]axis[0-9]*\.autorange$/,Y=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function W(e,t){var a,r,n,i=e.layout,l=e._fullLayout,u=l._guiEditing,p=F(l._preGUI,u),h=Object.keys(t),g=f.list(e),y=o.extendDeepAll({},t),m={};for(G(t),h=Object.keys(t),r=0;r<h.length;r++)if(0===h[r].indexOf("allaxes")){for(n=0;n<g.length;n++){var v=g[n]._id.substr(1),b=-1!==v.indexOf("scene")?v+".":"",x=h[r].replace("allaxes",b+g[n]._name);t[x]||(t[x]=t[h[r]])}delete t[h[r]]}var k=A.layoutFlags(),j={},O={};function P(e,a){if(Array.isArray(e))e.forEach((function(e){P(e,a)}));else if(!(e in t)&&!w.hasParent(t,e)){var r=p(i,e);e in O||(O[e]=E(r.get())),void 0!==a&&r.set(a)}}var C,D={};function L(e){var t=f.name2id(e.split(".")[0]);return D[t]=1,t}for(var S in t){if(w.hasParent(t,S))throw new Error("cannot set "+S+" and a parent attribute simultaneously");for(var M=p(i,S),R=t[S],I=M.parts.length-1;I>0&&"string"!==typeof M.parts[I];)I--;var B=M.parts[I],z=M.parts[I-1]+"."+B,U=M.parts.slice(0,I).join("."),N=s(e.layout,U).get(),H=s(l,U).get(),W=M.get();if(void 0!==R){j[S]=R,O[S]="reverse"===B?R:E(W);var Q=c.getLayoutValObject(l,M.parts);if(Q&&Q.impliedEdits&&null!==R)for(var Z in Q.impliedEdits)P(o.relativeAttr(S,Z),Q.impliedEdits[Z]);if(-1!==["width","height"].indexOf(S))if(R){P("autosize",null);var J="height"===S?"width":"height";P(J,l[J])}else l[S]=e._initialAutoSize[S];else if("autosize"===S)P("width",R?null:l.width),P("height",R?null:l.height);else if(z.match(q))L(z),s(l,U+"._inputRange").set(null);else if(z.match(V)){L(z),s(l,U+"._inputRange").set(null);var K=s(l,U).get();K._inputDomain&&(K._input.domain=K._inputDomain.slice())}else z.match(Y)&&s(l,U+"._inputDomain").set(null);if("type"===B){C=N;var X="linear"===H.type&&"log"===R,ee="log"===H.type&&"linear"===R;if(X||ee){if(C&&C.range)if(H.autorange)X&&(C.range=C.range[1]>C.range[0]?[1,2]:[2,1]);else{var te=C.range[0],ae=C.range[1];X?(te<=0&&ae<=0&&P(U+".autorange",!0),te<=0?te=ae/1e6:ae<=0&&(ae=te/1e6),P(U+".range[0]",Math.log(te)/Math.LN10),P(U+".range[1]",Math.log(ae)/Math.LN10)):(P(U+".range[0]",Math.pow(10,te)),P(U+".range[1]",Math.pow(10,ae)))}else P(U+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[M.parts[0]]&&"radialaxis"===M.parts[1]&&delete l[M.parts[0]]._subplot.viewInitial["radialaxis.range"],d.getComponentMethod("annotations","convertCoords")(e,H,R,P),d.getComponentMethod("images","convertCoords")(e,H,R,P)}else P(U+".autorange",!0),P(U+".range",null);s(l,U+"._inputRange").set(null)}else if(B.match(T)){var re=s(l,S).get(),ne=(R||{}).type;ne&&"-"!==ne||(ne="linear"),d.getComponentMethod("annotations","convertCoords")(e,re,ne,P),d.getComponentMethod("images","convertCoords")(e,re,ne,P)}var ie=_.containerArrayMatch(S);if(ie){a=ie.array,r=ie.index;var oe=ie.property,se=Q||{editType:"calc"};""!==r&&""===oe&&(_.isAddVal(R)?O[S]=null:_.isRemoveVal(R)?O[S]=(s(i,a).get()||[])[r]:o.warn("unrecognized full object value",t)),A.update(k,se),m[a]||(m[a]={});var le=m[a][r];le||(le=m[a][r]={}),le[oe]=R,delete t[S]}else"reverse"===B?(N.range?N.range.reverse():(P(U+".autorange",!0),N.range=[1,0]),H.autorange?k.calc=!0:k.plot=!0):(l._has("scatter-like")&&l._has("regl")&&"dragmode"===S&&("lasso"===R||"select"===R)&&"lasso"!==W&&"select"!==W||l._has("gl2d")?k.plot=!0:Q?A.update(k,Q):k.calc=!0,M.set(R))}}for(a in m){_.applyContainerArrayChanges(e,p(i,a),m[a],k,p)||(k.plot=!0)}for(var ue in D){var de=(C=f.getFromId(e,ue))&&C._constraintGroup;if(de)for(var ce in k.calc=!0,de)D[ce]||(f.getFromId(e,ce)._constraintShrinkable=!0)}return($(e)||t.height||t.width)&&(k.plot=!0),(k.plot||k.calc)&&(k.layoutReplot=!0),{flags:k,rangesAltered:D,undoit:O,redoit:j,eventData:y}}function $(e){var t=e._fullLayout,a=t.width,r=t.height;return e.layout.autosize&&p.plotAutoSize(e,e.layout,t),t.width!==a||t.height!==r}function Q(e,a,r,n){e=o.getGraphDiv(e),w.clearPromiseQueue(e),o.isPlainObject(a)||(a={}),o.isPlainObject(r)||(r={}),Object.keys(a).length&&(e.changed=!0),Object.keys(r).length&&(e.changed=!0);var i=w.coerceTraceIndices(e,n),s=z(e,o.extendFlat({},a),i),l=s.flags,d=W(e,o.extendFlat({},r)),c=d.flags;(l.calc||c.calc)&&(e.calcdata=void 0),l.clearAxisTypes&&w.clearAxisTypes(e,i,r);var f=[];c.layoutReplot?f.push(x.layoutReplot):l.fullReplot?f.push(t._doPlot):(f.push(p.previousPromises),N(e,c,d)||p.supplyDefaults(e),l.style&&f.push(x.doTraceStyle),(l.colorbars||c.colorbars)&&f.push(x.doColorBars),c.legend&&f.push(x.doLegend),c.layoutstyle&&f.push(x.layoutStyles),c.axrange&&H(f,d.rangesAltered),c.ticks&&f.push(x.doTicksRelayout),c.modebar&&f.push(x.doModeBar),c.camera&&f.push(x.doCamera),f.push(j)),f.push(p.rehover,p.redrag),u.add(e,Q,[e,s.undoit,d.undoit,s.traces],Q,[e,s.redoit,d.redoit,s.traces]);var h=o.syncOrAsync(f,e);return h&&h.then||(h=Promise.resolve(e)),h.then((function(){return e.emit("plotly_update",{data:s.eventData,layout:d.eventData}),e}))}function Z(e){return function(t){t._fullLayout._guiEditing=!0;var a=e.apply(null,arguments);return t._fullLayout._guiEditing=!1,a}}var J=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],K=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function X(e,t){for(var a=0;a<t.length;a++){var r=t[a],n=e.match(r.pattern);if(n)return{head:n[1],attr:r.attr}}}function ee(e,t){var a=s(t,e).get();if(void 0!==a)return a;var r=e.split(".");for(r.pop();r.length>1;)if(r.pop(),void 0!==(a=s(t,r.join(".")+".uirevision").get()))return a;return t.uirevision}function te(e,t){for(var a=0;a<t.length;a++)if(t[a]._fullInput.uid===e)return a;return-1}function ae(e,t,a){for(var r=0;r<t.length;r++)if(t[r].uid===e)return r;return!t[a]||t[a].uid?-1:a}function re(e,t){var a=o.isPlainObject(e),r=Array.isArray(e);return a||r?(a&&o.isPlainObject(t)||r&&Array.isArray(t))&&JSON.stringify(e)===JSON.stringify(t):e===t}function ne(e,t,a,r){var n,i,l,u=r.getValObject,d=r.flags,c=r.immutable,p=r.inArray,f=r.arrayIndex;function h(){var e=n.editType;p&&-1!==e.indexOf("arraydraw")?o.pushUnique(d.arrays[p],f):(A.update(d,n),"none"!==e&&d.nChanges++,r.transition&&n.anim&&d.nChangesAnim++,(q.test(l)||V.test(l))&&(d.rangesAltered[a[0]]=1),Y.test(l)&&s(t,"_inputDomain").set(null),"datarevision"===i&&(d.newDataRevision=1))}function g(e){return"data_array"===e.valType||e.arrayOk}for(i in e){if(d.calc&&!r.transition)return;var y=e[i],m=t[i],v=a.concat(i);if(l=v.join("."),"_"!==i.charAt(0)&&"function"!==typeof y&&y!==m){if(("tick0"===i||"dtick"===i)&&"geo"!==a[0]){var b=t.tickmode;if("auto"===b||"array"===b||!b)continue}if(("range"!==i||!t.autorange)&&("zmin"!==i&&"zmax"!==i||"contourcarpet"!==t.type)&&(n=u(v))&&(!n._compareAsJSON||JSON.stringify(y)!==JSON.stringify(m))){var _,w=n.valType,x=g(n),T=Array.isArray(y),k=Array.isArray(m);if(T&&k){var j="_input_"+i,O=e[j],P=t[j];if(Array.isArray(O)&&O===P)continue}if(void 0===m)x&&T?d.calc=!0:h();else if(n._isLinkedToArray){var C=[],D=!1;p||(d.arrays[i]=C);var L=Math.min(y.length,m.length),S=Math.max(y.length,m.length);if(L!==S){if("arraydraw"!==n.editType){h();continue}D=!0}for(_=0;_<L;_++)ne(y[_],m[_],v.concat(_),o.extendFlat({inArray:i,arrayIndex:_},r));if(D)for(_=L;_<S;_++)C.push(_)}else!w&&o.isPlainObject(y)?ne(y,m,v,r):x?T&&k?(c&&(d.calc=!0),(c||r.newDataRevision)&&h()):T!==k?d.calc=!0:h():T&&k&&y.length===m.length&&String(y)===String(m)||h()}}}for(i in t)if(!(i in e)&&"_"!==i.charAt(0)&&"function"!==typeof t[i]){if(g(n=u(a.concat(i)))&&Array.isArray(t[i]))return void(d.calc=!0);h()}}function ie(e,t){var a;for(a in e)if("_"!==a.charAt(0)){var r=e[a],n=t[a];if(r!==n)if(o.isPlainObject(r)&&o.isPlainObject(n)){if(ie(r,n))return!0}else{if(!Array.isArray(r)||!Array.isArray(n))return!0;if(r.length!==n.length)return!0;for(var i=0;i<r.length;i++)if(r[i]!==n[i]){if(!o.isPlainObject(r[i])||!o.isPlainObject(n[i]))return!0;if(ie(r[i],n[i]))return!0}}}}function oe(e){var t=e._fullLayout,a=e.getBoundingClientRect();if(!o.equalDomRects(a,t._lastBBox)){var r=t._invTransform=o.inverseTransformMatrix(o.getFullTransformMatrix(e));t._invScaleX=Math.sqrt(r[0][0]*r[0][0]+r[0][1]*r[0][1]+r[0][2]*r[0][2]),t._invScaleY=Math.sqrt(r[1][0]*r[1][0]+r[1][1]*r[1][1]+r[1][2]*r[1][2]),t._lastBBox=a}}t.animate=function(e,t,a){if(e=o.getGraphDiv(e),!o.isPlotDiv(e))throw new Error("This element is not a Plotly plot: "+e+". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/");var r=e._transitionData;r._frameQueue||(r._frameQueue=[]);var n=(a=p.supplyAnimationDefaults(a)).transition,i=a.frame;function s(e){return Array.isArray(n)?e>=n.length?n[0]:n[e]:n}function l(e){return Array.isArray(i)?e>=i.length?i[0]:i[e]:i}function u(e,t){var a=0;return function(){if(e&&++a===t)return e()}}return void 0===r._frameWaitingCnt&&(r._frameWaitingCnt=0),new Promise((function(i,d){function c(){r._currentFrame&&r._currentFrame.onComplete&&r._currentFrame.onComplete();var t=r._currentFrame=r._frameQueue.shift();if(t){var a=t.name?t.name.toString():null;e._fullLayout._currentFrame=a,r._lastFrameAt=Date.now(),r._timeToNext=t.frameOpts.duration,p.transition(e,t.frame.data,t.frame.layout,w.coerceTraceIndices(e,t.frame.traces),t.frameOpts,t.transitionOpts).then((function(){t.onComplete&&t.onComplete()})),e.emit("plotly_animatingframe",{name:a,frame:t.frame,animation:{frame:t.frameOpts,transition:t.transitionOpts}})}else e.emit("plotly_animated"),window.cancelAnimationFrame(r._animationRaf),r._animationRaf=null}function f(){e.emit("plotly_animating"),r._lastFrameAt=-1/0,r._timeToNext=0,r._runningTransitions=0,r._currentFrame=null;var t=function(){r._animationRaf=window.requestAnimationFrame(t),Date.now()-r._lastFrameAt>r._timeToNext&&c()};t()}var h,g,y=0;function m(e){return Array.isArray(n)?y>=n.length?e.transitionOpts=n[y]:e.transitionOpts=n[0]:e.transitionOpts=n,y++,e}var v=[],b=void 0===t||null===t,_=Array.isArray(t);if(!b&&!_&&o.isPlainObject(t))v.push({type:"object",data:m(o.extendFlat({},t))});else if(b||-1!==["string","number"].indexOf(typeof t))for(h=0;h<r._frames.length;h++)(g=r._frames[h])&&(b||String(g.group)===String(t))&&v.push({type:"byname",name:String(g.name),data:m({name:g.name})});else if(_)for(h=0;h<t.length;h++){var x=t[h];-1!==["number","string"].indexOf(typeof x)?(x=String(x),v.push({type:"byname",name:x,data:m({name:x})})):o.isPlainObject(x)&&v.push({type:"object",data:m(o.extendFlat({},x))})}for(h=0;h<v.length;h++)if("byname"===(g=v[h]).type&&!r._frameHash[g.data.name])return o.warn('animate failure: frame not found: "'+g.data.name+'"'),void d();-1!==["next","immediate"].indexOf(a.mode)&&function(){if(0!==r._frameQueue.length){for(;r._frameQueue.length;){var t=r._frameQueue.pop();t.onInterrupt&&t.onInterrupt()}e.emit("plotly_animationinterrupted",[])}}(),"reverse"===a.direction&&v.reverse();var A=e._fullLayout._currentFrame;if(A&&a.fromcurrent){var T=-1;for(h=0;h<v.length;h++)if("byname"===(g=v[h]).type&&g.name===A){T=h;break}if(T>0&&T<v.length-1){var k=[];for(h=0;h<v.length;h++)g=v[h],("byname"!==v[h].type||h>T)&&k.push(g);v=k}}v.length>0?function(t){if(0!==t.length){for(var n=0;n<t.length;n++){var o;o="byname"===t[n].type?p.computeFrame(e,t[n].name):t[n].data;var c=l(n),h=s(n);h.duration=Math.min(h.duration,c.duration);var g={frame:o,name:t[n].name,frameOpts:c,transitionOpts:h};n===t.length-1&&(g.onComplete=u(i,2),g.onInterrupt=d),r._frameQueue.push(g)}"immediate"===a.mode&&(r._lastFrameAt=-1/0),r._animationRaf||f()}}(v):(e.emit("plotly_animated"),i())}))},t.addFrames=function(e,t,a){if(e=o.getGraphDiv(e),null===t||void 0===t)return Promise.resolve();if(!o.isPlotDiv(e))throw new Error("This element is not a Plotly plot: "+e+". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/");var r,n,i,s,l=e._transitionData._frames,d=e._transitionData._frameHash;if(!Array.isArray(t))throw new Error("addFrames failure: frameList must be an Array of frame definitions"+t);var c=l.length+2*t.length,f=[],h={};for(r=t.length-1;r>=0;r--)if(o.isPlainObject(t[r])){var g=t[r].name,y=(d[g]||h[g]||{}).name,m=t[r].name,v=d[y]||h[y];y&&m&&"number"===typeof m&&v&&k<5&&(k++,o.warn('addFrames: overwriting frame "'+(d[y]||h[y]).name+'" with a frame whose name of type "number" also equates to "'+y+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===k&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),h[g]={name:g},f.push({frame:p.supplyFrameDefaults(t[r]),index:a&&void 0!==a[r]&&null!==a[r]?a[r]:c+r})}f.sort((function(e,t){return e.index>t.index?-1:e.index<t.index?1:0}));var b=[],_=[],w=l.length;for(r=f.length-1;r>=0;r--){if("number"===typeof(n=f[r].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!n.name)for(;d[n.name="frame "+e._transitionData._counter++];);if(d[n.name]){for(i=0;i<l.length&&(l[i]||{}).name!==n.name;i++);b.push({type:"replace",index:i,value:n}),_.unshift({type:"replace",index:i,value:l[i]})}else s=Math.max(0,Math.min(f[r].index,w)),b.push({type:"insert",index:s,value:n}),_.unshift({type:"delete",index:s}),w++}var x=p.modifyFrames,A=p.modifyFrames,T=[e,_],j=[e,b];return u&&u.add(e,x,T,A,j),p.modifyFrames(e,b)},t.deleteFrames=function(e,t){if(e=o.getGraphDiv(e),!o.isPlotDiv(e))throw new Error("This element is not a Plotly plot: "+e);var a,r,n=e._transitionData._frames,i=[],s=[];if(!t)for(t=[],a=0;a<n.length;a++)t.push(a);for((t=t.slice()).sort(),a=t.length-1;a>=0;a--)r=t[a],i.push({type:"delete",index:r}),s.unshift({type:"insert",index:r,value:n[r]});var l=p.modifyFrames,d=p.modifyFrames,c=[e,s],f=[e,i];return u&&u.add(e,l,c,d,f),p.modifyFrames(e,i)},t.addTraces=function e(a,r,n){a=o.getGraphDiv(a);var i,s,l=[],d=t.deleteTraces,c=e,p=[a,l],f=[a,r];for(function(e,t,a){var r,n;if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if("undefined"===typeof t)throw new Error("traces must be defined.");for(Array.isArray(t)||(t=[t]),r=0;r<t.length;r++)if("object"!==typeof(n=t[r])||Array.isArray(n)||null===n)throw new Error("all values in traces array must be non-array objects");if("undefined"===typeof a||Array.isArray(a)||(a=[a]),"undefined"!==typeof a&&a.length!==t.length)throw new Error("if indices is specified, traces.length must equal indices.length")}(a,r,n),Array.isArray(r)||(r=[r]),r=r.map((function(e){return o.extendFlat({},e)})),w.cleanData(r),i=0;i<r.length;i++)a.data.push(r[i]);for(i=0;i<r.length;i++)l.push(-r.length+i);if("undefined"===typeof n)return s=t.redraw(a),u.add(a,d,p,c,f),s;Array.isArray(n)||(n=[n]);try{S(a,l,n)}catch(h){throw a.data.splice(a.data.length-r.length,r.length),h}return u.startSequence(a),u.add(a,d,p,c,f),s=t.moveTraces(a,l,n),u.stopSequence(a),s},t.deleteTraces=function e(a,r){a=o.getGraphDiv(a);var n,i,s=[],l=t.addTraces,d=e,c=[a,s,r],p=[a,r];if("undefined"===typeof r)throw new Error("indices must be an integer or array of integers.");for(Array.isArray(r)||(r=[r]),L(a,r,"indices"),(r=D(r,a.data.length-1)).sort(o.sorterDes),n=0;n<r.length;n+=1)i=a.data.splice(r[n],1)[0],s.push(i);var f=t.redraw(a);return u.add(a,l,c,d,p),f},t.extendTraces=function e(a,r,n,i){var s=M(a=o.getGraphDiv(a),r,n,i,(function(e,t,a){var r,n;if(o.isTypedArray(e))if(a<0){var i=new e.constructor(0),s=R(e,t);a<0?(r=s,n=i):(r=i,n=s)}else if(r=new e.constructor(a),n=new e.constructor(e.length+t.length-a),a===t.length)r.set(t),n.set(e);else if(a<t.length){var l=t.length-a;r.set(t.subarray(l)),n.set(e),n.set(t.subarray(0,l),e.length)}else{var u=a-t.length,d=e.length-u;r.set(e.subarray(d)),r.set(t,u),n.set(e.subarray(0,d))}else r=e.concat(t),n=a>=0&&a<r.length?r.splice(0,r.length-a):[];return[r,n]})),l=t.redraw(a),d=[a,s.update,n,s.maxPoints];return u.add(a,t.prependTraces,d,e,arguments),l},t.moveTraces=function e(a,r,n){var i,s=[],l=[],d=e,c=e,p=[a=o.getGraphDiv(a),n,r],f=[a,r,n];if(S(a,r,n),r=Array.isArray(r)?r:[r],"undefined"===typeof n)for(n=[],i=0;i<r.length;i++)n.push(-r.length+i);for(n=Array.isArray(n)?n:[n],r=D(r,a.data.length-1),n=D(n,a.data.length-1),i=0;i<a.data.length;i++)-1===r.indexOf(i)&&s.push(a.data[i]);for(i=0;i<r.length;i++)l.push({newIndex:n[i],trace:a.data[r[i]]});for(l.sort((function(e,t){return e.newIndex-t.newIndex})),i=0;i<l.length;i+=1)s.splice(l[i].newIndex,0,l[i].trace);a.data=s;var h=t.redraw(a);return u.add(a,d,p,c,f),h},t.prependTraces=function e(a,r,n,i){var s=M(a=o.getGraphDiv(a),r,n,i,(function(e,t,a){var r,n;if(o.isTypedArray(e))if(a<=0){var i=new e.constructor(0),s=R(t,e);a<0?(r=s,n=i):(r=i,n=s)}else if(r=new e.constructor(a),n=new e.constructor(e.length+t.length-a),a===t.length)r.set(t),n.set(e);else if(a<t.length){var l=t.length-a;r.set(t.subarray(0,l)),n.set(t.subarray(l)),n.set(e,l)}else{var u=a-t.length;r.set(t),r.set(e.subarray(0,u),t.length),n.set(e.subarray(u))}else r=t.concat(e),n=a>=0&&a<r.length?r.splice(a,r.length):[];return[r,n]})),l=t.redraw(a),d=[a,s.update,n,s.maxPoints];return u.add(a,t.extendTraces,d,e,arguments),l},t.newPlot=function(e,a,r,n){return e=o.getGraphDiv(e),p.cleanPlot([],{},e._fullData||[],e._fullLayout||{}),p.purge(e),t._doPlot(e,a,r,n)},t._doPlot=function(e,a,n,i){var s;if(e=o.getGraphDiv(e),l.init(e),o.isPlainObject(a)){var u=a;a=u.data,n=u.layout,i=u.config,s=u.frames}if(!1===l.triggerHandler(e,"plotly_beforeplot",[a,n,i]))return Promise.reject();a||n||o.isPlotDiv(e)||o.warn("Calling _doPlot as if redrawing but this container doesn't yet have a plot.",e),C(e,i),n||(n={}),r.select(e).classed("js-plotly-plot",!0),h.makeTester(),Array.isArray(e._promises)||(e._promises=[]);var c=0===(e.data||[]).length&&Array.isArray(a);Array.isArray(a)&&(w.cleanData(a),c?e.data=a:e.data.push.apply(e.data,a),e.empty=!1),e.layout&&!c||(e.layout=w.cleanLayout(n)),p.supplyDefaults(e);var g=e._fullLayout,v=g._has("cartesian");g._replotting=!0,(c||g._shouldCreateBgLayer)&&(!function(e){var t=r.select(e),a=e._fullLayout;if(a._calcInverseTransform=oe,a._calcInverseTransform(e),a._container=t.selectAll(".plot-container").data([0]),a._container.enter().insert("div",":first-child").classed("plot-container",!0).classed("plotly",!0),a._paperdiv=a._container.selectAll(".svg-container").data([0]),a._paperdiv.enter().append("div").classed("user-select-none",!0).classed("svg-container",!0).style("position","relative"),a._glcontainer=a._paperdiv.selectAll(".gl-container").data([{}]),a._glcontainer.enter().append("div").classed("gl-container",!0),a._paperdiv.selectAll(".main-svg").remove(),a._paperdiv.select(".modebar-container").remove(),a._paper=a._paperdiv.insert("svg",":first-child").classed("main-svg",!0),a._toppaper=a._paperdiv.append("svg").classed("main-svg",!0),a._modebardiv=a._paperdiv.append("div"),delete a._modeBar,a._hoverpaper=a._paperdiv.append("svg").classed("main-svg",!0),!a._uid){var n={};r.selectAll("defs").each((function(){this.id&&(n[this.id.split("-")[1]]=1)})),a._uid=o.randstr(n)}a._paperdiv.selectAll(".main-svg").attr(m.svgAttrs),a._defs=a._paper.append("defs").attr("id","defs-"+a._uid),a._clips=a._defs.append("g").classed("clips",!0),a._topdefs=a._toppaper.append("defs").attr("id","topdefs-"+a._uid),a._topclips=a._topdefs.append("g").classed("clips",!0),a._bgLayer=a._paper.append("g").classed("bglayer",!0),a._draggers=a._paper.append("g").classed("draglayer",!0);var i=a._paper.append("g").classed("layer-below",!0);a._imageLowerLayer=i.append("g").classed("imagelayer",!0),a._shapeLowerLayer=i.append("g").classed("shapelayer",!0),a._cartesianlayer=a._paper.append("g").classed("cartesianlayer",!0),a._polarlayer=a._paper.append("g").classed("polarlayer",!0),a._ternarylayer=a._paper.append("g").classed("ternarylayer",!0),a._geolayer=a._paper.append("g").classed("geolayer",!0),a._funnelarealayer=a._paper.append("g").classed("funnelarealayer",!0),a._pielayer=a._paper.append("g").classed("pielayer",!0),a._iciclelayer=a._paper.append("g").classed("iciclelayer",!0),a._treemaplayer=a._paper.append("g").classed("treemaplayer",!0),a._sunburstlayer=a._paper.append("g").classed("sunburstlayer",!0),a._indicatorlayer=a._toppaper.append("g").classed("indicatorlayer",!0),a._glimages=a._paper.append("g").classed("glimages",!0);var s=a._toppaper.append("g").classed("layer-above",!0);a._imageUpperLayer=s.append("g").classed("imagelayer",!0),a._shapeUpperLayer=s.append("g").classed("shapelayer",!0),a._infolayer=a._toppaper.append("g").classed("infolayer",!0),a._menulayer=a._toppaper.append("g").classed("menulayer",!0),a._zoomlayer=a._toppaper.append("g").classed("zoomlayer",!0),a._hoverlayer=a._hoverpaper.append("g").classed("hoverlayer",!0),a._modebardiv.classed("modebar-container",!0).style("position","absolute").style("top","0px").style("right","0px"),e.emit("plotly_framework")}(e),g._shouldCreateBgLayer&&delete g._shouldCreateBgLayer),h.initGradients(e),h.initPatterns(e),c&&f.saveShowSpikeInitial(e);var b=!e.calcdata||e.calcdata.length!==(e._fullData||[]).length;b&&p.doCalcdata(e);for(var _=0;_<e.calcdata.length;_++)e.calcdata[_][0].trace=e._fullData[_];e._context.responsive?e._responsiveChartHandler||(e._responsiveChartHandler=function(){o.isHidden(e)||p.resize(e)},window.addEventListener("resize",e._responsiveChartHandler)):o.clearResponsive(e);var A=o.extendFlat({},g._size),T=0;function k(){if(p.clearAutoMarginIds(e),x.drawMarginPushers(e),f.allowAutoMargin(e),g._has("pie"))for(var t=e._fullData,a=0;a<t.length;a++){var r=t[a];"pie"===r.type&&r.automargin&&p.allowAutoMargin(e,"pie."+r.uid+".automargin")}return p.doAutoMargin(e),p.previousPromises(e)}function O(){e._transitioning||(x.doAutoRangeAndConstraints(e),c&&f.saveRangeInitial(e),d.getComponentMethod("rangeslider","calcAutorange")(e))}var P=[p.previousPromises,function(){if(s)return t.addFrames(e,s)},function t(){for(var a=g._basePlotModules,r=0;r<a.length;r++)a[r].drawFramework&&a[r].drawFramework(e);!g._glcanvas&&g._has("gl")&&(g._glcanvas=g._glcontainer.selectAll(".gl-canvas").data([{key:"contextLayer",context:!0,pick:!1},{key:"focusLayer",context:!1,pick:!1},{key:"pickLayer",context:!1,pick:!0}],(function(e){return e.key})),g._glcanvas.enter().append("canvas").attr("class",(function(e){return"gl-canvas gl-canvas-"+e.key.replace("Layer","")})).style({position:"absolute",top:0,left:0,overflow:"visible","pointer-events":"none"}));var n=e._context.plotGlPixelRatio;if(g._glcanvas){g._glcanvas.attr("width",g.width*n).attr("height",g.height*n).style("width",g.width+"px").style("height",g.height+"px");var i=g._glcanvas.data()[0].regl;if(i&&(Math.floor(g.width*n)!==i._gl.drawingBufferWidth||Math.floor(g.height*n)!==i._gl.drawingBufferHeight)){var s="WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.";if(!T)return o.log(s+" Clearing graph and plotting again."),p.cleanPlot([],{},e._fullData,g),p.supplyDefaults(e),g=e._fullLayout,p.doCalcdata(e),T++,t();o.error(s)}}return"h"===g.modebar.orientation?g._modebardiv.style("height",null).style("width","100%"):g._modebardiv.style("width",null).style("height",g.height+"px"),p.previousPromises(e)},k,function(){if(p.didMarginChange(A,g._size))return o.syncOrAsync([k,x.layoutStyles],e)}];v&&P.push((function(){if(b)return o.syncOrAsync([d.getComponentMethod("shapes","calcAutorange"),d.getComponentMethod("annotations","calcAutorange"),O],e);O()})),P.push(x.layoutStyles),v&&P.push((function(){return f.draw(e,c?"":"redraw")}),(function(e){e._fullLayout._insideTickLabelsAutorange&&U(e,e._fullLayout._insideTickLabelsAutorange).then((function(){e._fullLayout._insideTickLabelsAutorange=void 0}))})),P.push(x.drawData,x.finalDraw,y,p.addLinks,p.rehover,p.redrag,p.doAutoMargin,(function(e){e._fullLayout._insideTickLabelsAutorange&&c&&f.saveRangeInitial(e,!0)}),p.previousPromises);var D=o.syncOrAsync(P,e);return D&&D.then||(D=Promise.resolve()),D.then((function(){return j(e),e}))},t.purge=function(e){var t=(e=o.getGraphDiv(e))._fullLayout||{},a=e._fullData||[];return p.cleanPlot([],{},a,t),p.purge(e),l.purge(e),t._container&&t._container.remove(),delete e._context,e},t.react=function(e,a,r,n){var i,l;e=o.getGraphDiv(e),w.clearPromiseQueue(e);var u=e._fullData,f=e._fullLayout;if(o.isPlotDiv(e)&&u&&f){if(o.isPlainObject(a)){var h=a;a=h.data,r=h.layout,n=h.config,i=h.frames}var g=!1;if(n){var y=o.extendDeep({},e._context);e._context=void 0,C(e,n),g=ie(y,e._context)}e.data=a||[],w.cleanData(e.data),e.layout=r||{},w.cleanLayout(e.layout),function(e,t,a,r){var n,i,l,u,d,c,p,f,h=r._preGUI,g=[],y={};for(n in h){if(d=X(n,J)){if(i=d.attr||d.head+".uirevision",(u=(l=s(r,i).get())&&ee(i,t))&&u===l&&(null===(c=h[n])&&(c=void 0),re(f=(p=s(t,n)).get(),c))){void 0===f&&"autorange"===n.substr(n.length-9)&&g.push(n.substr(0,n.length-10)),p.set(E(s(r,n).get()));continue}}else o.warn("unrecognized GUI edit: "+n);delete h[n],"range["===n.substr(n.length-8,6)&&(y[n.substr(0,n.length-9)]=1)}for(var m=0;m<g.length;m++){var v=g[m];if(y[v]){var b=s(t,v).get();b&&delete b.autorange}}var _=r._tracePreGUI;for(var w in _){var x,A=_[w],T=null;for(n in A){if(!T){var k=te(w,a);if(k<0){delete _[w];break}var j=ae(w,e,(x=a[k]._fullInput).index);if(j<0){delete _[w];break}T=e[j]}if(d=X(n,K)){if(d.attr?u=(l=s(r,d.attr).get())&&ee(d.attr,t):(l=x.uirevision,void 0===(u=T.uirevision)&&(u=t.uirevision)),u&&u===l&&(null===(c=A[n])&&(c=void 0),re(f=(p=s(T,n)).get(),c))){p.set(E(s(x,n).get()));continue}}else o.warn("unrecognized GUI edit: "+n+" in trace uid "+w);delete A[n]}}}(e.data,e.layout,u,f),p.supplyDefaults(e,{skipUpdateCalc:!0});var m=e._fullData,v=e._fullLayout,b=void 0===v.datarevision,_=v.transition,T=function(e,t,a,r,n){var i=A.layoutFlags();function o(e){return c.getLayoutValObject(a,e)}i.arrays={},i.rangesAltered={},i.nChanges=0,i.nChangesAnim=0;var s={getValObject:o,flags:i,immutable:r,transition:n,gd:e};ne(t,a,[],s),(i.plot||i.calc)&&(i.layoutReplot=!0);n&&i.nChanges&&i.nChangesAnim&&(i.anim=i.nChanges===i.nChangesAnim?"all":"some");return i}(e,f,v,b,_),k=T.newDataRevision,O=function(e,t,a,r,n,i){var o=t.length===a.length;if(!n&&!o)return{fullReplot:!0,calc:!0};var s,l,u=A.traceFlags();function d(e){var t=c.getTraceValObject(l,e);return!l._module.animatable&&t.anim&&(t.anim=!1),t}u.arrays={},u.nChanges=0,u.nChangesAnim=0;var f={getValObject:d,flags:u,immutable:r,transition:n,newDataRevision:i,gd:e},h={};for(s=0;s<t.length;s++)if(a[s]){if(l=a[s]._fullInput,p.hasMakesDataTransform(l)&&(l=a[s]),h[l.uid])continue;h[l.uid]=1,ne(t[s]._fullInput,l,[],f)}(u.calc||u.plot)&&(u.fullReplot=!0);n&&u.nChanges&&u.nChangesAnim&&(u.anim=u.nChanges===u.nChangesAnim&&o?"all":"some");return u}(e,u,m,b,_,k);if($(e)&&(T.layoutReplot=!0),O.calc||T.calc){e.calcdata=void 0;for(var P=Object.getOwnPropertyNames(v),D=0;D<P.length;D++){var L=P[D],S=L.substring(0,5);if("xaxis"===S||"yaxis"===S){var M=v[L]._emptyCategories;M&&M()}}}else p.supplyDefaultsUpdateCalc(e.calcdata,m);var R=[];if(i&&(e._transitionData={},p.createTransitionData(e),R.push((function(){return t.addFrames(e,i)}))),v.transition&&!g&&(O.anim||T.anim))T.ticks&&R.push(x.doTicksRelayout),p.doCalcdata(e),x.doAutoRangeAndConstraints(e),R.push((function(){return p.transitionFromReact(e,O,T,f)}));else if(O.fullReplot||T.layoutReplot||g)e._fullLayout._skipDefaults=!0,R.push(t._doPlot);else{for(var I in T.arrays){var F=T.arrays[I];if(F.length){var B=d.getComponentMethod(I,"drawOne");if(B!==o.noop)for(var z=0;z<F.length;z++)B(e,F[z]);else{var G=d.getComponentMethod(I,"draw");if(G===o.noop)throw new Error("cannot draw components: "+I);G(e)}}}R.push(p.previousPromises),O.style&&R.push(x.doTraceStyle),(O.colorbars||T.colorbars)&&R.push(x.doColorBars),T.legend&&R.push(x.doLegend),T.layoutstyle&&R.push(x.layoutStyles),T.axrange&&H(R),T.ticks&&R.push(x.doTicksRelayout),T.modebar&&R.push(x.doModeBar),T.camera&&R.push(x.doCamera),R.push(j)}R.push(p.rehover,p.redrag),(l=o.syncOrAsync(R,e))&&l.then||(l=Promise.resolve(e))}else l=t.newPlot(e,a,r,n);return l.then((function(){return e.emit("plotly_react",{data:a,layout:r}),e}))},t.redraw=function(e){if(e=o.getGraphDiv(e),!o.isPlotDiv(e))throw new Error("This element is not a Plotly plot: "+e);return w.cleanData(e.data),w.cleanLayout(e.layout),e.calcdata=void 0,t._doPlot(e).then((function(){return e.emit("plotly_redraw"),e}))},t.relayout=U,t.restyle=I,t.setPlotConfig=function(e){return o.extendFlat(b,e)},t.update=Q,t._guiRelayout=Z(U),t._guiRestyle=Z(I),t._guiUpdate=Z(Q),t._storeDirectGUIEdit=function(e,t,a){for(var r in a){B(r,s(e,r).get(),a[r],t)}}},12788:function(e){var t={staticPlot:{valType:"boolean",dflt:!1,description:["Determines whether the graphs are interactive or not.","If *false*, no interactivity, for export or image generation."].join(" ")},plotlyServerURL:{valType:"string",dflt:"",description:["When set it determines base URL for","the 'Edit in Chart Studio' `showEditInChartStudio`/`showSendToCloud` mode bar button","and the showLink/sendData on-graph link.","To enable sending your data to Chart Studio Cloud, you need to","set both `plotlyServerURL` to 'https://chart-studio.plotly.com' and","also set `showSendToCloud` to true."].join(" ")},editable:{valType:"boolean",dflt:!1,description:["Determines whether the graph is editable or not.","Sets all pieces of `edits`","unless a separate `edits` config item overrides individual parts."].join(" ")},edits:{annotationPosition:{valType:"boolean",dflt:!1,description:["Determines if the main anchor of the annotation is editable.","The main anchor corresponds to the","text (if no arrow) or the arrow (which drags the whole thing leaving","the arrow length & direction unchanged)."].join(" ")},annotationTail:{valType:"boolean",dflt:!1,description:["Has only an effect for annotations with arrows.","Enables changing the length and direction of the arrow."].join(" ")},annotationText:{valType:"boolean",dflt:!1,description:"Enables editing annotation text."},axisTitleText:{valType:"boolean",dflt:!1,description:"Enables editing axis title text."},colorbarPosition:{valType:"boolean",dflt:!1,description:"Enables moving colorbars."},colorbarTitleText:{valType:"boolean",dflt:!1,description:"Enables editing colorbar title text."},legendPosition:{valType:"boolean",dflt:!1,description:"Enables moving the legend."},legendText:{valType:"boolean",dflt:!1,description:"Enables editing the trace name fields from the legend"},shapePosition:{valType:"boolean",dflt:!1,description:"Enables moving shapes."},titleText:{valType:"boolean",dflt:!1,description:"Enables editing the global layout title."}},autosizable:{valType:"boolean",dflt:!1,description:["Determines whether the graphs are plotted with respect to","layout.autosize:true and infer its container size."].join(" ")},responsive:{valType:"boolean",dflt:!1,description:["Determines whether to change the layout size when window is resized.","In v3, this option will be removed and will always be true."].join(" ")},fillFrame:{valType:"boolean",dflt:!1,description:["When `layout.autosize` is turned on, determines whether the graph","fills the container (the default) or the screen (if set to *true*)."].join(" ")},frameMargins:{valType:"number",dflt:0,min:0,max:.5,description:["When `layout.autosize` is turned on, set the frame margins","in fraction of the graph size."].join(" ")},scrollZoom:{valType:"flaglist",flags:["cartesian","gl3d","geo","mapbox"],extras:[!0,!1],dflt:"gl3d+geo+mapbox",description:["Determines whether mouse wheel or two-finger scroll zooms is enable.","Turned on by default for gl3d, geo and mapbox subplots","(as these subplot types do not have zoombox via pan),","but turned off by default for cartesian subplots.","Set `scrollZoom` to *false* to disable scrolling for all subplots."].join(" ")},doubleClick:{valType:"enumerated",values:[!1,"reset","autosize","reset+autosize"],dflt:"reset+autosize",description:["Sets the double click interaction mode.","Has an effect only in cartesian plots.","If *false*, double click is disable.","If *reset*, double click resets the axis ranges to their initial values.","If *autosize*, double click set the axis ranges to their autorange values.","If *reset+autosize*, the odd double clicks resets the axis ranges","to their initial values and even double clicks set the axis ranges","to their autorange values."].join(" ")},doubleClickDelay:{valType:"number",dflt:300,min:0,description:["Sets the delay for registering a double-click in ms.","This is the time interval (in ms) between first mousedown and","2nd mouseup to constitute a double-click.","This setting propagates to all on-subplot double clicks","(except for geo and mapbox) and on-legend double clicks."].join(" ")},showAxisDragHandles:{valType:"boolean",dflt:!0,description:["Set to *false* to omit cartesian axis pan/zoom drag handles."].join(" ")},showAxisRangeEntryBoxes:{valType:"boolean",dflt:!0,description:["Set to *false* to omit direct range entry at the pan/zoom drag points,","note that `showAxisDragHandles` must be enabled to have an effect."].join(" ")},showTips:{valType:"boolean",dflt:!0,description:["Determines whether or not tips are shown while interacting","with the resulting graphs."].join(" ")},showLink:{valType:"boolean",dflt:!1,description:["Determines whether a link to Chart Studio Cloud is displayed","at the bottom right corner of resulting graphs.","Use with `sendData` and `linkText`."].join(" ")},linkText:{valType:"string",dflt:"Edit chart",noBlank:!0,description:["Sets the text appearing in the `showLink` link."].join(" ")},sendData:{valType:"boolean",dflt:!0,description:["If *showLink* is true, does it contain data","just link to a Chart Studio Cloud file?"].join(" ")},showSources:{valType:"any",dflt:!1,description:["Adds a source-displaying function to show sources on","the resulting graphs."].join(" ")},displayModeBar:{valType:"enumerated",values:["hover",!0,!1],dflt:"hover",description:["Determines the mode bar display mode.","If *true*, the mode bar is always visible.","If *false*, the mode bar is always hidden.","If *hover*, the mode bar is visible while the mouse cursor","is on the graph container."].join(" ")},showSendToCloud:{valType:"boolean",dflt:!1,description:['Should we include a ModeBar button, labeled "Edit in Chart Studio",',"that sends this chart to chart-studio.plotly.com (formerly plot.ly) or another plotly server","as specified by `plotlyServerURL` for editing, export, etc? Prior to version 1.43.0","this button was included by default, now it is opt-in using this flag.","Note that this button can (depending on `plotlyServerURL` being set) send your data","to an external server. However that server does not persist your data",'until you arrive at the Chart Studio and explicitly click "Save".'].join(" ")},showEditInChartStudio:{valType:"boolean",dflt:!1,description:["Same as `showSendToCloud`, but use a pencil icon instead of a floppy-disk.","Note that if both `showSendToCloud` and `showEditInChartStudio` are turned,","only `showEditInChartStudio` will be honored."].join(" ")},modeBarButtonsToRemove:{valType:"any",dflt:[],description:["Remove mode bar buttons by name.","See ./components/modebar/buttons.js for the list of names."].join(" ")},modeBarButtonsToAdd:{valType:"any",dflt:[],description:["Add mode bar button using config objects","See ./components/modebar/buttons.js for list of arguments.","To enable predefined modebar buttons e.g. shape drawing, hover and spikelines,","simply provide their string name(s). This could include:","*v1hovermode*, *hoverclosest*, *hovercompare*, *togglehover*, *togglespikelines*,","*drawline*, *drawopenpath*, *drawclosedpath*, *drawcircle*, *drawrect* and *eraseshape*.","Please note that these predefined buttons will only be shown if they are compatible","with all trace types used in a graph."].join(" ")},modeBarButtons:{valType:"any",dflt:!1,description:["Define fully custom mode bar buttons as nested array,","where the outer arrays represents button groups, and","the inner arrays have buttons config objects or names of default buttons","See ./components/modebar/buttons.js for more info."].join(" ")},toImageButtonOptions:{valType:"any",dflt:{},description:["Statically override options for toImage modebar button","allowed keys are format, filename, width, height, scale","see ../components/modebar/buttons.js"].join(" ")},displaylogo:{valType:"boolean",dflt:!0,description:["Determines whether or not the plotly logo is displayed","on the end of the mode bar."].join(" ")},watermark:{valType:"boolean",dflt:!1,description:"watermark the images with the company's logo"},plotGlPixelRatio:{valType:"number",dflt:2,min:1,max:4,description:["Set the pixel ratio during WebGL image export.","This config option was formerly named `plot3dPixelRatio`","which is now deprecated."].join(" ")},setBackground:{valType:"any",dflt:"transparent",description:["Set function to add the background color (i.e. `layout.paper_color`)","to a different container.","This function take the graph div as first argument and the current background","color as second argument.","Alternatively, set to string *opaque* to ensure there is white behind it."].join(" ")},topojsonURL:{valType:"string",noBlank:!0,dflt:"https://cdn.plot.ly/",description:["Set the URL to topojson used in geo charts.","By default, the topojson files are fetched from cdn.plot.ly.","For example, set this option to:","<path-to-plotly.js>/dist/topojson/","to render geographical feature using the topojson files","that ship with the plotly.js module."].join(" ")},mapboxAccessToken:{valType:"string",dflt:null,description:["Mapbox access token (required to plot mapbox trace types)","If using an Mapbox Atlas server, set this option to ''","so that plotly.js won't attempt to authenticate to the public Mapbox server."].join(" ")},logging:{valType:"integer",min:0,max:2,dflt:1,description:["Turn all console logging on or off (errors will be thrown)","This should ONLY be set via Plotly.setPlotConfig","Available levels:","0: no logs","1: warnings and errors, but not informational messages","2: verbose logs"].join(" ")},notifyOnLogging:{valType:"integer",min:0,max:2,dflt:0,description:["Set on-graph logging (notifier) level","This should ONLY be set via Plotly.setPlotConfig","Available levels:","0: no on-graph logs","1: warnings and errors, but not informational messages","2: verbose logs"].join(" ")},queueLength:{valType:"integer",min:0,dflt:0,description:"Sets the length of the undo/redo queue."},globalTransforms:{valType:"any",dflt:[],description:["Set global transform to be applied to all traces with no","specification needed"].join(" ")},locale:{valType:"string",dflt:"en-US",description:["Which localization should we use?","Should be a string like 'en' or 'en-US'."].join(" ")},locales:{valType:"any",dflt:{},description:["Localization definitions","Locales can be provided either here (specific to one chart) or globally","by registering them as modules.","Should be an object of objects {locale: {dictionary: {...}, format: {...}}}","{"," da: {"," dictionary: {'Reset axes': 'Nulstil aksler', ...},"," format: {months: [...], shortMonths: [...]}"," },"," ...","}","All parts are optional. When looking for translation or format fields, we","look first for an exact match in a config locale, then in a registered","module. If those fail, we strip off any regionalization ('en-US' -> 'en')","and try each (config, registry) again. The final fallback for translation","is untranslated (which is US English) and for formats is the base English","(the only consequence being the last fallback date format %x is DD/MM/YYYY","instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored","for our automatic number formatting, but can be used in custom formats."].join(" ")}},a={};!function e(t,a){for(var r in t){var n=t[r];n.valType?a[r]=n.dflt:(a[r]||(a[r]={}),e(n,a[r]))}}(t,a),e.exports={configAttributes:t,dfltConfig:a}},16545:function(e,t,a){var r=a(62282),n=a(47401),i=a(42837),o=a(19744),s=a(81255),l=a(46218),u=a(12788).configAttributes,d=a(17342),c=n.extendDeepAll,p=n.isPlainObject,f=n.isArrayOrTypedArray,h=n.nestedProperty,g=n.valObjectMeta,y="_isSubplotObj",m="_isLinkedToArray",v="_deprecated",b=[y,m,"_arrayAttrRegexps",v];function _(e,t,a){if(!e)return!1;if(e._isLinkedToArray)if(w(t[a]))a++;else if(a<t.length)return!1;for(;a<t.length;a++){var r=e[t[a]];if(!p(r))break;if(e=r,a===t.length-1)break;if(e._isLinkedToArray){if(!w(t[++a]))return!1}else if("info_array"===e.valType){var n=t[++a];if(!w(n))return!1;var i=e.items;if(Array.isArray(i)){if(n>=i.length)return!1;if(2===e.dimensions){if(a++,t.length===a)return e;var o=t[a];if(!w(o))return!1;e=i[n][o]}else e=i[n]}else e=i}}return e}function w(e){return e===Math.round(e)&&e>=0}function x(){var e,t,a={};for(e in c(a,o),r.subplotsRegistry){if((t=r.subplotsRegistry[e]).layoutAttributes)if(Array.isArray(t.attr))for(var n=0;n<t.attr.length;n++)k(a,t,t.attr[n]);else k(a,t,"subplot"===t.attr?t.name:t.attr)}for(e in r.componentsRegistry){var i=(t=r.componentsRegistry[e]).schema;if(i&&(i.subplots||i.layout)){var s=i.subplots;if(s&&s.xaxis&&!s.yaxis)for(var l in s.xaxis)delete a.yaxis[l]}else"colorscale"===t.name?c(a,t.layoutAttributes):t.layoutAttributes&&j(a,t.layoutAttributes,t.name)}return{layoutAttributes:T(a)}}function A(){var e={frames:c({},s)};return T(e),e.frames}function T(e){return function(e){function a(e){return{valType:"string",description:["Sets the source reference on Chart Studio Cloud for ",e,"."].join(" "),editType:"none"}}function r(e,r,n){t.isValObject(e)?!0!==e.arrayOk&&"data_array"!==e.valType||(n[r+"src"]=a(r)):p(e)&&(e.role="object")}t.crawl(e,r)}(e),function(e){function a(e,t,a){if(e){var r=e[m];r&&(delete e[m],a[t]={items:{}},a[t].items[r]=e,a[t].role="object")}}t.crawl(e,a)}(e),function(e){function t(e){for(var a in e)if(p(e[a]))t(e[a]);else if(Array.isArray(e[a]))for(var r=0;r<e[a].length;r++)t(e[a][r]);else e[a]instanceof RegExp&&(e[a]=e[a].toString())}t(e)}(e),e}function k(e,t,a){var r=h(e,a),n=c({},t.layoutAttributes);n[y]=!0,r.set(n)}function j(e,t,a){var r=h(e,a);r.set(c(r.get()||{},t))}t.IS_SUBPLOT_OBJ=y,t.IS_LINKED_TO_ARRAY=m,t.DEPRECATED=v,t.UNDERSCORE_ATTRS=b,t.get=function(){var e={};r.allTypes.forEach((function(a){e[a]=function(e){var a,n;a=r.modules[e]._module,n=a.basePlotModule;var o={type:null},s=c({},i),l=c({},a.attributes);t.crawl(l,(function(e,t,a,r,n){h(s,n).set(void 0),void 0===e&&h(l,n).set(void 0)})),c(o,s),r.traceIs(e,"noOpacity")&&delete o.opacity;r.traceIs(e,"showLegend")||(delete o.showlegend,delete o.legendgroup);r.traceIs(e,"noHover")&&(delete o.hoverinfo,delete o.hoverlabel);a.selectPoints||delete o.selectedpoints;c(o,l),n.attributes&&c(o,n.attributes);o.type=e;var u={meta:a.meta||{},categories:a.categories||{},animatable:Boolean(a.animatable),type:e,attributes:T(o)};if(a.layoutAttributes){var d={};c(d,a.layoutAttributes),u.layoutAttributes=T(d)}a.animatable||t.crawl(u,(function(e){t.isValObject(e)&&"anim"in e&&delete e.anim}));return u}(a)}));var a={};return Object.keys(r.transformsRegistry).forEach((function(e){a[e]=function(e){var t=r.transformsRegistry[e],a=c({},t.attributes);return Object.keys(r.componentsRegistry).forEach((function(t){var n=r.componentsRegistry[t];n.schema&&n.schema.transforms&&n.schema.transforms[e]&&Object.keys(n.schema.transforms[e]).forEach((function(t){j(a,n.schema.transforms[e][t],t)}))})),{attributes:T(a)}}(e)})),{defs:{valObjects:g,metaKeys:b.concat(["description","role","editType","impliedEdits"]),editType:{traces:d.traces,layout:d.layout},impliedEdits:{description:["Sometimes when an attribute is changed, other attributes","must be altered as well in order to achieve the intended","result. For example, when `range` is specified, it is","important to set `autorange` to `false` or the new `range`","value would be lost in the redraw. `impliedEdits` is the","mechanism to do this: `impliedEdits: {autorange: false}`.","Each key is a relative paths to the attribute string to","change, using *^* to ascend into the parent container,","for example `range[0]` has `impliedEdits: {*^autorange*: false}`.","A value of `undefined` means that the attribute will not be","changed, but its previous value should be recorded in case","we want to reverse this change later. For example, `autorange`","has `impliedEdits: {*range[0]*: undefined, *range[1]*:undefined}","because the range will likely be changed by redraw."].join(" ")}},traces:e,layout:x(),transforms:a,frames:A(),animation:T(l),config:T(u)}},t.crawl=function(e,a,r,n){var i=r||0;n=n||"",Object.keys(e).forEach((function(r){var o=e[r];if(-1===b.indexOf(r)){var s=(n?n+".":"")+r;a(o,r,e,i,s),t.isValObject(o)||p(o)&&"impliedEdits"!==r&&t.crawl(o,a,i+1,s)}}))},t.isValObject=function(e){return e&&void 0!==e.valType},t.findArrayAttributes=function(e){var a,r,n=[],o=[],s=[];function l(e,t,r,n){o=o.slice(0,n).concat([t]),s=s.slice(0,n).concat([e&&e._isLinkedToArray]),e&&("data_array"===e.valType||!0===e.arrayOk)&&!("colorbar"===o[n-1]&&("ticktext"===t||"tickvals"===t))&&u(a,0,"")}function u(e,t,a){var i=e[o[t]],l=a+o[t];if(t===o.length-1)f(i)&&n.push(r+l);else if(s[t]){if(Array.isArray(i))for(var d=0;d<i.length;d++)p(i[d])&&u(i[d],t+1,l+"["+d+"].")}else p(i)&&u(i,t+1,l+".")}a=e,r="",t.crawl(i,l),e._module&&e._module.attributes&&t.crawl(e._module.attributes,l);var d=e.transforms;if(d)for(var c=0;c<d.length;c++){var h=d[c],g=h._module;g&&(r="transforms["+c+"].",a=h,t.crawl(g.attributes,l))}return n},t.getTraceValObject=function(e,t){var a,n,o=t[0],s=1;if("transforms"===o){if(1===t.length)return i.transforms;var l=e.transforms;if(!Array.isArray(l)||!l.length)return!1;var u=t[1];if(!w(u)||u>=l.length)return!1;n=(a=(r.transformsRegistry[l[u].type]||{}).attributes)&&a[t[2]],s=3}else{var d=e._module;if(d||(d=(r.modules[e.type||i.type.dflt]||{})._module),!d)return!1;if(!(n=(a=d.attributes)&&a[o])){var c=d.basePlotModule;c&&c.attributes&&(n=c.attributes[o])}n||(n=i[o])}return _(n,t,s)},t.getLayoutValObject=function(e,t){var a=function(e,t){var a,n,i,s,l=e._basePlotModules;if(l){var u;for(a=0;a<l.length;a++){if((i=l[a]).attrRegex&&i.attrRegex.test(t)){if(i.layoutAttrOverrides)return i.layoutAttrOverrides;!u&&i.layoutAttributes&&(u=i.layoutAttributes)}var d=i.baseLayoutAttrOverrides;if(d&&t in d)return d[t]}if(u)return u}var c=e._modules;if(c)for(a=0;a<c.length;a++)if((s=c[a].layoutAttributes)&&t in s)return s[t];for(n in r.componentsRegistry){if("colorscale"===(i=r.componentsRegistry[n]).name&&0===t.indexOf("coloraxis"))return i.layoutAttributes[t];if(!i.schema&&t===i.name)return i.layoutAttributes}return t in o&&o[t]}(e,t[0]);return _(a,t,1)}},92704:function(e,t,a){var r=a(47401),n=a(42837),i="templateitemname",o={name:{valType:"string",editType:"none",description:["When used in a template, named items are created in the output figure","in addition to any items the figure already has in this array.","You can modify these items in the output figure by making your own","item with `templateitemname` matching this `name`","alongside your modifications (including `visible: false` or","`enabled: false` to hide it).","Has no effect outside of a template."].join(" ")}};function s(e){return e&&"string"===typeof e}function l(e){var t=e.length-1;return"s"!==e.charAt(t)&&r.warn("bad argument to arrayDefaultKey: "+e),e.substr(0,e.length-1)+"defaults"}o[i]={valType:"string",editType:"calc",description:["Used to refer to a named item in this array in the template. Named","items from the template will be created even without a matching item","in the input figure, but you can modify one by making an item with","`templateitemname` matching its `name`, alongside your modifications","(including `visible: false` or `enabled: false` to hide it).","If there is no template or no matching item, this item will be","hidden unless you explicitly show it with `visible: true`."].join(" ")},t.templatedArray=function(e,t){return t._isLinkedToArray=e,t.name=o.name,t[i]=o[i],t},t.traceTemplater=function(e){var t,a,i={};for(t in e)a=e[t],Array.isArray(a)&&a.length&&(i[t]=0);return{newTrace:function(o){var s={type:t=r.coerce(o,{},n,"type"),_template:null};if(t in i){a=e[t];var l=i[t]%a.length;i[t]++,s._template=a[l]}return s}}},t.newContainer=function(e,t,a){var n=e._template,i=n&&(n[t]||a&&n[a]);return r.isPlainObject(i)||(i=null),e[t]={_template:i}},t.arrayTemplater=function(e,t,a){var r=e._template,n=r&&r[l(t)],o=r&&r[t];Array.isArray(o)&&o.length||(o=[]);var u={};return{newItem:function(e){var t={name:e.name,_input:e},r=t[i]=e[i];if(!s(r))return t._template=n,t;for(var l=0;l<o.length;l++){var d=o[l];if(d.name===r)return u[r]=1,t._template=d,t}return t[a]=e[a]||!1,t._template=!1,t},defaultItems:function(){for(var e=[],t=0;t<o.length;t++){var a=o[t],r=a.name;if(s(r)&&!u[r]){var n={_template:a,name:r,_input:{_templateitemname:r}};n[i]=a[i],e.push(n),u[r]=1}}return e}}},t.arrayDefaultKey=l,t.arrayEditor=function(e,t,a){var n=(r.nestedProperty(e,t).get()||[]).length,o=a._index,s=o>=n&&(a._input||{})._templateitemname;s&&(o=n);var l,u=t+"["+o+"]";function d(){l={},s&&(l[u]={},l[u][i]=s)}function c(e,t){s?r.nestedProperty(l[u],e).set(t):l[u+"."+e]=t}function p(){var e=l;return d(),e}return d(),{modifyBase:function(e,t){l[e]=t},modifyItem:c,getUpdateObj:p,applyUpdate:function(t,a){t&&c(t,a);var n=p();for(var i in n)r.nestedProperty(e,i).set(n[i])}}}},665:function(e,t,a){var r=a(62258),n=a(62282),i=a(35722),o=a(47401),s=a(43351),l=a(31454),u=a(41707),d=a(50075),c=a(18905),p=a(37762),f=a(60482),h=a(30807),g=h.enforce,y=h.clean,m=a(9319).doAutoRange,v="start",b="middle",_="end";function w(e,t,a){for(var r=0;r<a.length;r++){var n=a[r][0],i=a[r][1];if(!(n[0]>=e[1]||n[1]<=e[0])&&(i[0]<t[1]&&i[1]>t[0]))return!0}return!1}function x(e){var a,n,s,d,h,g,y=e._fullLayout,m=y._size,v=m.p,b=p.list(e,"",!0);if(y._paperdiv.style({width:e._context.responsive&&y.autosize&&!e._context._hasZeroWidth&&!e.layout.width?"100%":y.width+"px",height:e._context.responsive&&y.autosize&&!e._context._hasZeroHeight&&!e.layout.height?"100%":y.height+"px"}).selectAll(".main-svg").call(u.setSize,y.width,y.height),e._context.setBackground(e,y.paper_bgcolor),t.drawMainTitle(e),c.manage(e),!y._has("cartesian"))return i.previousPromises(e);function _(e,t,a){var r=e._lw/2;return"x"===e._id.charAt(0)?t?"top"===a?t._offset-v-r:t._offset+t._length+v+r:m.t+m.h*(1-(e.position||0))+r%1:t?"right"===a?t._offset+t._length+v+r:t._offset-v-r:m.l+m.w*(e.position||0)+r%1}for(a=0;a<b.length;a++){var x=(d=b[a])._anchorAxis;d._linepositions={},d._lw=u.crispRound(e,d.linewidth,1),d._mainLinePosition=_(d,x,d.side),d._mainMirrorPosition=d.mirror&&x?_(d,x,f.OPPOSITE_SIDE[d.side]):null}var T=[],j=[],O=[],P=1===l.opacity(y.paper_bgcolor)&&1===l.opacity(y.plot_bgcolor)&&y.paper_bgcolor===y.plot_bgcolor;for(n in y._plots)if((s=y._plots[n]).mainplot)s.bg&&s.bg.remove(),s.bg=void 0;else{var C=s.xaxis.domain,D=s.yaxis.domain,L=s.plotgroup;if(w(C,D,O)){var S=L.node(),M=s.bg=o.ensureSingle(L,"rect","bg");S.insertBefore(M.node(),S.childNodes[0]),j.push(n)}else L.select("rect.bg").remove(),O.push([C,D]),P||(T.push(n),j.push(n))}var R,I,E,F,B,z,G,U,N,H,q,V,Y,W=y._bgLayer.selectAll(".bg").data(T);for(W.enter().append("rect").classed("bg",!0),W.exit().remove(),W.each((function(e){y._plots[e].bg=r.select(this)})),a=0;a<j.length;a++)s=y._plots[j[a]],h=s.xaxis,g=s.yaxis,s.bg&&void 0!==h._offset&&void 0!==g._offset&&s.bg.call(u.setRect,h._offset-v,g._offset-v,h._length+2*v,g._length+2*v).call(l.fill,y.plot_bgcolor).style("stroke-width",0);if(!y._hasOnlyLargeSploms)for(n in y._plots){s=y._plots[n],h=s.xaxis,g=s.yaxis;var $,Q,Z=s.clipId="clip"+y._uid+n+"plot",J=o.ensureSingleById(y._clips,"clipPath",Z,(function(e){e.classed("plotclip",!0).append("rect")}));s.clipRect=J.select("rect").attr({width:h._length,height:g._length}),u.setTranslate(s.plot,h._offset,g._offset),s._hasClipOnAxisFalse?($=null,Q=Z):($=Z,Q=null),u.setClipUrl(s.plot,$,e),s.layerClipId=Q}function K(e){return"M"+R+","+e+"H"+I}function X(e){return"M"+h._offset+","+e+"h"+h._length}function ee(e){return"M"+e+","+U+"V"+G}function te(e){return"M"+e+","+g._offset+"v"+g._length}function ae(e,t,a){if(!e.showline||n!==e._mainSubplot)return"";if(!e._anchorAxis)return a(e._mainLinePosition);var r=t(e._mainLinePosition);return e.mirror&&(r+=t(e._mainMirrorPosition)),r}for(n in y._plots){s=y._plots[n],h=s.xaxis,g=s.yaxis;var re="M0,0";A(h,n)&&(B=k(h,"left",g,b),R=h._offset-(B?v+B:0),z=k(h,"right",g,b),I=h._offset+h._length+(z?v+z:0),E=_(h,g,"bottom"),F=_(h,g,"top"),!(Y=!h._anchorAxis||n!==h._mainSubplot)||"allticks"!==h.mirror&&"all"!==h.mirror||(h._linepositions[n]=[E,F]),re=ae(h,K,X),Y&&h.showline&&("all"===h.mirror||"allticks"===h.mirror)&&(re+=K(E)+K(F)),s.xlines.style("stroke-width",h._lw+"px").call(l.stroke,h.showline?h.linecolor:"rgba(0,0,0,0)")),s.xlines.attr("d",re);var ne="M0,0";A(g,n)&&(q=k(g,"bottom",h,b),G=g._offset+g._length+(q?v:0),V=k(g,"top",h,b),U=g._offset-(V?v:0),N=_(g,h,"left"),H=_(g,h,"right"),!(Y=!g._anchorAxis||n!==g._mainSubplot)||"allticks"!==g.mirror&&"all"!==g.mirror||(g._linepositions[n]=[N,H]),ne=ae(g,ee,te),Y&&g.showline&&("all"===g.mirror||"allticks"===g.mirror)&&(ne+=ee(N)+ee(H)),s.ylines.style("stroke-width",g._lw+"px").call(l.stroke,g.showline?g.linecolor:"rgba(0,0,0,0)")),s.ylines.attr("d",ne)}return p.makeClipPaths(e),i.previousPromises(e)}function A(e,t){return(e.ticks||e.showline)&&(t===e._mainSubplot||"all"===e.mirror||"allticks"===e.mirror)}function T(e,t,a){if(!a.showline||!a._lw)return!1;if("all"===a.mirror||"allticks"===a.mirror)return!0;var r=a._anchorAxis;if(!r)return!1;var n=f.FROM_BL[t];return a.side===t?r.domain[n]===e.domain[n]:a.mirror&&r.domain[1-n]===e.domain[1-n]}function k(e,t,a,r){if(T(e,t,a))return a._lw;for(var n=0;n<r.length;n++){var i=r[n];if(i._mainAxis===a._mainAxis&&T(e,t,i))return i._lw}return 0}function j(e,t){var a=e.title,r=e._size,n=0;return t===v?n=a.pad.l:t===_&&(n=-a.pad.r),"paper"===a.xref?r.l+r.w*a.x+n:e.width*a.x+n}function O(e,t){var a=e.title,r=e._size,n=0;return"0em"!==t&&t?t===f.CAP_SHIFT+"em"&&(n=a.pad.t):n=-a.pad.b,"auto"===a.y?r.t/2:"paper"===a.yref?r.t+r.h-r.h*a.y+n:e.height-e.height*a.y+n}t.layoutStyles=function(e){return o.syncOrAsync([i.doAutoMargin,x],e)},t.drawMainTitle=function(e){var t=e._fullLayout,a=function(e){var t=e.title,a=b;o.isRightAnchor(t)?a=_:o.isLeftAnchor(t)&&(a=v);return a}(t),r=function(e){var t=e.title,a="0em";o.isTopAnchor(t)?a=f.CAP_SHIFT+"em":o.isMiddleAnchor(t)&&(a=f.MID_SHIFT+"em");return a}(t);d.draw(e,"gtitle",{propContainer:t,propName:"title.text",placeholder:t._dfltTitle.plot,attributes:{x:j(t,a),y:O(t,r),"text-anchor":a,dy:r}})},t.doTraceStyle=function(e){var a,r=e.calcdata,o=[];for(a=0;a<r.length;a++){var l=r[a],u=l[0]||{},d=u.trace||{},c=d._module||{},p=c.arraysToCalcdata;p&&p(l,d);var f=c.editStyle;f&&o.push({fn:f,cd0:u})}if(o.length){for(a=0;a<o.length;a++){var h=o[a];h.fn(e,h.cd0)}s(e),t.redrawReglTraces(e)}return i.style(e),n.getComponentMethod("legend","draw")(e),i.previousPromises(e)},t.doColorBars=function(e){return n.getComponentMethod("colorbar","draw")(e),i.previousPromises(e)},t.layoutReplot=function(e){var t=e.layout;return e.layout=void 0,n.call("_doPlot",e,"",t)},t.doLegend=function(e){return n.getComponentMethod("legend","draw")(e),i.previousPromises(e)},t.doTicksRelayout=function(e){return p.draw(e,"redraw"),e._fullLayout._hasOnlyLargeSploms&&(n.subplotsRegistry.splom.updateGrid(e),s(e),t.redrawReglTraces(e)),t.drawMainTitle(e),i.previousPromises(e)},t.doModeBar=function(e){var t=e._fullLayout;c.manage(e);for(var a=0;a<t._basePlotModules.length;a++){var r=t._basePlotModules[a].updateFx;r&&r(e)}return i.previousPromises(e)},t.doCamera=function(e){for(var t=e._fullLayout,a=t._subplots.gl3d,r=0;r<a.length;r++){var n=t[a[r]];n._scene.setViewport(n)}},t.drawData=function(e){var a=e._fullLayout;s(e);for(var r=a._basePlotModules,o=0;o<r.length;o++)r[o].plot(e);return t.redrawReglTraces(e),i.style(e),n.getComponentMethod("shapes","draw")(e),n.getComponentMethod("annotations","draw")(e),n.getComponentMethod("images","draw")(e),a._replotting=!1,i.previousPromises(e)},t.redrawReglTraces=function(e){var t=e._fullLayout;if(t._has("regl")){var a,r,n=e._fullData,i=[],s=[];for(t._hasOnlyLargeSploms&&t._splomGrid.draw(),a=0;a<n.length;a++){var l=n[a];!0===l.visible&&0!==l._length&&("splom"===l.type?t._splomScenes[l.uid].draw():"scattergl"===l.type?o.pushUnique(i,l.xaxis+l.yaxis):"scatterpolargl"===l.type&&o.pushUnique(s,l.subplot))}for(a=0;a<i.length;a++)(r=t._plots[i[a]])._scene&&r._scene.draw();for(a=0;a<s.length;a++)(r=t[s[a]]._subplot)._scene&&r._scene.draw()}},t.doAutoRangeAndConstraints=function(e){for(var t,a=p.list(e,"",!0),r={},n=0;n<a.length;n++)if(!r[(t=a[n])._id]){r[t._id]=1,y(e,t),m(e,t);var i=t._matchGroup;if(i)for(var o in i){var s=p.getFromId(e,o);m(e,s,t.range),r[o]=1}}g(e)},t.finalDraw=function(e){n.getComponentMethod("rangeslider","draw")(e),n.getComponentMethod("rangeselector","draw")(e)},t.drawMarginPushers=function(e){n.getComponentMethod("legend","draw")(e),n.getComponentMethod("rangeselector","draw")(e),n.getComponentMethod("sliders","draw")(e),n.getComponentMethod("updatemenus","draw")(e),n.getComponentMethod("colorbar","draw")(e)}},47213:function(e,t,a){var r=a(47401),n=r.isPlainObject,i=a(16545),o=a(35722),s=a(42837),l=a(92704),u=a(12788).dfltConfig;function d(e,t){e=r.extendDeep({},e);var a,i,o=Object.keys(e).sort();function s(t,a,r){if(n(a)&&n(t))d(t,a);else if(Array.isArray(a)&&Array.isArray(t)){var o=l.arrayTemplater({_template:e},r);for(i=0;i<a.length;i++){var s=a[i],u=o.newItem(s)._template;u&&d(u,s)}var c=o.defaultItems();for(i=0;i<c.length;i++)a.push(c[i]._template);for(i=0;i<a.length;i++)delete a[i].templateitemname}}for(a=0;a<o.length;a++){var u=o[a],p=e[u];if(u in t?s(p,t[u],u):t[u]=p,c(u)===u)for(var f in t){var h=c(f);f===h||h!==u||f in e||s(p,t[f],u)}}}function c(e){return e.replace(/[0-9]+$/,"")}function p(e,t,a,i,o){var s=o&&a(o);for(var u in e){var d=e[u],f=g(e,u,i),h=g(e,u,o),y=a(h);if(!y){var m=c(u);m!==u&&(y=a(h=g(e,m,o)))}if((!s||s!==y)&&!(!y||y._noTemplating||"data_array"===y.valType||y.arrayOk&&Array.isArray(d)))if(!y.valType&&n(d))p(d,t,a,f,h);else if(y._isLinkedToArray&&Array.isArray(d))for(var v=!1,b=0,_={},w=0;w<d.length;w++){var x=d[w];if(n(x)){var A=x.name;if(A)_[A]||(p(x,t,a,g(d,b,f),g(d,b,h)),b++,_[A]=1);else if(!v){var T=g(e,l.arrayDefaultKey(u),i),k=g(d,b,f);p(x,t,a,k,g(d,b,h));var j=r.nestedProperty(t,k);r.nestedProperty(t,T).set(j.get()),j.set(null),v=!0}}}else{r.nestedProperty(t,f).set(d)}}}function f(e,t){return i.getLayoutValObject(e,r.nestedProperty({},t).parts)}function h(e,t){return i.getTraceValObject(e,r.nestedProperty({},t).parts)}function g(e,t,a){return a?Array.isArray(e)?a+"["+t+"]":a+"."+t:t}function y(e){for(var t=0;t<e.length;t++)if(n(e[t]))return!0}function m(e){var t;switch(e.code){case"data":t="The template has no key data.";break;case"layout":t="The template has no key layout.";break;case"missing":t=e.path?"There are no templates for item "+e.path+" with name "+e.templateitemname:"There are no templates for trace "+e.index+", of type "+e.traceType+".";break;case"unused":t=e.path?"The template item at "+e.path+" was not used in constructing the plot.":e.dataCount?"Some of the templates of type "+e.traceType+" were not used. The template has "+e.templateCount+" traces, the data only has "+e.dataCount+" of this type.":"The template has "+e.templateCount+" traces of type "+e.traceType+" but there are none in the data.";break;case"reused":t="Some of the templates of type "+e.traceType+" were used more than once. The template has "+e.templateCount+" traces, the data has "+e.dataCount+" of this type."}return e.msg=t,e}t.makeTemplate=function(e){e=r.isPlainObject(e)?e:r.getGraphDiv(e),e=r.extendDeep({_context:u},{data:e.data,layout:e.layout}),o.supplyDefaults(e);var t=e.data||[],a=e.layout||{};a._basePlotModules=e._fullLayout._basePlotModules,a._modules=e._fullLayout._modules;var i={data:{},layout:{}};t.forEach((function(e){var t={};p(e,t,h.bind(null,e));var a=r.coerce(e,{},s,"type"),n=i.data[a];n||(n=i.data[a]=[]),n.push(t)})),p(a,i.layout,f.bind(null,a)),delete i.layout.template;var l=a.template;if(n(l)){var c,g,y,m,v,b,_=l.layout;n(_)&&d(_,i.layout);var w=l.data;if(n(w)){for(g in i.data)if(y=w[g],Array.isArray(y)){for(b=(v=i.data[g]).length,m=y.length,c=0;c<b;c++)d(y[c%m],v[c]);for(c=b;c<m;c++)v.push(r.extendDeep({},y[c]))}for(g in w)g in i.data||(i.data[g]=r.extendDeep([],w[g]))}}return i},t.validateTemplate=function(e,t){var a=r.extendDeep({},{_context:u,data:e.data,layout:e.layout}),i=a.layout||{};n(t)||(t=i.template||{});var s=t.layout,l=t.data,d=[];a.layout=i,a.layout.template=t,o.supplyDefaults(a);var p=a._fullLayout,f=a._fullData,h={};if(n(s)?(!function e(t,a){for(var r in t)if("_"!==r.charAt(0)&&n(t[r])){var i,o=c(r),s=[];for(i=0;i<a.length;i++)s.push(g(t,r,a[i])),o!==r&&s.push(g(t,o,a[i]));for(i=0;i<s.length;i++)h[s[i]]=1;e(t[r],s)}}(p,["layout"]),function e(t,a){for(var r in t)if(-1===r.indexOf("defaults")&&n(t[r])){var i=g(t,r,a);h[i]?e(t[r],i):d.push({code:"unused",path:i})}}(s,"layout")):d.push({code:"layout"}),n(l)){for(var v,b={},_=0;_<f.length;_++){var w=f[_];b[v=w.type]=(b[v]||0)+1,w._fullInput._template||d.push({code:"missing",index:w._fullInput.index,traceType:v})}for(v in l){var x=l[v].length,A=b[v]||0;x>A?d.push({code:"unused",traceType:v,templateCount:x,dataCount:A}):A>x&&d.push({code:"reused",traceType:v,templateCount:x,dataCount:A})}}else d.push({code:"data"});if(function e(t,a){for(var r in t)if("_"!==r.charAt(0)){var i=t[r],o=g(t,r,a);n(i)?(Array.isArray(t)&&!1===i._template&&i.templateitemname&&d.push({code:"missing",path:o,templateitemname:i.templateitemname}),e(i,o)):Array.isArray(i)&&y(i)&&e(i,o)}}({data:f,layout:p},""),d.length)return d.map(m)}},58555:function(e,t,a){var r=a(83491),n=a(9772),i=a(35722),o=a(47401),s=a(4475),l=a(4979),u=a(66434),d=a(20817).version,c={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png",description:"Sets the format of exported image."},width:{valType:"number",min:1,description:["Sets the exported image width.","Defaults to the value found in `layout.width`","If set to *null*, the exported image width will match the current graph width."].join(" ")},height:{valType:"number",min:1,description:["Sets the exported image height.","Defaults to the value found in `layout.height`","If set to *null*, the exported image height will match the current graph height."].join(" ")},scale:{valType:"number",min:0,dflt:1,description:["Sets a scaling for the generated image.","If set, all features of a graphs (e.g. text, line width)","are scaled, unlike simply setting","a bigger *width* and *height*."].join(" ")},setBackground:{valType:"any",dflt:!1,description:["Sets the image background mode.","By default, the image background is determined by `layout.paper_bgcolor`,","the *transparent* mode.","One might consider setting `setBackground` to *opaque*","when exporting a *jpeg* image as JPEGs do not support opacity."].join(" ")},imageDataOnly:{valType:"boolean",dflt:!1,description:["Determines whether or not the return value is prefixed by","the image format's corresponding 'data:image;' spec."].join(" ")}};e.exports=function(e,t){var a,p,f,h;function g(e){return!(e in t)||o.validate(t[e],c[e])}if(t=t||{},o.isPlainObject(e)?(a=e.data||[],p=e.layout||{},f=e.config||{},h={}):(e=o.getGraphDiv(e),a=o.extendDeep([],e.data),p=o.extendDeep({},e.layout),f=e._context,h=e._fullLayout||{}),!g("width")&&null!==t.width||!g("height")&&null!==t.height)throw new Error("Height and width should be pixel values.");if(!g("format"))throw new Error("Export format is not "+o.join2(c.format.values,", "," or ")+".");var y={};function m(e,a){return o.coerce(t,y,c,e,a)}var v=m("format"),b=m("width"),_=m("height"),w=m("scale"),x=m("setBackground"),A=m("imageDataOnly"),T=document.createElement("div");T.style.position="absolute",T.style.left="-5000px",document.body.appendChild(T);var k=o.extendFlat({},p);b?k.width=b:null===t.width&&r(h.width)&&(k.width=h.width),_?k.height=_:null===t.height&&r(h.height)&&(k.height=h.height);var j=o.extendFlat({},f,{_exportedPlot:!0,staticPlot:!0,setBackground:x}),O=s.getRedrawFunc(T);function P(){return new Promise((function(e){setTimeout(e,s.getDelay(T._fullLayout))}))}function C(){return new Promise((function(e,t){var a=l(T,v,w),r=T._fullLayout.width,c=T._fullLayout.height;function p(){n.purge(T),document.body.removeChild(T)}if("full-json"===v){var f=i.graphJson(T,!1,"keepdata","object",!0,!0);return f.version=d,f=JSON.stringify(f),p(),e(A?f:s.encodeJSON(f))}if(p(),"svg"===v)return e(A?a:s.encodeSVG(a));var h=document.createElement("canvas");h.id=o.randstr(),u({format:v,width:r,height:c,scale:w,canvas:h,svg:a,promise:!0}).then(e).catch(t)}))}return new Promise((function(e,t){n.newPlot(T,a,k,j).then(O).then(P).then(C).then((function(t){e(function(e){return A?e.replace(s.IMAGE_URL_PREFIX,""):e}(t))})).catch((function(e){t(e)}))}))}},45170:function(e,t,a){var r=a(47401),n=a(35722),i=a(16545),o=a(12788).dfltConfig,s=r.isPlainObject,l=Array.isArray,u=r.isArrayOrTypedArray;function d(e,t,a,n,i,o){o=o||[];for(var c=Object.keys(e),p=0;p<c.length;p++){var y=c[p];if("transforms"!==y){var m=o.slice();m.push(y);var v=e[y],b=t[y],_=g(a,y),w=(_||{}).valType,x="info_array"===w,A="colorscale"===w,T=(_||{}).items;if(h(a,y))if(s(v)&&s(b)&&"any"!==w)d(v,b,_,n,i,m);else if(x&&l(v)){v.length>b.length&&n.push(f("unused",i,m.concat(b.length)));var k,j,O,P,C,D=b.length,L=Array.isArray(T);if(L&&(D=Math.min(D,T.length)),2===_.dimensions)for(j=0;j<D;j++)if(l(v[j])){v[j].length>b[j].length&&n.push(f("unused",i,m.concat(j,b[j].length)));var S=b[j].length;for(k=0;k<(L?Math.min(S,T[j].length):S);k++)O=L?T[j][k]:T,P=v[j][k],C=b[j][k],r.validate(P,O)?C!==P&&C!==+P&&n.push(f("dynamic",i,m.concat(j,k),P,C)):n.push(f("value",i,m.concat(j,k),P))}else n.push(f("array",i,m.concat(j),v[j]));else for(j=0;j<D;j++)O=L?T[j]:T,P=v[j],C=b[j],r.validate(P,O)?C!==P&&C!==+P&&n.push(f("dynamic",i,m.concat(j),P,C)):n.push(f("value",i,m.concat(j),P))}else if(_.items&&!x&&l(v)){var M,R,I=T[Object.keys(T)[0]],E=[];for(M=0;M<b.length;M++){var F=b[M]._index||M;if((R=m.slice()).push(F),s(v[F])&&s(b[M])){E.push(F);var B=v[F],z=b[M];s(B)&&!1!==B.visible&&!1===z.visible?n.push(f("invisible",i,R)):d(B,z,I,n,i,R)}}for(M=0;M<v.length;M++)(R=m.slice()).push(M),s(v[M])?-1===E.indexOf(M)&&n.push(f("unused",i,R)):n.push(f("object",i,R,v[M]))}else!s(v)&&s(b)?n.push(f("object",i,m,v)):u(v)||!u(b)||x||A?y in t?r.validate(v,_)?"enumerated"===_.valType&&(_.coerceNumber&&v!==+b||v!==b)&&n.push(f("dynamic",i,m,v,b)):n.push(f("value",i,m,v)):n.push(f("unused",i,m,v)):n.push(f("array",i,m,v));else n.push(f("schema",i,m))}}return n}e.exports=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={});var a,u,c=i.get(),p=[],h={_context:r.extendFlat({},o)};l(e)?(h.data=r.extendDeep([],e),a=e):(h.data=[],a=[],p.push(f("array","data"))),s(t)?(h.layout=r.extendDeep({},t),u=t):(h.layout={},u={},arguments.length>1&&p.push(f("object","layout"))),n.supplyDefaults(h);for(var g=h._fullData,y=a.length,m=0;m<y;m++){var v=a[m],b=["data",m];if(s(v)){var _=g[m],w=_.type,x=c.traces[w].attributes;x.type={valType:"enumerated",values:[w]},!1===_.visible&&!1!==v.visible&&p.push(f("invisible",b)),d(v,_,x,p,b);var A=v.transforms,T=_.transforms;if(A){l(A)||p.push(f("array",b,["transforms"])),b.push("transforms");for(var k=0;k<A.length;k++){var j=["transforms",k],O=A[k].type;if(s(A[k])){var P=c.transforms[O]?c.transforms[O].attributes:{};P.type={valType:"enumerated",values:Object.keys(c.transforms)},d(A[k],T[k],P,p,b,j)}else p.push(f("object",b,j))}}}else p.push(f("object",b))}var C=h._fullLayout,D=function(e,t){for(var a=e.layout.layoutAttributes,n=0;n<t.length;n++){var i=t[n],o=e.traces[i.type],s=o.layoutAttributes;s&&(i.subplot?r.extendFlat(a[o.attributes.subplot.dflt],s):r.extendFlat(a,s))}return a}(c,g);return d(u,C,D,p,"layout"),0===p.length?void 0:p};var c={object:function(e,t){return("layout"===e&&""===t?"The layout argument":"data"===e[0]&&""===t?"Trace "+e[1]+" in the data argument":p(e)+"key "+t)+" must be linked to an object container"},array:function(e,t){return("data"===e?"The data argument":p(e)+"key "+t)+" must be linked to an array container"},schema:function(e,t){return p(e)+"key "+t+" is not part of the schema"},unused:function(e,t,a){var r=s(a)?"container":"key";return p(e)+r+" "+t+" did not get coerced"},dynamic:function(e,t,a,r){return[p(e)+"key",t,"(set to '"+a+"')","got reset to","'"+r+"'","during defaults."].join(" ")},invisible:function(e,t){return(t?p(e)+"item "+t:"Trace "+e[1])+" got defaulted to be not visible"},value:function(e,t,a){return[p(e)+"key "+t,"is set to an invalid value ("+a+")"].join(" ")}};function p(e){return l(e)?"In data trace "+e[1]+", ":"In "+e+", "}function f(e,t,a,n,i){var o,s;a=a||"",l(t)?(o=t[0],s=t[1]):(o=t,s=null);var u=function(e){if(!l(e))return String(e);for(var t="",a=0;a<e.length;a++){var r=e[a];"number"===typeof r?t=t.substr(0,t.length-1)+"["+r+"]":t+=r,a<e.length-1&&(t+=".")}return t}(a),d=c[e](t,u,n,i);return r.log(d),{code:e,container:o,trace:s,path:a,astr:u,msg:d}}function h(e,t){var a=m(t),r=a.keyMinusId,n=a.id;return!!(r in e&&e[r]._isSubplotObj&&n)||t in e}function g(e,t){return t in e?e[t]:e[m(t).keyMinusId]}var y=r.counterRegex("([a-z]+)");function m(e){var t=e.match(y);return{keyMinusId:t&&t[1],id:t&&t[2]}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_mlflow_mlflow=self.webpackChunk_mlflow_mlflow||[]).push([[2972],{68220:function(e,t,n){var a=n(87241).extendFlat,r=n(42837),i=n(5153),o=n(97451),l=n(4216).r,s=n(16688).u,c=a({editType:"calc"},o("line",{editTypeOverride:"calc"}),{shape:{valType:"enumerated",values:["linear","hspline"],dflt:"linear",editType:"plot",description:["Sets the shape of the paths.","If `linear`, paths are composed of straight lines.","If `hspline`, paths are composed of horizontal curved splines"].join(" ")},hovertemplate:l({editType:"plot",arrayOk:!1},{keys:["count","probability"],description:["This value here applies when hovering over lines."].join(" ")})});e.exports={domain:s({name:"parcats",trace:!0,editType:"calc"}),hoverinfo:a({},r.hoverinfo,{flags:["count","probability"],editType:"plot",arrayOk:!1}),hoveron:{valType:"enumerated",values:["category","color","dimension"],dflt:"category",editType:"plot",description:["Sets the hover interaction mode for the parcats diagram.","If `category`, hover interaction take place per category.","If `color`, hover interactions take place per color per category.","If `dimension`, hover interactions take place across all categories per dimension."].join(" ")},hovertemplate:l({editType:"plot",arrayOk:!1},{keys:["count","probability","category","categorycount","colorcount","bandcolorcount"],description:["This value here applies when hovering over dimensions.","Note that `*categorycount`, *colorcount* and *bandcolorcount*","are only available when `hoveron` contains the *color* flag"].join(" ")}),arrangement:{valType:"enumerated",values:["perpendicular","freeform","fixed"],dflt:"perpendicular",editType:"plot",description:["Sets the drag interaction mode for categories and dimensions.","If `perpendicular`, the categories can only move along a line perpendicular to the paths.","If `freeform`, the categories can freely move on the plane.","If `fixed`, the categories and dimensions are stationary."].join(" ")},bundlecolors:{valType:"boolean",dflt:!0,editType:"plot",description:"Sort paths so that like colors are bundled together within each category."},sortpaths:{valType:"enumerated",values:["forward","backward"],dflt:"forward",editType:"plot",description:["Sets the path sorting algorithm.","If `forward`, sort paths based on dimension categories from left to right.","If `backward`, sort paths based on dimensions categories from right to left."].join(" ")},labelfont:i({editType:"calc",description:"Sets the font for the `dimension` labels."}),tickfont:i({editType:"calc",description:"Sets the font for the `category` labels."}),dimensions:{_isLinkedToArray:"dimension",label:{valType:"string",editType:"calc",description:"The shown name of the dimension."},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array"],dflt:"trace",editType:"calc",description:["Specifies the ordering logic for the categories in the dimension.","By default, plotly uses *trace*, which specifies the order that is present in the data supplied.","Set `categoryorder` to *category ascending* or *category descending* if order should be determined by","the alphanumerical order of the category names.","Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category","is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to","the *trace* mode. The unspecified categories will follow the categories in `categoryarray`."].join(" ")},categoryarray:{valType:"data_array",editType:"calc",description:["Sets the order in which categories in this dimension appear.","Only has an effect if `categoryorder` is set to *array*.","Used with `categoryorder`."].join(" ")},ticktext:{valType:"data_array",editType:"calc",description:["Sets alternative tick labels for the categories in this dimension.","Only has an effect if `categoryorder` is set to *array*.","Should be an array the same length as `categoryarray`","Used with `categoryorder`."].join(" ")},values:{valType:"data_array",dflt:[],editType:"calc",description:["Dimension values. `values[n]` represents the category value of the `n`th point in the dataset,","therefore the `values` vector for all dimensions must be the same (longer vectors","will be truncated)."].join(" ")},displayindex:{valType:"integer",editType:"calc",description:["The display index of dimension, from left to right, zero indexed, defaults to dimension","index."].join(" ")},editType:"calc",description:"The dimensions (variables) of the parallel categories diagram.",visible:{valType:"boolean",dflt:!0,editType:"calc",description:"Shows the dimension when set to `true` (the default). Hides the dimension for `false`."}},line:c,counts:{valType:"number",min:0,dflt:1,arrayOk:!0,editType:"calc",description:["The number of observations represented by each state. Defaults to 1 so that each state represents","one observation"].join(" ")},customdata:void 0,hoverlabel:void 0,ids:void 0,legendgroup:void 0,legendrank:void 0,opacity:void 0,selectedpoints:void 0,showlegend:void 0}},64364:function(e,t,n){var a=n(13373).eV,r=n(79054),i="parcats";t.name=i,t.plot=function(e,t,n,o){var l=a(e.calcdata,i);if(l.length){var s=l[0];r(e,s,n,o)}},t.clean=function(e,t,n,a){var r=a._has&&a._has("parcats"),i=t._has&&t._has("parcats");r&&!i&&a._paperdiv.selectAll(".parcats").remove()}},5148:function(e,t,n){var a=n(84941).wrap,r=n(8757).hasColorscale,i=n(92171),o=n(693),l=n(41707),s=n(47401),c=n(83491);function d(e,t,n){e.valueInds.push(t),e.count+=n}function u(e,t,n){e.valueInds.push(t),e.count+=n}e.exports=function(e,t){var n=s.filterVisible(t.dimensions);if(0===n.length)return[];var p,f,h,v=n.map((function(e){var t;if("trace"===e.categoryorder)t=null;else if("array"===e.categoryorder)t=e.categoryarray;else{t=o(e.values);for(var n=!0,a=0;a<t.length;a++)if(!c(t[a])){n=!1;break}t.sort(n?s.sorterAsc:void 0),"category descending"===e.categoryorder&&(t=t.reverse())}return function(e,t){t=void 0===t||null===t?[]:t.map((function(e){return e}));var n={},a={},r=[];t.forEach((function(e,t){n[e]=0,a[e]=t}));for(var i=0;i<e.length;i++){var o,l=e[i];void 0===n[l]?(n[l]=1,o=t.push(l)-1,a[l]=o):(n[l]++,o=a[l]),r.push(o)}var s=t.map((function(e){return n[e]}));return{uniqueValues:t,uniqueCounts:s,inds:r}}(e.values,t)}));p=s.isArrayOrTypedArray(t.counts)?t.counts:[t.counts],function(e){var t,n=e.map((function(e){return e.displayindex}));if(function(e){for(var t=new Array(e.length),n=0;n<e.length;n++){if(e[n]<0||e[n]>=e.length)return!1;if(void 0!==t[e[n]])return!1;t[e[n]]=!0}return!0}(n))for(t=0;t<e.length;t++)e[t]._displayindex=e[t].displayindex;else for(t=0;t<e.length;t++)e[t]._displayindex=t}(n),n.forEach((function(e,t){!function(e,t){e._categoryarray=t.uniqueValues,null===e.ticktext||void 0===e.ticktext?e._ticktext=[]:e._ticktext=e.ticktext.slice();for(var n=e._ticktext.length;n<t.uniqueValues.length;n++)e._ticktext.push(t.uniqueValues[n])}(e,v[t])}));var m,g=t.line;function y(e){var t,n;return s.isArrayOrTypedArray(g.color)?n=t=g.color[e%g.color.length]:t=g.color,{color:m(t),rawColor:n}}g?(r(t,"line")&&i(e,t,{vals:t.line.color,containerStr:"line",cLetter:"c"}),m=l.tryColorscale(g)):m=s.identity;var x,b,w,k,T,I=n[0].values.length,A={},M=v.map((function(e){return e.inds}));for(h=0,x=0;x<I;x++){var _=[];for(b=0;b<M.length;b++)_.push(M[b][x]);f=p[x%p.length],h+=f;var C=y(x),D=_+"-"+C.rawColor;void 0===A[D]&&(A[D]=(w=_,k=C.color,T=C.rawColor,{categoryInds:w,color:k,rawColor:T,valueInds:[],count:0})),u(A[D],x,f)}var S,V=n.map((function(e,t){return function(e,t,n,a,r){return{dimensionInd:e,containerInd:t,displayInd:n,dimensionLabel:a,count:r,categories:[],dragX:null}}(t,e._index,e._displayindex,e.label,h)}));for(x=0;x<I;x++)for(f=p[x%p.length],b=0;b<V.length;b++){var L=V[b].containerInd,P=v[b].inds[x],O=V[b].categories;if(void 0===O[P]){var B=t.dimensions[L]._categoryarray[P],N=t.dimensions[L]._ticktext[P];O[P]={dimensionInd:b,categoryInd:S=P,categoryValue:B,displayInd:S,categoryLabel:N,valueInds:[],count:0,dragY:null}}d(O[P],x,f)}return a(function(e,t,n){var a=e.map((function(e){return e.categories.length})).reduce((function(e,t){return Math.max(e,t)}));return{dimensions:e,paths:t,trace:void 0,maxCats:a,count:n}}(V,A,h))}},10667:function(e,t,n){var a=n(47401),r=n(8757).hasColorscale,i=n(94060),o=n(16688).N,l=n(26800),s=n(68220),c=n(94029);function d(e,t){function n(n,r){return a.coerce(e,t,s.dimensions,n,r)}var r=n("values"),i=n("visible");if(r&&r.length||(i=t.visible=!1),i){n("label"),n("displayindex",t._index);var o,l=e.categoryarray,c=Array.isArray(l)&&l.length>0;c&&(o="array");var d=n("categoryorder",o);"array"===d?(n("categoryarray"),n("ticktext")):(delete e.categoryarray,delete e.ticktext),c||"array"!==d||(t.categoryorder="trace")}}e.exports=function(e,t,n,u){function p(n,r){return a.coerce(e,t,s,n,r)}var f=l(e,t,{name:"dimensions",handleItemDefaults:d}),h=function(e,t,n,o,l){l("line.shape"),l("line.hovertemplate");var s=l("line.color",o.colorway[0]);if(r(e,"line")&&a.isArrayOrTypedArray(s)){if(s.length)return l("line.colorscale"),i(e,t,o,l,{prefix:"line.",cLetter:"c"}),s.length;t.line.color=n}return 1/0}(e,t,n,u,p);o(t,u,p),Array.isArray(f)&&f.length||(t.visible=!1),c(t,f,"values",h),p("hoveron"),p("hovertemplate"),p("arrangement"),p("bundlecolors"),p("sortpaths"),p("counts");var v={family:u.font.family,size:Math.round(u.font.size),color:u.font.color};a.coerceFont(p,"labelfont",v);var m={family:u.font.family,size:Math.round(u.font.size/1.2),color:u.font.color};a.coerceFont(p,"tickfont",m)}},23121:function(e,t,n){e.exports={attributes:n(68220),supplyDefaults:n(10667),calc:n(5148),plot:n(79054),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:n(64364),categories:["noOpacity"],meta:{description:["Parallel categories diagram for multidimensional categorical data."].join(" ")}}},33859:function(e,t,n){var a=n(62258),r=n(87717).Dj,i=n(9772),o=n(21661),l=n(47401),s=l.strTranslate,c=n(41707),d=n(91771),u=n(43995);function p(e,t,n,r){var i=e.map(j.bind(0,t,n)),o=r.selectAll("g.parcatslayer").data([null]);o.enter().append("g").attr("class","parcatslayer").style("pointer-events","all");var d=o.selectAll("g.trace.parcats").data(i,f),p=d.enter().append("g").attr("class","trace parcats");d.attr("transform",(function(e){return s(e.x,e.y)})),p.append("g").attr("class","paths");var y=d.select("g.paths").selectAll("path.path").data((function(e){return e.paths}),f);y.attr("fill",(function(e){return e.model.color}));var x=y.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(e){return e.model.color})).attr("fill-opacity",0);w(x),y.attr("d",(function(e){return e.svgD})),x.empty()||y.sort(v),y.exit().remove(),y.on("mouseover",m).on("mouseout",g).on("click",b),p.append("g").attr("class","dimensions");var k=d.select("g.dimensions").selectAll("g.dimension").data((function(e){return e.dimensions}),f);k.enter().append("g").attr("class","dimension"),k.attr("transform",(function(e){return s(e.x,0)})),k.exit().remove();var A=k.selectAll("g.category").data((function(e){return e.categories}),f),M=A.enter().append("g").attr("class","category");A.attr("transform",(function(e){return s(0,e.y)})),M.append("rect").attr("class","catrect").attr("pointer-events","none"),A.select("rect.catrect").attr("fill","none").attr("width",(function(e){return e.width})).attr("height",(function(e){return e.height})),T(M);var _=A.selectAll("rect.bandrect").data((function(e){return e.bands}),f);_.each((function(){l.raiseToTop(this)})),_.attr("fill",(function(e){return e.color}));var C=_.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(e){return e.color})).attr("fill-opacity",0);_.attr("fill",(function(e){return e.color})).attr("width",(function(e){return e.width})).attr("height",(function(e){return e.height})).attr("y",(function(e){return e.y})).attr("cursor",(function(e){return"fixed"===e.parcatsViewModel.arrangement?"default":"perpendicular"===e.parcatsViewModel.arrangement?"ns-resize":"move"})),I(C),_.exit().remove(),M.append("text").attr("class","catlabel").attr("pointer-events","none");var O=t._fullLayout.paper_bgcolor;A.select("text.catlabel").attr("text-anchor",(function(e){return h(e)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",u.makeTextShadow(O)).style("fill","rgb(0, 0, 0)").attr("x",(function(e){return h(e)?e.width+5:-5})).attr("y",(function(e){return e.height/2})).text((function(e){return e.model.categoryLabel})).each((function(e){c.font(a.select(this),e.parcatsViewModel.categorylabelfont),u.convertToTspans(a.select(this),t)})),M.append("text").attr("class","dimlabel"),A.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(e){return"fixed"===e.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(e){return e.width/2})).attr("y",-5).text((function(e,t){return 0===t?e.parcatsViewModel.model.dimensions[e.model.dimensionInd].dimensionLabel:null})).each((function(e){c.font(a.select(this),e.parcatsViewModel.labelfont)})),A.selectAll("rect.bandrect").on("mouseover",D).on("mouseout",S),A.exit().remove(),k.call(a.behavior.drag().origin((function(e){return{x:e.x,y:0}})).on("dragstart",V).on("drag",L).on("dragend",P)),d.each((function(e){e.traceSelection=a.select(this),e.pathSelection=a.select(this).selectAll("g.paths").selectAll("path.path"),e.dimensionSelection=a.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),d.exit().remove()}function f(e){return e.key}function h(e){var t=e.parcatsViewModel.dimensions.length,n=e.parcatsViewModel.dimensions[t-1].model.dimensionInd;return e.model.dimensionInd===n}function v(e,t){return e.model.rawColor>t.model.rawColor?1:e.model.rawColor<t.model.rawColor?-1:0}function m(e){if(!e.parcatsViewModel.dragDimension&&-1===e.parcatsViewModel.hoverinfoItems.indexOf("skip")){l.raiseToTop(this),k(a.select(this));var t=y(e),n=x(e);if(e.parcatsViewModel.graphDiv.emit("plotly_hover",{points:t,event:a.event,constraints:n}),-1===e.parcatsViewModel.hoverinfoItems.indexOf("none")){var r,i,s,c=a.mouse(this)[0],u=e.parcatsViewModel.graphDiv,p=e.parcatsViewModel.trace,f=u._fullLayout,h=f._paperdiv.node().getBoundingClientRect(),v=e.parcatsViewModel.graphDiv.getBoundingClientRect();for(s=0;s<e.leftXs.length-1;s++)if(e.leftXs[s]+e.dimWidths[s]-2<=c&&c<=e.leftXs[s+1]+2){var m=e.parcatsViewModel.dimensions[s],g=e.parcatsViewModel.dimensions[s+1];r=(m.x+m.width+g.x)/2,i=(e.topYs[s]+e.topYs[s+1]+e.height)/2;break}var b=e.parcatsViewModel.x+r,w=e.parcatsViewModel.y+i,T=d.mostReadable(e.model.color,["black","white"]),I=e.model.count,A=I/e.parcatsViewModel.model.count,M={countLabel:I,probabilityLabel:A.toFixed(3)},_=[];-1!==e.parcatsViewModel.hoverinfoItems.indexOf("count")&&_.push(["Count:",M.countLabel].join(" ")),-1!==e.parcatsViewModel.hoverinfoItems.indexOf("probability")&&_.push(["P:",M.probabilityLabel].join(" "));var C=_.join("<br>"),D=a.mouse(u)[0];o.loneHover({trace:p,x:b-h.left+v.left,y:w-h.top+v.top,text:C,color:e.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:D<b?"right":"left",hovertemplate:(p.line||{}).hovertemplate,hovertemplateLabels:M,eventData:[{data:p._input,fullData:p,count:I,probability:A}]},{container:f._hoverlayer.node(),outerContainer:f._paper.node(),gd:u})}}}function g(e){if(!e.parcatsViewModel.dragDimension&&(w(a.select(this)),o.loneUnhover(e.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()),e.parcatsViewModel.pathSelection.sort(v),-1===e.parcatsViewModel.hoverinfoItems.indexOf("skip"))){var t=y(e),n=x(e);e.parcatsViewModel.graphDiv.emit("plotly_unhover",{points:t,event:a.event,constraints:n})}}function y(e){for(var t=[],n=O(e.parcatsViewModel),a=0;a<e.model.valueInds.length;a++){var r=e.model.valueInds[a];t.push({curveNumber:n,pointNumber:r})}return t}function x(e){for(var t={},n=e.parcatsViewModel.model.dimensions,a=0;a<n.length;a++){var r=n[a],i=r.categories[e.model.categoryInds[a]];t[r.containerInd]=i.categoryValue}return void 0!==e.model.rawColor&&(t.color=e.model.rawColor),t}function b(e){if(-1===e.parcatsViewModel.hoverinfoItems.indexOf("skip")){var t=y(e),n=x(e);e.parcatsViewModel.graphDiv.emit("plotly_click",{points:t,event:a.event,constraints:n})}}function w(e){e.attr("fill",(function(e){return e.model.color})).attr("fill-opacity",.6).attr("stroke","lightgray").attr("stroke-width",.2).attr("stroke-opacity",1)}function k(e){e.attr("fill-opacity",.8).attr("stroke",(function(e){return d.mostReadable(e.model.color,["black","white"])})).attr("stroke-width",.3)}function T(e){e.select("rect.catrect").attr("stroke","black").attr("stroke-width",1).attr("stroke-opacity",1)}function I(e){e.attr("stroke","black").attr("stroke-width",.2).attr("stroke-opacity",1).attr("fill-opacity",1)}function A(e){var t=e.parcatsViewModel.pathSelection,n=e.categoryViewModel.model.dimensionInd,a=e.categoryViewModel.model.categoryInd;return t.filter((function(t){return t.model.categoryInds[n]===a&&t.model.color===e.color}))}function M(e,t,n){var r=a.select(e).datum(),i=r.categoryViewModel.model,o=r.parcatsViewModel.graphDiv,l=a.select(e.parentNode).selectAll("rect.bandrect"),s=[];l.each((function(e){A(e).each((function(e){Array.prototype.push.apply(s,y(e))}))}));var c={};c[i.dimensionInd]=i.categoryValue,o.emit(t,{points:s,event:n,constraints:c})}function _(e,t,n){var r=a.select(e).datum(),i=r.categoryViewModel.model,o=r.parcatsViewModel.graphDiv,l=A(r),s=[];l.each((function(e){Array.prototype.push.apply(s,y(e))}));var c={};c[i.dimensionInd]=i.categoryValue,void 0!==r.rawColor&&(c.color=r.rawColor),o.emit(t,{points:s,event:n,constraints:c})}function C(e,t,n){e._fullLayout._calcInverseTransform(e);var r,i,o=e._fullLayout._invScaleX,l=e._fullLayout._invScaleY,s=a.select(n.parentNode).select("rect.catrect"),c=s.node().getBoundingClientRect(),d=s.datum(),u=d.parcatsViewModel,p=u.model.dimensions[d.model.dimensionInd],f=u.trace,h=c.top+c.height/2;u.dimensions.length>1&&p.displayInd===u.dimensions.length-1?(r=c.left,i="left"):(r=c.left+c.width,i="right");var v=d.model.count,m=d.model.categoryLabel,g=v/d.parcatsViewModel.model.count,y={countLabel:v,categoryLabel:m,probabilityLabel:g.toFixed(3)},x=[];-1!==d.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",y.countLabel].join(" ")),-1!==d.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+y.categoryLabel+"):",y.probabilityLabel].join(" "));var b=x.join("<br>");return{trace:f,x:o*(r-t.left),y:l*(h-t.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:i,hovertemplate:f.hovertemplate,hovertemplateLabels:y,eventData:[{data:f._input,fullData:f,count:v,category:m,probability:g}]}}function D(e){if(!e.parcatsViewModel.dragDimension&&-1===e.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(a.mouse(this)[1]<-1)return;var t,n=e.parcatsViewModel.graphDiv,r=n._fullLayout,i=r._paperdiv.node().getBoundingClientRect(),s=e.parcatsViewModel.hoveron,c=this;if("color"===s?(!function(e){var t=a.select(e).datum(),n=A(t);k(n),n.each((function(){l.raiseToTop(this)})),a.select(e.parentNode).selectAll("rect.bandrect").filter((function(e){return e.color===t.color})).each((function(){l.raiseToTop(this),a.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(c),_(c,"plotly_hover",a.event)):(!function(e){a.select(e.parentNode).selectAll("rect.bandrect").each((function(e){var t=A(e);k(t),t.each((function(){l.raiseToTop(this)}))})),a.select(e.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(c),M(c,"plotly_hover",a.event)),-1===e.parcatsViewModel.hoverinfoItems.indexOf("none"))"category"===s?t=C(n,i,c):"color"===s?t=function(e,t,n){e._fullLayout._calcInverseTransform(e);var r,i,o=e._fullLayout._invScaleX,l=e._fullLayout._invScaleY,s=n.getBoundingClientRect(),c=a.select(n).datum(),u=c.categoryViewModel,p=u.parcatsViewModel,f=p.model.dimensions[u.model.dimensionInd],h=p.trace,v=s.y+s.height/2;p.dimensions.length>1&&f.displayInd===p.dimensions.length-1?(r=s.left,i="left"):(r=s.left+s.width,i="right");var m=u.model.categoryLabel,g=c.parcatsViewModel.model.count,y=0;c.categoryViewModel.bands.forEach((function(e){e.color===c.color&&(y+=e.count)}));var x=u.model.count,b=0;p.pathSelection.each((function(e){e.model.color===c.color&&(b+=e.model.count)}));var w=y/g,k=y/b,T=y/x,I={countLabel:g,categoryLabel:m,probabilityLabel:w.toFixed(3)},A=[];-1!==u.parcatsViewModel.hoverinfoItems.indexOf("count")&&A.push(["Count:",I.countLabel].join(" ")),-1!==u.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(A.push("P(color \u2229 "+m+"): "+I.probabilityLabel),A.push("P("+m+" | color): "+k.toFixed(3)),A.push("P(color | "+m+"): "+T.toFixed(3)));var M=A.join("<br>"),_=d.mostReadable(c.color,["black","white"]);return{trace:h,x:o*(r-t.left),y:l*(v-t.top),text:M,color:c.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:_,fontSize:10,idealAlign:i,hovertemplate:h.hovertemplate,hovertemplateLabels:I,eventData:[{data:h._input,fullData:h,category:m,count:g,probability:w,categorycount:x,colorcount:b,bandcolorcount:y}]}}(n,i,c):"dimension"===s&&(t=function(e,t,n){var r=[];return a.select(n.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){r.push(C(e,t,this))})),r}(n,i,c)),t&&o.loneHover(t,{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:n})}}function S(e){var t=e.parcatsViewModel;if(!t.dragDimension&&(w(t.pathSelection),T(t.dimensionSelection.selectAll("g.category")),I(t.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),o.loneUnhover(t.graphDiv._fullLayout._hoverlayer.node()),t.pathSelection.sort(v),-1===t.hoverinfoItems.indexOf("skip"))){"color"===e.parcatsViewModel.hoveron?_(this,"plotly_unhover",a.event):M(this,"plotly_unhover",a.event)}}function V(e){"fixed"!==e.parcatsViewModel.arrangement&&(e.dragDimensionDisplayInd=e.model.displayInd,e.initialDragDimensionDisplayInds=e.parcatsViewModel.model.dimensions.map((function(e){return e.displayInd})),e.dragHasMoved=!1,e.dragCategoryDisplayInd=null,a.select(this).selectAll("g.category").select("rect.catrect").each((function(t){var n=a.mouse(this)[0],r=a.mouse(this)[1];-2<=n&&n<=t.width+2&&-2<=r&&r<=t.height+2&&(e.dragCategoryDisplayInd=t.model.displayInd,e.initialDragCategoryDisplayInds=e.model.categories.map((function(e){return e.displayInd})),t.model.dragY=t.y,l.raiseToTop(this.parentNode),a.select(this.parentNode).selectAll("rect.bandrect").each((function(t){t.y<r&&r<=t.y+t.height&&(e.potentialClickBand=this)})))})),e.parcatsViewModel.dragDimension=e,o.loneUnhover(e.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()))}function L(e){if("fixed"!==e.parcatsViewModel.arrangement&&(e.dragHasMoved=!0,null!==e.dragDimensionDisplayInd)){var t=e.dragDimensionDisplayInd,n=t-1,r=t+1,i=e.parcatsViewModel.dimensions[t];if(null!==e.dragCategoryDisplayInd){var o=i.categories[e.dragCategoryDisplayInd];o.model.dragY+=a.event.dy;var l=o.model.dragY,s=o.model.displayInd,c=i.categories,d=c[s-1],u=c[s+1];void 0!==d&&l<d.y+d.height/2&&(o.model.displayInd=d.model.displayInd,d.model.displayInd=s),void 0!==u&&l+o.height>u.y+u.height/2&&(o.model.displayInd=u.model.displayInd,u.model.displayInd=s),e.dragCategoryDisplayInd=o.model.displayInd}if(null===e.dragCategoryDisplayInd||"freeform"===e.parcatsViewModel.arrangement){i.model.dragX=a.event.x;var p=e.parcatsViewModel.dimensions[n],f=e.parcatsViewModel.dimensions[r];void 0!==p&&i.model.dragX<p.x+p.width&&(i.model.displayInd=p.model.displayInd,p.model.displayInd=t),void 0!==f&&i.model.dragX+i.width>f.x&&(i.model.displayInd=f.model.displayInd,f.model.displayInd=e.dragDimensionDisplayInd),e.dragDimensionDisplayInd=i.model.displayInd}F(e.parcatsViewModel),R(e.parcatsViewModel),N(e.parcatsViewModel),B(e.parcatsViewModel)}}function P(e){if("fixed"!==e.parcatsViewModel.arrangement&&null!==e.dragDimensionDisplayInd){a.select(this).selectAll("text").attr("font-weight","normal");var t={},n=O(e.parcatsViewModel),r=e.parcatsViewModel.model.dimensions.map((function(e){return e.displayInd})),o=e.initialDragDimensionDisplayInds.some((function(e,t){return e!==r[t]}));o&&r.forEach((function(n,a){var r=e.parcatsViewModel.model.dimensions[a].containerInd;t["dimensions["+r+"].displayindex"]=n}));var l=!1;if(null!==e.dragCategoryDisplayInd){var s=e.model.categories.map((function(e){return e.displayInd}));if(l=e.initialDragCategoryDisplayInds.some((function(e,t){return e!==s[t]}))){var c=e.model.categories.slice().sort((function(e,t){return e.displayInd-t.displayInd})),d=c.map((function(e){return e.categoryValue})),u=c.map((function(e){return e.categoryLabel}));t["dimensions["+e.model.containerInd+"].categoryarray"]=[d],t["dimensions["+e.model.containerInd+"].ticktext"]=[u],t["dimensions["+e.model.containerInd+"].categoryorder"]="array"}}if(-1===e.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!e.dragHasMoved&&e.potentialClickBand&&("color"===e.parcatsViewModel.hoveron?_(e.potentialClickBand,"plotly_click",a.event.sourceEvent):M(e.potentialClickBand,"plotly_click",a.event.sourceEvent)),e.model.dragX=null,null!==e.dragCategoryDisplayInd)e.parcatsViewModel.dimensions[e.dragDimensionDisplayInd].categories[e.dragCategoryDisplayInd].model.dragY=null,e.dragCategoryDisplayInd=null;e.dragDimensionDisplayInd=null,e.parcatsViewModel.dragDimension=null,e.dragHasMoved=null,e.potentialClickBand=null,F(e.parcatsViewModel),R(e.parcatsViewModel),a.transition().duration(300).ease("cubic-in-out").each((function(){N(e.parcatsViewModel,!0),B(e.parcatsViewModel,!0)})).each("end",(function(){(o||l)&&i.restyle(e.parcatsViewModel.graphDiv,t,[n])}))}}function O(e){for(var t,n=e.graphDiv._fullData,a=0;a<n.length;a++)if(e.key===n[a].uid){t=a;break}return t}function B(e,t){var n;void 0===t&&(t=!1),e.pathSelection.data((function(e){return e.paths}),f),(n=e.pathSelection,t?n.transition():n).attr("d",(function(e){return e.svgD}))}function N(e,t){function n(e){return t?e.transition():e}void 0===t&&(t=!1),e.dimensionSelection.data((function(e){return e.dimensions}),f);var r=e.dimensionSelection.selectAll("g.category").data((function(e){return e.categories}),f);n(e.dimensionSelection).attr("transform",(function(e){return s(e.x,0)})),n(r).attr("transform",(function(e){return s(0,e.y)})),r.select(".dimlabel").text((function(e,t){return 0===t?e.parcatsViewModel.model.dimensions[e.model.dimensionInd].dimensionLabel:null})),r.select(".catlabel").attr("text-anchor",(function(e){return h(e)?"start":"end"})).attr("x",(function(e){return h(e)?e.width+5:-5})).each((function(e){var t,n;h(e)?(t=e.width+5,n="start"):(t=-5,n="end"),a.select(this).selectAll("tspan").attr("x",t).attr("text-anchor",n)}));var i=r.selectAll("rect.bandrect").data((function(e){return e.bands}),f),o=i.enter().append("rect").attr("class","bandrect").attr("cursor","move").attr("stroke-opacity",0).attr("fill",(function(e){return e.color})).attr("fill-opacity",0);i.attr("fill",(function(e){return e.color})).attr("width",(function(e){return e.width})).attr("height",(function(e){return e.height})).attr("y",(function(e){return e.y})),I(o),i.each((function(){l.raiseToTop(this)})),i.exit().remove()}function j(e,t,n){var a,r=n[0],i=t.margin||{l:80,r:80,t:100,b:80},o=r.trace,l=o.domain,s=t.width,c=t.height,d=Math.floor(s*(l.x[1]-l.x[0])),u=Math.floor(c*(l.y[1]-l.y[0])),p=l.x[0]*s+i.l,f=t.height-l.y[1]*t.height+i.t,h=o.line.shape;a="all"===o.hoverinfo?["count","probability"]:(o.hoverinfo||"").split("+");var v={trace:o,key:o.uid,model:r,x:p,y:f,width:d,height:u,hoveron:o.hoveron,hoverinfoItems:a,arrangement:o.arrangement,bundlecolors:o.bundlecolors,sortpaths:o.sortpaths,labelfont:o.labelfont,categorylabelfont:o.tickfont,pathShape:h,dragDimension:null,margin:i,paths:[],dimensions:[],graphDiv:e,traceSelection:null,pathSelection:null,dimensionSelection:null};return r.dimensions&&(F(v),R(v)),v}function E(e,t,n,a,i){var o,l,s=[],c=[];for(l=0;l<n.length-1;l++)o=r(n[l]+e[l],e[l+1]),s.push(o(i)),c.push(o(1-i));var d="M "+e[0]+","+t[0];for(d+="l"+n[0]+",0 ",l=1;l<n.length;l++)d+="C"+s[l-1]+","+t[l-1]+" "+c[l-1]+","+t[l]+" "+e[l]+","+t[l],d+="l"+n[l]+",0 ";for(d+="l0,"+a+" ",d+="l -"+n[n.length-1]+",0 ",l=n.length-2;l>=0;l--)d+="C"+c[l]+","+(t[l+1]+a)+" "+s[l]+","+(t[l]+a)+" "+(e[l]+n[l])+","+(t[l]+a),d+="l-"+n[l]+",0 ";return d+="Z"}function R(e){var t=e.dimensions,n=e.model,a=t.map((function(e){return e.categories.map((function(e){return e.y}))})),r=e.model.dimensions.map((function(e){return e.categories.map((function(e){return e.displayInd}))})),i=e.model.dimensions.map((function(e){return e.displayInd})),o=e.dimensions.map((function(e){return e.model.dimensionInd})),l=t.map((function(e){return e.x})),s=t.map((function(e){return e.width})),c=[];for(var d in n.paths)n.paths.hasOwnProperty(d)&&c.push(n.paths[d]);function u(e){var t=e.categoryInds.map((function(e,t){return r[t][e]}));return o.map((function(e){return t[e]}))}c.sort((function(t,n){var a=u(t),r=u(n);return"backward"===e.sortpaths&&(a.reverse(),r.reverse()),a.push(t.valueInds[0]),r.push(n.valueInds[0]),e.bundlecolors&&(a.unshift(t.rawColor),r.unshift(n.rawColor)),a<r?-1:a>r?1:0}));for(var p=new Array(c.length),f=t[0].model.count,h=t[0].categories.map((function(e){return e.height})).reduce((function(e,t){return e+t})),v=0;v<c.length;v++){var m,g=c[v];m=f>0?h*(g.count/f):0;for(var y,x=new Array(a.length),b=0;b<g.categoryInds.length;b++){var w=g.categoryInds[b],k=r[b][w],T=i[b];x[T]=a[T][k],a[T][k]+=m;var I=e.dimensions[T].categories[k],A=I.bands.length,M=I.bands[A-1];if(void 0===M||g.rawColor!==M.rawColor){var _=void 0===M?0:M.y+M.height;I.bands.push({key:_,color:g.color,rawColor:g.rawColor,height:m,width:I.width,count:g.count,y:_,categoryViewModel:I,parcatsViewModel:e})}else{var C=I.bands[A-1];C.height+=m,C.count+=g.count}}y="hspline"===e.pathShape?E(l,x,s,m,.5):E(l,x,s,m,0),p[v]={key:g.valueInds[0],model:g,height:m,leftXs:l,topYs:x,dimWidths:s,svgD:y,parcatsViewModel:e}}e.paths=p}function F(e){var t=e.model.dimensions.map((function(e){return{displayInd:e.displayInd,dimensionInd:e.dimensionInd}}));t.sort((function(e,t){return e.displayInd-t.displayInd}));var n=[];for(var a in t){var r=t[a].dimensionInd,i=e.model.dimensions[r];n.push(X(e,i))}e.dimensions=n}function X(e,t){var n,a=e.model.dimensions.length,r=t.displayInd;n=40+(a>1?(e.width-80-16)/(a-1):0)*r;var i,o,l,s,c,d=[],u=e.model.maxCats,p=t.categories.length,f=t.count,h=e.height-8*(u-1),v=8*(u-p)/2,m=t.categories.map((function(e){return{displayInd:e.displayInd,categoryInd:e.categoryInd}}));for(m.sort((function(e,t){return e.displayInd-t.displayInd})),c=0;c<p;c++)s=m[c].categoryInd,o=t.categories[s],i=f>0?o.count/f*h:0,l={key:o.valueInds[0],model:o,width:16,height:i,y:null!==o.dragY?o.dragY:v,bands:[],parcatsViewModel:e},v=v+i+8,d.push(l);return{key:t.dimensionInd,x:null!==t.dragX?t.dragX:n,y:0,width:16,model:t,categories:d,parcatsViewModel:e,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(e,t,n,a){p(n,e,a,t)}},79054:function(e,t,n){var a=n(33859);e.exports=function(e,t,n,r){var i=e._fullLayout,o=i._paper,l=i._size;a(e,o,t,{width:l.w,height:l.h,margin:{t:l.t,r:l.r,b:l.b,l:l.l}},n,r)}},60013:function(e,t,n){var a=n(97451),r=n(33333),i=n(5153),o=n(16688).u,l=n(87241).extendFlat,s=n(92704).templatedArray;e.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot",description:["Sets the angle of the labels with respect to the horizontal.","For example, a `tickangle` of -90 draws the labels vertically.","Tilted labels with *labelangle* may be positioned better","inside margins when `labelposition` is set to *bottom*."].join(" ")},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot",description:["Specifies the location of the `label`.","*top* positions labels above, next to the title","*bottom* positions labels below the graph","Tilted labels with *labelangle* may be positioned better","inside margins when `labelposition` is set to *bottom*."].join(" ")},labelfont:i({editType:"plot",description:"Sets the font for the `dimension` labels."}),tickfont:i({editType:"plot",description:"Sets the font for the `dimension` tick values."}),rangefont:i({editType:"plot",description:"Sets the font for the `dimension` range values."}),dimensions:s("dimension",{label:{valType:"string",editType:"plot",description:"The shown name of the dimension."},tickvals:l({},r.tickvals,{editType:"plot",description:["Sets the values at which ticks on this axis appear."].join(" ")}),ticktext:l({},r.ticktext,{editType:"plot",description:["Sets the text displayed at the ticks position via `tickvals`."].join(" ")}),tickformat:l({},r.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot",description:"Shows the dimension when set to `true` (the default). Hides the dimension for `false`."},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot",description:["The domain range that represents the full, shown axis extent. Defaults to the `values` extent.","Must be an array of `[fromValue, toValue]` with finite numbers as elements."].join(" ")},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot",description:["The domain range to which the filter on the dimension is constrained. Must be an array","of `[fromValue, toValue]` with `fromValue <= toValue`, or if `multiselect` is not","disabled, you may give an array of arrays, where each inner array is `[fromValue, toValue]`."].join(" ")},multiselect:{valType:"boolean",dflt:!0,editType:"plot",description:"Do we allow multiple selection ranges or just a single range?"},values:{valType:"data_array",editType:"calc",description:["Dimension values. `values[n]` represents the value of the `n`th point in the dataset,","therefore the `values` vector for all dimensions must be the same (longer vectors","will be truncated). Each value must be a finite number."].join(" ")},editType:"calc",description:"The dimensions (variables) of the parallel coordinates chart. 2..60 dimensions are supported."}),line:l({editType:"calc"},a("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"}))}},36381:function(e,t,n){var a=n(41479),r=n(62258),i=n(84941).keyFun,o=n(84941).repeat,l=n(47401).sorterAsc,s=n(47401).strTranslate,c=a.bar.snapRatio;function d(e,t){return e*(1-c)+t*c}var u=a.bar.snapClose;function p(e,t){return e*(1-u)+t*u}function f(e,t,n,a){if(function(e,t){for(var n=0;n<t.length;n++)if(e>=t[n][0]&&e<=t[n][1])return!0;return!1}(n,a))return n;var r=e?-1:1,i=0,o=t.length-1;if(r<0){var l=i;i=o,o=l}for(var s=t[i],c=s,u=i;r*u<r*o;u+=r){var f=u+r,h=t[f];if(r*n<r*p(s,h))return d(s,c);if(r*n<r*h||f===o)return d(h,s);c=s,s=h}}function h(e){e.attr("x",-a.bar.captureWidth/2).attr("width",a.bar.captureWidth)}function v(e){e.attr("visibility","visible").style("visibility","visible").attr("fill","yellow").attr("opacity",0)}function m(e){if(!e.brush.filterSpecified)return"0,"+e.height;for(var t,n,a,r=g(e.brush.filter.getConsolidated(),e.height),i=[0],o=r.length?r[0][0]:null,l=0;l<r.length;l++)n=(t=r[l])[1]-t[0],i.push(o),i.push(n),(a=l+1)<r.length&&(o=r[a][0]-t[1]);return i.push(e.height),i}function g(e,t){return e.map((function(e){return e.map((function(e){return Math.max(0,e*t)})).sort(l)}))}function y(){r.select(document.body).style("cursor",null)}function x(e){e.attr("stroke-dasharray",m)}function b(e,t){var n=r.select(e).selectAll(".highlight, .highlight-shadow");x(t?n.transition().duration(a.bar.snapDuration).each("end",t):n)}function w(e,t){var n,r=e.brush,i=NaN,o={};if(r.filterSpecified){var l=e.height,s=r.filter.getConsolidated(),c=g(s,l),d=NaN,u=NaN,p=NaN;for(n=0;n<=c.length;n++){var f=c[n];if(f&&f[0]<=t&&t<=f[1]){d=n;break}if(u=n?n-1:NaN,f&&f[0]>t){p=n;break}}if(i=d,isNaN(i)&&(i=isNaN(u)||isNaN(p)?isNaN(u)?p:u:t-c[u][1]<c[p][0]-t?u:p),!isNaN(i)){var h=c[i],v=function(e,t){var n=a.bar.handleHeight;if(!(t>e[1]+n||t<e[0]-n))return t>=.9*e[1]+.1*e[0]?"n":t<=.9*e[0]+.1*e[1]?"s":"ns"}(h,t);v&&(o.interval=s[i],o.intervalPix=h,o.region=v)}}if(e.ordinal&&!o.region){var m=e.unitTickvals,y=e.unitToPaddedPx.invert(t);for(n=0;n<m.length;n++){var x=[.25*m[Math.max(n-1,0)]+.75*m[n],.25*m[Math.min(n+1,m.length-1)]+.75*m[n]];if(y>=x[0]&&y<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function k(e,t){r.event.sourceEvent.stopPropagation();var n=t.height-r.mouse(e)[1]-2*a.verticalPadding,i=t.brush.svgBrush;i.wasDragged=!0,i._dragging=!0,i.grabbingBar?i.newExtent=[n-i.grabPoint,n+i.barLength-i.grabPoint].map(t.unitToPaddedPx.invert):i.newExtent=[i.startExtent,t.unitToPaddedPx.invert(n)].sort(l),t.brush.filterSpecified=!0,i.extent=i.stayingIntervals.concat([i.newExtent]),i.brushCallback(t),b(e.parentNode)}function T(e,t){var n=w(t,t.height-r.mouse(e)[1]-2*a.verticalPadding),i="crosshair";n.clickableOrdinalRange?i="pointer":n.region&&(i=n.region+"-resize"),r.select(document.body).style("cursor",i)}function I(e){e.on("mousemove",(function(e){r.event.preventDefault(),e.parent.inBrushDrag||T(this,e)})).on("mouseleave",(function(e){e.parent.inBrushDrag||y()})).call(r.behavior.drag().on("dragstart",(function(e){!function(e,t){r.event.sourceEvent.stopPropagation();var n=t.height-r.mouse(e)[1]-2*a.verticalPadding,i=t.unitToPaddedPx.invert(n),o=t.brush,l=w(t,n),s=l.interval,c=o.svgBrush;if(c.wasDragged=!1,c.grabbingBar="ns"===l.region,c.grabbingBar){var d=s.map(t.unitToPaddedPx);c.grabPoint=n-d[0]-a.verticalPadding,c.barLength=d[1]-d[0]}c.clickableOrdinalRange=l.clickableOrdinalRange,c.stayingIntervals=t.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],s&&(c.stayingIntervals=c.stayingIntervals.filter((function(e){return e[0]!==s[0]&&e[1]!==s[1]}))),c.startExtent=l.region?s["s"===l.region?1:0]:i,t.parent.inBrushDrag=!0,c.brushStartCallback()}(this,e)})).on("drag",(function(e){k(this,e)})).on("dragend",(function(e){!function(e,t){var n=t.brush,a=n.filter,i=n.svgBrush;i._dragging||(T(e,t),k(e,t),t.brush.svgBrush.wasDragged=!1),i._dragging=!1,r.event.sourceEvent.stopPropagation();var o=i.grabbingBar;if(i.grabbingBar=!1,i.grabLocation=void 0,t.parent.inBrushDrag=!1,y(),!i.wasDragged)return i.wasDragged=void 0,i.clickableOrdinalRange?n.filterSpecified&&t.multiselect?i.extent.push(i.clickableOrdinalRange):(i.extent=[i.clickableOrdinalRange],n.filterSpecified=!0):o?(i.extent=i.stayingIntervals,0===i.extent.length&&M(n)):M(n),i.brushCallback(t),b(e.parentNode),void i.brushEndCallback(n.filterSpecified?a.getConsolidated():[]);var l=function(){a.set(a.getConsolidated())};if(t.ordinal){var s=t.unitTickvals;s[s.length-1]<s[0]&&s.reverse(),i.newExtent=[f(0,s,i.newExtent[0],i.stayingIntervals),f(1,s,i.newExtent[1],i.stayingIntervals)];var c=i.newExtent[1]>i.newExtent[0];i.extent=i.stayingIntervals.concat(c?[i.newExtent]:[]),i.extent.length||M(n),i.brushCallback(t),c?b(e.parentNode,l):(l(),b(e.parentNode))}else l();i.brushEndCallback(n.filterSpecified?a.getConsolidated():[])}(this,e)})))}function A(e,t){return e[0]-t[0]}function M(e){e.filterSpecified=!1,e.svgBrush.extent=[[-1/0,1/0]]}function _(e){for(var t,n=e.slice(),a=[],r=n.shift();r;){for(t=r.slice();(r=n.shift())&&r[0]<=t[1];)t[1]=Math.max(t[1],r[1]);a.push(t)}return 1===a.length&&a[0][0]>a[0][1]&&(a=[]),a}e.exports={makeBrush:function(e,t,n,a,r,i){var o,s=function(){var e,t,n=[];return{set:function(a){1===(n=a.map((function(e){return e.slice().sort(l)})).sort(A)).length&&n[0][0]===-1/0&&n[0][1]===1/0&&(n=[[0,-1]]),e=_(n),t=n.reduce((function(e,t){return[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}),[1/0,-1/0])},get:function(){return n.slice()},getConsolidated:function(){return e},getBounds:function(){return t}}}();return s.set(n),{filter:s,filterSpecified:t,svgBrush:{extent:[],brushStartCallback:a,brushCallback:(o=r,function(e){var t=e.brush,n=function(e){return e.svgBrush.extent.map((function(e){return e.slice()}))}(t),a=n.slice();t.filter.set(a),o()}),brushEndCallback:i}}},ensureAxisBrush:function(e,t){var n=e.selectAll("."+a.cn.axisBrush).data(o,i);n.enter().append("g").classed(a.cn.axisBrush,!0),function(e,t){var n=e.selectAll(".background").data(o);n.enter().append("rect").classed("background",!0).call(h).call(v).style("pointer-events","auto").attr("transform",s(0,a.verticalPadding)),n.call(I).attr("height",(function(e){return e.height-a.verticalPadding}));var r=e.selectAll(".highlight-shadow").data(o);r.enter().append("line").classed("highlight-shadow",!0).attr("x",-a.bar.width/2).attr("stroke-width",a.bar.width+a.bar.strokeWidth).attr("stroke",t).attr("opacity",a.bar.strokeOpacity).attr("stroke-linecap","butt"),r.attr("y1",(function(e){return e.height})).call(x);var i=e.selectAll(".highlight").data(o);i.enter().append("line").classed("highlight",!0).attr("x",-a.bar.width/2).attr("stroke-width",a.bar.width-a.bar.strokeWidth).attr("stroke",a.bar.fillColor).attr("opacity",a.bar.fillOpacity).attr("stroke-linecap","butt"),i.attr("y1",(function(e){return e.height})).call(x)}(n,t)},cleanRanges:function(e,t){if(Array.isArray(e[0])?(e=e.map((function(e){return e.sort(l)})),e=t.multiselect?_(e.sort(A)):[e[0]]):e=[e.sort(l)],t.tickvals){var n=t.tickvals.slice().sort(l);if(!(e=e.map((function(e){var t=[f(0,n,e[0],[]),f(1,n,e[1],[])];if(t[1]>t[0])return t})).filter((function(e){return e}))).length)return}return e.length>1?e:e[0]}}},85271:function(e,t,n){var a=n(62258),r=n(13373).eV,i=n(95703),o=n(6412);t.name="parcoords",t.plot=function(e){var t=r(e.calcdata,"parcoords")[0];t.length&&i(e,t)},t.clean=function(e,t,n,a){var r=a._has&&a._has("parcoords"),i=t._has&&t._has("parcoords");r&&!i&&(a._paperdiv.selectAll(".parcoords").remove(),a._glimages.selectAll("*").remove())},t.toSVG=function(e){var t=e._fullLayout._glimages,n=a.select(e).selectAll(".svg-container");n.filter((function(e,t){return t===n.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var e=this,n=e.toDataURL("image/png");t.append("svg:image").attr({xmlns:o.svg,"xlink:href":n,preserveAspectRatio:"none",x:0,y:0,width:e.style.width,height:e.style.height})})),window.setTimeout((function(){a.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},15521:function(e,t,n){var a=n(47401).isArrayOrTypedArray,r=n(47624),i=n(84941).wrap;e.exports=function(e,t){var n,o;return r.hasColorscale(t,"line")&&a(t.line.color)?(n=t.line.color,o=r.extractOpts(t.line).colorscale,r.calc(e,t,{vals:n,containerStr:"line",cLetter:"c"})):(n=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=.5;return t}(t._length),o=[[0,t.line.color],[1,t.line.color]]),i({lineColor:n,cscale:o})}},41479:function(e){e.exports={maxDimensionCount:60,overdrag:45,verticalPadding:2,tickDistance:50,canvasPixelRatio:1,blockLineCount:5e3,layers:["contextLineLayer","focusLineLayer","pickLineLayer"],axisTitleOffset:28,axisExtentOffset:10,deselectedLineColor:"#777",bar:{width:4,captureWidth:10,fillColor:"magenta",fillOpacity:1,snapDuration:150,snapRatio:.25,snapClose:.01,strokeOpacity:1,strokeWidth:1,handleHeight:8,handleOpacity:1,handleOverlap:0},cn:{axisExtentText:"axis-extent-text",parcoordsLineLayers:"parcoords-line-layers",parcoordsLineLayer:"parcoords-lines",parcoords:"parcoords",parcoordsControlView:"parcoords-control-view",yAxis:"y-axis",axisOverlays:"axis-overlays",axis:"axis",axisHeading:"axis-heading",axisTitle:"axis-title",axisExtent:"axis-extent",axisExtentTop:"axis-extent-top",axisExtentTopText:"axis-extent-top-text",axisExtentBottom:"axis-extent-bottom",axisExtentBottomText:"axis-extent-bottom-text",axisBrush:"axis-brush"},id:{filterBarPattern:"filter-bar-pattern"}}},65210:function(e,t,n){var a=n(47401),r=n(8757).hasColorscale,i=n(94060),o=n(16688).N,l=n(26800),s=n(37762),c=n(60013),d=n(36381),u=n(41479).maxDimensionCount,p=n(94029);function f(e,t,n,r){function i(n,r){return a.coerce(e,t,c.dimensions,n,r)}var o=i("values"),l=i("visible");if(o&&o.length||(l=t.visible=!1),l){i("label"),i("tickvals"),i("ticktext"),i("tickformat");var u=i("range");t._ax={_id:"y",type:"linear",showexponent:"all",exponentformat:"B",range:u},s.setConvert(t._ax,r.layout),i("multiselect");var p=i("constraintrange");p&&(t.constraintrange=d.cleanRanges(p,t))}}e.exports=function(e,t,n,s){function d(n,r){return a.coerce(e,t,c,n,r)}var h=e.dimensions;Array.isArray(h)&&h.length>u&&(a.log("parcoords traces support up to "+u+" dimensions at the moment"),h.splice(u));var v=l(e,t,{name:"dimensions",layout:s,handleItemDefaults:f}),m=function(e,t,n,o,l){var s=l("line.color",n);if(r(e,"line")&&a.isArrayOrTypedArray(s)){if(s.length)return l("line.colorscale"),i(e,t,o,l,{prefix:"line.",cLetter:"c"}),s.length;t.line.color=n}return 1/0}(e,t,n,s,d);o(t,s,d),Array.isArray(v)&&v.length||(t.visible=!1),p(t,v,"values",m);var g={family:s.font.family,size:Math.round(s.font.size/1.2),color:s.font.color};a.coerceFont(d,"labelfont",g),a.coerceFont(d,"tickfont",g),a.coerceFont(d,"rangefont",g),d("labelangle"),d("labelside")}},17543:function(e,t,n){var a=n(47401).isTypedArray;t.convertTypedArray=function(e){return a(e)?Array.prototype.slice.call(e):e},t.isOrdinal=function(e){return!!e.tickvals},t.isVisible=function(e){return e.visible||!("visible"in e)}},23510:function(e,t,n){e.exports={attributes:n(60013),supplyDefaults:n(65210),calc:n(15521),plot:n(95703),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:n(85271),categories:["gl","regl","noOpacity","noHover"],meta:{description:["Parallel coordinates for multidimensional exploratory data analysis.","The samples are specified in `dimensions`.","The colors are set in `line.color`."].join(" ")}}},87773:function(e,t,n){var a=n(14955),r=a("./shaders/vertex.glsl"),i=a("./shaders/fragment.glsl"),o=n(41479).maxDimensionCount,l=n(47401),s=1e-6,c=2048,d=new Uint8Array(4),u=new Uint8Array(4),p={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function f(e,t,n,a,r){var i=e._gl;i.enable(i.SCISSOR_TEST),i.scissor(t,n,a,r),e.clear({color:[0,0,0,0],depth:1})}function h(e,t,n,a,r,i){var o=i.key;n.drawCompleted||(!function(e){e.read({x:0,y:0,width:1,height:1,data:d})}(e),n.drawCompleted=!0),function l(s){var c=Math.min(a,r-s*a);0===s&&(window.cancelAnimationFrame(n.currentRafs[o]),delete n.currentRafs[o],f(e,i.scissorX,i.scissorY,i.scissorWidth,i.viewBoxSize[1])),n.clearOnly||(i.count=2*c,i.offset=2*s*a,t(i),s*a+c<r&&(n.currentRafs[o]=window.requestAnimationFrame((function(){l(s+1)}))),n.drawCompleted=!1)}(0)}function v(e,t){for(var n=new Array(256),a=0;a<256;a++)n[a]=e(a/255).concat(t);return n}function m(e,t){return(e>>>8*t)%256/255}function g(e,t,n){for(var a=new Array(8*t),r=0,i=0;i<t;i++)for(var o=0;o<2;o++)for(var l=0;l<4;l++){var s=4*e+l,c=n[64*i+s];63===s&&0===o&&(c*=-1),a[r++]=c}return a}function y(e){var t="0"+e;return t.substr(t.length-2)}function x(e){return e<o?"p"+y(e+1)+"_"+y(e+4):"colors"}function b(e,t,n,a,r,i,o,s,c,d,u,p,f,h){for(var v=[[],[]],m=0;m<64;m++)v[0][m]=m===r?1:0,v[1][m]=m===i?1:0;o*=h,s*=h,c*=h,d*=h;var g=e.lines.canvasOverdrag*h,y=e.domain,x=e.canvasWidth*h,b=e.canvasHeight*h,w=e.pad.l*h,k=e.pad.b*h,T=e.layoutHeight*h,I=e.layoutWidth*h,A=e.deselectedLines.color;return l.extendFlat({key:u,resolution:[x,b],viewBoxPos:[o+g,s],viewBoxSize:[c,d],i0:r,i1:i,dim0A:v[0].slice(0,16),dim0B:v[0].slice(16,32),dim0C:v[0].slice(32,48),dim0D:v[0].slice(48,64),dim1A:v[1].slice(0,16),dim1B:v[1].slice(16,32),dim1C:v[1].slice(32,48),dim1D:v[1].slice(48,64),drwLayer:p,contextColor:[A[0]/255,A[1]/255,A[2]/255,A[3]<1?A[3]:Math.max(1/255,Math.pow(1/e.lines.color.length,1/3))],scissorX:(a===t?0:o+g)+(w-g)+I*y.x[0],scissorWidth:(a===n?x-o+g:c+.5)+(a===t?o+g:0),scissorY:s+k+T*y.y[0],scissorHeight:d,viewportX:w-g+I*y.x[0],viewportY:k+T*y.y[0],viewportWidth:x,viewportHeight:b},f)}function w(e){var t=2047,n=Math.max(0,Math.floor(e[0]*t),0),a=Math.min(t,Math.ceil(e[1]*t),t);return[Math.min(n,a),Math.max(n,a)]}e.exports=function(e,t){var n,a,d,y,k,T=t.context,I=t.pick,A=t.regl,M=A._gl,_=M.getParameter(M.ALIASED_LINE_WIDTH_RANGE),C=Math.max(_[0],Math.min(_[1],t.viewModel.plotGlPixelRatio)),D={currentRafs:{},drawCompleted:!0,clearOnly:!1},S=function(e){for(var t={},n=0;n<=o;n+=4)t[x(n)]=e.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)});return t}(A),V=A.texture(p),L=[];O(t);var P=A({profile:!1,blend:{enable:T,func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:1,dstAlpha:1},equation:{rgb:"add",alpha:"add"},color:[0,0,0,0]},depth:{enable:!T,mask:!0,func:"less",range:[0,1]},cull:{enable:!0,face:"back"},scissor:{enable:!0,box:{x:A.prop("scissorX"),y:A.prop("scissorY"),width:A.prop("scissorWidth"),height:A.prop("scissorHeight")}},viewport:{x:A.prop("viewportX"),y:A.prop("viewportY"),width:A.prop("viewportWidth"),height:A.prop("viewportHeight")},dither:!1,vert:r,frag:i,primitive:"lines",lineWidth:C,attributes:S,uniforms:{resolution:A.prop("resolution"),viewBoxPos:A.prop("viewBoxPos"),viewBoxSize:A.prop("viewBoxSize"),dim0A:A.prop("dim0A"),dim1A:A.prop("dim1A"),dim0B:A.prop("dim0B"),dim1B:A.prop("dim1B"),dim0C:A.prop("dim0C"),dim1C:A.prop("dim1C"),dim0D:A.prop("dim0D"),dim1D:A.prop("dim1D"),loA:A.prop("loA"),hiA:A.prop("hiA"),loB:A.prop("loB"),hiB:A.prop("hiB"),loC:A.prop("loC"),hiC:A.prop("hiC"),loD:A.prop("loD"),hiD:A.prop("hiD"),palette:V,contextColor:A.prop("contextColor"),maskTexture:A.prop("maskTexture"),drwLayer:A.prop("drwLayer"),maskHeight:A.prop("maskHeight")},offset:A.prop("offset"),count:A.prop("count")});function O(e){n=e.model,a=e.viewModel,d=a.dimensions.slice(),y=d[0]?d[0].values.length:0;var t=n.lines,r=I?t.color.map((function(e,n){return n/t.color.length})):t.color,i=function(e,t,n){for(var a,r=new Array(e*(o+4)),i=0,l=0;l<e;l++){for(var c=0;c<o;c++)r[i++]=c<t.length?t[c].paddedUnitValues[l]:.5;r[i++]=m(l,2),r[i++]=m(l,1),r[i++]=m(l,0),r[i++]=(a=n[l],Math.max(s,Math.min(1-s,a)))}return r}(y,d,r);!function(e,t,n){for(var a=0;a<=o;a+=4)e[x(a)](g(a/4,t,n))}(S,y,i),T||I||(V=A.texture(l.extendFlat({data:v(n.unitToColor,255)},p)))}return{render:function(e,t,a){var r,i,o,l=e.length,s=1/0,u=-1/0;for(r=0;r<l;r++)e[r].dim0.canvasX<s&&(s=e[r].dim0.canvasX,i=r),e[r].dim1.canvasX>u&&(u=e[r].dim1.canvasX,o=r);0===l&&f(A,0,0,n.canvasWidth,n.canvasHeight);var p=function(e){var t,n,a,r=[[],[]];for(a=0;a<64;a++){var i=!e&&a<d.length?d[a].brush.filter.getBounds():[-1/0,1/0];r[0][a]=i[0],r[1][a]=i[1]}var o=new Array(16384);for(t=0;t<16384;t++)o[t]=255;if(!e)for(t=0;t<d.length;t++){var l=t%8,s=(t-l)/8,u=Math.pow(2,l),p=d[t].brush.filter.get();if(!(p.length<2)){var f=w(p[0])[1];for(n=1;n<p.length;n++){var h=w(p[n]);for(a=f+1;a<h[0];a++)o[8*a+s]&=~u;f=Math.max(f,h[1])}}}var v={shape:[8,c],format:"alpha",type:"uint8",mag:"nearest",min:"nearest",data:o};return k?k(v):k=A.texture(v),{maskTexture:k,maskHeight:c,loA:r[0].slice(0,16),loB:r[0].slice(16,32),loC:r[0].slice(32,48),loD:r[0].slice(48,64),hiA:r[1].slice(0,16),hiB:r[1].slice(16,32),hiC:r[1].slice(32,48),hiD:r[1].slice(48,64)}}(T);for(r=0;r<l;r++){var v=e[r],m=v.dim0.crossfilterDimensionIndex,g=v.dim1.crossfilterDimensionIndex,x=v.canvasX,M=v.canvasY,_=x+v.panelSizeX,C=v.plotGlPixelRatio;if(t||!L[m]||L[m][0]!==x||L[m][1]!==_){L[m]=[x,_];var S=b(n,i,o,r,m,g,x,M,v.panelSizeX,v.panelSizeY,v.dim0.crossfilterDimensionIndex,T?0:I?2:1,p,C);D.clearOnly=a;var V=t?n.lines.blockLineCount:y;h(A,P,D,V,y,S)}}},readPixel:function(e,t){return A.read({x:e,y:t,width:1,height:1,data:u}),u},readPixels:function(e,t,n,a){var r=new Uint8Array(4*n*a);return A.read({x:e,y:t,width:n,height:a,data:r}),r},destroy:function(){for(var t in e.style["pointer-events"]="none",V.destroy(),k&&k.destroy(),S)S[t].destroy()},update:O}}},94029:function(e){e.exports=function(e,t,n,a){var r,i;for(a||(a=1/0),r=0;r<t.length;r++)(i=t[r]).visible&&(a=Math.min(a,i[n].length));for(a===1/0&&(a=0),e._length=a,r=0;r<t.length;r++)(i=t[r]).visible&&(i._length=a);return a}},72547:function(e,t,n){var a=n(62258),r=n(47401),i=r.numberFormat,o=n(46772),l=n(37762),s=r.strRotate,c=r.strTranslate,d=n(43995),u=n(41707),p=n(47624),f=n(84941),h=f.keyFun,v=f.repeat,m=f.unwrap,g=n(17543),y=n(41479),x=n(36381),b=n(87773);function w(e,t,n){return r.aggNums(e,null,t,n)}function k(e,t){return I(w(Math.min,e,t),w(Math.max,e,t))}function T(e){var t=e.range;return t?I(t[0],t[1]):k(e.values,e._length)}function I(e,t){return!isNaN(e)&&isFinite(e)||(e=0),!isNaN(t)&&isFinite(t)||(t=0),e===t&&(0===e?(e-=1,t+=1):(e*=.9,t*=1.1)),[e,t]}function A(e,t,n,r,o){var l,s,c=T(n);return r?a.scale.ordinal().domain(r.map((l=i(n.tickformat),s=o,s?function(e,t){var n=s[t];return null===n||void 0===n?l(e):n}:l))).range(r.map((function(n){var a=(n-c[0])/(c[1]-c[0]);return e-t+a*(2*t-e)}))):a.scale.linear().domain(c).range([e-t,t])}function M(e){if(e.tickvals){var t=T(e);return a.scale.ordinal().domain(e.tickvals).range(e.tickvals.map((function(e){return(e-t[0])/(t[1]-t[0])})))}}function _(e){var t=e.map((function(e){return e[0]})),n=e.map((function(e){var t=o(e[1]);return a.rgb("rgb("+t[0]+","+t[1]+","+t[2]+")")})),r="rgb".split("").map((function(e){return a.scale.linear().clamp(!0).domain(t).range(n.map((r=e,function(e){return e[r]})));var r}));return function(e){return r.map((function(t){return t(e)}))}}function C(e){return e.dimensions.some((function(e){return e.brush.filterSpecified}))}function D(e,t,n){var i=m(t),l=i.trace,s=g.convertTypedArray(i.lineColor),c=l.line,d={color:o(y.deselectedLineColor)},u=p.extractOpts(c),f=u.reversescale?p.flipScale(i.cscale):i.cscale,h=l.domain,v=l.dimensions,x=e.width,b=l.labelangle,w=l.labelside,k=l.labelfont,I=l.tickfont,A=l.rangefont,M=r.extendDeepNoArrays({},c,{color:s.map(a.scale.linear().domain(T({values:s,range:[u.min,u.max],_length:l._length}))),blockLineCount:y.blockLineCount,canvasOverdrag:y.overdrag*y.canvasPixelRatio}),C=Math.floor(x*(h.x[1]-h.x[0])),D=Math.floor(e.height*(h.y[1]-h.y[0])),S=e.margin||{l:80,r:80,t:100,b:80},V=C,L=D;return{key:n,colCount:v.filter(g.isVisible).length,dimensions:v,tickDistance:y.tickDistance,unitToColor:_(f),lines:M,deselectedLines:d,labelAngle:b,labelSide:w,labelFont:k,tickFont:I,rangeFont:A,layoutWidth:x,layoutHeight:e.height,domain:h,translateX:h.x[0]*x,translateY:e.height-h.y[1]*e.height,pad:S,canvasWidth:V*y.canvasPixelRatio+2*M.canvasOverdrag,canvasHeight:L*y.canvasPixelRatio,width:V,height:L,canvasPixelRatio:y.canvasPixelRatio}}function S(e,t,n){var o=n.width,l=n.height,s=n.dimensions,c=n.canvasPixelRatio,d=function(e){return o*e/Math.max(1,n.colCount-1)},u=y.verticalPadding/l,p=function(e,t){return a.scale.linear().range([t,e-t])}(l,y.verticalPadding),f={key:n.key,xScale:d,model:n,inBrushDrag:!1},h={};return f.dimensions=s.filter(g.isVisible).map((function(o,s){var v=function(e,t){return a.scale.linear().domain(T(e)).range([t,1-t])}(o,u),m=h[o.label];h[o.label]=(m||0)+1;var b=o.label+(m?"__"+m:""),w=o.constraintrange,k=w&&w.length;k&&!Array.isArray(w[0])&&(w=[w]);var I=k?w.map((function(e){return e.map(v)})):[[-1/0,1/0]],_=o.values;_.length>o._length&&(_=_.slice(0,o._length));var D,S=o.tickvals;function V(e,t){return{val:e,text:D[t]}}function L(e,t){return e.val-t.val}if(Array.isArray(S)&&S.length){D=o.ticktext,Array.isArray(D)&&D.length?D.length>S.length?D=D.slice(0,S.length):S.length>D.length&&(S=S.slice(0,D.length)):D=S.map(i(o.tickformat));for(var P=1;P<S.length;P++)if(S[P]<S[P-1]){for(var O=S.map(V).sort(L),B=0;B<S.length;B++)S[B]=O[B].val,D[B]=O[B].text;break}}else S=void 0;return _=g.convertTypedArray(_),{key:b,label:o.label,tickFormat:o.tickformat,tickvals:S,ticktext:D,ordinal:g.isOrdinal(o),multiselect:o.multiselect,xIndex:s,crossfilterDimensionIndex:s,visibleIndex:o._index,height:l,values:_,paddedUnitValues:_.map(v),unitTickvals:S&&S.map(v),xScale:d,x:d(s),canvasX:d(s)*c,unitToPaddedPx:p,domainScale:A(l,y.verticalPadding,o,S,D),ordinalScale:M(o),parent:f,model:n,brush:x.makeBrush(e,k,I,(function(){e.linePickActive(!1)}),(function(){var t=f;t.focusLayer&&t.focusLayer.render(t.panels,!0);var n=C(t);!e.contextShown()&&n?(t.contextLayer&&t.contextLayer.render(t.panels,!0),e.contextShown(!0)):e.contextShown()&&!n&&(t.contextLayer&&t.contextLayer.render(t.panels,!0,!0),e.contextShown(!1))}),(function(n){if(f.focusLayer.render(f.panels,!0),f.pickLayer&&f.pickLayer.render(f.panels,!0),e.linePickActive(!0),t&&t.filterChanged){var a=v.invert,i=n.map((function(e){return e.map(a).sort(r.sorterAsc)})).sort((function(e,t){return e[0]-t[0]}));t.filterChanged(f.key,o._index,i)}}))}})),f}function V(e){e.classed(y.cn.axisExtentText,!0).attr("text-anchor","middle").style("cursor","default")}function L(e,t){var n="top"===t?1:-1,a=e*Math.PI/180;return{dir:n,dx:Math.sin(a),dy:Math.cos(a),degrees:e}}function P(e,t,n){for(var a=t.panels||(t.panels=[]),r=e.data(),i=0;i<r.length-1;i++){var o=a[i]||(a[i]={}),l=r[i],s=r[i+1];o.dim0=l,o.dim1=s,o.canvasX=l.canvasX,o.panelSizeX=s.canvasX-l.canvasX,o.panelSizeY=t.model.canvasHeight,o.y=0,o.canvasY=0,o.plotGlPixelRatio=n}}function O(e,t){return l.tickText(e._ax,t,!1).text}function B(e,t){if(e.ordinal)return"";var n=e.domainScale.domain(),a=n[t?n.length-1:0];return O(e.model.dimensions[e.visibleIndex],a)}e.exports=function(e,t,n,i){var o=e._fullLayout,p=o._toppaper,f=o._glcontainer,w=e._context.plotGlPixelRatio,T=e._fullLayout.paper_bgcolor;!function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e[t].length;n++)for(var a=e[t][n].trace,r=a.dimensions,i=0;i<r.length;i++){var o=r[i].values,s=r[i]._ax;s&&(s.range?s.range=I(s.range[0],s.range[1]):s.range=k(o,a._length),s.dtick||(s.dtick=.01*(Math.abs(s.range[1]-s.range[0])||1)),s.tickformat=r[i].tickformat,l.calcTicks(s),s.cleanRange())}}(t);var A=function(){var e=!0,t=!1;return{linePickActive:function(t){return arguments.length?e=!!t:e},contextShown:function(e){return arguments.length?t=!!e:t}}}(),M=t.filter((function(e){return m(e).trace.visible})).map(D.bind(0,n)).map(S.bind(0,A,i));f.each((function(e,t){return r.extendFlat(e,M[t])}));var _=f.selectAll(".gl-canvas").each((function(e){e.viewModel=M[0],e.viewModel.plotGlPixelRatio=w,e.viewModel.paperColor=T,e.model=e.viewModel?e.viewModel.model:null})),N=null;_.filter((function(e){return e.pick})).style("pointer-events","auto").on("mousemove",(function(e){if(A.linePickActive()&&e.lineLayer&&i&&i.hover){var t=a.event,n=this.width,r=this.height,o=a.mouse(this),l=o[0],s=o[1];if(l<0||s<0||l>=n||s>=r)return;var c=e.lineLayer.readPixel(l,r-1-s),d=0!==c[3],u=d?c[2]+256*(c[1]+256*c[0]):null,p={x:l,y:s,clientX:t.clientX,clientY:t.clientY,dataIndex:e.model.key,curveNumber:u};u!==N&&(d?i.hover(p):i.unhover&&i.unhover(p),N=u)}})),_.style("opacity",(function(e){return e.pick?0:1})),p.style("background","rgba(255, 255, 255, 0)");var j=p.selectAll("."+y.cn.parcoords).data(M,h);j.exit().remove(),j.enter().append("g").classed(y.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),j.attr("transform",(function(e){return c(e.model.translateX,e.model.translateY)}));var E=j.selectAll("."+y.cn.parcoordsControlView).data(v,h);E.enter().append("g").classed(y.cn.parcoordsControlView,!0),E.attr("transform",(function(e){return c(e.model.pad.l,e.model.pad.t)}));var R=E.selectAll("."+y.cn.yAxis).data((function(e){return e.dimensions}),h);R.enter().append("g").classed(y.cn.yAxis,!0),E.each((function(e){P(R,e,w)})),_.each((function(e){if(e.viewModel){!e.lineLayer||i?e.lineLayer=b(this,e):e.lineLayer.update(e),(e.key||0===e.key)&&(e.viewModel[e.key]=e.lineLayer);var t=!e.context||i;e.lineLayer.render(e.viewModel.panels,t)}})),R.attr("transform",(function(e){return c(e.xScale(e.xIndex),0)})),R.call(a.behavior.drag().origin((function(e){return e})).on("drag",(function(e){var t=e.parent;A.linePickActive(!1),e.x=Math.max(-y.overdrag,Math.min(e.model.width+y.overdrag,a.event.x)),e.canvasX=e.x*e.model.canvasPixelRatio,R.sort((function(e,t){return e.x-t.x})).each((function(t,n){t.xIndex=n,t.x=e===t?t.x:t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio})),P(R,t,w),R.filter((function(t){return 0!==Math.abs(e.xIndex-t.xIndex)})).attr("transform",(function(e){return c(e.xScale(e.xIndex),0)})),a.select(this).attr("transform",c(e.x,0)),R.each((function(n,a,r){r===e.parent.key&&(t.dimensions[a]=n)})),t.contextLayer&&t.contextLayer.render(t.panels,!1,!C(t)),t.focusLayer.render&&t.focusLayer.render(t.panels)})).on("dragend",(function(e){var t=e.parent;e.x=e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio,P(R,t,w),a.select(this).attr("transform",(function(e){return c(e.x,0)})),t.contextLayer&&t.contextLayer.render(t.panels,!1,!C(t)),t.focusLayer&&t.focusLayer.render(t.panels),t.pickLayer&&t.pickLayer.render(t.panels,!0),A.linePickActive(!0),i&&i.axesMoved&&i.axesMoved(t.key,t.dimensions.map((function(e){return e.crossfilterDimensionIndex})))}))),R.exit().remove();var F=R.selectAll("."+y.cn.axisOverlays).data(v,h);F.enter().append("g").classed(y.cn.axisOverlays,!0),F.selectAll("."+y.cn.axis).remove();var X=F.selectAll("."+y.cn.axis).data(v,h);X.enter().append("g").classed(y.cn.axis,!0),X.each((function(e){var t=e.model.height/e.model.tickDistance,n=e.domainScale,r=n.domain();a.select(this).call(a.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(t,e.tickFormat).tickValues(e.ordinal?r:null).tickFormat((function(t){return g.isOrdinal(e)?t:O(e.model.dimensions[e.visibleIndex],t)})).scale(n)),u.font(X.selectAll("text"),e.model.tickFont)})),X.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),X.selectAll("text").style("text-shadow",d.makeTextShadow(T)).style("cursor","default");var H=F.selectAll("."+y.cn.axisHeading).data(v,h);H.enter().append("g").classed(y.cn.axisHeading,!0);var z=H.selectAll("."+y.cn.axisTitle).data(v,h);z.enter().append("text").classed(y.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events","auto"),z.text((function(e){return e.label})).each((function(t){var n=a.select(this);u.font(n,t.model.labelFont),d.convertToTspans(n,e)})).attr("transform",(function(e){var t=L(e.model.labelAngle,e.model.labelSide),n=y.axisTitleOffset;return(t.dir>0?"":c(0,2*n+e.model.height))+s(t.degrees)+c(-n*t.dx,-n*t.dy)})).attr("text-anchor",(function(e){var t=L(e.model.labelAngle,e.model.labelSide);return 2*Math.abs(t.dx)>Math.abs(t.dy)?t.dir*t.dx<0?"start":"end":"middle"}));var Y=F.selectAll("."+y.cn.axisExtent).data(v,h);Y.enter().append("g").classed(y.cn.axisExtent,!0);var W=Y.selectAll("."+y.cn.axisExtentTop).data(v,h);W.enter().append("g").classed(y.cn.axisExtentTop,!0),W.attr("transform",c(0,-y.axisExtentOffset));var U=W.selectAll("."+y.cn.axisExtentTopText).data(v,h);U.enter().append("text").classed(y.cn.axisExtentTopText,!0).call(V),U.text((function(e){return B(e,!0)})).each((function(e){u.font(a.select(this),e.model.rangeFont)}));var G=Y.selectAll("."+y.cn.axisExtentBottom).data(v,h);G.enter().append("g").classed(y.cn.axisExtentBottom,!0),G.attr("transform",(function(e){return c(0,e.model.height+y.axisExtentOffset)}));var q=G.selectAll("."+y.cn.axisExtentBottomText).data(v,h);q.enter().append("text").classed(y.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(V),q.text((function(e){return B(e,!1)})).each((function(e){u.font(a.select(this),e.model.rangeFont)})),x.ensureAxisBrush(F,T)}},95703:function(e,t,n){var a=n(72547),r=n(43147),i=n(17543).isVisible;function o(e,t,n){var a=t.indexOf(n),r=e.indexOf(a);return-1===r&&(r+=t.length),r}e.exports=function(e,t){var n=e._fullLayout;if(r(e)){var l={},s={},c={},d={},u=n._size;t.forEach((function(t,n){var a=t[0].trace;c[n]=a.index;var r=d[n]=a._fullInput.index;l[n]=e.data[r].dimensions,s[n]=e.data[r].dimensions.slice()}));a(e,t,{width:u.w,height:u.h,margin:{t:u.t,r:u.r,b:u.b,l:u.l}},{filterChanged:function(t,a,r){var i=s[t][a],o=r.map((function(e){return e.slice()})),l="dimensions["+a+"].constraintrange",u=n._tracePreGUI[e._fullData[c[t]]._fullInput.uid];if(void 0===u[l]){var p=i.constraintrange;u[l]=p||null}var f=e._fullData[c[t]].dimensions[a];o.length?(1===o.length&&(o=o[0]),i.constraintrange=o,f.constraintrange=o.slice(),o=[o]):(delete i.constraintrange,delete f.constraintrange,o=null);var h={};h[l]=o,e.emit("plotly_restyle",[h,[d[t]]])},hover:function(t){e.emit("plotly_hover",t)},unhover:function(t){e.emit("plotly_unhover",t)},axesMoved:function(t,n){var a=function(e,t){return function(n,a){return o(e,t,n)-o(e,t,a)}}(n,s[t].filter(i));l[t].sort(a),s[t].filter((function(e){return!i(e)})).sort((function(e){return s[t].indexOf(e)})).forEach((function(e){l[t].splice(l[t].indexOf(e),1),l[t].splice(s[t].indexOf(e),0,e)})),e.emit("plotly_restyle",[{dimensions:[l[t]]},[d[t]]])}})}}},86692:function(e,t,n){var a=n(42837),r=n(16688).u,i=n(5153),o=n(62405),l=n(4216).r,s=n(4216).a,c=n(87241).extendFlat,d=i({editType:"plot",arrayOk:!0,colorEditType:"plot",description:"Sets the font used for `textinfo`."});e.exports={labels:{valType:"data_array",editType:"calc",description:["Sets the sector labels.","If `labels` entries are duplicated, we sum associated `values`","or simply count occurrences if `values` is not provided.","For other array attributes (including color) we use the first","non-empty entry among all occurrences of the label."].join(" ")},label0:{valType:"number",dflt:0,editType:"calc",description:["Alternate to `labels`.","Builds a numeric set of labels.","Use with `dlabel`","where `label0` is the starting label and `dlabel` the step."].join(" ")},dlabel:{valType:"number",dflt:1,editType:"calc",description:"Sets the label step. See `label0` for more info."},values:{valType:"data_array",editType:"calc",description:["Sets the values of the sectors.","If omitted, we count occurrences of each label."].join(" ")},marker:{colors:{valType:"data_array",editType:"calc",description:["Sets the color of each sector.","If not specified, the default trace color set is used","to pick the sector colors."].join(" ")},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style",description:["Sets the color of the line enclosing each sector."].join(" ")},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style",description:["Sets the width (in px) of the line enclosing each sector."].join(" ")},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot",description:["Sets text elements associated with each sector.","If trace `textinfo` contains a *text* flag, these elements will be seen","on the chart.","If trace `hoverinfo` contains a *text* flag and *hovertext* is not set,","these elements will be seen in the hover labels."].join(" ")},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style",description:["Sets hover text elements associated with each sector.","If a single string, the same string appears for","all data points.","If an array of string, the items are mapped in order of","this trace's sectors.","To be seen, trace `hoverinfo` must contain a *text* flag."].join(" ")},scalegroup:{valType:"string",dflt:"",editType:"calc",description:["If there are multiple pie charts that should be sized according to","their totals, link them by providing a non-empty group id here","shared by every trace in the same group."].join(" ")},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc",description:["Determines which trace information appear on the graph."].join(" ")},hoverinfo:c({},a.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:l({},{keys:["label","color","value","percent","text"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot",description:["Specifies the location of the `textinfo`."].join(" ")},textfont:c({},d,{description:"Sets the font used for `textinfo`."}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot",description:["Controls the orientation of the text inside chart sectors.","When set to *auto*, text may be oriented in any direction in order","to be as big as possible in the middle of a sector.","The *horizontal* option orients text to be parallel with the bottom","of the chart, and may make text smaller in order to achieve that goal.","The *radial* option orients text along the radius of the sector.","The *tangential* option orients text perpendicular to the radius of the sector."].join(" ")},insidetextfont:c({},d,{description:"Sets the font used for `textinfo` lying inside the sector."}),outsidetextfont:c({},d,{description:"Sets the font used for `textinfo` lying outside the sector."}),automargin:{valType:"boolean",dflt:!1,editType:"plot",description:["Determines whether outside text labels can push the margins."].join(" ")},title:{text:{valType:"string",dflt:"",editType:"plot",description:["Sets the title of the chart.","If it is empty, no title is displayed.","Note that before the existence of `title.text`, the title's","contents used to be defined as the `title` attribute itself.","This behavior has been deprecated."].join(" ")},font:c({},d,{description:["Sets the font used for `title`.","Note that the title's font used to be set","by the now deprecated `titlefont` attribute."].join(" ")}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot",description:["Specifies the location of the `title`.","Note that the title's position used to be set","by the now deprecated `titleposition` attribute."].join(" ")},editType:"plot"},domain:r({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc",description:["Sets the fraction of the radius to cut out of the pie.","Use this to make a donut chart."].join(" ")},sort:{valType:"boolean",dflt:!0,editType:"calc",description:["Determines whether or not the sectors are reordered","from largest to smallest."].join(" ")},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc",description:["Specifies the direction at which succeeding sectors follow","one another."].join(" ")},rotation:{valType:"number",min:-360,max:360,dflt:0,editType:"calc",description:["Instead of the first slice starting at 12 o'clock,","rotate to some other angle."].join(" ")},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc",description:["Sets the fraction of larger radius to pull the sectors","out from the center. This can be a constant","to pull all slices apart from each other equally","or an array to highlight one or more slices."].join(" ")},_deprecated:{title:{valType:"string",dflt:"",editType:"calc",description:["Deprecated in favor of `title.text`.","Note that value of `title` is no longer a simple","*string* but a set of sub-attributes."].join(" ")},titlefont:c({},d,{description:"Deprecated in favor of `title.font`."}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc",description:"Deprecated in favor of `title.position`."}}}},84420:function(e,t,n){var a=n(35722);t.name="pie",t.plot=function(e,n,r,i){a.plotBasePlot(t.name,e,n,r,i)},t.clean=function(e,n,r,i){a.cleanBasePlot(t.name,e,n,r,i)}},93444:function(e,t,n){var a=n(83491),r=n(91771),i=n(31454),o={};function l(e){return function(t,n){return!!t&&(!!(t=r(t)).isValid()&&(t=i.addOpacity(t,t.getAlpha()),e[n]||(e[n]=t),t))}}function s(e,t){var n,a=JSON.stringify(e),i=t[a];if(!i){for(i=e.slice(),n=0;n<e.length;n++)i.push(r(e[n]).lighten(20).toHexString());for(n=0;n<e.length;n++)i.push(r(e[n]).darken(20).toHexString());t[a]=i}return i}e.exports={calc:function(e,t){var n,r,i=[],o=e._fullLayout,s=o.hiddenlabels||[],c=t.labels,d=t.marker.colors||[],u=t.values,p=t._length,f=t._hasValues&&p;if(t.dlabel)for(c=new Array(p),n=0;n<p;n++)c[n]=String(t.label0+n*t.dlabel);var h={},v=l(o["_"+t.type+"colormap"]),m=0,g=!1;for(n=0;n<p;n++){var y,x,b;if(f){if(y=u[n],!a(y))continue;if((y=+y)<0)continue}else y=1;void 0!==(x=c[n])&&""!==x||(x=n);var w=h[x=String(x)];void 0===w?(h[x]=i.length,(b=-1!==s.indexOf(x))||(m+=y),i.push({v:y,label:x,color:v(d[n],x),i:n,pts:[n],hidden:b})):(g=!0,(r=i[w]).v+=y,r.pts.push(n),r.hidden||(m+=y),!1===r.color&&d[n]&&(r.color=v(d[n],x)))}return("funnelarea"===t.type?g:t.sort)&&i.sort((function(e,t){return t.v-e.v})),i[0]&&(i[0].vTotal=m),i},crossTraceCalc:function(e,t){var n=(t||{}).type;n||(n="pie");var a=e._fullLayout,r=e.calcdata,i=a[n+"colorway"],l=a["_"+n+"colormap"];a["extend"+n+"colors"]&&(i=s(i,o));for(var c=0,d=0;d<r.length;d++){var u=r[d];if(u[0].trace.type===n)for(var p=0;p<u.length;p++){var f=u[p];!1===f.color&&(l[f.label]?f.color=l[f.label]:(l[f.label]=f.color=i[c%i.length],c++))}}},makePullColorFn:l,generateExtendedColors:s}},53459:function(e,t,n){var a=n(83491),r=n(47401),i=n(86692),o=n(16688).N,l=n(18878).handleText;function s(e,t){var n=Array.isArray(e),i=r.isArrayOrTypedArray(t),o=Math.min(n?e.length:1/0,i?t.length:1/0);if(isFinite(o)||(o=0),o&&i){for(var l,s=0;s<o;s++){var c=t[s];if(a(c)&&c>0){l=!0;break}}l||(o=0)}return{hasLabels:n,hasValues:i,len:o}}e.exports={handleLabelsAndValues:s,supplyDefaults:function(e,t,n,a){function c(n,a){return r.coerce(e,t,i,n,a)}var d=s(c("labels"),c("values")),u=d.len;if(t._hasLabels=d.hasLabels,t._hasValues=d.hasValues,!t._hasLabels&&t._hasValues&&(c("label0"),c("dlabel")),u){t._length=u,c("marker.line.width")&&c("marker.line.color"),c("marker.colors"),c("scalegroup");var p,f=c("text"),h=c("texttemplate");if(h||(p=c("textinfo",Array.isArray(f)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),h||p&&"none"!==p){var v=c("textposition");l(e,t,a,c,v,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(v)||"auto"===v||"outside"===v)&&c("automargin"),("inside"===v||"auto"===v||Array.isArray(v))&&c("insidetextorientation")}o(t,a,c);var m=c("hole");if(c("title.text")){var g=c("title.position",m?"middle center":"top center");m||"middle center"!==g||(t.title.position="top center"),r.coerceFont(c,"title.font",a.font)}c("sort"),c("direction"),c("rotation"),c("pull")}else t.visible=!1}}},41240:function(e,t,n){var a=n(14904).appendArrayMultiPointValues;e.exports=function(e,t){var n={curveNumber:t.index,pointNumbers:e.pts,data:t._input,fullData:t,label:e.label,color:e.color,value:e.v,percent:e.percent,text:e.text,bbox:e.bbox,v:e.v};return 1===e.pts.length&&(n.pointNumber=n.i=e.pts[0]),a(n,t,e.pts),"funnelarea"===t.type&&(delete n.v,delete n.i),n}},80084:function(e,t,n){var a=n(47401);function r(e){return-1!==e.indexOf("e")?e.replace(/[.]?0+e/,"e"):-1!==e.indexOf(".")?e.replace(/[.]?0+$/,""):e}t.formatPiePercent=function(e,t){var n=r((100*e).toPrecision(3));return a.numSeparate(n,t)+"%"},t.formatPieValue=function(e,t){var n=r(e.toPrecision(10));return a.numSeparate(n,t)},t.getFirstFilled=function(e,t){if(Array.isArray(e))for(var n=0;n<t.length;n++){var a=e[t[n]];if(a||0===a||""===a)return a}},t.castOption=function(e,n){return Array.isArray(e)?t.getFirstFilled(e,n):e||void 0},t.getRotationAngle=function(e){return("auto"===e?0:e)*Math.PI/180}},50089:function(e,t,n){e.exports={attributes:n(86692),supplyDefaults:n(53459).supplyDefaults,supplyLayoutDefaults:n(18504),layoutAttributes:n(59055),calc:n(93444).calc,crossTraceCalc:n(93444).crossTraceCalc,plot:n(59718).plot,style:n(9884),styleOne:n(59371),moduleType:"trace",name:"pie",basePlotModule:n(84420),categories:["pie-like","pie","showLegend"],meta:{description:["A data visualized by the sectors of the pie is set in `values`.","The sector labels are set in `labels`.","The sector colors are set in `marker.colors`"].join(" ")}}}}]);
|