plotly.js 1.51.2 → 1.52.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -0
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/README.md +25 -25
- package/dist/plot-schema.json +529 -77
- package/dist/plotly-basic.js +1560 -689
- package/dist/plotly-basic.min.js +3 -3
- package/dist/plotly-cartesian.js +2373 -1050
- package/dist/plotly-cartesian.min.js +3 -3
- package/dist/plotly-finance.js +1880 -900
- package/dist/plotly-finance.min.js +3 -3
- package/dist/plotly-geo-assets.js +4 -4
- package/dist/plotly-geo.js +4066 -1010
- package/dist/plotly-geo.min.js +3 -3
- package/dist/plotly-gl2d.js +1142 -556
- package/dist/plotly-gl2d.min.js +3 -3
- package/dist/plotly-gl3d.js +1773 -1022
- package/dist/plotly-gl3d.min.js +3 -3
- package/dist/plotly-locale-af.js +1 -1
- package/dist/plotly-locale-am.js +1 -1
- package/dist/plotly-locale-ar-dz.js +1 -1
- package/dist/plotly-locale-ar-eg.js +1 -1
- package/dist/plotly-locale-ar.js +1 -1
- package/dist/plotly-locale-az.js +1 -1
- package/dist/plotly-locale-bg.js +1 -1
- package/dist/plotly-locale-bs.js +1 -1
- package/dist/plotly-locale-ca.js +1 -1
- package/dist/plotly-locale-cs.js +1 -1
- package/dist/plotly-locale-cy.js +1 -1
- package/dist/plotly-locale-da.js +1 -1
- package/dist/plotly-locale-de-ch.js +1 -1
- package/dist/plotly-locale-de.js +1 -1
- package/dist/plotly-locale-el.js +1 -1
- package/dist/plotly-locale-eo.js +1 -1
- package/dist/plotly-locale-es-ar.js +1 -1
- package/dist/plotly-locale-es-pe.js +1 -1
- package/dist/plotly-locale-es.js +1 -1
- package/dist/plotly-locale-et.js +1 -1
- package/dist/plotly-locale-eu.js +1 -1
- package/dist/plotly-locale-fa.js +1 -1
- package/dist/plotly-locale-fi.js +1 -1
- package/dist/plotly-locale-fo.js +1 -1
- package/dist/plotly-locale-fr-ch.js +1 -1
- package/dist/plotly-locale-fr.js +1 -1
- package/dist/plotly-locale-gl.js +1 -1
- package/dist/plotly-locale-gu.js +1 -1
- package/dist/plotly-locale-he.js +1 -1
- package/dist/plotly-locale-hi-in.js +1 -1
- package/dist/plotly-locale-hr.js +1 -1
- package/dist/plotly-locale-hu.js +1 -1
- package/dist/plotly-locale-hy.js +1 -1
- package/dist/plotly-locale-id.js +1 -1
- package/dist/plotly-locale-is.js +1 -1
- package/dist/plotly-locale-it.js +1 -1
- package/dist/plotly-locale-ja.js +1 -1
- package/dist/plotly-locale-ka.js +1 -1
- package/dist/plotly-locale-km.js +1 -1
- package/dist/plotly-locale-ko.js +1 -1
- package/dist/plotly-locale-lt.js +1 -1
- package/dist/plotly-locale-lv.js +1 -1
- package/dist/plotly-locale-me-me.js +1 -1
- package/dist/plotly-locale-me.js +1 -1
- package/dist/plotly-locale-mk.js +1 -1
- package/dist/plotly-locale-ml.js +1 -1
- package/dist/plotly-locale-ms.js +1 -1
- package/dist/plotly-locale-mt.js +1 -1
- package/dist/plotly-locale-nl-be.js +1 -1
- package/dist/plotly-locale-nl.js +1 -1
- package/dist/plotly-locale-no.js +1 -1
- package/dist/plotly-locale-pa.js +1 -1
- package/dist/plotly-locale-pl.js +1 -1
- package/dist/plotly-locale-pt-br.js +1 -1
- package/dist/plotly-locale-rm.js +1 -1
- package/dist/plotly-locale-ro.js +1 -1
- package/dist/plotly-locale-ru.js +1 -1
- package/dist/plotly-locale-sk.js +1 -1
- package/dist/plotly-locale-sl.js +1 -1
- package/dist/plotly-locale-sq.js +1 -1
- package/dist/plotly-locale-sr-sr.js +1 -1
- package/dist/plotly-locale-sr.js +1 -1
- package/dist/plotly-locale-sv.js +1 -1
- package/dist/plotly-locale-sw.js +1 -1
- package/dist/plotly-locale-ta.js +1 -1
- package/dist/plotly-locale-th.js +1 -1
- package/dist/plotly-locale-tr.js +1 -1
- package/dist/plotly-locale-tt.js +1 -1
- package/dist/plotly-locale-uk.js +1 -1
- package/dist/plotly-locale-ur.js +1 -1
- package/dist/plotly-locale-vi.js +1 -1
- package/dist/plotly-locale-zh-cn.js +1 -1
- package/dist/plotly-locale-zh-hk.js +1 -1
- package/dist/plotly-locale-zh-tw.js +1 -1
- package/dist/plotly-mapbox.js +1749 -1849
- package/dist/plotly-mapbox.min.js +3 -3
- package/dist/plotly-with-meta.js +6225 -3884
- package/dist/plotly.js +5898 -3754
- package/dist/plotly.min.js +3 -3
- package/dist/translation-keys.txt +17 -17
- package/lib/aggregate.js +1 -1
- package/lib/bar.js +1 -1
- package/lib/barpolar.js +1 -1
- package/lib/box.js +1 -1
- package/lib/calendars.js +1 -1
- package/lib/candlestick.js +1 -1
- package/lib/carpet.js +1 -1
- package/lib/choropleth.js +1 -1
- package/lib/choroplethmapbox.js +1 -1
- package/lib/cone.js +1 -1
- package/lib/contour.js +1 -1
- package/lib/contourcarpet.js +1 -1
- package/lib/contourgl.js +1 -1
- package/lib/core.js +1 -1
- package/lib/densitymapbox.js +1 -1
- package/lib/filter.js +1 -1
- package/lib/funnel.js +1 -1
- package/lib/funnelarea.js +1 -1
- package/lib/groupby.js +1 -1
- package/lib/heatmap.js +1 -1
- package/lib/heatmapgl.js +1 -1
- package/lib/histogram.js +1 -1
- package/lib/histogram2d.js +1 -1
- package/lib/histogram2dcontour.js +1 -1
- package/lib/image.js +1 -1
- package/lib/index-basic.js +1 -1
- package/lib/index-cartesian.js +1 -1
- package/lib/index-finance.js +1 -1
- package/lib/index-geo.js +1 -1
- package/lib/index-gl2d.js +1 -1
- package/lib/index-gl3d.js +1 -1
- package/lib/index-mapbox.js +1 -1
- package/lib/index.js +1 -1
- package/lib/indicator.js +1 -1
- package/lib/isosurface.js +1 -1
- package/lib/locales/af.js +1 -1
- package/lib/locales/am.js +1 -1
- package/lib/locales/ar-dz.js +1 -1
- package/lib/locales/ar-eg.js +1 -1
- package/lib/locales/ar.js +1 -1
- package/lib/locales/az.js +1 -1
- package/lib/locales/bg.js +1 -1
- package/lib/locales/bs.js +1 -1
- package/lib/locales/ca.js +1 -1
- package/lib/locales/cs.js +1 -1
- package/lib/locales/cy.js +1 -1
- package/lib/locales/da.js +1 -1
- package/lib/locales/de-ch.js +1 -1
- package/lib/locales/de.js +1 -1
- package/lib/locales/el.js +1 -1
- package/lib/locales/eo.js +1 -1
- package/lib/locales/es-ar.js +1 -1
- package/lib/locales/es-pe.js +1 -1
- package/lib/locales/es.js +1 -1
- package/lib/locales/et.js +1 -1
- package/lib/locales/eu.js +1 -1
- package/lib/locales/fa.js +1 -1
- package/lib/locales/fi.js +1 -1
- package/lib/locales/fo.js +1 -1
- package/lib/locales/fr-ch.js +1 -1
- package/lib/locales/fr.js +1 -1
- package/lib/locales/gl.js +1 -1
- package/lib/locales/gu.js +1 -1
- package/lib/locales/he.js +1 -1
- package/lib/locales/hi-in.js +1 -1
- package/lib/locales/hr.js +1 -1
- package/lib/locales/hu.js +1 -1
- package/lib/locales/hy.js +1 -1
- package/lib/locales/id.js +1 -1
- package/lib/locales/is.js +1 -1
- package/lib/locales/it.js +1 -1
- package/lib/locales/ja.js +1 -1
- package/lib/locales/ka.js +1 -1
- package/lib/locales/km.js +1 -1
- package/lib/locales/ko.js +54 -2
- package/lib/locales/lt.js +1 -1
- package/lib/locales/lv.js +1 -1
- package/lib/locales/me-me.js +1 -1
- package/lib/locales/me.js +1 -1
- package/lib/locales/mk.js +1 -1
- package/lib/locales/ml.js +1 -1
- package/lib/locales/ms.js +1 -1
- package/lib/locales/mt.js +1 -1
- package/lib/locales/nl-be.js +1 -1
- package/lib/locales/nl.js +1 -1
- package/lib/locales/no.js +1 -1
- package/lib/locales/pa.js +1 -1
- package/lib/locales/pl.js +1 -1
- package/lib/locales/pt-br.js +1 -1
- package/lib/locales/rm.js +1 -1
- package/lib/locales/ro.js +1 -1
- package/lib/locales/ru.js +1 -1
- package/lib/locales/sk.js +1 -1
- package/lib/locales/sl.js +1 -1
- package/lib/locales/sq.js +1 -1
- package/lib/locales/sr-sr.js +1 -1
- package/lib/locales/sr.js +1 -1
- package/lib/locales/sv.js +1 -1
- package/lib/locales/sw.js +1 -1
- package/lib/locales/ta.js +1 -1
- package/lib/locales/th.js +1 -1
- package/lib/locales/tr.js +1 -1
- package/lib/locales/tt.js +1 -1
- package/lib/locales/uk.js +1 -1
- package/lib/locales/ur.js +1 -1
- package/lib/locales/vi.js +1 -1
- package/lib/locales/zh-cn.js +1 -1
- package/lib/locales/zh-hk.js +1 -1
- package/lib/locales/zh-tw.js +1 -1
- package/lib/mesh3d.js +1 -1
- package/lib/ohlc.js +1 -1
- package/lib/parcats.js +1 -1
- package/lib/parcoords.js +1 -1
- package/lib/pie.js +1 -1
- package/lib/pointcloud.js +1 -1
- package/lib/sankey.js +1 -1
- package/lib/scatter.js +1 -1
- package/lib/scatter3d.js +1 -1
- package/lib/scattercarpet.js +1 -1
- package/lib/scattergeo.js +1 -1
- package/lib/scattergl.js +1 -1
- package/lib/scattermapbox.js +1 -1
- package/lib/scatterpolar.js +1 -1
- package/lib/scatterpolargl.js +1 -1
- package/lib/scatterternary.js +1 -1
- package/lib/sort.js +1 -1
- package/lib/splom.js +1 -1
- package/lib/streamtube.js +1 -1
- package/lib/sunburst.js +1 -1
- package/lib/surface.js +1 -1
- package/lib/table.js +1 -1
- package/lib/treemap.js +1 -1
- package/lib/violin.js +1 -1
- package/lib/volume.js +1 -1
- package/lib/waterfall.js +1 -1
- package/package.json +25 -23
- package/src/assets/geo_assets.js +2 -2
- package/src/components/annotations/arrow_paths.js +1 -1
- package/src/components/annotations/attributes.js +2 -2
- package/src/components/annotations/calc_autorange.js +1 -1
- package/src/components/annotations/click.js +1 -1
- package/src/components/annotations/common_defaults.js +1 -1
- package/src/components/annotations/convert_coords.js +1 -1
- package/src/components/annotations/defaults.js +1 -1
- package/src/components/annotations/draw.js +1 -1
- package/src/components/annotations/draw_arrow_head.js +1 -1
- package/src/components/annotations/index.js +1 -1
- package/src/components/annotations3d/attributes.js +1 -1
- package/src/components/annotations3d/convert.js +1 -1
- package/src/components/annotations3d/defaults.js +1 -1
- package/src/components/annotations3d/draw.js +1 -1
- package/src/components/annotations3d/index.js +1 -1
- package/src/components/calendars/calendars.js +1 -1
- package/src/components/calendars/index.js +1 -1
- package/src/components/color/attributes.js +1 -1
- package/src/components/color/index.js +1 -1
- package/src/components/colorbar/attributes.js +1 -1
- package/src/components/colorbar/constants.js +1 -1
- package/src/components/colorbar/defaults.js +1 -1
- package/src/components/colorbar/draw.js +1 -1
- package/src/components/colorbar/has_colorbar.js +1 -1
- package/src/components/colorbar/index.js +1 -1
- package/src/components/colorscale/attributes.js +1 -1
- package/src/components/colorscale/calc.js +1 -1
- package/src/components/colorscale/cross_trace_defaults.js +1 -1
- package/src/components/colorscale/defaults.js +5 -2
- package/src/components/colorscale/helpers.js +1 -1
- package/src/components/colorscale/index.js +1 -1
- package/src/components/colorscale/layout_attributes.js +1 -1
- package/src/components/colorscale/layout_defaults.js +1 -1
- package/src/components/colorscale/scales.js +1 -1
- package/src/components/dragelement/align.js +1 -1
- package/src/components/dragelement/cursor.js +1 -1
- package/src/components/dragelement/index.js +1 -1
- package/src/components/dragelement/unhover.js +1 -1
- package/src/components/drawing/attributes.js +1 -1
- package/src/components/drawing/index.js +40 -15
- package/src/components/drawing/symbol_defs.js +1 -1
- package/src/components/errorbars/attributes.js +1 -1
- package/src/components/errorbars/calc.js +1 -1
- package/src/components/errorbars/compute_error.js +1 -1
- package/src/components/errorbars/defaults.js +1 -1
- package/src/components/errorbars/index.js +1 -1
- package/src/components/errorbars/plot.js +1 -1
- package/src/components/errorbars/style.js +1 -1
- package/src/components/fx/attributes.js +1 -1
- package/src/components/fx/calc.js +1 -1
- package/src/components/fx/click.js +1 -1
- package/src/components/fx/constants.js +1 -1
- package/src/components/fx/defaults.js +1 -1
- package/src/components/fx/helpers.js +1 -1
- package/src/components/fx/hover.js +1 -1
- package/src/components/fx/hoverlabel_defaults.js +1 -1
- package/src/components/fx/index.js +1 -1
- package/src/components/fx/layout_attributes.js +1 -1
- package/src/components/fx/layout_defaults.js +1 -1
- package/src/components/fx/layout_global_defaults.js +1 -1
- package/src/components/grid/index.js +1 -1
- package/src/components/images/attributes.js +1 -1
- package/src/components/images/convert_coords.js +1 -1
- package/src/components/images/defaults.js +1 -1
- package/src/components/images/draw.js +1 -1
- package/src/components/images/index.js +1 -1
- package/src/components/legend/attributes.js +34 -1
- package/src/components/legend/constants.js +3 -1
- package/src/components/legend/defaults.js +15 -2
- package/src/components/legend/draw.js +96 -29
- package/src/components/legend/get_legend_data.js +1 -1
- package/src/components/legend/handle_click.js +7 -4
- package/src/components/legend/helpers.js +1 -1
- package/src/components/legend/index.js +1 -1
- package/src/components/legend/style.js +128 -3
- package/src/components/modebar/buttons.js +43 -5
- package/src/components/modebar/index.js +1 -1
- package/src/components/modebar/manage.js +2 -1
- package/src/components/modebar/modebar.js +1 -1
- package/src/components/rangeselector/attributes.js +1 -1
- package/src/components/rangeselector/constants.js +1 -1
- package/src/components/rangeselector/defaults.js +1 -1
- package/src/components/rangeselector/draw.js +1 -1
- package/src/components/rangeselector/get_update_object.js +1 -1
- package/src/components/rangeselector/index.js +1 -1
- package/src/components/rangeslider/attributes.js +1 -1
- package/src/components/rangeslider/calc_autorange.js +1 -1
- package/src/components/rangeslider/constants.js +1 -1
- package/src/components/rangeslider/defaults.js +1 -1
- package/src/components/rangeslider/draw.js +1 -1
- package/src/components/rangeslider/helpers.js +1 -1
- package/src/components/rangeslider/index.js +1 -1
- package/src/components/rangeslider/oppaxis_attributes.js +1 -1
- package/src/components/shapes/attributes.js +1 -1
- package/src/components/shapes/calc_autorange.js +1 -1
- package/src/components/shapes/constants.js +1 -1
- package/src/components/shapes/defaults.js +1 -1
- package/src/components/shapes/draw.js +1 -1
- package/src/components/shapes/helpers.js +1 -1
- package/src/components/shapes/index.js +1 -1
- package/src/components/sliders/attributes.js +1 -1
- package/src/components/sliders/constants.js +1 -1
- package/src/components/sliders/defaults.js +1 -1
- package/src/components/sliders/draw.js +1 -1
- package/src/components/sliders/index.js +1 -1
- package/src/components/titles/index.js +1 -1
- package/src/components/updatemenus/attributes.js +1 -1
- package/src/components/updatemenus/constants.js +1 -1
- package/src/components/updatemenus/defaults.js +1 -1
- package/src/components/updatemenus/draw.js +1 -1
- package/src/components/updatemenus/index.js +1 -1
- package/src/components/updatemenus/scrollbox.js +1 -1
- package/src/constants/alignment.js +1 -1
- package/src/constants/delta.js +1 -1
- package/src/constants/docs.js +1 -1
- package/src/constants/filter_ops.js +1 -1
- package/src/constants/gl3d_dashes.js +1 -1
- package/src/constants/gl3d_markers.js +1 -1
- package/src/constants/interactions.js +1 -1
- package/src/constants/numerical.js +1 -1
- package/src/constants/xmlns_namespaces.js +1 -1
- package/src/core.js +8 -2
- package/src/fonts/mathjax_config.js +1 -1
- package/src/fonts/ploticon.js +1 -1
- package/src/lib/anchor_utils.js +1 -1
- package/src/lib/angles.js +1 -1
- package/src/lib/array.js +1 -1
- package/src/lib/clean_number.js +1 -1
- package/src/lib/clear_gl_canvases.js +1 -1
- package/src/lib/clear_responsive.js +1 -1
- package/src/lib/coerce.js +1 -1
- package/src/lib/dates.js +1 -1
- package/src/lib/dom.js +1 -1
- package/src/lib/events.js +1 -1
- package/src/lib/extend.js +1 -1
- package/src/lib/filter_unique.js +1 -1
- package/src/lib/filter_visible.js +1 -1
- package/src/lib/geo_location_utils.js +312 -7
- package/src/lib/geojson_utils.js +1 -1
- package/src/lib/geometry2d.js +1 -1
- package/src/lib/gl_format_color.js +1 -1
- package/src/lib/gup.js +1 -1
- package/src/lib/identity.js +1 -1
- package/src/lib/index.js +57 -31
- package/src/lib/is_plain_object.js +1 -1
- package/src/lib/keyed_container.js +1 -1
- package/src/lib/localize.js +1 -1
- package/src/lib/loggers.js +36 -10
- package/src/lib/make_trace_groups.js +1 -1
- package/src/lib/matrix.js +1 -1
- package/src/lib/mod.js +1 -1
- package/src/lib/nested_property.js +1 -1
- package/src/lib/noop.js +1 -1
- package/src/lib/notifier.js +13 -7
- package/src/lib/override_cursor.js +1 -1
- package/src/lib/polygon.js +1 -1
- package/src/lib/prepare_regl.js +1 -1
- package/src/lib/push_unique.js +1 -1
- package/src/lib/queue.js +1 -1
- package/src/lib/regex.js +1 -1
- package/src/lib/relative_attr.js +1 -1
- package/src/lib/relink_private.js +1 -1
- package/src/lib/search.js +1 -1
- package/src/lib/setcursor.js +1 -1
- package/src/lib/show_no_webgl_msg.js +1 -1
- package/src/lib/stats.js +1 -1
- package/src/lib/str2rgbarray.js +1 -1
- package/src/lib/svg_text_utils.js +1 -1
- package/src/lib/throttle.js +1 -1
- package/src/lib/to_log_range.js +1 -1
- package/src/lib/topojson_utils.js +1 -1
- package/src/locale-en-us.js +1 -1
- package/src/locale-en.js +1 -1
- package/src/plot_api/container_array_match.js +1 -1
- package/src/plot_api/edit_types.js +1 -1
- package/src/plot_api/helpers.js +1 -1
- package/src/plot_api/index.js +1 -1
- package/src/plot_api/manage_arrays.js +1 -1
- package/src/plot_api/plot_api.js +2 -2
- package/src/plot_api/plot_config.js +19 -2
- package/src/plot_api/plot_schema.js +1 -1
- package/src/plot_api/plot_template.js +1 -1
- package/src/plot_api/subroutines.js +7 -1
- package/src/plot_api/template_api.js +1 -1
- package/src/plot_api/to_image.js +1 -1
- package/src/plot_api/validate.js +5 -4
- package/src/plots/animation_attributes.js +1 -1
- package/src/plots/array_container_defaults.js +1 -1
- package/src/plots/attributes.js +1 -1
- package/src/plots/cartesian/attributes.js +1 -1
- package/src/plots/cartesian/autorange.js +1 -1
- package/src/plots/cartesian/axes.js +7 -3
- package/src/plots/cartesian/axis_autotype.js +1 -1
- package/src/plots/cartesian/axis_defaults.js +1 -1
- package/src/plots/cartesian/axis_ids.js +1 -1
- package/src/plots/cartesian/category_order_defaults.js +1 -1
- package/src/plots/cartesian/clean_ticks.js +1 -1
- package/src/plots/cartesian/constants.js +2 -3
- package/src/plots/cartesian/constraints.js +1 -1
- package/src/plots/cartesian/dragbox.js +1 -1
- package/src/plots/cartesian/graph_interact.js +1 -1
- package/src/plots/cartesian/include_components.js +1 -1
- package/src/plots/cartesian/index.js +1 -1
- package/src/plots/cartesian/layout_attributes.js +1 -1
- package/src/plots/cartesian/layout_defaults.js +113 -28
- package/src/plots/cartesian/line_grid_defaults.js +1 -1
- package/src/plots/cartesian/position_defaults.js +1 -1
- package/src/plots/cartesian/scale_zoom.js +1 -1
- package/src/plots/cartesian/select.js +1 -1
- package/src/plots/cartesian/set_convert.js +1 -1
- package/src/plots/cartesian/tick_label_defaults.js +1 -1
- package/src/plots/cartesian/tick_mark_defaults.js +1 -1
- package/src/plots/cartesian/tick_value_defaults.js +1 -1
- package/src/plots/cartesian/transition_axes.js +1 -1
- package/src/plots/cartesian/type_defaults.js +11 -3
- package/src/plots/command.js +1 -1
- package/src/plots/domain.js +1 -1
- package/src/plots/font_attributes.js +1 -1
- package/src/plots/frame_attributes.js +1 -1
- package/src/plots/geo/constants.js +1 -1
- package/src/plots/geo/geo.js +114 -51
- package/src/plots/geo/index.js +1 -1
- package/src/plots/geo/layout_attributes.js +34 -1
- package/src/plots/geo/layout_defaults.js +80 -15
- package/src/plots/geo/projections.js +1 -1
- package/src/plots/geo/zoom.js +2 -2
- package/src/plots/get_data.js +1 -1
- package/src/plots/gl2d/camera.js +1 -1
- package/src/plots/gl2d/convert.js +1 -1
- package/src/plots/gl2d/index.js +1 -1
- package/src/plots/gl2d/scene2d.js +1 -1
- package/src/plots/gl3d/index.js +1 -1
- package/src/plots/gl3d/layout/attributes.js +1 -1
- package/src/plots/gl3d/layout/axis_attributes.js +1 -1
- package/src/plots/gl3d/layout/axis_defaults.js +1 -1
- package/src/plots/gl3d/layout/convert.js +1 -1
- package/src/plots/gl3d/layout/defaults.js +1 -1
- package/src/plots/gl3d/layout/layout_attributes.js +1 -1
- package/src/plots/gl3d/layout/spikes.js +1 -1
- package/src/plots/gl3d/layout/tick_marks.js +1 -1
- package/src/plots/gl3d/project.js +1 -1
- package/src/plots/gl3d/scene.js +362 -324
- package/src/plots/gl3d/zip3.js +1 -1
- package/src/plots/layout_attributes.js +33 -3
- package/src/plots/mapbox/constants.js +1 -1
- package/src/plots/mapbox/convert_text_opts.js +1 -1
- package/src/plots/mapbox/index.js +2 -1
- package/src/plots/mapbox/layers.js +28 -1
- package/src/plots/mapbox/layout_attributes.js +1 -1
- package/src/plots/mapbox/layout_defaults.js +1 -1
- package/src/plots/mapbox/mapbox.js +46 -54
- package/src/plots/pad_attributes.js +1 -1
- package/src/plots/plots.js +55 -14
- package/src/plots/polar/constants.js +1 -1
- package/src/plots/polar/helpers.js +1 -1
- package/src/plots/polar/index.js +1 -1
- package/src/plots/polar/layout_attributes.js +1 -1
- package/src/plots/polar/layout_defaults.js +1 -1
- package/src/plots/polar/legacy/area_attributes.js +1 -1
- package/src/plots/polar/legacy/axis_attributes.js +1 -1
- package/src/plots/polar/legacy/index.js +1 -1
- package/src/plots/polar/legacy/micropolar.js +1 -1
- package/src/plots/polar/legacy/micropolar_manager.js +1 -1
- package/src/plots/polar/legacy/undo_manager.js +1 -1
- package/src/plots/polar/polar.js +1 -1
- package/src/plots/polar/set_convert.js +1 -1
- package/src/plots/subplot_defaults.js +1 -1
- package/src/plots/template_attributes.js +1 -1
- package/src/plots/ternary/index.js +1 -1
- package/src/plots/ternary/layout_attributes.js +1 -1
- package/src/plots/ternary/layout_defaults.js +1 -1
- package/src/plots/ternary/ternary.js +1 -1
- package/src/registry.js +1 -1
- package/src/snapshot/cloneplot.js +1 -1
- package/src/snapshot/download.js +1 -1
- package/src/snapshot/filesaver.js +1 -1
- package/src/snapshot/helpers.js +1 -1
- package/src/snapshot/index.js +1 -1
- package/src/snapshot/svgtoimg.js +1 -1
- package/src/snapshot/toimage.js +1 -1
- package/src/snapshot/tosvg.js +21 -13
- package/src/traces/bar/arrays_to_calcdata.js +1 -1
- package/src/traces/bar/attributes.js +1 -1
- package/src/traces/bar/calc.js +1 -1
- package/src/traces/bar/constants.js +1 -1
- package/src/traces/bar/cross_trace_calc.js +1 -1
- package/src/traces/bar/defaults.js +10 -2
- package/src/traces/bar/event_data.js +1 -1
- package/src/traces/bar/helpers.js +1 -1
- package/src/traces/bar/hover.js +7 -2
- package/src/traces/bar/index.js +1 -1
- package/src/traces/bar/layout_attributes.js +1 -1
- package/src/traces/bar/layout_defaults.js +1 -1
- package/src/traces/bar/plot.js +139 -91
- package/src/traces/bar/select.js +1 -1
- package/src/traces/bar/sieve.js +1 -1
- package/src/traces/bar/style.js +9 -4
- package/src/traces/bar/style_defaults.js +1 -1
- package/src/traces/bar/uniform_text.js +84 -0
- package/src/traces/barpolar/attributes.js +1 -1
- package/src/traces/barpolar/calc.js +1 -1
- package/src/traces/barpolar/defaults.js +1 -1
- package/src/traces/barpolar/hover.js +1 -1
- package/src/traces/barpolar/index.js +1 -1
- package/src/traces/barpolar/layout_attributes.js +1 -1
- package/src/traces/barpolar/layout_defaults.js +1 -1
- package/src/traces/barpolar/plot.js +1 -1
- package/src/traces/box/attributes.js +204 -42
- package/src/traces/box/calc.js +286 -92
- package/src/traces/box/cross_trace_calc.js +1 -1
- package/src/traces/box/defaults.js +186 -22
- package/src/traces/box/event_data.js +1 -1
- package/src/traces/box/hover.js +1 -1
- package/src/traces/box/index.js +25 -12
- package/src/traces/box/layout_attributes.js +1 -1
- package/src/traces/box/layout_defaults.js +1 -1
- package/src/traces/box/plot.js +1 -1
- package/src/traces/box/select.js +1 -1
- package/src/traces/box/style.js +1 -1
- package/src/traces/candlestick/attributes.js +1 -1
- package/src/traces/candlestick/calc.js +1 -1
- package/src/traces/candlestick/defaults.js +1 -1
- package/src/traces/candlestick/index.js +1 -1
- package/src/traces/carpet/ab_defaults.js +1 -1
- package/src/traces/carpet/array_minmax.js +1 -1
- package/src/traces/carpet/attributes.js +1 -1
- package/src/traces/carpet/axis_aligned_line.js +1 -1
- package/src/traces/carpet/axis_attributes.js +1 -1
- package/src/traces/carpet/axis_defaults.js +1 -1
- package/src/traces/carpet/calc.js +1 -1
- package/src/traces/carpet/calc_clippath.js +1 -1
- package/src/traces/carpet/calc_gridlines.js +1 -1
- package/src/traces/carpet/calc_labels.js +1 -1
- package/src/traces/carpet/catmull_rom.js +1 -1
- package/src/traces/carpet/cheater_basis.js +1 -1
- package/src/traces/carpet/compute_control_points.js +1 -1
- package/src/traces/carpet/constants.js +1 -1
- package/src/traces/carpet/create_i_derivative_evaluator.js +1 -1
- package/src/traces/carpet/create_j_derivative_evaluator.js +1 -1
- package/src/traces/carpet/create_spline_evaluator.js +1 -1
- package/src/traces/carpet/defaults.js +1 -1
- package/src/traces/carpet/index.js +1 -1
- package/src/traces/carpet/lookup_carpetid.js +1 -1
- package/src/traces/carpet/makepath.js +1 -1
- package/src/traces/carpet/map_1d_array.js +1 -1
- package/src/traces/carpet/orient_text.js +1 -1
- package/src/traces/carpet/plot.js +1 -1
- package/src/traces/carpet/set_convert.js +1 -1
- package/src/traces/carpet/smooth_fill_2d_array.js +1 -1
- package/src/traces/carpet/smooth_fill_array.js +1 -1
- package/src/traces/carpet/xy_defaults.js +1 -1
- package/src/traces/choropleth/attributes.js +18 -2
- package/src/traces/choropleth/calc.js +1 -1
- package/src/traces/choropleth/defaults.js +13 -3
- package/src/traces/choropleth/event_data.js +4 -2
- package/src/traces/choropleth/hover.js +1 -1
- package/src/traces/choropleth/index.js +3 -2
- package/src/traces/choropleth/plot.js +39 -122
- package/src/traces/choropleth/select.js +1 -1
- package/src/traces/choropleth/style.js +1 -1
- package/src/traces/choroplethmapbox/attributes.js +16 -9
- package/src/traces/choroplethmapbox/convert.js +17 -106
- package/src/traces/choroplethmapbox/defaults.js +3 -1
- package/src/traces/choroplethmapbox/index.js +2 -2
- package/src/traces/choroplethmapbox/plot.js +1 -1
- package/src/traces/cone/attributes.js +4 -2
- package/src/traces/cone/calc.js +1 -1
- package/src/traces/cone/convert.js +1 -1
- package/src/traces/cone/defaults.js +1 -1
- package/src/traces/cone/index.js +2 -2
- package/src/traces/contour/attributes.js +1 -1
- package/src/traces/contour/calc.js +1 -1
- package/src/traces/contour/close_boundaries.js +1 -1
- package/src/traces/contour/colorbar.js +6 -4
- package/src/traces/contour/constants.js +1 -1
- package/src/traces/contour/constraint_defaults.js +1 -1
- package/src/traces/contour/constraint_mapping.js +1 -1
- package/src/traces/contour/contours_defaults.js +1 -1
- package/src/traces/contour/convert_to_constraints.js +1 -1
- package/src/traces/contour/defaults.js +1 -1
- package/src/traces/contour/empty_pathinfo.js +1 -1
- package/src/traces/contour/end_plus.js +1 -1
- package/src/traces/contour/find_all_paths.js +1 -1
- package/src/traces/contour/hover.js +1 -1
- package/src/traces/contour/index.js +1 -1
- package/src/traces/contour/label_defaults.js +1 -1
- package/src/traces/contour/make_color_map.js +1 -1
- package/src/traces/contour/make_crossings.js +1 -1
- package/src/traces/contour/plot.js +1 -1
- package/src/traces/contour/set_contours.js +1 -1
- package/src/traces/contour/style.js +1 -1
- package/src/traces/contour/style_defaults.js +1 -1
- package/src/traces/contourcarpet/attributes.js +1 -1
- package/src/traces/contourcarpet/calc.js +1 -1
- package/src/traces/contourcarpet/defaults.js +1 -1
- package/src/traces/contourcarpet/index.js +1 -1
- package/src/traces/contourcarpet/plot.js +1 -1
- package/src/traces/contourgl/convert.js +1 -1
- package/src/traces/contourgl/index.js +1 -1
- package/src/traces/densitymapbox/attributes.js +3 -2
- package/src/traces/densitymapbox/calc.js +1 -1
- package/src/traces/densitymapbox/convert.js +1 -1
- package/src/traces/densitymapbox/defaults.js +1 -1
- package/src/traces/densitymapbox/event_data.js +1 -1
- package/src/traces/densitymapbox/hover.js +1 -1
- package/src/traces/densitymapbox/index.js +2 -2
- package/src/traces/densitymapbox/plot.js +1 -1
- package/src/traces/funnel/arrays_to_calcdata.js +1 -1
- package/src/traces/funnel/attributes.js +1 -1
- package/src/traces/funnel/calc.js +1 -1
- package/src/traces/funnel/constants.js +1 -1
- package/src/traces/funnel/cross_trace_calc.js +1 -1
- package/src/traces/funnel/defaults.js +1 -1
- package/src/traces/funnel/event_data.js +1 -1
- package/src/traces/funnel/hover.js +1 -1
- package/src/traces/funnel/index.js +1 -1
- package/src/traces/funnel/layout_attributes.js +1 -1
- package/src/traces/funnel/layout_defaults.js +1 -1
- package/src/traces/funnel/plot.js +6 -3
- package/src/traces/funnel/style.js +5 -3
- package/src/traces/funnelarea/attributes.js +1 -1
- package/src/traces/funnelarea/base_plot.js +1 -1
- package/src/traces/funnelarea/calc.js +1 -1
- package/src/traces/funnelarea/defaults.js +11 -9
- package/src/traces/funnelarea/index.js +1 -1
- package/src/traces/funnelarea/layout_attributes.js +1 -1
- package/src/traces/funnelarea/layout_defaults.js +1 -1
- package/src/traces/funnelarea/plot.js +23 -14
- package/src/traces/funnelarea/style.js +6 -2
- package/src/traces/heatmap/attributes.js +4 -2
- package/src/traces/heatmap/calc.js +1 -1
- package/src/traces/heatmap/clean_2d_array.js +1 -1
- package/src/traces/heatmap/colorbar.js +1 -1
- package/src/traces/heatmap/convert_column_xyz.js +6 -1
- package/src/traces/heatmap/defaults.js +1 -1
- package/src/traces/heatmap/find_empties.js +1 -1
- package/src/traces/heatmap/hover.js +2 -2
- package/src/traces/heatmap/index.js +2 -2
- package/src/traces/heatmap/interp2d.js +1 -1
- package/src/traces/heatmap/make_bound_array.js +1 -1
- package/src/traces/heatmap/plot.js +1 -1
- package/src/traces/heatmap/style.js +1 -1
- package/src/traces/heatmap/style_defaults.js +1 -1
- package/src/traces/heatmap/xyz_defaults.js +1 -1
- package/src/traces/heatmapgl/attributes.js +1 -1
- package/src/traces/heatmapgl/convert.js +1 -1
- package/src/traces/heatmapgl/index.js +1 -1
- package/src/traces/histogram/attributes.js +1 -1
- package/src/traces/histogram/average.js +1 -1
- package/src/traces/histogram/bin_attributes.js +1 -1
- package/src/traces/histogram/bin_functions.js +1 -1
- package/src/traces/histogram/bin_label_vals.js +1 -1
- package/src/traces/histogram/calc.js +1 -1
- package/src/traces/histogram/constants.js +1 -1
- package/src/traces/histogram/cross_trace_defaults.js +2 -2
- package/src/traces/histogram/defaults.js +1 -1
- package/src/traces/histogram/event_data.js +1 -1
- package/src/traces/histogram/hover.js +1 -1
- package/src/traces/histogram/index.js +1 -1
- package/src/traces/histogram/norm_functions.js +1 -1
- package/src/traces/histogram2d/attributes.js +4 -2
- package/src/traces/histogram2d/calc.js +1 -1
- package/src/traces/histogram2d/defaults.js +1 -1
- package/src/traces/histogram2d/hover.js +1 -1
- package/src/traces/histogram2d/index.js +2 -3
- package/src/traces/histogram2d/sample_defaults.js +1 -1
- package/src/traces/histogram2dcontour/attributes.js +1 -1
- package/src/traces/histogram2dcontour/defaults.js +1 -1
- package/src/traces/histogram2dcontour/index.js +1 -1
- package/src/traces/image/attributes.js +1 -1
- package/src/traces/image/calc.js +1 -1
- package/src/traces/image/constants.js +1 -1
- package/src/traces/image/defaults.js +1 -1
- package/src/traces/image/event_data.js +1 -1
- package/src/traces/image/hover.js +1 -1
- package/src/traces/image/index.js +1 -1
- package/src/traces/image/plot.js +1 -1
- package/src/traces/image/style.js +1 -1
- package/src/traces/indicator/attributes.js +1 -1
- package/src/traces/indicator/base_plot.js +1 -1
- package/src/traces/indicator/calc.js +1 -1
- package/src/traces/indicator/constants.js +1 -1
- package/src/traces/indicator/defaults.js +1 -1
- package/src/traces/indicator/index.js +1 -1
- package/src/traces/indicator/plot.js +1 -1
- package/src/traces/isosurface/attributes.js +3 -2
- package/src/traces/isosurface/calc.js +23 -6
- package/src/traces/isosurface/convert.js +54 -44
- package/src/traces/isosurface/defaults.js +1 -1
- package/src/traces/isosurface/index.js +2 -2
- package/src/traces/mesh3d/attributes.js +16 -4
- package/src/traces/mesh3d/calc.js +1 -1
- package/src/traces/mesh3d/convert.js +13 -8
- package/src/traces/mesh3d/defaults.js +2 -1
- package/src/traces/mesh3d/index.js +2 -2
- package/src/traces/ohlc/attributes.js +1 -1
- package/src/traces/ohlc/calc.js +1 -1
- package/src/traces/ohlc/defaults.js +1 -1
- package/src/traces/ohlc/hover.js +1 -1
- package/src/traces/ohlc/index.js +1 -1
- package/src/traces/ohlc/ohlc_defaults.js +1 -1
- package/src/traces/ohlc/plot.js +1 -1
- package/src/traces/ohlc/select.js +1 -1
- package/src/traces/ohlc/style.js +1 -1
- package/src/traces/parcats/attributes.js +1 -1
- package/src/traces/parcats/base_plot.js +1 -1
- package/src/traces/parcats/calc.js +1 -1
- package/src/traces/parcats/defaults.js +1 -1
- package/src/traces/parcats/index.js +1 -1
- package/src/traces/parcats/parcats.js +1 -1
- package/src/traces/parcats/plot.js +1 -1
- package/src/traces/parcoords/attributes.js +1 -1
- package/src/traces/parcoords/axisbrush.js +1 -1
- package/src/traces/parcoords/base_plot.js +1 -1
- package/src/traces/parcoords/calc.js +1 -1
- package/src/traces/parcoords/constants.js +1 -1
- package/src/traces/parcoords/defaults.js +1 -1
- package/src/traces/parcoords/helpers.js +1 -1
- package/src/traces/parcoords/index.js +1 -1
- package/src/traces/parcoords/lines.js +1 -1
- package/src/traces/parcoords/merge_length.js +1 -1
- package/src/traces/parcoords/parcoords.js +1 -1
- package/src/traces/parcoords/plot.js +1 -1
- package/src/traces/pie/attributes.js +17 -1
- package/src/traces/pie/base_plot.js +1 -1
- package/src/traces/pie/calc.js +7 -8
- package/src/traces/pie/defaults.js +50 -10
- package/src/traces/pie/event_data.js +1 -1
- package/src/traces/pie/helpers.js +1 -1
- package/src/traces/pie/index.js +2 -2
- package/src/traces/pie/layout_attributes.js +1 -1
- package/src/traces/pie/layout_defaults.js +1 -1
- package/src/traces/pie/plot.js +196 -72
- package/src/traces/pie/style.js +6 -2
- package/src/traces/pie/style_one.js +1 -1
- package/src/traces/pointcloud/attributes.js +1 -1
- package/src/traces/pointcloud/convert.js +1 -1
- package/src/traces/pointcloud/defaults.js +1 -1
- package/src/traces/pointcloud/index.js +1 -1
- package/src/traces/sankey/attributes.js +1 -1
- package/src/traces/sankey/base_plot.js +1 -1
- package/src/traces/sankey/calc.js +1 -1
- package/src/traces/sankey/constants.js +1 -1
- package/src/traces/sankey/defaults.js +1 -1
- package/src/traces/sankey/index.js +1 -1
- package/src/traces/sankey/plot.js +10 -6
- package/src/traces/sankey/render.js +1 -1
- package/src/traces/sankey/select.js +1 -1
- package/src/traces/scatter/arrays_to_calcdata.js +1 -1
- package/src/traces/scatter/attributes.js +1 -1
- package/src/traces/scatter/calc.js +1 -1
- package/src/traces/scatter/calc_selection.js +1 -1
- package/src/traces/scatter/colorscale_calc.js +1 -1
- package/src/traces/scatter/constants.js +1 -1
- package/src/traces/scatter/cross_trace_calc.js +1 -1
- package/src/traces/scatter/cross_trace_defaults.js +1 -1
- package/src/traces/scatter/defaults.js +1 -1
- package/src/traces/scatter/fillcolor_defaults.js +1 -1
- package/src/traces/scatter/format_labels.js +1 -1
- package/src/traces/scatter/get_trace_color.js +1 -1
- package/src/traces/scatter/hover.js +1 -1
- package/src/traces/scatter/index.js +1 -1
- package/src/traces/scatter/line_defaults.js +1 -1
- package/src/traces/scatter/line_points.js +1 -1
- package/src/traces/scatter/line_shape_defaults.js +1 -1
- package/src/traces/scatter/link_traces.js +1 -1
- package/src/traces/scatter/make_bubble_size_func.js +1 -1
- package/src/traces/scatter/marker_colorbar.js +1 -1
- package/src/traces/scatter/marker_defaults.js +1 -1
- package/src/traces/scatter/plot.js +1 -1
- package/src/traces/scatter/select.js +1 -1
- package/src/traces/scatter/stack_defaults.js +1 -1
- package/src/traces/scatter/style.js +1 -1
- package/src/traces/scatter/subtypes.js +1 -1
- package/src/traces/scatter/text_defaults.js +1 -1
- package/src/traces/scatter/xy_defaults.js +1 -1
- package/src/traces/scatter3d/attributes.js +1 -1
- package/src/traces/scatter3d/calc.js +1 -1
- package/src/traces/scatter3d/calc_errors.js +1 -1
- package/src/traces/scatter3d/convert.js +1 -1
- package/src/traces/scatter3d/defaults.js +1 -1
- package/src/traces/scatter3d/index.js +1 -1
- package/src/traces/scattercarpet/attributes.js +1 -1
- package/src/traces/scattercarpet/calc.js +1 -1
- package/src/traces/scattercarpet/defaults.js +1 -1
- package/src/traces/scattercarpet/event_data.js +1 -1
- package/src/traces/scattercarpet/format_labels.js +1 -1
- package/src/traces/scattercarpet/hover.js +1 -1
- package/src/traces/scattercarpet/index.js +1 -1
- package/src/traces/scattercarpet/plot.js +1 -1
- package/src/traces/scattergeo/attributes.js +35 -3
- package/src/traces/scattergeo/calc.js +13 -2
- package/src/traces/scattergeo/defaults.js +26 -24
- package/src/traces/scattergeo/event_data.js +8 -2
- package/src/traces/scattergeo/format_labels.js +1 -1
- package/src/traces/scattergeo/hover.js +1 -1
- package/src/traces/scattergeo/index.js +3 -2
- package/src/traces/scattergeo/plot.js +55 -20
- package/src/traces/scattergeo/select.js +1 -1
- package/src/traces/scattergeo/style.js +1 -1
- package/src/traces/scattergl/attributes.js +1 -1
- package/src/traces/scattergl/calc.js +1 -1
- package/src/traces/scattergl/constants.js +1 -1
- package/src/traces/scattergl/convert.js +14 -10
- package/src/traces/scattergl/defaults.js +3 -2
- package/src/traces/scattergl/edit_style.js +1 -1
- package/src/traces/scattergl/format_labels.js +1 -1
- package/src/traces/scattergl/helpers.js +23 -0
- package/src/traces/scattergl/hover.js +5 -5
- package/src/traces/scattergl/index.js +1 -1
- package/src/traces/scattergl/plot.js +1 -1
- package/src/traces/scattergl/scene_update.js +1 -1
- package/src/traces/scattergl/select.js +1 -1
- package/src/traces/scattermapbox/attributes.js +1 -1
- package/src/traces/scattermapbox/convert.js +1 -1
- package/src/traces/scattermapbox/defaults.js +1 -1
- package/src/traces/scattermapbox/event_data.js +1 -1
- package/src/traces/scattermapbox/format_labels.js +1 -1
- package/src/traces/scattermapbox/hover.js +1 -1
- package/src/traces/scattermapbox/index.js +1 -1
- package/src/traces/scattermapbox/plot.js +1 -1
- package/src/traces/scattermapbox/select.js +1 -1
- package/src/traces/scatterpolar/attributes.js +1 -1
- package/src/traces/scatterpolar/calc.js +1 -1
- package/src/traces/scatterpolar/defaults.js +1 -1
- package/src/traces/scatterpolar/format_labels.js +1 -1
- package/src/traces/scatterpolar/hover.js +1 -1
- package/src/traces/scatterpolar/index.js +1 -1
- package/src/traces/scatterpolar/plot.js +1 -1
- package/src/traces/scatterpolargl/attributes.js +1 -1
- package/src/traces/scatterpolargl/calc.js +1 -1
- package/src/traces/scatterpolargl/defaults.js +1 -1
- package/src/traces/scatterpolargl/format_labels.js +1 -1
- package/src/traces/scatterpolargl/hover.js +1 -1
- package/src/traces/scatterpolargl/index.js +1 -1
- package/src/traces/scatterpolargl/plot.js +1 -1
- package/src/traces/scatterternary/attributes.js +1 -1
- package/src/traces/scatterternary/calc.js +1 -1
- package/src/traces/scatterternary/defaults.js +1 -1
- package/src/traces/scatterternary/event_data.js +1 -1
- package/src/traces/scatterternary/format_labels.js +1 -1
- package/src/traces/scatterternary/hover.js +1 -1
- package/src/traces/scatterternary/index.js +1 -1
- package/src/traces/scatterternary/plot.js +1 -1
- package/src/traces/splom/attributes.js +1 -1
- package/src/traces/splom/base_plot.js +1 -1
- package/src/traces/splom/calc.js +1 -1
- package/src/traces/splom/defaults.js +3 -3
- package/src/traces/splom/edit_style.js +1 -1
- package/src/traces/splom/helpers.js +1 -1
- package/src/traces/splom/hover.js +1 -1
- package/src/traces/splom/index.js +1 -1
- package/src/traces/splom/plot.js +1 -1
- package/src/traces/splom/scene_update.js +1 -1
- package/src/traces/splom/select.js +1 -1
- package/src/traces/streamtube/attributes.js +3 -2
- package/src/traces/streamtube/calc.js +112 -54
- package/src/traces/streamtube/convert.js +7 -7
- package/src/traces/streamtube/defaults.js +1 -1
- package/src/traces/streamtube/index.js +3 -3
- package/src/traces/sunburst/attributes.js +11 -2
- package/src/traces/sunburst/base_plot.js +1 -1
- package/src/traces/sunburst/calc.js +4 -2
- package/src/traces/sunburst/constants.js +1 -1
- package/src/traces/sunburst/defaults.js +7 -2
- package/src/traces/sunburst/fx.js +24 -23
- package/src/traces/sunburst/helpers.js +16 -9
- package/src/traces/sunburst/index.js +1 -1
- package/src/traces/sunburst/layout_attributes.js +1 -1
- package/src/traces/sunburst/layout_defaults.js +1 -1
- package/src/traces/sunburst/plot.js +52 -25
- package/src/traces/sunburst/style.js +6 -2
- package/src/traces/surface/attributes.js +3 -2
- package/src/traces/surface/calc.js +1 -1
- package/src/traces/surface/convert.js +1 -1
- package/src/traces/surface/defaults.js +1 -1
- package/src/traces/surface/index.js +2 -2
- package/src/traces/table/attributes.js +1 -1
- package/src/traces/table/base_plot.js +1 -1
- package/src/traces/table/calc.js +1 -1
- package/src/traces/table/constants.js +1 -1
- package/src/traces/table/data_preparation_helper.js +1 -1
- package/src/traces/table/data_split_helpers.js +1 -1
- package/src/traces/table/defaults.js +1 -1
- package/src/traces/table/index.js +1 -1
- package/src/traces/table/plot.js +1 -1
- package/src/traces/treemap/attributes.js +10 -2
- package/src/traces/treemap/base_plot.js +1 -1
- package/src/traces/treemap/calc.js +1 -1
- package/src/traces/treemap/constants.js +1 -1
- package/src/traces/treemap/defaults.js +8 -5
- package/src/traces/treemap/draw_ancestors.js +9 -11
- package/src/traces/treemap/draw_descendants.js +6 -2
- package/src/traces/treemap/index.js +1 -1
- package/src/traces/treemap/layout_attributes.js +1 -1
- package/src/traces/treemap/layout_defaults.js +1 -1
- package/src/traces/treemap/partition.js +1 -1
- package/src/traces/treemap/plot.js +62 -47
- package/src/traces/treemap/style.js +6 -2
- package/src/traces/violin/attributes.js +5 -2
- package/src/traces/violin/calc.js +1 -1
- package/src/traces/violin/cross_trace_calc.js +1 -1
- package/src/traces/violin/defaults.js +1 -1
- package/src/traces/violin/helpers.js +1 -1
- package/src/traces/violin/hover.js +1 -1
- package/src/traces/violin/index.js +1 -1
- package/src/traces/violin/layout_attributes.js +1 -1
- package/src/traces/violin/layout_defaults.js +1 -1
- package/src/traces/violin/plot.js +1 -1
- package/src/traces/violin/style.js +1 -1
- package/src/traces/volume/attributes.js +3 -2
- package/src/traces/volume/convert.js +13 -13
- package/src/traces/volume/defaults.js +1 -1
- package/src/traces/volume/index.js +2 -2
- package/src/traces/waterfall/attributes.js +1 -1
- package/src/traces/waterfall/calc.js +1 -1
- package/src/traces/waterfall/constants.js +1 -1
- package/src/traces/waterfall/cross_trace_calc.js +1 -1
- package/src/traces/waterfall/defaults.js +1 -1
- package/src/traces/waterfall/event_data.js +1 -1
- package/src/traces/waterfall/hover.js +1 -1
- package/src/traces/waterfall/index.js +1 -1
- package/src/traces/waterfall/layout_attributes.js +1 -1
- package/src/traces/waterfall/layout_defaults.js +1 -1
- package/src/traces/waterfall/plot.js +6 -3
- package/src/traces/waterfall/style.js +5 -3
- package/src/transforms/aggregate.js +1 -1
- package/src/transforms/filter.js +1 -1
- package/src/transforms/groupby.js +2 -2
- package/src/transforms/helpers.js +1 -1
- package/src/transforms/sort.js +1 -1
- package/tasks/noci_test.sh +1 -1
- package/tasks/test_syntax.js +1 -1
- package/tasks/util/constants.js +1 -1
- package/tasks/util/wrap_locale.js +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2012-
|
|
2
|
+
* Copyright 2012-2020, Plotly, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -24,6 +24,8 @@ var axisIds = require('./axis_ids');
|
|
|
24
24
|
var id2name = axisIds.id2name;
|
|
25
25
|
var name2id = axisIds.name2id;
|
|
26
26
|
|
|
27
|
+
var AX_ID_PATTERN = require('./constants').AX_ID_PATTERN;
|
|
28
|
+
|
|
27
29
|
var Registry = require('../../registry');
|
|
28
30
|
var traceIs = Registry.traceIs;
|
|
29
31
|
var getComponentMethod = Registry.getComponentMethod;
|
|
@@ -133,7 +135,28 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
133
135
|
|
|
134
136
|
var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);
|
|
135
137
|
|
|
136
|
-
|
|
138
|
+
// name of single axis (e.g. 'xaxis', 'yaxis2')
|
|
139
|
+
var axName;
|
|
140
|
+
// id of single axis (e.g. 'y', 'x5')
|
|
141
|
+
var axId;
|
|
142
|
+
// 'x' or 'y'
|
|
143
|
+
var axLetter;
|
|
144
|
+
// input layout axis container
|
|
145
|
+
var axLayoutIn;
|
|
146
|
+
// full layout axis container
|
|
147
|
+
var axLayoutOut;
|
|
148
|
+
|
|
149
|
+
function newAxLayoutOut() {
|
|
150
|
+
var traces = ax2traces[axName] || [];
|
|
151
|
+
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
152
|
+
axLayoutOut._annIndices = [];
|
|
153
|
+
axLayoutOut._shapeIndices = [];
|
|
154
|
+
axLayoutOut._imgIndices = [];
|
|
155
|
+
axLayoutOut._subplotsWith = [];
|
|
156
|
+
axLayoutOut._counterAxes = [];
|
|
157
|
+
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
158
|
+
axLayoutOut._id = axId;
|
|
159
|
+
}
|
|
137
160
|
|
|
138
161
|
function coerce(attr, dflt) {
|
|
139
162
|
return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);
|
|
@@ -147,9 +170,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
147
170
|
return (axLetter === 'x') ? yIds : xIds;
|
|
148
171
|
}
|
|
149
172
|
|
|
150
|
-
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
151
|
-
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
152
|
-
|
|
153
173
|
function getOverlayableAxes(axLetter, axName) {
|
|
154
174
|
var list = (axLetter === 'x') ? xNames : yNames;
|
|
155
175
|
var out = [];
|
|
@@ -165,9 +185,30 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
165
185
|
return out;
|
|
166
186
|
}
|
|
167
187
|
|
|
188
|
+
// list of available counter axis names
|
|
189
|
+
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
190
|
+
// list of all x AND y axis ids
|
|
191
|
+
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
192
|
+
// lookup and list of axis ids that axes in axNames have a reference to,
|
|
193
|
+
// even though they are missing from allAxisIds
|
|
194
|
+
var missingMatchedAxisIdsLookup = {};
|
|
195
|
+
var missingMatchedAxisIds = [];
|
|
196
|
+
|
|
197
|
+
// fill in 'missing' axis lookup when an axis is set to match an axis
|
|
198
|
+
// not part of the allAxisIds list, save axis type so that we can propagate
|
|
199
|
+
// it to the missing axes
|
|
200
|
+
function addMissingMatchedAxis() {
|
|
201
|
+
var matchesIn = axLayoutIn.matches;
|
|
202
|
+
if(AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {
|
|
203
|
+
missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;
|
|
204
|
+
missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
168
208
|
// first pass creates the containers, determines types, and handles most of the settings
|
|
169
209
|
for(i = 0; i < axNames.length; i++) {
|
|
170
210
|
axName = axNames[i];
|
|
211
|
+
axId = name2id(axName);
|
|
171
212
|
axLetter = axName.charAt(0);
|
|
172
213
|
|
|
173
214
|
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
@@ -176,20 +217,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
176
217
|
|
|
177
218
|
axLayoutIn = layoutIn[axName];
|
|
178
219
|
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
179
|
-
|
|
180
|
-
var traces = ax2traces[axName] || [];
|
|
181
|
-
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
182
|
-
axLayoutOut._annIndices = [];
|
|
183
|
-
axLayoutOut._shapeIndices = [];
|
|
184
|
-
axLayoutOut._imgIndices = [];
|
|
185
|
-
axLayoutOut._subplotsWith = [];
|
|
186
|
-
axLayoutOut._counterAxes = [];
|
|
187
|
-
|
|
188
|
-
// set up some private properties
|
|
189
|
-
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
190
|
-
var id = axLayoutOut._id = name2id(axName);
|
|
191
|
-
|
|
192
|
-
var overlayableAxes = getOverlayableAxes(axLetter, axName);
|
|
220
|
+
newAxLayoutOut();
|
|
193
221
|
|
|
194
222
|
var visibleDflt =
|
|
195
223
|
(axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||
|
|
@@ -207,13 +235,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
207
235
|
font: layoutOut.font,
|
|
208
236
|
outerTicks: outerTicks[axName],
|
|
209
237
|
showGrid: !noGrids[axName],
|
|
210
|
-
data:
|
|
238
|
+
data: ax2traces[axName] || [],
|
|
211
239
|
bgColor: bgColor,
|
|
212
240
|
calendar: layoutOut.calendar,
|
|
213
241
|
automargin: true,
|
|
214
242
|
visibleDflt: visibleDflt,
|
|
215
243
|
reverseDflt: reverseDflt,
|
|
216
|
-
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[
|
|
244
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
217
245
|
};
|
|
218
246
|
|
|
219
247
|
coerce('uirevision', layoutOut.uirevision);
|
|
@@ -239,12 +267,63 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
239
267
|
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
240
268
|
letter: axLetter,
|
|
241
269
|
counterAxes: counterAxes[axLetter],
|
|
242
|
-
overlayableAxes:
|
|
270
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
243
271
|
grid: layoutOut.grid
|
|
244
272
|
});
|
|
245
273
|
|
|
246
274
|
coerce('title.standoff');
|
|
247
275
|
|
|
276
|
+
addMissingMatchedAxis();
|
|
277
|
+
|
|
278
|
+
axLayoutOut._input = axLayoutIn;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// coerce the 'missing' axes
|
|
282
|
+
i = 0;
|
|
283
|
+
while(i < missingMatchedAxisIds.length) {
|
|
284
|
+
axId = missingMatchedAxisIds[i++];
|
|
285
|
+
axName = id2name(axId);
|
|
286
|
+
axLetter = axName.charAt(0);
|
|
287
|
+
|
|
288
|
+
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
289
|
+
layoutIn[axName] = {};
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
axLayoutIn = layoutIn[axName];
|
|
293
|
+
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
294
|
+
newAxLayoutOut();
|
|
295
|
+
|
|
296
|
+
var defaultOptions2 = {
|
|
297
|
+
letter: axLetter,
|
|
298
|
+
font: layoutOut.font,
|
|
299
|
+
outerTicks: outerTicks[axName],
|
|
300
|
+
showGrid: !noGrids[axName],
|
|
301
|
+
data: [],
|
|
302
|
+
bgColor: bgColor,
|
|
303
|
+
calendar: layoutOut.calendar,
|
|
304
|
+
automargin: true,
|
|
305
|
+
visibleDflt: false,
|
|
306
|
+
reverseDflt: false,
|
|
307
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
coerce('uirevision', layoutOut.uirevision);
|
|
311
|
+
|
|
312
|
+
axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || 'linear';
|
|
313
|
+
|
|
314
|
+
handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
|
|
315
|
+
|
|
316
|
+
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
317
|
+
letter: axLetter,
|
|
318
|
+
counterAxes: counterAxes[axLetter],
|
|
319
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
320
|
+
grid: layoutOut.grid
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
coerce('fixedrange');
|
|
324
|
+
|
|
325
|
+
addMissingMatchedAxis();
|
|
326
|
+
|
|
248
327
|
axLayoutOut._input = axLayoutIn;
|
|
249
328
|
}
|
|
250
329
|
|
|
@@ -295,9 +374,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
295
374
|
var constraintGroups = layoutOut._axisConstraintGroups = [];
|
|
296
375
|
// similar to _axisConstraintGroups, but for matching axes
|
|
297
376
|
var matchGroups = layoutOut._axisMatchGroups = [];
|
|
377
|
+
// make sure to include 'missing' axes here
|
|
378
|
+
var allAxisIdsIncludingMissing = allAxisIds.concat(missingMatchedAxisIds);
|
|
379
|
+
var axNamesIncludingMissing = axNames.concat(Lib.simpleMap(missingMatchedAxisIds, id2name));
|
|
298
380
|
|
|
299
|
-
for(i = 0; i <
|
|
300
|
-
axName =
|
|
381
|
+
for(i = 0; i < axNamesIncludingMissing.length; i++) {
|
|
382
|
+
axName = axNamesIncludingMissing[i];
|
|
301
383
|
axLetter = axName.charAt(0);
|
|
302
384
|
axLayoutIn = layoutIn[axName];
|
|
303
385
|
axLayoutOut = layoutOut[axName];
|
|
@@ -305,15 +387,19 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
305
387
|
var scaleanchorDflt;
|
|
306
388
|
if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {
|
|
307
389
|
scaleanchorDflt = axLayoutOut.anchor;
|
|
308
|
-
} else {
|
|
390
|
+
} else {
|
|
391
|
+
scaleanchorDflt = undefined;
|
|
392
|
+
}
|
|
309
393
|
|
|
310
394
|
var constrainDflt;
|
|
311
395
|
if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {
|
|
312
396
|
constrainDflt = 'domain';
|
|
313
|
-
} else {
|
|
397
|
+
} else {
|
|
398
|
+
constrainDflt = undefined;
|
|
399
|
+
}
|
|
314
400
|
|
|
315
401
|
handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
316
|
-
allAxisIds:
|
|
402
|
+
allAxisIds: allAxisIdsIncludingMissing,
|
|
317
403
|
layoutOut: layoutOut,
|
|
318
404
|
scaleanchorDflt: scaleanchorDflt,
|
|
319
405
|
constrainDflt: constrainDflt
|
|
@@ -324,7 +410,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
324
410
|
var group = matchGroups[i];
|
|
325
411
|
var rng = null;
|
|
326
412
|
var autorange = null;
|
|
327
|
-
var axId;
|
|
328
413
|
|
|
329
414
|
// find 'matching' range attrs
|
|
330
415
|
for(axId in group) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2012-
|
|
2
|
+
* Copyright 2012-2020, Plotly, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -40,6 +40,7 @@ function setAutoType(ax, data) {
|
|
|
40
40
|
|
|
41
41
|
var id = ax._id;
|
|
42
42
|
var axLetter = id.charAt(0);
|
|
43
|
+
var i;
|
|
43
44
|
|
|
44
45
|
// support 3d
|
|
45
46
|
if(id.indexOf('scene') !== -1) id = axLetter;
|
|
@@ -50,7 +51,8 @@ function setAutoType(ax, data) {
|
|
|
50
51
|
// first check for histograms, as the count direction
|
|
51
52
|
// should always default to a linear axis
|
|
52
53
|
if(d0.type === 'histogram' &&
|
|
53
|
-
|
|
54
|
+
axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']
|
|
55
|
+
) {
|
|
54
56
|
ax.type = 'linear';
|
|
55
57
|
return;
|
|
56
58
|
}
|
|
@@ -58,7 +60,13 @@ function setAutoType(ax, data) {
|
|
|
58
60
|
var calAttr = axLetter + 'calendar';
|
|
59
61
|
var calendar = d0[calAttr];
|
|
60
62
|
var opts = {noMultiCategory: !traceIs(d0, 'cartesian') || traceIs(d0, 'noMultiCategory')};
|
|
61
|
-
|
|
63
|
+
|
|
64
|
+
// To not confuse 2D x/y used for per-box sample points for multicategory coordinates
|
|
65
|
+
if(d0.type === 'box' && d0._hasPreCompStats &&
|
|
66
|
+
axLetter === {h: 'x', v: 'y'}[d0.orientation || 'v']
|
|
67
|
+
) {
|
|
68
|
+
opts.noMultiCategory = true;
|
|
69
|
+
}
|
|
62
70
|
|
|
63
71
|
// check all boxes on this x axis to see
|
|
64
72
|
// if they're dates, numbers, or categories
|
package/src/plots/command.js
CHANGED
package/src/plots/domain.js
CHANGED
package/src/plots/geo/geo.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2012-
|
|
2
|
+
* Copyright 2012-2020, Plotly, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the MIT license found in the
|
|
@@ -19,6 +19,7 @@ var Drawing = require('../../components/drawing');
|
|
|
19
19
|
var Fx = require('../../components/fx');
|
|
20
20
|
var Plots = require('../plots');
|
|
21
21
|
var Axes = require('../cartesian/axes');
|
|
22
|
+
var getAutoRange = require('../cartesian/autorange').getAutoRange;
|
|
22
23
|
var dragElement = require('../../components/dragelement');
|
|
23
24
|
var prepSelect = require('../cartesian/select').prepSelect;
|
|
24
25
|
var selectOnClick = require('../cartesian/select').selectOnClick;
|
|
@@ -26,6 +27,7 @@ var selectOnClick = require('../cartesian/select').selectOnClick;
|
|
|
26
27
|
var createGeoZoom = require('./zoom');
|
|
27
28
|
var constants = require('./constants');
|
|
28
29
|
|
|
30
|
+
var geoUtils = require('../../lib/geo_location_utils');
|
|
29
31
|
var topojsonUtils = require('../../lib/topojson_utils');
|
|
30
32
|
var topojsonFeature = require('topojson-client').feature;
|
|
31
33
|
|
|
@@ -72,6 +74,7 @@ module.exports = function createGeo(opts) {
|
|
|
72
74
|
proto.plot = function(geoCalcData, fullLayout, promises) {
|
|
73
75
|
var _this = this;
|
|
74
76
|
var geoLayout = fullLayout[this.id];
|
|
77
|
+
var geoPromises = [];
|
|
75
78
|
|
|
76
79
|
var needsTopojson = false;
|
|
77
80
|
for(var k in constants.layerNameToAdjective) {
|
|
@@ -86,35 +89,34 @@ proto.plot = function(geoCalcData, fullLayout, promises) {
|
|
|
86
89
|
break;
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
|
-
if(!needsTopojson) {
|
|
90
|
-
return _this.update(geoCalcData, fullLayout);
|
|
91
|
-
}
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
if(needsTopojson) {
|
|
94
|
+
var topojsonNameNew = topojsonUtils.getTopojsonName(geoLayout);
|
|
95
|
+
if(_this.topojson === null || topojsonNameNew !== _this.topojsonName) {
|
|
96
|
+
_this.topojsonName = topojsonNameNew;
|
|
94
97
|
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
if(PlotlyGeoAssets.topojson[_this.topojsonName] === undefined) {
|
|
99
|
+
geoPromises.push(_this.fetchTopojson());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
97
103
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
_this.update(geoCalcData, fullLayout);
|
|
103
|
-
}));
|
|
104
|
-
} else {
|
|
104
|
+
geoPromises = geoPromises.concat(geoUtils.fetchTraceGeoData(geoCalcData));
|
|
105
|
+
|
|
106
|
+
promises.push(new Promise(function(resolve, reject) {
|
|
107
|
+
Promise.all(geoPromises).then(function() {
|
|
105
108
|
_this.topojson = PlotlyGeoAssets.topojson[_this.topojsonName];
|
|
106
109
|
_this.update(geoCalcData, fullLayout);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
110
|
+
resolve();
|
|
111
|
+
})
|
|
112
|
+
.catch(reject);
|
|
113
|
+
}));
|
|
111
114
|
};
|
|
112
115
|
|
|
113
116
|
proto.fetchTopojson = function() {
|
|
114
|
-
var
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
);
|
|
117
|
+
var _this = this;
|
|
118
|
+
var topojsonPath = topojsonUtils.getTopojsonPath(_this.topojsonURL, _this.topojsonName);
|
|
119
|
+
|
|
118
120
|
return new Promise(function(resolve, reject) {
|
|
119
121
|
d3.json(topojsonPath, function(err, topojson) {
|
|
120
122
|
if(err) {
|
|
@@ -132,7 +134,9 @@ proto.fetchTopojson = function() {
|
|
|
132
134
|
].join(' ')));
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
|
-
|
|
137
|
+
|
|
138
|
+
PlotlyGeoAssets.topojson[_this.topojsonName] = topojson;
|
|
139
|
+
resolve();
|
|
136
140
|
});
|
|
137
141
|
});
|
|
138
142
|
};
|
|
@@ -140,18 +144,24 @@ proto.fetchTopojson = function() {
|
|
|
140
144
|
proto.update = function(geoCalcData, fullLayout) {
|
|
141
145
|
var geoLayout = fullLayout[this.id];
|
|
142
146
|
|
|
143
|
-
var hasInvalidBounds = this.updateProjection(fullLayout, geoLayout);
|
|
144
|
-
if(hasInvalidBounds) return;
|
|
145
|
-
|
|
146
147
|
// important: maps with choropleth traces have a different layer order
|
|
147
148
|
this.hasChoropleth = false;
|
|
149
|
+
|
|
148
150
|
for(var i = 0; i < geoCalcData.length; i++) {
|
|
149
|
-
|
|
151
|
+
var calcTrace = geoCalcData[i];
|
|
152
|
+
var trace = calcTrace[0].trace;
|
|
153
|
+
|
|
154
|
+
if(trace.type === 'choropleth') {
|
|
150
155
|
this.hasChoropleth = true;
|
|
151
|
-
|
|
156
|
+
}
|
|
157
|
+
if(trace.visible === true && trace._length > 0) {
|
|
158
|
+
trace._module.calcGeoJSON(calcTrace, fullLayout);
|
|
152
159
|
}
|
|
153
160
|
}
|
|
154
161
|
|
|
162
|
+
var hasInvalidBounds = this.updateProjection(geoCalcData, fullLayout);
|
|
163
|
+
if(hasInvalidBounds) return;
|
|
164
|
+
|
|
155
165
|
if(!this.viewInitial || this.scope !== geoLayout.scope) {
|
|
156
166
|
this.saveViewInitial(geoLayout);
|
|
157
167
|
}
|
|
@@ -174,20 +184,19 @@ proto.update = function(geoCalcData, fullLayout) {
|
|
|
174
184
|
this.render();
|
|
175
185
|
};
|
|
176
186
|
|
|
177
|
-
proto.updateProjection = function(
|
|
187
|
+
proto.updateProjection = function(geoCalcData, fullLayout) {
|
|
188
|
+
var gd = this.graphDiv;
|
|
189
|
+
var geoLayout = fullLayout[this.id];
|
|
178
190
|
var gs = fullLayout._size;
|
|
179
191
|
var domain = geoLayout.domain;
|
|
180
192
|
var projLayout = geoLayout.projection;
|
|
181
|
-
var rotation = projLayout.rotation || {};
|
|
182
|
-
var center = geoLayout.center || {};
|
|
183
193
|
|
|
184
|
-
var
|
|
194
|
+
var lonaxis = geoLayout.lonaxis;
|
|
195
|
+
var lataxis = geoLayout.lataxis;
|
|
196
|
+
var axLon = lonaxis._ax;
|
|
197
|
+
var axLat = lataxis._ax;
|
|
185
198
|
|
|
186
|
-
|
|
187
|
-
projection
|
|
188
|
-
.center([center.lon - rotation.lon, center.lat - rotation.lat])
|
|
189
|
-
.rotate([-rotation.lon, -rotation.lat, rotation.roll])
|
|
190
|
-
.parallels(projLayout.parallels);
|
|
199
|
+
var projection = this.projection = getProjection(geoLayout);
|
|
191
200
|
|
|
192
201
|
// setup subplot extent [[x0,y0], [x1,y1]]
|
|
193
202
|
var extent = [[
|
|
@@ -198,11 +207,46 @@ proto.updateProjection = function(fullLayout, geoLayout) {
|
|
|
198
207
|
gs.t + gs.h * (1 - domain.y[0])
|
|
199
208
|
]];
|
|
200
209
|
|
|
201
|
-
var
|
|
202
|
-
var
|
|
203
|
-
var
|
|
210
|
+
var center = geoLayout.center || {};
|
|
211
|
+
var rotation = projLayout.rotation || {};
|
|
212
|
+
var lonaxisRange = lonaxis.range || [];
|
|
213
|
+
var lataxisRange = lataxis.range || [];
|
|
214
|
+
|
|
215
|
+
if(geoLayout.fitbounds) {
|
|
216
|
+
axLon._length = extent[1][0] - extent[0][0];
|
|
217
|
+
axLat._length = extent[1][1] - extent[0][1];
|
|
218
|
+
axLon.range = getAutoRange(gd, axLon);
|
|
219
|
+
axLat.range = getAutoRange(gd, axLat);
|
|
220
|
+
|
|
221
|
+
var midLon = (axLon.range[0] + axLon.range[1]) / 2;
|
|
222
|
+
var midLat = (axLat.range[0] + axLat.range[1]) / 2;
|
|
223
|
+
|
|
224
|
+
if(geoLayout._isScoped) {
|
|
225
|
+
center = {lon: midLon, lat: midLat};
|
|
226
|
+
} else if(geoLayout._isClipped) {
|
|
227
|
+
center = {lon: midLon, lat: midLat};
|
|
228
|
+
rotation = {lon: midLon, lat: midLat, roll: rotation.roll};
|
|
229
|
+
|
|
230
|
+
var projType = projLayout.type;
|
|
231
|
+
var lonHalfSpan = (constants.lonaxisSpan[projType] / 2) || 180;
|
|
232
|
+
var latHalfSpan = (constants.lataxisSpan[projType] / 2) || 180;
|
|
233
|
+
|
|
234
|
+
lonaxisRange = [midLon - lonHalfSpan, midLon + lonHalfSpan];
|
|
235
|
+
lataxisRange = [midLat - latHalfSpan, midLat + latHalfSpan];
|
|
236
|
+
} else {
|
|
237
|
+
center = {lon: midLon, lat: midLat};
|
|
238
|
+
rotation = {lon: midLon, lat: rotation.lat, roll: rotation.roll};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// set 'pre-fit' projection
|
|
243
|
+
projection
|
|
244
|
+
.center([center.lon - rotation.lon, center.lat - rotation.lat])
|
|
245
|
+
.rotate([-rotation.lon, -rotation.lat, rotation.roll])
|
|
246
|
+
.parallels(projLayout.parallels);
|
|
204
247
|
|
|
205
248
|
// fit projection 'scale' and 'translate' to set lon/lat ranges
|
|
249
|
+
var rangeBox = makeRangeBox(lonaxisRange, lataxisRange);
|
|
206
250
|
projection.fitExtent(extent, rangeBox);
|
|
207
251
|
|
|
208
252
|
var b = this.bounds = projection.getBounds(rangeBox);
|
|
@@ -214,12 +258,11 @@ proto.updateProjection = function(fullLayout, geoLayout) {
|
|
|
214
258
|
!isFinite(b[1][0]) || !isFinite(b[1][1]) ||
|
|
215
259
|
isNaN(t[0]) || isNaN(t[0])
|
|
216
260
|
) {
|
|
217
|
-
var
|
|
218
|
-
var attrToUnset = ['projection.rotation', 'center', 'lonaxis.range', 'lataxis.range'];
|
|
261
|
+
var attrToUnset = ['fitbounds', 'projection.rotation', 'center', 'lonaxis.range', 'lataxis.range'];
|
|
219
262
|
var msg = 'Invalid geo settings, relayout\'ing to default view.';
|
|
220
263
|
var updateObj = {};
|
|
221
264
|
|
|
222
|
-
// clear all
|
|
265
|
+
// clear all attributes that could cause invalid bounds,
|
|
223
266
|
// clear viewInitial to update reset-view behavior
|
|
224
267
|
|
|
225
268
|
for(var i = 0; i < attrToUnset.length; i++) {
|
|
@@ -233,6 +276,23 @@ proto.updateProjection = function(fullLayout, geoLayout) {
|
|
|
233
276
|
return msg;
|
|
234
277
|
}
|
|
235
278
|
|
|
279
|
+
if(geoLayout.fitbounds) {
|
|
280
|
+
var b2 = projection.getBounds(makeRangeBox(axLon.range, axLat.range));
|
|
281
|
+
var k2 = Math.min(
|
|
282
|
+
(b[1][0] - b[0][0]) / (b2[1][0] - b2[0][0]),
|
|
283
|
+
(b[1][1] - b[0][1]) / (b2[1][1] - b2[0][1])
|
|
284
|
+
);
|
|
285
|
+
|
|
286
|
+
if(isFinite(k2)) {
|
|
287
|
+
projection.scale(k2 * s);
|
|
288
|
+
} else {
|
|
289
|
+
Lib.warn('Something went wrong during' + this.id + 'fitbounds computations.');
|
|
290
|
+
}
|
|
291
|
+
} else {
|
|
292
|
+
// adjust projection to user setting
|
|
293
|
+
projection.scale(projLayout.scale * s);
|
|
294
|
+
}
|
|
295
|
+
|
|
236
296
|
// px coordinates of view mid-point,
|
|
237
297
|
// useful to update `geo.center` after interactions
|
|
238
298
|
var midPt = this.midPt = [
|
|
@@ -240,9 +300,7 @@ proto.updateProjection = function(fullLayout, geoLayout) {
|
|
|
240
300
|
(b[0][1] + b[1][1]) / 2
|
|
241
301
|
];
|
|
242
302
|
|
|
243
|
-
// adjust projection to user setting
|
|
244
303
|
projection
|
|
245
|
-
.scale(projLayout.scale * s)
|
|
246
304
|
.translate([t[0] + (midPt[0] - t[0]), t[1] + (midPt[1] - t[1])])
|
|
247
305
|
.clipExtent(b);
|
|
248
306
|
|
|
@@ -537,26 +595,31 @@ proto.saveViewInitial = function(geoLayout) {
|
|
|
537
595
|
var projLayout = geoLayout.projection;
|
|
538
596
|
var rotation = projLayout.rotation || {};
|
|
539
597
|
|
|
598
|
+
this.viewInitial = {
|
|
599
|
+
'fitbounds': geoLayout.fitbounds,
|
|
600
|
+
'projection.scale': projLayout.scale
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
var extra;
|
|
540
604
|
if(geoLayout._isScoped) {
|
|
541
|
-
|
|
605
|
+
extra = {
|
|
542
606
|
'center.lon': center.lon,
|
|
543
607
|
'center.lat': center.lat,
|
|
544
|
-
'projection.scale': projLayout.scale
|
|
545
608
|
};
|
|
546
609
|
} else if(geoLayout._isClipped) {
|
|
547
|
-
|
|
548
|
-
'projection.scale': projLayout.scale,
|
|
610
|
+
extra = {
|
|
549
611
|
'projection.rotation.lon': rotation.lon,
|
|
550
612
|
'projection.rotation.lat': rotation.lat
|
|
551
613
|
};
|
|
552
614
|
} else {
|
|
553
|
-
|
|
615
|
+
extra = {
|
|
554
616
|
'center.lon': center.lon,
|
|
555
617
|
'center.lat': center.lat,
|
|
556
|
-
'projection.scale': projLayout.scale,
|
|
557
618
|
'projection.rotation.lon': rotation.lon
|
|
558
619
|
};
|
|
559
620
|
}
|
|
621
|
+
|
|
622
|
+
Lib.extendFlat(this.viewInitial, extra);
|
|
560
623
|
};
|
|
561
624
|
|
|
562
625
|
// [hot code path] (re)draw all paths which depend on the projection
|