diff --git a/.circleci/config.yml b/.circleci/config.yml index 0d7242171ea..386397b3230 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,7 +44,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: @@ -83,7 +83,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: @@ -105,7 +105,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: @@ -127,7 +127,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: @@ -168,7 +168,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: @@ -189,7 +189,7 @@ jobs: install-firefox: false install-geckodriver: false install-chrome: true - chrome-version: "127.0.6533.119" + chrome-version: "132.0.6834.110" - attach_workspace: at: ~/ - run: diff --git a/.circleci/download_google_fonts.py b/.circleci/download_google_fonts.py index 6a2a55816ce..8dc9dd7daa6 100644 --- a/.circleci/download_google_fonts.py +++ b/.circleci/download_google_fonts.py @@ -1,90 +1,82 @@ +import os + import requests -dirOut = '.circleci/fonts/truetype/googleFonts/' +dir_out = ".circleci/fonts/truetype/googleFonts/" + + +def download(repo, family, types, overwrite=True): + for t in types: + name = family + t + ".ttf" + url = repo + name + "?raw=true" + out_file = dir_out + name + print("Getting: ", url) + if os.path.exists(out_file) and not overwrite: + print(" => Already exists: ", out_file) + continue + req = requests.get(url, allow_redirects=False) + if req.status_code != 200: + # If we get a redirect, print an error so that we know to update the URL + if req.status_code == 302 or req.status_code == 301: + new_url = req.headers.get("Location") + print(f" => Redirected -- please update URL to: {new_url}") + raise RuntimeError(f""" +Download failed. +Status code: {req.status_code} +Message: {req.reason} +""") + open(out_file, "wb").write(req.content) -def download(repo, family, types) : - for t in types : - name = family + t + '.ttf' - url = repo + name + '?raw=true' - print(url) - req = requests.get(url, allow_redirects=True) - open(dirOut + name, 'wb').write(req.content) download( - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSansMono/', - 'NotoSansMono', - [ - '-Regular', - '-Bold' - ] + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSansMono/hinted/ttf/", + "NotoSansMono", + ["-Regular", "-Bold"], ) download( - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSans/', - 'NotoSans', - [ - '-Regular', - '-Italic', - '-Bold' - ] + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSans/hinted/ttf/", + "NotoSans", + ["-Regular", "-Italic", "-Bold"], ) download( - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSerif/', - 'NotoSerif', + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSerif/hinted/ttf/", + "NotoSerif", [ - '-Regular', - '-Italic', - '-Bold', - '-BoldItalic', - ] + "-Regular", + "-Italic", + "-Bold", + "-BoldItalic", + ], ) download( - 'https://github.com/google/fonts/blob/main/ofl/oldstandardtt/', - 'OldStandard', - [ - '-Regular', - '-Italic', - '-Bold' - ] + "https://raw.githubusercontent.com/google/fonts/refs/heads/main/ofl/oldstandardtt/", + "OldStandard", + ["-Regular", "-Italic", "-Bold"], ) download( - 'https://github.com/google/fonts/blob/main/ofl/ptsansnarrow/', - 'PT_Sans-Narrow-Web', - [ - '-Regular', - '-Bold' - ] + "https://raw.githubusercontent.com/google/fonts/refs/heads/main/ofl/ptsansnarrow/", + "PT_Sans-Narrow-Web", + ["-Regular", "-Bold"], ) download( - 'https://github.com/impallari/Raleway/blob/master/fonts/v3.000%20Fontlab/TTF/', - 'Raleway', - [ - '-Regular', - '-Regular-Italic', - '-Bold', - '-Bold-Italic' - ] + "https://raw.githubusercontent.com/impallari/Raleway/refs/heads/master/fonts/v3.000%20Fontlab/TTF/", + "Raleway", + ["-Regular", "-Regular-Italic", "-Bold", "-Bold-Italic"], ) download( - 'https://github.com/googlefonts/roboto/blob/main/src/hinted/', - 'Roboto', - [ - '-Regular', - '-Italic', - '-Bold', - '-BoldItalic' - ] + "https://raw.githubusercontent.com/googlefonts/roboto-2/refs/heads/main/src/hinted/", + "Roboto", + ["-Regular", "-Italic", "-Bold", "-BoldItalic"], ) download( - 'https://github.com/expo/google-fonts/blob/master/font-packages/gravitas-one/', - 'GravitasOne', - [ - '_400Regular' - ] + "https://raw.githubusercontent.com/expo/google-fonts/refs/heads/main/font-packages/gravitas-one/400Regular/", + "GravitasOne", + ["_400Regular"], ) diff --git a/.circleci/env_image.sh b/.circleci/env_image.sh index 4b684aa1599..47b5d530545 100755 --- a/.circleci/env_image.sh +++ b/.circleci/env_image.sh @@ -1,9 +1,10 @@ #!/bin/sh +set -e # install required fonts -sudo apt-get install fonts-liberation2 fonts-open-sans fonts-noto-cjk fonts-noto-color-emoji && \ -sudo python3 .circleci/download_google_fonts.py && \ -sudo cp -r .circleci/fonts/ /usr/share/ && \ -sudo fc-cache -f && \ +sudo apt-get install fonts-liberation2 fonts-open-sans fonts-noto-cjk fonts-noto-color-emoji +sudo python3 .circleci/download_google_fonts.py +sudo cp -r .circleci/fonts/ /usr/share/ +sudo fc-cache -f # install kaleido & plotly sudo python3 -m pip install kaleido==0.2.1 plotly==5.5.0 --progress-bar off # install numpy i.e. to convert arrays to typed arrays diff --git a/.circleci/fonts/truetype/googleFonts/.gitignore b/.circleci/fonts/truetype/googleFonts/.gitignore deleted file mode 100644 index 72e8ffc0db8..00000000000 --- a/.circleci/fonts/truetype/googleFonts/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/.circleci/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf b/.circleci/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf new file mode 100644 index 00000000000..f964cf264fa Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSans-Bold.ttf b/.circleci/fonts/truetype/googleFonts/NotoSans-Bold.ttf new file mode 100644 index 00000000000..aae7546dc19 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSans-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSans-Italic.ttf b/.circleci/fonts/truetype/googleFonts/NotoSans-Italic.ttf new file mode 100644 index 00000000000..7f531333438 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSans-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSans-Regular.ttf b/.circleci/fonts/truetype/googleFonts/NotoSans-Regular.ttf new file mode 100644 index 00000000000..f27f4ff5956 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSans-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf b/.circleci/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf new file mode 100644 index 00000000000..9218a79c0cd Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf b/.circleci/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf new file mode 100644 index 00000000000..159ca4b1d4f Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSerif-Bold.ttf b/.circleci/fonts/truetype/googleFonts/NotoSerif-Bold.ttf new file mode 100644 index 00000000000..352b8073581 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSerif-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf b/.circleci/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf new file mode 100644 index 00000000000..f0fbb6fb9d6 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSerif-Italic.ttf b/.circleci/fonts/truetype/googleFonts/NotoSerif-Italic.ttf new file mode 100644 index 00000000000..ee42fc10ee9 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSerif-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/NotoSerif-Regular.ttf b/.circleci/fonts/truetype/googleFonts/NotoSerif-Regular.ttf new file mode 100644 index 00000000000..123a8c5763e Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/NotoSerif-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OldStandard-Bold.ttf b/.circleci/fonts/truetype/googleFonts/OldStandard-Bold.ttf new file mode 100644 index 00000000000..4e138db49ea Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OldStandard-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OldStandard-Italic.ttf b/.circleci/fonts/truetype/googleFonts/OldStandard-Italic.ttf new file mode 100644 index 00000000000..c6bd25f9dd0 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OldStandard-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OldStandard-Regular.ttf b/.circleci/fonts/truetype/googleFonts/OldStandard-Regular.ttf new file mode 100644 index 00000000000..655abd75073 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OldStandard-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf b/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf new file mode 100644 index 00000000000..f0e2068a03c Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf b/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf new file mode 100644 index 00000000000..b881447b368 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf b/.circleci/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf new file mode 100644 index 00000000000..1d1c6dd6cfe Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Raleway-Bold.ttf b/.circleci/fonts/truetype/googleFonts/Raleway-Bold.ttf new file mode 100644 index 00000000000..7aa37f014fe Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Raleway-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf b/.circleci/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf new file mode 100644 index 00000000000..e46ac30ba02 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Raleway-Regular.ttf b/.circleci/fonts/truetype/googleFonts/Raleway-Regular.ttf new file mode 100644 index 00000000000..c6ec2f0ac1a Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Raleway-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Roboto-Bold.ttf b/.circleci/fonts/truetype/googleFonts/Roboto-Bold.ttf new file mode 100644 index 00000000000..8869666f245 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Roboto-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf b/.circleci/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf new file mode 100644 index 00000000000..f7f845aea4b Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Roboto-Italic.ttf b/.circleci/fonts/truetype/googleFonts/Roboto-Italic.ttf new file mode 100644 index 00000000000..a76d286d56f Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Roboto-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/Roboto-Regular.ttf b/.circleci/fonts/truetype/googleFonts/Roboto-Regular.ttf new file mode 100644 index 00000000000..ddee473e020 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/Roboto-Regular.ttf differ diff --git a/devtools/test_dashboard/devtools.js b/devtools/test_dashboard/devtools.js index 6a779e9656e..1efdc39716f 100644 --- a/devtools/test_dashboard/devtools.js +++ b/devtools/test_dashboard/devtools.js @@ -77,7 +77,7 @@ var Tabs = { }; }, - // Save a png snapshot and display it below the plot + // Save a PNG snapshot and display it below the plot snapshot: function(id) { var gd = Tabs.getGraph(id); diff --git a/devtools/test_dashboard/index-mathjax3.html b/devtools/test_dashboard/index-mathjax3.html index c2365f1bd12..510e839fa7f 100644 --- a/devtools/test_dashboard/index-mathjax3.html +++ b/devtools/test_dashboard/index-mathjax3.html @@ -37,7 +37,7 @@

