diff --git a/.travis.yml b/.travis.yml
index f164e6aa..da1d0feb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,25 +1,31 @@
-sudo: false
-dist: xenial
-language: python
+language: generic
+dist: bionic
+jobs:
+ include:
+ - name: "Python 3.6"
+ before_install:
+ - pyenv global 3.6.9
+ - name: "Python 3.7"
+ before_install:
+ - pyenv global 3.7.5
+ - name: "Python 3.8"
+ before_install:
+ - pyenv global 3.8.0
cache:
- pip: true
- directories:
- - node_modules
-python:
- - 3.6
- - 3.7
- - 3.8
+ directories:
+ - $HOME/.cache/pip
+ - node_modules
env:
- - DJANGO_SETTINGS_MODULE="babybuddy.settings.travis"
+ - DJANGO_SETTINGS_MODULE="babybuddy.settings.travis"
install:
- - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install 8
- - npm install -g gulp-cli && npm install
- - pip install pipenv && pipenv install --dev
+ - nvm use 10
+ - npm install -g gulp-cli && npm install
+ - pip install pipenv && pipenv install --dev
before_script:
- - gulp lint
+ - gulp lint
script:
- - gulp coverage
+ - gulp coverage
after_success:
- - pipenv run coveralls
+ - pipenv run coveralls
notifications:
- email: false
+ email: false
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6fa867ad..6a75597b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -81,6 +81,7 @@ newly translated strings.
Once the translation is complete, commit the new files and changes to a fork
and [create a pull request](#pull-request-process) for review.
+
For more information on the Django translation process, see Django's
documentation section: [Translation](https://docs.djangoproject.com/en/3.0/topics/i18n/translation/).
@@ -89,7 +90,7 @@ documentation section: [Translation](https://docs.djangoproject.com/en/3.0/topic
### Requirements
- Python 3.6+, pip, pipenv
-- NodeJS 8.x+ and NPM 5.x+
+- NodeJS 10.x+ and NPM 6.x+
- Gulp
### Installation
diff --git a/package-lock.json b/package-lock.json
index 0dfd73a6..fae2865b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,29 +15,30 @@
}
},
"@babel/code-frame": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
- "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.0.0"
+ "@babel/highlight": "^7.8.3"
}
},
"@babel/core": {
- "version": "7.7.7",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz",
- "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz",
+ "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.5.5",
- "@babel/generator": "^7.7.7",
- "@babel/helpers": "^7.7.4",
- "@babel/parser": "^7.7.7",
- "@babel/template": "^7.7.4",
- "@babel/traverse": "^7.7.4",
- "@babel/types": "^7.7.4",
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.8.3",
+ "@babel/helpers": "^7.8.3",
+ "@babel/parser": "^7.8.3",
+ "@babel/template": "^7.8.3",
+ "@babel/traverse": "^7.8.3",
+ "@babel/types": "^7.8.3",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
"json5": "^2.1.0",
"lodash": "^4.17.13",
"resolve": "^1.3.2",
@@ -72,12 +73,12 @@
}
},
"@babel/generator": {
- "version": "7.7.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz",
- "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
+ "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
"dev": true,
"requires": {
- "@babel/types": "^7.7.4",
+ "@babel/types": "^7.8.3",
"jsesc": "^2.5.1",
"lodash": "^4.17.13",
"source-map": "^0.5.0"
@@ -92,49 +93,49 @@
}
},
"@babel/helper-function-name": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz",
- "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+ "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.7.4",
- "@babel/template": "^7.7.4",
- "@babel/types": "^7.7.4"
+ "@babel/helper-get-function-arity": "^7.8.3",
+ "@babel/template": "^7.8.3",
+ "@babel/types": "^7.8.3"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz",
- "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
+ "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
"dev": true,
"requires": {
- "@babel/types": "^7.7.4"
+ "@babel/types": "^7.8.3"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz",
- "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
+ "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
"dev": true,
"requires": {
- "@babel/types": "^7.7.4"
+ "@babel/types": "^7.8.3"
}
},
"@babel/helpers": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz",
- "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
+ "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
"dev": true,
"requires": {
- "@babel/template": "^7.7.4",
- "@babel/traverse": "^7.7.4",
- "@babel/types": "^7.7.4"
+ "@babel/template": "^7.8.3",
+ "@babel/traverse": "^7.8.3",
+ "@babel/types": "^7.8.3"
}
},
"@babel/highlight": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
- "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
+ "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
"dev": true,
"requires": {
"chalk": "^2.0.0",
@@ -143,43 +144,43 @@
}
},
"@babel/parser": {
- "version": "7.7.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz",
- "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
+ "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
"dev": true
},
"@babel/runtime": {
- "version": "7.7.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz",
- "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
+ "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"@babel/template": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz",
- "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
+ "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.4",
- "@babel/types": "^7.7.4"
+ "@babel/code-frame": "^7.8.3",
+ "@babel/parser": "^7.8.3",
+ "@babel/types": "^7.8.3"
}
},
"@babel/traverse": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz",
- "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
+ "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.5.5",
- "@babel/generator": "^7.7.4",
- "@babel/helper-function-name": "^7.7.4",
- "@babel/helper-split-export-declaration": "^7.7.4",
- "@babel/parser": "^7.7.4",
- "@babel/types": "^7.7.4",
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.8.3",
+ "@babel/helper-function-name": "^7.8.3",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.8.3",
+ "@babel/types": "^7.8.3",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.13"
@@ -203,9 +204,9 @@
}
},
"@babel/types": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz",
- "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
+ "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
@@ -294,16 +295,6 @@
"integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==",
"dev": true
},
- "@mrmlnc/readdir-enhanced": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
- "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
- "dev": true,
- "requires": {
- "call-me-maybe": "^1.0.1",
- "glob-to-regexp": "^0.3.0"
- }
- },
"@nodelib/fs.scandir": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
@@ -363,6 +354,16 @@
"@turf/meta": "6.x"
}
},
+ "@turf/bbox": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz",
+ "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==",
+ "dev": true,
+ "requires": {
+ "@turf/helpers": "6.x",
+ "@turf/meta": "6.x"
+ }
+ },
"@turf/centroid": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.0.2.tgz",
@@ -417,12 +418,24 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
"dev": true
},
+ "@types/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=",
+ "dev": true
+ },
"@types/node": {
"version": "12.12.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.7.tgz",
"integrity": "sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w==",
"dev": true
},
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
+ "dev": true
+ },
"@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -533,15 +546,23 @@
}
},
"ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
+ "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
"dev": true,
"requires": {
- "fast-deep-equal": "^2.0.1",
+ "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
+ },
+ "dependencies": {
+ "fast-deep-equal": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "dev": true
+ }
}
},
"align-text": {
@@ -843,12 +864,6 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
- "dev": true
- },
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
@@ -940,17 +955,17 @@
"dev": true
},
"autoprefixer": {
- "version": "9.7.3",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.3.tgz",
- "integrity": "sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q==",
+ "version": "9.7.4",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz",
+ "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==",
"dev": true,
"requires": {
- "browserslist": "^4.8.0",
- "caniuse-lite": "^1.0.30001012",
+ "browserslist": "^4.8.3",
+ "caniuse-lite": "^1.0.30001020",
"chalk": "^2.4.2",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
- "postcss": "^7.0.23",
+ "postcss": "^7.0.26",
"postcss-value-parser": "^4.0.2"
},
"dependencies": {
@@ -974,9 +989,9 @@
"dev": true
},
"aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
"dev": true
},
"bach": {
@@ -1209,14 +1224,14 @@
}
},
"browserslist": {
- "version": "4.8.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz",
- "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==",
+ "version": "4.8.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.5.tgz",
+ "integrity": "sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001017",
- "electron-to-chromium": "^1.3.322",
- "node-releases": "^1.1.44"
+ "caniuse-lite": "^1.0.30001022",
+ "electron-to-chromium": "^1.3.338",
+ "node-releases": "^1.1.46"
}
},
"buble": {
@@ -1304,12 +1319,6 @@
"unset-value": "^1.0.0"
}
},
- "call-me-maybe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
- "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
- "dev": true
- },
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -1341,9 +1350,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001018",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001018.tgz",
- "integrity": "sha512-GTHI7xdD2EX/U9UgNCEdekriT81N6ZwipsTGKAI1hrv3VEC96BvS5RVoc9Odlf9ftS92oxgflAGbYLi8UjIiVA==",
+ "version": "1.0.30001022",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001022.tgz",
+ "integrity": "sha512-FjwPPtt/I07KyLPkBQ0g7/XuZg6oUkYBVnPHNj3VHJbOjmmJ/GdSo/GUY6MwINEQvjhP6WZVbX8Tvms8xh0D5A==",
"dev": true
},
"canvas-fit": {
@@ -1416,27 +1425,27 @@
}
},
"character-entities": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz",
- "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
"dev": true
},
"character-entities-html4": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz",
- "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz",
+ "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==",
"dev": true
},
"character-entities-legacy": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz",
- "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
"dev": true
},
"character-reference-invalid": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz",
- "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
"dev": true
},
"chokidar": {
@@ -1600,9 +1609,9 @@
"dev": true
},
"collapse-white-space": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz",
- "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+ "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
"dev": true
},
"collection-map": {
@@ -1718,9 +1727,9 @@
}
},
"combined-stream": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
- "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"requires": {
"delayed-stream": "~1.0.0"
@@ -2500,6 +2509,15 @@
"is-obj": "^1.0.0"
}
},
+ "dotignore": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz",
+ "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
"double-bits": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz",
@@ -2586,9 +2604,9 @@
}
},
"earcut": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.1.tgz",
- "integrity": "sha512-5jIMi2RB3HtGPHcYd9Yyl0cczo84y+48lgKPxMijliNQaKAHEZJbdzLmKmdxG/mCdS/YD9DQ1gihL8mxzR0F9w==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
+ "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==",
"dev": true
},
"ecc-jsbn": {
@@ -2611,9 +2629,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.323",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.323.tgz",
- "integrity": "sha512-c7pOUGnqNv6otzwcedViWOTGMEUG70PkhrTzVtc20Txh9nDC4s8zWvocJl7q+OpoC0ACXtxud8PX2y8zk/RZiw==",
+ "version": "1.3.340",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.340.tgz",
+ "integrity": "sha512-hRFBAglhcj5iVYH+o8QU0+XId1WGoc0VGowJB1cuJAt3exHGrivZvWeAO5BRgBZqwZtwxjm8a5MQeGoT/Su3ww==",
"dev": true
},
"element-size": {
@@ -2662,9 +2680,9 @@
}
},
"es-abstract": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
- "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
+ "version": "1.17.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
+ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"dev": true,
"requires": {
"es-to-primitive": "^1.2.1",
@@ -2756,12 +2774,12 @@
"dev": true
},
"escodegen": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz",
- "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==",
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz",
+ "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==",
"dev": true,
"requires": {
- "esprima": "^3.1.3",
+ "esprima": "^4.0.1",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
"optionator": "^0.8.1",
@@ -2778,9 +2796,9 @@
}
},
"esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"estraverse": {
@@ -3007,12 +3025,6 @@
"time-stamp": "^1.0.0"
}
},
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
- },
"fast-glob": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.0.tgz",
@@ -3977,6 +3989,12 @@
"globule": "^1.0.0"
}
},
+ "gensync": {
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
+ "dev": true
+ },
"geojson-vt": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
@@ -4230,9 +4248,9 @@
}
},
"gl-plot3d": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.3.0.tgz",
- "integrity": "sha512-qg269QiLpaw16d2D5Gz9fa8vsLcA8kbX/cv1u9S7BsH6jD9qGYxsY8iWJ8ea9/68WhPS5En2kUavkXINkmHsOQ==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.0.tgz",
+ "integrity": "sha512-ZPs7gvWaCqK99GXoB0XJTMTLpChB/CiDUt3MthIawVlFhknSJLNPAJSbUU3f4pWzKCbbGtVARQr/i6XdM3MnKA==",
"dev": true,
"requires": {
"3d-view": "^2.0.0",
@@ -4565,12 +4583,6 @@
"unique-stream": "^2.0.2"
}
},
- "glob-to-regexp": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
- "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
- "dev": true
- },
"glob-watcher": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz",
@@ -4660,9 +4672,9 @@
"dev": true
},
"globule": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
- "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz",
+ "integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==",
"dev": true,
"requires": {
"glob": "~7.1.1",
@@ -5152,14 +5164,13 @@
}
},
"gulp-stylelint": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/gulp-stylelint/-/gulp-stylelint-11.0.0.tgz",
- "integrity": "sha512-Hk2DungSqeWIye5hgmB36IMN9oIIsOBieAaQZw0HAVuIljDGcfH6ng0wmJf3G418jv6KCdgpTZb0EIN1L5KXEw==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/gulp-stylelint/-/gulp-stylelint-13.0.0.tgz",
+ "integrity": "sha512-qFWBXnYDsGy6ttzqptctMZjJhhGc0FdFE+UNPlj/5fTyuUo5mfxcc7pzN4hIJnvB79BO1WikLtdtXuC/G2AhGA==",
"dev": true,
"requires": {
"chalk": "^3.0.0",
"fancy-log": "^1.3.3",
- "mkdirp": "^0.5.1",
"plugin-error": "^1.0.1",
"source-map": "^0.7.3",
"strip-ansi": "^6.0.0",
@@ -5301,22 +5312,14 @@
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
- "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- }
}
},
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -5454,9 +5457,9 @@
},
"dependencies": {
"readable-stream": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
- "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
+ "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
@@ -6249,21 +6252,12 @@
}
},
"locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- }
+ "p-locate": "^4.1.0"
}
},
"lodash": {
@@ -6351,9 +6345,9 @@
}
},
"magic-string": {
- "version": "0.25.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.5.tgz",
- "integrity": "sha512-vIO/BOm9odBHBAGwv0gZPLJeO9IpwliiIc0uPeAW93rrFMJ/R3M665IAEfOU/IW3kD4S9AtEn76lfTn1Yif+9A==",
+ "version": "0.25.6",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.6.tgz",
+ "integrity": "sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g==",
"dev": true,
"requires": {
"sourcemap-codec": "^1.4.4"
@@ -6473,9 +6467,9 @@
}
},
"markdown-escapes": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz",
- "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
"dev": true
},
"markdown-table": {
@@ -6558,9 +6552,9 @@
"dev": true
},
"mathml-tag-names": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz",
- "integrity": "sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true
},
"matrix-camera-controller": {
@@ -6644,20 +6638,26 @@
}
},
"mime-db": {
- "version": "1.40.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
- "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
"dev": true
},
"mime-types": {
- "version": "2.1.24",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
- "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
"dev": true,
"requires": {
- "mime-db": "1.40.0"
+ "mime-db": "1.43.0"
}
},
+ "min-indent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz",
+ "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -6674,9 +6674,9 @@
"dev": true
},
"minimist-options": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
- "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.0.2.tgz",
+ "integrity": "sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w==",
"dev": true,
"requires": {
"arrify": "^1.0.1",
@@ -6816,8 +6816,7 @@
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
- "dev": true,
- "optional": true
+ "dev": true
},
"nanomatch": {
"version": "1.2.13",
@@ -6839,9 +6838,9 @@
}
},
"ndarray": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.18.tgz",
- "integrity": "sha1-tg06cyJOxVXQ+qeXEeUCRI/T95M=",
+ "version": "1.0.19",
+ "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz",
+ "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==",
"dev": true,
"requires": {
"iota-array": "^1.0.0",
@@ -6985,9 +6984,9 @@
}
},
"node-releases": {
- "version": "1.1.44",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.44.tgz",
- "integrity": "sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw==",
+ "version": "1.1.47",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.47.tgz",
+ "integrity": "sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA==",
"dev": true,
"requires": {
"semver": "^6.3.0"
@@ -7002,9 +7001,9 @@
}
},
"node-sass": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
- "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz",
+ "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==",
"dev": true,
"requires": {
"async-foreach": "^0.1.3",
@@ -7014,7 +7013,7 @@
"get-stdin": "^4.0.1",
"glob": "^7.0.3",
"in-publish": "^2.0.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.15",
"meow": "^3.7.0",
"mkdirp": "^0.5.1",
"nan": "^2.13.2",
@@ -7045,12 +7044,6 @@
"supports-color": "^2.0.0"
}
},
- "nan": {
- "version": "2.13.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
- "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
- "dev": true
- },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -7358,21 +7351,21 @@
}
},
"p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "p-try": "^2.0.0"
}
},
"p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "p-limit": "^2.2.0"
}
},
"p-map": {
@@ -7385,9 +7378,9 @@
}
},
"p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"pad-left": {
@@ -7657,14 +7650,15 @@
}
},
"plotly.js": {
- "version": "1.51.3",
- "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.51.3.tgz",
- "integrity": "sha512-1HsGdm+TPkJzxNvC3Whwh2U97FGrwCVDJ+W6s202qV5hJ0GQjqokPxGZalnjZDBLm0E1QAdQmiXBRVl10Pw+0A==",
+ "version": "1.52.1",
+ "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.52.1.tgz",
+ "integrity": "sha512-GLNwAu20zwRZrfjrSRUZHXyDulDRh1yfPBV5SLqy5AdGefb6CK2QCBbMcGlhV2P14oJwQ8vd1wqTZVZE9xQ9Rw==",
"dev": true,
"requires": {
"@plotly/d3-sankey": "0.7.2",
"@plotly/d3-sankey-circular": "0.33.1",
"@turf/area": "^6.0.1",
+ "@turf/bbox": "^6.0.1",
"@turf/centroid": "^6.0.2",
"alpha-shape": "^1.0.0",
"canvas-fit": "^1.5.0",
@@ -7685,7 +7679,7 @@
"gl-heatmap2d": "^1.0.5",
"gl-line3d": "^1.1.11",
"gl-mat4": "^1.2.0",
- "gl-mesh3d": "^2.1.3",
+ "gl-mesh3d": "^2.2.0",
"gl-plot2d": "^1.4.2",
"gl-plot3d": "^2.3.0",
"gl-pointcloud2d": "^1.0.2",
@@ -7833,9 +7827,9 @@
}
},
"popper.js": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz",
- "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==",
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
+ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
"dev": true
},
"posix-character-classes": {
@@ -7904,9 +7898,9 @@
}
},
"postcss-jsx": {
- "version": "0.36.3",
- "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.3.tgz",
- "integrity": "sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA==",
+ "version": "0.36.4",
+ "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz",
+ "integrity": "sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==",
"dev": true,
"requires": {
"@babel/core": ">=7.2.2"
@@ -8052,9 +8046,9 @@
"dev": true
},
"protocol-buffers-schema": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz",
- "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz",
+ "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==",
"dev": true
},
"pseudomap": {
@@ -8064,9 +8058,9 @@
"dev": true
},
"psl": {
- "version": "1.1.31",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
- "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
+ "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
"dev": true
},
"pump": {
@@ -8152,9 +8146,9 @@
}
},
"quick-lru": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
- "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
"dev": true
},
"quickselect": {
@@ -8806,12 +8800,28 @@
"dev": true
},
"rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "glob": "^7.0.5"
+ "glob": "^7.1.3"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
}
},
"robust-compress": {
@@ -9312,9 +9322,9 @@
"dev": true
},
"sourcemap-codec": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.7.tgz",
- "integrity": "sha512-RuN23NzhAOuUtaivhcrjXx1OPXsFeH9m5sI373/U7+tGLKihjUyboZAzOadytMjnqHp1f45RGk1IzDKCpDpSYA==",
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"dev": true
},
"sparkles": {
@@ -9755,12 +9765,12 @@
"dev": true
},
"stylelint": {
- "version": "12.0.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-12.0.1.tgz",
- "integrity": "sha512-1mn39pqZiC/e8KUPoRMc1WMM83Upb2ILaSGxkCvKxALHutEOs2txcPQocJiXdO4Zx4FY4prGqjlkwrbthAxqig==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.0.0.tgz",
+ "integrity": "sha512-6sjgOJbM3iLhnUtmRO0J1vvxie9VnhIZX/2fCehjylv9Gl9u0ytehGCTm9Lhw2p1F8yaNZn5UprvhCB8C3g/Tg==",
"dev": true,
"requires": {
- "autoprefixer": "^9.7.1",
+ "autoprefixer": "^9.7.3",
"balanced-match": "^1.0.0",
"chalk": "^3.0.0",
"cosmiconfig": "^6.0.0",
@@ -9769,7 +9779,7 @@
"file-entry-cache": "^5.0.1",
"get-stdin": "^7.0.0",
"global-modules": "^2.0.0",
- "globby": "^9.2.0",
+ "globby": "^11.0.0",
"globjoin": "^0.1.4",
"html-tags": "^3.1.0",
"ignore": "^5.1.4",
@@ -9780,10 +9790,10 @@
"lodash": "^4.17.15",
"log-symbols": "^3.0.0",
"mathml-tag-names": "^2.1.1",
- "meow": "^5.0.0",
+ "meow": "^6.0.0",
"micromatch": "^4.0.2",
"normalize-selector": "^0.2.0",
- "postcss": "^7.0.21",
+ "postcss": "^7.0.26",
"postcss-html": "^0.36.0",
"postcss-jsx": "^0.36.3",
"postcss-less": "^3.1.4",
@@ -9810,12 +9820,6 @@
"write-file-atomic": "^3.0.1"
},
"dependencies": {
- "@nodelib/fs.stat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
- "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
- "dev": true
- },
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
@@ -9832,30 +9836,30 @@
"color-convert": "^2.0.1"
}
},
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "array-uniq": "^1.0.1"
+ "fill-range": "^7.0.1"
}
},
"camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true
},
"camelcase-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
- "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.1.1.tgz",
+ "integrity": "sha512-kEPCddRFChEzO0d6w61yh0WbBiSv9gBnfZWGfXRYPlGqIdIGef6HMR6pgqVSEWCYkrp8B0AtEpEXNY+Jx0xk1A==",
"dev": true,
"requires": {
- "camelcase": "^4.1.0",
- "map-obj": "^2.0.0",
- "quick-lru": "^1.0.0"
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
}
},
"chalk": {
@@ -9892,50 +9896,17 @@
"ms": "^2.1.1"
}
},
- "dir-glob": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
- "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
- "dev": true,
- "requires": {
- "path-type": "^3.0.0"
- }
- },
"fast-glob": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
- "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz",
+ "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==",
"dev": true,
"requires": {
- "@mrmlnc/readdir-enhanced": "^2.2.1",
- "@nodelib/fs.stat": "^1.1.2",
- "glob-parent": "^3.1.0",
- "is-glob": "^4.0.0",
- "merge2": "^1.2.3",
- "micromatch": "^3.1.10"
- },
- "dependencies": {
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2"
}
},
"fill-range": {
@@ -9948,12 +9919,13 @@
}
},
"find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
},
"get-stdin": {
@@ -9962,18 +9934,13 @@
"integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
"dev": true
},
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "is-glob": "^4.0.1"
}
},
"global-modules": {
@@ -9997,33 +9964,17 @@
}
},
"globby": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
- "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz",
+ "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==",
"dev": true,
"requires": {
- "@types/glob": "^7.1.1",
- "array-union": "^1.0.2",
- "dir-glob": "^2.2.2",
- "fast-glob": "^2.2.6",
- "glob": "^7.1.3",
- "ignore": "^4.0.3",
- "pify": "^4.0.1",
- "slash": "^2.0.0"
- },
- "dependencies": {
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
- },
- "slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
- "dev": true
- }
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
}
},
"has-flag": {
@@ -10033,9 +9984,9 @@
"dev": true
},
"indent-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
- "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true
},
"is-fullwidth-code-point": {
@@ -10050,47 +10001,29 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
- }
- },
"map-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
- "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz",
+ "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==",
"dev": true
},
"meow": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz",
- "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-6.0.0.tgz",
+ "integrity": "sha512-x4rYsjigPBDAxY+BGuK83YLhUIqui5wYyZoqb6QJCUOs+0fiYq+i/NV4Jt8OgIfObZFxG9iTyvLDu4UTohGTFw==",
"dev": true,
"requires": {
- "camelcase-keys": "^4.0.0",
- "decamelize-keys": "^1.0.0",
- "loud-rejection": "^1.0.0",
- "minimist-options": "^3.0.1",
- "normalize-package-data": "^2.3.4",
- "read-pkg-up": "^3.0.0",
- "redent": "^2.0.0",
- "trim-newlines": "^2.0.0",
- "yargs-parser": "^10.0.0"
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.1.1",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.0.0",
+ "minimist-options": "^4.0.1",
+ "normalize-package-data": "^2.5.0",
+ "read-pkg-up": "^7.0.0",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.8.1",
+ "yargs-parser": "^16.1.0"
}
},
"micromatch": {
@@ -10101,17 +10034,6 @@
"requires": {
"braces": "^3.0.1",
"picomatch": "^2.0.5"
- },
- "dependencies": {
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- }
}
},
"ms": {
@@ -10120,68 +10042,75 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
"dev": true,
"requires": {
- "pify": "^3.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
},
"dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true
}
}
},
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- },
"read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
}
},
"redent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
- "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
"requires": {
- "indent-string": "^3.0.0",
- "strip-indent": "^2.0.0"
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
}
},
"string-width": {
@@ -10204,17 +10133,14 @@
"ansi-regex": "^5.0.0"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- },
"strip-indent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
- "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
- "dev": true
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
},
"supports-color": {
"version": "7.1.0",
@@ -10235,18 +10161,19 @@
}
},
"trim-newlines": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
- "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz",
+ "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==",
"dev": true
},
"yargs-parser": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
- "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "version": "16.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz",
+ "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==",
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
}
}
}
@@ -10460,13 +10387,14 @@
}
},
"tape": {
- "version": "4.12.1",
- "resolved": "https://registry.npmjs.org/tape/-/tape-4.12.1.tgz",
- "integrity": "sha512-xoK2ariLmdGxqyXhhxfIZlr0czNB8hNJeVQmHN4D7ZyBn30GUoa4q2oM4cX8jNhnj1mtILXn1ugbfxc0tTDKtA==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.0.tgz",
+ "integrity": "sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw==",
"dev": true,
"requires": {
"deep-equal": "~1.1.1",
"defined": "~1.0.0",
+ "dotignore": "~0.1.2",
"for-each": "~0.3.3",
"function-bind": "~1.1.1",
"glob": "~7.1.6",
@@ -10475,7 +10403,7 @@
"is-regex": "~1.0.5",
"minimist": "~1.2.0",
"object-inspect": "~1.7.0",
- "resolve": "~1.14.1",
+ "resolve": "~1.14.2",
"resumer": "~0.0.0",
"string.prototype.trim": "~1.2.1",
"through": "~2.3.8"
@@ -10502,9 +10430,9 @@
"dev": true
},
"resolve": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz",
- "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
+ "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -10850,6 +10778,12 @@
"prelude-ls": "~1.1.2"
}
},
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
"type-name": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz",
@@ -10863,9 +10797,9 @@
"dev": true
},
"typedarray-pool": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.1.0.tgz",
- "integrity": "sha1-0RT0hIAUifU+yrXoCIqiMET0mNk=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz",
+ "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==",
"dev": true,
"requires": {
"bit-twiddle": "^1.0.0",
@@ -11213,9 +11147,9 @@
}
},
"uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
},
"v8-compile-cache": {
diff --git a/package.json b/package.json
index 13d5d173..fe748979 100644
--- a/package.json
+++ b/package.json
@@ -17,14 +17,14 @@
"gulp-sass": "^4.0.2",
"gulp-sass-glob": "^1.1.0",
"gulp-spawn": "^0.4.5",
- "gulp-stylelint": "^11.0.0",
+ "gulp-stylelint": "^13.0.0",
"gulp-uglify": "^3.0.2",
"jquery": "^3.4.1",
"moment": "^2.24.0",
- "plotly.js": "^1.51.3",
- "popper.js": "^1.16.0",
+ "plotly.js": "^1.52.1",
+ "popper.js": "^1.16.1",
"pump": "^3.0.0",
- "stylelint": "^12.0.1",
+ "stylelint": "^13.0.0",
"stylelint-config-recommended-scss": "^4.1.0",
"stylelint-order": "^4.0.0",
"stylelint-scss": "^3.13.0",
diff --git a/static/babybuddy/js/graph.8129e325fb11.js.gz b/static/babybuddy/js/graph.8129e325fb11.js.gz
deleted file mode 100644
index c12d6bce..00000000
Binary files a/static/babybuddy/js/graph.8129e325fb11.js.gz and /dev/null differ
diff --git a/static/babybuddy/js/graph.8129e325fb11.js b/static/babybuddy/js/graph.8b669d614c06.js
similarity index 96%
rename from static/babybuddy/js/graph.8129e325fb11.js
rename to static/babybuddy/js/graph.8b669d614c06.js
index 161e3669..9f3ffac5 100644
--- a/static/babybuddy/js/graph.8129e325fb11.js
+++ b/static/babybuddy/js/graph.8b669d614c06.js
@@ -1,6 +1,6 @@
/**
-* plotly.js (cartesian) v1.51.3
-* Copyright 2012-2019, Plotly, Inc.
+* plotly.js (cartesian) v1.52.1
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
* Licensed under the MIT license
*/
@@ -74,7 +74,7 @@ for(var selector in rules) {
},{"../src/lib":169}],2:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -87,7 +87,7 @@ module.exports = _dereq_('../src/traces/bar');
},{"../src/traces/bar":276}],3:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -98,9 +98,9 @@ module.exports = _dereq_('../src/traces/bar');
module.exports = _dereq_('../src/traces/box');
-},{"../src/traces/box":290}],4:[function(_dereq_,module,exports){
+},{"../src/traces/box":291}],4:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -111,9 +111,9 @@ module.exports = _dereq_('../src/traces/box');
module.exports = _dereq_('../src/traces/contour');
-},{"../src/traces/contour":310}],5:[function(_dereq_,module,exports){
+},{"../src/traces/contour":311}],5:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -126,7 +126,7 @@ module.exports = _dereq_('../src/core');
},{"../src/core":151}],6:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -137,9 +137,9 @@ module.exports = _dereq_('../src/core');
module.exports = _dereq_('../src/traces/heatmap');
-},{"../src/traces/heatmap":326}],7:[function(_dereq_,module,exports){
+},{"../src/traces/heatmap":327}],7:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -150,9 +150,9 @@ module.exports = _dereq_('../src/traces/heatmap');
module.exports = _dereq_('../src/traces/histogram');
-},{"../src/traces/histogram":344}],8:[function(_dereq_,module,exports){
+},{"../src/traces/histogram":345}],8:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -163,9 +163,9 @@ module.exports = _dereq_('../src/traces/histogram');
module.exports = _dereq_('../src/traces/histogram2d');
-},{"../src/traces/histogram2d":350}],9:[function(_dereq_,module,exports){
+},{"../src/traces/histogram2d":351}],9:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -176,9 +176,9 @@ module.exports = _dereq_('../src/traces/histogram2d');
module.exports = _dereq_('../src/traces/histogram2dcontour');
-},{"../src/traces/histogram2dcontour":354}],10:[function(_dereq_,module,exports){
+},{"../src/traces/histogram2dcontour":355}],10:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -189,9 +189,9 @@ module.exports = _dereq_('../src/traces/histogram2dcontour');
module.exports = _dereq_('../src/traces/image');
-},{"../src/traces/image":361}],11:[function(_dereq_,module,exports){
+},{"../src/traces/image":362}],11:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -220,7 +220,7 @@ module.exports = Plotly;
},{"./bar":2,"./box":3,"./contour":4,"./core":5,"./heatmap":6,"./histogram":7,"./histogram2d":8,"./histogram2dcontour":9,"./image":10,"./pie":12,"./scatterternary":13,"./violin":14}],12:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -231,9 +231,9 @@ module.exports = Plotly;
module.exports = _dereq_('../src/traces/pie');
-},{"../src/traces/pie":370}],13:[function(_dereq_,module,exports){
+},{"../src/traces/pie":371}],13:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -244,9 +244,9 @@ module.exports = _dereq_('../src/traces/pie');
module.exports = _dereq_('../src/traces/scatterternary');
-},{"../src/traces/scatterternary":410}],14:[function(_dereq_,module,exports){
+},{"../src/traces/scatterternary":411}],14:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -257,7 +257,7 @@ module.exports = _dereq_('../src/traces/scatterternary');
module.exports = _dereq_('../src/traces/violin');
-},{"../src/traces/violin":418}],15:[function(_dereq_,module,exports){
+},{"../src/traces/violin":419}],15:[function(_dereq_,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -14679,7 +14679,7 @@ else {
},{}],35:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -14750,7 +14750,7 @@ module.exports = [
},{}],36:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15105,7 +15105,7 @@ module.exports = templatedArray('annotation', {
},{"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219,"../../plots/font_attributes":239,"./arrow_paths":35}],37:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15194,7 +15194,7 @@ function calcAxisExpansion(ann, ax) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"./draw":42}],38:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15332,7 +15332,7 @@ function clickData2r(d, ax) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258}],39:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15411,7 +15411,7 @@ module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayo
},{"../../lib":169,"../color":51}],40:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15474,7 +15474,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
},{"../../lib/to_log_range":192,"fast-isnumeric":18}],41:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15581,7 +15581,7 @@ function handleAnnotationDefaults(annIn, annOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":36,"./common_defaults":39}],42:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16281,7 +16281,7 @@ function drawRaw(gd, options, index, subplotId, xa, ya) {
},{"../../lib":169,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plot_api/plot_template":203,"../../plots/cartesian/axes":213,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"../fx":89,"./draw_arrow_head":43,"d3":16}],43:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16432,7 +16432,7 @@ module.exports = function drawArrowHead(el3, ends, options) {
},{"../color":51,"./arrow_paths":35,"d3":16}],44:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16466,7 +16466,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":36,"./calc_autorange":37,"./click":38,"./convert_coords":40,"./defaults":41,"./draw":42}],45:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16554,7 +16554,7 @@ module.exports = overrideAll(templatedArray('annotation', {
},{"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../annotations/attributes":36}],46:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16619,7 +16619,7 @@ function mockAnnAxes(ann, scene) {
},{"../../lib":169,"../../plots/cartesian/axes":213}],47:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16695,7 +16695,7 @@ function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"../annotations/common_defaults":39,"./attributes":45}],48:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16747,7 +16747,7 @@ module.exports = function draw(scene) {
},{"../../plots/gl3d/project":242,"../annotations/draw":42}],49:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16795,7 +16795,7 @@ function includeGL3D(layoutIn, layoutOut) {
},{"../../lib":169,"../../registry":258,"./attributes":45,"./convert":46,"./defaults":47,"./draw":48}],50:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16835,7 +16835,7 @@ exports.lightFraction = 100 * (0xe - 0x4) / (0xf - 0x4);
},{}],51:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17009,7 +17009,7 @@ function cleanOne(val) {
},{"./attributes":50,"fast-isnumeric":18,"tinycolor2":34}],52:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17188,7 +17188,7 @@ module.exports = overrideAll({
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plots/cartesian/layout_attributes":225,"../../plots/font_attributes":239}],53:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17216,7 +17216,7 @@ module.exports = {
},{}],54:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17282,7 +17282,7 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/cartesian/tick_label_defaults":232,"../../plots/cartesian/tick_mark_defaults":233,"../../plots/cartesian/tick_value_defaults":234,"./attributes":52}],55:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18008,7 +18008,7 @@ module.exports = {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/extend":164,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_defaults":215,"../../plots/cartesian/layout_attributes":225,"../../plots/cartesian/position_defaults":228,"../../plots/plots":245,"../../registry":258,"../color":51,"../colorscale/helpers":62,"../dragelement":69,"../drawing":72,"../titles":138,"./constants":53,"d3":16,"tinycolor2":34}],56:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18027,7 +18027,7 @@ module.exports = function hasColorbar(container) {
},{"../../lib":169}],57:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18049,7 +18049,7 @@ module.exports = {
},{"./attributes":52,"./defaults":54,"./draw":55,"./has_colorbar":56}],58:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18257,7 +18257,7 @@ module.exports = function colorScaleAttrs(context, opts) {
},{"../../lib/regex":184,"../colorbar/attributes":52,"./scales.js":66}],59:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18336,7 +18336,7 @@ module.exports = function calc(gd, trace, opts) {
},{"../../lib":169,"./helpers":62,"fast-isnumeric":18}],60:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18413,7 +18413,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
},{"../../lib":169,"./helpers":62}],61:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18529,13 +18529,16 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);
var showScale = coerce(prefix + 'showscale', showScaleDflt);
- if(showScale) colorbarDefaults(containerIn, containerOut, layout);
+ if(showScale) {
+ if(prefix && template) containerOut._template = template;
+ colorbarDefaults(containerIn, containerOut, layout);
+ }
}
};
},{"../../lib":169,"../../registry":258,"../colorbar/defaults":54,"../colorbar/has_colorbar":56,"./scales":66,"fast-isnumeric":18}],62:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18775,7 +18778,7 @@ module.exports = {
},{"../../lib":169,"../color":51,"./scales":66,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],63:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18817,7 +18820,7 @@ module.exports = {
},{"./attributes":58,"./calc":59,"./cross_trace_defaults":60,"./defaults":61,"./helpers":62,"./layout_attributes":64,"./layout_defaults":65,"./scales":66}],64:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18878,7 +18881,7 @@ module.exports = {
},{"../../lib/extend":164,"./attributes":58,"./scales":66}],65:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18929,7 +18932,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
},{"../../lib":169,"../../plot_api/plot_template":203,"./defaults":61,"./layout_attributes":64}],66:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19133,7 +19136,7 @@ module.exports = {
},{"tinycolor2":34}],67:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19166,7 +19169,7 @@ module.exports = function align(v, dv, v0, v1, anchor) {
},{}],68:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19204,7 +19207,7 @@ module.exports = function getCursor(x, y, xanchor, yanchor) {
},{"../../lib":169}],69:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19496,7 +19499,7 @@ function pointerOffset(e) {
},{"../../lib":169,"../../plots/cartesian/constants":219,"./align":67,"./cursor":68,"./unhover":70,"has-hover":20,"has-passive-events":21,"mouse-event-offset":24}],70:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19551,7 +19554,7 @@ unhover.raw = function raw(gd, evt) {
},{"../../lib/dom":162,"../../lib/events":163,"../../lib/throttle":191,"../fx/constants":84}],71:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19576,7 +19579,7 @@ exports.dash = {
},{}],72:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19794,21 +19797,31 @@ drawing.symbolList = [];
Object.keys(SYMBOLDEFS).forEach(function(k) {
var symDef = SYMBOLDEFS[k];
- drawing.symbolList = drawing.symbolList.concat(
- [symDef.n, k, symDef.n + 100, k + '-open']);
- drawing.symbolNames[symDef.n] = k;
- drawing.symbolFuncs[symDef.n] = symDef.f;
+ var n = symDef.n;
+ drawing.symbolList.push(
+ n,
+ k,
+ n + 100,
+ k + '-open'
+ );
+ drawing.symbolNames[n] = k;
+ drawing.symbolFuncs[n] = symDef.f;
+
if(symDef.needLine) {
- drawing.symbolNeedLines[symDef.n] = true;
+ drawing.symbolNeedLines[n] = true;
}
if(symDef.noDot) {
- drawing.symbolNoDot[symDef.n] = true;
+ drawing.symbolNoDot[n] = true;
} else {
- drawing.symbolList = drawing.symbolList.concat(
- [symDef.n + 200, k + '-dot', symDef.n + 300, k + '-open-dot']);
+ drawing.symbolList.push(
+ n + 200,
+ k + '-dot',
+ n + 300,
+ k + '-open-dot'
+ );
}
if(symDef.noFill) {
- drawing.symbolNoFill[symDef.n] = true;
+ drawing.symbolNoFill[n] = true;
}
});
@@ -19830,8 +19843,9 @@ drawing.symbolNumber = function(v) {
v = drawing.symbolNames.indexOf(v);
if(v >= 0) { v += vbase; }
}
- if((v % 100 >= MAXSYMBOL) || v >= 400) { return 0; }
- return Math.floor(Math.max(v, 0));
+
+ return (v % 100 >= MAXSYMBOL || v >= 400) ?
+ 0 : Math.floor(Math.max(v, 0));
};
function makePointPath(symbolNumber, r) {
@@ -19877,9 +19891,10 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
}
}
- var fullID = 'g' + gd._fullLayout._uid + '-' + gradientID;
+ var fullLayout = gd._fullLayout;
+ var fullID = 'g' + fullLayout._uid + '-' + gradientID;
- var gradient = gd._fullLayout._defs.select('.gradients')
+ var gradient = fullLayout._defs.select('.gradients')
.selectAll('#' + fullID)
.data([type + colorStops.join(';')], Lib.identity);
@@ -19910,6 +19925,13 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
sel.style(prop, getFullUrl(fullID, gd))
.style(prop + '-opacity', null);
+
+ var className2query = function(s) {
+ return '.' + s.attr('class').replace(/\s/g, '.');
+ };
+ var k = className2query(d3.select(sel.node().parentNode)) +
+ '>' + className2query(sel);
+ fullLayout._gradientUrlQueryParts[k] = 1;
};
/*
@@ -19920,8 +19942,14 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
* The upside of this is arbitrary points can share gradient defs
*/
drawing.initGradients = function(gd) {
- var gradientsGroup = Lib.ensureSingle(gd._fullLayout._defs, 'g', 'gradients');
+ var fullLayout = gd._fullLayout;
+
+ var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');
gradientsGroup.selectAll('linearGradient,radialGradient').remove();
+
+ // initialize stash of query parts filled in Drawing.gradient,
+ // used to fix URL strings during image exports
+ fullLayout._gradientUrlQueryParts = {};
};
@@ -20737,9 +20765,9 @@ drawing.setTextPointsScale = function(selection, xScale, yScale) {
});
};
-},{"../../components/fx/helpers":86,"../../constants/alignment":145,"../../constants/interactions":148,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../lib/svg_text_utils":190,"../../registry":258,"../../traces/scatter/make_bubble_size_func":394,"../../traces/scatter/subtypes":401,"../color":51,"../colorscale":63,"./symbol_defs":73,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],73:[function(_dereq_,module,exports){
+},{"../../components/fx/helpers":86,"../../constants/alignment":145,"../../constants/interactions":148,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../lib/svg_text_utils":190,"../../registry":258,"../../traces/scatter/make_bubble_size_func":395,"../../traces/scatter/subtypes":402,"../color":51,"../colorscale":63,"./symbol_defs":73,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],73:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21227,7 +21255,7 @@ module.exports = {
},{"d3":16}],74:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21342,7 +21370,7 @@ module.exports = {
},{}],75:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21428,7 +21456,7 @@ function calcOneAxis(calcTrace, trace, axis, coord) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./compute_error":76,"fast-isnumeric":18}],76:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21529,7 +21557,7 @@ function makeComputeErrorValue(type, value) {
},{}],77:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21604,7 +21632,7 @@ module.exports = function(traceIn, traceOut, defaultColor, opts) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258,"./attributes":74,"fast-isnumeric":18}],78:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21673,7 +21701,7 @@ function hoverInfo(calcPoint, trace, hoverPoint) {
},{"../../lib":169,"../../plot_api/edit_types":196,"./attributes":74,"./calc":75,"./compute_error":76,"./defaults":77,"./plot":79,"./style":80}],79:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21843,9 +21871,9 @@ function errorCoords(d, xa, ya) {
return out;
}
-},{"../../traces/scatter/subtypes":401,"../drawing":72,"d3":16,"fast-isnumeric":18}],80:[function(_dereq_,module,exports){
+},{"../../traces/scatter/subtypes":402,"../drawing":72,"d3":16,"fast-isnumeric":18}],80:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21882,7 +21910,7 @@ module.exports = function style(traces) {
},{"../color":51,"d3":16}],81:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21918,7 +21946,7 @@ module.exports = {
},{"../../lib/extend":164,"../../plots/font_attributes":239,"./layout_attributes":90}],82:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21977,7 +22005,7 @@ function paste(traceAttr, cd, cdAttr, fn) {
},{"../../lib":169,"../../registry":258}],83:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22014,7 +22042,7 @@ module.exports = function click(gd, evt, subplot) {
},{"../../registry":258,"./hover":87}],84:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22046,7 +22074,7 @@ module.exports = {
},{}],85:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22072,7 +22100,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
},{"../../lib":169,"./attributes":81,"./hoverlabel_defaults":88}],86:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22314,7 +22342,7 @@ function getPointData(val, pointNumber) {
},{"../../lib":169}],87:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24000,7 +24028,7 @@ function plainText(s, len) {
},{"../../lib":169,"../../lib/events":163,"../../lib/override_cursor":180,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":84,"./helpers":86,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],88:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24023,7 +24051,7 @@ module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts
},{"../../lib":169}],89:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24102,7 +24130,7 @@ function castHoverinfo(trace, fullLayout, ptNumber) {
},{"../../lib":169,"../dragelement":69,"./attributes":81,"./calc":82,"./click":83,"./constants":84,"./defaults":85,"./helpers":86,"./hover":87,"./layout_attributes":90,"./layout_defaults":91,"./layout_global_defaults":92,"d3":16}],90:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24205,7 +24233,7 @@ module.exports = {
},{"../../plots/font_attributes":239,"./constants":84}],91:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24279,7 +24307,7 @@ function isHoriz(fullData, fullLayout) {
},{"../../lib":169,"./layout_attributes":90}],92:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24302,7 +24330,7 @@ module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {
},{"../../lib":169,"./hoverlabel_defaults":88,"./layout_attributes":90}],93:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24676,7 +24704,7 @@ module.exports = {
},{"../../lib":169,"../../lib/regex":184,"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219,"../../plots/domain":238}],94:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24811,7 +24839,7 @@ module.exports = templatedArray('image', {
},{"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219}],95:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24892,7 +24920,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
},{"../../lib/to_log_range":192,"fast-isnumeric":18}],96:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24957,7 +24985,7 @@ function imageDefaults(imageIn, imageOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":94}],97:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25182,7 +25210,7 @@ module.exports = function draw(gd) {
},{"../../constants/xmlns_namespaces":150,"../../plots/cartesian/axes":213,"../drawing":72,"d3":16}],98:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25206,7 +25234,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":94,"./convert_coords":95,"./defaults":96,"./draw":97}],99:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25340,12 +25368,34 @@ module.exports = {
editType: 'legend',
},
+ title: {
+ text: {
+ valType: 'string',
+ dflt: '',
+
+ editType: 'legend',
+
+ },
+ font: fontAttrs({
+ editType: 'legend',
+
+ }),
+ side: {
+ valType: 'enumerated',
+ values: ['top', 'left', 'top left'],
+
+ editType: 'legend',
+
+ },
+ editType: 'legend',
+ },
+
editType: 'legend'
};
},{"../../plots/font_attributes":239,"../color/attributes":50}],100:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25361,6 +25411,8 @@ module.exports = {
scrollBarMargin: 4,
scrollBarEnterAttrs: {rx: 20, ry: 3, width: 0, height: 0},
+ // number of px between legend title and (left) side of legend (always in x direction and from inner border)
+ titlePad: 2,
// number of px between legend symbol and legend text (always in x direction)
textGap: 40,
// number of px between each legend item (x and/or y direction)
@@ -25369,7 +25421,7 @@ module.exports = {
},{}],101:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25403,7 +25455,14 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
// *would* be shown by default, toward the two traces you need to
// ensure the legend is shown by default, because this can still help
// disambiguate.
- if(trace.showlegend || trace._dfltShowLegend) {
+ if(trace.showlegend || (
+ trace._dfltShowLegend && !(
+ trace._module &&
+ trace._module.attributes &&
+ trace._module.attributes.showlegend &&
+ trace._module.attributes.showlegend.dflt === false
+ )
+ )) {
legendTraceCount++;
if(trace.showlegend) {
legendReallyHasATrace = true;
@@ -25486,11 +25545,17 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
coerce('yanchor', defaultYAnchor);
coerce('valign');
Lib.noneOrAll(containerIn, containerOut, ['x', 'y']);
+
+ var titleText = coerce('title.text');
+ if(titleText) {
+ coerce('title.side', orientation === 'h' ? 'left' : 'top');
+ Lib.coerceFont(coerce, 'title.font', layoutOut.font);
+ }
};
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/layout_attributes":243,"../../registry":258,"./attributes":99,"./helpers":105}],102:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25556,6 +25621,19 @@ module.exports = function draw(gd) {
var scrollBox = Lib.ensureSingle(legend, 'g', 'scrollbox');
+ var title = opts.title;
+ opts._titleWidth = 0;
+ opts._titleHeight = 0;
+ if(title.text) {
+ var titleEl = Lib.ensureSingle(scrollBox, 'text', 'legendtitletext');
+ titleEl.attr('text-anchor', 'start')
+ .classed('user-select-none', true)
+ .call(Drawing.font, title.font)
+ .text(title.text);
+
+ textLayout(titleEl, scrollBox, gd); // handle mathjax or multi-line text and compute title height
+ }
+
var scrollBar = Lib.ensureSingle(legend, 'rect', 'scrollbar', function(s) {
s.attr(constants.scrollBarEnterAttrs)
.call(Color.fill, constants.scrollBarColor);
@@ -25612,7 +25690,7 @@ module.exports = function draw(gd) {
}
// Set size and position of all the elements that make up a legend:
- // legend, background and border, scroll box and scroll bar
+ // legend, background and border, scroll box and scroll bar as well as title
Drawing.setTranslate(legend, lx, ly);
// to be safe, remove previous listeners
@@ -25861,23 +25939,17 @@ function drawTexts(g, gd) {
textEl.attr('text-anchor', 'start')
.classed('user-select-none', true)
- .call(Drawing.font, fullLayout.legend.font)
+ .call(Drawing.font, opts.font)
.text(isEditable ? ensureLength(name, maxNameLength) : name);
svgTextUtils.positionText(textEl, constants.textGap, 0);
- function textLayout(s) {
- svgTextUtils.convertToTspans(s, gd, function() {
- computeTextDimensions(g, gd);
- });
- }
-
if(isEditable) {
textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})
- .call(textLayout)
+ .call(textLayout, g, gd)
.on('edit', function(newName) {
this.text(ensureLength(newName, maxNameLength))
- .call(textLayout);
+ .call(textLayout, g, gd);
var fullInput = legendItem.trace._fullInput || {};
var update = {};
@@ -25898,7 +25970,7 @@ function drawTexts(g, gd) {
return Registry.call('_guiRestyle', gd, update, traceIndex);
});
} else {
- textLayout(textEl);
+ textLayout(textEl, g, gd);
}
}
@@ -25951,18 +26023,24 @@ function setupTraceToggle(g, gd) {
});
}
+function textLayout(s, g, gd) {
+ svgTextUtils.convertToTspans(s, gd, function() {
+ computeTextDimensions(g, gd);
+ });
+}
+
function computeTextDimensions(g, gd) {
var legendItem = g.data()[0][0];
-
- if(!legendItem.trace.showlegend) {
+ if(legendItem && !legendItem.trace.showlegend) {
g.remove();
return;
}
var mathjaxGroup = g.select('g[class*=math-group]');
var mathjaxNode = mathjaxGroup.node();
+ var bw = gd._fullLayout.legend.borderwidth;
var opts = gd._fullLayout.legend;
- var lineHeight = opts.font.size * LINE_SPACING;
+ var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;
var height, width;
if(mathjaxNode) {
@@ -25971,24 +26049,56 @@ function computeTextDimensions(g, gd) {
height = mathjaxBB.height;
width = mathjaxBB.width;
- Drawing.setTranslate(mathjaxGroup, 0, (height / 4));
+ if(legendItem) {
+ Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);
+ } else { // case of title
+ Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);
+ }
} else {
- var text = g.select('.legendtext');
- var textLines = svgTextUtils.lineCount(text);
- var textNode = text.node();
+ var textEl = g.select(legendItem ?
+ '.legendtext' : '.legendtitletext'
+ );
+ var textLines = svgTextUtils.lineCount(textEl);
+ var textNode = textEl.node();
height = lineHeight * textLines;
width = textNode ? Drawing.bBox(textNode).width : 0;
// approximation to height offset to center the font
// to avoid getBoundingClientRect
- var textY = lineHeight * (0.3 + (1 - textLines) / 2);
- svgTextUtils.positionText(text, constants.textGap, textY);
+ var textY = lineHeight * ((textLines - 1) / 2 - 0.3);
+ if(legendItem) {
+ svgTextUtils.positionText(textEl, constants.textGap, -textY);
+ } else { // case of title
+ svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);
+ }
}
- legendItem.lineHeight = lineHeight;
- legendItem.height = Math.max(height, 16) + 3;
- legendItem.width = width;
+ if(legendItem) {
+ legendItem.lineHeight = lineHeight;
+ legendItem.height = Math.max(height, 16) + 3;
+ legendItem.width = width;
+ } else { // case of title
+ opts._titleWidth = width;
+ opts._titleHeight = height;
+ }
+}
+
+function getTitleSize(opts) {
+ var w = 0;
+ var h = 0;
+
+ var side = opts.title.side;
+ if(side) {
+ if(side.indexOf('left') !== -1) {
+ w = opts._titleWidth;
+ }
+ if(side.indexOf('top') !== -1) {
+ h = opts._titleHeight;
+ }
+ }
+
+ return [w, h];
}
/*
@@ -26005,6 +26115,7 @@ function computeLegendDimensions(gd, groups, traces) {
var fullLayout = gd._fullLayout;
var opts = fullLayout.legend;
var gs = fullLayout._size;
+
var isVertical = helpers.isVertical(opts);
var isGrouped = helpers.isGrouped(opts);
@@ -26028,11 +26139,15 @@ function computeLegendDimensions(gd, groups, traces) {
var toggleRectWidth = 0;
opts._width = 0;
opts._height = 0;
+ var titleSize = getTitleSize(opts);
if(isVertical) {
traces.each(function(d) {
var h = d[0].height;
- Drawing.setTranslate(this, bw, itemGap + bw + opts._height + h / 2);
+ Drawing.setTranslate(this,
+ bw + titleSize[0],
+ bw + titleSize[1] + opts._height + h / 2 + itemGap
+ );
opts._height += h;
opts._width = Math.max(opts._width, d[0].width);
});
@@ -26082,7 +26197,10 @@ function computeLegendDimensions(gd, groups, traces) {
var offsetY = 0;
d3.select(this).selectAll('g.traces').each(function(d) {
var h = d[0].height;
- Drawing.setTranslate(this, 0, itemGap + bw + h / 2 + offsetY);
+ Drawing.setTranslate(this,
+ titleSize[0],
+ titleSize[1] + bw + itemGap + h / 2 + offsetY
+ );
offsetY += h;
maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);
});
@@ -26125,7 +26243,10 @@ function computeLegendDimensions(gd, groups, traces) {
maxItemHeightInRow = 0;
}
- Drawing.setTranslate(this, bw + offsetX, itemGap + bw + h / 2 + offsetY);
+ Drawing.setTranslate(this,
+ titleSize[0] + bw + offsetX,
+ titleSize[1] + bw + offsetY + h / 2 + itemGap
+ );
rowWidth = offsetX + w + itemGap;
offsetX += next;
@@ -26142,8 +26263,19 @@ function computeLegendDimensions(gd, groups, traces) {
}
}
- opts._width = Math.ceil(opts._width);
- opts._height = Math.ceil(opts._height);
+ opts._width = Math.ceil(
+ Math.max(
+ opts._width + titleSize[0],
+ opts._titleWidth + 2 * (bw + constants.titlePad)
+ )
+ );
+
+ opts._height = Math.ceil(
+ Math.max(
+ opts._height + titleSize[1],
+ opts._titleHeight + 2 * (bw + constants.itemGap)
+ )
+ );
opts._effHeight = Math.min(opts._height, opts._maxHeight);
@@ -26188,7 +26320,7 @@ function getYanchor(opts) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/events":163,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":100,"./get_legend_data":103,"./handle_click":104,"./helpers":105,"./style":107,"d3":16}],103:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26296,7 +26428,7 @@ module.exports = function getLegendData(calcdata, opts) {
},{"../../registry":258,"./helpers":105}],104:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26462,11 +26594,12 @@ module.exports = function handleClick(g, gd, numClicks) {
} else if(mode === 'toggleothers') {
// Compute the clicked index. expandedIndex does what we want for expanded traces
// but also culls hidden traces. That means we have some work to do.
- var isClicked, isInGroup, otherState;
+ var isClicked, isInGroup, notInLegend, otherState;
var isIsolated = true;
for(i = 0; i < fullData.length; i++) {
isClicked = fullData[i] === fullTrace;
- if(isClicked) continue;
+ notInLegend = fullData[i].showlegend !== true;
+ if(isClicked || notInLegend) continue;
isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);
@@ -26491,8 +26624,10 @@ module.exports = function handleClick(g, gd, numClicks) {
case true:
otherState = isIsolated ? true : 'legendonly';
isClicked = fullData[i] === fullTrace;
+ // N.B. consider traces that have a set legendgroup as toggleable
+ notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);
isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);
- setVisibility(fullData[i], isInGroup ? true : otherState);
+ setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);
break;
}
}
@@ -26532,7 +26667,7 @@ module.exports = function handleClick(g, gd, numClicks) {
},{"../../lib":169,"../../registry":258}],105:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26556,7 +26691,7 @@ exports.isReversed = function isReversed(legendLayout) {
},{}],106:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26580,7 +26715,7 @@ module.exports = {
},{"./attributes":99,"./defaults":101,"./draw":102,"./style":107}],107:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26665,6 +26800,7 @@ module.exports = function style(s, gd) {
.enter().append('g')
.classed('legendpoints', true);
})
+ .each(styleSpatial)
.each(styleWaterfalls)
.each(styleFunnels)
.each(styleBars)
@@ -27062,15 +27198,139 @@ module.exports = function style(s, gd) {
stylePie(pts, d0Mod, tMod);
}
}
+
+ function styleSpatial(d) { // i.e. maninly traces having z and colorscale
+ var trace = d[0].trace;
+
+ var useGradient;
+ var ptsData = [];
+ if(trace.visible) {
+ switch(trace.type) {
+ case 'histogram2d' :
+ case 'heatmap' :
+ ptsData = [
+ ['M-15,-2V4H15V-2Z'] // similar to contour
+ ];
+ useGradient = true;
+ break;
+ case 'choropleth' :
+ case 'choroplethmapbox' :
+ ptsData = [
+ ['M-6,-6V6H6V-6Z']
+ ];
+ useGradient = true;
+ break;
+ case 'densitymapbox' :
+ ptsData = [
+ ['M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0']
+ ];
+ useGradient = 'radial';
+ break;
+ case 'cone' :
+ ptsData = [
+ ['M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z'],
+ ['M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z'],
+ ['M-6,-2 A2,2 0 0,0 -6,2 L6,0Z']
+ ];
+ useGradient = false;
+ break;
+ case 'streamtube' :
+ ptsData = [
+ ['M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z'],
+ ['M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z'],
+ ['M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z']
+ ];
+ useGradient = false;
+ break;
+ case 'surface' :
+ ptsData = [
+ ['M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z'],
+ ['M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z']
+ ];
+ useGradient = true;
+ break;
+ case 'mesh3d' :
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6H6L0,6Z']
+ ];
+ useGradient = false;
+ break;
+ case 'volume' :
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6H6L0,6Z']
+ ];
+ useGradient = true;
+ break;
+ case 'isosurface':
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6 A12,24 0 0,0 6,-6 L0,6Z']
+ ];
+ useGradient = false;
+ break;
+ }
+ }
+
+ var pts = d3.select(this).select('g.legendpoints')
+ .selectAll('path.legend3dandfriends')
+ .data(ptsData);
+ pts.enter().append('path').classed('legend3dandfriends', true)
+ .attr('transform', 'translate(20,0)')
+ .style('stroke-miterlimit', 1);
+ pts.exit().remove();
+
+ pts.each(function(dd, i) {
+ var pt = d3.select(this);
+
+ var cOpts = extractOpts(trace);
+ var colorscale = cOpts.colorscale;
+ var reversescale = cOpts.reversescale;
+ var fillGradient = function(s) {
+ if(s.size()) {
+ var gradientID = 'legendfill-' + trace.uid;
+ Drawing.gradient(s, gd, gradientID,
+ getGradientDirection(reversescale, useGradient === 'radial'),
+ colorscale, 'fill');
+ }
+ };
+
+ var fillColor;
+ if(!colorscale) {
+ var color = trace.vertexcolor || trace.facecolor || trace.color;
+ fillColor = Lib.isArrayOrTypedArray(color) ? (color[i] || color[0]) : color;
+ } else {
+ if(!useGradient) {
+ var len = colorscale.length;
+ fillColor =
+ i === 0 ? colorscale[reversescale ? len - 1 : 0][1] : // minimum
+ i === 1 ? colorscale[reversescale ? 0 : len - 1][1] : // maximum
+ colorscale[Math.floor((len - 1) / 2)][1]; // middle
+ }
+ }
+
+ pt.attr('d', dd[0]);
+ if(fillColor) {
+ pt.call(Color.fill, fillColor);
+ } else {
+ pt.call(fillGradient);
+ }
+ });
+ }
};
-function getGradientDirection(reversescale) {
- return reversescale ? 'horizontal' : 'horizontalreversed';
+function getGradientDirection(reversescale, isRadial) {
+ var str = isRadial ? 'radial' : 'horizontal';
+ return str + (reversescale ? '' : 'reversed');
}
-},{"../../lib":169,"../../registry":258,"../../traces/pie/helpers":369,"../../traces/pie/style_one":375,"../../traces/scatter/subtypes":401,"../color":51,"../colorscale/helpers":62,"../drawing":72,"d3":16}],108:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"../../traces/pie/helpers":370,"../../traces/pie/style_one":376,"../../traces/scatter/subtypes":402,"../color":51,"../colorscale/helpers":62,"../drawing":72,"d3":16}],108:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27374,7 +27634,7 @@ function handleDrag3d(gd, ev) {
var button = ev.currentTarget;
var attr = button.getAttribute('data-attr');
var val = button.getAttribute('data-val') || true;
- var sceneIds = gd._fullLayout._subplots.gl3d;
+ var sceneIds = gd._fullLayout._subplots.gl3d || [];
var layoutUpdate = {};
var parts = attr.split('.');
@@ -27539,7 +27799,7 @@ function handleGeo(gd, ev) {
var attr = button.getAttribute('data-attr');
var val = button.getAttribute('data-val') || true;
var fullLayout = gd._fullLayout;
- var geoIds = fullLayout._subplots.geo;
+ var geoIds = fullLayout._subplots.geo || [];
for(var i = 0; i < geoIds.length; i++) {
var id = geoIds[i];
@@ -27550,10 +27810,12 @@ function handleGeo(gd, ev) {
var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;
Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);
- } else if(attr === 'reset') {
- resetView(gd, 'geo');
}
}
+
+ if(attr === 'reset') {
+ resetView(gd, 'geo');
+ }
}
modeBarButtons.hoverClosestGl2d = {
@@ -27689,6 +27951,42 @@ modeBarButtons.resetViewMapbox = {
}
};
+modeBarButtons.zoomInMapbox = {
+ name: 'zoomInMapbox',
+ title: function(gd) { return _(gd, 'Zoom in'); },
+ attr: 'zoom',
+ val: 'in',
+ icon: Icons.zoom_plus,
+ click: handleMapboxZoom
+};
+
+modeBarButtons.zoomOutMapbox = {
+ name: 'zoomOutMapbox',
+ title: function(gd) { return _(gd, 'Zoom out'); },
+ attr: 'zoom',
+ val: 'out',
+ icon: Icons.zoom_minus,
+ click: handleMapboxZoom
+};
+
+function handleMapboxZoom(gd, ev) {
+ var button = ev.currentTarget;
+ var val = button.getAttribute('data-val');
+ var fullLayout = gd._fullLayout;
+ var subplotIds = fullLayout._subplots.mapbox || [];
+ var scalar = 1.05;
+ var aObj = {};
+
+ for(var i = 0; i < subplotIds.length; i++) {
+ var id = subplotIds[i];
+ var current = fullLayout[id].zoom;
+ var next = (val === 'in') ? scalar * current : current / scalar;
+ aObj[id + '.zoom'] = next;
+ }
+
+ Registry.call('_guiRelayout', gd, aObj);
+}
+
function resetView(gd, subplotType) {
var fullLayout = gd._fullLayout;
var subplotIds = fullLayout._subplots[subplotType] || [];
@@ -27711,7 +28009,7 @@ function resetView(gd, subplotType) {
},{"../../fonts/ploticon":153,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258}],109:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27725,7 +28023,7 @@ exports.manage = _dereq_('./manage');
},{"./manage":110}],110:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27852,6 +28150,7 @@ function getButtonGroups(gd) {
hoverGroup = ['hoverClosest3d'];
resetGroup = ['resetCameraDefault3d', 'resetCameraLastSave3d'];
} else if(hasMapbox) {
+ zoomGroup = ['zoomInMapbox', 'zoomOutMapbox'];
hoverGroup = ['toggleHover'];
resetGroup = ['resetViewMapbox'];
} else if(hasGL2D) {
@@ -27988,9 +28287,9 @@ function fillCustomButton(customButtons) {
return customButtons;
}
-},{"../../plots/cartesian/axis_ids":216,"../../registry":258,"../../traces/scatter/subtypes":401,"./buttons":108,"./modebar":111}],111:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axis_ids":216,"../../registry":258,"../../traces/scatter/subtypes":402,"./buttons":108,"./modebar":111}],111:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28336,7 +28635,7 @@ module.exports = createModeBar;
},{"../../fonts/ploticon":153,"../../lib":169,"d3":16,"fast-isnumeric":18}],112:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28472,7 +28771,7 @@ module.exports = {
},{"../../plot_api/plot_template":203,"../../plots/font_attributes":239,"../color/attributes":50}],113:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28501,7 +28800,7 @@ module.exports = {
},{}],114:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28593,7 +28892,7 @@ function getPosDflt(containerOut, layout, counterAxes) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/array_container_defaults":209,"../color":51,"./attributes":112,"./constants":113}],115:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28850,7 +29149,7 @@ function reposition(gd, buttons, opts, axName, selector) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258,"../color":51,"../drawing":72,"./constants":113,"./get_update_object":116,"d3":16}],116:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28904,7 +29203,7 @@ function getXRange(axisLayout, buttonLayout) {
},{"d3":16}],117:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28931,7 +29230,7 @@ module.exports = {
},{"./attributes":112,"./defaults":114,"./draw":115}],118:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29005,7 +29304,7 @@ module.exports = {
},{"../color/attributes":50}],119:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29039,7 +29338,7 @@ module.exports = function calcAutorange(gd) {
},{"../../plots/cartesian/autorange":212,"../../plots/cartesian/axis_ids":216,"./constants":120}],120:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29095,7 +29394,7 @@ module.exports = {
},{}],121:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29181,7 +29480,7 @@ module.exports = function handleDefaults(layoutIn, layoutOut, axName) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/cartesian/axis_ids":216,"./attributes":118,"./oppaxis_attributes":125}],122:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29757,7 +30056,7 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) {
},{"../../lib":169,"../../lib/setcursor":188,"../../plots/cartesian":224,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"../titles":138,"./constants":120,"d3":16}],123:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29832,7 +30131,7 @@ exports.autoMarginOpts = function(gd, ax) {
},{"../../constants/alignment":145,"../../lib/svg_text_utils":190,"../../plots/cartesian/axis_ids":216,"./constants":120}],124:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29871,7 +30170,7 @@ module.exports = {
},{"../../lib":169,"./attributes":118,"./calc_autorange":119,"./defaults":121,"./draw":122,"./helpers":123,"./oppaxis_attributes":125}],125:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29909,7 +30208,7 @@ module.exports = {
},{}],126:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30043,9 +30342,9 @@ module.exports = templatedArray('shape', {
editType: 'arraydraw'
});
-},{"../../lib/extend":164,"../../plot_api/plot_template":203,"../../traces/scatter/attributes":377,"../annotations/attributes":36,"../drawing/attributes":71}],127:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plot_api/plot_template":203,"../../traces/scatter/attributes":378,"../annotations/attributes":36,"../drawing/attributes":71}],127:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30162,7 +30461,7 @@ function shapeBounds(ax, v0, v1, path, paramsToUse) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":128,"./helpers":131}],128:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30226,7 +30525,7 @@ module.exports = {
},{}],129:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30349,7 +30648,7 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":126,"./helpers":131}],130:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30966,7 +31265,7 @@ function movePath(pathIn, moveX, moveY) {
},{"../../lib":169,"../../lib/setcursor":188,"../../plot_api/plot_template":203,"../../plots/cartesian/axes":213,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":128,"./helpers":131}],131:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31087,7 +31386,7 @@ exports.roundPositionForSharpStrokeRendering = function(pos, strokeWidth) {
},{"../../lib":169,"./constants":128}],132:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31114,7 +31413,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":126,"./calc_autorange":127,"./defaults":129,"./draw":130}],133:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31357,7 +31656,7 @@ module.exports = overrideAll(templatedArray('slider', {
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../../plots/animation_attributes":208,"../../plots/font_attributes":239,"../../plots/pad_attributes":244,"./constants":134}],134:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31451,7 +31750,7 @@ module.exports = {
},{}],135:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31566,7 +31865,7 @@ function stepDefaults(valueIn, valueOut) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"./attributes":133,"./constants":134}],136:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32198,7 +32497,7 @@ function drawRail(sliderGroup, sliderOpts) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/svg_text_utils":190,"../../plot_api/plot_template":203,"../../plots/plots":245,"../color":51,"../drawing":72,"./constants":134,"d3":16}],137:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32221,7 +32520,7 @@ module.exports = {
},{"./attributes":133,"./constants":134,"./defaults":135,"./draw":136}],138:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32488,7 +32787,7 @@ module.exports = {
},{"../../constants/alignment":145,"../../constants/interactions":148,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"../color":51,"../drawing":72,"d3":16,"fast-isnumeric":18}],139:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32657,7 +32956,7 @@ module.exports = overrideAll(templatedArray('updatemenu', {
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../../plots/font_attributes":239,"../../plots/pad_attributes":244,"../color/attributes":50}],140:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32738,7 +33037,7 @@ module.exports = {
},{}],141:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32821,7 +33120,7 @@ function buttonDefaults(buttonIn, buttonOut) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"./attributes":139,"./constants":140}],142:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -33476,7 +33775,7 @@ function removeAllButtons(gButton, newMenuIndexAttr) {
arguments[4][137][0].apply(exports,arguments)
},{"./attributes":139,"./constants":140,"./defaults":141,"./draw":142,"dup":137}],144:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -33941,7 +34240,7 @@ ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY)
},{"../../lib":169,"../color":51,"../drawing":72,"d3":16}],145:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34006,7 +34305,7 @@ module.exports = {
},{}],146:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34022,7 +34321,7 @@ module.exports = {
},{}],147:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34060,7 +34359,7 @@ module.exports = {
},{}],148:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34083,7 +34382,7 @@ module.exports = {
},{}],149:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34148,7 +34447,7 @@ module.exports = {
},{}],150:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34172,7 +34471,7 @@ exports.svgAttrs = {
},{}],151:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34182,7 +34481,7 @@ exports.svgAttrs = {
'use strict';
// package version injected by `npm run preprocess`
-exports.version = '1.51.3';
+exports.version = '1.52.1';
// inject promise polyfill
_dereq_('es6-promise').polyfill();
@@ -34238,6 +34537,12 @@ register([
_dereq_('./locale-en-us')
]);
+// locales that are present in the window should be loaded
+if(window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) {
+ register(window.PlotlyLocales);
+ delete window.PlotlyLocales;
+}
+
// plot icons
exports.Icons = _dereq_('./fonts/ploticon');
@@ -34251,9 +34556,9 @@ exports.Queue = _dereq_('./lib/queue');
// export d3 used in the bundle
exports.d3 = _dereq_('d3');
-},{"../build/plotcss":1,"./components/annotations":44,"./components/annotations3d":49,"./components/colorbar":57,"./components/colorscale":63,"./components/errorbars":78,"./components/fx":89,"./components/grid":93,"./components/images":98,"./components/legend":106,"./components/rangeselector":117,"./components/rangeslider":124,"./components/shapes":132,"./components/sliders":137,"./components/updatemenus":143,"./fonts/mathjax_config":152,"./fonts/ploticon":153,"./lib/queue":183,"./locale-en":194,"./locale-en-us":193,"./plot_api":198,"./plot_api/plot_schema":202,"./plots/plots":245,"./registry":258,"./snapshot":263,"./traces/scatter":389,"d3":16,"es6-promise":17}],152:[function(_dereq_,module,exports){
+},{"../build/plotcss":1,"./components/annotations":44,"./components/annotations3d":49,"./components/colorbar":57,"./components/colorscale":63,"./components/errorbars":78,"./components/fx":89,"./components/grid":93,"./components/images":98,"./components/legend":106,"./components/rangeselector":117,"./components/rangeslider":124,"./components/shapes":132,"./components/sliders":137,"./components/updatemenus":143,"./fonts/mathjax_config":152,"./fonts/ploticon":153,"./lib/queue":183,"./locale-en":194,"./locale-en-us":193,"./plot_api":198,"./plot_api/plot_schema":202,"./plots/plots":245,"./registry":258,"./snapshot":263,"./traces/scatter":390,"d3":16,"es6-promise":17}],152:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34284,7 +34589,7 @@ module.exports = function() {
},{}],153:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34428,7 +34733,7 @@ module.exports = {
},{}],154:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34492,7 +34797,7 @@ exports.isBottomAnchor = function isBottomAnchor(opts) {
},{}],155:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34733,7 +35038,7 @@ module.exports = {
},{"./mod":176}],156:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34890,7 +35195,7 @@ function _rowLength(z, fn, len0) {
},{}],157:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34923,7 +35228,7 @@ module.exports = function cleanNumber(v) {
},{"../constants/numerical":149,"fast-isnumeric":18}],158:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34951,7 +35256,7 @@ module.exports = function clearGlCanvases(gd) {
},{}],159:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34974,7 +35279,7 @@ module.exports = function clearResponsive(gd) {
},{}],160:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -35438,7 +35743,7 @@ exports.validate = validate;
},{"../components/colorscale/scales":66,"../constants/interactions":148,"../plots/attributes":210,"./array":156,"./mod":176,"./nested_property":177,"./regex":184,"fast-isnumeric":18,"tinycolor2":34}],161:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36024,7 +36329,7 @@ exports.findExactDates = function(data, calendar) {
},{"../constants/numerical":149,"../registry":258,"./loggers":173,"./mod":176,"d3":16,"fast-isnumeric":18}],162:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36127,7 +36432,7 @@ module.exports = {
},{"./loggers":173,"d3":16}],163:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36300,7 +36605,7 @@ module.exports = Events;
},{"events":15}],164:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36414,7 +36719,7 @@ function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) {
},{"./is_plain_object.js":170}],165:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36465,7 +36770,7 @@ module.exports = function filterUnique(array) {
},{}],166:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36513,7 +36818,7 @@ function isCalcData(cont) {
},{}],167:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36757,7 +37062,7 @@ exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {
},{"./mod":176}],168:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36773,7 +37078,7 @@ module.exports = function identity(d) { return d; };
},{}],169:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -37358,7 +37663,9 @@ lib.tagSelected = function(calcTrace, trace, ptNumber2cdIndex) {
for(var i = 0; i < selectedpoints.length; i++) {
var ptIndex = selectedpoints[i];
- if(lib.isIndex(ptIndex)) {
+ if(lib.isIndex(ptIndex) ||
+ (lib.isArrayOrTypedArray(ptIndex) && lib.isIndex(ptIndex[0]) && lib.isIndex(ptIndex[1]))
+ ) {
var ptNumber = ptIndex2ptNumber ? ptIndex2ptNumber[ptIndex] : ptIndex;
var cdIndex = ptNumber2cdIndex ? ptNumber2cdIndex[ptNumber] : ptNumber;
@@ -37956,38 +38263,59 @@ lib.isHidden = function(gd) {
return !display || display === 'none';
};
-lib.getTextTransform = function(opts) {
- var textX = opts.textX;
- var textY = opts.textY;
- var targetX = opts.targetX;
- var targetY = opts.targetY;
- var scale = opts.scale;
- var rotate = opts.rotate;
+/** Return transform text for bar bar-like rectangles and pie-like slices
+ * @param {object} transform
+ * - targetX: desired position on the x-axis
+ * - targetY: desired position on the y-axis
+ * - textX: text middle position on the x-axis
+ * - textY: text middle position on the y-axis
+ * - anchorX: (optional) text anchor position on the x-axis (computed from textX), zero for middle anchor
+ * - anchorY: (optional) text anchor position on the y-axis (computed from textY), zero for middle anchor
+ * - scale: (optional) scale applied after translate
+ * - rotate: (optional) rotation applied after scale
+ * - noCenter: when defined no extra arguments needed in rotation
+ */
+lib.getTextTransform = function(transform) {
+ var noCenter = transform.noCenter;
+ var textX = transform.textX;
+ var textY = transform.textY;
+ var targetX = transform.targetX;
+ var targetY = transform.targetY;
+ var anchorX = transform.anchorX || 0;
+ var anchorY = transform.anchorY || 0;
+ var rotate = transform.rotate;
+ var scale = transform.scale;
+ if(!scale) scale = 0;
+ else if(scale > 1) scale = 1;
- var transformScale;
- var transformRotate;
- var transformTranslate;
+ return (
+ 'translate(' +
+ (targetX - scale * (textX + anchorX)) + ',' +
+ (targetY - scale * (textY + anchorY)) +
+ ')' +
+ (scale < 1 ?
+ 'scale(' + scale + ')' : ''
+ ) +
+ (rotate ?
+ 'rotate(' + rotate +
+ (noCenter ? '' : ' ' + textX + ' ' + textY) +
+ ')' : ''
+ )
+ );
+};
- if(scale < 1) transformScale = 'scale(' + scale + ') ';
- else {
- scale = 1;
- transformScale = '';
- }
-
- transformRotate = (rotate) ?
- 'rotate(' + rotate + ' ' + textX + ' ' + textY + ') ' : '';
-
- // Note that scaling also affects the center of the text box
- var translateX = (targetX - scale * textX);
- var translateY = (targetY - scale * textY);
- transformTranslate = 'translate(' + translateX + ' ' + translateY + ')';
-
- return transformTranslate + transformScale + transformRotate;
+lib.ensureUniformFontSize = function(gd, baseFont) {
+ var out = lib.extendFlat({}, baseFont);
+ out.size = Math.max(
+ baseFont.size,
+ gd._fullLayout.uniformtext.minsize || 0
+ );
+ return out;
};
},{"../constants/numerical":149,"./anchor_utils":154,"./angles":155,"./array":156,"./clean_number":157,"./clear_responsive":159,"./coerce":160,"./dates":161,"./dom":162,"./extend":164,"./filter_unique":165,"./filter_visible":166,"./geometry2d":167,"./identity":168,"./is_plain_object":170,"./keyed_container":171,"./localize":172,"./loggers":173,"./make_trace_groups":174,"./matrix":175,"./mod":176,"./nested_property":177,"./noop":178,"./notifier":179,"./push_unique":182,"./regex":184,"./relative_attr":185,"./relink_private":186,"./search":187,"./stats":189,"./throttle":191,"./to_log_range":192,"d3":16,"fast-isnumeric":18}],170:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38015,7 +38343,7 @@ module.exports = function isPlainObject(obj) {
},{}],171:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38208,7 +38536,7 @@ module.exports = function keyedContainer(baseObj, path, keyName, valueName) {
},{"./nested_property":177}],172:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38264,7 +38592,7 @@ module.exports = function localize(gd, s) {
},{"../registry":258}],173:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38277,6 +38605,8 @@ module.exports = function localize(gd, s) {
var dfltConfig = _dereq_('../plot_api/plot_config').dfltConfig;
+var notifier = _dereq_('./notifier');
+
var loggers = module.exports = {};
/**
@@ -38286,39 +38616,63 @@ var loggers = module.exports = {};
*/
loggers.log = function() {
+ var i;
+
if(dfltConfig.logging > 1) {
var messages = ['LOG:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.trace || console.log, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 1) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'long');
+ }
};
loggers.warn = function() {
+ var i;
+
if(dfltConfig.logging > 0) {
var messages = ['WARN:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.trace || console.log, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 0) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'stick');
+ }
};
loggers.error = function() {
+ var i;
+
if(dfltConfig.logging > 0) {
var messages = ['ERROR:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.error, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 0) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'stick');
+ }
};
/*
@@ -38346,9 +38700,9 @@ function apply(f, args) {
}
}
-},{"../plot_api/plot_config":201}],174:[function(_dereq_,module,exports){
+},{"../plot_api/plot_config":201,"./notifier":179}],174:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38391,7 +38745,7 @@ module.exports = function makeTraceGroups(traceLayer, cdModule, cls) {
},{"d3":16}],175:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38498,7 +38852,7 @@ exports.apply2DTransform2 = function(transform) {
},{}],176:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38533,7 +38887,7 @@ module.exports = {
},{}],177:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38779,7 +39133,7 @@ function badContainer(container, propStr, propParts) {
},{"./array":156,"fast-isnumeric":18}],178:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38795,7 +39149,7 @@ module.exports = function noop() {};
},{}],179:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38866,18 +39220,24 @@ module.exports = function(text, displayLength) {
p.append('span').text(lines[i]);
}
- note.transition()
- .duration(700)
- .style('opacity', 1)
- .transition()
- .delay(ts)
- .call(killNote);
+ if(displayLength === 'stick') {
+ note.transition()
+ .duration(350)
+ .style('opacity', 1);
+ } else {
+ note.transition()
+ .duration(700)
+ .style('opacity', 1)
+ .transition()
+ .delay(ts)
+ .call(killNote);
+ }
});
};
},{"d3":16,"fast-isnumeric":18}],180:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38925,7 +39285,7 @@ module.exports = function overrideCursor(el3, csr) {
},{"./setcursor":188}],181:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39177,7 +39537,7 @@ polygon.filter = function filter(pts, tolerance) {
},{"../constants/numerical":149,"./matrix":175}],182:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39215,7 +39575,7 @@ module.exports = function pushUnique(array, item) {
},{}],183:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39423,7 +39783,7 @@ module.exports = queue;
},{"../lib":169,"../plot_api/plot_config":201}],184:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39453,7 +39813,7 @@ exports.counter = function(head, tail, openEnded, matchBeginning) {
},{}],185:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39506,7 +39866,7 @@ module.exports = function(baseAttr, relativeAttr) {
},{}],186:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39564,7 +39924,7 @@ module.exports = function relinkPrivateKeys(toContainer, fromContainer) {
},{"./array":156,"./is_plain_object":170}],187:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39751,7 +40111,7 @@ exports.findIndexOfMin = function(arr, fn) {
},{"./identity":168,"./loggers":173,"fast-isnumeric":18}],188:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39774,7 +40134,7 @@ module.exports = function setCursor(el3, csr) {
},{}],189:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39884,7 +40244,7 @@ exports.interp = function(arr, n) {
},{"./array":156,"fast-isnumeric":18}],190:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40700,7 +41060,7 @@ exports.makeEditable = function(context, options) {
},{"../constants/alignment":145,"../constants/xmlns_namespaces":150,"../lib":169,"d3":16}],191:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40803,7 +41163,7 @@ function _clearTimeout(cache) {
},{}],192:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40831,7 +41191,7 @@ module.exports = function toLogRange(val, range) {
},{"fast-isnumeric":18}],193:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40853,7 +41213,7 @@ module.exports = {
},{}],194:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40896,7 +41256,7 @@ module.exports = {
},{}],195:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40954,7 +41314,7 @@ module.exports = function containerArrayMatch(astr) {
},{"../registry":258}],196:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41079,7 +41439,7 @@ function overrideOne(attr, editTypeOverride, overrideContainers, key) {
},{"../lib":169}],197:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41771,7 +42131,7 @@ exports.clearAxisTypes = function(gd, traces, layoutUpdate) {
},{"../components/color":51,"../lib":169,"../plots/cartesian/axis_ids":216,"../plots/plots":245,"../registry":258,"fast-isnumeric":18,"gl-mat4/fromQuat":19}],198:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41814,7 +42174,7 @@ exports.validateTemplate = templateApi.validateTemplate;
},{"../snapshot/download":260,"./plot_api":200,"./template_api":205,"./to_image":206,"./validate":207}],199:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -42027,7 +42387,7 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np,
},{"../lib/is_plain_object":170,"../lib/loggers":173,"../lib/noop":178,"../lib/search":187,"../registry":258,"./container_array_match":195}],200:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -44470,7 +44830,7 @@ var layoutUIControlPatterns = [
{pattern: /(hover|drag)mode$/, attr: 'modebar.uirevision'},
{pattern: /^(scene\d*)\.camera/},
- {pattern: /^(geo\d*)\.(projection|center)/},
+ {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/},
@@ -45889,7 +46249,7 @@ exports._storeDirectGUIEdit = _storeDirectGUIEdit;
},{"../components/color":51,"../components/drawing":72,"../constants/xmlns_namespaces":150,"../lib":169,"../lib/events":163,"../lib/queue":183,"../lib/svg_text_utils":190,"../plots/cartesian/axes":213,"../plots/cartesian/constants":219,"../plots/cartesian/graph_interact":222,"../plots/cartesian/select":230,"../plots/plots":245,"../plots/polar/legacy":248,"../registry":258,"./edit_types":196,"./helpers":197,"./manage_arrays":199,"./plot_config":201,"./plot_schema":202,"./subroutines":204,"d3":16,"fast-isnumeric":18,"has-hover":20}],201:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -46138,11 +46498,21 @@ var configAttributes = {
},
logging: {
- valType: 'boolean',
+ valType: 'integer',
+ min: 0,
+ max: 2,
dflt: 1,
},
+ notifyOnLogging: {
+ valType: 'integer',
+ min: 0,
+ max: 2,
+ dflt: 0,
+
+ },
+
queueLength: {
valType: 'integer',
min: 0,
@@ -46194,7 +46564,7 @@ module.exports = {
},{}],202:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -46905,7 +47275,7 @@ function insertAttrs(baseAttrs, newAttrs, astr) {
},{"../lib":169,"../plots/animation_attributes":208,"../plots/attributes":210,"../plots/frame_attributes":240,"../plots/layout_attributes":243,"../plots/polar/legacy/area_attributes":246,"../plots/polar/legacy/axis_attributes":247,"../registry":258,"./edit_types":196,"./plot_config":201}],203:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -47217,7 +47587,7 @@ exports.arrayEditor = function(parentIn, containerStr, itemOut) {
},{"../lib":169,"../plots/attributes":210}],204:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -47957,7 +48327,7 @@ exports.drawMarginPushers = function(gd) {
},{"../components/color":51,"../components/drawing":72,"../components/modebar":109,"../components/titles":138,"../constants/alignment":145,"../lib":169,"../lib/clear_gl_canvases":158,"../plots/cartesian/autorange":212,"../plots/cartesian/axes":213,"../plots/cartesian/constraints":220,"../plots/plots":245,"../registry":258,"d3":16}],205:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -48419,7 +48789,7 @@ function format(opts) {
},{"../lib":169,"../plots/attributes":210,"../plots/plots":245,"./plot_config":201,"./plot_schema":202,"./plot_template":203}],206:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -48622,7 +48992,7 @@ module.exports = toImage;
},{"../lib":169,"../snapshot/helpers":262,"../snapshot/svgtoimg":264,"../snapshot/tosvg":266,"./plot_api":200,"fast-isnumeric":18}],207:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49049,7 +49419,7 @@ function convertPathToAttributeString(path) {
},{"../lib":169,"../plots/plots":245,"./plot_config":201,"./plot_schema":202}],208:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49161,7 +49531,7 @@ module.exports = {
},{}],209:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49256,7 +49626,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
},{"../lib":169,"../plot_api/plot_template":203}],210:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49397,7 +49767,7 @@ module.exports = {
},{"../components/fx/attributes":81}],211:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49426,7 +49796,7 @@ module.exports = {
},{}],212:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49925,7 +50295,7 @@ function greaterOrEqual(v0, v1) { return v0 >= v1; }
},{"../../constants/numerical":149,"../../lib":169,"../../registry":258,"fast-isnumeric":18}],213:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53022,7 +53392,7 @@ function isAngular(ax) {
},{"../../components/color":51,"../../components/drawing":72,"../../components/titles":138,"../../constants/alignment":145,"../../constants/numerical":149,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"./autorange":212,"./axis_autotype":214,"./axis_ids":216,"./clean_ticks":218,"./layout_attributes":225,"./set_convert":231,"d3":16,"fast-isnumeric":18}],214:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53117,7 +53487,7 @@ function multiCategory(a) {
},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],215:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53240,7 +53610,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
},{"../../lib":169,"../../registry":258,"./category_order_defaults":217,"./layout_attributes":225,"./line_grid_defaults":227,"./set_convert":231,"./tick_label_defaults":232,"./tick_mark_defaults":233,"./tick_value_defaults":234}],216:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53367,7 +53737,7 @@ exports.getAxisGroup = function getAxisGroup(fullLayout, axId) {
},{"../../registry":258,"./constants":219}],217:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53461,7 +53831,7 @@ module.exports = function handleCategoryOrderDefaults(containerIn, containerOut,
},{}],218:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53549,7 +53919,7 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],219:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53639,7 +54009,7 @@ module.exports = {
},{"../../lib/regex":184}],220:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -54025,7 +54395,7 @@ function updateDomain(ax, factor) {
},{"../../constants/alignment":145,"../../constants/numerical":149,"../../lib":169,"./autorange":212,"./axis_ids":216,"./scale_zoom":229}],221:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55265,7 +55635,7 @@ module.exports = {
},{"../../components/color":51,"../../components/dragelement":69,"../../components/drawing":72,"../../components/fx":89,"../../constants/alignment":145,"../../lib":169,"../../lib/clear_gl_canvases":158,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plot_api/subroutines":204,"../../registry":258,"../plots":245,"./axes":213,"./axis_ids":216,"./constants":219,"./scale_zoom":229,"./select":230,"d3":16,"has-passive-events":21,"tinycolor2":34}],222:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55433,7 +55803,7 @@ exports.updateFx = function(gd) {
},{"../../components/dragelement":69,"../../components/fx":89,"../../lib/setcursor":188,"./constants":219,"./dragbox":221,"d3":16}],223:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55508,7 +55878,7 @@ module.exports = function makeIncludeComponents(containerArrayName) {
},{"../../lib":169,"../../registry":258}],224:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -56125,7 +56495,7 @@ exports.updateFx = _dereq_('./graph_interact').updateFx;
},{"../../components/drawing":72,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"../get_data":241,"../plots":245,"./attributes":211,"./axis_ids":216,"./constants":219,"./graph_interact":222,"./layout_attributes":225,"./layout_defaults":226,"./transition_axes":235,"d3":16}],225:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -56726,7 +57096,7 @@ module.exports = {
},{"../../components/color/attributes":50,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../lib/extend":164,"../../plot_api/plot_template":203,"../font_attributes":239,"./constants":219}],226:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57106,7 +57476,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
},{"../../components/color":51,"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258,"../layout_attributes":243,"./axis_defaults":215,"./axis_ids":216,"./constraints":220,"./layout_attributes":225,"./position_defaults":228,"./type_defaults":236}],227:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57171,7 +57541,7 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer
},{"../../components/color/attributes":50,"../../lib":169,"tinycolor2":34}],228:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57259,7 +57629,7 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer
},{"../../lib":169,"fast-isnumeric":18}],229:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57287,7 +57657,7 @@ module.exports = function scaleZoom(ax, factor, centerFraction) {
},{"../../constants/alignment":145}],230:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58092,7 +58462,7 @@ module.exports = {
},{"../../components/color":51,"../../components/fx":89,"../../components/fx/helpers":86,"../../lib":169,"../../lib/clear_gl_canvases":158,"../../lib/polygon":181,"../../lib/throttle":191,"../../plot_api/subroutines":204,"../../registry":258,"./axis_ids":216,"./constants":219,"polybooljs":25}],231:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58762,7 +59132,7 @@ module.exports = function setConvert(ax, fullLayout) {
},{"../../constants/numerical":149,"../../lib":169,"./axis_ids":216,"./constants":219,"d3":16,"fast-isnumeric":18}],232:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58881,7 +59251,7 @@ function tickformatstopDefaults(valueIn, valueOut) {
},{"../../lib":169,"../array_container_defaults":209,"./layout_attributes":225}],233:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58914,7 +59284,7 @@ module.exports = function handleTickDefaults(containerIn, containerOut, coerce,
},{"../../lib":169,"./layout_attributes":225}],234:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58956,7 +59326,7 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe
},{"./clean_ticks":218}],235:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59169,7 +59539,7 @@ module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnComple
},{"../../components/drawing":72,"../../lib":169,"../../registry":258,"./axes":213,"d3":16}],236:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59210,6 +59580,7 @@ function setAutoType(ax, data) {
var id = ax._id;
var axLetter = id.charAt(0);
+ var i;
// support 3d
if(id.indexOf('scene') !== -1) id = axLetter;
@@ -59220,7 +59591,8 @@ function setAutoType(ax, data) {
// first check for histograms, as the count direction
// should always default to a linear axis
if(d0.type === 'histogram' &&
- axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']) {
+ axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']
+ ) {
ax.type = 'linear';
return;
}
@@ -59228,7 +59600,13 @@ function setAutoType(ax, data) {
var calAttr = axLetter + 'calendar';
var calendar = d0[calAttr];
var opts = {noMultiCategory: !traceIs(d0, 'cartesian') || traceIs(d0, 'noMultiCategory')};
- var i;
+
+ // To not confuse 2D x/y used for per-box sample points for multicategory coordinates
+ if(d0.type === 'box' && d0._hasPreCompStats &&
+ axLetter === {h: 'x', v: 'y'}[d0.orientation || 'v']
+ ) {
+ opts.noMultiCategory = true;
+ }
// check all boxes on this x axis to see
// if they're dates, numbers, or categories
@@ -59298,7 +59676,7 @@ function isBoxWithoutPositionCoords(trace, axLetter) {
},{"../../registry":258,"./axis_autotype":214}],237:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59725,7 +60103,7 @@ function crawl(attrs, callback, path, depth) {
},{"../lib":169,"../registry":258}],238:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59837,7 +60215,7 @@ exports.defaults = function(containerOut, layout, coerce, dfltDomains) {
},{"../lib/extend":164}],239:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59902,7 +60280,7 @@ module.exports = function(opts) {
},{}],240:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59948,7 +60326,7 @@ module.exports = {
},{}],241:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60077,7 +60455,7 @@ exports.getSubplotData = function getSubplotData(data, type, subplotId) {
},{"../registry":258,"./cartesian/constants":219}],242:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60111,7 +60489,7 @@ module.exports = project;
},{}],243:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60202,6 +60580,25 @@ module.exports = {
}),
editType: 'layoutstyle'
},
+ uniformtext: {
+ mode: {
+ valType: 'enumerated',
+ values: [false, 'hide', 'show'],
+ dflt: false,
+
+ editType: 'plot',
+
+ },
+ minsize: {
+ valType: 'number',
+ min: 0,
+ dflt: 0,
+
+ editType: 'plot',
+
+ },
+ editType: 'plot'
+ },
autosize: {
valType: 'boolean',
@@ -60415,7 +60812,7 @@ module.exports = {
},{"../components/color/attributes":50,"../lib/extend":164,"./animation_attributes":208,"./font_attributes":239,"./pad_attributes":244}],244:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60470,7 +60867,7 @@ module.exports = function(opts) {
},{}],245:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -61772,9 +62169,14 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
coerce('meta');
if(Registry.traceIs(traceOut, 'showLegend')) {
- traceOut._dfltShowLegend = true;
- coerce('showlegend');
+ Lib.coerce(traceIn, traceOut,
+ _module.attributes.showlegend ? _module.attributes : plots.attributes,
+ 'showlegend'
+ );
+
coerce('legendgroup');
+
+ traceOut._dfltShowLegend = true;
} else {
traceOut._dfltShowLegend = false;
}
@@ -61938,6 +62340,11 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
coerce('title.pad.b');
coerce('title.pad.l');
+ var uniformtextMode = coerce('uniformtext.mode');
+ if(uniformtextMode) {
+ coerce('uniformtext.minsize');
+ }
+
// Make sure that autosize is defaulted to *true*
// on layouts with no set width and height for backward compatibly,
// in particular https://plot.ly/javascript/responsive-fluid-layout/
@@ -63736,7 +64143,7 @@ plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullD
},{"../components/color":51,"../constants/numerical":149,"../lib":169,"../plot_api/plot_schema":202,"../plot_api/plot_template":203,"../plots/get_data":241,"../registry":258,"./animation_attributes":208,"./attributes":210,"./cartesian/axis_ids":216,"./command":237,"./font_attributes":239,"./frame_attributes":240,"./layout_attributes":243,"d3":16,"fast-isnumeric":18}],246:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63778,9 +64185,9 @@ module.exports = {
}
};
-},{"../../../lib/extend":164,"../../../traces/scatter/attributes":377}],247:[function(_dereq_,module,exports){
+},{"../../../lib/extend":164,"../../../traces/scatter/attributes":378}],247:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63902,7 +64309,7 @@ module.exports = overrideAll({
},{"../../../lib/extend":164,"../../../plot_api/edit_types":196,"../../cartesian/layout_attributes":225}],248:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63917,7 +64324,7 @@ Polar.manager = _dereq_('./micropolar_manager');
},{"./micropolar":249,"./micropolar_manager":250}],249:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65337,7 +65744,7 @@ var µ = module.exports = { version: '0.2.2' };
},{"../../../constants/alignment":145,"../../../lib":169,"d3":16}],250:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65423,7 +65830,7 @@ manager.fillLayout = function(_gd) {
},{"../../../components/color":51,"../../../lib":169,"./micropolar":249,"./undo_manager":251,"d3":16}],251:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65489,7 +65896,7 @@ module.exports = function UndoManager() {
},{}],252:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65574,7 +65981,7 @@ module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, o
},{"../lib":169,"../plot_api/plot_template":203,"./domain":238}],253:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65657,7 +66064,7 @@ exports.texttemplateAttrs = function(opts, extra) {
},{"../constants/docs":146}],254:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65741,7 +66148,7 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
},{"../../lib":169,"../../plots/get_data":241,"./layout_attributes":255,"./layout_defaults":256,"./ternary":257}],255:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65848,7 +66255,7 @@ attrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {
},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plot_api/edit_types":196,"../cartesian/layout_attributes":225,"../domain":238}],256:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65980,7 +66387,7 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut
},{"../../components/color":51,"../../lib":169,"../../plot_api/plot_template":203,"../cartesian/line_grid_defaults":227,"../cartesian/tick_label_defaults":232,"../cartesian/tick_mark_defaults":233,"../cartesian/tick_value_defaults":234,"../subplot_defaults":252,"./layout_attributes":255}],257:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -66737,7 +67144,7 @@ function removeZoombox(gd) {
},{"../../components/color":51,"../../components/dragelement":69,"../../components/drawing":72,"../../components/fx":89,"../../components/titles":138,"../../lib":169,"../../lib/extend":164,"../../registry":258,"../cartesian/axes":213,"../cartesian/constants":219,"../cartesian/select":230,"../cartesian/set_convert":231,"../plots":245,"d3":16,"tinycolor2":34}],258:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67203,7 +67610,7 @@ function getTraceType(traceType) {
},{"./lib/dom":162,"./lib/extend":164,"./lib/is_plain_object":170,"./lib/loggers":173,"./lib/noop":178,"./lib/push_unique":182,"./plots/attributes":210,"./plots/layout_attributes":243}],259:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67376,7 +67783,7 @@ module.exports = function clonePlot(graphObj, options) {
},{"../lib":169,"../registry":258}],260:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67446,7 +67853,7 @@ module.exports = downloadImage;
},{"../lib":169,"../plot_api/to_image":206,"./filesaver":261,"./helpers":262}],261:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67526,7 +67933,7 @@ module.exports = fileSaver;
},{"../lib":169,"./helpers":262}],262:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67603,7 +68010,7 @@ exports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas.
},{"../registry":258}],263:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67629,7 +68036,7 @@ module.exports = Snapshot;
},{"./cloneplot":259,"./download":260,"./helpers":262,"./svgtoimg":264,"./toimage":265,"./tosvg":266}],264:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67756,7 +68163,7 @@ module.exports = svgToImg;
},{"../lib":169,"./helpers":262,"events":15}],265:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67833,7 +68240,7 @@ module.exports = toImage;
},{"../lib":169,"../registry":258,"./cloneplot":259,"./helpers":262,"./svgtoimg":264,"./tosvg":266,"events":15}],266:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67949,21 +68356,29 @@ module.exports = function toSVG(gd, format, scale) {
}
});
- svg.selectAll('.point, .scatterpts, .legendfill>path, .legendlines>path, .cbfill').each(function() {
- var pt = d3.select(this);
- // similar to font family styles above,
- // we must remove " after the SVG DOM has been serialized
- var fill = this.style.fill;
- if(fill && fill.indexOf('url(') !== -1) {
- pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
- }
+ if(fullLayout._gradientUrlQueryParts) {
+ var queryParts = [];
+ for(var k in fullLayout._gradientUrlQueryParts) queryParts.push(k);
- var stroke = this.style.stroke;
- if(stroke && stroke.indexOf('url(') !== -1) {
- pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ if(queryParts.length) {
+ svg.selectAll(queryParts.join(',')).each(function() {
+ var pt = d3.select(this);
+
+ // similar to font family styles above,
+ // we must remove " after the SVG DOM has been serialized
+ var fill = this.style.fill;
+ if(fill && fill.indexOf('url(') !== -1) {
+ pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ }
+
+ var stroke = this.style.stroke;
+ if(stroke && stroke.indexOf('url(') !== -1) {
+ pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ }
+ });
}
- });
+ }
if(format === 'pdf' || format === 'eps') {
// these formats make the extra line MathJax adds around symbols look super thick in some cases
@@ -68014,7 +68429,7 @@ module.exports = function toSVG(gd, format, scale) {
},{"../components/color":51,"../components/drawing":72,"../constants/xmlns_namespaces":150,"../lib":169,"d3":16}],267:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68047,7 +68462,7 @@ module.exports = function arraysToCalcdata(cd, trace) {
},{"../../lib":169}],268:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68254,9 +68669,9 @@ module.exports = {
}
};
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"../scatter/attributes":377,"./constants":270}],269:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"../scatter/attributes":378,"./constants":270}],269:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68319,9 +68734,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"../../plots/cartesian/axes":213,"../scatter/calc_selection":379,"./arrays_to_calcdata":267}],270:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"../../plots/cartesian/axes":213,"../scatter/calc_selection":380,"./arrays_to_calcdata":267}],270:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68343,7 +68758,7 @@ module.exports = {
},{}],271:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69111,7 +69526,7 @@ module.exports = {
},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216,"../../registry":258,"./sieve.js":281,"fast-isnumeric":18}],272:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69239,6 +69654,7 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);
var moduleHasTextangle = !(opts.moduleHasTextangle === false);
var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);
+ var hasPathbar = !!opts.hasPathbar;
var hasBoth = Array.isArray(textposition) || textposition === 'auto';
var hasInside = hasBoth || textposition === 'inside';
@@ -69259,8 +69675,15 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
}
coerceFont(coerce, 'insidetextfont', insideTextFontDefault);
- if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);
+ if(hasPathbar) {
+ var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);
+ if(isColorInheritedFromLayoutFont) {
+ delete pathbarTextFontDefault.color;
+ }
+ coerceFont(coerce, 'pathbar.textfont', pathbarTextFontDefault);
+ }
+ if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);
if(moduleHasSelected) coerce('selected.textfont.color');
if(moduleHasUnselected) coerce('unselected.textfont.color');
@@ -69283,9 +69706,9 @@ module.exports = {
handleText: handleText
};
-},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../scatter/xy_defaults":403,"./attributes":268,"./style_defaults":283}],273:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../scatter/xy_defaults":404,"./attributes":268,"./style_defaults":283}],273:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69314,7 +69737,7 @@ module.exports = function eventData(out, pt, trace) {
},{}],274:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69392,7 +69815,7 @@ exports.getLineWidth = function(trace, di) {
},{"../../lib":169,"fast-isnumeric":18,"tinycolor2":34}],275:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69577,7 +70000,7 @@ module.exports = {
},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./helpers":274}],276:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69613,9 +70036,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../scatter/marker_colorbar":395,"./arrays_to_calcdata":267,"./attributes":268,"./calc":269,"./cross_trace_calc":271,"./defaults":272,"./event_data":273,"./hover":275,"./layout_attributes":277,"./layout_defaults":278,"./plot":279,"./select":280,"./style":282}],277:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../scatter/marker_colorbar":396,"./arrays_to_calcdata":267,"./attributes":268,"./calc":269,"./cross_trace_calc":271,"./defaults":272,"./event_data":273,"./hover":275,"./layout_attributes":277,"./layout_defaults":278,"./plot":279,"./select":280,"./style":282}],277:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69663,7 +70086,7 @@ module.exports = {
},{}],278:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69723,7 +70146,7 @@ module.exports = function(layoutIn, layoutOut, fullData) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./layout_attributes":277}],279:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69743,6 +70166,10 @@ var Drawing = _dereq_('../../components/drawing');
var Registry = _dereq_('../../registry');
var tickText = _dereq_('../../plots/cartesian/axes').tickText;
+var uniformText = _dereq_('./uniform_text');
+var recordMinTextSize = uniformText.recordMinTextSize;
+var clearMinTextSize = uniformText.clearMinTextSize;
+
var style = _dereq_('./style');
var helpers = _dereq_('./helpers');
var constants = _dereq_('./constants');
@@ -69782,8 +70209,8 @@ function getXY(di, xa, ya, isHorizontal) {
return isHorizontal ? [s, p] : [p, s];
}
-function transition(selection, opts, makeOnCompleteCallback) {
- if(hasTransition(opts)) {
+function transition(selection, fullLayout, opts, makeOnCompleteCallback) {
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
var onComplete;
if(makeOnCompleteCallback) {
onComplete = makeOnCompleteCallback();
@@ -69815,6 +70242,9 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
gap: fullLayout.bargap,
groupgap: fullLayout.bargroupgap
};
+
+ // don't clear bar when this is called from waterfall or funnel
+ clearMinTextSize('bar', fullLayout);
}
var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {
@@ -69933,13 +70363,13 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
y1 = fixpx(y1, y0);
}
- var sel = transition(Lib.ensureSingle(bar, 'path'), opts, makeOnCompleteCallback);
+ var sel = transition(Lib.ensureSingle(bar, 'path'), fullLayout, opts, makeOnCompleteCallback);
sel
.style('vector-effect', 'non-scaling-stroke')
.attr('d', 'M' + x0 + ',' + y0 + 'V' + y1 + 'H' + x1 + 'V' + y0 + 'Z')
.call(Drawing.setClipUrl, plotinfo.layerClipId, gd);
- if(hasTransition(opts)) {
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
var styleFns = Drawing.makePointStyleFns(trace);
Drawing.singlePointStyle(di, sel, trace, styleFns, gd);
}
@@ -69961,14 +70391,14 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
Registry.getComponentMethod('errorbars', 'plot')(gd, bartraces, plotinfo, opts);
}
-function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
+function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
var xa = plotinfo.xaxis;
var ya = plotinfo.yaxis;
var fullLayout = gd._fullLayout;
var textPosition;
- function appendTextNode(bar, text, textFont) {
+ function appendTextNode(bar, text, font) {
var textSelection = Lib.ensureSingle(bar, 'text')
.text(text)
.attr({
@@ -69978,17 +70408,17 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
// tex and regular text together
'data-notex': 1
})
- .call(Drawing.font, textFont)
+ .call(Drawing.font, font)
.call(svgTextUtils.convertToTspans, gd);
return textSelection;
}
// get trace attributes
- var trace = calcTrace[0].trace;
+ var trace = cd[0].trace;
var isHorizontal = (trace.orientation === 'h');
- var text = getText(fullLayout, calcTrace, i, xa, ya);
+ var text = getText(fullLayout, cd, i, xa, ya);
textPosition = getTextPosition(trace, i);
// compute text position
@@ -69996,7 +70426,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
opts.mode === 'stack' ||
opts.mode === 'relative';
- var calcBar = calcTrace[i];
+ var calcBar = cd[i];
var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost;
if(!text ||
@@ -70009,7 +70439,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
var layoutFont = fullLayout.font;
- var barColor = style.getBarColor(calcTrace[i], trace);
+ var barColor = style.getBarColor(cd[i], trace);
var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor);
var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont);
@@ -70042,6 +70472,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
var textBB;
var textWidth;
var textHeight;
+ var font;
if(textPosition === 'outside') {
if(!isOutmostBar && !calcBar.hasB) textPosition = 'inside';
@@ -70051,7 +70482,10 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
if(isOutmostBar) {
// draw text using insideTextFont and check if it fits inside bar
textPosition = 'inside';
- textSelection = appendTextNode(bar, text, insideTextFont);
+
+ font = Lib.ensureUniformFontSize(gd, insideTextFont);
+
+ textSelection = appendTextNode(bar, text, font);
textBB = Drawing.bBox(textSelection.node()),
textWidth = textBB.width,
@@ -70081,9 +70515,9 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
if(!textSelection) {
- textSelection = appendTextNode(bar, text,
- (textPosition === 'outside') ?
- outsideTextFont : insideTextFont);
+ font = Lib.ensureUniformFontSize(gd, (textPosition === 'outside') ? outsideTextFont : insideTextFont);
+
+ textSelection = appendTextNode(bar, text, font);
var currentTransform = textSelection.attr('transform');
textSelection.attr('transform', '');
@@ -70098,6 +70532,8 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
}
+ var angle = trace.textangle;
+
// compute text transform
var transform, constrained;
if(textPosition === 'outside') {
@@ -70105,42 +70541,64 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
trace.constraintext === 'both' ||
trace.constraintext === 'outside';
- transform = Lib.getTextTransform(toMoveOutsideBar(x0, x1, y0, y1, textBB, {
+ transform = toMoveOutsideBar(x0, x1, y0, y1, textBB, {
isHorizontal: isHorizontal,
constrained: constrained,
- angle: trace.textangle
- }));
+ angle: angle
+ });
} else {
constrained =
trace.constraintext === 'both' ||
trace.constraintext === 'inside';
- transform = Lib.getTextTransform(toMoveInsideBar(x0, x1, y0, y1, textBB, {
+ transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {
isHorizontal: isHorizontal,
constrained: constrained,
- angle: trace.textangle,
+ angle: angle,
anchor: trace.insidetextanchor
- }));
+ });
}
- transition(textSelection, opts, makeOnCompleteCallback).attr('transform', transform);
+ transform.fontSize = font.size;
+ recordMinTextSize(trace.type, transform, fullLayout);
+ calcBar.transform = transform;
+
+ transition(textSelection, fullLayout, opts, makeOnCompleteCallback)
+ .attr('transform', Lib.getTextTransform(transform));
}
function getRotateFromAngle(angle) {
return (angle === 'auto') ? 0 : angle;
}
+function getRotatedTextSize(textBB, rotate) {
+ var a = Math.PI / 180 * rotate;
+ var absSin = Math.abs(Math.sin(a));
+ var absCos = Math.abs(Math.cos(a));
+
+ return {
+ x: textBB.width * absCos + textBB.height * absSin,
+ y: textBB.width * absSin + textBB.height * absCos
+ };
+}
+
function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
var isHorizontal = !!opts.isHorizontal;
var constrained = !!opts.constrained;
var angle = opts.angle || 0;
- var anchor = opts.anchor || 0;
+ var anchor = opts.anchor || 'end';
+ var isEnd = anchor === 'end';
+ var isStart = anchor === 'start';
+ var leftToRight = opts.leftToRight || 0; // left: -1, center: 0, right: 1
+ var toRight = (leftToRight + 1) / 2;
+ var toLeft = 1 - toRight;
var textWidth = textBB.width;
var textHeight = textBB.height;
var lx = Math.abs(x1 - x0);
var ly = Math.abs(y1 - y0);
+ // compute remaining space
var textpad = (
lx > (2 * TEXTPAD) &&
ly > (2 * TEXTPAD)
@@ -70149,67 +70607,70 @@ function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
lx -= 2 * textpad;
ly -= 2 * textpad;
- var autoRotate = (angle === 'auto');
- var isAutoRotated = false;
- if(autoRotate &&
+ var rotate = getRotateFromAngle(angle);
+ if((angle === 'auto') &&
!(textWidth <= lx && textHeight <= ly) &&
(textWidth > lx || textHeight > ly) && (
!(textWidth > ly || textHeight > lx) ||
((textWidth < textHeight) !== (lx < ly))
)) {
- isAutoRotated = true;
+ rotate += 90;
}
- if(isAutoRotated) {
- // don't rotate yet only swap bar width with height
- var tmp = ly;
- ly = lx;
- lx = tmp;
+ var t = getRotatedTextSize(textBB, rotate);
+
+ var scale = 1;
+ if(constrained) {
+ scale = Math.min(
+ 1,
+ lx / t.x,
+ ly / t.y
+ );
}
- var rotate = getRotateFromAngle(angle);
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
-
- // compute and apply text padding
- var dx = Math.max(lx * absCos, ly * absSin);
- var dy = Math.max(lx * absSin, ly * absCos);
-
- var scale = (constrained) ?
- Math.min(dx / textWidth, dy / textHeight) :
- Math.max(absCos, absSin);
-
- scale = Math.min(1, scale);
-
// compute text and target positions
- var targetX = (x0 + x1) / 2;
+ var textX = (
+ textBB.left * toLeft +
+ textBB.right * toRight
+ );
+ var textY = (textBB.top + textBB.bottom) / 2;
+ var targetX = (
+ (x0 + TEXTPAD) * toLeft +
+ (x1 - TEXTPAD) * toRight
+ );
var targetY = (y0 + y1) / 2;
-
- if(anchor !== 'middle') { // case of 'start' or 'end'
- var targetWidth = scale * (isHorizontal !== isAutoRotated ? textHeight : textWidth);
- var targetHeight = scale * (isHorizontal !== isAutoRotated ? textWidth : textHeight);
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
+ var anchorX = 0;
+ var anchorY = 0;
+ if(isStart || isEnd) {
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
+ var dir = isHorizontal ? dirSign(x0, x1) : dirSign(y0, y1);
if(isHorizontal) {
- textpad *= dirSign(x0, x1);
- targetX = (anchor === 'start') ? x0 + textpad : x1 - textpad;
+ if(isStart) {
+ targetX = x0 + dir * textpad;
+ anchorX = -dir * extrapad;
+ } else {
+ targetX = x1 - dir * textpad;
+ anchorX = dir * extrapad;
+ }
} else {
- textpad *= dirSign(y0, y1);
- targetY = (anchor === 'start') ? y0 + textpad : y1 - textpad;
+ if(isStart) {
+ targetY = y0 + dir * textpad;
+ anchorY = -dir * extrapad;
+ } else {
+ targetY = y1 - dir * textpad;
+ anchorY = dir * extrapad;
+ }
}
}
- var textX = (textBB.left + textBB.right) / 2;
- var textY = (textBB.top + textBB.bottom) / 2;
-
- // lastly apply auto rotation
- if(isAutoRotated) rotate += 90;
-
return {
textX: textX,
textY: textY,
targetX: targetX,
targetY: targetY,
+ anchorX: anchorX,
+ anchorY: anchorY,
scale: scale,
rotate: rotate
};
@@ -70243,45 +70704,47 @@ function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {
}
var rotate = getRotateFromAngle(angle);
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
+ var t = getRotatedTextSize(textBB, rotate);
// compute text and target positions
- var targetWidth = scale * (isHorizontal ? textHeight : textWidth);
- var targetHeight = scale * (isHorizontal ? textWidth : textHeight);
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
-
- var targetX = (x0 + x1) / 2;
- var targetY = (y0 + y1) / 2;
-
- if(isHorizontal) {
- targetX = x1 - textpad * dirSign(x1, x0);
- } else {
- targetY = y1 + textpad * dirSign(y0, y1);
- }
-
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
var textX = (textBB.left + textBB.right) / 2;
var textY = (textBB.top + textBB.bottom) / 2;
+ var targetX = (x0 + x1) / 2;
+ var targetY = (y0 + y1) / 2;
+ var anchorX = 0;
+ var anchorY = 0;
+
+ var dir = isHorizontal ? dirSign(x1, x0) : dirSign(y0, y1);
+ if(isHorizontal) {
+ targetX = x1 - dir * textpad;
+ anchorX = dir * extrapad;
+ } else {
+ targetY = y1 + dir * textpad;
+ anchorY = -dir * extrapad;
+ }
return {
textX: textX,
textY: textY,
targetX: targetX,
targetY: targetY,
+ anchorX: anchorX,
+ anchorY: anchorY,
scale: scale,
rotate: rotate
};
}
-function getText(fullLayout, calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function getText(fullLayout, cd, index, xa, ya) {
+ var trace = cd[0].trace;
var texttemplate = trace.texttemplate;
var value;
if(texttemplate) {
- value = calcTexttemplate(fullLayout, calcTrace, index, xa, ya);
+ value = calcTexttemplate(fullLayout, cd, index, xa, ya);
} else if(trace.textinfo) {
- value = calcTextinfo(calcTrace, index, xa, ya);
+ value = calcTextinfo(cd, index, xa, ya);
} else {
value = helpers.getValue(trace.text, index);
}
@@ -70294,8 +70757,8 @@ function getTextPosition(trace, index) {
return helpers.coerceEnumerated(attributeTextPosition, value);
}
-function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function calcTexttemplate(fullLayout, cd, index, xa, ya) {
+ var trace = cd[0].trace;
var texttemplate = Lib.castOption(trace, index, 'texttemplate');
if(!texttemplate) return '';
var isWaterfall = (trace.type === 'waterfall');
@@ -70323,7 +70786,7 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
return tickText(vAxis, +v, true).text;
}
- var cdi = calcTrace[index];
+ var cdi = cd[index];
var obj = {};
obj.label = cdi.p;
@@ -70364,8 +70827,8 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});
}
-function calcTextinfo(calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function calcTextinfo(cd, index, xa, ya) {
+ var trace = cd[0].trace;
var isHorizontal = (trace.orientation === 'h');
var isWaterfall = (trace.type === 'waterfall');
var isFunnel = (trace.type === 'funnel');
@@ -70381,7 +70844,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
}
var textinfo = trace.textinfo;
- var cdi = calcTrace[index];
+ var cdi = cd[index];
var parts = textinfo.split('+');
var text = [];
@@ -70390,7 +70853,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };
if(hasFlag('label')) {
- text.push(formatLabel(calcTrace[index].p));
+ text.push(formatLabel(cd[index].p));
}
if(hasFlag('text')) {
@@ -70440,13 +70903,12 @@ function calcTextinfo(calcTrace, index, xa, ya) {
module.exports = {
plot: plot,
- toMoveInsideBar: toMoveInsideBar,
- toMoveOutsideBar: toMoveOutsideBar
+ toMoveInsideBar: toMoveInsideBar
};
-},{"../../components/color":51,"../../components/drawing":72,"../../components/fx/helpers":86,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"./attributes":268,"./constants":270,"./helpers":274,"./style":282,"d3":16,"fast-isnumeric":18}],280:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../components/fx/helpers":86,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"./attributes":268,"./constants":270,"./helpers":274,"./style":282,"./uniform_text":284,"d3":16,"fast-isnumeric":18}],280:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70510,7 +70972,7 @@ function getCentroid(d, xa, ya, isHorizontal, isFunnel) {
},{}],281:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70621,7 +71083,7 @@ Sieve.prototype.getLabel = function getLabel(position, value) {
},{"../../constants/numerical":149,"../../lib":169}],282:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70636,6 +71098,7 @@ var Drawing = _dereq_('../../components/drawing');
var Lib = _dereq_('../../lib');
var Registry = _dereq_('../../registry');
+var resizeText = _dereq_('./uniform_text').resizeText;
var attributes = _dereq_('./attributes');
var attributeTextFont = attributes.textfont;
var attributeInsideTextFont = attributes.insidetextfont;
@@ -70644,6 +71107,8 @@ var helpers = _dereq_('./helpers');
function style(gd) {
var s = d3.select(gd).selectAll('g.barlayer').selectAll('g.trace');
+ resizeText(gd, s, 'bar');
+
var barcount = s.size();
var fullLayout = gd._fullLayout;
@@ -70679,7 +71144,8 @@ function stylePoints(sel, trace, gd) {
function styleTextPoints(sel, trace, gd) {
sel.selectAll('text').each(function(d) {
var tx = d3.select(this);
- var font = determineFont(tx, d, trace, gd);
+ var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
+
Drawing.font(tx, font);
});
}
@@ -70706,7 +71172,7 @@ function styleTextInSelectionMode(txs, trace, gd) {
var font;
if(d.selected) {
- font = Lib.extendFlat({}, determineFont(tx, d, trace, gd));
+ font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;
if(selectedFontColor) {
@@ -70793,12 +71259,13 @@ module.exports = {
styleOnSelect: styleOnSelect,
getInsideTextFont: getInsideTextFont,
getOutsideTextFont: getOutsideTextFont,
- getBarColor: getBarColor
+ getBarColor: getBarColor,
+ resizeText: resizeText
};
-},{"../../components/color":51,"../../components/drawing":72,"../../lib":169,"../../registry":258,"./attributes":268,"./helpers":274,"d3":16}],283:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../lib":169,"../../registry":258,"./attributes":268,"./helpers":274,"./uniform_text":284,"d3":16}],283:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70836,7 +71303,93 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, default
},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62}],284:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
+* All rights reserved.
+*
+* This source code is licensed under the MIT license found in the
+* LICENSE file in the root directory of this source tree.
+*/
+
+'use strict';
+
+var d3 = _dereq_('d3');
+var Lib = _dereq_('../../lib');
+
+function resizeText(gd, gTrace, traceType) {
+ var fullLayout = gd._fullLayout;
+ var minSize = fullLayout['_' + traceType + 'Text_minsize'];
+ if(minSize) {
+ var shouldHide = fullLayout.uniformtext.mode === 'hide';
+
+ var selector;
+ switch(traceType) {
+ case 'funnelarea' :
+ case 'pie' :
+ case 'sunburst' :
+ selector = 'g.slice';
+ break;
+ case 'treemap' :
+ selector = 'g.slice, g.pathbar';
+ break;
+ default :
+ selector = 'g.points > g.point';
+ }
+
+ gTrace.selectAll(selector).each(function(d) {
+ var transform = d.transform;
+ if(transform) {
+ transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize;
+
+ var el = d3.select(this).select('text');
+ el.attr('transform', Lib.getTextTransform(transform));
+ }
+ });
+ }
+}
+
+function recordMinTextSize(
+ traceType, // in
+ transform, // inout
+ fullLayout // inout
+) {
+ if(fullLayout.uniformtext.mode) {
+ var minKey = getMinKey(traceType);
+ var minSize = fullLayout.uniformtext.minsize;
+ var size = transform.scale * transform.fontSize;
+
+ transform.hide = size < minSize;
+
+ fullLayout[minKey] = fullLayout[minKey] || Infinity;
+ if(!transform.hide) {
+ fullLayout[minKey] = Math.min(
+ fullLayout[minKey],
+ Math.max(size, minSize)
+ );
+ }
+ }
+}
+
+function clearMinTextSize(
+ traceType, // in
+ fullLayout // inout
+) {
+ var minKey = getMinKey(traceType);
+ fullLayout[minKey] = undefined;
+}
+
+function getMinKey(traceType) {
+ return '_' + traceType + 'Text_minsize';
+}
+
+module.exports = {
+ recordMinTextSize: recordMinTextSize,
+ clearMinTextSize: clearMinTextSize,
+ resizeText: resizeText
+};
+
+},{"../../lib":169,"d3":16}],285:[function(_dereq_,module,exports){
+/**
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70877,30 +71430,58 @@ module.exports = {
editType: 'calc+clearAxisTypes',
},
+
+ dx: {
+ valType: 'number',
+
+ editType: 'calc',
+
+ },
+ dy: {
+ valType: 'number',
+
+ editType: 'calc',
+
+ },
+
name: {
valType: 'string',
editType: 'calc+clearAxisTypes',
},
- text: extendFlat({}, scatterAttrs.text, {
+
+ q1: {
+ valType: 'data_array',
- }),
- hovertext: extendFlat({}, scatterAttrs.hovertext, {
+ editType: 'calc+clearAxisTypes',
- }),
- hovertemplate: hovertemplateAttrs({
+ },
+ median: {
+ valType: 'data_array',
- }),
- whiskerwidth: {
- valType: 'number',
- min: 0,
- max: 1,
- dflt: 0.5,
+ editType: 'calc+clearAxisTypes',
+
+ },
+ q3: {
+ valType: 'data_array',
+
+ editType: 'calc+clearAxisTypes',
+
+ },
+ lowerfence: {
+ valType: 'data_array',
editType: 'calc',
},
+ upperfence: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+
notched: {
valType: 'boolean',
@@ -70916,18 +71497,21 @@ module.exports = {
editType: 'calc',
},
- boxpoints: {
- valType: 'enumerated',
- values: ['all', 'outliers', 'suspectedoutliers', false],
- dflt: 'outliers',
+ notchspan: {
+ valType: 'data_array',
editType: 'calc',
},
- boxmean: {
+
+ // TODO
+ // maybe add
+ // - loweroutlierbound / upperoutlierbound
+ // - lowersuspectedoutlierbound / uppersuspectedoutlierbound
+
+ boxpoints: {
valType: 'enumerated',
- values: [true, 'sd', false],
- dflt: false,
+ values: ['all', 'outliers', 'suspectedoutliers', false],
editType: 'calc',
@@ -70948,6 +71532,27 @@ module.exports = {
editType: 'calc',
},
+
+ boxmean: {
+ valType: 'enumerated',
+ values: [true, 'sd', false],
+
+ editType: 'calc',
+
+ },
+ mean: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+ sd: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+
orientation: {
valType: 'enumerated',
values: ['v', 'h'],
@@ -70956,6 +71561,15 @@ module.exports = {
},
+ quartilemethod: {
+ valType: 'enumerated',
+ values: ['linear', 'exclusive', 'inclusive'],
+ dflt: 'linear',
+
+ editType: 'calc',
+
+ },
+
width: {
valType: 'number',
min: 0,
@@ -71006,6 +71620,7 @@ module.exports = {
},
editType: 'plot'
},
+
line: {
color: {
valType: 'color',
@@ -71023,8 +71638,19 @@ module.exports = {
},
editType: 'plot'
},
+
fillcolor: scatterAttrs.fillcolor,
+ whiskerwidth: {
+ valType: 'number',
+ min: 0,
+ max: 1,
+ dflt: 0.5,
+
+ editType: 'calc',
+
+ },
+
offsetgroup: barAttrs.offsetgroup,
alignmentgroup: barAttrs.alignmentgroup,
@@ -71036,6 +71662,17 @@ module.exports = {
marker: scatterAttrs.unselected.marker,
editType: 'style'
},
+
+ text: extendFlat({}, scatterAttrs.text, {
+
+ }),
+ hovertext: extendFlat({}, scatterAttrs.hovertext, {
+
+ }),
+ hovertemplate: hovertemplateAttrs({
+
+ }),
+
hoveron: {
valType: 'flaglist',
flags: ['boxes', 'points'],
@@ -71046,9 +71683,9 @@ module.exports = {
}
};
-},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"../scatter/attributes":377}],285:[function(_dereq_,module,exports){
+},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"../scatter/attributes":378}],286:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71059,11 +71696,12 @@ module.exports = {
var isNumeric = _dereq_('fast-isnumeric');
-var Lib = _dereq_('../../lib');
-var _ = Lib._;
var Axes = _dereq_('../../plots/cartesian/axes');
+var Lib = _dereq_('../../lib');
+
+var BADNUM = _dereq_('../../constants/numerical').BADNUM;
+var _ = Lib._;
-// outlier definition based on http://www.physics.csbsju.edu/stats/box2.html
module.exports = function calc(gd, trace) {
var fullLayout = gd._fullLayout;
var xa = Axes.getFromId(gd, trace.xaxis || 'x');
@@ -71073,7 +71711,7 @@ module.exports = function calc(gd, trace) {
// N.B. violin reuses same Box.calc
var numKey = trace.type === 'violin' ? '_numViolins' : '_numBoxes';
- var i;
+ var i, j;
var valAxis, valLetter;
var posAxis, posLetter;
@@ -71089,108 +71727,238 @@ module.exports = function calc(gd, trace) {
posLetter = 'x';
}
- var val = valAxis.makeCalcdata(trace, valLetter);
- var pos = getPos(trace, posLetter, posAxis, val, fullLayout[numKey]);
-
- var dv = Lib.distinctVals(pos);
+ var posArray = getPos(trace, posLetter, posAxis, fullLayout[numKey]);
+ var dv = Lib.distinctVals(posArray);
var posDistinct = dv.vals;
var dPos = dv.minDiff / 2;
- var posBins = makeBins(posDistinct, dPos);
-
- var pLen = posDistinct.length;
- var ptsPerBin = initNestedArray(pLen);
-
- // bin pts info per position bins
- for(i = 0; i < trace._length; i++) {
- var v = val[i];
- if(!isNumeric(v)) continue;
-
- var n = Lib.findBin(pos[i], posBins);
- if(n >= 0 && n < pLen) {
- var pt = {v: v, i: i};
- arraysToCalcdata(pt, trace, i);
- ptsPerBin[n].push(pt);
- }
- }
+ // item in trace calcdata
var cdi;
+ // array of {v: v, i, i} sample pts
+ var pts;
+ // values of the `pts` array of objects
+ var boxVals;
+ // length of sample
+ var N;
+ // single sample point
+ var pt;
+ // single sample value
+ var v;
+
+ // filter function for outlier pts
+ // outlier definition based on http://www.physics.csbsju.edu/stats/box2.html
var ptFilterFn = (trace.boxpoints || trace.points) === 'all' ?
Lib.identity :
function(pt) { return (pt.v < cdi.lf || pt.v > cdi.uf); };
- var minLowerNotch = Infinity;
- var maxUpperNotch = -Infinity;
+ if(trace._hasPreCompStats) {
+ var valArrayRaw = trace[valLetter];
+ var d2c = function(k) { return valAxis.d2c((trace[k] || [])[i]); };
+ var minVal = Infinity;
+ var maxVal = -Infinity;
- // build calcdata trace items, one item per distinct position
- for(i = 0; i < pLen; i++) {
- if(ptsPerBin[i].length > 0) {
- var pts = ptsPerBin[i].sort(sortByVal);
- var boxVals = pts.map(extractVal);
- var bvLen = boxVals.length;
+ for(i = 0; i < trace._length; i++) {
+ var posi = posArray[i];
+ if(!isNumeric(posi)) continue;
cdi = {};
- cdi.pos = posDistinct[i];
- cdi.pts = pts;
+ cdi.pos = cdi[posLetter] = posi;
- // Sort categories by values
- cdi[posLetter] = cdi.pos;
- cdi[valLetter] = cdi.pts.map(function(pt) { return pt.v; });
+ cdi.q1 = d2c('q1');
+ cdi.med = d2c('median');
+ cdi.q3 = d2c('q3');
- cdi.min = boxVals[0];
- cdi.max = boxVals[bvLen - 1];
- cdi.mean = Lib.mean(boxVals, bvLen);
- cdi.sd = Lib.stdev(boxVals, bvLen, cdi.mean);
+ pts = [];
+ if(valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {
+ for(j = 0; j < valArrayRaw[i].length; j++) {
+ v = valAxis.d2c(valArrayRaw[i][j]);
+ if(v !== BADNUM) {
+ pt = {v: v, i: [i, j]};
+ arraysToCalcdata(pt, trace, [i, j]);
+ pts.push(pt);
+ }
+ }
+ }
+ cdi.pts = pts.sort(sortByVal);
+ boxVals = cdi[valLetter] = pts.map(extractVal);
+ N = boxVals.length;
- // first quartile
- cdi.q1 = Lib.interp(boxVals, 0.25);
- // median
- cdi.med = Lib.interp(boxVals, 0.5);
- // third quartile
- cdi.q3 = Lib.interp(boxVals, 0.75);
+ if(cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM &&
+ cdi.med >= cdi.q1 && cdi.q3 >= cdi.med
+ ) {
+ var lf = d2c('lowerfence');
+ cdi.lf = (lf !== BADNUM && lf <= cdi.q1) ?
+ lf :
+ computeLowerFence(cdi, boxVals, N);
- // lower and upper fences - last point inside
- // 1.5 interquartile ranges from quartiles
- cdi.lf = Math.min(
- cdi.q1,
- boxVals[Math.min(
- Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,
- bvLen - 1
- )]
- );
- cdi.uf = Math.max(
- cdi.q3,
- boxVals[Math.max(
- Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),
- 0
- )]
- );
+ var uf = d2c('upperfence');
+ cdi.uf = (uf !== BADNUM && uf >= cdi.q3) ?
+ uf :
+ computeUpperFence(cdi, boxVals, N);
- // lower and upper outliers - 3 IQR out (don't clip to max/min,
- // this is only for discriminating suspected & far outliers)
- cdi.lo = 4 * cdi.q1 - 3 * cdi.q3;
- cdi.uo = 4 * cdi.q3 - 3 * cdi.q1;
+ var mean = d2c('mean');
+ cdi.mean = (mean !== BADNUM) ?
+ mean :
+ (N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2);
- // lower and upper notches ~95% Confidence Intervals for median
- var iqr = cdi.q3 - cdi.q1;
- var mci = 1.57 * iqr / Math.sqrt(bvLen);
- cdi.ln = cdi.med - mci;
- cdi.un = cdi.med + mci;
- minLowerNotch = Math.min(minLowerNotch, cdi.ln);
- maxUpperNotch = Math.max(maxUpperNotch, cdi.un);
+ var sd = d2c('sd');
+ cdi.sd = (mean !== BADNUM && sd >= 0) ?
+ sd :
+ (N ? Lib.stdev(boxVals, N, cdi.mean) : (cdi.q3 - cdi.q1));
+
+ cdi.lo = computeLowerOutlierBound(cdi);
+ cdi.uo = computeUpperOutlierBound(cdi);
+
+ var ns = d2c('notchspan');
+ ns = (ns !== BADNUM && ns > 0) ? ns : computeNotchSpan(cdi, N);
+ cdi.ln = cdi.med - ns;
+ cdi.un = cdi.med + ns;
+
+ var imin = cdi.lf;
+ var imax = cdi.uf;
+ if(trace.boxpoints && boxVals.length) {
+ imin = Math.min(imin, boxVals[0]);
+ imax = Math.max(imax, boxVals[N - 1]);
+ }
+ if(trace.notched) {
+ imin = Math.min(imin, cdi.ln);
+ imax = Math.max(imax, cdi.un);
+ }
+ cdi.min = imin;
+ cdi.max = imax;
+ } else {
+ Lib.warn([
+ 'Invalid input - make sure that q1 <= median <= q3',
+ 'q1 = ' + cdi.q1,
+ 'median = ' + cdi.med,
+ 'q3 = ' + cdi.q3
+ ].join('\n'));
+
+ var v0;
+ if(cdi.med !== BADNUM) {
+ v0 = cdi.med;
+ } else if(cdi.q1 !== BADNUM) {
+ if(cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;
+ else v0 = cdi.q1;
+ } else if(cdi.q3 !== BADNUM) {
+ v0 = cdi.q3;
+ } else {
+ v0 = 0;
+ }
+
+ // draw box as line segment
+ cdi.med = v0;
+ cdi.q1 = cdi.q3 = v0;
+ cdi.lf = cdi.uf = v0;
+ cdi.mean = cdi.sd = v0;
+ cdi.ln = cdi.un = v0;
+ cdi.min = cdi.max = v0;
+ }
+
+ minVal = Math.min(minVal, cdi.min);
+ maxVal = Math.max(maxVal, cdi.max);
cdi.pts2 = pts.filter(ptFilterFn);
cd.push(cdi);
}
+
+ trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
+ [minVal, maxVal],
+ {padded: true}
+ );
+ } else {
+ var valArray = valAxis.makeCalcdata(trace, valLetter);
+ var posBins = makeBins(posDistinct, dPos);
+ var pLen = posDistinct.length;
+ var ptsPerBin = initNestedArray(pLen);
+
+ // bin pts info per position bins
+ for(i = 0; i < trace._length; i++) {
+ v = valArray[i];
+ if(!isNumeric(v)) continue;
+
+ var n = Lib.findBin(posArray[i], posBins);
+ if(n >= 0 && n < pLen) {
+ pt = {v: v, i: i};
+ arraysToCalcdata(pt, trace, i);
+ ptsPerBin[n].push(pt);
+ }
+ }
+
+ var minLowerNotch = Infinity;
+ var maxUpperNotch = -Infinity;
+
+ var quartilemethod = trace.quartilemethod;
+ var usesExclusive = quartilemethod === 'exclusive';
+ var usesInclusive = quartilemethod === 'inclusive';
+
+ // build calcdata trace items, one item per distinct position
+ for(i = 0; i < pLen; i++) {
+ if(ptsPerBin[i].length > 0) {
+ cdi = {};
+ cdi.pos = cdi[posLetter] = posDistinct[i];
+
+ pts = cdi.pts = ptsPerBin[i].sort(sortByVal);
+ boxVals = cdi[valLetter] = pts.map(extractVal);
+ N = boxVals.length;
+
+ cdi.min = boxVals[0];
+ cdi.max = boxVals[N - 1];
+ cdi.mean = Lib.mean(boxVals, N);
+ cdi.sd = Lib.stdev(boxVals, N, cdi.mean);
+ cdi.med = Lib.interp(boxVals, 0.5);
+
+ if((N % 2) && (usesExclusive || usesInclusive)) {
+ var lower;
+ var upper;
+
+ if(usesExclusive) {
+ // do NOT include the median in either half
+ lower = boxVals.slice(0, N / 2);
+ upper = boxVals.slice(N / 2 + 1);
+ } else if(usesInclusive) {
+ // include the median in either half
+ lower = boxVals.slice(0, N / 2 + 1);
+ upper = boxVals.slice(N / 2);
+ }
+
+ cdi.q1 = Lib.interp(lower, 0.5);
+ cdi.q3 = Lib.interp(upper, 0.5);
+ } else {
+ cdi.q1 = Lib.interp(boxVals, 0.25);
+ cdi.q3 = Lib.interp(boxVals, 0.75);
+ }
+
+ // lower and upper fences
+ cdi.lf = computeLowerFence(cdi, boxVals, N);
+ cdi.uf = computeUpperFence(cdi, boxVals, N);
+
+ // lower and upper outliers bounds
+ cdi.lo = computeLowerOutlierBound(cdi);
+ cdi.uo = computeUpperOutlierBound(cdi);
+
+ // lower and upper notches
+ var mci = computeNotchSpan(cdi, N);
+ cdi.ln = cdi.med - mci;
+ cdi.un = cdi.med + mci;
+ minLowerNotch = Math.min(minLowerNotch, cdi.ln);
+ maxUpperNotch = Math.max(maxUpperNotch, cdi.un);
+
+ cdi.pts2 = pts.filter(ptFilterFn);
+
+ cd.push(cdi);
+ }
+ }
+
+ trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
+ trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,
+ {padded: true}
+ );
}
calcSelection(cd, trace);
- trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
- trace.notched ? val.concat([minLowerNotch, maxUpperNotch]) : val,
- {padded: true}
- );
-
if(cd.length > 0) {
cd[0].t = {
num: fullLayout[numKey],
@@ -71221,14 +71989,17 @@ module.exports = function calc(gd, trace) {
// so if you want one box
// per trace, set x0 (y0) to the x (y) value or category for this trace
// (or set x (y) to a constant array matching y (x))
-function getPos(trace, posLetter, posAxis, val, num) {
- if(posLetter in trace) {
+function getPos(trace, posLetter, posAxis, num) {
+ var hasPosArray = posLetter in trace;
+ var hasPos0 = posLetter + '0' in trace;
+ var hasPosStep = 'd' + posLetter in trace;
+
+ if(hasPosArray || (hasPos0 && hasPosStep)) {
return posAxis.makeCalcdata(trace, posLetter);
}
var pos0;
-
- if(posLetter + '0' in trace) {
+ if(hasPos0) {
pos0 = trace[posLetter + '0'];
} else if('name' in trace && (
posAxis.type === 'category' || (
@@ -71248,7 +72019,11 @@ function getPos(trace, posLetter, posAxis, val, num) {
posAxis.r2c_just_indices(pos0) :
posAxis.d2c(pos0, 0, trace[posLetter + 'calendar']);
- return val.map(function() { return pos0c; });
+ var len = trace._length;
+ var out = new Array(len);
+ for(var i = 0; i < len; i++) out[i] = pos0c;
+
+ return out;
}
function makeBins(x, dx) {
@@ -71271,15 +72046,21 @@ function initNestedArray(len) {
return arr;
}
-function arraysToCalcdata(pt, trace, i) {
- var trace2calc = {
- text: 'tx',
- hovertext: 'htx'
- };
+var TRACE_TO_CALC = {
+ text: 'tx',
+ hovertext: 'htx'
+};
- for(var k in trace2calc) {
- if(Array.isArray(trace[k])) {
- pt[trace2calc[k]] = trace[k][i];
+function arraysToCalcdata(pt, trace, ptNumber) {
+ for(var k in TRACE_TO_CALC) {
+ if(Lib.isArrayOrTypedArray(trace[k])) {
+ if(Array.isArray(ptNumber)) {
+ if(Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {
+ pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];
+ }
+ } else {
+ pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];
+ }
}
}
}
@@ -71303,9 +72084,51 @@ function sortByVal(a, b) { return a.v - b.v; }
function extractVal(o) { return o.v; }
-},{"../../lib":169,"../../plots/cartesian/axes":213,"fast-isnumeric":18}],286:[function(_dereq_,module,exports){
+// last point below 1.5 * IQR
+function computeLowerFence(cdi, boxVals, N) {
+ if(N === 0) return cdi.q1;
+ return Math.min(
+ cdi.q1,
+ boxVals[Math.min(
+ Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,
+ N - 1
+ )]
+ );
+}
+
+// last point above 1.5 * IQR
+function computeUpperFence(cdi, boxVals, N) {
+ if(N === 0) return cdi.q3;
+ return Math.max(
+ cdi.q3,
+ boxVals[Math.max(
+ Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),
+ 0
+ )]
+ );
+}
+
+// 3 IQR below (don't clip to max/min,
+// this is only for discriminating suspected & far outliers)
+function computeLowerOutlierBound(cdi) {
+ return 4 * cdi.q1 - 3 * cdi.q3;
+}
+
+// 3 IQR above (don't clip to max/min,
+// this is only for discriminating suspected & far outliers)
+function computeUpperOutlierBound(cdi) {
+ return 4 * cdi.q3 - 3 * cdi.q1;
+}
+
+// 95% confidence intervals for median
+function computeNotchSpan(cdi, N) {
+ if(N === 0) return 0;
+ return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);
+}
+
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"fast-isnumeric":18}],287:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71532,9 +72355,9 @@ module.exports = {
setPositionOffset: setPositionOffset
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216}],287:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216}],288:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71547,6 +72370,7 @@ var Lib = _dereq_('../../lib');
var Registry = _dereq_('../../registry');
var Color = _dereq_('../../components/color');
var handleGroupingDefaults = _dereq_('../bar/defaults').handleGroupingDefaults;
+var autoType = _dereq_('../../plots/cartesian/axis_autotype');
var attributes = _dereq_('./attributes');
function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
@@ -71557,49 +72381,208 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
handleSampleDefaults(traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
+ var hasPreCompStats = traceOut._hasPreCompStats;
+
+ if(hasPreCompStats) {
+ coerce('lowerfence');
+ coerce('upperfence');
+ }
+
coerce('line.color', (traceIn.marker || {}).color || defaultColor);
coerce('line.width');
coerce('fillcolor', Color.addOpacity(traceOut.line.color, 0.5));
- coerce('whiskerwidth');
- coerce('boxmean');
- coerce('width');
+ var boxmeanDflt = false;
+ if(hasPreCompStats) {
+ var mean = coerce('mean');
+ var sd = coerce('sd');
+ if(mean && mean.length) {
+ boxmeanDflt = true;
+ if(sd && sd.length) boxmeanDflt = 'sd';
+ }
+ }
+ coerce('boxmean', boxmeanDflt);
- var notched = coerce('notched', traceIn.notchwidth !== undefined);
+ coerce('whiskerwidth');
+ coerce('width');
+ coerce('quartilemethod');
+
+ var notchedDflt = false;
+ if(hasPreCompStats) {
+ var notchspan = coerce('notchspan');
+ if(notchspan && notchspan.length) {
+ notchedDflt = true;
+ }
+ } else if(Lib.validate(traceIn.notchwidth, attributes.notchwidth)) {
+ notchedDflt = true;
+ }
+ var notched = coerce('notched', notchedDflt);
if(notched) coerce('notchwidth');
handlePointsDefaults(traceIn, traceOut, coerce, {prefix: 'box'});
}
function handleSampleDefaults(traceIn, traceOut, coerce, layout) {
+ function getDims(arr) {
+ var dims = 0;
+ if(arr && arr.length) {
+ dims += 1;
+ if(Lib.isArrayOrTypedArray(arr[0]) && arr[0].length) {
+ dims += 1;
+ }
+ }
+ return dims;
+ }
+
+ function valid(astr) {
+ return Lib.validate(traceIn[astr], attributes[astr]);
+ }
+
var y = coerce('y');
var x = coerce('x');
- var hasX = x && x.length;
+
+ var sLen;
+ if(traceOut.type === 'box') {
+ var q1 = coerce('q1');
+ var median = coerce('median');
+ var q3 = coerce('q3');
+
+ traceOut._hasPreCompStats = (
+ q1 && q1.length &&
+ median && median.length &&
+ q3 && q3.length
+ );
+ sLen = Math.min(
+ Lib.minRowLength(q1),
+ Lib.minRowLength(median),
+ Lib.minRowLength(q3)
+ );
+ }
+
+ var yDims = getDims(y);
+ var xDims = getDims(x);
+ var yLen = yDims && Lib.minRowLength(y);
+ var xLen = xDims && Lib.minRowLength(x);
var defaultOrientation, len;
+ if(traceOut._hasPreCompStats) {
+ switch(String(xDims) + String(yDims)) {
+ // no x / no y
+ case '00':
+ var setInX = valid('x0') || valid('dx');
+ var setInY = valid('y0') || valid('dy');
- if(y && y.length) {
- defaultOrientation = 'v';
- if(hasX) {
- len = Math.min(Lib.minRowLength(x), Lib.minRowLength(y));
- } else {
- coerce('x0');
- len = Lib.minRowLength(y);
+ if(setInY && !setInX) {
+ defaultOrientation = 'h';
+ } else {
+ defaultOrientation = 'v';
+ }
+
+ len = sLen;
+ break;
+ // just x
+ case '10':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen);
+ break;
+ case '20':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length);
+ break;
+ // just y
+ case '01':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, yLen);
+ break;
+ case '02':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, y.length);
+ break;
+ // both
+ case '12':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ break;
+ case '21':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length, yLen);
+ break;
+ case '11':
+ // this one is ill-defined
+ len = 0;
+ break;
+ case '22':
+ var hasCategories = false;
+ var i;
+ for(i = 0; i < x.length; i++) {
+ if(autoType(x[i]) === 'category') {
+ hasCategories = true;
+ break;
+ }
+ }
+
+ if(hasCategories) {
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ } else {
+ for(i = 0; i < y.length; i++) {
+ if(autoType(y[i]) === 'category') {
+ hasCategories = true;
+ break;
+ }
+ }
+
+ if(hasCategories) {
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length, yLen);
+ } else {
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ }
+ }
+ break;
}
- } else if(hasX) {
+ } else if(yDims > 0) {
+ defaultOrientation = 'v';
+ if(xDims > 0) {
+ len = Math.min(xLen, yLen);
+ } else {
+ len = Math.min(yLen);
+ }
+ } else if(xDims > 0) {
defaultOrientation = 'h';
- coerce('y0');
- len = Lib.minRowLength(x);
+ len = Math.min(xLen);
} else {
+ len = 0;
+ }
+
+ if(!len) {
traceOut.visible = false;
return;
}
traceOut._length = len;
+ var orientation = coerce('orientation', defaultOrientation);
+
+ // these are just used for positioning, they never define the sample
+ if(traceOut._hasPreCompStats) {
+ if(orientation === 'v' && xDims === 0) {
+ coerce('x0', 0);
+ coerce('dx', 1);
+ } else if(orientation === 'h' && yDims === 0) {
+ coerce('y0', 0);
+ coerce('dy', 1);
+ }
+ } else {
+ if(orientation === 'v' && xDims === 0) {
+ coerce('x0');
+ } else if(orientation === 'h' && yDims === 0) {
+ coerce('y0');
+ }
+ }
+
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
-
- coerce('orientation', defaultOrientation);
}
function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
@@ -71608,14 +72591,18 @@ function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
var outlierColorDflt = Lib.coerce2(traceIn, traceOut, attributes, 'marker.outliercolor');
var lineoutliercolor = coerce('marker.line.outliercolor');
- var points = coerce(
- prefix + 'points',
- (outlierColorDflt || lineoutliercolor) ? 'suspectedoutliers' : undefined
- );
+ var modeDflt = 'outliers';
+ if(traceOut._hasPreCompStats) {
+ modeDflt = 'all';
+ } else if(outlierColorDflt || lineoutliercolor) {
+ modeDflt = 'suspectedoutliers';
+ }
- if(points) {
- coerce('jitter', points === 'all' ? 0.3 : 0);
- coerce('pointpos', points === 'all' ? -1.5 : 0);
+ var mode = coerce(prefix + 'points', modeDflt);
+
+ if(mode) {
+ coerce('jitter', mode === 'all' ? 0.3 : 0);
+ coerce('pointpos', mode === 'all' ? -1.5 : 0);
coerce('marker.symbol');
coerce('marker.opacity');
@@ -71624,7 +72611,7 @@ function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
coerce('marker.line.color');
coerce('marker.line.width');
- if(points === 'suspectedoutliers') {
+ if(mode === 'suspectedoutliers') {
coerce('marker.line.outliercolor', traceOut.marker.color);
coerce('marker.line.outlierwidth');
}
@@ -71676,9 +72663,9 @@ module.exports = {
handlePointsDefaults: handlePointsDefaults
};
-},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/defaults":272,"./attributes":284}],288:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_autotype":214,"../../registry":258,"../bar/defaults":272,"./attributes":285}],289:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71701,9 +72688,9 @@ module.exports = function eventData(out, pt) {
return out;
};
-},{}],289:[function(_dereq_,module,exports){
+},{}],290:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71986,9 +72973,9 @@ module.exports = {
hoverOnPoints: hoverOnPoints
};
-},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],290:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],291:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72021,9 +73008,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":284,"./calc":285,"./cross_trace_calc":286,"./defaults":287,"./event_data":288,"./hover":289,"./layout_attributes":291,"./layout_defaults":292,"./plot":293,"./select":294,"./style":295}],291:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":285,"./calc":286,"./cross_trace_calc":287,"./defaults":288,"./event_data":289,"./hover":290,"./layout_attributes":292,"./layout_defaults":293,"./plot":294,"./select":295,"./style":296}],292:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72062,9 +73049,9 @@ module.exports = {
}
};
-},{}],292:[function(_dereq_,module,exports){
+},{}],293:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72108,9 +73095,9 @@ module.exports = {
_supply: _supply
};
-},{"../../lib":169,"../../registry":258,"./layout_attributes":291}],293:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"./layout_attributes":292}],294:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72432,9 +73419,9 @@ module.exports = {
plotBoxMean: plotBoxMean
};
-},{"../../components/drawing":72,"../../lib":169,"d3":16}],294:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"d3":16}],295:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72481,9 +73468,9 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
return selection;
};
-},{}],295:[function(_dereq_,module,exports){
+},{}],296:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72555,9 +73542,9 @@ module.exports = {
styleOnSelect: styleOnSelect
};
-},{"../../components/color":51,"../../components/drawing":72,"d3":16}],296:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"d3":16}],297:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72742,9 +73729,9 @@ module.exports = extendFlat({
})
);
-},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../constants/filter_ops":147,"../../lib/extend":164,"../../plots/font_attributes":239,"../heatmap/attributes":318,"../scatter/attributes":377}],297:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../constants/filter_ops":147,"../../lib/extend":164,"../../plots/font_attributes":239,"../heatmap/attributes":319,"../scatter/attributes":378}],298:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72795,9 +73782,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../../components/colorscale":63,"../heatmap/calc":319,"./end_plus":307,"./set_contours":315}],298:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../heatmap/calc":320,"./end_plus":308,"./set_contours":316}],299:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72885,9 +73872,9 @@ module.exports = function(pathinfo, contours) {
}
};
-},{}],299:[function(_dereq_,module,exports){
+},{}],300:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72896,7 +73883,7 @@ module.exports = function(pathinfo, contours) {
'use strict';
-var extractOpts = _dereq_('../../components/colorscale').extractOpts;
+var Colorscale = _dereq_('../../components/colorscale');
var makeColorMap = _dereq_('./make_color_map');
var endPlus = _dereq_('./end_plus');
@@ -72908,8 +73895,10 @@ function calc(gd, trace, opts) {
var colorMap = makeColorMap(trace, {isColorbar: true});
if(coloring === 'heatmap') {
- var cOpts = extractOpts(trace);
- opts._fillgradient = trace.colorscale;
+ var cOpts = Colorscale.extractOpts(trace);
+ opts._fillgradient = cOpts.reversescale ?
+ Colorscale.flipScale(cOpts.colorscale) :
+ cOpts.colorscale;
opts._zrange = [cOpts.min, cOpts.max];
} else if(coloring === 'fill') {
opts._fillcolor = colorMap;
@@ -72934,9 +73923,9 @@ module.exports = {
calc: calc
};
-},{"../../components/colorscale":63,"./end_plus":307,"./make_color_map":312}],300:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"./end_plus":308,"./make_color_map":313}],301:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73012,9 +74001,9 @@ module.exports = {
}
};
-},{}],301:[function(_dereq_,module,exports){
+},{}],302:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73106,9 +74095,9 @@ function handleConstraintValueDefaults(coerce, contours) {
}
}
-},{"../../components/color":51,"../../constants/filter_ops":147,"./label_defaults":311,"fast-isnumeric":18}],302:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../constants/filter_ops":147,"./label_defaults":312,"fast-isnumeric":18}],303:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73185,9 +74174,9 @@ function makeInequalitySettings(operation) {
};
}
-},{"../../constants/filter_ops":147,"fast-isnumeric":18}],303:[function(_dereq_,module,exports){
+},{"../../constants/filter_ops":147,"fast-isnumeric":18}],304:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73214,9 +74203,9 @@ module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerc
if(autoContour || !contourSize) coerce('ncontours');
};
-},{}],304:[function(_dereq_,module,exports){
+},{}],305:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73314,9 +74303,9 @@ function copyPathinfo(pi) {
});
}
-},{"../../lib":169}],305:[function(_dereq_,module,exports){
+},{"../../lib":169}],306:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73365,9 +74354,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
}
};
-},{"../../lib":169,"../heatmap/xyz_defaults":332,"./attributes":296,"./constraint_defaults":301,"./contours_defaults":303,"./style_defaults":317}],306:[function(_dereq_,module,exports){
+},{"../../lib":169,"../heatmap/xyz_defaults":333,"./attributes":297,"./constraint_defaults":302,"./contours_defaults":304,"./style_defaults":318}],307:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73429,9 +74418,9 @@ module.exports = function emptyPathinfo(contours, plotinfo, cd0) {
return pathinfo;
};
-},{"../../lib":169,"./constraint_mapping":302,"./end_plus":307}],307:[function(_dereq_,module,exports){
+},{"../../lib":169,"./constraint_mapping":303,"./end_plus":308}],308:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73449,9 +74438,9 @@ module.exports = function endPlus(contours) {
return contours.end + contours.size / 1e6;
};
-},{}],308:[function(_dereq_,module,exports){
+},{}],309:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73743,9 +74732,9 @@ function getInterpPx(pi, loc, step) {
}
}
-},{"../../lib":169,"./constants":300}],309:[function(_dereq_,module,exports){
+},{"../../lib":169,"./constants":301}],310:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73778,9 +74767,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return hoverData;
};
-},{"../../components/color":51,"../heatmap/hover":325}],310:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../heatmap/hover":326}],311:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73807,9 +74796,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":296,"./calc":297,"./colorbar":299,"./defaults":305,"./hover":309,"./plot":314,"./style":316}],311:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":297,"./calc":298,"./colorbar":300,"./defaults":306,"./hover":310,"./plot":315,"./style":317}],312:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73837,9 +74826,9 @@ module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {
if(opts.hasHover !== false) coerce('zhoverformat');
};
-},{"../../lib":169}],312:[function(_dereq_,module,exports){
+},{"../../lib":169}],313:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73921,9 +74910,9 @@ module.exports = function makeColorMap(trace) {
);
};
-},{"../../components/colorscale":63,"./end_plus":307,"d3":16}],313:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"./end_plus":308,"d3":16}],314:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74013,9 +75002,9 @@ function getMarchingIndex(val, corners) {
return (mi === 15) ? 0 : mi;
}
-},{"./constants":300}],314:[function(_dereq_,module,exports){
+},{"./constants":301}],315:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74697,9 +75686,9 @@ function makeClipMask(cd0) {
return z;
}
-},{"../../components/colorscale":63,"../../components/drawing":72,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/set_convert":231,"../heatmap/plot":329,"./close_boundaries":298,"./constants":300,"./convert_to_constraints":304,"./empty_pathinfo":306,"./find_all_paths":308,"./make_crossings":313,"d3":16}],315:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../components/drawing":72,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/set_convert":231,"../heatmap/plot":330,"./close_boundaries":299,"./constants":301,"./convert_to_constraints":305,"./empty_pathinfo":307,"./find_all_paths":309,"./make_crossings":314,"d3":16}],316:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74801,9 +75790,9 @@ function autoContours(start, end, ncontours) {
return dummyAx;
}
-},{"../../lib":169,"../../plots/cartesian/axes":213}],316:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213}],317:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74882,9 +75871,9 @@ module.exports = function style(gd) {
heatmapStyle(gd);
};
-},{"../../components/drawing":72,"../heatmap/style":330,"./make_color_map":312,"d3":16}],317:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../heatmap/style":331,"./make_color_map":313,"d3":16}],318:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74927,9 +75916,9 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
handleLabelDefaults(coerce, layout, lineColor, opts);
};
-},{"../../components/colorscale/defaults":61,"./label_defaults":311}],318:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"./label_defaults":312}],319:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74939,6 +75928,7 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
'use strict';
var scatterAttrs = _dereq_('../scatter/attributes');
+var baseAttrs = _dereq_('../../plots/attributes');
var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplateAttrs;
var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
var FORMAT_LINK = _dereq_('../../constants/docs').FORMAT_LINK;
@@ -75033,16 +76023,17 @@ module.exports = extendFlat({
editType: 'none',
},
- hovertemplate: hovertemplateAttrs()
+ hovertemplate: hovertemplateAttrs(),
+ showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})
}, {
transforms: undefined
},
colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
);
-},{"../../components/colorscale/attributes":58,"../../constants/docs":146,"../../lib/extend":164,"../../plots/template_attributes":253,"../scatter/attributes":377}],319:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../constants/docs":146,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":378}],320:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75200,9 +76191,9 @@ module.exports = function calc(gd, trace) {
return [cd0];
};
-},{"../../components/colorscale/calc":59,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../histogram2d/calc":347,"./clean_2d_array":320,"./convert_column_xyz":322,"./find_empties":324,"./interp2d":327,"./make_bound_array":328}],320:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../histogram2d/calc":348,"./clean_2d_array":321,"./convert_column_xyz":323,"./find_empties":325,"./interp2d":328,"./make_bound_array":329}],321:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75277,9 +76268,9 @@ module.exports = function clean2dArray(zOld, trace, xa, ya) {
return zNew;
};
-},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],321:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],322:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75293,9 +76284,9 @@ module.exports = {
max: 'zmax'
};
-},{}],322:[function(_dereq_,module,exports){
+},{}],323:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75337,6 +76328,8 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
hovertext = Lib.init2dArray(col2vals.length, col1vals.length);
}
+ var after2before = Lib.init2dArray(col2vals.length, col1vals.length);
+
for(i = 0; i < colLen; i++) {
if(col1[i] !== BADNUM && col2[i] !== BADNUM) {
var i1 = Lib.findBin(col1[i] + col1dv.minDiff / 2, col1vals);
@@ -75347,6 +76340,7 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
var arrayVar = trace[arrayVarName];
var newArray = newArrays[j];
newArray[i2][i1] = arrayVar[i];
+ after2before[i2][i1] = i;
}
if(hasColumnText) text[i2][i1] = textCol[i];
@@ -75369,11 +76363,13 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
if(ax2 && ax2.type === 'category') {
trace['_' + var2Name + 'CategoryMap'] = col2vals.map(function(v) { return ax2._categories[v];});
}
+
+ trace._after2before = after2before;
};
-},{"../../constants/numerical":149,"../../lib":169}],323:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169}],324:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75414,9 +76410,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
};
-},{"../../components/colorscale/defaults":61,"../../lib":169,"./attributes":318,"./style_defaults":331,"./xyz_defaults":332}],324:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../lib":169,"./attributes":319,"./style_defaults":332,"./xyz_defaults":333}],325:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75519,9 +76515,9 @@ module.exports = function findEmpties(z) {
return empties.sort(function(a, b) { return b[2] - a[2]; });
};
-},{"../../lib":169}],325:[function(_dereq_,module,exports){
+},{"../../lib":169}],326:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75634,7 +76630,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
var zLabel = Axes.tickText(dummyAx, zVal, 'hover').text;
return [Lib.extendFlat(pointData, {
- index: [ny, nx],
+ index: trace._after2before ? trace._after2before[ny][nx] : [ny, nx],
// never let a 2D override 1D type as closest point
distance: pointData.maxHoverDistance,
spikeDistance: pointData.maxSpikeDistance,
@@ -75650,9 +76646,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
})];
};
-},{"../../components/colorscale":63,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],326:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],327:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75673,15 +76669,15 @@ module.exports = {
moduleType: 'trace',
name: 'heatmap',
basePlotModule: _dereq_('../../plots/cartesian'),
- categories: ['cartesian', 'svg', '2dMap'],
+ categories: ['cartesian', 'svg', '2dMap', 'showLegend'],
meta: {
}
};
-},{"../../plots/cartesian":224,"./attributes":318,"./calc":319,"./colorbar":321,"./defaults":323,"./hover":325,"./plot":329,"./style":330}],327:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":319,"./calc":320,"./colorbar":322,"./defaults":324,"./hover":326,"./plot":330,"./style":331}],328:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75812,9 +76808,9 @@ function iterateInterp2d(z, emptyPoints, overshoot) {
return maxFractionalChange;
}
-},{"../../lib":169}],328:[function(_dereq_,module,exports){
+},{"../../lib":169}],329:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75900,9 +76896,9 @@ module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks,
return arrayOut;
};
-},{"../../lib":169,"../../registry":258}],329:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],330:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76305,9 +77301,9 @@ function putColor(pixels, pxIndex, c) {
pixels[pxIndex + 3] = Math.round(c[3] * 255);
}
-},{"../../components/colorscale":63,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"d3":16,"tinycolor2":34}],330:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"d3":16,"tinycolor2":34}],331:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76326,9 +77322,9 @@ module.exports = function style(gd) {
});
};
-},{"d3":16}],331:[function(_dereq_,module,exports){
+},{"d3":16}],332:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76349,9 +77345,9 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {
coerce('zhoverformat');
};
-},{}],332:[function(_dereq_,module,exports){
+},{}],333:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76446,9 +77442,9 @@ function isValidZ(z) {
return (allRowsAreArrays && oneRowIsFilled && hasOneNumber);
}
-},{"../../lib":169,"../../registry":258,"fast-isnumeric":18}],333:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"fast-isnumeric":18}],334:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76587,9 +77583,9 @@ module.exports = {
}
};
-},{"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"./bin_attributes":335,"./constants":339}],334:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"./bin_attributes":336,"./constants":340}],335:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76612,9 +77608,9 @@ module.exports = function doAvg(size, counts) {
return total;
};
-},{}],335:[function(_dereq_,module,exports){
+},{}],336:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76647,9 +77643,9 @@ module.exports = function makeBinAttrs(axLetter, match) {
};
};
-},{}],336:[function(_dereq_,module,exports){
+},{}],337:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76721,9 +77717,9 @@ module.exports = {
}
};
-},{"fast-isnumeric":18}],337:[function(_dereq_,module,exports){
+},{"fast-isnumeric":18}],338:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76897,9 +77893,9 @@ function dateParts(v, pa, calendar) {
return parts;
}
-},{"../../constants/numerical":149,"../../plots/cartesian/axes":213}],338:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../plots/cartesian/axes":213}],339:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77454,9 +78450,9 @@ module.exports = {
calcAllAutoBins: calcAllAutoBins
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../bar/arrays_to_calcdata":267,"./average":334,"./bin_functions":336,"./bin_label_vals":337,"./norm_functions":345,"fast-isnumeric":18}],339:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../bar/arrays_to_calcdata":267,"./average":335,"./bin_functions":337,"./bin_label_vals":338,"./norm_functions":346,"fast-isnumeric":18}],340:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77470,9 +78466,9 @@ module.exports = {
eventDataKeys: ['binNumber']
};
-},{}],340:[function(_dereq_,module,exports){
+},{}],341:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77528,7 +78524,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
if(!groupName) groupName = fallbackGroupName;
var axType = getAxisType(traceOut, binDir);
- var calendar = traceOut[binDir + 'calendar'];
+ var calendar = traceOut[binDir + 'calendar'] || '';
var binOpts = allBinOpts[groupName];
var needsNewItem = true;
@@ -77748,9 +78744,9 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
}
};
-},{"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../bar/defaults":272}],341:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../bar/defaults":272}],342:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77822,9 +78818,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
};
-},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/style_defaults":283,"./attributes":333}],342:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/style_defaults":283,"./attributes":334}],343:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77871,9 +78867,9 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) {
return out;
};
-},{}],343:[function(_dereq_,module,exports){
+},{}],344:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77906,9 +78902,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
return pts;
};
-},{"../../plots/cartesian/axes":213,"../bar/hover":275}],344:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213,"../bar/hover":275}],345:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77956,9 +78952,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../bar/cross_trace_calc":271,"../bar/layout_attributes":277,"../bar/layout_defaults":278,"../bar/plot":279,"../bar/select":280,"../bar/style":282,"../scatter/marker_colorbar":395,"./attributes":333,"./calc":338,"./cross_trace_defaults":340,"./defaults":341,"./event_data":342,"./hover":343}],345:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../bar/cross_trace_calc":271,"../bar/layout_attributes":277,"../bar/layout_defaults":278,"../bar/plot":279,"../bar/select":280,"../bar/style":282,"../scatter/marker_colorbar":396,"./attributes":334,"./calc":339,"./cross_trace_defaults":341,"./defaults":342,"./event_data":343,"./hover":344}],346:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77991,9 +78987,9 @@ module.exports = {
}
};
-},{}],346:[function(_dereq_,module,exports){
+},{}],347:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78005,6 +79001,7 @@ module.exports = {
var histogramAttrs = _dereq_('../histogram/attributes');
var makeBinAttrs = _dereq_('../histogram/bin_attributes');
var heatmapAttrs = _dereq_('../heatmap/attributes');
+var baseAttrs = _dereq_('../../plots/attributes');
var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplateAttrs;
var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
@@ -78052,14 +79049,15 @@ module.exports = extendFlat(
ygap: heatmapAttrs.ygap,
zsmooth: heatmapAttrs.zsmooth,
zhoverformat: heatmapAttrs.zhoverformat,
- hovertemplate: hovertemplateAttrs({}, {keys: 'z'})
+ hovertemplate: hovertemplateAttrs({}, {keys: 'z'}),
+ showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})
},
colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
);
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/template_attributes":253,"../heatmap/attributes":318,"../histogram/attributes":333,"../histogram/bin_attributes":335}],347:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../heatmap/attributes":319,"../histogram/attributes":334,"../histogram/bin_attributes":336}],348:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78276,9 +79274,9 @@ function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {
return out;
}
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../histogram/average":334,"../histogram/bin_functions":336,"../histogram/bin_label_vals":337,"../histogram/calc":338,"../histogram/norm_functions":345}],348:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../histogram/average":335,"../histogram/bin_functions":337,"../histogram/bin_label_vals":338,"../histogram/calc":339,"../histogram/norm_functions":346}],349:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78309,9 +79307,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertemplate');
};
-},{"../../components/colorscale/defaults":61,"../../lib":169,"../heatmap/style_defaults":331,"./attributes":346,"./sample_defaults":351}],349:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../lib":169,"../heatmap/style_defaults":332,"./attributes":347,"./sample_defaults":352}],350:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78343,9 +79341,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return pts;
};
-},{"../../plots/cartesian/axes":213,"../heatmap/hover":325}],350:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213,"../heatmap/hover":326}],351:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78355,7 +79353,6 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
'use strict';
module.exports = {
-
attributes: _dereq_('./attributes'),
supplyDefaults: _dereq_('./defaults'),
crossTraceDefaults: _dereq_('../histogram/cross_trace_defaults'),
@@ -78370,16 +79367,16 @@ module.exports = {
moduleType: 'trace',
name: 'histogram2d',
basePlotModule: _dereq_('../../plots/cartesian'),
- categories: ['cartesian', 'svg', '2dMap', 'histogram'],
+ categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'],
meta: {
}
};
-},{"../../plots/cartesian":224,"../heatmap/calc":319,"../heatmap/colorbar":321,"../heatmap/plot":329,"../heatmap/style":330,"../histogram/cross_trace_defaults":340,"../histogram/event_data":342,"./attributes":346,"./defaults":348,"./hover":349}],351:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../heatmap/calc":320,"../heatmap/colorbar":322,"../heatmap/plot":330,"../heatmap/style":331,"../histogram/cross_trace_defaults":341,"../histogram/event_data":343,"./attributes":347,"./defaults":349,"./hover":350}],352:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78422,9 +79419,9 @@ module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout
coerce('autobiny');
};
-},{"../../lib":169,"../../registry":258}],352:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],353:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78480,9 +79477,9 @@ module.exports = extendFlat({
})
);
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../contour/attributes":296,"../histogram2d/attributes":346}],353:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../contour/attributes":297,"../histogram2d/attributes":347}],354:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78517,9 +79514,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertemplate');
};
-},{"../../lib":169,"../contour/contours_defaults":303,"../contour/style_defaults":317,"../histogram2d/sample_defaults":351,"./attributes":352}],354:[function(_dereq_,module,exports){
+},{"../../lib":169,"../contour/contours_defaults":304,"../contour/style_defaults":318,"../histogram2d/sample_defaults":352,"./attributes":353}],355:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78549,9 +79546,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../contour/calc":297,"../contour/colorbar":299,"../contour/hover":309,"../contour/plot":314,"../contour/style":316,"../histogram/cross_trace_defaults":340,"./attributes":352,"./defaults":353}],355:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../contour/calc":298,"../contour/colorbar":300,"../contour/hover":310,"../contour/plot":315,"../contour/style":317,"../histogram/cross_trace_defaults":341,"./attributes":353,"./defaults":354}],356:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78661,9 +79658,9 @@ module.exports = extendFlat({
transforms: undefined
});
-},{"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"./constants":357}],356:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"./constants":358}],357:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78749,9 +79746,9 @@ function makeScaler(trace) {
};
}
-},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":357,"fast-isnumeric":18}],357:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":358,"fast-isnumeric":18}],358:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78799,9 +79796,9 @@ module.exports = {
}
};
-},{}],358:[function(_dereq_,module,exports){
+},{}],359:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78840,9 +79837,9 @@ module.exports = function supplyDefaults(traceIn, traceOut) {
traceOut._length = null;
};
-},{"../../lib":169,"./attributes":355,"./constants":357}],359:[function(_dereq_,module,exports){
+},{"../../lib":169,"./attributes":356,"./constants":358}],360:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78861,9 +79858,9 @@ module.exports = function eventData(out, pt) {
return out;
};
-},{}],360:[function(_dereq_,module,exports){
+},{}],361:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78953,9 +79950,9 @@ module.exports = function hoverPoints(pointData, xval, yval) {
})];
};
-},{"../../components/fx":89,"../../lib":169,"./constants":357}],361:[function(_dereq_,module,exports){
+},{"../../components/fx":89,"../../lib":169,"./constants":358}],362:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78983,9 +79980,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":355,"./calc":356,"./defaults":358,"./event_data":359,"./hover":360,"./plot":362,"./style":363}],362:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":356,"./calc":357,"./defaults":359,"./event_data":360,"./hover":361,"./plot":363,"./style":364}],363:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79114,9 +80111,9 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
});
};
-},{"../../constants/xmlns_namespaces":150,"../../lib":169,"./constants":357,"d3":16}],363:[function(_dereq_,module,exports){
+},{"../../constants/xmlns_namespaces":150,"../../lib":169,"./constants":358,"d3":16}],364:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79134,9 +80131,9 @@ module.exports = function style(gd) {
});
};
-},{"d3":16}],364:[function(_dereq_,module,exports){
+},{"d3":16}],365:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79275,6 +80272,14 @@ module.exports = {
textfont: extendFlat({}, textFontAttrs, {
}),
+ insidetextorientation: {
+ valType: 'enumerated',
+
+ values: ['horizontal', 'radial', 'tangential', 'auto'],
+ dflt: 'auto',
+ editType: 'plot',
+
+ },
insidetextfont: extendFlat({}, textFontAttrs, {
}),
@@ -79397,9 +80402,9 @@ module.exports = {
}
};
-},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/domain":238,"../../plots/font_attributes":239,"../../plots/template_attributes":253}],365:[function(_dereq_,module,exports){
+},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/domain":238,"../../plots/font_attributes":239,"../../plots/template_attributes":253}],366:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79420,9 +80425,9 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);
};
-},{"../../plots/plots":245}],366:[function(_dereq_,module,exports){
+},{"../../plots/plots":245}],367:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79432,7 +80437,6 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
'use strict';
var isNumeric = _dereq_('fast-isnumeric');
-var isArrayOrTypedArray = _dereq_('../../lib').isArrayOrTypedArray;
var tinycolor = _dereq_('tinycolor2');
var Color = _dereq_('../../components/color');
@@ -79448,26 +80452,26 @@ function calc(gd, trace) {
var labels = trace.labels;
var colors = trace.marker.colors || [];
var vals = trace.values;
- var hasVals = isArrayOrTypedArray(vals) && vals.length;
+ var len = trace._length;
+ var hasValues = trace._hasValues && len;
var i, pt;
if(trace.dlabel) {
- labels = new Array(vals.length);
- for(i = 0; i < vals.length; i++) {
+ labels = new Array(len);
+ for(i = 0; i < len; i++) {
labels[i] = String(trace.label0 + i * trace.dlabel);
}
}
var allThisTraceLabels = {};
var pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);
- var seriesLen = (hasVals ? vals : labels).length;
var vTotal = 0;
var isAggregated = false;
- for(i = 0; i < seriesLen; i++) {
+ for(i = 0; i < len; i++) {
var v, label, hidden;
- if(hasVals) {
+ if(hasValues) {
v = vals[i];
if(!isNumeric(v)) continue;
v = +v;
@@ -79604,9 +80608,9 @@ module.exports = {
generateExtendedColors: generateExtendedColors
};
-},{"../../components/color":51,"../../lib":169,"fast-isnumeric":18,"tinycolor2":34}],367:[function(_dereq_,module,exports){
+},{"../../components/color":51,"fast-isnumeric":18,"tinycolor2":34}],368:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79615,26 +80619,57 @@ module.exports = {
'use strict';
+var isNumeric = _dereq_('fast-isnumeric');
var Lib = _dereq_('../../lib');
var attributes = _dereq_('./attributes');
var handleDomainDefaults = _dereq_('../../plots/domain').defaults;
var handleText = _dereq_('../bar/defaults').handleText;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function handleLabelsAndValues(labels, values) {
+ var hasLabels = Array.isArray(labels);
+ var hasValues = Lib.isArrayOrTypedArray(values);
+ var len = Math.min(
+ hasLabels ? labels.length : Infinity,
+ hasValues ? values.length : Infinity
+ );
+
+ if(!isFinite(len)) len = 0;
+
+ if(len && hasValues) {
+ var hasPositive;
+ for(var i = 0; i < len; i++) {
+ var v = values[i];
+ if(isNumeric(v) && v > 0) {
+ hasPositive = true;
+ break;
+ }
+ }
+ if(!hasPositive) len = 0;
+ }
+
+ return {
+ hasLabels: hasLabels,
+ hasValues: hasValues,
+ len: len
+ };
+}
+
+function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len;
- var vals = coerce('values');
- var hasVals = Lib.isArrayOrTypedArray(vals);
var labels = coerce('labels');
- if(Array.isArray(labels)) {
- len = labels.length;
- if(hasVals) len = Math.min(len, vals.length);
- } else if(hasVals) {
- len = vals.length;
+ var values = coerce('values');
+ var res = handleLabelsAndValues(labels, values);
+ var len = res.len;
+ traceOut._hasLabels = res.hasLabels;
+ traceOut._hasValues = res.hasValues;
+
+ if(!traceOut._hasLabels &&
+ traceOut._hasValues
+ ) {
coerce('label0');
coerce('dlabel');
}
@@ -79677,6 +80712,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(hasOutside) {
coerce('automargin');
}
+
+ if(textposition === 'inside' || textposition === 'auto' || Array.isArray(textposition)) {
+ coerce('insidetextorientation');
+ }
}
handleDomainDefaults(traceOut, layout, coerce);
@@ -79693,11 +80732,16 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('direction');
coerce('rotation');
coerce('pull');
+}
+
+module.exports = {
+ handleLabelsAndValues: handleLabelsAndValues,
+ supplyDefaults: supplyDefaults
};
-},{"../../lib":169,"../../plots/domain":238,"../bar/defaults":272,"./attributes":364}],368:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/domain":238,"../bar/defaults":272,"./attributes":365,"fast-isnumeric":18}],369:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79744,9 +80788,9 @@ module.exports = function eventData(pt, trace) {
return out;
};
-},{"../../components/fx/helpers":86}],369:[function(_dereq_,module,exports){
+},{"../../components/fx/helpers":86}],370:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79786,9 +80830,9 @@ exports.castOption = function castOption(item, indices) {
else if(item) return item;
};
-},{"../../lib":169}],370:[function(_dereq_,module,exports){
+},{"../../lib":169}],371:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79799,7 +80843,7 @@ exports.castOption = function castOption(item, indices) {
module.exports = {
attributes: _dereq_('./attributes'),
- supplyDefaults: _dereq_('./defaults'),
+ supplyDefaults: _dereq_('./defaults').supplyDefaults,
supplyLayoutDefaults: _dereq_('./layout_defaults'),
layoutAttributes: _dereq_('./layout_attributes'),
@@ -79819,9 +80863,9 @@ module.exports = {
}
};
-},{"./attributes":364,"./base_plot":365,"./calc":366,"./defaults":367,"./layout_attributes":371,"./layout_defaults":372,"./plot":373,"./style":374,"./style_one":375}],371:[function(_dereq_,module,exports){
+},{"./attributes":365,"./base_plot":366,"./calc":367,"./defaults":368,"./layout_attributes":372,"./layout_defaults":373,"./plot":374,"./style":375,"./style_one":376}],372:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79852,9 +80896,9 @@ module.exports = {
}
};
-},{}],372:[function(_dereq_,module,exports){
+},{}],373:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79877,9 +80921,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
coerce('extendpiecolors');
};
-},{"../../lib":169,"./layout_attributes":371}],373:[function(_dereq_,module,exports){
+},{"../../lib":169,"./layout_attributes":372}],374:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79896,6 +80940,9 @@ var Color = _dereq_('../../components/color');
var Drawing = _dereq_('../../components/drawing');
var Lib = _dereq_('../../lib');
var svgTextUtils = _dereq_('../../lib/svg_text_utils');
+var uniformText = _dereq_('../bar/uniform_text');
+var recordMinTextSize = uniformText.recordMinTextSize;
+var clearMinTextSize = uniformText.clearMinTextSize;
var helpers = _dereq_('./helpers');
var eventData = _dereq_('./event_data');
@@ -79905,6 +80952,8 @@ function plot(gd, cdModule) {
var fullLayout = gd._fullLayout;
var gs = fullLayout._size;
+ clearMinTextSize('pie', fullLayout);
+
prerenderTitles(cdModule, gd);
layoutAreas(cdModule, gs);
@@ -79932,7 +80981,7 @@ function plot(gd, cdModule) {
];
var hasOutsideText = false;
- slices.each(function(pt) {
+ slices.each(function(pt, i) {
if(pt.hidden) {
d3.select(this).selectAll('path,g').remove();
return;
@@ -80024,15 +81073,18 @@ function plot(gd, cdModule) {
s.attr('data-notex', 1);
});
+ var font = Lib.ensureUniformFontSize(gd, textPosition === 'outside' ?
+ determineOutsideTextFont(trace, pt, fullLayout.font) :
+ determineInsideTextFont(trace, pt, fullLayout.font)
+ );
+
sliceText.text(pt.text)
.attr({
'class': 'slicetext',
transform: '',
'text-anchor': 'middle'
})
- .call(Drawing.font, textPosition === 'outside' ?
- determineOutsideTextFont(trace, pt, gd._fullLayout.font) :
- determineInsideTextFont(trace, pt, gd._fullLayout.font))
+ .call(Drawing.font, font)
.call(svgTextUtils.convertToTspans, gd);
// position the text relative to the slice
@@ -80044,36 +81096,37 @@ function plot(gd, cdModule) {
} else {
transform = transformInsideText(textBB, pt, cd0);
if(textPosition === 'auto' && transform.scale < 1) {
- sliceText.call(Drawing.font, trace.outsidetextfont);
- if(trace.outsidetextfont.family !== trace.insidetextfont.family ||
- trace.outsidetextfont.size !== trace.insidetextfont.size) {
- textBB = Drawing.bBox(sliceText.node());
- }
+ var newFont = Lib.ensureUniformFontSize(gd, trace.outsidetextfont);
+
+ sliceText.call(Drawing.font, newFont);
+ textBB = Drawing.bBox(sliceText.node());
+
transform = transformOutsideText(textBB, pt);
}
}
- var translateX = cx + pt.pxmid[0] * transform.rCenter + (transform.x || 0);
- var translateY = cy + pt.pxmid[1] * transform.rCenter + (transform.y || 0);
+ var textPosAngle = transform.textPosAngle;
+ var textXY = textPosAngle === undefined ? pt.pxmid : getCoords(cd0.r, textPosAngle);
+ transform.targetX = cx + textXY[0] * transform.rCenter + (transform.x || 0);
+ transform.targetY = cy + textXY[1] * transform.rCenter + (transform.y || 0);
+ computeTransform(transform, textBB);
// save some stuff to use later ensure no labels overlap
if(transform.outside) {
- pt.yLabelMin = translateY - textBB.height / 2;
- pt.yLabelMid = translateY;
- pt.yLabelMax = translateY + textBB.height / 2;
+ var targetY = transform.targetY;
+ pt.yLabelMin = targetY - textBB.height / 2;
+ pt.yLabelMid = targetY;
+ pt.yLabelMax = targetY + textBB.height / 2;
pt.labelExtraX = 0;
pt.labelExtraY = 0;
hasOutsideText = true;
}
- sliceText.attr('transform',
- 'translate(' + translateX + ',' + translateY + ')' +
- (transform.scale < 1 ? ('scale(' + transform.scale + ')') : '') +
- (transform.rotate ? ('rotate(' + transform.rotate + ')') : '') +
- 'translate(' +
- (-(textBB.left + textBB.right) / 2) + ',' +
- (-(textBB.top + textBB.bottom) / 2) +
- ')');
+ transform.fontSize = font.size;
+ recordMinTextSize(trace.type, transform, fullLayout);
+ cd[i].transform = transform;
+
+ sliceText.attr('transform', Lib.getTextTransform(transform));
});
});
@@ -80178,8 +81231,10 @@ function plotTextLines(slices, trace) {
// first move the text to its new location
var sliceText = sliceTop.select('g.slicetext text');
- sliceText.attr('transform', 'translate(' + pt.labelExtraX + ',' + pt.labelExtraY + ')' +
- sliceText.attr('transform'));
+ pt.transform.targetX += pt.labelExtraX;
+ pt.transform.targetY += pt.labelExtraY;
+
+ sliceText.attr('transform', Lib.getTextTransform(pt.transform));
// then add a line to the new location
var lineStartX = pt.cxFinal + pt.pxmid[0];
@@ -80429,59 +81484,150 @@ function prerenderTitles(cdModule, gd) {
function transformInsideText(textBB, pt, cd0) {
var textDiameter = Math.sqrt(textBB.width * textBB.width + textBB.height * textBB.height);
- var textAspect = textBB.width / textBB.height;
var halfAngle = pt.halfangle;
+ var midAngle = pt.midangle;
var ring = pt.ring;
var rInscribed = pt.rInscribed;
var r = cd0.r || pt.rpx1;
+ var orientation = cd0.trace.insidetextorientation;
+ var isHorizontal = orientation === 'horizontal';
+ var isTangential = orientation === 'tangential';
+ var isRadial = orientation === 'radial';
+ var isAuto = orientation === 'auto';
+ var isCircle = (ring === 1) && (Math.abs(pt.startangle - pt.stopangle) === Math.PI * 2);
+ var allTransforms = [];
+ var newT;
- // max size text can be inserted inside without rotating it
- // this inscribes the text rectangle in a circle, which is then inscribed
- // in the slice, so it will be an underestimate, which some day we may want
- // to improve so this case can get more use
- var transform = {
- scale: rInscribed * r * 2 / textDiameter,
+ if(!isAuto) {
+ // max size if text is placed (horizontally) at the top or bottom of the arc
- // and the center position and rotation in this case
- rCenter: 1 - rInscribed,
- rotate: 0
- };
+ var considerCrossing = function(angle, key) {
+ if(isCrossing(pt, angle)) {
+ var dStart = Math.abs(angle - pt.startangle);
+ var dStop = Math.abs(angle - pt.stopangle);
- if(transform.scale >= 1) return transform;
+ var closestEdge = dStart < dStop ? dStart : dStop;
+ if(key === 'tan') {
+ newT = calcTanTransform(textBB, r, ring, closestEdge, 0);
+ } else { // case of 'rad'
+ newT = calcRadTransform(textBB, r, ring, closestEdge, Math.PI / 2);
+ }
+ newT.textPosAngle = angle;
+
+ allTransforms.push(newT);
+ }
+ };
+
+ // to cover all cases with trace.rotation added
+ var i;
+ if(isHorizontal || isTangential) {
+ // top
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * i, 'tan');
+ // bottom
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1), 'tan');
+ }
+ if(isHorizontal || isRadial) {
+ // left
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1.5), 'rad');
+ // right
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 0.5), 'rad');
+ }
+ }
+
+ if(isCircle || isAuto || isHorizontal) {
+ // max size text can be inserted inside without rotating it
+ // this inscribes the text rectangle in a circle, which is then inscribed
+ // in the slice, so it will be an underestimate, which some day we may want
+ // to improve so this case can get more use
+ newT = {
+ scale: rInscribed * r * 2 / textDiameter,
+
+ // and the center position and rotation in this case
+ rCenter: 1 - rInscribed,
+ rotate: 0
+ };
+
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ if(newT.scale >= 1) return newT;
+
+ allTransforms.push(newT);
+ }
+
+ if(isAuto || isRadial) {
+ newT = calcRadTransform(textBB, r, ring, halfAngle, midAngle);
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ allTransforms.push(newT);
+ }
+
+ if(isAuto || isTangential) {
+ newT = calcTanTransform(textBB, r, ring, halfAngle, midAngle);
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ allTransforms.push(newT);
+ }
+
+ var id = 0;
+ var maxScale = 0;
+ for(var k = 0; k < allTransforms.length; k++) {
+ var s = allTransforms[k].scale;
+ if(maxScale < s) {
+ maxScale = s;
+ id = k;
+ }
+
+ if(!isAuto && maxScale >= 1) {
+ // respect test order for non-auto options
+ break;
+ }
+ }
+ return allTransforms[id];
+}
+
+function isCrossing(pt, angle) {
+ var start = pt.startangle;
+ var stop = pt.stopangle;
+ return (
+ (start > angle && angle > stop) ||
+ (start < angle && angle < stop)
+ );
+}
+
+function calcRadTransform(textBB, r, ring, halfAngle, midAngle) {
// max size if text is rotated radially
- var Qr = textAspect + 1 / (2 * Math.tan(halfAngle));
- var maxHalfHeightRotRadial = r * Math.min(
- 1 / (Math.sqrt(Qr * Qr + 0.5) + Qr),
- ring / (Math.sqrt(textAspect * textAspect + ring / 2) + textAspect)
- );
- var radialTransform = {
- scale: maxHalfHeightRotRadial * 2 / textBB.height,
- rCenter: Math.cos(maxHalfHeightRotRadial / r) -
- maxHalfHeightRotRadial * textAspect / r,
- rotate: (180 / Math.PI * pt.midangle + 720) % 180 - 90
+ var a = textBB.width / textBB.height;
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
+ return {
+ scale: s * 2 / textBB.height,
+ rCenter: calcRCenter(a, s / r),
+ rotate: calcRotate(midAngle)
};
+}
+function calcTanTransform(textBB, r, ring, halfAngle, midAngle) {
// max size if text is rotated tangentially
- var aspectInv = 1 / textAspect;
- var Qt = aspectInv + 1 / (2 * Math.tan(halfAngle));
- var maxHalfWidthTangential = r * Math.min(
- 1 / (Math.sqrt(Qt * Qt + 0.5) + Qt),
- ring / (Math.sqrt(aspectInv * aspectInv + ring / 2) + aspectInv)
- );
- var tangentialTransform = {
- scale: maxHalfWidthTangential * 2 / textBB.width,
- rCenter: Math.cos(maxHalfWidthTangential / r) -
- maxHalfWidthTangential / textAspect / r,
- rotate: (180 / Math.PI * pt.midangle + 810) % 180 - 90
+ var a = textBB.height / textBB.width;
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
+ return {
+ scale: s * 2 / textBB.width,
+ rCenter: calcRCenter(a, s / r),
+ rotate: calcRotate(midAngle + Math.PI / 2)
};
- // if we need a rotated transform, pick the biggest one
- // even if both are bigger than 1
- var rotatedTransform = tangentialTransform.scale > radialTransform.scale ?
- tangentialTransform : radialTransform;
+}
- if(transform.scale < 1 && rotatedTransform.scale > transform.scale) return rotatedTransform;
- return transform;
+function calcRCenter(a, b) {
+ return Math.cos(b) - a * b;
+}
+
+function calcRotate(t) {
+ return (180 / Math.PI * t + 720) % 180 - 90;
+}
+
+function calcMaxHalfSize(a, halfAngle, r, ring) {
+ var q = a + 1 / (2 * Math.tan(halfAngle));
+ return r * Math.min(
+ 1 / (Math.sqrt(q * q + 0.5) + q),
+ ring / (Math.sqrt(a * a + ring / 2) + a)
+ );
}
function getInscribedRadiusFraction(pt, cd0) {
@@ -80801,6 +81947,7 @@ function groupScale(cdModule, scaleGroups) {
function setCoords(cd) {
var cd0 = cd[0];
+ var r = cd0.r;
var trace = cd0.trace;
var currentAngle = trace.rotation * Math.PI / 180;
var angleFactor = 2 * Math.PI / cd0.vTotal;
@@ -80821,11 +81968,7 @@ function setCoords(cd) {
lastPt = 'px0';
}
- function getCoords(angle) {
- return [cd0.r * Math.sin(angle), -cd0.r * Math.cos(angle)];
- }
-
- currentCoords = getCoords(currentAngle);
+ currentCoords = getCoords(r, currentAngle);
for(i = 0; i < cd.length; i++) {
cdi = cd[i];
@@ -80833,12 +81976,13 @@ function setCoords(cd) {
cdi[firstPt] = currentCoords;
+ cdi.startangle = currentAngle;
currentAngle += angleFactor * cdi.v / 2;
- cdi.pxmid = getCoords(currentAngle);
+ cdi.pxmid = getCoords(r, currentAngle);
cdi.midangle = currentAngle;
-
currentAngle += angleFactor * cdi.v / 2;
- currentCoords = getCoords(currentAngle);
+ currentCoords = getCoords(r, currentAngle);
+ cdi.stopangle = currentAngle;
cdi[lastPt] = currentCoords;
@@ -80850,6 +81994,10 @@ function setCoords(cd) {
}
}
+function getCoords(r, angle) {
+ return [r * Math.sin(angle), -r * Math.cos(angle)];
+}
+
function formatSliceLabel(gd, pt, cd0) {
var fullLayout = gd._fullLayout;
var trace = cd0.trace;
@@ -80904,6 +82052,25 @@ function formatSliceLabel(gd, pt, cd0) {
}
}
}
+
+function computeTransform(
+ transform, // inout
+ textBB // in
+) {
+ var rotate = transform.rotate;
+ var scale = transform.scale;
+ if(scale > 1) scale = 1;
+
+ var a = rotate * Math.PI / 180;
+ var cosA = Math.cos(a);
+ var sinA = Math.sin(a);
+ var midX = (textBB.left + textBB.right) / 2;
+ var midY = (textBB.top + textBB.bottom) / 2;
+ transform.textX = midX * cosA - midY * sinA;
+ transform.textY = midX * sinA + midY * cosA;
+ transform.noCenter = true;
+}
+
module.exports = {
plot: plot,
formatSliceLabel: formatSliceLabel,
@@ -80913,11 +82080,12 @@ module.exports = {
prerenderTitles: prerenderTitles,
layoutAreas: layoutAreas,
attachFxHandlers: attachFxHandlers,
+ computeTransform: computeTransform
};
-},{"../../components/color":51,"../../components/drawing":72,"../../components/fx":89,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"./event_data":368,"./helpers":369,"d3":16}],374:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../components/fx":89,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../bar/uniform_text":284,"./event_data":369,"./helpers":370,"d3":16}],375:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -80929,9 +82097,13 @@ module.exports = {
var d3 = _dereq_('d3');
var styleOne = _dereq_('./style_one');
+var resizeText = _dereq_('../bar/uniform_text').resizeText;
module.exports = function style(gd) {
- gd._fullLayout._pielayer.selectAll('.trace').each(function(cd) {
+ var s = gd._fullLayout._pielayer.selectAll('.trace');
+ resizeText(gd, s, 'pie');
+
+ s.each(function(cd) {
var cd0 = cd[0];
var trace = cd0.trace;
var traceSelection = d3.select(this);
@@ -80944,9 +82116,9 @@ module.exports = function style(gd) {
});
};
-},{"./style_one":375,"d3":16}],375:[function(_dereq_,module,exports){
+},{"../bar/uniform_text":284,"./style_one":376,"d3":16}],376:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -80968,9 +82140,9 @@ module.exports = function styleOne(s, pt, trace) {
.call(Color.stroke, lineColor);
};
-},{"../../components/color":51,"./helpers":369}],376:[function(_dereq_,module,exports){
+},{"../../components/color":51,"./helpers":370}],377:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81020,9 +82192,9 @@ module.exports = function arraysToCalcdata(cd, trace) {
}
};
-},{"../../lib":169}],377:[function(_dereq_,module,exports){
+},{"../../lib":169}],378:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81434,9 +82606,9 @@ module.exports = {
}
};
-},{"../../components/colorscale/attributes":58,"../../components/drawing":72,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"./constants":381}],378:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing":72,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"./constants":382}],379:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81719,9 +82891,9 @@ module.exports = {
getStackOpts: getStackOpts
};
-},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"./arrays_to_calcdata":376,"./calc_selection":379,"./colorscale_calc":380,"./subtypes":401,"fast-isnumeric":18}],379:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"./arrays_to_calcdata":377,"./calc_selection":380,"./colorscale_calc":381,"./subtypes":402,"fast-isnumeric":18}],380:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81738,9 +82910,9 @@ module.exports = function calcSelection(cd, trace) {
}
};
-},{"../../lib":169}],380:[function(_dereq_,module,exports){
+},{"../../lib":169}],381:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81781,9 +82953,9 @@ module.exports = function calcMarkerColorscale(gd, trace) {
}
};
-},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"./subtypes":401}],381:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"./subtypes":402}],382:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81810,9 +82982,9 @@ module.exports = {
eventDataKeys: []
};
-},{}],382:[function(_dereq_,module,exports){
+},{}],383:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81991,9 +83163,9 @@ function getInterp(calcTrace, index, position, posAttr) {
return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);
}
-},{"./calc":378}],383:[function(_dereq_,module,exports){
+},{"./calc":379}],384:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82030,9 +83202,9 @@ module.exports = function crossTraceDefaults(fullData) {
}
};
-},{}],384:[function(_dereq_,module,exports){
+},{}],385:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82120,9 +83292,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-},{"../../lib":169,"../../registry":258,"./attributes":377,"./constants":381,"./fillcolor_defaults":385,"./line_defaults":390,"./line_shape_defaults":392,"./marker_defaults":396,"./stack_defaults":399,"./subtypes":401,"./text_defaults":402,"./xy_defaults":403}],385:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"./attributes":378,"./constants":382,"./fillcolor_defaults":386,"./line_defaults":391,"./line_shape_defaults":393,"./marker_defaults":397,"./stack_defaults":400,"./subtypes":402,"./text_defaults":403,"./xy_defaults":404}],386:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82157,9 +83329,9 @@ module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coe
));
};
-},{"../../components/color":51,"../../lib":169}],386:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169}],387:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82183,9 +83355,9 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
return labels;
};
-},{"../../plots/cartesian/axes":213}],387:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213}],388:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82232,9 +83404,9 @@ module.exports = function getTraceColor(trace, di) {
}
};
-},{"../../components/color":51,"./subtypes":401}],388:[function(_dereq_,module,exports){
+},{"../../components/color":51,"./subtypes":402}],389:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82427,9 +83599,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
}
};
-},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../registry":258,"./get_trace_color":387}],389:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../registry":258,"./get_trace_color":388}],390:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82473,9 +83645,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./arrays_to_calcdata":376,"./attributes":377,"./calc":378,"./cross_trace_calc":382,"./cross_trace_defaults":383,"./defaults":384,"./format_labels":386,"./hover":388,"./marker_colorbar":395,"./plot":397,"./select":398,"./style":400,"./subtypes":401}],390:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./arrays_to_calcdata":377,"./attributes":378,"./calc":379,"./cross_trace_calc":383,"./cross_trace_defaults":384,"./defaults":385,"./format_labels":387,"./hover":389,"./marker_colorbar":396,"./plot":398,"./select":399,"./style":401,"./subtypes":402}],391:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82504,9 +83676,9 @@ module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout,
if(!(opts || {}).noDash) coerce('line.dash');
};
-},{"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"../../lib":169}],391:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"../../lib":169}],392:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82965,9 +84137,9 @@ module.exports = function linePoints(d, opts) {
return segments;
};
-},{"../../constants/numerical":149,"../../lib":169,"./constants":381}],392:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"./constants":382}],393:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82984,9 +84156,9 @@ module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {
if(shape === 'spline') coerce('line.smoothing');
};
-},{}],393:[function(_dereq_,module,exports){
+},{}],394:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83074,9 +84246,9 @@ module.exports = function linkTraces(gd, plotinfo, cdscatter) {
return cdscatterSorted;
};
-},{}],394:[function(_dereq_,module,exports){
+},{}],395:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83116,9 +84288,9 @@ module.exports = function makeBubbleSizeFn(trace) {
};
};
-},{"fast-isnumeric":18}],395:[function(_dereq_,module,exports){
+},{"fast-isnumeric":18}],396:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83134,9 +84306,9 @@ module.exports = {
max: 'cmax'
};
-},{}],396:[function(_dereq_,module,exports){
+},{}],397:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83215,9 +84387,9 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
}
};
-},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"./subtypes":401}],397:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"./subtypes":402}],398:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83776,9 +84948,9 @@ function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {
});
}
-},{"../../components/drawing":72,"../../lib":169,"../../lib/polygon":181,"../../registry":258,"./line_points":391,"./link_traces":393,"./subtypes":401,"d3":16}],398:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"../../lib/polygon":181,"../../registry":258,"./line_points":392,"./link_traces":394,"./subtypes":402,"d3":16}],399:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83830,9 +85002,9 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
return selection;
};
-},{"./subtypes":401}],399:[function(_dereq_,module,exports){
+},{"./subtypes":402}],400:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83935,9 +85107,9 @@ module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce)
}
};
-},{}],400:[function(_dereq_,module,exports){
+},{}],401:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84006,9 +85178,9 @@ module.exports = {
styleOnSelect: styleOnSelect
};
-},{"../../components/drawing":72,"../../registry":258,"d3":16}],401:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../registry":258,"d3":16}],402:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84045,9 +85217,9 @@ module.exports = {
}
};
-},{"../../lib":169}],402:[function(_dereq_,module,exports){
+},{"../../lib":169}],403:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84075,9 +85247,9 @@ module.exports = function(traceIn, traceOut, layout, coerce, opts) {
}
};
-},{"../../lib":169}],403:[function(_dereq_,module,exports){
+},{"../../lib":169}],404:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84119,9 +85291,9 @@ module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {
return len;
};
-},{"../../lib":169,"../../registry":258}],404:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],405:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84227,9 +85399,9 @@ module.exports = {
hovertemplate: hovertemplateAttrs(),
};
-},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":377}],405:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":378}],406:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84308,9 +85480,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../scatter/arrays_to_calcdata":376,"../scatter/calc":378,"../scatter/calc_selection":379,"../scatter/colorscale_calc":380,"fast-isnumeric":18}],406:[function(_dereq_,module,exports){
+},{"../scatter/arrays_to_calcdata":377,"../scatter/calc":379,"../scatter/calc_selection":380,"../scatter/colorscale_calc":381,"fast-isnumeric":18}],407:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84412,9 +85584,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-},{"../../lib":169,"../scatter/constants":381,"../scatter/fillcolor_defaults":385,"../scatter/line_defaults":390,"../scatter/line_shape_defaults":392,"../scatter/marker_defaults":396,"../scatter/subtypes":401,"../scatter/text_defaults":402,"./attributes":404}],407:[function(_dereq_,module,exports){
+},{"../../lib":169,"../scatter/constants":382,"../scatter/fillcolor_defaults":386,"../scatter/line_defaults":391,"../scatter/line_shape_defaults":393,"../scatter/marker_defaults":397,"../scatter/subtypes":402,"../scatter/text_defaults":403,"./attributes":405}],408:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84444,9 +85616,9 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) {
return out;
};
-},{}],408:[function(_dereq_,module,exports){
+},{}],409:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84468,9 +85640,9 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
return labels;
};
-},{"../../plots/cartesian/axes":213}],409:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213}],410:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84542,9 +85714,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
return scatterPointData;
};
-},{"../scatter/hover":388}],410:[function(_dereq_,module,exports){
+},{"../scatter/hover":389}],411:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84576,9 +85748,9 @@ module.exports = {
}
};
-},{"../../plots/ternary":254,"../scatter/marker_colorbar":395,"../scatter/select":398,"../scatter/style":400,"./attributes":404,"./calc":405,"./defaults":406,"./event_data":407,"./format_labels":408,"./hover":409,"./plot":411}],411:[function(_dereq_,module,exports){
+},{"../../plots/ternary":254,"../scatter/marker_colorbar":396,"../scatter/select":399,"../scatter/style":401,"./attributes":405,"./calc":406,"./defaults":407,"./event_data":408,"./format_labels":409,"./hover":410,"./plot":412}],412:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84609,9 +85781,9 @@ module.exports = function plot(gd, ternary, moduleCalcData) {
scatterPlot(gd, plotinfo, moduleCalcData, scatterLayer);
};
-},{"../scatter/plot":397}],412:[function(_dereq_,module,exports){
+},{"../scatter/plot":398}],413:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84808,9 +85980,9 @@ module.exports = {
}
};
-},{"../../lib/extend":164,"../box/attributes":284}],413:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../box/attributes":285}],414:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84984,9 +86156,9 @@ function calcSpan(trace, cdi, valAxis, bandwidth) {
return spanOut;
}
-},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../box/calc":285,"./helpers":416}],414:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../box/calc":286,"./helpers":417}],415:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85027,9 +86199,9 @@ module.exports = function crossTraceCalc(gd, plotinfo) {
}
};
-},{"../box/cross_trace_calc":286}],415:[function(_dereq_,module,exports){
+},{"../box/cross_trace_calc":287}],416:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85088,9 +86260,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(!meanLineVisible) traceOut.meanline = {visible: false};
};
-},{"../../components/color":51,"../../lib":169,"../box/defaults":287,"./attributes":412}],416:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../box/defaults":288,"./attributes":413}],417:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85161,9 +86333,9 @@ exports.getKdeValue = function(calcItem, trace, valueDist) {
exports.extractVal = function(o) { return o.v; };
-},{"../../lib":169}],417:[function(_dereq_,module,exports){
+},{"../../lib":169}],418:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85273,9 +86445,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return closeData;
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../box/hover":289,"./helpers":416}],418:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../box/hover":290,"./helpers":417}],419:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85307,9 +86479,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../box/defaults":287,"../box/select":294,"../scatter/style":400,"./attributes":412,"./calc":413,"./cross_trace_calc":414,"./defaults":415,"./hover":417,"./layout_attributes":419,"./layout_defaults":420,"./plot":421,"./style":422}],419:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../box/defaults":288,"../box/select":295,"../scatter/style":401,"./attributes":413,"./calc":414,"./cross_trace_calc":415,"./defaults":416,"./hover":418,"./layout_attributes":420,"./layout_defaults":421,"./plot":422,"./style":423}],420:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85333,9 +86505,9 @@ module.exports = {
})
};
-},{"../../lib":169,"../box/layout_attributes":291}],420:[function(_dereq_,module,exports){
+},{"../../lib":169,"../box/layout_attributes":292}],421:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85355,9 +86527,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, 'violin');
};
-},{"../../lib":169,"../box/layout_defaults":292,"./layout_attributes":419}],421:[function(_dereq_,module,exports){
+},{"../../lib":169,"../box/layout_defaults":293,"./layout_attributes":420}],422:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85545,9 +86717,9 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {
});
};
-},{"../../components/drawing":72,"../../lib":169,"../box/plot":293,"../scatter/line_points":391,"./helpers":416,"d3":16}],422:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"../box/plot":294,"../scatter/line_points":392,"./helpers":417,"d3":16}],423:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85600,11 +86772,11 @@ module.exports = function style(gd) {
});
};
-},{"../../components/color":51,"../scatter/style":400,"d3":16}]},{},[11])(11)
+},{"../../components/color":51,"../scatter/style":401,"d3":16}]},{},[11])(11)
});
-Plotly.register({moduleType:"locale",name:"de",dictionary:{Autoscale:"Automatische Skalierung","Box Select":"Rechteckauswahl","Click to enter Colorscale title":"Klicken, um den Farbskalatitel einzugeben","Click to enter Component A title":"Klicken, um den Titel der Komponente A einzugeben","Click to enter Component B title":"Klicken, um den Titel der Komponente B einzugeben","Click to enter Component C title":"Klicken, um den Titel der Komponente C einzugeben","Click to enter Plot title":"Klicken, um den Titel des Graphen einzugeben","Click to enter X axis title":"Klicken, um den Titel der X-Achse einzugeben","Click to enter Y axis title":"Klicken, um den Titel der Y-Achse einzugeben","Compare data on hover":"\xdcber die Daten fahren, um sie zu vergleichen","Double-click on legend to isolate one trace":"Daten isolieren durch Doppelklick in der Legende","Double-click to zoom back out":"Herauszoomen durch Doppelklick","Download plot as a png":"Graphen als PNG herunterladen","Download plot":"Graphen herunterladen","Edit in Chart Studio":"Im Chart Studio bearbeiten","IE only supports svg. Changing format to svg.":"IE unterst\xfctzt nur SVG-Dateien. Format wird zu SVG gewechselt.","Lasso Select":"Lassoauswahl","Orbital rotation":"Orbitalrotation",Pan:"Verschieben","Produced with Plotly":"Erstellt mit Plotly",Reset:"Zur\xfccksetzen","Reset axes":"Achsen zur\xfccksetzen","Reset camera to default":"Kamera auf Standard zur\xfccksetzen","Reset camera to last save":"Kamera auf letzte Speicherung zur\xfccksetzen","Reset view":"Ansicht zur\xfccksetzen","Reset views":"Ansichten zur\xfccksetzen","Show closest data on hover":"Zeige n\xe4heste Daten beim \xdcberfahren","Snapshot succeeded":"Snapshot erfolgreich","Sorry, there was a problem downloading your snapshot!":"Es gab ein Problem beim Herunterladen des Snapshots","Taking snapshot - this may take a few seconds":"Erstelle einen Snapshot - dies kann einige Sekunden dauern",Zoom:"Zoom","Zoom in":"Hineinzoomen","Zoom out":"Herauszoomen","close:":"Schluss:",trace:"Datenspur","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"Quelle:","target:":"Ziel:","lower fence:":"Untere Schranke:","upper fence:":"Obere Schranke:","max:":"Max.:","mean \xb1 \u03c3:":"Mittelwert \xb1 \u03c3:","mean:":"Mittelwert:","median:":"Median:","min:":"Min.:","Turntable rotation":"Drehscheibenorbit","Toggle Spike Lines":"Bezugslinien an-/abschalten","open:":"Er\xf6ffnung:","high:":"H\xf6chstkurs:","low:":"Tiefstkurs:","Toggle show closest data on hover":"Anzeige der n\xe4hesten Daten an-/abschalten","incoming flow count:":"Anzahl eingehender Verbindungen:","outgoing flow count:":"Anzahl ausgehender Verbindungen:","kde:":"Dichte:"},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y",decimal:",",thousands:"."}});
-Plotly.register({moduleType:"locale",name:"es",dictionary:{Autoscale:"Autoescalar","Box Select":"Seleccionar Caja","Click to enter Colorscale title":"Introducir el t\xedtulo de la Escala de Color","Click to enter Component A title":"Introducir el t\xedtulo del Componente A","Click to enter Component B title":"Introducir el t\xedtulo del Componente B","Click to enter Component C title":"Introducir el t\xedtulo del Componente C","Click to enter Plot title":"Introducir el t\xedtulo de la Gr\xe1fica","Click to enter X axis title":"Introducir el t\xedtulo del eje X","Click to enter Y axis title":"Introducir el t\xedtulo del eje Y","Click to enter radial axis title":"Introducir el t\xedtulo del eje radial","Compare data on hover":"Comparar datos al pasar por encima","Double-click on legend to isolate one trace":"Haga doble-clic en la leyenda para aislar una traza","Double-click to zoom back out":"Haga doble-clic para restaurar la escala","Download plot as a png":"Descargar gr\xe1fica como png","Download plot":"Descargar gr\xe1fica","Edit in Chart Studio":"Editar en Chart Studio","IE only supports svg. Changing format to svg.":"IE solo soporta svg. Cambiando formato a svg.","Lasso Select":"Seleccionar con lazo","Orbital rotation":"Rotaci\xf3n esf\xe9rica",Pan:"Modo Panor\xe1mica","Produced with Plotly":"Hecho con Plotly",Reset:"Reiniciar","Reset axes":"Reiniciar ejes","Reset camera to default":"Restaurar c\xe1mara predeterminada","Reset camera to last save":"Restaurar anterior c\xe1mara","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Mostrar el dato m\xe1s cercano al pasar por encima","Snapshot succeeded":"La captura de la instant\xe1nea finaliz\xf3 correctamente","Sorry, there was a problem downloading your snapshot!":"\xa1La descarga de la instant\xe1nea fall\xf3!","Taking snapshot - this may take a few seconds":"Capturando una instant\xe1nea - podr\xeda tardar unos segundos","Toggle Spike Lines":"Mostrar/Ocultar Gu\xedas","Toggle show closest data on hover":"Activar/Desactivar mostrar el dato m\xe1s cercano al pasar por encima","Turntable rotation":"Rotaci\xf3n plana",Zoom:"Modo Ampliar/Reducir","Zoom in":"Ampliar","Zoom out":"Reducir","close:":"cierre:","high:":"alza:","incoming flow count:":"flujo de entrada:","kde:":"edp:","lat:":"lat:","lon:":"lon:","low:":"baja:","lower fence:":"l\xedmite inferior:","max:":"m\xe1x:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"m\xedn:","new text":"nuevo texto","open:":"apertura:","outgoing flow count:":"flujo de salida:","q1:":"q1:","q3:":"q3:","source:":"fuente:","target:":"destino:",trace:"traza","upper fence:":"l\xedmite superior:"},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:" "}});
-Plotly.register({moduleType:"locale",name:"fr",dictionary:{Autoscale:"\xc9chelle automatique","Box Select":"S\xe9lection rectangulaire","Click to enter Colorscale title":"Ajouter un titre \xe0 l'\xe9chelle de couleurs","Click to enter Component A title":"Ajouter un titre \xe0 la composante A","Click to enter Component B title":"Ajouter un titre \xe0 la composante B","Click to enter Component C title":"Ajouter un titre \xe0 la composante C","Click to enter Plot title":"Ajouter un titre au graphique","Click to enter X axis title":"Ajouter un titre \xe0 l'axe des x","Click to enter Y axis title":"Ajouter un titre \xe0 l'axe des y","Click to enter radial axis title":"Ajouter un titre \xe0 l'axe radial","Compare data on hover":"Comparaison entre donn\xe9es en survol","Double-click on legend to isolate one trace":"Double-cliquer sur la l\xe9gende pour isoler une s\xe9rie","Double-click to zoom back out":"Double-cliquer pour d\xe9zoomer","Download plot as a png":"T\xe9l\xe9charger le graphique en fichier PNG","Download plot":"T\xe9l\xe9charger le graphique","Edit in Chart Studio":"\xc9diter le graphique sur plot.ly","IE only supports svg. Changing format to svg.":"IE ne permet que les conversions en SVG. Conversion en SVG en cours.","Lasso Select":"S\xe9lection lasso","Orbital rotation":"Rotation orbitale",Pan:"Translation","Produced with Plotly":"G\xe9n\xe9r\xe9 avec Plotly",Reset:"R\xe9initialiser","Reset axes":"R\xe9initialiser les axes","Reset camera to default":"R\xe9gler la cam\xe9ra \xe0 sa valeur d\xe9faut","Reset camera to last save":"R\xe9gler la cam\xe9ra \xe0 sa valeur sauvegard\xe9e","Reset view":"R\xe9initialiser","Reset views":"R\xe9initialiser","Show closest data on hover":"Donn\xe9es les plus proches en survol","Snapshot succeeded":"Conversion r\xe9ussie","Sorry, there was a problem downloading your snapshot!":"D\xe9sol\xe9, un probl\xe8me est survenu lors du t\xe9l\xe9chargement de votre graphique","Taking snapshot - this may take a few seconds":"Conversion en cours, ceci peut prendre quelques secondes",Zoom:"Zoom","Zoom in":"Zoom int\xe9rieur","Zoom out":"Zoom ext\xe9rieur","close:":"fermeture :",trace:"s\xe9rie","lat:":"lat. :","lon:":"lon. :","q1:":"q1 :","q3:":"q3 :","source:":"source :","target:":"embouchure :","lower fence:":"cl\xf4ture sup\xe9rieure :","upper fence:":"cl\xf4ture inf\xe9rieure :","max:":"max. :","mean \xb1 \u03c3:":"moyenne \xb1 \u03c3 :","mean:":"moyenne :","median:":"m\xe9diane :","min:":"min. :","new text":"nouveau texte","Turntable rotation":"Rotation planaire","Toggle Spike Lines":"Activer/d\xe9sactiver les pics","open:":"ouverture :","high:":"haut :","low:":"bas :","Toggle show closest data on hover":"Activer/d\xe9sactiver le survol","incoming flow count:":"flux entrant :","outgoing flow count:":"flux sortant :","kde:":"est. par noyau :"},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d/%m/%Y",decimal:",",thousands:" ",year:"%Y",month:"%b %Y",dayMonth:"%-d %b",dayMonthYear:"%-d %b %Y"}});
-Plotly.register({moduleType:"locale",name:"sv",dictionary:{Autoscale:"Autoskala","Box Select":"V\xe4lj rektangel","Click to enter Colorscale title":"Klicka f\xf6r att ange titel p\xe5 f\xe4rgskala","Click to enter Component A title":"Klicka f\xf6r att ange titel p\xe5 komponent A","Click to enter Component B title":"Klicka f\xf6r att ange titel p\xe5 komponent B","Click to enter Component C title":"Klicka f\xf6r att ange titel p\xe5 komponent C","Click to enter Plot title":"Klicka f\xf6r att ange titel p\xe5 diagram","Click to enter X axis title":"Klicka f\xf6r att ange titel p\xe5 x-axel","Click to enter Y axis title":"Klicka f\xf6r att ange titel p\xe5 y-axel","Click to enter radial axis title":"Klicka f\xf6r att ange titel p\xe5 radiell axel","Compare data on hover":"J\xe4mf\xf6r data n\xe4r muspekaren h\xe5lls \xf6ver","Double-click on legend to isolate one trace":"Dubbelklicka p\xe5 f\xf6rklaringen f\xf6r att visa endast en serie","Double-click to zoom back out":"Dubbelklicka f\xf6r att zooma ut igen","Download plot":"Ladda ner diagram","Download plot as a png":"Ladda ner diagram som png","Edit in Chart Studio":"Editera i Chart Studio","IE only supports svg. Changing format to svg.":"IE st\xf6der enbart svg. Byter format till svg.","Lasso Select":"V\xe4lj lasso","Orbital rotation":"Orbital rotation",Pan:"Panorera","Produced with Plotly":"Skapad med Plotly",Reset:"\xc5terst\xe4ll","Reset axes":"\xc5terst\xe4ll axlar","Reset camera to default":"\xc5terst\xe4ll kamera till standard","Reset camera to last save":"\xc5terst\xe4ll kamera till senast sparad","Reset view":"\xc5terst\xe4ll vy","Reset views":"\xc5terst\xe4ll vyer","Show closest data on hover":"Visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Snapshot succeeded":"Bild skapad","Sorry, there was a problem downloading your snapshot!":"Tyv\xe4rr gick n\xe5got fel vid nedladdning av bild","Taking snapshot - this may take a few seconds":"Skapar bild - detta kan ta n\xe5gra sekunder","Toggle Spike Lines":"Aktivera/Inaktivera topplinjer","Toggle show closest data on hover":"Aktivera/Inaktivera visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Turntable rotation":"Platt rotation",Zoom:"Zooma","Zoom in":"Zooma in","Zoom out":"Zooma ut","close:":"st\xe4ngning:","concentration:":"koncentration:","high:":"h\xf6g:","incoming flow count:":"inkommande fl\xf6de summering:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"l\xe5g:","lower fence:":"undre gr\xe4ns:","max:":"max:","mean \xb1 \u03c3:":"medel \xb1 \u03c3:","mean:":"medel:","median:":"median:","min:":"min:","new text":"ny text","open:":"\xf6ppning:","outgoing flow count:":"utg\xe5ende fl\xf6de summering:","q1:":"q1:","q3:":"q3:","source:":"k\xe4lla:","target:":"m\xe5l:",trace:"serie","upper fence:":"\xf6vre gr\xe4ns:"},format:{days:["S\xf6ndag","M\xe5ndag","Tisdag","Onsdag","Torsdag","Fredag","L\xf6rdag"],shortDays:["S\xf6n","M\xe5n","Tis","Ons","Tor","Fre","L\xf6r"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%Y-%m-%d"}});
-Plotly.register({moduleType:"locale",name:"tr",dictionary:{},format:{days:["Pazar","Pazartesi","Sal\u0131","\xc7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],shortDays:["Pz","Pt","Sa","\xc7a","Pe","Cu","Ct"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\xfcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],date:"%d.%m.%Y"}});
\ No newline at end of file
+var locale={moduleType:"locale",name:"de",dictionary:{Autoscale:"Automatische Skalierung","Box Select":"Rechteckauswahl","Click to enter Colorscale title":"Klicken, um den Farbskalatitel einzugeben","Click to enter Component A title":"Klicken, um den Titel der Komponente A einzugeben","Click to enter Component B title":"Klicken, um den Titel der Komponente B einzugeben","Click to enter Component C title":"Klicken, um den Titel der Komponente C einzugeben","Click to enter Plot title":"Klicken, um den Titel des Graphen einzugeben","Click to enter X axis title":"Klicken, um den Titel der X-Achse einzugeben","Click to enter Y axis title":"Klicken, um den Titel der Y-Achse einzugeben","Compare data on hover":"\xdcber die Daten fahren, um sie zu vergleichen","Double-click on legend to isolate one trace":"Daten isolieren durch Doppelklick in der Legende","Double-click to zoom back out":"Herauszoomen durch Doppelklick","Download plot as a png":"Graphen als PNG herunterladen","Download plot":"Graphen herunterladen","Edit in Chart Studio":"Im Chart Studio bearbeiten","IE only supports svg. Changing format to svg.":"IE unterst\xfctzt nur SVG-Dateien. Format wird zu SVG gewechselt.","Lasso Select":"Lassoauswahl","Orbital rotation":"Orbitalrotation",Pan:"Verschieben","Produced with Plotly":"Erstellt mit Plotly",Reset:"Zur\xfccksetzen","Reset axes":"Achsen zur\xfccksetzen","Reset camera to default":"Kamera auf Standard zur\xfccksetzen","Reset camera to last save":"Kamera auf letzte Speicherung zur\xfccksetzen","Reset view":"Ansicht zur\xfccksetzen","Reset views":"Ansichten zur\xfccksetzen","Show closest data on hover":"Zeige n\xe4heste Daten beim \xdcberfahren","Snapshot succeeded":"Snapshot erfolgreich","Sorry, there was a problem downloading your snapshot!":"Es gab ein Problem beim Herunterladen des Snapshots","Taking snapshot - this may take a few seconds":"Erstelle einen Snapshot - dies kann einige Sekunden dauern",Zoom:"Zoom","Zoom in":"Hineinzoomen","Zoom out":"Herauszoomen","close:":"Schluss:",trace:"Datenspur","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"Quelle:","target:":"Ziel:","lower fence:":"Untere Schranke:","upper fence:":"Obere Schranke:","max:":"Max.:","mean \xb1 \u03c3:":"Mittelwert \xb1 \u03c3:","mean:":"Mittelwert:","median:":"Median:","min:":"Min.:","Turntable rotation":"Drehscheibenorbit","Toggle Spike Lines":"Bezugslinien an-/abschalten","open:":"Er\xf6ffnung:","high:":"H\xf6chstkurs:","low:":"Tiefstkurs:","Toggle show closest data on hover":"Anzeige der n\xe4hesten Daten an-/abschalten","incoming flow count:":"Anzahl eingehender Verbindungen:","outgoing flow count:":"Anzahl ausgehender Verbindungen:","kde:":"Dichte:"},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y",decimal:",",thousands:"."}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"es",dictionary:{Autoscale:"Autoescalar","Box Select":"Seleccionar Caja","Click to enter Colorscale title":"Introducir el t\xedtulo de la Escala de Color","Click to enter Component A title":"Introducir el t\xedtulo del Componente A","Click to enter Component B title":"Introducir el t\xedtulo del Componente B","Click to enter Component C title":"Introducir el t\xedtulo del Componente C","Click to enter Plot title":"Introducir el t\xedtulo de la Gr\xe1fica","Click to enter X axis title":"Introducir el t\xedtulo del eje X","Click to enter Y axis title":"Introducir el t\xedtulo del eje Y","Click to enter radial axis title":"Introducir el t\xedtulo del eje radial","Compare data on hover":"Comparar datos al pasar por encima","Double-click on legend to isolate one trace":"Haga doble-clic en la leyenda para aislar una traza","Double-click to zoom back out":"Haga doble-clic para restaurar la escala","Download plot as a png":"Descargar gr\xe1fica como png","Download plot":"Descargar gr\xe1fica","Edit in Chart Studio":"Editar en Chart Studio","IE only supports svg. Changing format to svg.":"IE solo soporta svg. Cambiando formato a svg.","Lasso Select":"Seleccionar con lazo","Orbital rotation":"Rotaci\xf3n esf\xe9rica",Pan:"Modo Panor\xe1mica","Produced with Plotly":"Hecho con Plotly",Reset:"Reiniciar","Reset axes":"Reiniciar ejes","Reset camera to default":"Restaurar c\xe1mara predeterminada","Reset camera to last save":"Restaurar anterior c\xe1mara","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Mostrar el dato m\xe1s cercano al pasar por encima","Snapshot succeeded":"La captura de la instant\xe1nea finaliz\xf3 correctamente","Sorry, there was a problem downloading your snapshot!":"\xa1La descarga de la instant\xe1nea fall\xf3!","Taking snapshot - this may take a few seconds":"Capturando una instant\xe1nea - podr\xeda tardar unos segundos","Toggle Spike Lines":"Mostrar/Ocultar Gu\xedas","Toggle show closest data on hover":"Activar/Desactivar mostrar el dato m\xe1s cercano al pasar por encima","Turntable rotation":"Rotaci\xf3n plana",Zoom:"Modo Ampliar/Reducir","Zoom in":"Ampliar","Zoom out":"Reducir","close:":"cierre:","high:":"alza:","incoming flow count:":"flujo de entrada:","kde:":"edp:","lat:":"lat:","lon:":"lon:","low:":"baja:","lower fence:":"l\xedmite inferior:","max:":"m\xe1x:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"m\xedn:","new text":"nuevo texto","open:":"apertura:","outgoing flow count:":"flujo de salida:","q1:":"q1:","q3:":"q3:","source:":"fuente:","target:":"destino:",trace:"traza","upper fence:":"l\xedmite superior:"},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:" "}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"fr",dictionary:{Autoscale:"\xc9chelle automatique","Box Select":"S\xe9lection rectangulaire","Click to enter Colorscale title":"Ajouter un titre \xe0 l'\xe9chelle de couleurs","Click to enter Component A title":"Ajouter un titre \xe0 la composante A","Click to enter Component B title":"Ajouter un titre \xe0 la composante B","Click to enter Component C title":"Ajouter un titre \xe0 la composante C","Click to enter Plot title":"Ajouter un titre au graphique","Click to enter X axis title":"Ajouter un titre \xe0 l'axe des x","Click to enter Y axis title":"Ajouter un titre \xe0 l'axe des y","Click to enter radial axis title":"Ajouter un titre \xe0 l'axe radial","Compare data on hover":"Comparaison entre donn\xe9es en survol","Double-click on legend to isolate one trace":"Double-cliquer sur la l\xe9gende pour isoler une s\xe9rie","Double-click to zoom back out":"Double-cliquer pour d\xe9zoomer","Download plot as a png":"T\xe9l\xe9charger le graphique en fichier PNG","Download plot":"T\xe9l\xe9charger le graphique","Edit in Chart Studio":"\xc9diter le graphique sur plot.ly","IE only supports svg. Changing format to svg.":"IE ne permet que les conversions en SVG. Conversion en SVG en cours.","Lasso Select":"S\xe9lection lasso","Orbital rotation":"Rotation orbitale",Pan:"Translation","Produced with Plotly":"G\xe9n\xe9r\xe9 avec Plotly",Reset:"R\xe9initialiser","Reset axes":"R\xe9initialiser les axes","Reset camera to default":"R\xe9gler la cam\xe9ra \xe0 sa valeur d\xe9faut","Reset camera to last save":"R\xe9gler la cam\xe9ra \xe0 sa valeur sauvegard\xe9e","Reset view":"R\xe9initialiser","Reset views":"R\xe9initialiser","Show closest data on hover":"Donn\xe9es les plus proches en survol","Snapshot succeeded":"Conversion r\xe9ussie","Sorry, there was a problem downloading your snapshot!":"D\xe9sol\xe9, un probl\xe8me est survenu lors du t\xe9l\xe9chargement de votre graphique","Taking snapshot - this may take a few seconds":"Conversion en cours, ceci peut prendre quelques secondes",Zoom:"Zoom","Zoom in":"Zoom int\xe9rieur","Zoom out":"Zoom ext\xe9rieur","close:":"fermeture :",trace:"s\xe9rie","lat:":"lat. :","lon:":"lon. :","q1:":"q1 :","q3:":"q3 :","source:":"source :","target:":"embouchure :","lower fence:":"cl\xf4ture sup\xe9rieure :","upper fence:":"cl\xf4ture inf\xe9rieure :","max:":"max. :","mean \xb1 \u03c3:":"moyenne \xb1 \u03c3 :","mean:":"moyenne :","median:":"m\xe9diane :","min:":"min. :","new text":"nouveau texte","Turntable rotation":"Rotation planaire","Toggle Spike Lines":"Activer/d\xe9sactiver les pics","open:":"ouverture :","high:":"haut :","low:":"bas :","Toggle show closest data on hover":"Activer/d\xe9sactiver le survol","incoming flow count:":"flux entrant :","outgoing flow count:":"flux sortant :","kde:":"est. par noyau :"},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d/%m/%Y",decimal:",",thousands:" ",year:"%Y",month:"%b %Y",dayMonth:"%-d %b",dayMonthYear:"%-d %b %Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"sv",dictionary:{Autoscale:"Autoskala","Box Select":"V\xe4lj rektangel","Click to enter Colorscale title":"Klicka f\xf6r att ange titel p\xe5 f\xe4rgskala","Click to enter Component A title":"Klicka f\xf6r att ange titel p\xe5 komponent A","Click to enter Component B title":"Klicka f\xf6r att ange titel p\xe5 komponent B","Click to enter Component C title":"Klicka f\xf6r att ange titel p\xe5 komponent C","Click to enter Plot title":"Klicka f\xf6r att ange titel p\xe5 diagram","Click to enter X axis title":"Klicka f\xf6r att ange titel p\xe5 x-axel","Click to enter Y axis title":"Klicka f\xf6r att ange titel p\xe5 y-axel","Click to enter radial axis title":"Klicka f\xf6r att ange titel p\xe5 radiell axel","Compare data on hover":"J\xe4mf\xf6r data n\xe4r muspekaren h\xe5lls \xf6ver","Double-click on legend to isolate one trace":"Dubbelklicka p\xe5 f\xf6rklaringen f\xf6r att visa endast en serie","Double-click to zoom back out":"Dubbelklicka f\xf6r att zooma ut igen","Download plot":"Ladda ner diagram","Download plot as a png":"Ladda ner diagram som png","Edit in Chart Studio":"Editera i Chart Studio","IE only supports svg. Changing format to svg.":"IE st\xf6der enbart svg. Byter format till svg.","Lasso Select":"V\xe4lj lasso","Orbital rotation":"Orbital rotation",Pan:"Panorera","Produced with Plotly":"Skapad med Plotly",Reset:"\xc5terst\xe4ll","Reset axes":"\xc5terst\xe4ll axlar","Reset camera to default":"\xc5terst\xe4ll kamera till standard","Reset camera to last save":"\xc5terst\xe4ll kamera till senast sparad","Reset view":"\xc5terst\xe4ll vy","Reset views":"\xc5terst\xe4ll vyer","Show closest data on hover":"Visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Snapshot succeeded":"Bild skapad","Sorry, there was a problem downloading your snapshot!":"Tyv\xe4rr gick n\xe5got fel vid nedladdning av bild","Taking snapshot - this may take a few seconds":"Skapar bild - detta kan ta n\xe5gra sekunder","Toggle Spike Lines":"Aktivera/Inaktivera topplinjer","Toggle show closest data on hover":"Aktivera/Inaktivera visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Turntable rotation":"Platt rotation",Zoom:"Zooma","Zoom in":"Zooma in","Zoom out":"Zooma ut","close:":"st\xe4ngning:","concentration:":"koncentration:","high:":"h\xf6g:","incoming flow count:":"inkommande fl\xf6de summering:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"l\xe5g:","lower fence:":"undre gr\xe4ns:","max:":"max:","mean \xb1 \u03c3:":"medel \xb1 \u03c3:","mean:":"medel:","median:":"median:","min:":"min:","new text":"ny text","open:":"\xf6ppning:","outgoing flow count:":"utg\xe5ende fl\xf6de summering:","q1:":"q1:","q3:":"q3:","source:":"k\xe4lla:","target:":"m\xe5l:",trace:"serie","upper fence:":"\xf6vre gr\xe4ns:"},format:{days:["S\xf6ndag","M\xe5ndag","Tisdag","Onsdag","Torsdag","Fredag","L\xf6rdag"],shortDays:["S\xf6n","M\xe5n","Tis","Ons","Tor","Fre","L\xf6r"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"tr",dictionary:{},format:{days:["Pazar","Pazartesi","Sal\u0131","\xc7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],shortDays:["Pz","Pt","Sa","\xc7a","Pe","Cu","Ct"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\xfcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
\ No newline at end of file
diff --git a/static/babybuddy/js/graph.8b669d614c06.js.gz b/static/babybuddy/js/graph.8b669d614c06.js.gz
new file mode 100644
index 00000000..95f0e5d1
Binary files /dev/null and b/static/babybuddy/js/graph.8b669d614c06.js.gz differ
diff --git a/static/babybuddy/js/graph.js b/static/babybuddy/js/graph.js
index 161e3669..9f3ffac5 100644
--- a/static/babybuddy/js/graph.js
+++ b/static/babybuddy/js/graph.js
@@ -1,6 +1,6 @@
/**
-* plotly.js (cartesian) v1.51.3
-* Copyright 2012-2019, Plotly, Inc.
+* plotly.js (cartesian) v1.52.1
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
* Licensed under the MIT license
*/
@@ -74,7 +74,7 @@ for(var selector in rules) {
},{"../src/lib":169}],2:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -87,7 +87,7 @@ module.exports = _dereq_('../src/traces/bar');
},{"../src/traces/bar":276}],3:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -98,9 +98,9 @@ module.exports = _dereq_('../src/traces/bar');
module.exports = _dereq_('../src/traces/box');
-},{"../src/traces/box":290}],4:[function(_dereq_,module,exports){
+},{"../src/traces/box":291}],4:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -111,9 +111,9 @@ module.exports = _dereq_('../src/traces/box');
module.exports = _dereq_('../src/traces/contour');
-},{"../src/traces/contour":310}],5:[function(_dereq_,module,exports){
+},{"../src/traces/contour":311}],5:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -126,7 +126,7 @@ module.exports = _dereq_('../src/core');
},{"../src/core":151}],6:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -137,9 +137,9 @@ module.exports = _dereq_('../src/core');
module.exports = _dereq_('../src/traces/heatmap');
-},{"../src/traces/heatmap":326}],7:[function(_dereq_,module,exports){
+},{"../src/traces/heatmap":327}],7:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -150,9 +150,9 @@ module.exports = _dereq_('../src/traces/heatmap');
module.exports = _dereq_('../src/traces/histogram');
-},{"../src/traces/histogram":344}],8:[function(_dereq_,module,exports){
+},{"../src/traces/histogram":345}],8:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -163,9 +163,9 @@ module.exports = _dereq_('../src/traces/histogram');
module.exports = _dereq_('../src/traces/histogram2d');
-},{"../src/traces/histogram2d":350}],9:[function(_dereq_,module,exports){
+},{"../src/traces/histogram2d":351}],9:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -176,9 +176,9 @@ module.exports = _dereq_('../src/traces/histogram2d');
module.exports = _dereq_('../src/traces/histogram2dcontour');
-},{"../src/traces/histogram2dcontour":354}],10:[function(_dereq_,module,exports){
+},{"../src/traces/histogram2dcontour":355}],10:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -189,9 +189,9 @@ module.exports = _dereq_('../src/traces/histogram2dcontour');
module.exports = _dereq_('../src/traces/image');
-},{"../src/traces/image":361}],11:[function(_dereq_,module,exports){
+},{"../src/traces/image":362}],11:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -220,7 +220,7 @@ module.exports = Plotly;
},{"./bar":2,"./box":3,"./contour":4,"./core":5,"./heatmap":6,"./histogram":7,"./histogram2d":8,"./histogram2dcontour":9,"./image":10,"./pie":12,"./scatterternary":13,"./violin":14}],12:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -231,9 +231,9 @@ module.exports = Plotly;
module.exports = _dereq_('../src/traces/pie');
-},{"../src/traces/pie":370}],13:[function(_dereq_,module,exports){
+},{"../src/traces/pie":371}],13:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -244,9 +244,9 @@ module.exports = _dereq_('../src/traces/pie');
module.exports = _dereq_('../src/traces/scatterternary');
-},{"../src/traces/scatterternary":410}],14:[function(_dereq_,module,exports){
+},{"../src/traces/scatterternary":411}],14:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -257,7 +257,7 @@ module.exports = _dereq_('../src/traces/scatterternary');
module.exports = _dereq_('../src/traces/violin');
-},{"../src/traces/violin":418}],15:[function(_dereq_,module,exports){
+},{"../src/traces/violin":419}],15:[function(_dereq_,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -14679,7 +14679,7 @@ else {
},{}],35:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -14750,7 +14750,7 @@ module.exports = [
},{}],36:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15105,7 +15105,7 @@ module.exports = templatedArray('annotation', {
},{"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219,"../../plots/font_attributes":239,"./arrow_paths":35}],37:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15194,7 +15194,7 @@ function calcAxisExpansion(ann, ax) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"./draw":42}],38:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15332,7 +15332,7 @@ function clickData2r(d, ax) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258}],39:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15411,7 +15411,7 @@ module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayo
},{"../../lib":169,"../color":51}],40:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15474,7 +15474,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
},{"../../lib/to_log_range":192,"fast-isnumeric":18}],41:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -15581,7 +15581,7 @@ function handleAnnotationDefaults(annIn, annOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":36,"./common_defaults":39}],42:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16281,7 +16281,7 @@ function drawRaw(gd, options, index, subplotId, xa, ya) {
},{"../../lib":169,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plot_api/plot_template":203,"../../plots/cartesian/axes":213,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"../fx":89,"./draw_arrow_head":43,"d3":16}],43:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16432,7 +16432,7 @@ module.exports = function drawArrowHead(el3, ends, options) {
},{"../color":51,"./arrow_paths":35,"d3":16}],44:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16466,7 +16466,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":36,"./calc_autorange":37,"./click":38,"./convert_coords":40,"./defaults":41,"./draw":42}],45:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16554,7 +16554,7 @@ module.exports = overrideAll(templatedArray('annotation', {
},{"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../annotations/attributes":36}],46:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16619,7 +16619,7 @@ function mockAnnAxes(ann, scene) {
},{"../../lib":169,"../../plots/cartesian/axes":213}],47:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16695,7 +16695,7 @@ function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"../annotations/common_defaults":39,"./attributes":45}],48:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16747,7 +16747,7 @@ module.exports = function draw(scene) {
},{"../../plots/gl3d/project":242,"../annotations/draw":42}],49:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16795,7 +16795,7 @@ function includeGL3D(layoutIn, layoutOut) {
},{"../../lib":169,"../../registry":258,"./attributes":45,"./convert":46,"./defaults":47,"./draw":48}],50:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -16835,7 +16835,7 @@ exports.lightFraction = 100 * (0xe - 0x4) / (0xf - 0x4);
},{}],51:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17009,7 +17009,7 @@ function cleanOne(val) {
},{"./attributes":50,"fast-isnumeric":18,"tinycolor2":34}],52:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17188,7 +17188,7 @@ module.exports = overrideAll({
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plots/cartesian/layout_attributes":225,"../../plots/font_attributes":239}],53:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17216,7 +17216,7 @@ module.exports = {
},{}],54:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -17282,7 +17282,7 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/cartesian/tick_label_defaults":232,"../../plots/cartesian/tick_mark_defaults":233,"../../plots/cartesian/tick_value_defaults":234,"./attributes":52}],55:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18008,7 +18008,7 @@ module.exports = {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/extend":164,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_defaults":215,"../../plots/cartesian/layout_attributes":225,"../../plots/cartesian/position_defaults":228,"../../plots/plots":245,"../../registry":258,"../color":51,"../colorscale/helpers":62,"../dragelement":69,"../drawing":72,"../titles":138,"./constants":53,"d3":16,"tinycolor2":34}],56:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18027,7 +18027,7 @@ module.exports = function hasColorbar(container) {
},{"../../lib":169}],57:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18049,7 +18049,7 @@ module.exports = {
},{"./attributes":52,"./defaults":54,"./draw":55,"./has_colorbar":56}],58:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18257,7 +18257,7 @@ module.exports = function colorScaleAttrs(context, opts) {
},{"../../lib/regex":184,"../colorbar/attributes":52,"./scales.js":66}],59:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18336,7 +18336,7 @@ module.exports = function calc(gd, trace, opts) {
},{"../../lib":169,"./helpers":62,"fast-isnumeric":18}],60:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18413,7 +18413,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
},{"../../lib":169,"./helpers":62}],61:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18529,13 +18529,16 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);
var showScale = coerce(prefix + 'showscale', showScaleDflt);
- if(showScale) colorbarDefaults(containerIn, containerOut, layout);
+ if(showScale) {
+ if(prefix && template) containerOut._template = template;
+ colorbarDefaults(containerIn, containerOut, layout);
+ }
}
};
},{"../../lib":169,"../../registry":258,"../colorbar/defaults":54,"../colorbar/has_colorbar":56,"./scales":66,"fast-isnumeric":18}],62:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18775,7 +18778,7 @@ module.exports = {
},{"../../lib":169,"../color":51,"./scales":66,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],63:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18817,7 +18820,7 @@ module.exports = {
},{"./attributes":58,"./calc":59,"./cross_trace_defaults":60,"./defaults":61,"./helpers":62,"./layout_attributes":64,"./layout_defaults":65,"./scales":66}],64:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18878,7 +18881,7 @@ module.exports = {
},{"../../lib/extend":164,"./attributes":58,"./scales":66}],65:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -18929,7 +18932,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
},{"../../lib":169,"../../plot_api/plot_template":203,"./defaults":61,"./layout_attributes":64}],66:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19133,7 +19136,7 @@ module.exports = {
},{"tinycolor2":34}],67:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19166,7 +19169,7 @@ module.exports = function align(v, dv, v0, v1, anchor) {
},{}],68:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19204,7 +19207,7 @@ module.exports = function getCursor(x, y, xanchor, yanchor) {
},{"../../lib":169}],69:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19496,7 +19499,7 @@ function pointerOffset(e) {
},{"../../lib":169,"../../plots/cartesian/constants":219,"./align":67,"./cursor":68,"./unhover":70,"has-hover":20,"has-passive-events":21,"mouse-event-offset":24}],70:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19551,7 +19554,7 @@ unhover.raw = function raw(gd, evt) {
},{"../../lib/dom":162,"../../lib/events":163,"../../lib/throttle":191,"../fx/constants":84}],71:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19576,7 +19579,7 @@ exports.dash = {
},{}],72:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -19794,21 +19797,31 @@ drawing.symbolList = [];
Object.keys(SYMBOLDEFS).forEach(function(k) {
var symDef = SYMBOLDEFS[k];
- drawing.symbolList = drawing.symbolList.concat(
- [symDef.n, k, symDef.n + 100, k + '-open']);
- drawing.symbolNames[symDef.n] = k;
- drawing.symbolFuncs[symDef.n] = symDef.f;
+ var n = symDef.n;
+ drawing.symbolList.push(
+ n,
+ k,
+ n + 100,
+ k + '-open'
+ );
+ drawing.symbolNames[n] = k;
+ drawing.symbolFuncs[n] = symDef.f;
+
if(symDef.needLine) {
- drawing.symbolNeedLines[symDef.n] = true;
+ drawing.symbolNeedLines[n] = true;
}
if(symDef.noDot) {
- drawing.symbolNoDot[symDef.n] = true;
+ drawing.symbolNoDot[n] = true;
} else {
- drawing.symbolList = drawing.symbolList.concat(
- [symDef.n + 200, k + '-dot', symDef.n + 300, k + '-open-dot']);
+ drawing.symbolList.push(
+ n + 200,
+ k + '-dot',
+ n + 300,
+ k + '-open-dot'
+ );
}
if(symDef.noFill) {
- drawing.symbolNoFill[symDef.n] = true;
+ drawing.symbolNoFill[n] = true;
}
});
@@ -19830,8 +19843,9 @@ drawing.symbolNumber = function(v) {
v = drawing.symbolNames.indexOf(v);
if(v >= 0) { v += vbase; }
}
- if((v % 100 >= MAXSYMBOL) || v >= 400) { return 0; }
- return Math.floor(Math.max(v, 0));
+
+ return (v % 100 >= MAXSYMBOL || v >= 400) ?
+ 0 : Math.floor(Math.max(v, 0));
};
function makePointPath(symbolNumber, r) {
@@ -19877,9 +19891,10 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
}
}
- var fullID = 'g' + gd._fullLayout._uid + '-' + gradientID;
+ var fullLayout = gd._fullLayout;
+ var fullID = 'g' + fullLayout._uid + '-' + gradientID;
- var gradient = gd._fullLayout._defs.select('.gradients')
+ var gradient = fullLayout._defs.select('.gradients')
.selectAll('#' + fullID)
.data([type + colorStops.join(';')], Lib.identity);
@@ -19910,6 +19925,13 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
sel.style(prop, getFullUrl(fullID, gd))
.style(prop + '-opacity', null);
+
+ var className2query = function(s) {
+ return '.' + s.attr('class').replace(/\s/g, '.');
+ };
+ var k = className2query(d3.select(sel.node().parentNode)) +
+ '>' + className2query(sel);
+ fullLayout._gradientUrlQueryParts[k] = 1;
};
/*
@@ -19920,8 +19942,14 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
* The upside of this is arbitrary points can share gradient defs
*/
drawing.initGradients = function(gd) {
- var gradientsGroup = Lib.ensureSingle(gd._fullLayout._defs, 'g', 'gradients');
+ var fullLayout = gd._fullLayout;
+
+ var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');
gradientsGroup.selectAll('linearGradient,radialGradient').remove();
+
+ // initialize stash of query parts filled in Drawing.gradient,
+ // used to fix URL strings during image exports
+ fullLayout._gradientUrlQueryParts = {};
};
@@ -20737,9 +20765,9 @@ drawing.setTextPointsScale = function(selection, xScale, yScale) {
});
};
-},{"../../components/fx/helpers":86,"../../constants/alignment":145,"../../constants/interactions":148,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../lib/svg_text_utils":190,"../../registry":258,"../../traces/scatter/make_bubble_size_func":394,"../../traces/scatter/subtypes":401,"../color":51,"../colorscale":63,"./symbol_defs":73,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],73:[function(_dereq_,module,exports){
+},{"../../components/fx/helpers":86,"../../constants/alignment":145,"../../constants/interactions":148,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../lib/svg_text_utils":190,"../../registry":258,"../../traces/scatter/make_bubble_size_func":395,"../../traces/scatter/subtypes":402,"../color":51,"../colorscale":63,"./symbol_defs":73,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],73:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21227,7 +21255,7 @@ module.exports = {
},{"d3":16}],74:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21342,7 +21370,7 @@ module.exports = {
},{}],75:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21428,7 +21456,7 @@ function calcOneAxis(calcTrace, trace, axis, coord) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./compute_error":76,"fast-isnumeric":18}],76:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21529,7 +21557,7 @@ function makeComputeErrorValue(type, value) {
},{}],77:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21604,7 +21632,7 @@ module.exports = function(traceIn, traceOut, defaultColor, opts) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258,"./attributes":74,"fast-isnumeric":18}],78:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21673,7 +21701,7 @@ function hoverInfo(calcPoint, trace, hoverPoint) {
},{"../../lib":169,"../../plot_api/edit_types":196,"./attributes":74,"./calc":75,"./compute_error":76,"./defaults":77,"./plot":79,"./style":80}],79:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21843,9 +21871,9 @@ function errorCoords(d, xa, ya) {
return out;
}
-},{"../../traces/scatter/subtypes":401,"../drawing":72,"d3":16,"fast-isnumeric":18}],80:[function(_dereq_,module,exports){
+},{"../../traces/scatter/subtypes":402,"../drawing":72,"d3":16,"fast-isnumeric":18}],80:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21882,7 +21910,7 @@ module.exports = function style(traces) {
},{"../color":51,"d3":16}],81:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21918,7 +21946,7 @@ module.exports = {
},{"../../lib/extend":164,"../../plots/font_attributes":239,"./layout_attributes":90}],82:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -21977,7 +22005,7 @@ function paste(traceAttr, cd, cdAttr, fn) {
},{"../../lib":169,"../../registry":258}],83:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22014,7 +22042,7 @@ module.exports = function click(gd, evt, subplot) {
},{"../../registry":258,"./hover":87}],84:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22046,7 +22074,7 @@ module.exports = {
},{}],85:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22072,7 +22100,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
},{"../../lib":169,"./attributes":81,"./hoverlabel_defaults":88}],86:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -22314,7 +22342,7 @@ function getPointData(val, pointNumber) {
},{"../../lib":169}],87:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24000,7 +24028,7 @@ function plainText(s, len) {
},{"../../lib":169,"../../lib/events":163,"../../lib/override_cursor":180,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":84,"./helpers":86,"d3":16,"fast-isnumeric":18,"tinycolor2":34}],88:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24023,7 +24051,7 @@ module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts
},{"../../lib":169}],89:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24102,7 +24130,7 @@ function castHoverinfo(trace, fullLayout, ptNumber) {
},{"../../lib":169,"../dragelement":69,"./attributes":81,"./calc":82,"./click":83,"./constants":84,"./defaults":85,"./helpers":86,"./hover":87,"./layout_attributes":90,"./layout_defaults":91,"./layout_global_defaults":92,"d3":16}],90:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24205,7 +24233,7 @@ module.exports = {
},{"../../plots/font_attributes":239,"./constants":84}],91:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24279,7 +24307,7 @@ function isHoriz(fullData, fullLayout) {
},{"../../lib":169,"./layout_attributes":90}],92:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24302,7 +24330,7 @@ module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {
},{"../../lib":169,"./hoverlabel_defaults":88,"./layout_attributes":90}],93:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24676,7 +24704,7 @@ module.exports = {
},{"../../lib":169,"../../lib/regex":184,"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219,"../../plots/domain":238}],94:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24811,7 +24839,7 @@ module.exports = templatedArray('image', {
},{"../../plot_api/plot_template":203,"../../plots/cartesian/constants":219}],95:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24892,7 +24920,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
},{"../../lib/to_log_range":192,"fast-isnumeric":18}],96:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -24957,7 +24985,7 @@ function imageDefaults(imageIn, imageOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":94}],97:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25182,7 +25210,7 @@ module.exports = function draw(gd) {
},{"../../constants/xmlns_namespaces":150,"../../plots/cartesian/axes":213,"../drawing":72,"d3":16}],98:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25206,7 +25234,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":94,"./convert_coords":95,"./defaults":96,"./draw":97}],99:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25340,12 +25368,34 @@ module.exports = {
editType: 'legend',
},
+ title: {
+ text: {
+ valType: 'string',
+ dflt: '',
+
+ editType: 'legend',
+
+ },
+ font: fontAttrs({
+ editType: 'legend',
+
+ }),
+ side: {
+ valType: 'enumerated',
+ values: ['top', 'left', 'top left'],
+
+ editType: 'legend',
+
+ },
+ editType: 'legend',
+ },
+
editType: 'legend'
};
},{"../../plots/font_attributes":239,"../color/attributes":50}],100:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25361,6 +25411,8 @@ module.exports = {
scrollBarMargin: 4,
scrollBarEnterAttrs: {rx: 20, ry: 3, width: 0, height: 0},
+ // number of px between legend title and (left) side of legend (always in x direction and from inner border)
+ titlePad: 2,
// number of px between legend symbol and legend text (always in x direction)
textGap: 40,
// number of px between each legend item (x and/or y direction)
@@ -25369,7 +25421,7 @@ module.exports = {
},{}],101:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25403,7 +25455,14 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
// *would* be shown by default, toward the two traces you need to
// ensure the legend is shown by default, because this can still help
// disambiguate.
- if(trace.showlegend || trace._dfltShowLegend) {
+ if(trace.showlegend || (
+ trace._dfltShowLegend && !(
+ trace._module &&
+ trace._module.attributes &&
+ trace._module.attributes.showlegend &&
+ trace._module.attributes.showlegend.dflt === false
+ )
+ )) {
legendTraceCount++;
if(trace.showlegend) {
legendReallyHasATrace = true;
@@ -25486,11 +25545,17 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
coerce('yanchor', defaultYAnchor);
coerce('valign');
Lib.noneOrAll(containerIn, containerOut, ['x', 'y']);
+
+ var titleText = coerce('title.text');
+ if(titleText) {
+ coerce('title.side', orientation === 'h' ? 'left' : 'top');
+ Lib.coerceFont(coerce, 'title.font', layoutOut.font);
+ }
};
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/layout_attributes":243,"../../registry":258,"./attributes":99,"./helpers":105}],102:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -25556,6 +25621,19 @@ module.exports = function draw(gd) {
var scrollBox = Lib.ensureSingle(legend, 'g', 'scrollbox');
+ var title = opts.title;
+ opts._titleWidth = 0;
+ opts._titleHeight = 0;
+ if(title.text) {
+ var titleEl = Lib.ensureSingle(scrollBox, 'text', 'legendtitletext');
+ titleEl.attr('text-anchor', 'start')
+ .classed('user-select-none', true)
+ .call(Drawing.font, title.font)
+ .text(title.text);
+
+ textLayout(titleEl, scrollBox, gd); // handle mathjax or multi-line text and compute title height
+ }
+
var scrollBar = Lib.ensureSingle(legend, 'rect', 'scrollbar', function(s) {
s.attr(constants.scrollBarEnterAttrs)
.call(Color.fill, constants.scrollBarColor);
@@ -25612,7 +25690,7 @@ module.exports = function draw(gd) {
}
// Set size and position of all the elements that make up a legend:
- // legend, background and border, scroll box and scroll bar
+ // legend, background and border, scroll box and scroll bar as well as title
Drawing.setTranslate(legend, lx, ly);
// to be safe, remove previous listeners
@@ -25861,23 +25939,17 @@ function drawTexts(g, gd) {
textEl.attr('text-anchor', 'start')
.classed('user-select-none', true)
- .call(Drawing.font, fullLayout.legend.font)
+ .call(Drawing.font, opts.font)
.text(isEditable ? ensureLength(name, maxNameLength) : name);
svgTextUtils.positionText(textEl, constants.textGap, 0);
- function textLayout(s) {
- svgTextUtils.convertToTspans(s, gd, function() {
- computeTextDimensions(g, gd);
- });
- }
-
if(isEditable) {
textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})
- .call(textLayout)
+ .call(textLayout, g, gd)
.on('edit', function(newName) {
this.text(ensureLength(newName, maxNameLength))
- .call(textLayout);
+ .call(textLayout, g, gd);
var fullInput = legendItem.trace._fullInput || {};
var update = {};
@@ -25898,7 +25970,7 @@ function drawTexts(g, gd) {
return Registry.call('_guiRestyle', gd, update, traceIndex);
});
} else {
- textLayout(textEl);
+ textLayout(textEl, g, gd);
}
}
@@ -25951,18 +26023,24 @@ function setupTraceToggle(g, gd) {
});
}
+function textLayout(s, g, gd) {
+ svgTextUtils.convertToTspans(s, gd, function() {
+ computeTextDimensions(g, gd);
+ });
+}
+
function computeTextDimensions(g, gd) {
var legendItem = g.data()[0][0];
-
- if(!legendItem.trace.showlegend) {
+ if(legendItem && !legendItem.trace.showlegend) {
g.remove();
return;
}
var mathjaxGroup = g.select('g[class*=math-group]');
var mathjaxNode = mathjaxGroup.node();
+ var bw = gd._fullLayout.legend.borderwidth;
var opts = gd._fullLayout.legend;
- var lineHeight = opts.font.size * LINE_SPACING;
+ var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;
var height, width;
if(mathjaxNode) {
@@ -25971,24 +26049,56 @@ function computeTextDimensions(g, gd) {
height = mathjaxBB.height;
width = mathjaxBB.width;
- Drawing.setTranslate(mathjaxGroup, 0, (height / 4));
+ if(legendItem) {
+ Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);
+ } else { // case of title
+ Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);
+ }
} else {
- var text = g.select('.legendtext');
- var textLines = svgTextUtils.lineCount(text);
- var textNode = text.node();
+ var textEl = g.select(legendItem ?
+ '.legendtext' : '.legendtitletext'
+ );
+ var textLines = svgTextUtils.lineCount(textEl);
+ var textNode = textEl.node();
height = lineHeight * textLines;
width = textNode ? Drawing.bBox(textNode).width : 0;
// approximation to height offset to center the font
// to avoid getBoundingClientRect
- var textY = lineHeight * (0.3 + (1 - textLines) / 2);
- svgTextUtils.positionText(text, constants.textGap, textY);
+ var textY = lineHeight * ((textLines - 1) / 2 - 0.3);
+ if(legendItem) {
+ svgTextUtils.positionText(textEl, constants.textGap, -textY);
+ } else { // case of title
+ svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);
+ }
}
- legendItem.lineHeight = lineHeight;
- legendItem.height = Math.max(height, 16) + 3;
- legendItem.width = width;
+ if(legendItem) {
+ legendItem.lineHeight = lineHeight;
+ legendItem.height = Math.max(height, 16) + 3;
+ legendItem.width = width;
+ } else { // case of title
+ opts._titleWidth = width;
+ opts._titleHeight = height;
+ }
+}
+
+function getTitleSize(opts) {
+ var w = 0;
+ var h = 0;
+
+ var side = opts.title.side;
+ if(side) {
+ if(side.indexOf('left') !== -1) {
+ w = opts._titleWidth;
+ }
+ if(side.indexOf('top') !== -1) {
+ h = opts._titleHeight;
+ }
+ }
+
+ return [w, h];
}
/*
@@ -26005,6 +26115,7 @@ function computeLegendDimensions(gd, groups, traces) {
var fullLayout = gd._fullLayout;
var opts = fullLayout.legend;
var gs = fullLayout._size;
+
var isVertical = helpers.isVertical(opts);
var isGrouped = helpers.isGrouped(opts);
@@ -26028,11 +26139,15 @@ function computeLegendDimensions(gd, groups, traces) {
var toggleRectWidth = 0;
opts._width = 0;
opts._height = 0;
+ var titleSize = getTitleSize(opts);
if(isVertical) {
traces.each(function(d) {
var h = d[0].height;
- Drawing.setTranslate(this, bw, itemGap + bw + opts._height + h / 2);
+ Drawing.setTranslate(this,
+ bw + titleSize[0],
+ bw + titleSize[1] + opts._height + h / 2 + itemGap
+ );
opts._height += h;
opts._width = Math.max(opts._width, d[0].width);
});
@@ -26082,7 +26197,10 @@ function computeLegendDimensions(gd, groups, traces) {
var offsetY = 0;
d3.select(this).selectAll('g.traces').each(function(d) {
var h = d[0].height;
- Drawing.setTranslate(this, 0, itemGap + bw + h / 2 + offsetY);
+ Drawing.setTranslate(this,
+ titleSize[0],
+ titleSize[1] + bw + itemGap + h / 2 + offsetY
+ );
offsetY += h;
maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);
});
@@ -26125,7 +26243,10 @@ function computeLegendDimensions(gd, groups, traces) {
maxItemHeightInRow = 0;
}
- Drawing.setTranslate(this, bw + offsetX, itemGap + bw + h / 2 + offsetY);
+ Drawing.setTranslate(this,
+ titleSize[0] + bw + offsetX,
+ titleSize[1] + bw + offsetY + h / 2 + itemGap
+ );
rowWidth = offsetX + w + itemGap;
offsetX += next;
@@ -26142,8 +26263,19 @@ function computeLegendDimensions(gd, groups, traces) {
}
}
- opts._width = Math.ceil(opts._width);
- opts._height = Math.ceil(opts._height);
+ opts._width = Math.ceil(
+ Math.max(
+ opts._width + titleSize[0],
+ opts._titleWidth + 2 * (bw + constants.titlePad)
+ )
+ );
+
+ opts._height = Math.ceil(
+ Math.max(
+ opts._height + titleSize[1],
+ opts._titleHeight + 2 * (bw + constants.itemGap)
+ )
+ );
opts._effHeight = Math.min(opts._height, opts._maxHeight);
@@ -26188,7 +26320,7 @@ function getYanchor(opts) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/events":163,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":100,"./get_legend_data":103,"./handle_click":104,"./helpers":105,"./style":107,"d3":16}],103:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26296,7 +26428,7 @@ module.exports = function getLegendData(calcdata, opts) {
},{"../../registry":258,"./helpers":105}],104:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26462,11 +26594,12 @@ module.exports = function handleClick(g, gd, numClicks) {
} else if(mode === 'toggleothers') {
// Compute the clicked index. expandedIndex does what we want for expanded traces
// but also culls hidden traces. That means we have some work to do.
- var isClicked, isInGroup, otherState;
+ var isClicked, isInGroup, notInLegend, otherState;
var isIsolated = true;
for(i = 0; i < fullData.length; i++) {
isClicked = fullData[i] === fullTrace;
- if(isClicked) continue;
+ notInLegend = fullData[i].showlegend !== true;
+ if(isClicked || notInLegend) continue;
isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);
@@ -26491,8 +26624,10 @@ module.exports = function handleClick(g, gd, numClicks) {
case true:
otherState = isIsolated ? true : 'legendonly';
isClicked = fullData[i] === fullTrace;
+ // N.B. consider traces that have a set legendgroup as toggleable
+ notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);
isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);
- setVisibility(fullData[i], isInGroup ? true : otherState);
+ setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);
break;
}
}
@@ -26532,7 +26667,7 @@ module.exports = function handleClick(g, gd, numClicks) {
},{"../../lib":169,"../../registry":258}],105:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26556,7 +26691,7 @@ exports.isReversed = function isReversed(legendLayout) {
},{}],106:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26580,7 +26715,7 @@ module.exports = {
},{"./attributes":99,"./defaults":101,"./draw":102,"./style":107}],107:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -26665,6 +26800,7 @@ module.exports = function style(s, gd) {
.enter().append('g')
.classed('legendpoints', true);
})
+ .each(styleSpatial)
.each(styleWaterfalls)
.each(styleFunnels)
.each(styleBars)
@@ -27062,15 +27198,139 @@ module.exports = function style(s, gd) {
stylePie(pts, d0Mod, tMod);
}
}
+
+ function styleSpatial(d) { // i.e. maninly traces having z and colorscale
+ var trace = d[0].trace;
+
+ var useGradient;
+ var ptsData = [];
+ if(trace.visible) {
+ switch(trace.type) {
+ case 'histogram2d' :
+ case 'heatmap' :
+ ptsData = [
+ ['M-15,-2V4H15V-2Z'] // similar to contour
+ ];
+ useGradient = true;
+ break;
+ case 'choropleth' :
+ case 'choroplethmapbox' :
+ ptsData = [
+ ['M-6,-6V6H6V-6Z']
+ ];
+ useGradient = true;
+ break;
+ case 'densitymapbox' :
+ ptsData = [
+ ['M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0']
+ ];
+ useGradient = 'radial';
+ break;
+ case 'cone' :
+ ptsData = [
+ ['M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z'],
+ ['M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z'],
+ ['M-6,-2 A2,2 0 0,0 -6,2 L6,0Z']
+ ];
+ useGradient = false;
+ break;
+ case 'streamtube' :
+ ptsData = [
+ ['M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z'],
+ ['M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z'],
+ ['M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z']
+ ];
+ useGradient = false;
+ break;
+ case 'surface' :
+ ptsData = [
+ ['M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z'],
+ ['M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z']
+ ];
+ useGradient = true;
+ break;
+ case 'mesh3d' :
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6H6L0,6Z']
+ ];
+ useGradient = false;
+ break;
+ case 'volume' :
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6H6L0,6Z']
+ ];
+ useGradient = true;
+ break;
+ case 'isosurface':
+ ptsData = [
+ ['M-6,6H0L-6,-6Z'],
+ ['M6,6H0L6,-6Z'],
+ ['M-6,-6 A12,24 0 0,0 6,-6 L0,6Z']
+ ];
+ useGradient = false;
+ break;
+ }
+ }
+
+ var pts = d3.select(this).select('g.legendpoints')
+ .selectAll('path.legend3dandfriends')
+ .data(ptsData);
+ pts.enter().append('path').classed('legend3dandfriends', true)
+ .attr('transform', 'translate(20,0)')
+ .style('stroke-miterlimit', 1);
+ pts.exit().remove();
+
+ pts.each(function(dd, i) {
+ var pt = d3.select(this);
+
+ var cOpts = extractOpts(trace);
+ var colorscale = cOpts.colorscale;
+ var reversescale = cOpts.reversescale;
+ var fillGradient = function(s) {
+ if(s.size()) {
+ var gradientID = 'legendfill-' + trace.uid;
+ Drawing.gradient(s, gd, gradientID,
+ getGradientDirection(reversescale, useGradient === 'radial'),
+ colorscale, 'fill');
+ }
+ };
+
+ var fillColor;
+ if(!colorscale) {
+ var color = trace.vertexcolor || trace.facecolor || trace.color;
+ fillColor = Lib.isArrayOrTypedArray(color) ? (color[i] || color[0]) : color;
+ } else {
+ if(!useGradient) {
+ var len = colorscale.length;
+ fillColor =
+ i === 0 ? colorscale[reversescale ? len - 1 : 0][1] : // minimum
+ i === 1 ? colorscale[reversescale ? 0 : len - 1][1] : // maximum
+ colorscale[Math.floor((len - 1) / 2)][1]; // middle
+ }
+ }
+
+ pt.attr('d', dd[0]);
+ if(fillColor) {
+ pt.call(Color.fill, fillColor);
+ } else {
+ pt.call(fillGradient);
+ }
+ });
+ }
};
-function getGradientDirection(reversescale) {
- return reversescale ? 'horizontal' : 'horizontalreversed';
+function getGradientDirection(reversescale, isRadial) {
+ var str = isRadial ? 'radial' : 'horizontal';
+ return str + (reversescale ? '' : 'reversed');
}
-},{"../../lib":169,"../../registry":258,"../../traces/pie/helpers":369,"../../traces/pie/style_one":375,"../../traces/scatter/subtypes":401,"../color":51,"../colorscale/helpers":62,"../drawing":72,"d3":16}],108:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"../../traces/pie/helpers":370,"../../traces/pie/style_one":376,"../../traces/scatter/subtypes":402,"../color":51,"../colorscale/helpers":62,"../drawing":72,"d3":16}],108:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27374,7 +27634,7 @@ function handleDrag3d(gd, ev) {
var button = ev.currentTarget;
var attr = button.getAttribute('data-attr');
var val = button.getAttribute('data-val') || true;
- var sceneIds = gd._fullLayout._subplots.gl3d;
+ var sceneIds = gd._fullLayout._subplots.gl3d || [];
var layoutUpdate = {};
var parts = attr.split('.');
@@ -27539,7 +27799,7 @@ function handleGeo(gd, ev) {
var attr = button.getAttribute('data-attr');
var val = button.getAttribute('data-val') || true;
var fullLayout = gd._fullLayout;
- var geoIds = fullLayout._subplots.geo;
+ var geoIds = fullLayout._subplots.geo || [];
for(var i = 0; i < geoIds.length; i++) {
var id = geoIds[i];
@@ -27550,10 +27810,12 @@ function handleGeo(gd, ev) {
var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;
Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);
- } else if(attr === 'reset') {
- resetView(gd, 'geo');
}
}
+
+ if(attr === 'reset') {
+ resetView(gd, 'geo');
+ }
}
modeBarButtons.hoverClosestGl2d = {
@@ -27689,6 +27951,42 @@ modeBarButtons.resetViewMapbox = {
}
};
+modeBarButtons.zoomInMapbox = {
+ name: 'zoomInMapbox',
+ title: function(gd) { return _(gd, 'Zoom in'); },
+ attr: 'zoom',
+ val: 'in',
+ icon: Icons.zoom_plus,
+ click: handleMapboxZoom
+};
+
+modeBarButtons.zoomOutMapbox = {
+ name: 'zoomOutMapbox',
+ title: function(gd) { return _(gd, 'Zoom out'); },
+ attr: 'zoom',
+ val: 'out',
+ icon: Icons.zoom_minus,
+ click: handleMapboxZoom
+};
+
+function handleMapboxZoom(gd, ev) {
+ var button = ev.currentTarget;
+ var val = button.getAttribute('data-val');
+ var fullLayout = gd._fullLayout;
+ var subplotIds = fullLayout._subplots.mapbox || [];
+ var scalar = 1.05;
+ var aObj = {};
+
+ for(var i = 0; i < subplotIds.length; i++) {
+ var id = subplotIds[i];
+ var current = fullLayout[id].zoom;
+ var next = (val === 'in') ? scalar * current : current / scalar;
+ aObj[id + '.zoom'] = next;
+ }
+
+ Registry.call('_guiRelayout', gd, aObj);
+}
+
function resetView(gd, subplotType) {
var fullLayout = gd._fullLayout;
var subplotIds = fullLayout._subplots[subplotType] || [];
@@ -27711,7 +28009,7 @@ function resetView(gd, subplotType) {
},{"../../fonts/ploticon":153,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258}],109:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27725,7 +28023,7 @@ exports.manage = _dereq_('./manage');
},{"./manage":110}],110:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -27852,6 +28150,7 @@ function getButtonGroups(gd) {
hoverGroup = ['hoverClosest3d'];
resetGroup = ['resetCameraDefault3d', 'resetCameraLastSave3d'];
} else if(hasMapbox) {
+ zoomGroup = ['zoomInMapbox', 'zoomOutMapbox'];
hoverGroup = ['toggleHover'];
resetGroup = ['resetViewMapbox'];
} else if(hasGL2D) {
@@ -27988,9 +28287,9 @@ function fillCustomButton(customButtons) {
return customButtons;
}
-},{"../../plots/cartesian/axis_ids":216,"../../registry":258,"../../traces/scatter/subtypes":401,"./buttons":108,"./modebar":111}],111:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axis_ids":216,"../../registry":258,"../../traces/scatter/subtypes":402,"./buttons":108,"./modebar":111}],111:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28336,7 +28635,7 @@ module.exports = createModeBar;
},{"../../fonts/ploticon":153,"../../lib":169,"d3":16,"fast-isnumeric":18}],112:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28472,7 +28771,7 @@ module.exports = {
},{"../../plot_api/plot_template":203,"../../plots/font_attributes":239,"../color/attributes":50}],113:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28501,7 +28800,7 @@ module.exports = {
},{}],114:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28593,7 +28892,7 @@ function getPosDflt(containerOut, layout, counterAxes) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/array_container_defaults":209,"../color":51,"./attributes":112,"./constants":113}],115:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28850,7 +29149,7 @@ function reposition(gd, buttons, opts, axName, selector) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258,"../color":51,"../drawing":72,"./constants":113,"./get_update_object":116,"d3":16}],116:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28904,7 +29203,7 @@ function getXRange(axisLayout, buttonLayout) {
},{"d3":16}],117:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -28931,7 +29230,7 @@ module.exports = {
},{"./attributes":112,"./defaults":114,"./draw":115}],118:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29005,7 +29304,7 @@ module.exports = {
},{"../color/attributes":50}],119:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29039,7 +29338,7 @@ module.exports = function calcAutorange(gd) {
},{"../../plots/cartesian/autorange":212,"../../plots/cartesian/axis_ids":216,"./constants":120}],120:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29095,7 +29394,7 @@ module.exports = {
},{}],121:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29181,7 +29480,7 @@ module.exports = function handleDefaults(layoutIn, layoutOut, axName) {
},{"../../lib":169,"../../plot_api/plot_template":203,"../../plots/cartesian/axis_ids":216,"./attributes":118,"./oppaxis_attributes":125}],122:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29757,7 +30056,7 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) {
},{"../../lib":169,"../../lib/setcursor":188,"../../plots/cartesian":224,"../../plots/cartesian/axis_ids":216,"../../plots/plots":245,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"../titles":138,"./constants":120,"d3":16}],123:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29832,7 +30131,7 @@ exports.autoMarginOpts = function(gd, ax) {
},{"../../constants/alignment":145,"../../lib/svg_text_utils":190,"../../plots/cartesian/axis_ids":216,"./constants":120}],124:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29871,7 +30170,7 @@ module.exports = {
},{"../../lib":169,"./attributes":118,"./calc_autorange":119,"./defaults":121,"./draw":122,"./helpers":123,"./oppaxis_attributes":125}],125:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -29909,7 +30208,7 @@ module.exports = {
},{}],126:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30043,9 +30342,9 @@ module.exports = templatedArray('shape', {
editType: 'arraydraw'
});
-},{"../../lib/extend":164,"../../plot_api/plot_template":203,"../../traces/scatter/attributes":377,"../annotations/attributes":36,"../drawing/attributes":71}],127:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plot_api/plot_template":203,"../../traces/scatter/attributes":378,"../annotations/attributes":36,"../drawing/attributes":71}],127:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30162,7 +30461,7 @@ function shapeBounds(ax, v0, v1, path, paramsToUse) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":128,"./helpers":131}],128:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30226,7 +30525,7 @@ module.exports = {
},{}],129:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30349,7 +30648,7 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"../../plots/cartesian/axes":213,"./attributes":126,"./helpers":131}],130:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -30966,7 +31265,7 @@ function movePath(pathIn, moveX, moveY) {
},{"../../lib":169,"../../lib/setcursor":188,"../../plot_api/plot_template":203,"../../plots/cartesian/axes":213,"../../registry":258,"../color":51,"../dragelement":69,"../drawing":72,"./constants":128,"./helpers":131}],131:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31087,7 +31386,7 @@ exports.roundPositionForSharpStrokeRendering = function(pos, strokeWidth) {
},{"../../lib":169,"./constants":128}],132:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31114,7 +31413,7 @@ module.exports = {
},{"../../plots/cartesian/include_components":223,"./attributes":126,"./calc_autorange":127,"./defaults":129,"./draw":130}],133:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31357,7 +31656,7 @@ module.exports = overrideAll(templatedArray('slider', {
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../../plots/animation_attributes":208,"../../plots/font_attributes":239,"../../plots/pad_attributes":244,"./constants":134}],134:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31451,7 +31750,7 @@ module.exports = {
},{}],135:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -31566,7 +31865,7 @@ function stepDefaults(valueIn, valueOut) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"./attributes":133,"./constants":134}],136:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32198,7 +32497,7 @@ function drawRail(sliderGroup, sliderOpts) {
},{"../../constants/alignment":145,"../../lib":169,"../../lib/svg_text_utils":190,"../../plot_api/plot_template":203,"../../plots/plots":245,"../color":51,"../drawing":72,"./constants":134,"d3":16}],137:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32221,7 +32520,7 @@ module.exports = {
},{"./attributes":133,"./constants":134,"./defaults":135,"./draw":136}],138:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32488,7 +32787,7 @@ module.exports = {
},{"../../constants/alignment":145,"../../constants/interactions":148,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"../color":51,"../drawing":72,"d3":16,"fast-isnumeric":18}],139:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32657,7 +32956,7 @@ module.exports = overrideAll(templatedArray('updatemenu', {
},{"../../lib/extend":164,"../../plot_api/edit_types":196,"../../plot_api/plot_template":203,"../../plots/font_attributes":239,"../../plots/pad_attributes":244,"../color/attributes":50}],140:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32738,7 +33037,7 @@ module.exports = {
},{}],141:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -32821,7 +33120,7 @@ function buttonDefaults(buttonIn, buttonOut) {
},{"../../lib":169,"../../plots/array_container_defaults":209,"./attributes":139,"./constants":140}],142:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -33476,7 +33775,7 @@ function removeAllButtons(gButton, newMenuIndexAttr) {
arguments[4][137][0].apply(exports,arguments)
},{"./attributes":139,"./constants":140,"./defaults":141,"./draw":142,"dup":137}],144:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -33941,7 +34240,7 @@ ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY)
},{"../../lib":169,"../color":51,"../drawing":72,"d3":16}],145:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34006,7 +34305,7 @@ module.exports = {
},{}],146:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34022,7 +34321,7 @@ module.exports = {
},{}],147:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34060,7 +34359,7 @@ module.exports = {
},{}],148:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34083,7 +34382,7 @@ module.exports = {
},{}],149:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34148,7 +34447,7 @@ module.exports = {
},{}],150:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34172,7 +34471,7 @@ exports.svgAttrs = {
},{}],151:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34182,7 +34481,7 @@ exports.svgAttrs = {
'use strict';
// package version injected by `npm run preprocess`
-exports.version = '1.51.3';
+exports.version = '1.52.1';
// inject promise polyfill
_dereq_('es6-promise').polyfill();
@@ -34238,6 +34537,12 @@ register([
_dereq_('./locale-en-us')
]);
+// locales that are present in the window should be loaded
+if(window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) {
+ register(window.PlotlyLocales);
+ delete window.PlotlyLocales;
+}
+
// plot icons
exports.Icons = _dereq_('./fonts/ploticon');
@@ -34251,9 +34556,9 @@ exports.Queue = _dereq_('./lib/queue');
// export d3 used in the bundle
exports.d3 = _dereq_('d3');
-},{"../build/plotcss":1,"./components/annotations":44,"./components/annotations3d":49,"./components/colorbar":57,"./components/colorscale":63,"./components/errorbars":78,"./components/fx":89,"./components/grid":93,"./components/images":98,"./components/legend":106,"./components/rangeselector":117,"./components/rangeslider":124,"./components/shapes":132,"./components/sliders":137,"./components/updatemenus":143,"./fonts/mathjax_config":152,"./fonts/ploticon":153,"./lib/queue":183,"./locale-en":194,"./locale-en-us":193,"./plot_api":198,"./plot_api/plot_schema":202,"./plots/plots":245,"./registry":258,"./snapshot":263,"./traces/scatter":389,"d3":16,"es6-promise":17}],152:[function(_dereq_,module,exports){
+},{"../build/plotcss":1,"./components/annotations":44,"./components/annotations3d":49,"./components/colorbar":57,"./components/colorscale":63,"./components/errorbars":78,"./components/fx":89,"./components/grid":93,"./components/images":98,"./components/legend":106,"./components/rangeselector":117,"./components/rangeslider":124,"./components/shapes":132,"./components/sliders":137,"./components/updatemenus":143,"./fonts/mathjax_config":152,"./fonts/ploticon":153,"./lib/queue":183,"./locale-en":194,"./locale-en-us":193,"./plot_api":198,"./plot_api/plot_schema":202,"./plots/plots":245,"./registry":258,"./snapshot":263,"./traces/scatter":390,"d3":16,"es6-promise":17}],152:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34284,7 +34589,7 @@ module.exports = function() {
},{}],153:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34428,7 +34733,7 @@ module.exports = {
},{}],154:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34492,7 +34797,7 @@ exports.isBottomAnchor = function isBottomAnchor(opts) {
},{}],155:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34733,7 +35038,7 @@ module.exports = {
},{"./mod":176}],156:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34890,7 +35195,7 @@ function _rowLength(z, fn, len0) {
},{}],157:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34923,7 +35228,7 @@ module.exports = function cleanNumber(v) {
},{"../constants/numerical":149,"fast-isnumeric":18}],158:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34951,7 +35256,7 @@ module.exports = function clearGlCanvases(gd) {
},{}],159:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -34974,7 +35279,7 @@ module.exports = function clearResponsive(gd) {
},{}],160:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -35438,7 +35743,7 @@ exports.validate = validate;
},{"../components/colorscale/scales":66,"../constants/interactions":148,"../plots/attributes":210,"./array":156,"./mod":176,"./nested_property":177,"./regex":184,"fast-isnumeric":18,"tinycolor2":34}],161:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36024,7 +36329,7 @@ exports.findExactDates = function(data, calendar) {
},{"../constants/numerical":149,"../registry":258,"./loggers":173,"./mod":176,"d3":16,"fast-isnumeric":18}],162:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36127,7 +36432,7 @@ module.exports = {
},{"./loggers":173,"d3":16}],163:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36300,7 +36605,7 @@ module.exports = Events;
},{"events":15}],164:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36414,7 +36719,7 @@ function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) {
},{"./is_plain_object.js":170}],165:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36465,7 +36770,7 @@ module.exports = function filterUnique(array) {
},{}],166:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36513,7 +36818,7 @@ function isCalcData(cont) {
},{}],167:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36757,7 +37062,7 @@ exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {
},{"./mod":176}],168:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -36773,7 +37078,7 @@ module.exports = function identity(d) { return d; };
},{}],169:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -37358,7 +37663,9 @@ lib.tagSelected = function(calcTrace, trace, ptNumber2cdIndex) {
for(var i = 0; i < selectedpoints.length; i++) {
var ptIndex = selectedpoints[i];
- if(lib.isIndex(ptIndex)) {
+ if(lib.isIndex(ptIndex) ||
+ (lib.isArrayOrTypedArray(ptIndex) && lib.isIndex(ptIndex[0]) && lib.isIndex(ptIndex[1]))
+ ) {
var ptNumber = ptIndex2ptNumber ? ptIndex2ptNumber[ptIndex] : ptIndex;
var cdIndex = ptNumber2cdIndex ? ptNumber2cdIndex[ptNumber] : ptNumber;
@@ -37956,38 +38263,59 @@ lib.isHidden = function(gd) {
return !display || display === 'none';
};
-lib.getTextTransform = function(opts) {
- var textX = opts.textX;
- var textY = opts.textY;
- var targetX = opts.targetX;
- var targetY = opts.targetY;
- var scale = opts.scale;
- var rotate = opts.rotate;
+/** Return transform text for bar bar-like rectangles and pie-like slices
+ * @param {object} transform
+ * - targetX: desired position on the x-axis
+ * - targetY: desired position on the y-axis
+ * - textX: text middle position on the x-axis
+ * - textY: text middle position on the y-axis
+ * - anchorX: (optional) text anchor position on the x-axis (computed from textX), zero for middle anchor
+ * - anchorY: (optional) text anchor position on the y-axis (computed from textY), zero for middle anchor
+ * - scale: (optional) scale applied after translate
+ * - rotate: (optional) rotation applied after scale
+ * - noCenter: when defined no extra arguments needed in rotation
+ */
+lib.getTextTransform = function(transform) {
+ var noCenter = transform.noCenter;
+ var textX = transform.textX;
+ var textY = transform.textY;
+ var targetX = transform.targetX;
+ var targetY = transform.targetY;
+ var anchorX = transform.anchorX || 0;
+ var anchorY = transform.anchorY || 0;
+ var rotate = transform.rotate;
+ var scale = transform.scale;
+ if(!scale) scale = 0;
+ else if(scale > 1) scale = 1;
- var transformScale;
- var transformRotate;
- var transformTranslate;
+ return (
+ 'translate(' +
+ (targetX - scale * (textX + anchorX)) + ',' +
+ (targetY - scale * (textY + anchorY)) +
+ ')' +
+ (scale < 1 ?
+ 'scale(' + scale + ')' : ''
+ ) +
+ (rotate ?
+ 'rotate(' + rotate +
+ (noCenter ? '' : ' ' + textX + ' ' + textY) +
+ ')' : ''
+ )
+ );
+};
- if(scale < 1) transformScale = 'scale(' + scale + ') ';
- else {
- scale = 1;
- transformScale = '';
- }
-
- transformRotate = (rotate) ?
- 'rotate(' + rotate + ' ' + textX + ' ' + textY + ') ' : '';
-
- // Note that scaling also affects the center of the text box
- var translateX = (targetX - scale * textX);
- var translateY = (targetY - scale * textY);
- transformTranslate = 'translate(' + translateX + ' ' + translateY + ')';
-
- return transformTranslate + transformScale + transformRotate;
+lib.ensureUniformFontSize = function(gd, baseFont) {
+ var out = lib.extendFlat({}, baseFont);
+ out.size = Math.max(
+ baseFont.size,
+ gd._fullLayout.uniformtext.minsize || 0
+ );
+ return out;
};
},{"../constants/numerical":149,"./anchor_utils":154,"./angles":155,"./array":156,"./clean_number":157,"./clear_responsive":159,"./coerce":160,"./dates":161,"./dom":162,"./extend":164,"./filter_unique":165,"./filter_visible":166,"./geometry2d":167,"./identity":168,"./is_plain_object":170,"./keyed_container":171,"./localize":172,"./loggers":173,"./make_trace_groups":174,"./matrix":175,"./mod":176,"./nested_property":177,"./noop":178,"./notifier":179,"./push_unique":182,"./regex":184,"./relative_attr":185,"./relink_private":186,"./search":187,"./stats":189,"./throttle":191,"./to_log_range":192,"d3":16,"fast-isnumeric":18}],170:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38015,7 +38343,7 @@ module.exports = function isPlainObject(obj) {
},{}],171:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38208,7 +38536,7 @@ module.exports = function keyedContainer(baseObj, path, keyName, valueName) {
},{"./nested_property":177}],172:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38264,7 +38592,7 @@ module.exports = function localize(gd, s) {
},{"../registry":258}],173:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38277,6 +38605,8 @@ module.exports = function localize(gd, s) {
var dfltConfig = _dereq_('../plot_api/plot_config').dfltConfig;
+var notifier = _dereq_('./notifier');
+
var loggers = module.exports = {};
/**
@@ -38286,39 +38616,63 @@ var loggers = module.exports = {};
*/
loggers.log = function() {
+ var i;
+
if(dfltConfig.logging > 1) {
var messages = ['LOG:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.trace || console.log, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 1) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'long');
+ }
};
loggers.warn = function() {
+ var i;
+
if(dfltConfig.logging > 0) {
var messages = ['WARN:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.trace || console.log, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 0) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'stick');
+ }
};
loggers.error = function() {
+ var i;
+
if(dfltConfig.logging > 0) {
var messages = ['ERROR:'];
-
- for(var i = 0; i < arguments.length; i++) {
+ for(i = 0; i < arguments.length; i++) {
messages.push(arguments[i]);
}
-
apply(console.error, messages);
}
+
+ if(dfltConfig.notifyOnLogging > 0) {
+ var lines = [];
+ for(i = 0; i < arguments.length; i++) {
+ lines.push(arguments[i]);
+ }
+ notifier(lines.join('
'), 'stick');
+ }
};
/*
@@ -38346,9 +38700,9 @@ function apply(f, args) {
}
}
-},{"../plot_api/plot_config":201}],174:[function(_dereq_,module,exports){
+},{"../plot_api/plot_config":201,"./notifier":179}],174:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38391,7 +38745,7 @@ module.exports = function makeTraceGroups(traceLayer, cdModule, cls) {
},{"d3":16}],175:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38498,7 +38852,7 @@ exports.apply2DTransform2 = function(transform) {
},{}],176:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38533,7 +38887,7 @@ module.exports = {
},{}],177:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38779,7 +39133,7 @@ function badContainer(container, propStr, propParts) {
},{"./array":156,"fast-isnumeric":18}],178:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38795,7 +39149,7 @@ module.exports = function noop() {};
},{}],179:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38866,18 +39220,24 @@ module.exports = function(text, displayLength) {
p.append('span').text(lines[i]);
}
- note.transition()
- .duration(700)
- .style('opacity', 1)
- .transition()
- .delay(ts)
- .call(killNote);
+ if(displayLength === 'stick') {
+ note.transition()
+ .duration(350)
+ .style('opacity', 1);
+ } else {
+ note.transition()
+ .duration(700)
+ .style('opacity', 1)
+ .transition()
+ .delay(ts)
+ .call(killNote);
+ }
});
};
},{"d3":16,"fast-isnumeric":18}],180:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -38925,7 +39285,7 @@ module.exports = function overrideCursor(el3, csr) {
},{"./setcursor":188}],181:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39177,7 +39537,7 @@ polygon.filter = function filter(pts, tolerance) {
},{"../constants/numerical":149,"./matrix":175}],182:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39215,7 +39575,7 @@ module.exports = function pushUnique(array, item) {
},{}],183:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39423,7 +39783,7 @@ module.exports = queue;
},{"../lib":169,"../plot_api/plot_config":201}],184:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39453,7 +39813,7 @@ exports.counter = function(head, tail, openEnded, matchBeginning) {
},{}],185:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39506,7 +39866,7 @@ module.exports = function(baseAttr, relativeAttr) {
},{}],186:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39564,7 +39924,7 @@ module.exports = function relinkPrivateKeys(toContainer, fromContainer) {
},{"./array":156,"./is_plain_object":170}],187:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39751,7 +40111,7 @@ exports.findIndexOfMin = function(arr, fn) {
},{"./identity":168,"./loggers":173,"fast-isnumeric":18}],188:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39774,7 +40134,7 @@ module.exports = function setCursor(el3, csr) {
},{}],189:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -39884,7 +40244,7 @@ exports.interp = function(arr, n) {
},{"./array":156,"fast-isnumeric":18}],190:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40700,7 +41060,7 @@ exports.makeEditable = function(context, options) {
},{"../constants/alignment":145,"../constants/xmlns_namespaces":150,"../lib":169,"d3":16}],191:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40803,7 +41163,7 @@ function _clearTimeout(cache) {
},{}],192:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40831,7 +41191,7 @@ module.exports = function toLogRange(val, range) {
},{"fast-isnumeric":18}],193:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40853,7 +41213,7 @@ module.exports = {
},{}],194:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40896,7 +41256,7 @@ module.exports = {
},{}],195:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -40954,7 +41314,7 @@ module.exports = function containerArrayMatch(astr) {
},{"../registry":258}],196:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41079,7 +41439,7 @@ function overrideOne(attr, editTypeOverride, overrideContainers, key) {
},{"../lib":169}],197:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41771,7 +42131,7 @@ exports.clearAxisTypes = function(gd, traces, layoutUpdate) {
},{"../components/color":51,"../lib":169,"../plots/cartesian/axis_ids":216,"../plots/plots":245,"../registry":258,"fast-isnumeric":18,"gl-mat4/fromQuat":19}],198:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -41814,7 +42174,7 @@ exports.validateTemplate = templateApi.validateTemplate;
},{"../snapshot/download":260,"./plot_api":200,"./template_api":205,"./to_image":206,"./validate":207}],199:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -42027,7 +42387,7 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np,
},{"../lib/is_plain_object":170,"../lib/loggers":173,"../lib/noop":178,"../lib/search":187,"../registry":258,"./container_array_match":195}],200:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -44470,7 +44830,7 @@ var layoutUIControlPatterns = [
{pattern: /(hover|drag)mode$/, attr: 'modebar.uirevision'},
{pattern: /^(scene\d*)\.camera/},
- {pattern: /^(geo\d*)\.(projection|center)/},
+ {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/},
@@ -45889,7 +46249,7 @@ exports._storeDirectGUIEdit = _storeDirectGUIEdit;
},{"../components/color":51,"../components/drawing":72,"../constants/xmlns_namespaces":150,"../lib":169,"../lib/events":163,"../lib/queue":183,"../lib/svg_text_utils":190,"../plots/cartesian/axes":213,"../plots/cartesian/constants":219,"../plots/cartesian/graph_interact":222,"../plots/cartesian/select":230,"../plots/plots":245,"../plots/polar/legacy":248,"../registry":258,"./edit_types":196,"./helpers":197,"./manage_arrays":199,"./plot_config":201,"./plot_schema":202,"./subroutines":204,"d3":16,"fast-isnumeric":18,"has-hover":20}],201:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -46138,11 +46498,21 @@ var configAttributes = {
},
logging: {
- valType: 'boolean',
+ valType: 'integer',
+ min: 0,
+ max: 2,
dflt: 1,
},
+ notifyOnLogging: {
+ valType: 'integer',
+ min: 0,
+ max: 2,
+ dflt: 0,
+
+ },
+
queueLength: {
valType: 'integer',
min: 0,
@@ -46194,7 +46564,7 @@ module.exports = {
},{}],202:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -46905,7 +47275,7 @@ function insertAttrs(baseAttrs, newAttrs, astr) {
},{"../lib":169,"../plots/animation_attributes":208,"../plots/attributes":210,"../plots/frame_attributes":240,"../plots/layout_attributes":243,"../plots/polar/legacy/area_attributes":246,"../plots/polar/legacy/axis_attributes":247,"../registry":258,"./edit_types":196,"./plot_config":201}],203:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -47217,7 +47587,7 @@ exports.arrayEditor = function(parentIn, containerStr, itemOut) {
},{"../lib":169,"../plots/attributes":210}],204:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -47957,7 +48327,7 @@ exports.drawMarginPushers = function(gd) {
},{"../components/color":51,"../components/drawing":72,"../components/modebar":109,"../components/titles":138,"../constants/alignment":145,"../lib":169,"../lib/clear_gl_canvases":158,"../plots/cartesian/autorange":212,"../plots/cartesian/axes":213,"../plots/cartesian/constraints":220,"../plots/plots":245,"../registry":258,"d3":16}],205:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -48419,7 +48789,7 @@ function format(opts) {
},{"../lib":169,"../plots/attributes":210,"../plots/plots":245,"./plot_config":201,"./plot_schema":202,"./plot_template":203}],206:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -48622,7 +48992,7 @@ module.exports = toImage;
},{"../lib":169,"../snapshot/helpers":262,"../snapshot/svgtoimg":264,"../snapshot/tosvg":266,"./plot_api":200,"fast-isnumeric":18}],207:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49049,7 +49419,7 @@ function convertPathToAttributeString(path) {
},{"../lib":169,"../plots/plots":245,"./plot_config":201,"./plot_schema":202}],208:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49161,7 +49531,7 @@ module.exports = {
},{}],209:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49256,7 +49626,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
},{"../lib":169,"../plot_api/plot_template":203}],210:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49397,7 +49767,7 @@ module.exports = {
},{"../components/fx/attributes":81}],211:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49426,7 +49796,7 @@ module.exports = {
},{}],212:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -49925,7 +50295,7 @@ function greaterOrEqual(v0, v1) { return v0 >= v1; }
},{"../../constants/numerical":149,"../../lib":169,"../../registry":258,"fast-isnumeric":18}],213:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53022,7 +53392,7 @@ function isAngular(ax) {
},{"../../components/color":51,"../../components/drawing":72,"../../components/titles":138,"../../constants/alignment":145,"../../constants/numerical":149,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../../registry":258,"./autorange":212,"./axis_autotype":214,"./axis_ids":216,"./clean_ticks":218,"./layout_attributes":225,"./set_convert":231,"d3":16,"fast-isnumeric":18}],214:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53117,7 +53487,7 @@ function multiCategory(a) {
},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],215:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53240,7 +53610,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
},{"../../lib":169,"../../registry":258,"./category_order_defaults":217,"./layout_attributes":225,"./line_grid_defaults":227,"./set_convert":231,"./tick_label_defaults":232,"./tick_mark_defaults":233,"./tick_value_defaults":234}],216:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53367,7 +53737,7 @@ exports.getAxisGroup = function getAxisGroup(fullLayout, axId) {
},{"../../registry":258,"./constants":219}],217:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53461,7 +53831,7 @@ module.exports = function handleCategoryOrderDefaults(containerIn, containerOut,
},{}],218:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53549,7 +53919,7 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],219:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -53639,7 +54009,7 @@ module.exports = {
},{"../../lib/regex":184}],220:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -54025,7 +54395,7 @@ function updateDomain(ax, factor) {
},{"../../constants/alignment":145,"../../constants/numerical":149,"../../lib":169,"./autorange":212,"./axis_ids":216,"./scale_zoom":229}],221:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55265,7 +55635,7 @@ module.exports = {
},{"../../components/color":51,"../../components/dragelement":69,"../../components/drawing":72,"../../components/fx":89,"../../constants/alignment":145,"../../lib":169,"../../lib/clear_gl_canvases":158,"../../lib/setcursor":188,"../../lib/svg_text_utils":190,"../../plot_api/subroutines":204,"../../registry":258,"../plots":245,"./axes":213,"./axis_ids":216,"./constants":219,"./scale_zoom":229,"./select":230,"d3":16,"has-passive-events":21,"tinycolor2":34}],222:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55433,7 +55803,7 @@ exports.updateFx = function(gd) {
},{"../../components/dragelement":69,"../../components/fx":89,"../../lib/setcursor":188,"./constants":219,"./dragbox":221,"d3":16}],223:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -55508,7 +55878,7 @@ module.exports = function makeIncludeComponents(containerArrayName) {
},{"../../lib":169,"../../registry":258}],224:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -56125,7 +56495,7 @@ exports.updateFx = _dereq_('./graph_interact').updateFx;
},{"../../components/drawing":72,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"../get_data":241,"../plots":245,"./attributes":211,"./axis_ids":216,"./constants":219,"./graph_interact":222,"./layout_attributes":225,"./layout_defaults":226,"./transition_axes":235,"d3":16}],225:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -56726,7 +57096,7 @@ module.exports = {
},{"../../components/color/attributes":50,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../lib/extend":164,"../../plot_api/plot_template":203,"../font_attributes":239,"./constants":219}],226:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57106,7 +57476,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
},{"../../components/color":51,"../../lib":169,"../../plot_api/plot_template":203,"../../registry":258,"../layout_attributes":243,"./axis_defaults":215,"./axis_ids":216,"./constraints":220,"./layout_attributes":225,"./position_defaults":228,"./type_defaults":236}],227:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57171,7 +57541,7 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer
},{"../../components/color/attributes":50,"../../lib":169,"tinycolor2":34}],228:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57259,7 +57629,7 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer
},{"../../lib":169,"fast-isnumeric":18}],229:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -57287,7 +57657,7 @@ module.exports = function scaleZoom(ax, factor, centerFraction) {
},{"../../constants/alignment":145}],230:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58092,7 +58462,7 @@ module.exports = {
},{"../../components/color":51,"../../components/fx":89,"../../components/fx/helpers":86,"../../lib":169,"../../lib/clear_gl_canvases":158,"../../lib/polygon":181,"../../lib/throttle":191,"../../plot_api/subroutines":204,"../../registry":258,"./axis_ids":216,"./constants":219,"polybooljs":25}],231:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58762,7 +59132,7 @@ module.exports = function setConvert(ax, fullLayout) {
},{"../../constants/numerical":149,"../../lib":169,"./axis_ids":216,"./constants":219,"d3":16,"fast-isnumeric":18}],232:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58881,7 +59251,7 @@ function tickformatstopDefaults(valueIn, valueOut) {
},{"../../lib":169,"../array_container_defaults":209,"./layout_attributes":225}],233:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58914,7 +59284,7 @@ module.exports = function handleTickDefaults(containerIn, containerOut, coerce,
},{"../../lib":169,"./layout_attributes":225}],234:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -58956,7 +59326,7 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe
},{"./clean_ticks":218}],235:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59169,7 +59539,7 @@ module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnComple
},{"../../components/drawing":72,"../../lib":169,"../../registry":258,"./axes":213,"d3":16}],236:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59210,6 +59580,7 @@ function setAutoType(ax, data) {
var id = ax._id;
var axLetter = id.charAt(0);
+ var i;
// support 3d
if(id.indexOf('scene') !== -1) id = axLetter;
@@ -59220,7 +59591,8 @@ function setAutoType(ax, data) {
// first check for histograms, as the count direction
// should always default to a linear axis
if(d0.type === 'histogram' &&
- axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']) {
+ axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']
+ ) {
ax.type = 'linear';
return;
}
@@ -59228,7 +59600,13 @@ function setAutoType(ax, data) {
var calAttr = axLetter + 'calendar';
var calendar = d0[calAttr];
var opts = {noMultiCategory: !traceIs(d0, 'cartesian') || traceIs(d0, 'noMultiCategory')};
- var i;
+
+ // To not confuse 2D x/y used for per-box sample points for multicategory coordinates
+ if(d0.type === 'box' && d0._hasPreCompStats &&
+ axLetter === {h: 'x', v: 'y'}[d0.orientation || 'v']
+ ) {
+ opts.noMultiCategory = true;
+ }
// check all boxes on this x axis to see
// if they're dates, numbers, or categories
@@ -59298,7 +59676,7 @@ function isBoxWithoutPositionCoords(trace, axLetter) {
},{"../../registry":258,"./axis_autotype":214}],237:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59725,7 +60103,7 @@ function crawl(attrs, callback, path, depth) {
},{"../lib":169,"../registry":258}],238:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59837,7 +60215,7 @@ exports.defaults = function(containerOut, layout, coerce, dfltDomains) {
},{"../lib/extend":164}],239:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59902,7 +60280,7 @@ module.exports = function(opts) {
},{}],240:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -59948,7 +60326,7 @@ module.exports = {
},{}],241:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60077,7 +60455,7 @@ exports.getSubplotData = function getSubplotData(data, type, subplotId) {
},{"../registry":258,"./cartesian/constants":219}],242:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60111,7 +60489,7 @@ module.exports = project;
},{}],243:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60202,6 +60580,25 @@ module.exports = {
}),
editType: 'layoutstyle'
},
+ uniformtext: {
+ mode: {
+ valType: 'enumerated',
+ values: [false, 'hide', 'show'],
+ dflt: false,
+
+ editType: 'plot',
+
+ },
+ minsize: {
+ valType: 'number',
+ min: 0,
+ dflt: 0,
+
+ editType: 'plot',
+
+ },
+ editType: 'plot'
+ },
autosize: {
valType: 'boolean',
@@ -60415,7 +60812,7 @@ module.exports = {
},{"../components/color/attributes":50,"../lib/extend":164,"./animation_attributes":208,"./font_attributes":239,"./pad_attributes":244}],244:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -60470,7 +60867,7 @@ module.exports = function(opts) {
},{}],245:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -61772,9 +62169,14 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
coerce('meta');
if(Registry.traceIs(traceOut, 'showLegend')) {
- traceOut._dfltShowLegend = true;
- coerce('showlegend');
+ Lib.coerce(traceIn, traceOut,
+ _module.attributes.showlegend ? _module.attributes : plots.attributes,
+ 'showlegend'
+ );
+
coerce('legendgroup');
+
+ traceOut._dfltShowLegend = true;
} else {
traceOut._dfltShowLegend = false;
}
@@ -61938,6 +62340,11 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
coerce('title.pad.b');
coerce('title.pad.l');
+ var uniformtextMode = coerce('uniformtext.mode');
+ if(uniformtextMode) {
+ coerce('uniformtext.minsize');
+ }
+
// Make sure that autosize is defaulted to *true*
// on layouts with no set width and height for backward compatibly,
// in particular https://plot.ly/javascript/responsive-fluid-layout/
@@ -63736,7 +64143,7 @@ plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullD
},{"../components/color":51,"../constants/numerical":149,"../lib":169,"../plot_api/plot_schema":202,"../plot_api/plot_template":203,"../plots/get_data":241,"../registry":258,"./animation_attributes":208,"./attributes":210,"./cartesian/axis_ids":216,"./command":237,"./font_attributes":239,"./frame_attributes":240,"./layout_attributes":243,"d3":16,"fast-isnumeric":18}],246:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63778,9 +64185,9 @@ module.exports = {
}
};
-},{"../../../lib/extend":164,"../../../traces/scatter/attributes":377}],247:[function(_dereq_,module,exports){
+},{"../../../lib/extend":164,"../../../traces/scatter/attributes":378}],247:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63902,7 +64309,7 @@ module.exports = overrideAll({
},{"../../../lib/extend":164,"../../../plot_api/edit_types":196,"../../cartesian/layout_attributes":225}],248:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -63917,7 +64324,7 @@ Polar.manager = _dereq_('./micropolar_manager');
},{"./micropolar":249,"./micropolar_manager":250}],249:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65337,7 +65744,7 @@ var µ = module.exports = { version: '0.2.2' };
},{"../../../constants/alignment":145,"../../../lib":169,"d3":16}],250:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65423,7 +65830,7 @@ manager.fillLayout = function(_gd) {
},{"../../../components/color":51,"../../../lib":169,"./micropolar":249,"./undo_manager":251,"d3":16}],251:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65489,7 +65896,7 @@ module.exports = function UndoManager() {
},{}],252:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65574,7 +65981,7 @@ module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, o
},{"../lib":169,"../plot_api/plot_template":203,"./domain":238}],253:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65657,7 +66064,7 @@ exports.texttemplateAttrs = function(opts, extra) {
},{"../constants/docs":146}],254:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65741,7 +66148,7 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
},{"../../lib":169,"../../plots/get_data":241,"./layout_attributes":255,"./layout_defaults":256,"./ternary":257}],255:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65848,7 +66255,7 @@ attrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {
},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plot_api/edit_types":196,"../cartesian/layout_attributes":225,"../domain":238}],256:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -65980,7 +66387,7 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut
},{"../../components/color":51,"../../lib":169,"../../plot_api/plot_template":203,"../cartesian/line_grid_defaults":227,"../cartesian/tick_label_defaults":232,"../cartesian/tick_mark_defaults":233,"../cartesian/tick_value_defaults":234,"../subplot_defaults":252,"./layout_attributes":255}],257:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -66737,7 +67144,7 @@ function removeZoombox(gd) {
},{"../../components/color":51,"../../components/dragelement":69,"../../components/drawing":72,"../../components/fx":89,"../../components/titles":138,"../../lib":169,"../../lib/extend":164,"../../registry":258,"../cartesian/axes":213,"../cartesian/constants":219,"../cartesian/select":230,"../cartesian/set_convert":231,"../plots":245,"d3":16,"tinycolor2":34}],258:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67203,7 +67610,7 @@ function getTraceType(traceType) {
},{"./lib/dom":162,"./lib/extend":164,"./lib/is_plain_object":170,"./lib/loggers":173,"./lib/noop":178,"./lib/push_unique":182,"./plots/attributes":210,"./plots/layout_attributes":243}],259:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67376,7 +67783,7 @@ module.exports = function clonePlot(graphObj, options) {
},{"../lib":169,"../registry":258}],260:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67446,7 +67853,7 @@ module.exports = downloadImage;
},{"../lib":169,"../plot_api/to_image":206,"./filesaver":261,"./helpers":262}],261:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67526,7 +67933,7 @@ module.exports = fileSaver;
},{"../lib":169,"./helpers":262}],262:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67603,7 +68010,7 @@ exports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas.
},{"../registry":258}],263:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67629,7 +68036,7 @@ module.exports = Snapshot;
},{"./cloneplot":259,"./download":260,"./helpers":262,"./svgtoimg":264,"./toimage":265,"./tosvg":266}],264:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67756,7 +68163,7 @@ module.exports = svgToImg;
},{"../lib":169,"./helpers":262,"events":15}],265:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67833,7 +68240,7 @@ module.exports = toImage;
},{"../lib":169,"../registry":258,"./cloneplot":259,"./helpers":262,"./svgtoimg":264,"./tosvg":266,"events":15}],266:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -67949,21 +68356,29 @@ module.exports = function toSVG(gd, format, scale) {
}
});
- svg.selectAll('.point, .scatterpts, .legendfill>path, .legendlines>path, .cbfill').each(function() {
- var pt = d3.select(this);
- // similar to font family styles above,
- // we must remove " after the SVG DOM has been serialized
- var fill = this.style.fill;
- if(fill && fill.indexOf('url(') !== -1) {
- pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
- }
+ if(fullLayout._gradientUrlQueryParts) {
+ var queryParts = [];
+ for(var k in fullLayout._gradientUrlQueryParts) queryParts.push(k);
- var stroke = this.style.stroke;
- if(stroke && stroke.indexOf('url(') !== -1) {
- pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ if(queryParts.length) {
+ svg.selectAll(queryParts.join(',')).each(function() {
+ var pt = d3.select(this);
+
+ // similar to font family styles above,
+ // we must remove " after the SVG DOM has been serialized
+ var fill = this.style.fill;
+ if(fill && fill.indexOf('url(') !== -1) {
+ pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ }
+
+ var stroke = this.style.stroke;
+ if(stroke && stroke.indexOf('url(') !== -1) {
+ pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
+ }
+ });
}
- });
+ }
if(format === 'pdf' || format === 'eps') {
// these formats make the extra line MathJax adds around symbols look super thick in some cases
@@ -68014,7 +68429,7 @@ module.exports = function toSVG(gd, format, scale) {
},{"../components/color":51,"../components/drawing":72,"../constants/xmlns_namespaces":150,"../lib":169,"d3":16}],267:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68047,7 +68462,7 @@ module.exports = function arraysToCalcdata(cd, trace) {
},{"../../lib":169}],268:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68254,9 +68669,9 @@ module.exports = {
}
};
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"../scatter/attributes":377,"./constants":270}],269:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"../scatter/attributes":378,"./constants":270}],269:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68319,9 +68734,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"../../plots/cartesian/axes":213,"../scatter/calc_selection":379,"./arrays_to_calcdata":267}],270:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"../../plots/cartesian/axes":213,"../scatter/calc_selection":380,"./arrays_to_calcdata":267}],270:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -68343,7 +68758,7 @@ module.exports = {
},{}],271:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69111,7 +69526,7 @@ module.exports = {
},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216,"../../registry":258,"./sieve.js":281,"fast-isnumeric":18}],272:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69239,6 +69654,7 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);
var moduleHasTextangle = !(opts.moduleHasTextangle === false);
var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);
+ var hasPathbar = !!opts.hasPathbar;
var hasBoth = Array.isArray(textposition) || textposition === 'auto';
var hasInside = hasBoth || textposition === 'inside';
@@ -69259,8 +69675,15 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
}
coerceFont(coerce, 'insidetextfont', insideTextFontDefault);
- if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);
+ if(hasPathbar) {
+ var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);
+ if(isColorInheritedFromLayoutFont) {
+ delete pathbarTextFontDefault.color;
+ }
+ coerceFont(coerce, 'pathbar.textfont', pathbarTextFontDefault);
+ }
+ if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);
if(moduleHasSelected) coerce('selected.textfont.color');
if(moduleHasUnselected) coerce('unselected.textfont.color');
@@ -69283,9 +69706,9 @@ module.exports = {
handleText: handleText
};
-},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../scatter/xy_defaults":403,"./attributes":268,"./style_defaults":283}],273:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../scatter/xy_defaults":404,"./attributes":268,"./style_defaults":283}],273:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69314,7 +69737,7 @@ module.exports = function eventData(out, pt, trace) {
},{}],274:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69392,7 +69815,7 @@ exports.getLineWidth = function(trace, di) {
},{"../../lib":169,"fast-isnumeric":18,"tinycolor2":34}],275:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69577,7 +70000,7 @@ module.exports = {
},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./helpers":274}],276:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69613,9 +70036,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../scatter/marker_colorbar":395,"./arrays_to_calcdata":267,"./attributes":268,"./calc":269,"./cross_trace_calc":271,"./defaults":272,"./event_data":273,"./hover":275,"./layout_attributes":277,"./layout_defaults":278,"./plot":279,"./select":280,"./style":282}],277:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../scatter/marker_colorbar":396,"./arrays_to_calcdata":267,"./attributes":268,"./calc":269,"./cross_trace_calc":271,"./defaults":272,"./event_data":273,"./hover":275,"./layout_attributes":277,"./layout_defaults":278,"./plot":279,"./select":280,"./style":282}],277:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69663,7 +70086,7 @@ module.exports = {
},{}],278:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69723,7 +70146,7 @@ module.exports = function(layoutIn, layoutOut, fullData) {
},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"./layout_attributes":277}],279:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -69743,6 +70166,10 @@ var Drawing = _dereq_('../../components/drawing');
var Registry = _dereq_('../../registry');
var tickText = _dereq_('../../plots/cartesian/axes').tickText;
+var uniformText = _dereq_('./uniform_text');
+var recordMinTextSize = uniformText.recordMinTextSize;
+var clearMinTextSize = uniformText.clearMinTextSize;
+
var style = _dereq_('./style');
var helpers = _dereq_('./helpers');
var constants = _dereq_('./constants');
@@ -69782,8 +70209,8 @@ function getXY(di, xa, ya, isHorizontal) {
return isHorizontal ? [s, p] : [p, s];
}
-function transition(selection, opts, makeOnCompleteCallback) {
- if(hasTransition(opts)) {
+function transition(selection, fullLayout, opts, makeOnCompleteCallback) {
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
var onComplete;
if(makeOnCompleteCallback) {
onComplete = makeOnCompleteCallback();
@@ -69815,6 +70242,9 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
gap: fullLayout.bargap,
groupgap: fullLayout.bargroupgap
};
+
+ // don't clear bar when this is called from waterfall or funnel
+ clearMinTextSize('bar', fullLayout);
}
var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {
@@ -69933,13 +70363,13 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
y1 = fixpx(y1, y0);
}
- var sel = transition(Lib.ensureSingle(bar, 'path'), opts, makeOnCompleteCallback);
+ var sel = transition(Lib.ensureSingle(bar, 'path'), fullLayout, opts, makeOnCompleteCallback);
sel
.style('vector-effect', 'non-scaling-stroke')
.attr('d', 'M' + x0 + ',' + y0 + 'V' + y1 + 'H' + x1 + 'V' + y0 + 'Z')
.call(Drawing.setClipUrl, plotinfo.layerClipId, gd);
- if(hasTransition(opts)) {
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
var styleFns = Drawing.makePointStyleFns(trace);
Drawing.singlePointStyle(di, sel, trace, styleFns, gd);
}
@@ -69961,14 +70391,14 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
Registry.getComponentMethod('errorbars', 'plot')(gd, bartraces, plotinfo, opts);
}
-function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
+function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
var xa = plotinfo.xaxis;
var ya = plotinfo.yaxis;
var fullLayout = gd._fullLayout;
var textPosition;
- function appendTextNode(bar, text, textFont) {
+ function appendTextNode(bar, text, font) {
var textSelection = Lib.ensureSingle(bar, 'text')
.text(text)
.attr({
@@ -69978,17 +70408,17 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
// tex and regular text together
'data-notex': 1
})
- .call(Drawing.font, textFont)
+ .call(Drawing.font, font)
.call(svgTextUtils.convertToTspans, gd);
return textSelection;
}
// get trace attributes
- var trace = calcTrace[0].trace;
+ var trace = cd[0].trace;
var isHorizontal = (trace.orientation === 'h');
- var text = getText(fullLayout, calcTrace, i, xa, ya);
+ var text = getText(fullLayout, cd, i, xa, ya);
textPosition = getTextPosition(trace, i);
// compute text position
@@ -69996,7 +70426,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
opts.mode === 'stack' ||
opts.mode === 'relative';
- var calcBar = calcTrace[i];
+ var calcBar = cd[i];
var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost;
if(!text ||
@@ -70009,7 +70439,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
var layoutFont = fullLayout.font;
- var barColor = style.getBarColor(calcTrace[i], trace);
+ var barColor = style.getBarColor(cd[i], trace);
var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor);
var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont);
@@ -70042,6 +70472,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
var textBB;
var textWidth;
var textHeight;
+ var font;
if(textPosition === 'outside') {
if(!isOutmostBar && !calcBar.hasB) textPosition = 'inside';
@@ -70051,7 +70482,10 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
if(isOutmostBar) {
// draw text using insideTextFont and check if it fits inside bar
textPosition = 'inside';
- textSelection = appendTextNode(bar, text, insideTextFont);
+
+ font = Lib.ensureUniformFontSize(gd, insideTextFont);
+
+ textSelection = appendTextNode(bar, text, font);
textBB = Drawing.bBox(textSelection.node()),
textWidth = textBB.width,
@@ -70081,9 +70515,9 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
if(!textSelection) {
- textSelection = appendTextNode(bar, text,
- (textPosition === 'outside') ?
- outsideTextFont : insideTextFont);
+ font = Lib.ensureUniformFontSize(gd, (textPosition === 'outside') ? outsideTextFont : insideTextFont);
+
+ textSelection = appendTextNode(bar, text, font);
var currentTransform = textSelection.attr('transform');
textSelection.attr('transform', '');
@@ -70098,6 +70532,8 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
}
}
+ var angle = trace.textangle;
+
// compute text transform
var transform, constrained;
if(textPosition === 'outside') {
@@ -70105,42 +70541,64 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
trace.constraintext === 'both' ||
trace.constraintext === 'outside';
- transform = Lib.getTextTransform(toMoveOutsideBar(x0, x1, y0, y1, textBB, {
+ transform = toMoveOutsideBar(x0, x1, y0, y1, textBB, {
isHorizontal: isHorizontal,
constrained: constrained,
- angle: trace.textangle
- }));
+ angle: angle
+ });
} else {
constrained =
trace.constraintext === 'both' ||
trace.constraintext === 'inside';
- transform = Lib.getTextTransform(toMoveInsideBar(x0, x1, y0, y1, textBB, {
+ transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {
isHorizontal: isHorizontal,
constrained: constrained,
- angle: trace.textangle,
+ angle: angle,
anchor: trace.insidetextanchor
- }));
+ });
}
- transition(textSelection, opts, makeOnCompleteCallback).attr('transform', transform);
+ transform.fontSize = font.size;
+ recordMinTextSize(trace.type, transform, fullLayout);
+ calcBar.transform = transform;
+
+ transition(textSelection, fullLayout, opts, makeOnCompleteCallback)
+ .attr('transform', Lib.getTextTransform(transform));
}
function getRotateFromAngle(angle) {
return (angle === 'auto') ? 0 : angle;
}
+function getRotatedTextSize(textBB, rotate) {
+ var a = Math.PI / 180 * rotate;
+ var absSin = Math.abs(Math.sin(a));
+ var absCos = Math.abs(Math.cos(a));
+
+ return {
+ x: textBB.width * absCos + textBB.height * absSin,
+ y: textBB.width * absSin + textBB.height * absCos
+ };
+}
+
function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
var isHorizontal = !!opts.isHorizontal;
var constrained = !!opts.constrained;
var angle = opts.angle || 0;
- var anchor = opts.anchor || 0;
+ var anchor = opts.anchor || 'end';
+ var isEnd = anchor === 'end';
+ var isStart = anchor === 'start';
+ var leftToRight = opts.leftToRight || 0; // left: -1, center: 0, right: 1
+ var toRight = (leftToRight + 1) / 2;
+ var toLeft = 1 - toRight;
var textWidth = textBB.width;
var textHeight = textBB.height;
var lx = Math.abs(x1 - x0);
var ly = Math.abs(y1 - y0);
+ // compute remaining space
var textpad = (
lx > (2 * TEXTPAD) &&
ly > (2 * TEXTPAD)
@@ -70149,67 +70607,70 @@ function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
lx -= 2 * textpad;
ly -= 2 * textpad;
- var autoRotate = (angle === 'auto');
- var isAutoRotated = false;
- if(autoRotate &&
+ var rotate = getRotateFromAngle(angle);
+ if((angle === 'auto') &&
!(textWidth <= lx && textHeight <= ly) &&
(textWidth > lx || textHeight > ly) && (
!(textWidth > ly || textHeight > lx) ||
((textWidth < textHeight) !== (lx < ly))
)) {
- isAutoRotated = true;
+ rotate += 90;
}
- if(isAutoRotated) {
- // don't rotate yet only swap bar width with height
- var tmp = ly;
- ly = lx;
- lx = tmp;
+ var t = getRotatedTextSize(textBB, rotate);
+
+ var scale = 1;
+ if(constrained) {
+ scale = Math.min(
+ 1,
+ lx / t.x,
+ ly / t.y
+ );
}
- var rotate = getRotateFromAngle(angle);
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
-
- // compute and apply text padding
- var dx = Math.max(lx * absCos, ly * absSin);
- var dy = Math.max(lx * absSin, ly * absCos);
-
- var scale = (constrained) ?
- Math.min(dx / textWidth, dy / textHeight) :
- Math.max(absCos, absSin);
-
- scale = Math.min(1, scale);
-
// compute text and target positions
- var targetX = (x0 + x1) / 2;
+ var textX = (
+ textBB.left * toLeft +
+ textBB.right * toRight
+ );
+ var textY = (textBB.top + textBB.bottom) / 2;
+ var targetX = (
+ (x0 + TEXTPAD) * toLeft +
+ (x1 - TEXTPAD) * toRight
+ );
var targetY = (y0 + y1) / 2;
-
- if(anchor !== 'middle') { // case of 'start' or 'end'
- var targetWidth = scale * (isHorizontal !== isAutoRotated ? textHeight : textWidth);
- var targetHeight = scale * (isHorizontal !== isAutoRotated ? textWidth : textHeight);
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
+ var anchorX = 0;
+ var anchorY = 0;
+ if(isStart || isEnd) {
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
+ var dir = isHorizontal ? dirSign(x0, x1) : dirSign(y0, y1);
if(isHorizontal) {
- textpad *= dirSign(x0, x1);
- targetX = (anchor === 'start') ? x0 + textpad : x1 - textpad;
+ if(isStart) {
+ targetX = x0 + dir * textpad;
+ anchorX = -dir * extrapad;
+ } else {
+ targetX = x1 - dir * textpad;
+ anchorX = dir * extrapad;
+ }
} else {
- textpad *= dirSign(y0, y1);
- targetY = (anchor === 'start') ? y0 + textpad : y1 - textpad;
+ if(isStart) {
+ targetY = y0 + dir * textpad;
+ anchorY = -dir * extrapad;
+ } else {
+ targetY = y1 - dir * textpad;
+ anchorY = dir * extrapad;
+ }
}
}
- var textX = (textBB.left + textBB.right) / 2;
- var textY = (textBB.top + textBB.bottom) / 2;
-
- // lastly apply auto rotation
- if(isAutoRotated) rotate += 90;
-
return {
textX: textX,
textY: textY,
targetX: targetX,
targetY: targetY,
+ anchorX: anchorX,
+ anchorY: anchorY,
scale: scale,
rotate: rotate
};
@@ -70243,45 +70704,47 @@ function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {
}
var rotate = getRotateFromAngle(angle);
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
+ var t = getRotatedTextSize(textBB, rotate);
// compute text and target positions
- var targetWidth = scale * (isHorizontal ? textHeight : textWidth);
- var targetHeight = scale * (isHorizontal ? textWidth : textHeight);
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
-
- var targetX = (x0 + x1) / 2;
- var targetY = (y0 + y1) / 2;
-
- if(isHorizontal) {
- targetX = x1 - textpad * dirSign(x1, x0);
- } else {
- targetY = y1 + textpad * dirSign(y0, y1);
- }
-
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
var textX = (textBB.left + textBB.right) / 2;
var textY = (textBB.top + textBB.bottom) / 2;
+ var targetX = (x0 + x1) / 2;
+ var targetY = (y0 + y1) / 2;
+ var anchorX = 0;
+ var anchorY = 0;
+
+ var dir = isHorizontal ? dirSign(x1, x0) : dirSign(y0, y1);
+ if(isHorizontal) {
+ targetX = x1 - dir * textpad;
+ anchorX = dir * extrapad;
+ } else {
+ targetY = y1 + dir * textpad;
+ anchorY = -dir * extrapad;
+ }
return {
textX: textX,
textY: textY,
targetX: targetX,
targetY: targetY,
+ anchorX: anchorX,
+ anchorY: anchorY,
scale: scale,
rotate: rotate
};
}
-function getText(fullLayout, calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function getText(fullLayout, cd, index, xa, ya) {
+ var trace = cd[0].trace;
var texttemplate = trace.texttemplate;
var value;
if(texttemplate) {
- value = calcTexttemplate(fullLayout, calcTrace, index, xa, ya);
+ value = calcTexttemplate(fullLayout, cd, index, xa, ya);
} else if(trace.textinfo) {
- value = calcTextinfo(calcTrace, index, xa, ya);
+ value = calcTextinfo(cd, index, xa, ya);
} else {
value = helpers.getValue(trace.text, index);
}
@@ -70294,8 +70757,8 @@ function getTextPosition(trace, index) {
return helpers.coerceEnumerated(attributeTextPosition, value);
}
-function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function calcTexttemplate(fullLayout, cd, index, xa, ya) {
+ var trace = cd[0].trace;
var texttemplate = Lib.castOption(trace, index, 'texttemplate');
if(!texttemplate) return '';
var isWaterfall = (trace.type === 'waterfall');
@@ -70323,7 +70786,7 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
return tickText(vAxis, +v, true).text;
}
- var cdi = calcTrace[index];
+ var cdi = cd[index];
var obj = {};
obj.label = cdi.p;
@@ -70364,8 +70827,8 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});
}
-function calcTextinfo(calcTrace, index, xa, ya) {
- var trace = calcTrace[0].trace;
+function calcTextinfo(cd, index, xa, ya) {
+ var trace = cd[0].trace;
var isHorizontal = (trace.orientation === 'h');
var isWaterfall = (trace.type === 'waterfall');
var isFunnel = (trace.type === 'funnel');
@@ -70381,7 +70844,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
}
var textinfo = trace.textinfo;
- var cdi = calcTrace[index];
+ var cdi = cd[index];
var parts = textinfo.split('+');
var text = [];
@@ -70390,7 +70853,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };
if(hasFlag('label')) {
- text.push(formatLabel(calcTrace[index].p));
+ text.push(formatLabel(cd[index].p));
}
if(hasFlag('text')) {
@@ -70440,13 +70903,12 @@ function calcTextinfo(calcTrace, index, xa, ya) {
module.exports = {
plot: plot,
- toMoveInsideBar: toMoveInsideBar,
- toMoveOutsideBar: toMoveOutsideBar
+ toMoveInsideBar: toMoveInsideBar
};
-},{"../../components/color":51,"../../components/drawing":72,"../../components/fx/helpers":86,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"./attributes":268,"./constants":270,"./helpers":274,"./style":282,"d3":16,"fast-isnumeric":18}],280:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../components/fx/helpers":86,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../registry":258,"./attributes":268,"./constants":270,"./helpers":274,"./style":282,"./uniform_text":284,"d3":16,"fast-isnumeric":18}],280:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70510,7 +70972,7 @@ function getCentroid(d, xa, ya, isHorizontal, isFunnel) {
},{}],281:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70621,7 +71083,7 @@ Sieve.prototype.getLabel = function getLabel(position, value) {
},{"../../constants/numerical":149,"../../lib":169}],282:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70636,6 +71098,7 @@ var Drawing = _dereq_('../../components/drawing');
var Lib = _dereq_('../../lib');
var Registry = _dereq_('../../registry');
+var resizeText = _dereq_('./uniform_text').resizeText;
var attributes = _dereq_('./attributes');
var attributeTextFont = attributes.textfont;
var attributeInsideTextFont = attributes.insidetextfont;
@@ -70644,6 +71107,8 @@ var helpers = _dereq_('./helpers');
function style(gd) {
var s = d3.select(gd).selectAll('g.barlayer').selectAll('g.trace');
+ resizeText(gd, s, 'bar');
+
var barcount = s.size();
var fullLayout = gd._fullLayout;
@@ -70679,7 +71144,8 @@ function stylePoints(sel, trace, gd) {
function styleTextPoints(sel, trace, gd) {
sel.selectAll('text').each(function(d) {
var tx = d3.select(this);
- var font = determineFont(tx, d, trace, gd);
+ var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
+
Drawing.font(tx, font);
});
}
@@ -70706,7 +71172,7 @@ function styleTextInSelectionMode(txs, trace, gd) {
var font;
if(d.selected) {
- font = Lib.extendFlat({}, determineFont(tx, d, trace, gd));
+ font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;
if(selectedFontColor) {
@@ -70793,12 +71259,13 @@ module.exports = {
styleOnSelect: styleOnSelect,
getInsideTextFont: getInsideTextFont,
getOutsideTextFont: getOutsideTextFont,
- getBarColor: getBarColor
+ getBarColor: getBarColor,
+ resizeText: resizeText
};
-},{"../../components/color":51,"../../components/drawing":72,"../../lib":169,"../../registry":258,"./attributes":268,"./helpers":274,"d3":16}],283:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../lib":169,"../../registry":258,"./attributes":268,"./helpers":274,"./uniform_text":284,"d3":16}],283:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70836,7 +71303,93 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, default
},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62}],284:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
+* All rights reserved.
+*
+* This source code is licensed under the MIT license found in the
+* LICENSE file in the root directory of this source tree.
+*/
+
+'use strict';
+
+var d3 = _dereq_('d3');
+var Lib = _dereq_('../../lib');
+
+function resizeText(gd, gTrace, traceType) {
+ var fullLayout = gd._fullLayout;
+ var minSize = fullLayout['_' + traceType + 'Text_minsize'];
+ if(minSize) {
+ var shouldHide = fullLayout.uniformtext.mode === 'hide';
+
+ var selector;
+ switch(traceType) {
+ case 'funnelarea' :
+ case 'pie' :
+ case 'sunburst' :
+ selector = 'g.slice';
+ break;
+ case 'treemap' :
+ selector = 'g.slice, g.pathbar';
+ break;
+ default :
+ selector = 'g.points > g.point';
+ }
+
+ gTrace.selectAll(selector).each(function(d) {
+ var transform = d.transform;
+ if(transform) {
+ transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize;
+
+ var el = d3.select(this).select('text');
+ el.attr('transform', Lib.getTextTransform(transform));
+ }
+ });
+ }
+}
+
+function recordMinTextSize(
+ traceType, // in
+ transform, // inout
+ fullLayout // inout
+) {
+ if(fullLayout.uniformtext.mode) {
+ var minKey = getMinKey(traceType);
+ var minSize = fullLayout.uniformtext.minsize;
+ var size = transform.scale * transform.fontSize;
+
+ transform.hide = size < minSize;
+
+ fullLayout[minKey] = fullLayout[minKey] || Infinity;
+ if(!transform.hide) {
+ fullLayout[minKey] = Math.min(
+ fullLayout[minKey],
+ Math.max(size, minSize)
+ );
+ }
+ }
+}
+
+function clearMinTextSize(
+ traceType, // in
+ fullLayout // inout
+) {
+ var minKey = getMinKey(traceType);
+ fullLayout[minKey] = undefined;
+}
+
+function getMinKey(traceType) {
+ return '_' + traceType + 'Text_minsize';
+}
+
+module.exports = {
+ recordMinTextSize: recordMinTextSize,
+ clearMinTextSize: clearMinTextSize,
+ resizeText: resizeText
+};
+
+},{"../../lib":169,"d3":16}],285:[function(_dereq_,module,exports){
+/**
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -70877,30 +71430,58 @@ module.exports = {
editType: 'calc+clearAxisTypes',
},
+
+ dx: {
+ valType: 'number',
+
+ editType: 'calc',
+
+ },
+ dy: {
+ valType: 'number',
+
+ editType: 'calc',
+
+ },
+
name: {
valType: 'string',
editType: 'calc+clearAxisTypes',
},
- text: extendFlat({}, scatterAttrs.text, {
+
+ q1: {
+ valType: 'data_array',
- }),
- hovertext: extendFlat({}, scatterAttrs.hovertext, {
+ editType: 'calc+clearAxisTypes',
- }),
- hovertemplate: hovertemplateAttrs({
+ },
+ median: {
+ valType: 'data_array',
- }),
- whiskerwidth: {
- valType: 'number',
- min: 0,
- max: 1,
- dflt: 0.5,
+ editType: 'calc+clearAxisTypes',
+
+ },
+ q3: {
+ valType: 'data_array',
+
+ editType: 'calc+clearAxisTypes',
+
+ },
+ lowerfence: {
+ valType: 'data_array',
editType: 'calc',
},
+ upperfence: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+
notched: {
valType: 'boolean',
@@ -70916,18 +71497,21 @@ module.exports = {
editType: 'calc',
},
- boxpoints: {
- valType: 'enumerated',
- values: ['all', 'outliers', 'suspectedoutliers', false],
- dflt: 'outliers',
+ notchspan: {
+ valType: 'data_array',
editType: 'calc',
},
- boxmean: {
+
+ // TODO
+ // maybe add
+ // - loweroutlierbound / upperoutlierbound
+ // - lowersuspectedoutlierbound / uppersuspectedoutlierbound
+
+ boxpoints: {
valType: 'enumerated',
- values: [true, 'sd', false],
- dflt: false,
+ values: ['all', 'outliers', 'suspectedoutliers', false],
editType: 'calc',
@@ -70948,6 +71532,27 @@ module.exports = {
editType: 'calc',
},
+
+ boxmean: {
+ valType: 'enumerated',
+ values: [true, 'sd', false],
+
+ editType: 'calc',
+
+ },
+ mean: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+ sd: {
+ valType: 'data_array',
+
+ editType: 'calc',
+
+ },
+
orientation: {
valType: 'enumerated',
values: ['v', 'h'],
@@ -70956,6 +71561,15 @@ module.exports = {
},
+ quartilemethod: {
+ valType: 'enumerated',
+ values: ['linear', 'exclusive', 'inclusive'],
+ dflt: 'linear',
+
+ editType: 'calc',
+
+ },
+
width: {
valType: 'number',
min: 0,
@@ -71006,6 +71620,7 @@ module.exports = {
},
editType: 'plot'
},
+
line: {
color: {
valType: 'color',
@@ -71023,8 +71638,19 @@ module.exports = {
},
editType: 'plot'
},
+
fillcolor: scatterAttrs.fillcolor,
+ whiskerwidth: {
+ valType: 'number',
+ min: 0,
+ max: 1,
+ dflt: 0.5,
+
+ editType: 'calc',
+
+ },
+
offsetgroup: barAttrs.offsetgroup,
alignmentgroup: barAttrs.alignmentgroup,
@@ -71036,6 +71662,17 @@ module.exports = {
marker: scatterAttrs.unselected.marker,
editType: 'style'
},
+
+ text: extendFlat({}, scatterAttrs.text, {
+
+ }),
+ hovertext: extendFlat({}, scatterAttrs.hovertext, {
+
+ }),
+ hovertemplate: hovertemplateAttrs({
+
+ }),
+
hoveron: {
valType: 'flaglist',
flags: ['boxes', 'points'],
@@ -71046,9 +71683,9 @@ module.exports = {
}
};
-},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"../scatter/attributes":377}],285:[function(_dereq_,module,exports){
+},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"../scatter/attributes":378}],286:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71059,11 +71696,12 @@ module.exports = {
var isNumeric = _dereq_('fast-isnumeric');
-var Lib = _dereq_('../../lib');
-var _ = Lib._;
var Axes = _dereq_('../../plots/cartesian/axes');
+var Lib = _dereq_('../../lib');
+
+var BADNUM = _dereq_('../../constants/numerical').BADNUM;
+var _ = Lib._;
-// outlier definition based on http://www.physics.csbsju.edu/stats/box2.html
module.exports = function calc(gd, trace) {
var fullLayout = gd._fullLayout;
var xa = Axes.getFromId(gd, trace.xaxis || 'x');
@@ -71073,7 +71711,7 @@ module.exports = function calc(gd, trace) {
// N.B. violin reuses same Box.calc
var numKey = trace.type === 'violin' ? '_numViolins' : '_numBoxes';
- var i;
+ var i, j;
var valAxis, valLetter;
var posAxis, posLetter;
@@ -71089,108 +71727,238 @@ module.exports = function calc(gd, trace) {
posLetter = 'x';
}
- var val = valAxis.makeCalcdata(trace, valLetter);
- var pos = getPos(trace, posLetter, posAxis, val, fullLayout[numKey]);
-
- var dv = Lib.distinctVals(pos);
+ var posArray = getPos(trace, posLetter, posAxis, fullLayout[numKey]);
+ var dv = Lib.distinctVals(posArray);
var posDistinct = dv.vals;
var dPos = dv.minDiff / 2;
- var posBins = makeBins(posDistinct, dPos);
-
- var pLen = posDistinct.length;
- var ptsPerBin = initNestedArray(pLen);
-
- // bin pts info per position bins
- for(i = 0; i < trace._length; i++) {
- var v = val[i];
- if(!isNumeric(v)) continue;
-
- var n = Lib.findBin(pos[i], posBins);
- if(n >= 0 && n < pLen) {
- var pt = {v: v, i: i};
- arraysToCalcdata(pt, trace, i);
- ptsPerBin[n].push(pt);
- }
- }
+ // item in trace calcdata
var cdi;
+ // array of {v: v, i, i} sample pts
+ var pts;
+ // values of the `pts` array of objects
+ var boxVals;
+ // length of sample
+ var N;
+ // single sample point
+ var pt;
+ // single sample value
+ var v;
+
+ // filter function for outlier pts
+ // outlier definition based on http://www.physics.csbsju.edu/stats/box2.html
var ptFilterFn = (trace.boxpoints || trace.points) === 'all' ?
Lib.identity :
function(pt) { return (pt.v < cdi.lf || pt.v > cdi.uf); };
- var minLowerNotch = Infinity;
- var maxUpperNotch = -Infinity;
+ if(trace._hasPreCompStats) {
+ var valArrayRaw = trace[valLetter];
+ var d2c = function(k) { return valAxis.d2c((trace[k] || [])[i]); };
+ var minVal = Infinity;
+ var maxVal = -Infinity;
- // build calcdata trace items, one item per distinct position
- for(i = 0; i < pLen; i++) {
- if(ptsPerBin[i].length > 0) {
- var pts = ptsPerBin[i].sort(sortByVal);
- var boxVals = pts.map(extractVal);
- var bvLen = boxVals.length;
+ for(i = 0; i < trace._length; i++) {
+ var posi = posArray[i];
+ if(!isNumeric(posi)) continue;
cdi = {};
- cdi.pos = posDistinct[i];
- cdi.pts = pts;
+ cdi.pos = cdi[posLetter] = posi;
- // Sort categories by values
- cdi[posLetter] = cdi.pos;
- cdi[valLetter] = cdi.pts.map(function(pt) { return pt.v; });
+ cdi.q1 = d2c('q1');
+ cdi.med = d2c('median');
+ cdi.q3 = d2c('q3');
- cdi.min = boxVals[0];
- cdi.max = boxVals[bvLen - 1];
- cdi.mean = Lib.mean(boxVals, bvLen);
- cdi.sd = Lib.stdev(boxVals, bvLen, cdi.mean);
+ pts = [];
+ if(valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {
+ for(j = 0; j < valArrayRaw[i].length; j++) {
+ v = valAxis.d2c(valArrayRaw[i][j]);
+ if(v !== BADNUM) {
+ pt = {v: v, i: [i, j]};
+ arraysToCalcdata(pt, trace, [i, j]);
+ pts.push(pt);
+ }
+ }
+ }
+ cdi.pts = pts.sort(sortByVal);
+ boxVals = cdi[valLetter] = pts.map(extractVal);
+ N = boxVals.length;
- // first quartile
- cdi.q1 = Lib.interp(boxVals, 0.25);
- // median
- cdi.med = Lib.interp(boxVals, 0.5);
- // third quartile
- cdi.q3 = Lib.interp(boxVals, 0.75);
+ if(cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM &&
+ cdi.med >= cdi.q1 && cdi.q3 >= cdi.med
+ ) {
+ var lf = d2c('lowerfence');
+ cdi.lf = (lf !== BADNUM && lf <= cdi.q1) ?
+ lf :
+ computeLowerFence(cdi, boxVals, N);
- // lower and upper fences - last point inside
- // 1.5 interquartile ranges from quartiles
- cdi.lf = Math.min(
- cdi.q1,
- boxVals[Math.min(
- Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,
- bvLen - 1
- )]
- );
- cdi.uf = Math.max(
- cdi.q3,
- boxVals[Math.max(
- Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),
- 0
- )]
- );
+ var uf = d2c('upperfence');
+ cdi.uf = (uf !== BADNUM && uf >= cdi.q3) ?
+ uf :
+ computeUpperFence(cdi, boxVals, N);
- // lower and upper outliers - 3 IQR out (don't clip to max/min,
- // this is only for discriminating suspected & far outliers)
- cdi.lo = 4 * cdi.q1 - 3 * cdi.q3;
- cdi.uo = 4 * cdi.q3 - 3 * cdi.q1;
+ var mean = d2c('mean');
+ cdi.mean = (mean !== BADNUM) ?
+ mean :
+ (N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2);
- // lower and upper notches ~95% Confidence Intervals for median
- var iqr = cdi.q3 - cdi.q1;
- var mci = 1.57 * iqr / Math.sqrt(bvLen);
- cdi.ln = cdi.med - mci;
- cdi.un = cdi.med + mci;
- minLowerNotch = Math.min(minLowerNotch, cdi.ln);
- maxUpperNotch = Math.max(maxUpperNotch, cdi.un);
+ var sd = d2c('sd');
+ cdi.sd = (mean !== BADNUM && sd >= 0) ?
+ sd :
+ (N ? Lib.stdev(boxVals, N, cdi.mean) : (cdi.q3 - cdi.q1));
+
+ cdi.lo = computeLowerOutlierBound(cdi);
+ cdi.uo = computeUpperOutlierBound(cdi);
+
+ var ns = d2c('notchspan');
+ ns = (ns !== BADNUM && ns > 0) ? ns : computeNotchSpan(cdi, N);
+ cdi.ln = cdi.med - ns;
+ cdi.un = cdi.med + ns;
+
+ var imin = cdi.lf;
+ var imax = cdi.uf;
+ if(trace.boxpoints && boxVals.length) {
+ imin = Math.min(imin, boxVals[0]);
+ imax = Math.max(imax, boxVals[N - 1]);
+ }
+ if(trace.notched) {
+ imin = Math.min(imin, cdi.ln);
+ imax = Math.max(imax, cdi.un);
+ }
+ cdi.min = imin;
+ cdi.max = imax;
+ } else {
+ Lib.warn([
+ 'Invalid input - make sure that q1 <= median <= q3',
+ 'q1 = ' + cdi.q1,
+ 'median = ' + cdi.med,
+ 'q3 = ' + cdi.q3
+ ].join('\n'));
+
+ var v0;
+ if(cdi.med !== BADNUM) {
+ v0 = cdi.med;
+ } else if(cdi.q1 !== BADNUM) {
+ if(cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;
+ else v0 = cdi.q1;
+ } else if(cdi.q3 !== BADNUM) {
+ v0 = cdi.q3;
+ } else {
+ v0 = 0;
+ }
+
+ // draw box as line segment
+ cdi.med = v0;
+ cdi.q1 = cdi.q3 = v0;
+ cdi.lf = cdi.uf = v0;
+ cdi.mean = cdi.sd = v0;
+ cdi.ln = cdi.un = v0;
+ cdi.min = cdi.max = v0;
+ }
+
+ minVal = Math.min(minVal, cdi.min);
+ maxVal = Math.max(maxVal, cdi.max);
cdi.pts2 = pts.filter(ptFilterFn);
cd.push(cdi);
}
+
+ trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
+ [minVal, maxVal],
+ {padded: true}
+ );
+ } else {
+ var valArray = valAxis.makeCalcdata(trace, valLetter);
+ var posBins = makeBins(posDistinct, dPos);
+ var pLen = posDistinct.length;
+ var ptsPerBin = initNestedArray(pLen);
+
+ // bin pts info per position bins
+ for(i = 0; i < trace._length; i++) {
+ v = valArray[i];
+ if(!isNumeric(v)) continue;
+
+ var n = Lib.findBin(posArray[i], posBins);
+ if(n >= 0 && n < pLen) {
+ pt = {v: v, i: i};
+ arraysToCalcdata(pt, trace, i);
+ ptsPerBin[n].push(pt);
+ }
+ }
+
+ var minLowerNotch = Infinity;
+ var maxUpperNotch = -Infinity;
+
+ var quartilemethod = trace.quartilemethod;
+ var usesExclusive = quartilemethod === 'exclusive';
+ var usesInclusive = quartilemethod === 'inclusive';
+
+ // build calcdata trace items, one item per distinct position
+ for(i = 0; i < pLen; i++) {
+ if(ptsPerBin[i].length > 0) {
+ cdi = {};
+ cdi.pos = cdi[posLetter] = posDistinct[i];
+
+ pts = cdi.pts = ptsPerBin[i].sort(sortByVal);
+ boxVals = cdi[valLetter] = pts.map(extractVal);
+ N = boxVals.length;
+
+ cdi.min = boxVals[0];
+ cdi.max = boxVals[N - 1];
+ cdi.mean = Lib.mean(boxVals, N);
+ cdi.sd = Lib.stdev(boxVals, N, cdi.mean);
+ cdi.med = Lib.interp(boxVals, 0.5);
+
+ if((N % 2) && (usesExclusive || usesInclusive)) {
+ var lower;
+ var upper;
+
+ if(usesExclusive) {
+ // do NOT include the median in either half
+ lower = boxVals.slice(0, N / 2);
+ upper = boxVals.slice(N / 2 + 1);
+ } else if(usesInclusive) {
+ // include the median in either half
+ lower = boxVals.slice(0, N / 2 + 1);
+ upper = boxVals.slice(N / 2);
+ }
+
+ cdi.q1 = Lib.interp(lower, 0.5);
+ cdi.q3 = Lib.interp(upper, 0.5);
+ } else {
+ cdi.q1 = Lib.interp(boxVals, 0.25);
+ cdi.q3 = Lib.interp(boxVals, 0.75);
+ }
+
+ // lower and upper fences
+ cdi.lf = computeLowerFence(cdi, boxVals, N);
+ cdi.uf = computeUpperFence(cdi, boxVals, N);
+
+ // lower and upper outliers bounds
+ cdi.lo = computeLowerOutlierBound(cdi);
+ cdi.uo = computeUpperOutlierBound(cdi);
+
+ // lower and upper notches
+ var mci = computeNotchSpan(cdi, N);
+ cdi.ln = cdi.med - mci;
+ cdi.un = cdi.med + mci;
+ minLowerNotch = Math.min(minLowerNotch, cdi.ln);
+ maxUpperNotch = Math.max(maxUpperNotch, cdi.un);
+
+ cdi.pts2 = pts.filter(ptFilterFn);
+
+ cd.push(cdi);
+ }
+ }
+
+ trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
+ trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,
+ {padded: true}
+ );
}
calcSelection(cd, trace);
- trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,
- trace.notched ? val.concat([minLowerNotch, maxUpperNotch]) : val,
- {padded: true}
- );
-
if(cd.length > 0) {
cd[0].t = {
num: fullLayout[numKey],
@@ -71221,14 +71989,17 @@ module.exports = function calc(gd, trace) {
// so if you want one box
// per trace, set x0 (y0) to the x (y) value or category for this trace
// (or set x (y) to a constant array matching y (x))
-function getPos(trace, posLetter, posAxis, val, num) {
- if(posLetter in trace) {
+function getPos(trace, posLetter, posAxis, num) {
+ var hasPosArray = posLetter in trace;
+ var hasPos0 = posLetter + '0' in trace;
+ var hasPosStep = 'd' + posLetter in trace;
+
+ if(hasPosArray || (hasPos0 && hasPosStep)) {
return posAxis.makeCalcdata(trace, posLetter);
}
var pos0;
-
- if(posLetter + '0' in trace) {
+ if(hasPos0) {
pos0 = trace[posLetter + '0'];
} else if('name' in trace && (
posAxis.type === 'category' || (
@@ -71248,7 +72019,11 @@ function getPos(trace, posLetter, posAxis, val, num) {
posAxis.r2c_just_indices(pos0) :
posAxis.d2c(pos0, 0, trace[posLetter + 'calendar']);
- return val.map(function() { return pos0c; });
+ var len = trace._length;
+ var out = new Array(len);
+ for(var i = 0; i < len; i++) out[i] = pos0c;
+
+ return out;
}
function makeBins(x, dx) {
@@ -71271,15 +72046,21 @@ function initNestedArray(len) {
return arr;
}
-function arraysToCalcdata(pt, trace, i) {
- var trace2calc = {
- text: 'tx',
- hovertext: 'htx'
- };
+var TRACE_TO_CALC = {
+ text: 'tx',
+ hovertext: 'htx'
+};
- for(var k in trace2calc) {
- if(Array.isArray(trace[k])) {
- pt[trace2calc[k]] = trace[k][i];
+function arraysToCalcdata(pt, trace, ptNumber) {
+ for(var k in TRACE_TO_CALC) {
+ if(Lib.isArrayOrTypedArray(trace[k])) {
+ if(Array.isArray(ptNumber)) {
+ if(Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {
+ pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];
+ }
+ } else {
+ pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];
+ }
}
}
}
@@ -71303,9 +72084,51 @@ function sortByVal(a, b) { return a.v - b.v; }
function extractVal(o) { return o.v; }
-},{"../../lib":169,"../../plots/cartesian/axes":213,"fast-isnumeric":18}],286:[function(_dereq_,module,exports){
+// last point below 1.5 * IQR
+function computeLowerFence(cdi, boxVals, N) {
+ if(N === 0) return cdi.q1;
+ return Math.min(
+ cdi.q1,
+ boxVals[Math.min(
+ Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,
+ N - 1
+ )]
+ );
+}
+
+// last point above 1.5 * IQR
+function computeUpperFence(cdi, boxVals, N) {
+ if(N === 0) return cdi.q3;
+ return Math.max(
+ cdi.q3,
+ boxVals[Math.max(
+ Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),
+ 0
+ )]
+ );
+}
+
+// 3 IQR below (don't clip to max/min,
+// this is only for discriminating suspected & far outliers)
+function computeLowerOutlierBound(cdi) {
+ return 4 * cdi.q1 - 3 * cdi.q3;
+}
+
+// 3 IQR above (don't clip to max/min,
+// this is only for discriminating suspected & far outliers)
+function computeUpperOutlierBound(cdi) {
+ return 4 * cdi.q3 - 3 * cdi.q1;
+}
+
+// 95% confidence intervals for median
+function computeNotchSpan(cdi, N) {
+ if(N === 0) return 0;
+ return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);
+}
+
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"fast-isnumeric":18}],287:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71532,9 +72355,9 @@ module.exports = {
setPositionOffset: setPositionOffset
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216}],287:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../../plots/cartesian/axis_ids":216}],288:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71547,6 +72370,7 @@ var Lib = _dereq_('../../lib');
var Registry = _dereq_('../../registry');
var Color = _dereq_('../../components/color');
var handleGroupingDefaults = _dereq_('../bar/defaults').handleGroupingDefaults;
+var autoType = _dereq_('../../plots/cartesian/axis_autotype');
var attributes = _dereq_('./attributes');
function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
@@ -71557,49 +72381,208 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
handleSampleDefaults(traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
+ var hasPreCompStats = traceOut._hasPreCompStats;
+
+ if(hasPreCompStats) {
+ coerce('lowerfence');
+ coerce('upperfence');
+ }
+
coerce('line.color', (traceIn.marker || {}).color || defaultColor);
coerce('line.width');
coerce('fillcolor', Color.addOpacity(traceOut.line.color, 0.5));
- coerce('whiskerwidth');
- coerce('boxmean');
- coerce('width');
+ var boxmeanDflt = false;
+ if(hasPreCompStats) {
+ var mean = coerce('mean');
+ var sd = coerce('sd');
+ if(mean && mean.length) {
+ boxmeanDflt = true;
+ if(sd && sd.length) boxmeanDflt = 'sd';
+ }
+ }
+ coerce('boxmean', boxmeanDflt);
- var notched = coerce('notched', traceIn.notchwidth !== undefined);
+ coerce('whiskerwidth');
+ coerce('width');
+ coerce('quartilemethod');
+
+ var notchedDflt = false;
+ if(hasPreCompStats) {
+ var notchspan = coerce('notchspan');
+ if(notchspan && notchspan.length) {
+ notchedDflt = true;
+ }
+ } else if(Lib.validate(traceIn.notchwidth, attributes.notchwidth)) {
+ notchedDflt = true;
+ }
+ var notched = coerce('notched', notchedDflt);
if(notched) coerce('notchwidth');
handlePointsDefaults(traceIn, traceOut, coerce, {prefix: 'box'});
}
function handleSampleDefaults(traceIn, traceOut, coerce, layout) {
+ function getDims(arr) {
+ var dims = 0;
+ if(arr && arr.length) {
+ dims += 1;
+ if(Lib.isArrayOrTypedArray(arr[0]) && arr[0].length) {
+ dims += 1;
+ }
+ }
+ return dims;
+ }
+
+ function valid(astr) {
+ return Lib.validate(traceIn[astr], attributes[astr]);
+ }
+
var y = coerce('y');
var x = coerce('x');
- var hasX = x && x.length;
+
+ var sLen;
+ if(traceOut.type === 'box') {
+ var q1 = coerce('q1');
+ var median = coerce('median');
+ var q3 = coerce('q3');
+
+ traceOut._hasPreCompStats = (
+ q1 && q1.length &&
+ median && median.length &&
+ q3 && q3.length
+ );
+ sLen = Math.min(
+ Lib.minRowLength(q1),
+ Lib.minRowLength(median),
+ Lib.minRowLength(q3)
+ );
+ }
+
+ var yDims = getDims(y);
+ var xDims = getDims(x);
+ var yLen = yDims && Lib.minRowLength(y);
+ var xLen = xDims && Lib.minRowLength(x);
var defaultOrientation, len;
+ if(traceOut._hasPreCompStats) {
+ switch(String(xDims) + String(yDims)) {
+ // no x / no y
+ case '00':
+ var setInX = valid('x0') || valid('dx');
+ var setInY = valid('y0') || valid('dy');
- if(y && y.length) {
- defaultOrientation = 'v';
- if(hasX) {
- len = Math.min(Lib.minRowLength(x), Lib.minRowLength(y));
- } else {
- coerce('x0');
- len = Lib.minRowLength(y);
+ if(setInY && !setInX) {
+ defaultOrientation = 'h';
+ } else {
+ defaultOrientation = 'v';
+ }
+
+ len = sLen;
+ break;
+ // just x
+ case '10':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen);
+ break;
+ case '20':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length);
+ break;
+ // just y
+ case '01':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, yLen);
+ break;
+ case '02':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, y.length);
+ break;
+ // both
+ case '12':
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ break;
+ case '21':
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length, yLen);
+ break;
+ case '11':
+ // this one is ill-defined
+ len = 0;
+ break;
+ case '22':
+ var hasCategories = false;
+ var i;
+ for(i = 0; i < x.length; i++) {
+ if(autoType(x[i]) === 'category') {
+ hasCategories = true;
+ break;
+ }
+ }
+
+ if(hasCategories) {
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ } else {
+ for(i = 0; i < y.length; i++) {
+ if(autoType(y[i]) === 'category') {
+ hasCategories = true;
+ break;
+ }
+ }
+
+ if(hasCategories) {
+ defaultOrientation = 'h';
+ len = Math.min(sLen, x.length, yLen);
+ } else {
+ defaultOrientation = 'v';
+ len = Math.min(sLen, xLen, y.length);
+ }
+ }
+ break;
}
- } else if(hasX) {
+ } else if(yDims > 0) {
+ defaultOrientation = 'v';
+ if(xDims > 0) {
+ len = Math.min(xLen, yLen);
+ } else {
+ len = Math.min(yLen);
+ }
+ } else if(xDims > 0) {
defaultOrientation = 'h';
- coerce('y0');
- len = Lib.minRowLength(x);
+ len = Math.min(xLen);
} else {
+ len = 0;
+ }
+
+ if(!len) {
traceOut.visible = false;
return;
}
traceOut._length = len;
+ var orientation = coerce('orientation', defaultOrientation);
+
+ // these are just used for positioning, they never define the sample
+ if(traceOut._hasPreCompStats) {
+ if(orientation === 'v' && xDims === 0) {
+ coerce('x0', 0);
+ coerce('dx', 1);
+ } else if(orientation === 'h' && yDims === 0) {
+ coerce('y0', 0);
+ coerce('dy', 1);
+ }
+ } else {
+ if(orientation === 'v' && xDims === 0) {
+ coerce('x0');
+ } else if(orientation === 'h' && yDims === 0) {
+ coerce('y0');
+ }
+ }
+
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
-
- coerce('orientation', defaultOrientation);
}
function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
@@ -71608,14 +72591,18 @@ function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
var outlierColorDflt = Lib.coerce2(traceIn, traceOut, attributes, 'marker.outliercolor');
var lineoutliercolor = coerce('marker.line.outliercolor');
- var points = coerce(
- prefix + 'points',
- (outlierColorDflt || lineoutliercolor) ? 'suspectedoutliers' : undefined
- );
+ var modeDflt = 'outliers';
+ if(traceOut._hasPreCompStats) {
+ modeDflt = 'all';
+ } else if(outlierColorDflt || lineoutliercolor) {
+ modeDflt = 'suspectedoutliers';
+ }
- if(points) {
- coerce('jitter', points === 'all' ? 0.3 : 0);
- coerce('pointpos', points === 'all' ? -1.5 : 0);
+ var mode = coerce(prefix + 'points', modeDflt);
+
+ if(mode) {
+ coerce('jitter', mode === 'all' ? 0.3 : 0);
+ coerce('pointpos', mode === 'all' ? -1.5 : 0);
coerce('marker.symbol');
coerce('marker.opacity');
@@ -71624,7 +72611,7 @@ function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
coerce('marker.line.color');
coerce('marker.line.width');
- if(points === 'suspectedoutliers') {
+ if(mode === 'suspectedoutliers') {
coerce('marker.line.outliercolor', traceOut.marker.color);
coerce('marker.line.outlierwidth');
}
@@ -71676,9 +72663,9 @@ module.exports = {
handlePointsDefaults: handlePointsDefaults
};
-},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/defaults":272,"./attributes":284}],288:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../plots/cartesian/axis_autotype":214,"../../registry":258,"../bar/defaults":272,"./attributes":285}],289:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71701,9 +72688,9 @@ module.exports = function eventData(out, pt) {
return out;
};
-},{}],289:[function(_dereq_,module,exports){
+},{}],290:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -71986,9 +72973,9 @@ module.exports = {
hoverOnPoints: hoverOnPoints
};
-},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],290:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],291:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72021,9 +73008,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":284,"./calc":285,"./cross_trace_calc":286,"./defaults":287,"./event_data":288,"./hover":289,"./layout_attributes":291,"./layout_defaults":292,"./plot":293,"./select":294,"./style":295}],291:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":285,"./calc":286,"./cross_trace_calc":287,"./defaults":288,"./event_data":289,"./hover":290,"./layout_attributes":292,"./layout_defaults":293,"./plot":294,"./select":295,"./style":296}],292:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72062,9 +73049,9 @@ module.exports = {
}
};
-},{}],292:[function(_dereq_,module,exports){
+},{}],293:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72108,9 +73095,9 @@ module.exports = {
_supply: _supply
};
-},{"../../lib":169,"../../registry":258,"./layout_attributes":291}],293:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"./layout_attributes":292}],294:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72432,9 +73419,9 @@ module.exports = {
plotBoxMean: plotBoxMean
};
-},{"../../components/drawing":72,"../../lib":169,"d3":16}],294:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"d3":16}],295:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72481,9 +73468,9 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
return selection;
};
-},{}],295:[function(_dereq_,module,exports){
+},{}],296:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72555,9 +73542,9 @@ module.exports = {
styleOnSelect: styleOnSelect
};
-},{"../../components/color":51,"../../components/drawing":72,"d3":16}],296:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"d3":16}],297:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72742,9 +73729,9 @@ module.exports = extendFlat({
})
);
-},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../constants/filter_ops":147,"../../lib/extend":164,"../../plots/font_attributes":239,"../heatmap/attributes":318,"../scatter/attributes":377}],297:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../constants/docs":146,"../../constants/filter_ops":147,"../../lib/extend":164,"../../plots/font_attributes":239,"../heatmap/attributes":319,"../scatter/attributes":378}],298:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72795,9 +73782,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../../components/colorscale":63,"../heatmap/calc":319,"./end_plus":307,"./set_contours":315}],298:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../heatmap/calc":320,"./end_plus":308,"./set_contours":316}],299:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72885,9 +73872,9 @@ module.exports = function(pathinfo, contours) {
}
};
-},{}],299:[function(_dereq_,module,exports){
+},{}],300:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -72896,7 +73883,7 @@ module.exports = function(pathinfo, contours) {
'use strict';
-var extractOpts = _dereq_('../../components/colorscale').extractOpts;
+var Colorscale = _dereq_('../../components/colorscale');
var makeColorMap = _dereq_('./make_color_map');
var endPlus = _dereq_('./end_plus');
@@ -72908,8 +73895,10 @@ function calc(gd, trace, opts) {
var colorMap = makeColorMap(trace, {isColorbar: true});
if(coloring === 'heatmap') {
- var cOpts = extractOpts(trace);
- opts._fillgradient = trace.colorscale;
+ var cOpts = Colorscale.extractOpts(trace);
+ opts._fillgradient = cOpts.reversescale ?
+ Colorscale.flipScale(cOpts.colorscale) :
+ cOpts.colorscale;
opts._zrange = [cOpts.min, cOpts.max];
} else if(coloring === 'fill') {
opts._fillcolor = colorMap;
@@ -72934,9 +73923,9 @@ module.exports = {
calc: calc
};
-},{"../../components/colorscale":63,"./end_plus":307,"./make_color_map":312}],300:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"./end_plus":308,"./make_color_map":313}],301:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73012,9 +74001,9 @@ module.exports = {
}
};
-},{}],301:[function(_dereq_,module,exports){
+},{}],302:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73106,9 +74095,9 @@ function handleConstraintValueDefaults(coerce, contours) {
}
}
-},{"../../components/color":51,"../../constants/filter_ops":147,"./label_defaults":311,"fast-isnumeric":18}],302:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../constants/filter_ops":147,"./label_defaults":312,"fast-isnumeric":18}],303:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73185,9 +74174,9 @@ function makeInequalitySettings(operation) {
};
}
-},{"../../constants/filter_ops":147,"fast-isnumeric":18}],303:[function(_dereq_,module,exports){
+},{"../../constants/filter_ops":147,"fast-isnumeric":18}],304:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73214,9 +74203,9 @@ module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerc
if(autoContour || !contourSize) coerce('ncontours');
};
-},{}],304:[function(_dereq_,module,exports){
+},{}],305:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73314,9 +74303,9 @@ function copyPathinfo(pi) {
});
}
-},{"../../lib":169}],305:[function(_dereq_,module,exports){
+},{"../../lib":169}],306:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73365,9 +74354,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
}
};
-},{"../../lib":169,"../heatmap/xyz_defaults":332,"./attributes":296,"./constraint_defaults":301,"./contours_defaults":303,"./style_defaults":317}],306:[function(_dereq_,module,exports){
+},{"../../lib":169,"../heatmap/xyz_defaults":333,"./attributes":297,"./constraint_defaults":302,"./contours_defaults":304,"./style_defaults":318}],307:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73429,9 +74418,9 @@ module.exports = function emptyPathinfo(contours, plotinfo, cd0) {
return pathinfo;
};
-},{"../../lib":169,"./constraint_mapping":302,"./end_plus":307}],307:[function(_dereq_,module,exports){
+},{"../../lib":169,"./constraint_mapping":303,"./end_plus":308}],308:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73449,9 +74438,9 @@ module.exports = function endPlus(contours) {
return contours.end + contours.size / 1e6;
};
-},{}],308:[function(_dereq_,module,exports){
+},{}],309:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73743,9 +74732,9 @@ function getInterpPx(pi, loc, step) {
}
}
-},{"../../lib":169,"./constants":300}],309:[function(_dereq_,module,exports){
+},{"../../lib":169,"./constants":301}],310:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73778,9 +74767,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return hoverData;
};
-},{"../../components/color":51,"../heatmap/hover":325}],310:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../heatmap/hover":326}],311:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73807,9 +74796,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":296,"./calc":297,"./colorbar":299,"./defaults":305,"./hover":309,"./plot":314,"./style":316}],311:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":297,"./calc":298,"./colorbar":300,"./defaults":306,"./hover":310,"./plot":315,"./style":317}],312:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73837,9 +74826,9 @@ module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {
if(opts.hasHover !== false) coerce('zhoverformat');
};
-},{"../../lib":169}],312:[function(_dereq_,module,exports){
+},{"../../lib":169}],313:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -73921,9 +74910,9 @@ module.exports = function makeColorMap(trace) {
);
};
-},{"../../components/colorscale":63,"./end_plus":307,"d3":16}],313:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"./end_plus":308,"d3":16}],314:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74013,9 +75002,9 @@ function getMarchingIndex(val, corners) {
return (mi === 15) ? 0 : mi;
}
-},{"./constants":300}],314:[function(_dereq_,module,exports){
+},{"./constants":301}],315:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74697,9 +75686,9 @@ function makeClipMask(cd0) {
return z;
}
-},{"../../components/colorscale":63,"../../components/drawing":72,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/set_convert":231,"../heatmap/plot":329,"./close_boundaries":298,"./constants":300,"./convert_to_constraints":304,"./empty_pathinfo":306,"./find_all_paths":308,"./make_crossings":313,"d3":16}],315:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../components/drawing":72,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/cartesian/axes":213,"../../plots/cartesian/set_convert":231,"../heatmap/plot":330,"./close_boundaries":299,"./constants":301,"./convert_to_constraints":305,"./empty_pathinfo":307,"./find_all_paths":309,"./make_crossings":314,"d3":16}],316:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74801,9 +75790,9 @@ function autoContours(start, end, ncontours) {
return dummyAx;
}
-},{"../../lib":169,"../../plots/cartesian/axes":213}],316:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213}],317:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74882,9 +75871,9 @@ module.exports = function style(gd) {
heatmapStyle(gd);
};
-},{"../../components/drawing":72,"../heatmap/style":330,"./make_color_map":312,"d3":16}],317:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../heatmap/style":331,"./make_color_map":313,"d3":16}],318:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74927,9 +75916,9 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
handleLabelDefaults(coerce, layout, lineColor, opts);
};
-},{"../../components/colorscale/defaults":61,"./label_defaults":311}],318:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"./label_defaults":312}],319:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -74939,6 +75928,7 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
'use strict';
var scatterAttrs = _dereq_('../scatter/attributes');
+var baseAttrs = _dereq_('../../plots/attributes');
var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplateAttrs;
var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
var FORMAT_LINK = _dereq_('../../constants/docs').FORMAT_LINK;
@@ -75033,16 +76023,17 @@ module.exports = extendFlat({
editType: 'none',
},
- hovertemplate: hovertemplateAttrs()
+ hovertemplate: hovertemplateAttrs(),
+ showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})
}, {
transforms: undefined
},
colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
);
-},{"../../components/colorscale/attributes":58,"../../constants/docs":146,"../../lib/extend":164,"../../plots/template_attributes":253,"../scatter/attributes":377}],319:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../constants/docs":146,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":378}],320:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75200,9 +76191,9 @@ module.exports = function calc(gd, trace) {
return [cd0];
};
-},{"../../components/colorscale/calc":59,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../histogram2d/calc":347,"./clean_2d_array":320,"./convert_column_xyz":322,"./find_empties":324,"./interp2d":327,"./make_bound_array":328}],320:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../histogram2d/calc":348,"./clean_2d_array":321,"./convert_column_xyz":323,"./find_empties":325,"./interp2d":328,"./make_bound_array":329}],321:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75277,9 +76268,9 @@ module.exports = function clean2dArray(zOld, trace, xa, ya) {
return zNew;
};
-},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],321:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"fast-isnumeric":18}],322:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75293,9 +76284,9 @@ module.exports = {
max: 'zmax'
};
-},{}],322:[function(_dereq_,module,exports){
+},{}],323:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75337,6 +76328,8 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
hovertext = Lib.init2dArray(col2vals.length, col1vals.length);
}
+ var after2before = Lib.init2dArray(col2vals.length, col1vals.length);
+
for(i = 0; i < colLen; i++) {
if(col1[i] !== BADNUM && col2[i] !== BADNUM) {
var i1 = Lib.findBin(col1[i] + col1dv.minDiff / 2, col1vals);
@@ -75347,6 +76340,7 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
var arrayVar = trace[arrayVarName];
var newArray = newArrays[j];
newArray[i2][i1] = arrayVar[i];
+ after2before[i2][i1] = i;
}
if(hasColumnText) text[i2][i1] = textCol[i];
@@ -75369,11 +76363,13 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
if(ax2 && ax2.type === 'category') {
trace['_' + var2Name + 'CategoryMap'] = col2vals.map(function(v) { return ax2._categories[v];});
}
+
+ trace._after2before = after2before;
};
-},{"../../constants/numerical":149,"../../lib":169}],323:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169}],324:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75414,9 +76410,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
};
-},{"../../components/colorscale/defaults":61,"../../lib":169,"./attributes":318,"./style_defaults":331,"./xyz_defaults":332}],324:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../lib":169,"./attributes":319,"./style_defaults":332,"./xyz_defaults":333}],325:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75519,9 +76515,9 @@ module.exports = function findEmpties(z) {
return empties.sort(function(a, b) { return b[2] - a[2]; });
};
-},{"../../lib":169}],325:[function(_dereq_,module,exports){
+},{"../../lib":169}],326:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75634,7 +76630,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
var zLabel = Axes.tickText(dummyAx, zVal, 'hover').text;
return [Lib.extendFlat(pointData, {
- index: [ny, nx],
+ index: trace._after2before ? trace._after2before[ny][nx] : [ny, nx],
// never let a 2D override 1D type as closest point
distance: pointData.maxHoverDistance,
spikeDistance: pointData.maxSpikeDistance,
@@ -75650,9 +76646,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
})];
};
-},{"../../components/colorscale":63,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],326:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../components/fx":89,"../../lib":169,"../../plots/cartesian/axes":213}],327:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75673,15 +76669,15 @@ module.exports = {
moduleType: 'trace',
name: 'heatmap',
basePlotModule: _dereq_('../../plots/cartesian'),
- categories: ['cartesian', 'svg', '2dMap'],
+ categories: ['cartesian', 'svg', '2dMap', 'showLegend'],
meta: {
}
};
-},{"../../plots/cartesian":224,"./attributes":318,"./calc":319,"./colorbar":321,"./defaults":323,"./hover":325,"./plot":329,"./style":330}],327:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":319,"./calc":320,"./colorbar":322,"./defaults":324,"./hover":326,"./plot":330,"./style":331}],328:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75812,9 +76808,9 @@ function iterateInterp2d(z, emptyPoints, overshoot) {
return maxFractionalChange;
}
-},{"../../lib":169}],328:[function(_dereq_,module,exports){
+},{"../../lib":169}],329:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -75900,9 +76896,9 @@ module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks,
return arrayOut;
};
-},{"../../lib":169,"../../registry":258}],329:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],330:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76305,9 +77301,9 @@ function putColor(pixels, pxIndex, c) {
pixels[pxIndex + 3] = Math.round(c[3] * 255);
}
-},{"../../components/colorscale":63,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"d3":16,"tinycolor2":34}],330:[function(_dereq_,module,exports){
+},{"../../components/colorscale":63,"../../constants/xmlns_namespaces":150,"../../lib":169,"../../registry":258,"d3":16,"tinycolor2":34}],331:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76326,9 +77322,9 @@ module.exports = function style(gd) {
});
};
-},{"d3":16}],331:[function(_dereq_,module,exports){
+},{"d3":16}],332:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76349,9 +77345,9 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {
coerce('zhoverformat');
};
-},{}],332:[function(_dereq_,module,exports){
+},{}],333:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76446,9 +77442,9 @@ function isValidZ(z) {
return (allRowsAreArrays && oneRowIsFilled && hasOneNumber);
}
-},{"../../lib":169,"../../registry":258,"fast-isnumeric":18}],333:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"fast-isnumeric":18}],334:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76587,9 +77583,9 @@ module.exports = {
}
};
-},{"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"./bin_attributes":335,"./constants":339}],334:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plots/template_attributes":253,"../bar/attributes":268,"./bin_attributes":336,"./constants":340}],335:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76612,9 +77608,9 @@ module.exports = function doAvg(size, counts) {
return total;
};
-},{}],335:[function(_dereq_,module,exports){
+},{}],336:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76647,9 +77643,9 @@ module.exports = function makeBinAttrs(axLetter, match) {
};
};
-},{}],336:[function(_dereq_,module,exports){
+},{}],337:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76721,9 +77717,9 @@ module.exports = {
}
};
-},{"fast-isnumeric":18}],337:[function(_dereq_,module,exports){
+},{"fast-isnumeric":18}],338:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -76897,9 +77893,9 @@ function dateParts(v, pa, calendar) {
return parts;
}
-},{"../../constants/numerical":149,"../../plots/cartesian/axes":213}],338:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../plots/cartesian/axes":213}],339:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77454,9 +78450,9 @@ module.exports = {
calcAllAutoBins: calcAllAutoBins
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../bar/arrays_to_calcdata":267,"./average":334,"./bin_functions":336,"./bin_label_vals":337,"./norm_functions":345,"fast-isnumeric":18}],339:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../../registry":258,"../bar/arrays_to_calcdata":267,"./average":335,"./bin_functions":337,"./bin_label_vals":338,"./norm_functions":346,"fast-isnumeric":18}],340:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77470,9 +78466,9 @@ module.exports = {
eventDataKeys: ['binNumber']
};
-},{}],340:[function(_dereq_,module,exports){
+},{}],341:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77528,7 +78524,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
if(!groupName) groupName = fallbackGroupName;
var axType = getAxisType(traceOut, binDir);
- var calendar = traceOut[binDir + 'calendar'];
+ var calendar = traceOut[binDir + 'calendar'] || '';
var binOpts = allBinOpts[groupName];
var needsNewItem = true;
@@ -77748,9 +78744,9 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
}
};
-},{"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../bar/defaults":272}],341:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axis_ids":216,"../../registry":258,"../bar/defaults":272}],342:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77822,9 +78818,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
};
-},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/style_defaults":283,"./attributes":333}],342:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../../registry":258,"../bar/style_defaults":283,"./attributes":334}],343:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77871,9 +78867,9 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) {
return out;
};
-},{}],343:[function(_dereq_,module,exports){
+},{}],344:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77906,9 +78902,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
return pts;
};
-},{"../../plots/cartesian/axes":213,"../bar/hover":275}],344:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213,"../bar/hover":275}],345:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77956,9 +78952,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../bar/cross_trace_calc":271,"../bar/layout_attributes":277,"../bar/layout_defaults":278,"../bar/plot":279,"../bar/select":280,"../bar/style":282,"../scatter/marker_colorbar":395,"./attributes":333,"./calc":338,"./cross_trace_defaults":340,"./defaults":341,"./event_data":342,"./hover":343}],345:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../bar/cross_trace_calc":271,"../bar/layout_attributes":277,"../bar/layout_defaults":278,"../bar/plot":279,"../bar/select":280,"../bar/style":282,"../scatter/marker_colorbar":396,"./attributes":334,"./calc":339,"./cross_trace_defaults":341,"./defaults":342,"./event_data":343,"./hover":344}],346:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -77991,9 +78987,9 @@ module.exports = {
}
};
-},{}],346:[function(_dereq_,module,exports){
+},{}],347:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78005,6 +79001,7 @@ module.exports = {
var histogramAttrs = _dereq_('../histogram/attributes');
var makeBinAttrs = _dereq_('../histogram/bin_attributes');
var heatmapAttrs = _dereq_('../heatmap/attributes');
+var baseAttrs = _dereq_('../../plots/attributes');
var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplateAttrs;
var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
@@ -78052,14 +79049,15 @@ module.exports = extendFlat(
ygap: heatmapAttrs.ygap,
zsmooth: heatmapAttrs.zsmooth,
zhoverformat: heatmapAttrs.zhoverformat,
- hovertemplate: hovertemplateAttrs({}, {keys: 'z'})
+ hovertemplate: hovertemplateAttrs({}, {keys: 'z'}),
+ showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})
},
colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
);
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/template_attributes":253,"../heatmap/attributes":318,"../histogram/attributes":333,"../histogram/bin_attributes":335}],347:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../heatmap/attributes":319,"../histogram/attributes":334,"../histogram/bin_attributes":336}],348:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78276,9 +79274,9 @@ function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {
return out;
}
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../histogram/average":334,"../histogram/bin_functions":336,"../histogram/bin_label_vals":337,"../histogram/calc":338,"../histogram/norm_functions":345}],348:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../histogram/average":335,"../histogram/bin_functions":337,"../histogram/bin_label_vals":338,"../histogram/calc":339,"../histogram/norm_functions":346}],349:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78309,9 +79307,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertemplate');
};
-},{"../../components/colorscale/defaults":61,"../../lib":169,"../heatmap/style_defaults":331,"./attributes":346,"./sample_defaults":351}],349:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../lib":169,"../heatmap/style_defaults":332,"./attributes":347,"./sample_defaults":352}],350:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78343,9 +79341,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return pts;
};
-},{"../../plots/cartesian/axes":213,"../heatmap/hover":325}],350:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213,"../heatmap/hover":326}],351:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78355,7 +79353,6 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
'use strict';
module.exports = {
-
attributes: _dereq_('./attributes'),
supplyDefaults: _dereq_('./defaults'),
crossTraceDefaults: _dereq_('../histogram/cross_trace_defaults'),
@@ -78370,16 +79367,16 @@ module.exports = {
moduleType: 'trace',
name: 'histogram2d',
basePlotModule: _dereq_('../../plots/cartesian'),
- categories: ['cartesian', 'svg', '2dMap', 'histogram'],
+ categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'],
meta: {
}
};
-},{"../../plots/cartesian":224,"../heatmap/calc":319,"../heatmap/colorbar":321,"../heatmap/plot":329,"../heatmap/style":330,"../histogram/cross_trace_defaults":340,"../histogram/event_data":342,"./attributes":346,"./defaults":348,"./hover":349}],351:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../heatmap/calc":320,"../heatmap/colorbar":322,"../heatmap/plot":330,"../heatmap/style":331,"../histogram/cross_trace_defaults":341,"../histogram/event_data":343,"./attributes":347,"./defaults":349,"./hover":350}],352:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78422,9 +79419,9 @@ module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout
coerce('autobiny');
};
-},{"../../lib":169,"../../registry":258}],352:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],353:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78480,9 +79477,9 @@ module.exports = extendFlat({
})
);
-},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../contour/attributes":296,"../histogram2d/attributes":346}],353:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../lib/extend":164,"../contour/attributes":297,"../histogram2d/attributes":347}],354:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78517,9 +79514,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertemplate');
};
-},{"../../lib":169,"../contour/contours_defaults":303,"../contour/style_defaults":317,"../histogram2d/sample_defaults":351,"./attributes":352}],354:[function(_dereq_,module,exports){
+},{"../../lib":169,"../contour/contours_defaults":304,"../contour/style_defaults":318,"../histogram2d/sample_defaults":352,"./attributes":353}],355:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78549,9 +79546,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../contour/calc":297,"../contour/colorbar":299,"../contour/hover":309,"../contour/plot":314,"../contour/style":316,"../histogram/cross_trace_defaults":340,"./attributes":352,"./defaults":353}],355:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../contour/calc":298,"../contour/colorbar":300,"../contour/hover":310,"../contour/plot":315,"../contour/style":317,"../histogram/cross_trace_defaults":341,"./attributes":353,"./defaults":354}],356:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78661,9 +79658,9 @@ module.exports = extendFlat({
transforms: undefined
});
-},{"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"./constants":357}],356:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"./constants":358}],357:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78749,9 +79746,9 @@ function makeScaler(trace) {
};
}
-},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":357,"fast-isnumeric":18}],357:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"./constants":358,"fast-isnumeric":18}],358:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78799,9 +79796,9 @@ module.exports = {
}
};
-},{}],358:[function(_dereq_,module,exports){
+},{}],359:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78840,9 +79837,9 @@ module.exports = function supplyDefaults(traceIn, traceOut) {
traceOut._length = null;
};
-},{"../../lib":169,"./attributes":355,"./constants":357}],359:[function(_dereq_,module,exports){
+},{"../../lib":169,"./attributes":356,"./constants":358}],360:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78861,9 +79858,9 @@ module.exports = function eventData(out, pt) {
return out;
};
-},{}],360:[function(_dereq_,module,exports){
+},{}],361:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78953,9 +79950,9 @@ module.exports = function hoverPoints(pointData, xval, yval) {
})];
};
-},{"../../components/fx":89,"../../lib":169,"./constants":357}],361:[function(_dereq_,module,exports){
+},{"../../components/fx":89,"../../lib":169,"./constants":358}],362:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -78983,9 +79980,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./attributes":355,"./calc":356,"./defaults":358,"./event_data":359,"./hover":360,"./plot":362,"./style":363}],362:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./attributes":356,"./calc":357,"./defaults":359,"./event_data":360,"./hover":361,"./plot":363,"./style":364}],363:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79114,9 +80111,9 @@ module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {
});
};
-},{"../../constants/xmlns_namespaces":150,"../../lib":169,"./constants":357,"d3":16}],363:[function(_dereq_,module,exports){
+},{"../../constants/xmlns_namespaces":150,"../../lib":169,"./constants":358,"d3":16}],364:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79134,9 +80131,9 @@ module.exports = function style(gd) {
});
};
-},{"d3":16}],364:[function(_dereq_,module,exports){
+},{"d3":16}],365:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79275,6 +80272,14 @@ module.exports = {
textfont: extendFlat({}, textFontAttrs, {
}),
+ insidetextorientation: {
+ valType: 'enumerated',
+
+ values: ['horizontal', 'radial', 'tangential', 'auto'],
+ dflt: 'auto',
+ editType: 'plot',
+
+ },
insidetextfont: extendFlat({}, textFontAttrs, {
}),
@@ -79397,9 +80402,9 @@ module.exports = {
}
};
-},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/domain":238,"../../plots/font_attributes":239,"../../plots/template_attributes":253}],365:[function(_dereq_,module,exports){
+},{"../../components/color/attributes":50,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/domain":238,"../../plots/font_attributes":239,"../../plots/template_attributes":253}],366:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79420,9 +80425,9 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);
};
-},{"../../plots/plots":245}],366:[function(_dereq_,module,exports){
+},{"../../plots/plots":245}],367:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79432,7 +80437,6 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout)
'use strict';
var isNumeric = _dereq_('fast-isnumeric');
-var isArrayOrTypedArray = _dereq_('../../lib').isArrayOrTypedArray;
var tinycolor = _dereq_('tinycolor2');
var Color = _dereq_('../../components/color');
@@ -79448,26 +80452,26 @@ function calc(gd, trace) {
var labels = trace.labels;
var colors = trace.marker.colors || [];
var vals = trace.values;
- var hasVals = isArrayOrTypedArray(vals) && vals.length;
+ var len = trace._length;
+ var hasValues = trace._hasValues && len;
var i, pt;
if(trace.dlabel) {
- labels = new Array(vals.length);
- for(i = 0; i < vals.length; i++) {
+ labels = new Array(len);
+ for(i = 0; i < len; i++) {
labels[i] = String(trace.label0 + i * trace.dlabel);
}
}
var allThisTraceLabels = {};
var pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);
- var seriesLen = (hasVals ? vals : labels).length;
var vTotal = 0;
var isAggregated = false;
- for(i = 0; i < seriesLen; i++) {
+ for(i = 0; i < len; i++) {
var v, label, hidden;
- if(hasVals) {
+ if(hasValues) {
v = vals[i];
if(!isNumeric(v)) continue;
v = +v;
@@ -79604,9 +80608,9 @@ module.exports = {
generateExtendedColors: generateExtendedColors
};
-},{"../../components/color":51,"../../lib":169,"fast-isnumeric":18,"tinycolor2":34}],367:[function(_dereq_,module,exports){
+},{"../../components/color":51,"fast-isnumeric":18,"tinycolor2":34}],368:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79615,26 +80619,57 @@ module.exports = {
'use strict';
+var isNumeric = _dereq_('fast-isnumeric');
var Lib = _dereq_('../../lib');
var attributes = _dereq_('./attributes');
var handleDomainDefaults = _dereq_('../../plots/domain').defaults;
var handleText = _dereq_('../bar/defaults').handleText;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function handleLabelsAndValues(labels, values) {
+ var hasLabels = Array.isArray(labels);
+ var hasValues = Lib.isArrayOrTypedArray(values);
+ var len = Math.min(
+ hasLabels ? labels.length : Infinity,
+ hasValues ? values.length : Infinity
+ );
+
+ if(!isFinite(len)) len = 0;
+
+ if(len && hasValues) {
+ var hasPositive;
+ for(var i = 0; i < len; i++) {
+ var v = values[i];
+ if(isNumeric(v) && v > 0) {
+ hasPositive = true;
+ break;
+ }
+ }
+ if(!hasPositive) len = 0;
+ }
+
+ return {
+ hasLabels: hasLabels,
+ hasValues: hasValues,
+ len: len
+ };
+}
+
+function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len;
- var vals = coerce('values');
- var hasVals = Lib.isArrayOrTypedArray(vals);
var labels = coerce('labels');
- if(Array.isArray(labels)) {
- len = labels.length;
- if(hasVals) len = Math.min(len, vals.length);
- } else if(hasVals) {
- len = vals.length;
+ var values = coerce('values');
+ var res = handleLabelsAndValues(labels, values);
+ var len = res.len;
+ traceOut._hasLabels = res.hasLabels;
+ traceOut._hasValues = res.hasValues;
+
+ if(!traceOut._hasLabels &&
+ traceOut._hasValues
+ ) {
coerce('label0');
coerce('dlabel');
}
@@ -79677,6 +80712,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(hasOutside) {
coerce('automargin');
}
+
+ if(textposition === 'inside' || textposition === 'auto' || Array.isArray(textposition)) {
+ coerce('insidetextorientation');
+ }
}
handleDomainDefaults(traceOut, layout, coerce);
@@ -79693,11 +80732,16 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('direction');
coerce('rotation');
coerce('pull');
+}
+
+module.exports = {
+ handleLabelsAndValues: handleLabelsAndValues,
+ supplyDefaults: supplyDefaults
};
-},{"../../lib":169,"../../plots/domain":238,"../bar/defaults":272,"./attributes":364}],368:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/domain":238,"../bar/defaults":272,"./attributes":365,"fast-isnumeric":18}],369:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79744,9 +80788,9 @@ module.exports = function eventData(pt, trace) {
return out;
};
-},{"../../components/fx/helpers":86}],369:[function(_dereq_,module,exports){
+},{"../../components/fx/helpers":86}],370:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79786,9 +80830,9 @@ exports.castOption = function castOption(item, indices) {
else if(item) return item;
};
-},{"../../lib":169}],370:[function(_dereq_,module,exports){
+},{"../../lib":169}],371:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79799,7 +80843,7 @@ exports.castOption = function castOption(item, indices) {
module.exports = {
attributes: _dereq_('./attributes'),
- supplyDefaults: _dereq_('./defaults'),
+ supplyDefaults: _dereq_('./defaults').supplyDefaults,
supplyLayoutDefaults: _dereq_('./layout_defaults'),
layoutAttributes: _dereq_('./layout_attributes'),
@@ -79819,9 +80863,9 @@ module.exports = {
}
};
-},{"./attributes":364,"./base_plot":365,"./calc":366,"./defaults":367,"./layout_attributes":371,"./layout_defaults":372,"./plot":373,"./style":374,"./style_one":375}],371:[function(_dereq_,module,exports){
+},{"./attributes":365,"./base_plot":366,"./calc":367,"./defaults":368,"./layout_attributes":372,"./layout_defaults":373,"./plot":374,"./style":375,"./style_one":376}],372:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79852,9 +80896,9 @@ module.exports = {
}
};
-},{}],372:[function(_dereq_,module,exports){
+},{}],373:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79877,9 +80921,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
coerce('extendpiecolors');
};
-},{"../../lib":169,"./layout_attributes":371}],373:[function(_dereq_,module,exports){
+},{"../../lib":169,"./layout_attributes":372}],374:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -79896,6 +80940,9 @@ var Color = _dereq_('../../components/color');
var Drawing = _dereq_('../../components/drawing');
var Lib = _dereq_('../../lib');
var svgTextUtils = _dereq_('../../lib/svg_text_utils');
+var uniformText = _dereq_('../bar/uniform_text');
+var recordMinTextSize = uniformText.recordMinTextSize;
+var clearMinTextSize = uniformText.clearMinTextSize;
var helpers = _dereq_('./helpers');
var eventData = _dereq_('./event_data');
@@ -79905,6 +80952,8 @@ function plot(gd, cdModule) {
var fullLayout = gd._fullLayout;
var gs = fullLayout._size;
+ clearMinTextSize('pie', fullLayout);
+
prerenderTitles(cdModule, gd);
layoutAreas(cdModule, gs);
@@ -79932,7 +80981,7 @@ function plot(gd, cdModule) {
];
var hasOutsideText = false;
- slices.each(function(pt) {
+ slices.each(function(pt, i) {
if(pt.hidden) {
d3.select(this).selectAll('path,g').remove();
return;
@@ -80024,15 +81073,18 @@ function plot(gd, cdModule) {
s.attr('data-notex', 1);
});
+ var font = Lib.ensureUniformFontSize(gd, textPosition === 'outside' ?
+ determineOutsideTextFont(trace, pt, fullLayout.font) :
+ determineInsideTextFont(trace, pt, fullLayout.font)
+ );
+
sliceText.text(pt.text)
.attr({
'class': 'slicetext',
transform: '',
'text-anchor': 'middle'
})
- .call(Drawing.font, textPosition === 'outside' ?
- determineOutsideTextFont(trace, pt, gd._fullLayout.font) :
- determineInsideTextFont(trace, pt, gd._fullLayout.font))
+ .call(Drawing.font, font)
.call(svgTextUtils.convertToTspans, gd);
// position the text relative to the slice
@@ -80044,36 +81096,37 @@ function plot(gd, cdModule) {
} else {
transform = transformInsideText(textBB, pt, cd0);
if(textPosition === 'auto' && transform.scale < 1) {
- sliceText.call(Drawing.font, trace.outsidetextfont);
- if(trace.outsidetextfont.family !== trace.insidetextfont.family ||
- trace.outsidetextfont.size !== trace.insidetextfont.size) {
- textBB = Drawing.bBox(sliceText.node());
- }
+ var newFont = Lib.ensureUniformFontSize(gd, trace.outsidetextfont);
+
+ sliceText.call(Drawing.font, newFont);
+ textBB = Drawing.bBox(sliceText.node());
+
transform = transformOutsideText(textBB, pt);
}
}
- var translateX = cx + pt.pxmid[0] * transform.rCenter + (transform.x || 0);
- var translateY = cy + pt.pxmid[1] * transform.rCenter + (transform.y || 0);
+ var textPosAngle = transform.textPosAngle;
+ var textXY = textPosAngle === undefined ? pt.pxmid : getCoords(cd0.r, textPosAngle);
+ transform.targetX = cx + textXY[0] * transform.rCenter + (transform.x || 0);
+ transform.targetY = cy + textXY[1] * transform.rCenter + (transform.y || 0);
+ computeTransform(transform, textBB);
// save some stuff to use later ensure no labels overlap
if(transform.outside) {
- pt.yLabelMin = translateY - textBB.height / 2;
- pt.yLabelMid = translateY;
- pt.yLabelMax = translateY + textBB.height / 2;
+ var targetY = transform.targetY;
+ pt.yLabelMin = targetY - textBB.height / 2;
+ pt.yLabelMid = targetY;
+ pt.yLabelMax = targetY + textBB.height / 2;
pt.labelExtraX = 0;
pt.labelExtraY = 0;
hasOutsideText = true;
}
- sliceText.attr('transform',
- 'translate(' + translateX + ',' + translateY + ')' +
- (transform.scale < 1 ? ('scale(' + transform.scale + ')') : '') +
- (transform.rotate ? ('rotate(' + transform.rotate + ')') : '') +
- 'translate(' +
- (-(textBB.left + textBB.right) / 2) + ',' +
- (-(textBB.top + textBB.bottom) / 2) +
- ')');
+ transform.fontSize = font.size;
+ recordMinTextSize(trace.type, transform, fullLayout);
+ cd[i].transform = transform;
+
+ sliceText.attr('transform', Lib.getTextTransform(transform));
});
});
@@ -80178,8 +81231,10 @@ function plotTextLines(slices, trace) {
// first move the text to its new location
var sliceText = sliceTop.select('g.slicetext text');
- sliceText.attr('transform', 'translate(' + pt.labelExtraX + ',' + pt.labelExtraY + ')' +
- sliceText.attr('transform'));
+ pt.transform.targetX += pt.labelExtraX;
+ pt.transform.targetY += pt.labelExtraY;
+
+ sliceText.attr('transform', Lib.getTextTransform(pt.transform));
// then add a line to the new location
var lineStartX = pt.cxFinal + pt.pxmid[0];
@@ -80429,59 +81484,150 @@ function prerenderTitles(cdModule, gd) {
function transformInsideText(textBB, pt, cd0) {
var textDiameter = Math.sqrt(textBB.width * textBB.width + textBB.height * textBB.height);
- var textAspect = textBB.width / textBB.height;
var halfAngle = pt.halfangle;
+ var midAngle = pt.midangle;
var ring = pt.ring;
var rInscribed = pt.rInscribed;
var r = cd0.r || pt.rpx1;
+ var orientation = cd0.trace.insidetextorientation;
+ var isHorizontal = orientation === 'horizontal';
+ var isTangential = orientation === 'tangential';
+ var isRadial = orientation === 'radial';
+ var isAuto = orientation === 'auto';
+ var isCircle = (ring === 1) && (Math.abs(pt.startangle - pt.stopangle) === Math.PI * 2);
+ var allTransforms = [];
+ var newT;
- // max size text can be inserted inside without rotating it
- // this inscribes the text rectangle in a circle, which is then inscribed
- // in the slice, so it will be an underestimate, which some day we may want
- // to improve so this case can get more use
- var transform = {
- scale: rInscribed * r * 2 / textDiameter,
+ if(!isAuto) {
+ // max size if text is placed (horizontally) at the top or bottom of the arc
- // and the center position and rotation in this case
- rCenter: 1 - rInscribed,
- rotate: 0
- };
+ var considerCrossing = function(angle, key) {
+ if(isCrossing(pt, angle)) {
+ var dStart = Math.abs(angle - pt.startangle);
+ var dStop = Math.abs(angle - pt.stopangle);
- if(transform.scale >= 1) return transform;
+ var closestEdge = dStart < dStop ? dStart : dStop;
+ if(key === 'tan') {
+ newT = calcTanTransform(textBB, r, ring, closestEdge, 0);
+ } else { // case of 'rad'
+ newT = calcRadTransform(textBB, r, ring, closestEdge, Math.PI / 2);
+ }
+ newT.textPosAngle = angle;
+
+ allTransforms.push(newT);
+ }
+ };
+
+ // to cover all cases with trace.rotation added
+ var i;
+ if(isHorizontal || isTangential) {
+ // top
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * i, 'tan');
+ // bottom
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1), 'tan');
+ }
+ if(isHorizontal || isRadial) {
+ // left
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1.5), 'rad');
+ // right
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 0.5), 'rad');
+ }
+ }
+
+ if(isCircle || isAuto || isHorizontal) {
+ // max size text can be inserted inside without rotating it
+ // this inscribes the text rectangle in a circle, which is then inscribed
+ // in the slice, so it will be an underestimate, which some day we may want
+ // to improve so this case can get more use
+ newT = {
+ scale: rInscribed * r * 2 / textDiameter,
+
+ // and the center position and rotation in this case
+ rCenter: 1 - rInscribed,
+ rotate: 0
+ };
+
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ if(newT.scale >= 1) return newT;
+
+ allTransforms.push(newT);
+ }
+
+ if(isAuto || isRadial) {
+ newT = calcRadTransform(textBB, r, ring, halfAngle, midAngle);
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ allTransforms.push(newT);
+ }
+
+ if(isAuto || isTangential) {
+ newT = calcTanTransform(textBB, r, ring, halfAngle, midAngle);
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
+ allTransforms.push(newT);
+ }
+
+ var id = 0;
+ var maxScale = 0;
+ for(var k = 0; k < allTransforms.length; k++) {
+ var s = allTransforms[k].scale;
+ if(maxScale < s) {
+ maxScale = s;
+ id = k;
+ }
+
+ if(!isAuto && maxScale >= 1) {
+ // respect test order for non-auto options
+ break;
+ }
+ }
+ return allTransforms[id];
+}
+
+function isCrossing(pt, angle) {
+ var start = pt.startangle;
+ var stop = pt.stopangle;
+ return (
+ (start > angle && angle > stop) ||
+ (start < angle && angle < stop)
+ );
+}
+
+function calcRadTransform(textBB, r, ring, halfAngle, midAngle) {
// max size if text is rotated radially
- var Qr = textAspect + 1 / (2 * Math.tan(halfAngle));
- var maxHalfHeightRotRadial = r * Math.min(
- 1 / (Math.sqrt(Qr * Qr + 0.5) + Qr),
- ring / (Math.sqrt(textAspect * textAspect + ring / 2) + textAspect)
- );
- var radialTransform = {
- scale: maxHalfHeightRotRadial * 2 / textBB.height,
- rCenter: Math.cos(maxHalfHeightRotRadial / r) -
- maxHalfHeightRotRadial * textAspect / r,
- rotate: (180 / Math.PI * pt.midangle + 720) % 180 - 90
+ var a = textBB.width / textBB.height;
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
+ return {
+ scale: s * 2 / textBB.height,
+ rCenter: calcRCenter(a, s / r),
+ rotate: calcRotate(midAngle)
};
+}
+function calcTanTransform(textBB, r, ring, halfAngle, midAngle) {
// max size if text is rotated tangentially
- var aspectInv = 1 / textAspect;
- var Qt = aspectInv + 1 / (2 * Math.tan(halfAngle));
- var maxHalfWidthTangential = r * Math.min(
- 1 / (Math.sqrt(Qt * Qt + 0.5) + Qt),
- ring / (Math.sqrt(aspectInv * aspectInv + ring / 2) + aspectInv)
- );
- var tangentialTransform = {
- scale: maxHalfWidthTangential * 2 / textBB.width,
- rCenter: Math.cos(maxHalfWidthTangential / r) -
- maxHalfWidthTangential / textAspect / r,
- rotate: (180 / Math.PI * pt.midangle + 810) % 180 - 90
+ var a = textBB.height / textBB.width;
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
+ return {
+ scale: s * 2 / textBB.width,
+ rCenter: calcRCenter(a, s / r),
+ rotate: calcRotate(midAngle + Math.PI / 2)
};
- // if we need a rotated transform, pick the biggest one
- // even if both are bigger than 1
- var rotatedTransform = tangentialTransform.scale > radialTransform.scale ?
- tangentialTransform : radialTransform;
+}
- if(transform.scale < 1 && rotatedTransform.scale > transform.scale) return rotatedTransform;
- return transform;
+function calcRCenter(a, b) {
+ return Math.cos(b) - a * b;
+}
+
+function calcRotate(t) {
+ return (180 / Math.PI * t + 720) % 180 - 90;
+}
+
+function calcMaxHalfSize(a, halfAngle, r, ring) {
+ var q = a + 1 / (2 * Math.tan(halfAngle));
+ return r * Math.min(
+ 1 / (Math.sqrt(q * q + 0.5) + q),
+ ring / (Math.sqrt(a * a + ring / 2) + a)
+ );
}
function getInscribedRadiusFraction(pt, cd0) {
@@ -80801,6 +81947,7 @@ function groupScale(cdModule, scaleGroups) {
function setCoords(cd) {
var cd0 = cd[0];
+ var r = cd0.r;
var trace = cd0.trace;
var currentAngle = trace.rotation * Math.PI / 180;
var angleFactor = 2 * Math.PI / cd0.vTotal;
@@ -80821,11 +81968,7 @@ function setCoords(cd) {
lastPt = 'px0';
}
- function getCoords(angle) {
- return [cd0.r * Math.sin(angle), -cd0.r * Math.cos(angle)];
- }
-
- currentCoords = getCoords(currentAngle);
+ currentCoords = getCoords(r, currentAngle);
for(i = 0; i < cd.length; i++) {
cdi = cd[i];
@@ -80833,12 +81976,13 @@ function setCoords(cd) {
cdi[firstPt] = currentCoords;
+ cdi.startangle = currentAngle;
currentAngle += angleFactor * cdi.v / 2;
- cdi.pxmid = getCoords(currentAngle);
+ cdi.pxmid = getCoords(r, currentAngle);
cdi.midangle = currentAngle;
-
currentAngle += angleFactor * cdi.v / 2;
- currentCoords = getCoords(currentAngle);
+ currentCoords = getCoords(r, currentAngle);
+ cdi.stopangle = currentAngle;
cdi[lastPt] = currentCoords;
@@ -80850,6 +81994,10 @@ function setCoords(cd) {
}
}
+function getCoords(r, angle) {
+ return [r * Math.sin(angle), -r * Math.cos(angle)];
+}
+
function formatSliceLabel(gd, pt, cd0) {
var fullLayout = gd._fullLayout;
var trace = cd0.trace;
@@ -80904,6 +82052,25 @@ function formatSliceLabel(gd, pt, cd0) {
}
}
}
+
+function computeTransform(
+ transform, // inout
+ textBB // in
+) {
+ var rotate = transform.rotate;
+ var scale = transform.scale;
+ if(scale > 1) scale = 1;
+
+ var a = rotate * Math.PI / 180;
+ var cosA = Math.cos(a);
+ var sinA = Math.sin(a);
+ var midX = (textBB.left + textBB.right) / 2;
+ var midY = (textBB.top + textBB.bottom) / 2;
+ transform.textX = midX * cosA - midY * sinA;
+ transform.textY = midX * sinA + midY * cosA;
+ transform.noCenter = true;
+}
+
module.exports = {
plot: plot,
formatSliceLabel: formatSliceLabel,
@@ -80913,11 +82080,12 @@ module.exports = {
prerenderTitles: prerenderTitles,
layoutAreas: layoutAreas,
attachFxHandlers: attachFxHandlers,
+ computeTransform: computeTransform
};
-},{"../../components/color":51,"../../components/drawing":72,"../../components/fx":89,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"./event_data":368,"./helpers":369,"d3":16}],374:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/drawing":72,"../../components/fx":89,"../../lib":169,"../../lib/svg_text_utils":190,"../../plots/plots":245,"../bar/uniform_text":284,"./event_data":369,"./helpers":370,"d3":16}],375:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -80929,9 +82097,13 @@ module.exports = {
var d3 = _dereq_('d3');
var styleOne = _dereq_('./style_one');
+var resizeText = _dereq_('../bar/uniform_text').resizeText;
module.exports = function style(gd) {
- gd._fullLayout._pielayer.selectAll('.trace').each(function(cd) {
+ var s = gd._fullLayout._pielayer.selectAll('.trace');
+ resizeText(gd, s, 'pie');
+
+ s.each(function(cd) {
var cd0 = cd[0];
var trace = cd0.trace;
var traceSelection = d3.select(this);
@@ -80944,9 +82116,9 @@ module.exports = function style(gd) {
});
};
-},{"./style_one":375,"d3":16}],375:[function(_dereq_,module,exports){
+},{"../bar/uniform_text":284,"./style_one":376,"d3":16}],376:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -80968,9 +82140,9 @@ module.exports = function styleOne(s, pt, trace) {
.call(Color.stroke, lineColor);
};
-},{"../../components/color":51,"./helpers":369}],376:[function(_dereq_,module,exports){
+},{"../../components/color":51,"./helpers":370}],377:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81020,9 +82192,9 @@ module.exports = function arraysToCalcdata(cd, trace) {
}
};
-},{"../../lib":169}],377:[function(_dereq_,module,exports){
+},{"../../lib":169}],378:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81434,9 +82606,9 @@ module.exports = {
}
};
-},{"../../components/colorscale/attributes":58,"../../components/drawing":72,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"./constants":381}],378:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing":72,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/font_attributes":239,"../../plots/template_attributes":253,"./constants":382}],379:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81719,9 +82891,9 @@ module.exports = {
getStackOpts: getStackOpts
};
-},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"./arrays_to_calcdata":376,"./calc_selection":379,"./colorscale_calc":380,"./subtypes":401,"fast-isnumeric":18}],379:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"./arrays_to_calcdata":377,"./calc_selection":380,"./colorscale_calc":381,"./subtypes":402,"fast-isnumeric":18}],380:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81738,9 +82910,9 @@ module.exports = function calcSelection(cd, trace) {
}
};
-},{"../../lib":169}],380:[function(_dereq_,module,exports){
+},{"../../lib":169}],381:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81781,9 +82953,9 @@ module.exports = function calcMarkerColorscale(gd, trace) {
}
};
-},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"./subtypes":401}],381:[function(_dereq_,module,exports){
+},{"../../components/colorscale/calc":59,"../../components/colorscale/helpers":62,"./subtypes":402}],382:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81810,9 +82982,9 @@ module.exports = {
eventDataKeys: []
};
-},{}],382:[function(_dereq_,module,exports){
+},{}],383:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -81991,9 +83163,9 @@ function getInterp(calcTrace, index, position, posAttr) {
return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);
}
-},{"./calc":378}],383:[function(_dereq_,module,exports){
+},{"./calc":379}],384:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82030,9 +83202,9 @@ module.exports = function crossTraceDefaults(fullData) {
}
};
-},{}],384:[function(_dereq_,module,exports){
+},{}],385:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82120,9 +83292,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-},{"../../lib":169,"../../registry":258,"./attributes":377,"./constants":381,"./fillcolor_defaults":385,"./line_defaults":390,"./line_shape_defaults":392,"./marker_defaults":396,"./stack_defaults":399,"./subtypes":401,"./text_defaults":402,"./xy_defaults":403}],385:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258,"./attributes":378,"./constants":382,"./fillcolor_defaults":386,"./line_defaults":391,"./line_shape_defaults":393,"./marker_defaults":397,"./stack_defaults":400,"./subtypes":402,"./text_defaults":403,"./xy_defaults":404}],386:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82157,9 +83329,9 @@ module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coe
));
};
-},{"../../components/color":51,"../../lib":169}],386:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169}],387:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82183,9 +83355,9 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
return labels;
};
-},{"../../plots/cartesian/axes":213}],387:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213}],388:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82232,9 +83404,9 @@ module.exports = function getTraceColor(trace, di) {
}
};
-},{"../../components/color":51,"./subtypes":401}],388:[function(_dereq_,module,exports){
+},{"../../components/color":51,"./subtypes":402}],389:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82427,9 +83599,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
}
};
-},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../registry":258,"./get_trace_color":387}],389:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/fx":89,"../../lib":169,"../../registry":258,"./get_trace_color":388}],390:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82473,9 +83645,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"./arrays_to_calcdata":376,"./attributes":377,"./calc":378,"./cross_trace_calc":382,"./cross_trace_defaults":383,"./defaults":384,"./format_labels":386,"./hover":388,"./marker_colorbar":395,"./plot":397,"./select":398,"./style":400,"./subtypes":401}],390:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"./arrays_to_calcdata":377,"./attributes":378,"./calc":379,"./cross_trace_calc":383,"./cross_trace_defaults":384,"./defaults":385,"./format_labels":387,"./hover":389,"./marker_colorbar":396,"./plot":398,"./select":399,"./style":401,"./subtypes":402}],391:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82504,9 +83676,9 @@ module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout,
if(!(opts || {}).noDash) coerce('line.dash');
};
-},{"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"../../lib":169}],391:[function(_dereq_,module,exports){
+},{"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"../../lib":169}],392:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82965,9 +84137,9 @@ module.exports = function linePoints(d, opts) {
return segments;
};
-},{"../../constants/numerical":149,"../../lib":169,"./constants":381}],392:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"./constants":382}],393:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -82984,9 +84156,9 @@ module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {
if(shape === 'spline') coerce('line.smoothing');
};
-},{}],393:[function(_dereq_,module,exports){
+},{}],394:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83074,9 +84246,9 @@ module.exports = function linkTraces(gd, plotinfo, cdscatter) {
return cdscatterSorted;
};
-},{}],394:[function(_dereq_,module,exports){
+},{}],395:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83116,9 +84288,9 @@ module.exports = function makeBubbleSizeFn(trace) {
};
};
-},{"fast-isnumeric":18}],395:[function(_dereq_,module,exports){
+},{"fast-isnumeric":18}],396:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83134,9 +84306,9 @@ module.exports = {
max: 'cmax'
};
-},{}],396:[function(_dereq_,module,exports){
+},{}],397:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83215,9 +84387,9 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
}
};
-},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"./subtypes":401}],397:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../components/colorscale/defaults":61,"../../components/colorscale/helpers":62,"./subtypes":402}],398:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83776,9 +84948,9 @@ function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {
});
}
-},{"../../components/drawing":72,"../../lib":169,"../../lib/polygon":181,"../../registry":258,"./line_points":391,"./link_traces":393,"./subtypes":401,"d3":16}],398:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"../../lib/polygon":181,"../../registry":258,"./line_points":392,"./link_traces":394,"./subtypes":402,"d3":16}],399:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83830,9 +85002,9 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
return selection;
};
-},{"./subtypes":401}],399:[function(_dereq_,module,exports){
+},{"./subtypes":402}],400:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -83935,9 +85107,9 @@ module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce)
}
};
-},{}],400:[function(_dereq_,module,exports){
+},{}],401:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84006,9 +85178,9 @@ module.exports = {
styleOnSelect: styleOnSelect
};
-},{"../../components/drawing":72,"../../registry":258,"d3":16}],401:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../registry":258,"d3":16}],402:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84045,9 +85217,9 @@ module.exports = {
}
};
-},{"../../lib":169}],402:[function(_dereq_,module,exports){
+},{"../../lib":169}],403:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84075,9 +85247,9 @@ module.exports = function(traceIn, traceOut, layout, coerce, opts) {
}
};
-},{"../../lib":169}],403:[function(_dereq_,module,exports){
+},{"../../lib":169}],404:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84119,9 +85291,9 @@ module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {
return len;
};
-},{"../../lib":169,"../../registry":258}],404:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../registry":258}],405:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84227,9 +85399,9 @@ module.exports = {
hovertemplate: hovertemplateAttrs(),
};
-},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":377}],405:[function(_dereq_,module,exports){
+},{"../../components/colorscale/attributes":58,"../../components/drawing/attributes":71,"../../lib/extend":164,"../../plots/attributes":210,"../../plots/template_attributes":253,"../scatter/attributes":378}],406:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84308,9 +85480,9 @@ module.exports = function calc(gd, trace) {
return cd;
};
-},{"../scatter/arrays_to_calcdata":376,"../scatter/calc":378,"../scatter/calc_selection":379,"../scatter/colorscale_calc":380,"fast-isnumeric":18}],406:[function(_dereq_,module,exports){
+},{"../scatter/arrays_to_calcdata":377,"../scatter/calc":379,"../scatter/calc_selection":380,"../scatter/colorscale_calc":381,"fast-isnumeric":18}],407:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84412,9 +85584,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-},{"../../lib":169,"../scatter/constants":381,"../scatter/fillcolor_defaults":385,"../scatter/line_defaults":390,"../scatter/line_shape_defaults":392,"../scatter/marker_defaults":396,"../scatter/subtypes":401,"../scatter/text_defaults":402,"./attributes":404}],407:[function(_dereq_,module,exports){
+},{"../../lib":169,"../scatter/constants":382,"../scatter/fillcolor_defaults":386,"../scatter/line_defaults":391,"../scatter/line_shape_defaults":393,"../scatter/marker_defaults":397,"../scatter/subtypes":402,"../scatter/text_defaults":403,"./attributes":405}],408:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84444,9 +85616,9 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) {
return out;
};
-},{}],408:[function(_dereq_,module,exports){
+},{}],409:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84468,9 +85640,9 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
return labels;
};
-},{"../../plots/cartesian/axes":213}],409:[function(_dereq_,module,exports){
+},{"../../plots/cartesian/axes":213}],410:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84542,9 +85714,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
return scatterPointData;
};
-},{"../scatter/hover":388}],410:[function(_dereq_,module,exports){
+},{"../scatter/hover":389}],411:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84576,9 +85748,9 @@ module.exports = {
}
};
-},{"../../plots/ternary":254,"../scatter/marker_colorbar":395,"../scatter/select":398,"../scatter/style":400,"./attributes":404,"./calc":405,"./defaults":406,"./event_data":407,"./format_labels":408,"./hover":409,"./plot":411}],411:[function(_dereq_,module,exports){
+},{"../../plots/ternary":254,"../scatter/marker_colorbar":396,"../scatter/select":399,"../scatter/style":401,"./attributes":405,"./calc":406,"./defaults":407,"./event_data":408,"./format_labels":409,"./hover":410,"./plot":412}],412:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84609,9 +85781,9 @@ module.exports = function plot(gd, ternary, moduleCalcData) {
scatterPlot(gd, plotinfo, moduleCalcData, scatterLayer);
};
-},{"../scatter/plot":397}],412:[function(_dereq_,module,exports){
+},{"../scatter/plot":398}],413:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84808,9 +85980,9 @@ module.exports = {
}
};
-},{"../../lib/extend":164,"../box/attributes":284}],413:[function(_dereq_,module,exports){
+},{"../../lib/extend":164,"../box/attributes":285}],414:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -84984,9 +86156,9 @@ function calcSpan(trace, cdi, valAxis, bandwidth) {
return spanOut;
}
-},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../box/calc":285,"./helpers":416}],414:[function(_dereq_,module,exports){
+},{"../../constants/numerical":149,"../../lib":169,"../../plots/cartesian/axes":213,"../box/calc":286,"./helpers":417}],415:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85027,9 +86199,9 @@ module.exports = function crossTraceCalc(gd, plotinfo) {
}
};
-},{"../box/cross_trace_calc":286}],415:[function(_dereq_,module,exports){
+},{"../box/cross_trace_calc":287}],416:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85088,9 +86260,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(!meanLineVisible) traceOut.meanline = {visible: false};
};
-},{"../../components/color":51,"../../lib":169,"../box/defaults":287,"./attributes":412}],416:[function(_dereq_,module,exports){
+},{"../../components/color":51,"../../lib":169,"../box/defaults":288,"./attributes":413}],417:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85161,9 +86333,9 @@ exports.getKdeValue = function(calcItem, trace, valueDist) {
exports.extractVal = function(o) { return o.v; };
-},{"../../lib":169}],417:[function(_dereq_,module,exports){
+},{"../../lib":169}],418:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85273,9 +86445,9 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
return closeData;
};
-},{"../../lib":169,"../../plots/cartesian/axes":213,"../box/hover":289,"./helpers":416}],418:[function(_dereq_,module,exports){
+},{"../../lib":169,"../../plots/cartesian/axes":213,"../box/hover":290,"./helpers":417}],419:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85307,9 +86479,9 @@ module.exports = {
}
};
-},{"../../plots/cartesian":224,"../box/defaults":287,"../box/select":294,"../scatter/style":400,"./attributes":412,"./calc":413,"./cross_trace_calc":414,"./defaults":415,"./hover":417,"./layout_attributes":419,"./layout_defaults":420,"./plot":421,"./style":422}],419:[function(_dereq_,module,exports){
+},{"../../plots/cartesian":224,"../box/defaults":288,"../box/select":295,"../scatter/style":401,"./attributes":413,"./calc":414,"./cross_trace_calc":415,"./defaults":416,"./hover":418,"./layout_attributes":420,"./layout_defaults":421,"./plot":422,"./style":423}],420:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85333,9 +86505,9 @@ module.exports = {
})
};
-},{"../../lib":169,"../box/layout_attributes":291}],420:[function(_dereq_,module,exports){
+},{"../../lib":169,"../box/layout_attributes":292}],421:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85355,9 +86527,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, 'violin');
};
-},{"../../lib":169,"../box/layout_defaults":292,"./layout_attributes":419}],421:[function(_dereq_,module,exports){
+},{"../../lib":169,"../box/layout_defaults":293,"./layout_attributes":420}],422:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85545,9 +86717,9 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {
});
};
-},{"../../components/drawing":72,"../../lib":169,"../box/plot":293,"../scatter/line_points":391,"./helpers":416,"d3":16}],422:[function(_dereq_,module,exports){
+},{"../../components/drawing":72,"../../lib":169,"../box/plot":294,"../scatter/line_points":392,"./helpers":417,"d3":16}],423:[function(_dereq_,module,exports){
/**
-* Copyright 2012-2019, Plotly, Inc.
+* Copyright 2012-2020, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
@@ -85600,11 +86772,11 @@ module.exports = function style(gd) {
});
};
-},{"../../components/color":51,"../scatter/style":400,"d3":16}]},{},[11])(11)
+},{"../../components/color":51,"../scatter/style":401,"d3":16}]},{},[11])(11)
});
-Plotly.register({moduleType:"locale",name:"de",dictionary:{Autoscale:"Automatische Skalierung","Box Select":"Rechteckauswahl","Click to enter Colorscale title":"Klicken, um den Farbskalatitel einzugeben","Click to enter Component A title":"Klicken, um den Titel der Komponente A einzugeben","Click to enter Component B title":"Klicken, um den Titel der Komponente B einzugeben","Click to enter Component C title":"Klicken, um den Titel der Komponente C einzugeben","Click to enter Plot title":"Klicken, um den Titel des Graphen einzugeben","Click to enter X axis title":"Klicken, um den Titel der X-Achse einzugeben","Click to enter Y axis title":"Klicken, um den Titel der Y-Achse einzugeben","Compare data on hover":"\xdcber die Daten fahren, um sie zu vergleichen","Double-click on legend to isolate one trace":"Daten isolieren durch Doppelklick in der Legende","Double-click to zoom back out":"Herauszoomen durch Doppelklick","Download plot as a png":"Graphen als PNG herunterladen","Download plot":"Graphen herunterladen","Edit in Chart Studio":"Im Chart Studio bearbeiten","IE only supports svg. Changing format to svg.":"IE unterst\xfctzt nur SVG-Dateien. Format wird zu SVG gewechselt.","Lasso Select":"Lassoauswahl","Orbital rotation":"Orbitalrotation",Pan:"Verschieben","Produced with Plotly":"Erstellt mit Plotly",Reset:"Zur\xfccksetzen","Reset axes":"Achsen zur\xfccksetzen","Reset camera to default":"Kamera auf Standard zur\xfccksetzen","Reset camera to last save":"Kamera auf letzte Speicherung zur\xfccksetzen","Reset view":"Ansicht zur\xfccksetzen","Reset views":"Ansichten zur\xfccksetzen","Show closest data on hover":"Zeige n\xe4heste Daten beim \xdcberfahren","Snapshot succeeded":"Snapshot erfolgreich","Sorry, there was a problem downloading your snapshot!":"Es gab ein Problem beim Herunterladen des Snapshots","Taking snapshot - this may take a few seconds":"Erstelle einen Snapshot - dies kann einige Sekunden dauern",Zoom:"Zoom","Zoom in":"Hineinzoomen","Zoom out":"Herauszoomen","close:":"Schluss:",trace:"Datenspur","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"Quelle:","target:":"Ziel:","lower fence:":"Untere Schranke:","upper fence:":"Obere Schranke:","max:":"Max.:","mean \xb1 \u03c3:":"Mittelwert \xb1 \u03c3:","mean:":"Mittelwert:","median:":"Median:","min:":"Min.:","Turntable rotation":"Drehscheibenorbit","Toggle Spike Lines":"Bezugslinien an-/abschalten","open:":"Er\xf6ffnung:","high:":"H\xf6chstkurs:","low:":"Tiefstkurs:","Toggle show closest data on hover":"Anzeige der n\xe4hesten Daten an-/abschalten","incoming flow count:":"Anzahl eingehender Verbindungen:","outgoing flow count:":"Anzahl ausgehender Verbindungen:","kde:":"Dichte:"},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y",decimal:",",thousands:"."}});
-Plotly.register({moduleType:"locale",name:"es",dictionary:{Autoscale:"Autoescalar","Box Select":"Seleccionar Caja","Click to enter Colorscale title":"Introducir el t\xedtulo de la Escala de Color","Click to enter Component A title":"Introducir el t\xedtulo del Componente A","Click to enter Component B title":"Introducir el t\xedtulo del Componente B","Click to enter Component C title":"Introducir el t\xedtulo del Componente C","Click to enter Plot title":"Introducir el t\xedtulo de la Gr\xe1fica","Click to enter X axis title":"Introducir el t\xedtulo del eje X","Click to enter Y axis title":"Introducir el t\xedtulo del eje Y","Click to enter radial axis title":"Introducir el t\xedtulo del eje radial","Compare data on hover":"Comparar datos al pasar por encima","Double-click on legend to isolate one trace":"Haga doble-clic en la leyenda para aislar una traza","Double-click to zoom back out":"Haga doble-clic para restaurar la escala","Download plot as a png":"Descargar gr\xe1fica como png","Download plot":"Descargar gr\xe1fica","Edit in Chart Studio":"Editar en Chart Studio","IE only supports svg. Changing format to svg.":"IE solo soporta svg. Cambiando formato a svg.","Lasso Select":"Seleccionar con lazo","Orbital rotation":"Rotaci\xf3n esf\xe9rica",Pan:"Modo Panor\xe1mica","Produced with Plotly":"Hecho con Plotly",Reset:"Reiniciar","Reset axes":"Reiniciar ejes","Reset camera to default":"Restaurar c\xe1mara predeterminada","Reset camera to last save":"Restaurar anterior c\xe1mara","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Mostrar el dato m\xe1s cercano al pasar por encima","Snapshot succeeded":"La captura de la instant\xe1nea finaliz\xf3 correctamente","Sorry, there was a problem downloading your snapshot!":"\xa1La descarga de la instant\xe1nea fall\xf3!","Taking snapshot - this may take a few seconds":"Capturando una instant\xe1nea - podr\xeda tardar unos segundos","Toggle Spike Lines":"Mostrar/Ocultar Gu\xedas","Toggle show closest data on hover":"Activar/Desactivar mostrar el dato m\xe1s cercano al pasar por encima","Turntable rotation":"Rotaci\xf3n plana",Zoom:"Modo Ampliar/Reducir","Zoom in":"Ampliar","Zoom out":"Reducir","close:":"cierre:","high:":"alza:","incoming flow count:":"flujo de entrada:","kde:":"edp:","lat:":"lat:","lon:":"lon:","low:":"baja:","lower fence:":"l\xedmite inferior:","max:":"m\xe1x:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"m\xedn:","new text":"nuevo texto","open:":"apertura:","outgoing flow count:":"flujo de salida:","q1:":"q1:","q3:":"q3:","source:":"fuente:","target:":"destino:",trace:"traza","upper fence:":"l\xedmite superior:"},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:" "}});
-Plotly.register({moduleType:"locale",name:"fr",dictionary:{Autoscale:"\xc9chelle automatique","Box Select":"S\xe9lection rectangulaire","Click to enter Colorscale title":"Ajouter un titre \xe0 l'\xe9chelle de couleurs","Click to enter Component A title":"Ajouter un titre \xe0 la composante A","Click to enter Component B title":"Ajouter un titre \xe0 la composante B","Click to enter Component C title":"Ajouter un titre \xe0 la composante C","Click to enter Plot title":"Ajouter un titre au graphique","Click to enter X axis title":"Ajouter un titre \xe0 l'axe des x","Click to enter Y axis title":"Ajouter un titre \xe0 l'axe des y","Click to enter radial axis title":"Ajouter un titre \xe0 l'axe radial","Compare data on hover":"Comparaison entre donn\xe9es en survol","Double-click on legend to isolate one trace":"Double-cliquer sur la l\xe9gende pour isoler une s\xe9rie","Double-click to zoom back out":"Double-cliquer pour d\xe9zoomer","Download plot as a png":"T\xe9l\xe9charger le graphique en fichier PNG","Download plot":"T\xe9l\xe9charger le graphique","Edit in Chart Studio":"\xc9diter le graphique sur plot.ly","IE only supports svg. Changing format to svg.":"IE ne permet que les conversions en SVG. Conversion en SVG en cours.","Lasso Select":"S\xe9lection lasso","Orbital rotation":"Rotation orbitale",Pan:"Translation","Produced with Plotly":"G\xe9n\xe9r\xe9 avec Plotly",Reset:"R\xe9initialiser","Reset axes":"R\xe9initialiser les axes","Reset camera to default":"R\xe9gler la cam\xe9ra \xe0 sa valeur d\xe9faut","Reset camera to last save":"R\xe9gler la cam\xe9ra \xe0 sa valeur sauvegard\xe9e","Reset view":"R\xe9initialiser","Reset views":"R\xe9initialiser","Show closest data on hover":"Donn\xe9es les plus proches en survol","Snapshot succeeded":"Conversion r\xe9ussie","Sorry, there was a problem downloading your snapshot!":"D\xe9sol\xe9, un probl\xe8me est survenu lors du t\xe9l\xe9chargement de votre graphique","Taking snapshot - this may take a few seconds":"Conversion en cours, ceci peut prendre quelques secondes",Zoom:"Zoom","Zoom in":"Zoom int\xe9rieur","Zoom out":"Zoom ext\xe9rieur","close:":"fermeture :",trace:"s\xe9rie","lat:":"lat. :","lon:":"lon. :","q1:":"q1 :","q3:":"q3 :","source:":"source :","target:":"embouchure :","lower fence:":"cl\xf4ture sup\xe9rieure :","upper fence:":"cl\xf4ture inf\xe9rieure :","max:":"max. :","mean \xb1 \u03c3:":"moyenne \xb1 \u03c3 :","mean:":"moyenne :","median:":"m\xe9diane :","min:":"min. :","new text":"nouveau texte","Turntable rotation":"Rotation planaire","Toggle Spike Lines":"Activer/d\xe9sactiver les pics","open:":"ouverture :","high:":"haut :","low:":"bas :","Toggle show closest data on hover":"Activer/d\xe9sactiver le survol","incoming flow count:":"flux entrant :","outgoing flow count:":"flux sortant :","kde:":"est. par noyau :"},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d/%m/%Y",decimal:",",thousands:" ",year:"%Y",month:"%b %Y",dayMonth:"%-d %b",dayMonthYear:"%-d %b %Y"}});
-Plotly.register({moduleType:"locale",name:"sv",dictionary:{Autoscale:"Autoskala","Box Select":"V\xe4lj rektangel","Click to enter Colorscale title":"Klicka f\xf6r att ange titel p\xe5 f\xe4rgskala","Click to enter Component A title":"Klicka f\xf6r att ange titel p\xe5 komponent A","Click to enter Component B title":"Klicka f\xf6r att ange titel p\xe5 komponent B","Click to enter Component C title":"Klicka f\xf6r att ange titel p\xe5 komponent C","Click to enter Plot title":"Klicka f\xf6r att ange titel p\xe5 diagram","Click to enter X axis title":"Klicka f\xf6r att ange titel p\xe5 x-axel","Click to enter Y axis title":"Klicka f\xf6r att ange titel p\xe5 y-axel","Click to enter radial axis title":"Klicka f\xf6r att ange titel p\xe5 radiell axel","Compare data on hover":"J\xe4mf\xf6r data n\xe4r muspekaren h\xe5lls \xf6ver","Double-click on legend to isolate one trace":"Dubbelklicka p\xe5 f\xf6rklaringen f\xf6r att visa endast en serie","Double-click to zoom back out":"Dubbelklicka f\xf6r att zooma ut igen","Download plot":"Ladda ner diagram","Download plot as a png":"Ladda ner diagram som png","Edit in Chart Studio":"Editera i Chart Studio","IE only supports svg. Changing format to svg.":"IE st\xf6der enbart svg. Byter format till svg.","Lasso Select":"V\xe4lj lasso","Orbital rotation":"Orbital rotation",Pan:"Panorera","Produced with Plotly":"Skapad med Plotly",Reset:"\xc5terst\xe4ll","Reset axes":"\xc5terst\xe4ll axlar","Reset camera to default":"\xc5terst\xe4ll kamera till standard","Reset camera to last save":"\xc5terst\xe4ll kamera till senast sparad","Reset view":"\xc5terst\xe4ll vy","Reset views":"\xc5terst\xe4ll vyer","Show closest data on hover":"Visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Snapshot succeeded":"Bild skapad","Sorry, there was a problem downloading your snapshot!":"Tyv\xe4rr gick n\xe5got fel vid nedladdning av bild","Taking snapshot - this may take a few seconds":"Skapar bild - detta kan ta n\xe5gra sekunder","Toggle Spike Lines":"Aktivera/Inaktivera topplinjer","Toggle show closest data on hover":"Aktivera/Inaktivera visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Turntable rotation":"Platt rotation",Zoom:"Zooma","Zoom in":"Zooma in","Zoom out":"Zooma ut","close:":"st\xe4ngning:","concentration:":"koncentration:","high:":"h\xf6g:","incoming flow count:":"inkommande fl\xf6de summering:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"l\xe5g:","lower fence:":"undre gr\xe4ns:","max:":"max:","mean \xb1 \u03c3:":"medel \xb1 \u03c3:","mean:":"medel:","median:":"median:","min:":"min:","new text":"ny text","open:":"\xf6ppning:","outgoing flow count:":"utg\xe5ende fl\xf6de summering:","q1:":"q1:","q3:":"q3:","source:":"k\xe4lla:","target:":"m\xe5l:",trace:"serie","upper fence:":"\xf6vre gr\xe4ns:"},format:{days:["S\xf6ndag","M\xe5ndag","Tisdag","Onsdag","Torsdag","Fredag","L\xf6rdag"],shortDays:["S\xf6n","M\xe5n","Tis","Ons","Tor","Fre","L\xf6r"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%Y-%m-%d"}});
-Plotly.register({moduleType:"locale",name:"tr",dictionary:{},format:{days:["Pazar","Pazartesi","Sal\u0131","\xc7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],shortDays:["Pz","Pt","Sa","\xc7a","Pe","Cu","Ct"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\xfcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],date:"%d.%m.%Y"}});
\ No newline at end of file
+var locale={moduleType:"locale",name:"de",dictionary:{Autoscale:"Automatische Skalierung","Box Select":"Rechteckauswahl","Click to enter Colorscale title":"Klicken, um den Farbskalatitel einzugeben","Click to enter Component A title":"Klicken, um den Titel der Komponente A einzugeben","Click to enter Component B title":"Klicken, um den Titel der Komponente B einzugeben","Click to enter Component C title":"Klicken, um den Titel der Komponente C einzugeben","Click to enter Plot title":"Klicken, um den Titel des Graphen einzugeben","Click to enter X axis title":"Klicken, um den Titel der X-Achse einzugeben","Click to enter Y axis title":"Klicken, um den Titel der Y-Achse einzugeben","Compare data on hover":"\xdcber die Daten fahren, um sie zu vergleichen","Double-click on legend to isolate one trace":"Daten isolieren durch Doppelklick in der Legende","Double-click to zoom back out":"Herauszoomen durch Doppelklick","Download plot as a png":"Graphen als PNG herunterladen","Download plot":"Graphen herunterladen","Edit in Chart Studio":"Im Chart Studio bearbeiten","IE only supports svg. Changing format to svg.":"IE unterst\xfctzt nur SVG-Dateien. Format wird zu SVG gewechselt.","Lasso Select":"Lassoauswahl","Orbital rotation":"Orbitalrotation",Pan:"Verschieben","Produced with Plotly":"Erstellt mit Plotly",Reset:"Zur\xfccksetzen","Reset axes":"Achsen zur\xfccksetzen","Reset camera to default":"Kamera auf Standard zur\xfccksetzen","Reset camera to last save":"Kamera auf letzte Speicherung zur\xfccksetzen","Reset view":"Ansicht zur\xfccksetzen","Reset views":"Ansichten zur\xfccksetzen","Show closest data on hover":"Zeige n\xe4heste Daten beim \xdcberfahren","Snapshot succeeded":"Snapshot erfolgreich","Sorry, there was a problem downloading your snapshot!":"Es gab ein Problem beim Herunterladen des Snapshots","Taking snapshot - this may take a few seconds":"Erstelle einen Snapshot - dies kann einige Sekunden dauern",Zoom:"Zoom","Zoom in":"Hineinzoomen","Zoom out":"Herauszoomen","close:":"Schluss:",trace:"Datenspur","lat:":"Lat.:","lon:":"Lon.:","q1:":"q1:","q3:":"q3:","source:":"Quelle:","target:":"Ziel:","lower fence:":"Untere Schranke:","upper fence:":"Obere Schranke:","max:":"Max.:","mean \xb1 \u03c3:":"Mittelwert \xb1 \u03c3:","mean:":"Mittelwert:","median:":"Median:","min:":"Min.:","Turntable rotation":"Drehscheibenorbit","Toggle Spike Lines":"Bezugslinien an-/abschalten","open:":"Er\xf6ffnung:","high:":"H\xf6chstkurs:","low:":"Tiefstkurs:","Toggle show closest data on hover":"Anzeige der n\xe4hesten Daten an-/abschalten","incoming flow count:":"Anzahl eingehender Verbindungen:","outgoing flow count:":"Anzahl ausgehender Verbindungen:","kde:":"Dichte:"},format:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\xe4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\xe4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],date:"%d.%m.%Y",decimal:",",thousands:"."}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"es",dictionary:{Autoscale:"Autoescalar","Box Select":"Seleccionar Caja","Click to enter Colorscale title":"Introducir el t\xedtulo de la Escala de Color","Click to enter Component A title":"Introducir el t\xedtulo del Componente A","Click to enter Component B title":"Introducir el t\xedtulo del Componente B","Click to enter Component C title":"Introducir el t\xedtulo del Componente C","Click to enter Plot title":"Introducir el t\xedtulo de la Gr\xe1fica","Click to enter X axis title":"Introducir el t\xedtulo del eje X","Click to enter Y axis title":"Introducir el t\xedtulo del eje Y","Click to enter radial axis title":"Introducir el t\xedtulo del eje radial","Compare data on hover":"Comparar datos al pasar por encima","Double-click on legend to isolate one trace":"Haga doble-clic en la leyenda para aislar una traza","Double-click to zoom back out":"Haga doble-clic para restaurar la escala","Download plot as a png":"Descargar gr\xe1fica como png","Download plot":"Descargar gr\xe1fica","Edit in Chart Studio":"Editar en Chart Studio","IE only supports svg. Changing format to svg.":"IE solo soporta svg. Cambiando formato a svg.","Lasso Select":"Seleccionar con lazo","Orbital rotation":"Rotaci\xf3n esf\xe9rica",Pan:"Modo Panor\xe1mica","Produced with Plotly":"Hecho con Plotly",Reset:"Reiniciar","Reset axes":"Reiniciar ejes","Reset camera to default":"Restaurar c\xe1mara predeterminada","Reset camera to last save":"Restaurar anterior c\xe1mara","Reset view":"Restaurar vista","Reset views":"Restaurar vistas","Show closest data on hover":"Mostrar el dato m\xe1s cercano al pasar por encima","Snapshot succeeded":"La captura de la instant\xe1nea finaliz\xf3 correctamente","Sorry, there was a problem downloading your snapshot!":"\xa1La descarga de la instant\xe1nea fall\xf3!","Taking snapshot - this may take a few seconds":"Capturando una instant\xe1nea - podr\xeda tardar unos segundos","Toggle Spike Lines":"Mostrar/Ocultar Gu\xedas","Toggle show closest data on hover":"Activar/Desactivar mostrar el dato m\xe1s cercano al pasar por encima","Turntable rotation":"Rotaci\xf3n plana",Zoom:"Modo Ampliar/Reducir","Zoom in":"Ampliar","Zoom out":"Reducir","close:":"cierre:","high:":"alza:","incoming flow count:":"flujo de entrada:","kde:":"edp:","lat:":"lat:","lon:":"lon:","low:":"baja:","lower fence:":"l\xedmite inferior:","max:":"m\xe1x:","mean \xb1 \u03c3:":"media \xb1 \u03c3:","mean:":"media:","median:":"mediana:","min:":"m\xedn:","new text":"nuevo texto","open:":"apertura:","outgoing flow count:":"flujo de salida:","q1:":"q1:","q3:":"q3:","source:":"fuente:","target:":"destino:",trace:"traza","upper fence:":"l\xedmite superior:"},format:{days:["Domingo","Lunes","Martes","Mi\xe9rcoles","Jueves","Viernes","S\xe1bado"],shortDays:["Dom","Lun","Mar","Mi\xe9","Jue","Vie","S\xe1b"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],shortMonths:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],date:"%d/%m/%Y",decimal:",",thousands:" "}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"fr",dictionary:{Autoscale:"\xc9chelle automatique","Box Select":"S\xe9lection rectangulaire","Click to enter Colorscale title":"Ajouter un titre \xe0 l'\xe9chelle de couleurs","Click to enter Component A title":"Ajouter un titre \xe0 la composante A","Click to enter Component B title":"Ajouter un titre \xe0 la composante B","Click to enter Component C title":"Ajouter un titre \xe0 la composante C","Click to enter Plot title":"Ajouter un titre au graphique","Click to enter X axis title":"Ajouter un titre \xe0 l'axe des x","Click to enter Y axis title":"Ajouter un titre \xe0 l'axe des y","Click to enter radial axis title":"Ajouter un titre \xe0 l'axe radial","Compare data on hover":"Comparaison entre donn\xe9es en survol","Double-click on legend to isolate one trace":"Double-cliquer sur la l\xe9gende pour isoler une s\xe9rie","Double-click to zoom back out":"Double-cliquer pour d\xe9zoomer","Download plot as a png":"T\xe9l\xe9charger le graphique en fichier PNG","Download plot":"T\xe9l\xe9charger le graphique","Edit in Chart Studio":"\xc9diter le graphique sur plot.ly","IE only supports svg. Changing format to svg.":"IE ne permet que les conversions en SVG. Conversion en SVG en cours.","Lasso Select":"S\xe9lection lasso","Orbital rotation":"Rotation orbitale",Pan:"Translation","Produced with Plotly":"G\xe9n\xe9r\xe9 avec Plotly",Reset:"R\xe9initialiser","Reset axes":"R\xe9initialiser les axes","Reset camera to default":"R\xe9gler la cam\xe9ra \xe0 sa valeur d\xe9faut","Reset camera to last save":"R\xe9gler la cam\xe9ra \xe0 sa valeur sauvegard\xe9e","Reset view":"R\xe9initialiser","Reset views":"R\xe9initialiser","Show closest data on hover":"Donn\xe9es les plus proches en survol","Snapshot succeeded":"Conversion r\xe9ussie","Sorry, there was a problem downloading your snapshot!":"D\xe9sol\xe9, un probl\xe8me est survenu lors du t\xe9l\xe9chargement de votre graphique","Taking snapshot - this may take a few seconds":"Conversion en cours, ceci peut prendre quelques secondes",Zoom:"Zoom","Zoom in":"Zoom int\xe9rieur","Zoom out":"Zoom ext\xe9rieur","close:":"fermeture :",trace:"s\xe9rie","lat:":"lat. :","lon:":"lon. :","q1:":"q1 :","q3:":"q3 :","source:":"source :","target:":"embouchure :","lower fence:":"cl\xf4ture sup\xe9rieure :","upper fence:":"cl\xf4ture inf\xe9rieure :","max:":"max. :","mean \xb1 \u03c3:":"moyenne \xb1 \u03c3 :","mean:":"moyenne :","median:":"m\xe9diane :","min:":"min. :","new text":"nouveau texte","Turntable rotation":"Rotation planaire","Toggle Spike Lines":"Activer/d\xe9sactiver les pics","open:":"ouverture :","high:":"haut :","low:":"bas :","Toggle show closest data on hover":"Activer/d\xe9sactiver le survol","incoming flow count:":"flux entrant :","outgoing flow count:":"flux sortant :","kde:":"est. par noyau :"},format:{days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],shortDays:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],months:["Janvier","F\xe9vrier","Mars","Avril","Mai","Juin","Juillet","Ao\xfbt","Septembre","Octobre","Novembre","D\xe9cembre"],shortMonths:["Jan","F\xe9v","Mar","Avr","Mai","Jun","Jul","Ao\xfb","Sep","Oct","Nov","D\xe9c"],date:"%d/%m/%Y",decimal:",",thousands:" ",year:"%Y",month:"%b %Y",dayMonth:"%-d %b",dayMonthYear:"%-d %b %Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"sv",dictionary:{Autoscale:"Autoskala","Box Select":"V\xe4lj rektangel","Click to enter Colorscale title":"Klicka f\xf6r att ange titel p\xe5 f\xe4rgskala","Click to enter Component A title":"Klicka f\xf6r att ange titel p\xe5 komponent A","Click to enter Component B title":"Klicka f\xf6r att ange titel p\xe5 komponent B","Click to enter Component C title":"Klicka f\xf6r att ange titel p\xe5 komponent C","Click to enter Plot title":"Klicka f\xf6r att ange titel p\xe5 diagram","Click to enter X axis title":"Klicka f\xf6r att ange titel p\xe5 x-axel","Click to enter Y axis title":"Klicka f\xf6r att ange titel p\xe5 y-axel","Click to enter radial axis title":"Klicka f\xf6r att ange titel p\xe5 radiell axel","Compare data on hover":"J\xe4mf\xf6r data n\xe4r muspekaren h\xe5lls \xf6ver","Double-click on legend to isolate one trace":"Dubbelklicka p\xe5 f\xf6rklaringen f\xf6r att visa endast en serie","Double-click to zoom back out":"Dubbelklicka f\xf6r att zooma ut igen","Download plot":"Ladda ner diagram","Download plot as a png":"Ladda ner diagram som png","Edit in Chart Studio":"Editera i Chart Studio","IE only supports svg. Changing format to svg.":"IE st\xf6der enbart svg. Byter format till svg.","Lasso Select":"V\xe4lj lasso","Orbital rotation":"Orbital rotation",Pan:"Panorera","Produced with Plotly":"Skapad med Plotly",Reset:"\xc5terst\xe4ll","Reset axes":"\xc5terst\xe4ll axlar","Reset camera to default":"\xc5terst\xe4ll kamera till standard","Reset camera to last save":"\xc5terst\xe4ll kamera till senast sparad","Reset view":"\xc5terst\xe4ll vy","Reset views":"\xc5terst\xe4ll vyer","Show closest data on hover":"Visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Snapshot succeeded":"Bild skapad","Sorry, there was a problem downloading your snapshot!":"Tyv\xe4rr gick n\xe5got fel vid nedladdning av bild","Taking snapshot - this may take a few seconds":"Skapar bild - detta kan ta n\xe5gra sekunder","Toggle Spike Lines":"Aktivera/Inaktivera topplinjer","Toggle show closest data on hover":"Aktivera/Inaktivera visa n\xe4rmaste v\xe4rde n\xe4r muspekaren h\xe5lls \xf6ver","Turntable rotation":"Platt rotation",Zoom:"Zooma","Zoom in":"Zooma in","Zoom out":"Zooma ut","close:":"st\xe4ngning:","concentration:":"koncentration:","high:":"h\xf6g:","incoming flow count:":"inkommande fl\xf6de summering:","kde:":"kde:","lat:":"lat:","lon:":"lon:","low:":"l\xe5g:","lower fence:":"undre gr\xe4ns:","max:":"max:","mean \xb1 \u03c3:":"medel \xb1 \u03c3:","mean:":"medel:","median:":"median:","min:":"min:","new text":"ny text","open:":"\xf6ppning:","outgoing flow count:":"utg\xe5ende fl\xf6de summering:","q1:":"q1:","q3:":"q3:","source:":"k\xe4lla:","target:":"m\xe5l:",trace:"serie","upper fence:":"\xf6vre gr\xe4ns:"},format:{days:["S\xf6ndag","M\xe5ndag","Tisdag","Onsdag","Torsdag","Fredag","L\xf6rdag"],shortDays:["S\xf6n","M\xe5n","Tis","Ons","Tor","Fre","L\xf6r"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],shortMonths:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],date:"%Y-%m-%d"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
+var locale={moduleType:"locale",name:"tr",dictionary:{},format:{days:["Pazar","Pazartesi","Sal\u0131","\xc7ar\u015famba","Per\u015fembe","Cuma","Cumartesi"],shortDays:["Pz","Pt","Sa","\xc7a","Pe","Cu","Ct"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\xfcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],date:"%d.%m.%Y"}};"undefined"==typeof Plotly?(window.PlotlyLocales=window.PlotlyLocales||[],window.PlotlyLocales.push(locale)):Plotly.register(locale);
\ No newline at end of file
diff --git a/static/babybuddy/js/graph.js.gz b/static/babybuddy/js/graph.js.gz
index c12d6bce..95f0e5d1 100644
Binary files a/static/babybuddy/js/graph.js.gz and b/static/babybuddy/js/graph.js.gz differ
diff --git a/static/babybuddy/js/vendor.5eb3a183df96.js b/static/babybuddy/js/vendor.2e6cbbdc5f80.js
similarity index 99%
rename from static/babybuddy/js/vendor.5eb3a183df96.js
rename to static/babybuddy/js/vendor.2e6cbbdc5f80.js
index b56bbb8b..7779ff86 100644
--- a/static/babybuddy/js/vendor.5eb3a183df96.js
+++ b/static/babybuddy/js/vendor.2e6cbbdc5f80.js
@@ -10599,7 +10599,7 @@ return jQuery;
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.16.0
+ * @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
@@ -10951,7 +10951,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
+ return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
}
function getSize(axis, body, html, computedStyle) {
@@ -11106,8 +11106,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent);
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
+ var borderTopWidth = parseFloat(styles.borderTopWidth);
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) {
@@ -11128,8 +11128,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) {
- var marginTop = parseFloat(styles.marginTop, 10);
- var marginLeft = parseFloat(styles.marginLeft, 10);
+ var marginTop = parseFloat(styles.marginTop);
+ var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop;
@@ -12068,8 +12068,8 @@ function arrow(data, options) {
// Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available
var css = getStyleComputedProperty(data.instance.popper);
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
// prevent arrowElement from being placed not contiguously to its popper
diff --git a/static/babybuddy/js/vendor.5eb3a183df96.js.gz b/static/babybuddy/js/vendor.2e6cbbdc5f80.js.gz
similarity index 50%
rename from static/babybuddy/js/vendor.5eb3a183df96.js.gz
rename to static/babybuddy/js/vendor.2e6cbbdc5f80.js.gz
index dba63db0..e4174eed 100644
Binary files a/static/babybuddy/js/vendor.5eb3a183df96.js.gz and b/static/babybuddy/js/vendor.2e6cbbdc5f80.js.gz differ
diff --git a/static/babybuddy/js/vendor.js b/static/babybuddy/js/vendor.js
index b56bbb8b..7779ff86 100644
--- a/static/babybuddy/js/vendor.js
+++ b/static/babybuddy/js/vendor.js
@@ -10599,7 +10599,7 @@ return jQuery;
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.16.0
+ * @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
@@ -10951,7 +10951,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
+ return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
}
function getSize(axis, body, html, computedStyle) {
@@ -11106,8 +11106,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent);
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
+ var borderTopWidth = parseFloat(styles.borderTopWidth);
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) {
@@ -11128,8 +11128,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) {
- var marginTop = parseFloat(styles.marginTop, 10);
- var marginLeft = parseFloat(styles.marginLeft, 10);
+ var marginTop = parseFloat(styles.marginTop);
+ var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop;
@@ -12068,8 +12068,8 @@ function arrow(data, options) {
// Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available
var css = getStyleComputedProperty(data.instance.popper);
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
// prevent arrowElement from being placed not contiguously to its popper
diff --git a/static/babybuddy/js/vendor.js.gz b/static/babybuddy/js/vendor.js.gz
index dba63db0..e4174eed 100644
Binary files a/static/babybuddy/js/vendor.js.gz and b/static/babybuddy/js/vendor.js.gz differ
diff --git a/static/staticfiles.json b/static/staticfiles.json
index df15d6e4..fa6ec34f 100644
--- a/static/staticfiles.json
+++ b/static/staticfiles.json
@@ -1 +1 @@
-{"paths": {"admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.edd7167cdcb6.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.aed9bad15375.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.82358a9b6840.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.9c2742bfc55a.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.30bfb7fc3b63.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.50caaee90a0d.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.8c337905305d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.a10ee9248c07.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.630e81c65a7b.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.c9f16b9e0f93.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.962f048c22f2.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.4d933538516a.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.01c46bf8c8b3.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.455adefc2984.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.e05ad5df6258.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.674c0d3da68d.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.725800c5e8fc.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.92f1d29581b7.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.096f4410173b.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.bde34fa3f064.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.0a60056920fc.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.dc697d893beb.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.5042dc8eca8e.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.6129248732b9.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.e2766036e78a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.de1a40c46c09.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.68583e607f1e.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.6c45eaf416fe.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.7dcfd5775174.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.c4a5cbd6a23f.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.e727260f7094.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.8ea0684cc301.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.b013804dae9c.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.116365a2de65.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.2c390a6bf650.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.4c655f53f4e1.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.abf2d34b255a.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.32b0b17ba1a9.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.a5e262c643f2.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.debce43cfca2.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.2858f3167855.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.f81e979ec25f.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.442146837f55.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.f61bf00bc3fe.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.34019208b835.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.6bbc262044b3.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.322604a430a5.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.8b21ebdb01ee.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.110a0fa84968.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.9edad4c24fd0.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.b33721dc9b8a.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.ade6aba46542.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.1738b003dd26.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.e535138ca26b.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.1804c238d269.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.60f20182ff18.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.ea7e3b822b06.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5b4ec8cb5b23.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.a8a13c9122d7.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.c95393b8ca4d.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.1865b1cf5085.js", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.d379d5235584.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.68e8d8f673b7.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.11c05eb286ed.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.220afd743d9e.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.af22a7e2bfec.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.fd9fe49d3d91.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.3208b6cc4466.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.a9c6d180860b.js", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.ea0683bea064.js", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "babybuddy/logo/icon2.png": "babybuddy/logo/icon2.be48fd16c53f.png", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.96e4491f2209.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.6377611bf399.png", "babybuddy/js/app.js": "babybuddy/js/app.f14bdf07def3.js", "babybuddy/js/graph.js": "babybuddy/js/graph.8129e325fb11.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.5eb3a183df96.js", "babybuddy/css/vendor.css": "babybuddy/css/vendor.be1a1448dd86.css", "babybuddy/css/app.css": "babybuddy/css/app.b562c9b5953b.css", "babybuddy/fonts/fontawesome-webfont.eot": "babybuddy/fonts/fontawesome-webfont.674f50d287a8.eot", "babybuddy/fonts/fontawesome-webfont.ttf": "babybuddy/fonts/fontawesome-webfont.b06871f281fe.ttf", "babybuddy/fonts/fontawesome-webfont.svg": "babybuddy/fonts/fontawesome-webfont.912ec66d7572.svg", "babybuddy/fonts/fontawesome-webfont.woff2": "babybuddy/fonts/fontawesome-webfont.af7ae505a9ee.woff2", "babybuddy/fonts/FontAwesome.otf": "babybuddy/fonts/FontAwesome.0d2717cd5d85.otf", "babybuddy/fonts/fontawesome-webfont.woff": "babybuddy/fonts/fontawesome-webfont.fee66e712a8a.woff", "babybuddy/root/site.webmanifest.json": "babybuddy/root/site.webmanifest.61dac00bb04b.json", "babybuddy/root/favicon-32x32.png": "babybuddy/root/favicon-32x32.076f1340f1cf.png", "babybuddy/root/favicon.ico": "babybuddy/root/favicon.1b19cfd81791.ico", "babybuddy/root/android-chrome-512x512.png": "babybuddy/root/android-chrome-512x512.89ee40b783cd.png", "babybuddy/root/favicon-16x16.png": "babybuddy/root/favicon-16x16.12c501486484.png", "babybuddy/root/mstile-150x150.png": "babybuddy/root/mstile-150x150.f231c8ff6157.png", "babybuddy/root/apple-touch-icon.png": "babybuddy/root/apple-touch-icon.33416748f239.png", "babybuddy/root/safari-pinned-tab.svg": "babybuddy/root/safari-pinned-tab.3de51db2baf2.svg", "babybuddy/root/android-chrome-192x192.png": "babybuddy/root/android-chrome-192x192.484bd0e8cb66.png", "babybuddy/root/browserconfig.xml": "babybuddy/root/browserconfig.5858221e0a38.xml", "babybuddy/root/android-chrome-384x384.png": "babybuddy/root/android-chrome-384x384.7849615a1e26.png", "rest_framework/js/jquery-3.4.1.min.js": "rest_framework/js/jquery-3.4.1.min.220afd743d9e.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/default.css": "rest_framework/css/default.8d5591a6aabc.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "admin/js/prepopulate.min.js": "admin/js/prepopulate.min.85fd5e0fb706.js", "admin/js/calendar.js": "admin/js/calendar.aae57adab5f6.js", "admin/js/inlines.min.js": "admin/js/inlines.min.6d6c2416646e.js", "admin/js/SelectBox.js": "admin/js/SelectBox.99d0cfd2e80c.js", "admin/js/collapse.min.js": "admin/js/collapse.min.44dfdb427845.js", "admin/js/urlify.js": "admin/js/urlify.67bae52223e0.js", "admin/js/actions.min.js": "admin/js/actions.min.5fa8cb0403f1.js", "admin/js/popup_response.js": "admin/js/popup_response.6ce3197f8fc8.js", "admin/js/autocomplete.js": "admin/js/autocomplete.cfd2c4dc8981.js", "admin/js/collapse.js": "admin/js/collapse.c5b851e91226.js", "admin/js/change_form.js": "admin/js/change_form.9e85003a1a38.js", "admin/js/jquery.init.js": "admin/js/jquery.init.95b62fa19378.js", "admin/js/actions.js": "admin/js/actions.8d83e3af0fbd.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.0d3b53c37074.js", "admin/js/inlines.js": "admin/js/inlines.12d1af430335.js", "admin/js/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.a2c3149a1c5e.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.c26733924aea.js", "admin/js/core.js": "admin/js/core.ea39b3bd34c3.js", "admin/css/changelists.css": "admin/css/changelists.cfe316f81936.css", "admin/css/login.css": "admin/css/login.252ffabd6548.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/responsive.css": "admin/css/responsive.755ce0b07393.css", "admin/css/autocomplete.css": "admin/css/autocomplete.781713f30664.css", "admin/css/base.css": "admin/css/base.ae33e6383baa.css", "admin/css/widgets.css": "admin/css/widgets.8874c301e7bc.css", "admin/css/forms.css": "admin/css/forms.9f1ffc442e9a.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/rtl.css": "admin/css/rtl.30f903442dc5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.51c7445ceeff.css", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg"}, "version": "1.0"}
\ No newline at end of file
+{"paths": {"admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.edd7167cdcb6.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.aed9bad15375.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.82358a9b6840.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.9c2742bfc55a.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.30bfb7fc3b63.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.50caaee90a0d.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.8c337905305d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.a10ee9248c07.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.630e81c65a7b.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.c9f16b9e0f93.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.962f048c22f2.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.4d933538516a.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.01c46bf8c8b3.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.455adefc2984.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.e05ad5df6258.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.674c0d3da68d.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.725800c5e8fc.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.92f1d29581b7.js", "admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.096f4410173b.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.bde34fa3f064.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.0a60056920fc.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.dc697d893beb.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.5042dc8eca8e.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.6129248732b9.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.e2766036e78a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.de1a40c46c09.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.68583e607f1e.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.6c45eaf416fe.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.7dcfd5775174.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.c4a5cbd6a23f.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.e727260f7094.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.8ea0684cc301.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.b013804dae9c.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.116365a2de65.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.2c390a6bf650.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.4c655f53f4e1.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.abf2d34b255a.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.32b0b17ba1a9.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.a5e262c643f2.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.debce43cfca2.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.2858f3167855.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.f81e979ec25f.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.442146837f55.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.f61bf00bc3fe.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.34019208b835.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.6bbc262044b3.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.322604a430a5.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.8b21ebdb01ee.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.110a0fa84968.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.9edad4c24fd0.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.b33721dc9b8a.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.ade6aba46542.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.1738b003dd26.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.e535138ca26b.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.1804c238d269.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.60f20182ff18.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.ea7e3b822b06.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.5b4ec8cb5b23.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.a8a13c9122d7.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.d64cecf4f157.txt", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.c95393b8ca4d.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.1865b1cf5085.js", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.d379d5235584.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.68e8d8f673b7.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.11c05eb286ed.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.220afd743d9e.js", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.af22a7e2bfec.css", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.fd9fe49d3d91.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.3208b6cc4466.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.a9c6d180860b.js", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.ea0683bea064.js", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "babybuddy/logo/icon2.png": "babybuddy/logo/icon2.be48fd16c53f.png", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.96e4491f2209.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.6377611bf399.png", "babybuddy/js/app.js": "babybuddy/js/app.f14bdf07def3.js", "babybuddy/js/graph.js": "babybuddy/js/graph.8b669d614c06.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.2e6cbbdc5f80.js", "babybuddy/css/vendor.css": "babybuddy/css/vendor.be1a1448dd86.css", "babybuddy/css/app.css": "babybuddy/css/app.b562c9b5953b.css", "babybuddy/fonts/fontawesome-webfont.eot": "babybuddy/fonts/fontawesome-webfont.674f50d287a8.eot", "babybuddy/fonts/fontawesome-webfont.ttf": "babybuddy/fonts/fontawesome-webfont.b06871f281fe.ttf", "babybuddy/fonts/fontawesome-webfont.svg": "babybuddy/fonts/fontawesome-webfont.912ec66d7572.svg", "babybuddy/fonts/fontawesome-webfont.woff2": "babybuddy/fonts/fontawesome-webfont.af7ae505a9ee.woff2", "babybuddy/fonts/FontAwesome.otf": "babybuddy/fonts/FontAwesome.0d2717cd5d85.otf", "babybuddy/fonts/fontawesome-webfont.woff": "babybuddy/fonts/fontawesome-webfont.fee66e712a8a.woff", "babybuddy/root/site.webmanifest.json": "babybuddy/root/site.webmanifest.61dac00bb04b.json", "babybuddy/root/favicon-32x32.png": "babybuddy/root/favicon-32x32.076f1340f1cf.png", "babybuddy/root/favicon.ico": "babybuddy/root/favicon.1b19cfd81791.ico", "babybuddy/root/android-chrome-512x512.png": "babybuddy/root/android-chrome-512x512.89ee40b783cd.png", "babybuddy/root/favicon-16x16.png": "babybuddy/root/favicon-16x16.12c501486484.png", "babybuddy/root/mstile-150x150.png": "babybuddy/root/mstile-150x150.f231c8ff6157.png", "babybuddy/root/apple-touch-icon.png": "babybuddy/root/apple-touch-icon.33416748f239.png", "babybuddy/root/safari-pinned-tab.svg": "babybuddy/root/safari-pinned-tab.3de51db2baf2.svg", "babybuddy/root/android-chrome-192x192.png": "babybuddy/root/android-chrome-192x192.484bd0e8cb66.png", "babybuddy/root/browserconfig.xml": "babybuddy/root/browserconfig.5858221e0a38.xml", "babybuddy/root/android-chrome-384x384.png": "babybuddy/root/android-chrome-384x384.7849615a1e26.png", "rest_framework/js/jquery-3.4.1.min.js": "rest_framework/js/jquery-3.4.1.min.220afd743d9e.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/default.css": "rest_framework/css/default.8d5591a6aabc.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "admin/js/prepopulate.min.js": "admin/js/prepopulate.min.85fd5e0fb706.js", "admin/js/calendar.js": "admin/js/calendar.aae57adab5f6.js", "admin/js/inlines.min.js": "admin/js/inlines.min.6d6c2416646e.js", "admin/js/SelectBox.js": "admin/js/SelectBox.99d0cfd2e80c.js", "admin/js/collapse.min.js": "admin/js/collapse.min.44dfdb427845.js", "admin/js/urlify.js": "admin/js/urlify.67bae52223e0.js", "admin/js/actions.min.js": "admin/js/actions.min.5fa8cb0403f1.js", "admin/js/popup_response.js": "admin/js/popup_response.6ce3197f8fc8.js", "admin/js/autocomplete.js": "admin/js/autocomplete.cfd2c4dc8981.js", "admin/js/collapse.js": "admin/js/collapse.c5b851e91226.js", "admin/js/change_form.js": "admin/js/change_form.9e85003a1a38.js", "admin/js/jquery.init.js": "admin/js/jquery.init.95b62fa19378.js", "admin/js/actions.js": "admin/js/actions.8d83e3af0fbd.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.0d3b53c37074.js", "admin/js/inlines.js": "admin/js/inlines.12d1af430335.js", "admin/js/prepopulate.js": "admin/js/prepopulate.2f90da7170ec.js", "admin/js/cancel.js": "admin/js/cancel.a2c3149a1c5e.js", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.c26733924aea.js", "admin/js/core.js": "admin/js/core.ea39b3bd34c3.js", "admin/css/changelists.css": "admin/css/changelists.cfe316f81936.css", "admin/css/login.css": "admin/css/login.252ffabd6548.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/responsive.css": "admin/css/responsive.755ce0b07393.css", "admin/css/autocomplete.css": "admin/css/autocomplete.781713f30664.css", "admin/css/base.css": "admin/css/base.ae33e6383baa.css", "admin/css/widgets.css": "admin/css/widgets.8874c301e7bc.css", "admin/css/forms.css": "admin/css/forms.9f1ffc442e9a.css", "admin/css/dashboard.css": "admin/css/dashboard.7ac78187c567.css", "admin/css/rtl.css": "admin/css/rtl.30f903442dc5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.51c7445ceeff.css", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg"}, "version": "1.0"}
\ No newline at end of file