no MathJax: Apple: $2, Orange: $3

} }; - + diff --git a/devtools/test_dashboard/index-mathjax3chtml.html b/devtools/test_dashboard/index-mathjax3chtml.html index 99178717a07..795c5688703 100644 --- a/devtools/test_dashboard/index-mathjax3chtml.html +++ b/devtools/test_dashboard/index-mathjax3chtml.html @@ -60,7 +60,7 @@ } }; - + diff --git a/devtools/test_dashboard/index-strict.html b/devtools/test_dashboard/index-strict.html index 59a2ca658d9..6c309cd211b 100644 --- a/devtools/test_dashboard/index-strict.html +++ b/devtools/test_dashboard/index-strict.html @@ -22,7 +22,7 @@
- + diff --git a/devtools/test_dashboard/index.html b/devtools/test_dashboard/index.html index 3aa41a0b346..c2fc16aa4c5 100644 --- a/devtools/test_dashboard/index.html +++ b/devtools/test_dashboard/index.html @@ -21,7 +21,7 @@
- + diff --git a/draftlogs/7269_add.md b/draftlogs/7269_add.md new file mode 100644 index 00000000000..8e772141a9a --- /dev/null +++ b/draftlogs/7269_add.md @@ -0,0 +1 @@ + - Add property `zerolinelayer` to cartesian axes to allow drawing zeroline above traces [[#7269](https://github.com/plotly/plotly.js/pull/7269)] diff --git a/draftlogs/7400_change.md b/draftlogs/7400_change.md new file mode 100644 index 00000000000..370df07f53d --- /dev/null +++ b/draftlogs/7400_change.md @@ -0,0 +1 @@ + - Make 'png' all caps [[#7400](https://github.com/plotly/plotly.js/pull/7400)] \ No newline at end of file diff --git a/lib/locales/cs.js b/lib/locales/cs.js index 51080a6e070..4d715482e54 100644 --- a/lib/locales/cs.js +++ b/lib/locales/cs.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Porovnat hodnoty při najetí myší', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': 'Dvojklikem na legendu izolujete jedinou datovou sadu', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'Dvojklikem vrátíte zvětšení', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': 'Uložit jako PNG', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Uložit jako PNG', // components/modebar/buttons.js:52 'Download plot': 'Uložit', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Editovat v Chart Studio', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE podporuje pouze SVG formát. Změněno na SVG.', // components/modebar/buttons.js:60 diff --git a/lib/locales/cy.js b/lib/locales/cy.js index fa703ebcb3b..f8f792eac4d 100644 --- a/lib/locales/cy.js +++ b/lib/locales/cy.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Dwbl-gliciwch ar yr allwedd i neilltuo un llinell', // components / legend / handle_click.js: 89 'Double-click to zoom back out': 'Dwbl-gliciwch i chwyddo\'n ôl', // plots / cartesian / dragbox.js: 1011 'Download plot': 'Lawrlwythwch blot', // components / modebar / buttons.js: 55 - 'Download plot as a png': 'Lawrlwythwch y plot fel png', // components / modebar / buttons.js: 54 + 'Download plot as a PNG': 'Lawrlwythwch y plot fel PNG', // components / modebar / buttons.js: 54 'Edit in Chart Studio': 'Golygu yn Chart Studio', // components / modebar / buttons.js: 87 'IE only supports svg. Changing format to svg.': 'Dim ond svg mae IE yn ei gefnogi. Newid fformat i svg.', // components / modebar / buttons.js: 65 'Lasso Select': 'Dewiswch â lasŵ', // components / modebar / buttons.js: 123 diff --git a/lib/locales/de.js b/lib/locales/de.js index 471f3f4042a..2be03de0398 100644 --- a/lib/locales/de.js +++ b/lib/locales/de.js @@ -16,7 +16,7 @@ module.exports = { 'Compare data on hover': 'Über die Daten fahren, um sie zu vergleichen', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': 'Daten isolieren durch Doppelklick in der Legende', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'Herauszoomen durch Doppelklick', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': 'Graphen als PNG herunterladen', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Graphen als PNG herunterladen', // components/modebar/buttons.js:52 'Download plot': 'Graphen herunterladen', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Im Chart Studio bearbeiten', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE unterstützt nur SVG-Dateien. Format wird zu SVG gewechselt.', // components/modebar/buttons.js:60 diff --git a/lib/locales/es.js b/lib/locales/es.js index 5c107032429..15a8a41369b 100644 --- a/lib/locales/es.js +++ b/lib/locales/es.js @@ -18,7 +18,7 @@ module.exports = { 'Compare data on hover': 'Comparar datos al pasar por encima', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': 'Haga doble-clic en la leyenda para aislar una traza', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'Haga doble-clic para restaurar la escala', // plots/cartesian/dragbox.js:335 - 'Download plot as a png': 'Descargar gráfica como png', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Descargar gráfica como PNG', // components/modebar/buttons.js:52 'Download plot': 'Descargar gráfica', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Editar en Chart Studio', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE solo soporta svg. Cambiando formato a svg.', // components/modebar/buttons.js:60 diff --git a/lib/locales/fi.js b/lib/locales/fi.js index 37dfcc4aead..82ae56a9ada 100644 --- a/lib/locales/fi.js +++ b/lib/locales/fi.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Kaksoisklikkaa selitettä eristääksesi yksi sarja', 'Double-click to zoom back out': 'Kaksoisklikkaa zoomataksesi ulos', 'Download plot': 'Lataa kuvio', - 'Download plot as a png': 'Lataa kuvio png-muodossa', + 'Download plot as a PNG': 'Lataa kuvio PNG-muodossa', 'Edit in Chart Studio': 'Muokkaa Chart Studiossa', 'IE only supports svg. Changing format to svg.': 'Formaatiksi vaihdetaan IE:n tukema svg.', 'Lasso Select': 'Lassovalinta', diff --git a/lib/locales/fr.js b/lib/locales/fr.js index 4f30fcc3c4e..4e4653f8eee 100644 --- a/lib/locales/fr.js +++ b/lib/locales/fr.js @@ -18,7 +18,7 @@ module.exports = { 'Compare data on hover': 'Comparaison entre données en survol', 'Double-click on legend to isolate one trace': 'Double-cliquer sur la légende pour isoler une série', 'Double-click to zoom back out': 'Double-cliquer pour dézoomer', - 'Download plot as a png': 'Télécharger le graphique en fichier PNG', + 'Download plot as a PNG': 'Télécharger le graphique en fichier PNG', 'Download plot': 'Télécharger le graphique', 'Edit in Chart Studio': 'Éditer le graphique sur Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE ne permet que les conversions en SVG. Conversion en SVG en cours.', diff --git a/lib/locales/hr.js b/lib/locales/hr.js index 08700c81886..061acf8f394 100644 --- a/lib/locales/hr.js +++ b/lib/locales/hr.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Usporedi podatke pri prijelazu mišem', 'Double-click on legend to isolate one trace': 'Dvaput kliknite kako biste izolirali jednu oznaku', 'Double-click to zoom back out': 'Dvaput kliknite kako biste vratili originalnu razinu zumiranja', - 'Download plot as a png': 'Preuzmite grafički prikaz kao .png', + 'Download plot as a PNG': 'Preuzmite grafički prikaz kao PNG', 'Download plot': 'Preuzmite grafički prikaz', 'Edit in Chart Studio': 'Uredite pomoću funkcionalnosti Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE podržava samo svg. Format se mijenja u svg.', diff --git a/lib/locales/it.js b/lib/locales/it.js index 53c76f79fa6..7118f71d620 100644 --- a/lib/locales/it.js +++ b/lib/locales/it.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Compara i dati al passaggio del mouse', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': 'Doppio click per isolare i dati di una traccia', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'Doppio click per tornare allo zoom iniziale', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': 'Scarica il grafico come immagine png', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Scarica il grafico come immagine PNG', // components/modebar/buttons.js:52 'Download plot': 'Scarica il grafico', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Modifica in Chart Studio', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE supporta solo svg. Modifica formato in svg.', // components/modebar/buttons.js:60 diff --git a/lib/locales/ja.js b/lib/locales/ja.js index f8a20b547e9..e227cf3c139 100644 --- a/lib/locales/ja.js +++ b/lib/locales/ja.js @@ -16,7 +16,7 @@ module.exports = { 'Compare data on hover': 'ホバー中のデータを比較', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': '凡例をダブルクリックして1つのトレースを無効化します', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'ダブルクリックでズームを戻します', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': 'PNGファイルでダウンロード', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'PNGファイルでダウンロード', // components/modebar/buttons.js:52 'Download plot': 'ダウンロード', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Chart Studioで編集', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IEはSVGのみサポートしています。SVGに変換します。', // components/modebar/buttons.js:60 diff --git a/lib/locales/ko.js b/lib/locales/ko.js index 999ed3ab0fd..73d7d34bf2f 100644 --- a/lib/locales/ko.js +++ b/lib/locales/ko.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': '마우스를 올리면 데이터와 비교합니다', 'Double-click on legend to isolate one trace': '범례를 더블 클릭하여 하나의 트레이스를 분리합니다', 'Double-click to zoom back out': '더블 클릭하여 줌을 해제합니다', - 'Download plot as a png': '.png 이미지 파일로 차트를 다운로드 합니다', + 'Download plot as a PNG': 'PNG 이미지 파일로 차트를 다운로드 합니다', 'Download plot': '차트를 다운로드 합니다', 'Edit in Chart Studio': 'Chart Studio를 수정합니다', 'IE only supports svg. Changing format to svg.': 'IE는 svg만을 지원합니다. 포맷을 svg로 변경하세요', diff --git a/lib/locales/nl-be.js b/lib/locales/nl-be.js index 000c8055617..5ef739a4c2c 100644 --- a/lib/locales/nl-be.js +++ b/lib/locales/nl-be.js @@ -9,13 +9,13 @@ module.exports = { 'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag' ], - shortDays: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + shortDays: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], months: [ 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december' ], shortMonths: [ - 'jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec' ], date: '%d/%m/%Y' diff --git a/lib/locales/nl.js b/lib/locales/nl.js index 6cce2d95dd4..0d20aab29ef 100644 --- a/lib/locales/nl.js +++ b/lib/locales/nl.js @@ -14,7 +14,7 @@ module.exports = { 'Click to enter Y axis title': 'Klik om y-as titel in te vullen', 'Click to enter radial axis title': 'Klik om radiaal-as titel in te vullen', 'Double-click to zoom back out': 'Zoom uit door te dubbel klikken', - 'Download plot as a png': 'Dowload de plot als een png-bestand', + 'Download plot as a PNG': 'Dowload de plot als een PNG-bestand', 'Download plot': 'Download de plot', 'Draw circle': 'Teken cirkel', 'Draw closed freeform': 'Teken gesloten vorm', @@ -43,13 +43,13 @@ module.exports = { 'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag' ], - shortDays: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + shortDays: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], months: [ 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december' ], shortMonths: [ - 'jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec' ], date: '%d-%m-%Y', diff --git a/lib/locales/no.js b/lib/locales/no.js index 7015b966424..7956d7c2352 100644 --- a/lib/locales/no.js +++ b/lib/locales/no.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Dobbelklikk på på forklaringen for å vise bare en serie', // components/legend/handle_click.js:89 'Double-click to zoom back out': 'Dobbelklikk for å zoome ut igjen', // plots/cartesian/dragbox.js:1089 'Download plot': 'Last ned plot', // components/modebar/buttons.js:53 - 'Download plot as a png': 'Last ned plot som png', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Last ned plot som PNG', // components/modebar/buttons.js:52 'Edit in Chart Studio': 'Editer i Chart Studio', // components/modebar/buttons.js:85 'IE only supports svg. Changing format to svg.': 'IE støtter bare svg. Bytt format til svg.', // components/modebar/buttons.js:63 'Lasso Select': 'Velg lasso', // components/modebar/buttons.js:121 diff --git a/lib/locales/pt-br.js b/lib/locales/pt-br.js index 4cfaf06f7f5..9a85104b062 100644 --- a/lib/locales/pt-br.js +++ b/lib/locales/pt-br.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Comparar dados ao pairar', 'Double-click on legend to isolate one trace': 'Duplo clique na legenda para isolar uma série', 'Double-click to zoom back out': 'Duplo clique para reverter zoom', - 'Download plot as a png': 'Fazer download do gráfico como imagem (png)', + 'Download plot as a PNG': 'Fazer download do gráfico como imagem (PNG)', 'Download plot': 'Fazer download do gráfico', 'Edit in Chart Studio': 'Editar no Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE suporta apenas svg. Alterando formato para svg', diff --git a/lib/locales/pt-pt.js b/lib/locales/pt-pt.js index a65928f3fa7..042766ed0e1 100644 --- a/lib/locales/pt-pt.js +++ b/lib/locales/pt-pt.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Comparar dados ao pairar', 'Double-click on legend to isolate one trace': 'Duplo clique na legenda para isolar uma série', 'Double-click to zoom back out': 'Duplo clique para reverter ampliação', - 'Download plot as a png': 'Baixar gráfico como imagem (png)', + 'Download plot as a PNG': 'Baixar gráfico como imagem (PNG)', 'Download plot': 'Baixar gráfico', 'Edit in Chart Studio': 'Editar no Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE suporta apenas svg. Alterando formato para svg', diff --git a/lib/locales/ro.js b/lib/locales/ro.js index 2f8df60fa1d..e77bc2fdd15 100644 --- a/lib/locales/ro.js +++ b/lib/locales/ro.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Dublu clic pe legendă pentru a izola un rând', 'Double-click to zoom back out': 'Dublu clic pentru micșora înapoi', 'Download plot': 'Descarcă graficul', - 'Download plot as a png': 'Descarcă graficul ca imagine PNG', + 'Download plot as a PNG': 'Descarcă graficul ca imagine PNG', 'Draw circle': 'Desenează un cerc', 'Draw closed freeform': 'Desenează o formă liberă închisă', 'Draw line': 'Desenează o linie', diff --git a/lib/locales/ru.js b/lib/locales/ru.js index c7cd7fab6b8..00fff8a4c49 100644 --- a/lib/locales/ru.js +++ b/lib/locales/ru.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Дважды щёлкните по легенде для выделения отдельных данных', 'Double-click to zoom back out': 'Для сброса масштаба к значению по умолчанию дважды щёлкните мышью', 'Download plot': 'Сохранить график', - 'Download plot as a png': 'Сохранить в формате PNG', + 'Download plot as a PNG': 'Сохранить в формате PNG', 'Edit in Chart Studio': 'Редактировать в Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE поддерживает только svg. Формат сменяется на svg.', 'Lasso Select': 'Лассо', diff --git a/lib/locales/si.js b/lib/locales/si.js index e1e7e359e07..1289bef58a9 100644 --- a/lib/locales/si.js +++ b/lib/locales/si.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Double-click on legend to isolate one trace', // components/legend/handle_click.js:20 'Double-click to zoom back out': 'ආපසු කුඩාලනය කිරීමට දෙවරක් ඔබන්න', // plots/cartesian/dragbox.js:1166 'Download plot': 'කොටුව බාගන්න', // components/modebar/buttons.js:45 - 'Download plot as a png': 'කොටුව පීඑන්ජී ලෙස බාගන්න', // components/modebar/buttons.js:44 + 'Download plot as a PNG': 'කොටුව පීඑන්ජී ලෙස බාගන්න', // components/modebar/buttons.js:44 'Draw circle': 'කවයක් අඳින්න', // components/modebar/buttons.js:171 'Draw closed freeform': 'සංවෘත ලෙස නිදහසේ අඳින්න', // components/modebar/buttons.js:135 'Draw line': 'රේඛාවක් අඳින්න', // components/modebar/buttons.js:153 diff --git a/lib/locales/sk.js b/lib/locales/sk.js index 42ed3d67299..52360965110 100644 --- a/lib/locales/sk.js +++ b/lib/locales/sk.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Porovnať hodnoty pri prejdení myšou', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': 'Dvojklikom na legendu izolujete jednu dátovú sadu', // components/legend/handle_click.js:90 'Double-click to zoom back out': 'Dvojklikom vrátite zväčšenie', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': 'Uložiť ako PNG', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Uložiť ako PNG', // components/modebar/buttons.js:52 'Download plot': 'Uložiť', // components/modebar/buttons.js:53 'Edit in Chart Studio': 'Editovať v Chart Studio', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE podporuje iba SVG formát. Zmenené na SVG.', // components/modebar/buttons.js:60 diff --git a/lib/locales/sv.js b/lib/locales/sv.js index 14c545522a4..f3b215a4996 100644 --- a/lib/locales/sv.js +++ b/lib/locales/sv.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Dubbelklicka på förklaringen för att visa endast en serie', // components/legend/handle_click.js:89 'Double-click to zoom back out': 'Dubbelklicka för att zooma ut igen', // plots/cartesian/dragbox.js:1089 'Download plot': 'Ladda ner diagram', // components/modebar/buttons.js:53 - 'Download plot as a png': 'Ladda ner diagram som png', // components/modebar/buttons.js:52 + 'Download plot as a PNG': 'Ladda ner diagram som PNG', // components/modebar/buttons.js:52 'Edit in Chart Studio': 'Editera i Chart Studio', // components/modebar/buttons.js:85 'IE only supports svg. Changing format to svg.': 'IE stöder enbart svg. Byter format till svg.', // components/modebar/buttons.js:63 'Lasso Select': 'Välj lasso', // components/modebar/buttons.js:121 diff --git a/lib/locales/sw.js b/lib/locales/sw.js index 2ce9e2a7603..6d173e19b80 100644 --- a/lib/locales/sw.js +++ b/lib/locales/sw.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': 'Linganisha data kwa kuelea kielekezi', 'Double-click on legend to isolate one trace': 'Bonyeza mara mbili juu ya hadithi ili kutenganisha moja kwa moja', 'Double-click to zoom back out': 'Bonyeza mara mbili ili kuvuta nje', - 'Download plot as a png': 'Pakua mpango kama png', + 'Download plot as a PNG': 'Pakua mpango kama PNG', 'Download plot': 'Pakua mpango', 'Edit in Chart Studio': 'Hariri katika Chart studio', 'IE only supports svg. Changing format to svg.': 'IE inatumia tu svg. Tunabadilisha muundo kuwa svg.', diff --git a/lib/locales/tr.js b/lib/locales/tr.js index 8bfabec451c..7accb25bcd5 100644 --- a/lib/locales/tr.js +++ b/lib/locales/tr.js @@ -16,7 +16,7 @@ module.exports = { 'Compare data on hover': 'Üzerine gelince verileri karşılaştır', 'Double-click on legend to isolate one trace': 'Bir izi izole etmek için göstergeye (legend) çift tıklayın', 'Double-click to zoom back out': 'Geri uzaklaştırmak için çift tıklayın', - 'Download plot as a png': 'Grafiği PNG olarak indir', + 'Download plot as a PNG': 'Grafiği PNG olarak indir', 'Download plot': 'Grafiği indir', 'Edit in Chart Studio': "Chart Studio'da düzenle", 'IE only supports svg. Changing format to svg.': "IE yalnızca svg'yi destekler. Format svg'ye dönüştürülüyor.", diff --git a/lib/locales/uk.js b/lib/locales/uk.js index aa98ada6fc9..635bd202563 100644 --- a/lib/locales/uk.js +++ b/lib/locales/uk.js @@ -18,7 +18,7 @@ module.exports = { 'Double-click on legend to isolate one trace': 'Двічі клацніть по легенді для виділення окремих даних', 'Double-click to zoom back out': 'Для встановлення масштабу значення за замовчуванням двічі клацніть мишею', 'Download plot': 'Зберегти графік', - 'Download plot as a png': 'Зберегти у форматі PNG', + 'Download plot as a PNG': 'Зберегти у форматі PNG', 'Edit in Chart Studio': 'Редагувати у Chart Studio', 'IE only supports svg. Changing format to svg.': 'IE підтримує лише svg. Формат змінюється на svg.', 'Lasso Select': 'Ласо', diff --git a/lib/locales/zh-cn.js b/lib/locales/zh-cn.js index 82b9bbdf9a4..7252e623a03 100644 --- a/lib/locales/zh-cn.js +++ b/lib/locales/zh-cn.js @@ -16,7 +16,7 @@ module.exports = { 'Compare data on hover': '悬停时比较数据', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': '双击图例来突显对应轨迹', 'Double-click to zoom back out': '双击返回缩小显示', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': '下载图表为PNG格式', + 'Download plot as a PNG': '下载图表为PNG格式', 'Download plot': '下载图表', // components/modebar/buttons.js:53 'Edit in Chart Studio': '在Chart Studio中编辑', // components/modebar/buttons.js:76 'IE only supports svg. Changing format to svg.': 'IE只支持SVG。转换格式为SVG。', // components/modebar/buttons.js:60 diff --git a/lib/locales/zh-tw.js b/lib/locales/zh-tw.js index 1bfdc5291cc..02a29ffc9c9 100644 --- a/lib/locales/zh-tw.js +++ b/lib/locales/zh-tw.js @@ -17,7 +17,7 @@ module.exports = { 'Compare data on hover': '游標停留時比較資料', // components/modebar/buttons.js:167 'Double-click on legend to isolate one trace': '雙擊圖例以隔離單一軌跡', // components/legend/handle_click.js:90 'Double-click to zoom back out': '雙擊回復縮放', // plots/cartesian/dragbox.js:299 - 'Download plot as a png': '下載圖表為 PNG 圖檔', // components/modebar/buttons.js:52 + 'Download plot as a PNG': '下載圖表為 PNG 圖檔', // components/modebar/buttons.js:52 'Download plot': '下載圖表', // components/modebar/buttons.js:53 'Draw circle': '繪製圓圈', // components/modebar/buttons.js:171 'Draw closed freeform': '繪製封閉的任意圖形', // components/modebar/buttons.js:135 diff --git a/package-lock.json b/package-lock.json index 1d5b49b4cca..dfd1f8f8f10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@plotly/d3-sankey": "0.7.2", "@plotly/d3-sankey-circular": "0.33.1", "@plotly/mapbox-gl": "1.13.4", + "@plotly/regl": "^2.1.2", "@turf/area": "^7.1.0", "@turf/bbox": "^7.1.0", "@turf/centroid": "^7.1.0", @@ -48,7 +49,6 @@ "point-in-polygon": "^1.1.0", "polybooljs": "^1.2.2", "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", "regl-error2d": "^2.0.12", "regl-line2d": "^3.1.3", "regl-scatter2d": "^3.3.1", @@ -65,6 +65,8 @@ }, "devDependencies": { "@biomejs/biome": "1.8.3", + "@plotly/mathjax-v2": "npm:mathjax@2.7.5", + "@plotly/mathjax-v3": "npm:mathjax@^3.2.2", "amdefine": "^1.0.1", "assert": "^2.1.0", "browserify-transform-tools": "^1.7.0", @@ -102,8 +104,6 @@ "karma-viewport": "1.0.2", "lodash": "^4.17.21", "madge": "^8.0.0", - "mathjax-v2": "npm:mathjax@2.7.5", - "mathjax-v3": "npm:mathjax@^3.2.2", "minify-stream": "^2.1.0", "npm-link-check": "^5.0.1", "open": "^8.4.2", @@ -1103,6 +1103,20 @@ "node": ">=6.4.0" } }, + "node_modules/@plotly/mathjax-v2": { + "name": "mathjax", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.5.tgz", + "integrity": "sha512-OzsJNitEHAJB3y4IIlPCAvS0yoXwYjlo2Y4kmm9KQzyIBZt2d8yKRalby3uTRNN4fZQiGL2iMXjpdP1u2Rq2DQ==", + "dev": true + }, + "node_modules/@plotly/mathjax-v3": { + "name": "mathjax", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz", + "integrity": "sha512-Bt+SSVU8eBG27zChVewOicYs7Xsdt40qm4+UpHyX7k0/O9NliPc+x77k1/FEsPsjKPZGJvtRZM1vO+geW0OhGw==", + "dev": true + }, "node_modules/@plotly/point-cluster": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", @@ -1120,6 +1134,11 @@ "pick-by-alias": "^1.2.0" } }, + "node_modules/@plotly/regl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", @@ -6982,20 +7001,6 @@ "node": ">=0.10.0" } }, - "node_modules/mathjax-v2": { - "name": "mathjax", - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.5.tgz", - "integrity": "sha512-OzsJNitEHAJB3y4IIlPCAvS0yoXwYjlo2Y4kmm9KQzyIBZt2d8yKRalby3uTRNN4fZQiGL2iMXjpdP1u2Rq2DQ==", - "dev": true - }, - "node_modules/mathjax-v3": { - "name": "mathjax", - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz", - "integrity": "sha512-Bt+SSVU8eBG27zChVewOicYs7Xsdt40qm4+UpHyX7k0/O9NliPc+x77k1/FEsPsjKPZGJvtRZM1vO+geW0OhGw==", - "dev": true - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", diff --git a/package.json b/package.json index 02e3f4a1df2..0b863ad39ef 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "point-in-polygon": "^1.1.0", "polybooljs": "^1.2.2", "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", + "@plotly/regl": "^2.1.2", "regl-error2d": "^2.0.12", "regl-line2d": "^3.1.3", "regl-scatter2d": "^3.3.1", @@ -161,8 +161,8 @@ "karma-viewport": "1.0.2", "lodash": "^4.17.21", "madge": "^8.0.0", - "mathjax-v2": "npm:mathjax@2.7.5", - "mathjax-v3": "npm:mathjax@^3.2.2", + "@plotly/mathjax-v2": "npm:mathjax@2.7.5", + "@plotly/mathjax-v3": "npm:mathjax@^3.2.2", "minify-stream": "^2.1.0", "npm-link-check": "^5.0.1", "open": "^8.4.2", diff --git a/src/components/modebar/buttons.js b/src/components/modebar/buttons.js index 82c5dff9a48..6d89bfb9a74 100644 --- a/src/components/modebar/buttons.js +++ b/src/components/modebar/buttons.js @@ -41,7 +41,7 @@ modeBarButtons.toImage = { var opts = gd._context.toImageButtonOptions || {}; var format = opts.format || 'png'; return format === 'png' ? - _(gd, 'Download plot as a png') : // legacy text + _(gd, 'Download plot as a PNG') : // legacy text _(gd, 'Download plot'); // generic non-PNG text }, icon: Icons.camera, diff --git a/src/lib/prepare_regl.js b/src/lib/prepare_regl.js index bdc35ed6f22..d81c7f83a3a 100644 --- a/src/lib/prepare_regl.js +++ b/src/lib/prepare_regl.js @@ -6,7 +6,7 @@ var showNoWebGlMsg = require('./show_no_webgl_msg'); // files corresponding to regl trace modules // so that bundles with non-regl only don't include // regl and all its bytes. -var createRegl = require('regl'); +var createRegl = require('@plotly/regl'); /** * Idempotent version of createRegl. Create regl instances diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 84ebe5b3bb1..c293d99b564 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -2365,6 +2365,7 @@ axes.draw = function(gd, arg, opts) { if(plotinfo.minorGridlayer) plotinfo.minorGridlayer.selectAll('path').remove(); if(plotinfo.gridlayer) plotinfo.gridlayer.selectAll('path').remove(); if(plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll('path').remove(); + if(plotinfo.zerolinelayerAbove) plotinfo.zerolinelayerAbove.selectAll('path').remove(); fullLayout._infolayer.select('.g-' + xa._id + 'title').remove(); fullLayout._infolayer.select('.g-' + ya._id + 'title').remove(); @@ -2462,6 +2463,7 @@ axes.drawOne = function(gd, ax, opts) { var axLetter = axId.charAt(0); var counterLetter = axes.counterLetter(axId); var mainPlotinfo = fullLayout._plots[ax._mainSubplot]; + var zerolineIsAbove = ax.zerolinelayer === 'above traces'; // this happens when updating matched group with 'missing' axes if(!mainPlotinfo) return; @@ -2576,7 +2578,7 @@ axes.drawOne = function(gd, ax, opts) { }); axes.drawZeroLine(gd, ax, { counterAxis: counterAxis, - layer: plotinfo.zerolinelayer, + layer: zerolineIsAbove ? plotinfo.zerolinelayerAbove : plotinfo.zerolinelayer, path: gridPath, transFn: transTickFn }); @@ -3555,6 +3557,7 @@ axes.drawLabels = function(gd, ax, opts) { var fullLayout = gd._fullLayout; var axId = ax._id; + var zerolineIsAbove = ax.zerolinelayer === 'above traces'; var cls = opts.cls || axId + 'tick'; var vals = opts.vals.filter(function(d) { return d.text; }); @@ -3763,8 +3766,10 @@ axes.drawLabels = function(gd, ax, opts) { var mainPlotinfo = fullLayout._plots[ax._mainSubplot]; var sel; - if(e.K === ZERO_PATH.K) sel = mainPlotinfo.zerolinelayer.selectAll('.' + ax._id + 'zl'); - else if(e.K === MINORGRID_PATH.K) sel = mainPlotinfo.minorGridlayer.selectAll('.' + ax._id); + if(e.K === ZERO_PATH.K) { + var zerolineLayer = zerolineIsAbove ? mainPlotinfo.zerolinelayerAbove : mainPlotinfo.zerolinelayer; + sel = zerolineLayer.selectAll('.' + ax._id + 'zl'); + } else if(e.K === MINORGRID_PATH.K) sel = mainPlotinfo.minorGridlayer.selectAll('.' + ax._id); else if(e.K === GRID_PATH.K) sel = mainPlotinfo.gridlayer.selectAll('.' + ax._id); else sel = mainPlotinfo[ax._id.charAt(0) + 'axislayer']; diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 07863ebbdf1..71eeb5b1a9e 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -614,6 +614,12 @@ function makeSubplotLayer(gd, plotinfo) { plotinfo.overplot = ensureSingle(plotgroup, 'g', 'overplot'); plotinfo.plot = ensureSingle(plotinfo.overplot, 'g', id); + if(mainplotinfo && hasMultipleZ) { + plotinfo.zerolinelayerAbove = mainplotinfo.zerolinelayerAbove; + } else { + plotinfo.zerolinelayerAbove = ensureSingle(plotgroup, 'g', 'zerolinelayer-above'); + } + if(!hasZ) { plotinfo.xlines = ensureSingle(plotgroup, 'path', 'xlines-above'); plotinfo.ylines = ensureSingle(plotgroup, 'path', 'ylines-above'); @@ -643,6 +649,7 @@ function makeSubplotLayer(gd, plotinfo) { plotinfo.minorGridlayer = mainplotinfo.minorGridlayer; plotinfo.gridlayer = mainplotinfo.gridlayer; plotinfo.zerolinelayer = mainplotinfo.zerolinelayer; + plotinfo.zerolinelayerAbove = mainplotinfo.zerolinelayerAbove; ensureSingle(mainplotinfo.overlinesBelow, 'path', xId); ensureSingle(mainplotinfo.overlinesBelow, 'path', yId); diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 32afc99457a..978f545e53e 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -1016,6 +1016,19 @@ module.exports = { editType: 'ticks', description: 'Sets the line color of the zero line.' }, + zerolinelayer: { + valType: 'enumerated', + values: ['above traces', 'below traces'], + dflt: 'below traces', + editType: 'plot', + description: [ + 'Sets the layer on which this zeroline is displayed.', + 'If *above traces*, this zeroline is displayed above all the subplot\'s traces', + 'If *below traces*, this zeroline is displayed below all the subplot\'s traces,', + 'but above the grid lines. Limitation: *zerolinelayer* currently has no effect', + 'if the *zorder* property is set on any trace.' + ].join(' ') + }, zerolinewidth: { valType: 'number', dflt: 1, diff --git a/src/plots/cartesian/line_grid_defaults.js b/src/plots/cartesian/line_grid_defaults.js index 062c5f2493c..8808c31f7dd 100644 --- a/src/plots/cartesian/line_grid_defaults.js +++ b/src/plots/cartesian/line_grid_defaults.js @@ -67,11 +67,13 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer } if(!opts.noZeroLine) { + var zeroLineLayer = coerce2('zerolinelayer'); var zeroLineColor = coerce2('zerolinecolor', dfltColor); var zeroLineWidth = coerce2('zerolinewidth'); var showZeroLine = coerce('zeroline', opts.showGrid || !!zeroLineColor || !!zeroLineWidth); if(!showZeroLine) { + delete containerOut.zerolinelayer; delete containerOut.zerolinecolor; delete containerOut.zerolinewidth; } diff --git a/src/plots/map/layout_attributes.js b/src/plots/map/layout_attributes.js index c6b8d5d52fe..05d4171285f 100644 --- a/src/plots/map/layout_attributes.js +++ b/src/plots/map/layout_attributes.js @@ -284,7 +284,7 @@ var attrs = module.exports = overrideAll({ dflt: 'marker', description: [ 'Sets the symbol icon image (map.layer.layout.icon-image).', - 'Full list: https://www.map.com/maki-icons/' + 'Full list: https://www.mapbox.com/maki-icons/' ].join(' ') }, iconsize: { diff --git a/src/traces/scattermap/attributes.js b/src/traces/scattermap/attributes.js index b590d20ef79..c4c9fb05a9d 100644 --- a/src/traces/scattermap/attributes.js +++ b/src/traces/scattermap/attributes.js @@ -119,7 +119,7 @@ module.exports = overrideAll({ arrayOk: true, description: [ 'Sets the marker symbol.', - 'Full list: https://www.map.com/maki-icons/', + 'Full list: https://www.mapbox.com/maki-icons/', 'Note that the array `marker.color` and `marker.size`', 'are only available for *circle* symbols.' ].join(' ') diff --git a/tasks/noci_test.sh b/tasks/noci_test.sh index 4d50039e206..96539f6653b 100755 --- a/tasks/noci_test.sh +++ b/tasks/noci_test.sh @@ -28,7 +28,7 @@ test_image () { $root/../orca/bin/orca.js graph \ $root/test/image/mocks/mapbox_osm-style.json \ $root/test/image/mocks/mapbox_density0-legend.json \ - --mathjax $root/node_modules/mathjax-v2/MathJax.js \ + --mathjax $root/node_modules/@plotly/mathjax-v2/MathJax.js \ --plotly $root/build/plotly.js \ --mapbox-access-token "pk.eyJ1IjoicGxvdGx5LWRvY3MiLCJhIjoiY2xpMGYyNWgxMGJhdzNzbXhtNGI0Nnk0aSJ9.0oBvi_UUZ0O1N0xk0yfRwg" \ --output-dir $root/test/image/baselines/ \ diff --git a/test/image/baselines/fonts.png b/test/image/baselines/fonts.png index 476e93f6f8a..0f50d8dd60a 100644 Binary files a/test/image/baselines/fonts.png and b/test/image/baselines/fonts.png differ diff --git a/test/image/baselines/gl2d_fonts.png b/test/image/baselines/gl2d_fonts.png index a10de701926..880de8b6f02 100644 Binary files a/test/image/baselines/gl2d_fonts.png and b/test/image/baselines/gl2d_fonts.png differ diff --git a/test/image/baselines/map_0.png b/test/image/baselines/map_0.png index 6f84941427f..3881df58113 100644 Binary files a/test/image/baselines/map_0.png and b/test/image/baselines/map_0.png differ diff --git a/test/image/baselines/map_angles.png b/test/image/baselines/map_angles.png index ca7d068fee1..34a39531369 100644 Binary files a/test/image/baselines/map_angles.png and b/test/image/baselines/map_angles.png differ diff --git a/test/image/baselines/map_bubbles-text.png b/test/image/baselines/map_bubbles-text.png index a8c9b488077..f04effe39f9 100644 Binary files a/test/image/baselines/map_bubbles-text.png and b/test/image/baselines/map_bubbles-text.png differ diff --git a/test/image/baselines/map_bubbles.png b/test/image/baselines/map_bubbles.png index aaac888edb0..db0b9e5330a 100644 Binary files a/test/image/baselines/map_bubbles.png and b/test/image/baselines/map_bubbles.png differ diff --git a/test/image/baselines/map_carto-style.png b/test/image/baselines/map_carto-style.png index dfc48abc333..8cf861697c5 100644 Binary files a/test/image/baselines/map_carto-style.png and b/test/image/baselines/map_carto-style.png differ diff --git a/test/image/baselines/map_carto-text.png b/test/image/baselines/map_carto-text.png index def93631926..b1996b68c73 100644 Binary files a/test/image/baselines/map_carto-text.png and b/test/image/baselines/map_carto-text.png differ diff --git a/test/image/baselines/map_choropleth-multiple.png b/test/image/baselines/map_choropleth-multiple.png index 81912b9dd44..e9d8ff6a20e 100644 Binary files a/test/image/baselines/map_choropleth-multiple.png and b/test/image/baselines/map_choropleth-multiple.png differ diff --git a/test/image/baselines/map_choropleth-raw-geojson.png b/test/image/baselines/map_choropleth-raw-geojson.png index d0fb5ba2fbb..03c47bdaea6 100644 Binary files a/test/image/baselines/map_choropleth-raw-geojson.png and b/test/image/baselines/map_choropleth-raw-geojson.png differ diff --git a/test/image/baselines/map_connectgaps.png b/test/image/baselines/map_connectgaps.png index bfa8f81446e..1d4abbea346 100644 Binary files a/test/image/baselines/map_connectgaps.png and b/test/image/baselines/map_connectgaps.png differ diff --git a/test/image/baselines/map_custom-style.png b/test/image/baselines/map_custom-style.png index 7f4485c1480..644ec825de7 100644 Binary files a/test/image/baselines/map_custom-style.png and b/test/image/baselines/map_custom-style.png differ diff --git a/test/image/baselines/map_density-multiple.png b/test/image/baselines/map_density-multiple.png index b2676fbb542..5f763269b44 100644 Binary files a/test/image/baselines/map_density-multiple.png and b/test/image/baselines/map_density-multiple.png differ diff --git a/test/image/baselines/map_density-multiple_legend.png b/test/image/baselines/map_density-multiple_legend.png index efcb0e904a0..a6de555ba88 100644 Binary files a/test/image/baselines/map_density-multiple_legend.png and b/test/image/baselines/map_density-multiple_legend.png differ diff --git a/test/image/baselines/map_density0.png b/test/image/baselines/map_density0.png index 3a2cf572b75..3e0da3c5e08 100644 Binary files a/test/image/baselines/map_density0.png and b/test/image/baselines/map_density0.png differ diff --git a/test/image/baselines/map_fill.png b/test/image/baselines/map_fill.png index bc1f9d19378..f5447772458 100644 Binary files a/test/image/baselines/map_fill.png and b/test/image/baselines/map_fill.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-italic.png b/test/image/baselines/map_fonts-supported-metropolis-italic.png index 6aff42e0278..2b51bfc6cdd 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis-italic.png and b/test/image/baselines/map_fonts-supported-metropolis-italic.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis-weight.png b/test/image/baselines/map_fonts-supported-metropolis-weight.png index 91925ddfefb..a239b749370 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis-weight.png and b/test/image/baselines/map_fonts-supported-metropolis-weight.png differ diff --git a/test/image/baselines/map_fonts-supported-metropolis.png b/test/image/baselines/map_fonts-supported-metropolis.png index 91925ddfefb..a239b749370 100644 Binary files a/test/image/baselines/map_fonts-supported-metropolis.png and b/test/image/baselines/map_fonts-supported-metropolis.png differ diff --git a/test/image/baselines/map_fonts-supported-open-sans-weight.png b/test/image/baselines/map_fonts-supported-open-sans-weight.png index 90c4b293ef5..af7155ed80f 100644 Binary files a/test/image/baselines/map_fonts-supported-open-sans-weight.png and b/test/image/baselines/map_fonts-supported-open-sans-weight.png differ diff --git a/test/image/baselines/map_fonts-supported-open-sans.png b/test/image/baselines/map_fonts-supported-open-sans.png index 90c4b293ef5..af7155ed80f 100644 Binary files a/test/image/baselines/map_fonts-supported-open-sans.png and b/test/image/baselines/map_fonts-supported-open-sans.png differ diff --git a/test/image/baselines/map_geojson-attributes.png b/test/image/baselines/map_geojson-attributes.png index 9584687d84c..90d4aad338e 100644 Binary files a/test/image/baselines/map_geojson-attributes.png and b/test/image/baselines/map_geojson-attributes.png differ diff --git a/test/image/baselines/map_layers.png b/test/image/baselines/map_layers.png index 75ee5b12958..34b90b5e581 100644 Binary files a/test/image/baselines/map_layers.png and b/test/image/baselines/map_layers.png differ diff --git a/test/image/baselines/map_scattercluster.png b/test/image/baselines/map_scattercluster.png index cf30007d028..df9e2cddb65 100644 Binary files a/test/image/baselines/map_scattercluster.png and b/test/image/baselines/map_scattercluster.png differ diff --git a/test/image/baselines/map_symbol-text.png b/test/image/baselines/map_symbol-text.png index c3af17ac8cd..ceef1de0b9f 100644 Binary files a/test/image/baselines/map_symbol-text.png and b/test/image/baselines/map_symbol-text.png differ diff --git a/test/image/baselines/map_texttemplate.png b/test/image/baselines/map_texttemplate.png index 8668efb677e..376b9e38d88 100644 Binary files a/test/image/baselines/map_texttemplate.png and b/test/image/baselines/map_texttemplate.png differ diff --git a/test/image/baselines/zzz_zerolinelayer_above.png b/test/image/baselines/zzz_zerolinelayer_above.png new file mode 100644 index 00000000000..485700eec31 Binary files /dev/null and b/test/image/baselines/zzz_zerolinelayer_above.png differ diff --git a/test/image/baselines/zzz_zerolinelayer_below.png b/test/image/baselines/zzz_zerolinelayer_below.png new file mode 100644 index 00000000000..a287931572d Binary files /dev/null and b/test/image/baselines/zzz_zerolinelayer_below.png differ diff --git a/test/image/mocks/zzz_zerolinelayer_above.json b/test/image/mocks/zzz_zerolinelayer_above.json new file mode 100644 index 00000000000..ac9adfd45bc --- /dev/null +++ b/test/image/mocks/zzz_zerolinelayer_above.json @@ -0,0 +1,58 @@ +{ + "data": [ + { + "type": "bar", + "x": [-1, 0, 2, 3], + "y": [-1, 2, -3, 4], + "name": "xy" + }, + { + "line": { + "width": 10 + }, + "mode": "lines", + "x": [-1, 0, 2, 3], + "y": [-3, 1, -1, 2], + "xaxis": "x2", + "yaxis": "y2", + "name": "x2y2" + } + ], + "layout": { + "title": { + "text": "All zerolines above traces (x/x2: pink, y/y2: black)" + }, + "width": 600, + "height": 400, + "xaxis": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "pink", + "zerolinelayer": "above traces" + }, + "xaxis2": { + "overlaying": "x", + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "pink", + "zerolinelayer": "above traces", + "side": "top" + }, + "yaxis": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "black", + "zerolinelayer": "above traces", + "range": [-1, 4] + }, + "yaxis2": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "black", + "zerolinelayer": "above traces", + "range": [-3, 2], + "overlaying": "y", + "side": "right" + } + } +} diff --git a/test/image/mocks/zzz_zerolinelayer_below.json b/test/image/mocks/zzz_zerolinelayer_below.json new file mode 100644 index 00000000000..0f555541057 --- /dev/null +++ b/test/image/mocks/zzz_zerolinelayer_below.json @@ -0,0 +1,58 @@ +{ + "data": [ + { + "type": "bar", + "x": [-1, 0, 2, 3], + "y": [-1, 2, -3, 4], + "name": "xy" + }, + { + "line": { + "width": 10 + }, + "mode": "lines", + "x": [-1, 0, 2, 3], + "y": [-3, 1, -1, 2], + "xaxis": "x2", + "yaxis": "y2", + "name": "x2y2" + } + ], + "layout": { + "title": { + "text": "All zerolines below traces (x/x2: pink, y/y2: black)" + }, + "width": 600, + "height": 400, + "xaxis": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "pink", + "zerolinelayer": "below traces" + }, + "xaxis2": { + "overlaying": "x", + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "pink", + "zerolinelayer": "below traces", + "side": "top" + }, + "yaxis": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "black", + "zerolinelayer": "below traces", + "range": [-1, 4] + }, + "yaxis2": { + "zeroline": true, + "zerolinewidth": 5, + "zerolinecolor": "black", + "zerolinelayer": "below traces", + "range": [-3, 2], + "overlaying": "y", + "side": "right" + } + } +} diff --git a/test/jasmine/bundle_tests/mathjax_config_test.js b/test/jasmine/bundle_tests/mathjax_config_test.js index 530564d889a..1d80b6ca933 100644 --- a/test/jasmine/bundle_tests/mathjax_config_test.js +++ b/test/jasmine/bundle_tests/mathjax_config_test.js @@ -28,8 +28,8 @@ describe('Test MathJax v' + mathjaxVersion + ' config test:', function() { } var src = mathjaxVersion === 3 ? - '/base/node_modules/mathjax-v3/es5/tex-svg.js' : - '/base/node_modules/mathjax-v2/MathJax.js?config=TeX-AMS_SVG'; + '/base/node_modules/@plotly/mathjax-v3/es5/tex-svg.js' : + '/base/node_modules/@plotly/mathjax-v2/MathJax.js?config=TeX-AMS_SVG'; loadScript(src, done); }); diff --git a/test/jasmine/bundle_tests/mathjax_test.js b/test/jasmine/bundle_tests/mathjax_test.js index 9aac4406653..4b5d03a4b4b 100644 --- a/test/jasmine/bundle_tests/mathjax_test.js +++ b/test/jasmine/bundle_tests/mathjax_test.js @@ -11,8 +11,8 @@ var mathjaxVersion = __karma__.config.mathjaxVersion; describe('Test MathJax v' + mathjaxVersion + ':', function() { beforeAll(function(done) { var src = mathjaxVersion === 3 ? - '/base/node_modules/mathjax-v3/es5/tex-svg.js' : - '/base/node_modules/mathjax-v2/MathJax.js?config=TeX-AMS-MML_SVG'; + '/base/node_modules/@plotly/mathjax-v3/es5/tex-svg.js' : + '/base/node_modules/@plotly/mathjax-v2/MathJax.js?config=TeX-AMS-MML_SVG'; // N.B. we have to load MathJax "dynamically" as Karma // does not undefined the MathJax's `?config=` parameter. diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js index eb350abccfe..f66235d7593 100644 --- a/test/jasmine/karma.conf.js +++ b/test/jasmine/karma.conf.js @@ -119,8 +119,8 @@ if(isFullSuite) { var pathToCustomMatchers = path.join(__dirname, 'assets', 'custom_matchers.js'); var pathToSaneTopojsonDist = path.join(__dirname, '..', '..', 'node_modules', 'sane-topojson', 'dist'); -var pathToMathJax2 = path.join(__dirname, '..', '..', 'node_modules', 'mathjax-v2'); -var pathToMathJax3 = path.join(__dirname, '..', '..', 'node_modules', 'mathjax-v3'); +var pathToMathJax2 = path.join(__dirname, '..', '..', 'node_modules', '@plotly/mathjax-v2'); +var pathToMathJax3 = path.join(__dirname, '..', '..', 'node_modules', '@plotly/mathjax-v3'); var pathToVirtualWebgl = path.join(__dirname, '..', '..', 'node_modules', 'virtual-webgl', 'src', 'virtual-webgl.js'); var reporters = []; diff --git a/test/jasmine/tests/splom_test.js b/test/jasmine/tests/splom_test.js index 44cede6e3fe..69560d7d5bd 100644 --- a/test/jasmine/tests/splom_test.js +++ b/test/jasmine/tests/splom_test.js @@ -799,7 +799,7 @@ describe('Test splom interactions:', function() { .then(function() { _assert({ subplotCnt: 25, - innerSubplotNodeCnt: 18, + innerSubplotNodeCnt: 19, hasSplomGrid: false, bgCnt: 0 }); @@ -819,7 +819,7 @@ describe('Test splom interactions:', function() { // grid layer would be above xaxis layer, // if we didn't clear subplot children. expect(gridIndex).toBe(2, ' index'); - expect(xaxisIndex).toBe(15, ' index'); + expect(xaxisIndex).toBe(16, ' index'); return Plotly.restyle(gd, 'dimensions', [dimsLarge]); }) @@ -831,7 +831,7 @@ describe('Test splom interactions:', function() { // new subplots though have reduced number of children. innerSubplotNodeCnt: function(d) { var p = d.match(SUBPLOT_PATTERN); - return (p[1] > 5 || p[2] > 5) ? 4 : 18; + return (p[1] > 5 || p[2] > 5) ? 4 : 19; }, hasSplomGrid: true, bgCnt: 0 diff --git a/test/plot-schema.json b/test/plot-schema.json index a3e0a63562a..403428a1457 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -3902,7 +3902,7 @@ "symbol": { "editType": "plot", "icon": { - "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.map.com/maki-icons/", + "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.mapbox.com/maki-icons/", "dflt": "marker", "editType": "plot", "valType": "string" @@ -14965,6 +14965,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -16199,6 +16209,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -72083,7 +72103,7 @@ }, "symbol": { "arrayOk": true, - "description": "Sets the marker symbol. Full list: https://www.map.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", + "description": "Sets the marker symbol. Full list: https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", "dflt": "circle", "editType": "calc", "valType": "string"