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.
Files changed (970) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/dist/README.md +25 -25
  5. package/dist/plot-schema.json +529 -77
  6. package/dist/plotly-basic.js +1560 -689
  7. package/dist/plotly-basic.min.js +3 -3
  8. package/dist/plotly-cartesian.js +2373 -1050
  9. package/dist/plotly-cartesian.min.js +3 -3
  10. package/dist/plotly-finance.js +1880 -900
  11. package/dist/plotly-finance.min.js +3 -3
  12. package/dist/plotly-geo-assets.js +4 -4
  13. package/dist/plotly-geo.js +4066 -1010
  14. package/dist/plotly-geo.min.js +3 -3
  15. package/dist/plotly-gl2d.js +1142 -556
  16. package/dist/plotly-gl2d.min.js +3 -3
  17. package/dist/plotly-gl3d.js +1773 -1022
  18. package/dist/plotly-gl3d.min.js +3 -3
  19. package/dist/plotly-locale-af.js +1 -1
  20. package/dist/plotly-locale-am.js +1 -1
  21. package/dist/plotly-locale-ar-dz.js +1 -1
  22. package/dist/plotly-locale-ar-eg.js +1 -1
  23. package/dist/plotly-locale-ar.js +1 -1
  24. package/dist/plotly-locale-az.js +1 -1
  25. package/dist/plotly-locale-bg.js +1 -1
  26. package/dist/plotly-locale-bs.js +1 -1
  27. package/dist/plotly-locale-ca.js +1 -1
  28. package/dist/plotly-locale-cs.js +1 -1
  29. package/dist/plotly-locale-cy.js +1 -1
  30. package/dist/plotly-locale-da.js +1 -1
  31. package/dist/plotly-locale-de-ch.js +1 -1
  32. package/dist/plotly-locale-de.js +1 -1
  33. package/dist/plotly-locale-el.js +1 -1
  34. package/dist/plotly-locale-eo.js +1 -1
  35. package/dist/plotly-locale-es-ar.js +1 -1
  36. package/dist/plotly-locale-es-pe.js +1 -1
  37. package/dist/plotly-locale-es.js +1 -1
  38. package/dist/plotly-locale-et.js +1 -1
  39. package/dist/plotly-locale-eu.js +1 -1
  40. package/dist/plotly-locale-fa.js +1 -1
  41. package/dist/plotly-locale-fi.js +1 -1
  42. package/dist/plotly-locale-fo.js +1 -1
  43. package/dist/plotly-locale-fr-ch.js +1 -1
  44. package/dist/plotly-locale-fr.js +1 -1
  45. package/dist/plotly-locale-gl.js +1 -1
  46. package/dist/plotly-locale-gu.js +1 -1
  47. package/dist/plotly-locale-he.js +1 -1
  48. package/dist/plotly-locale-hi-in.js +1 -1
  49. package/dist/plotly-locale-hr.js +1 -1
  50. package/dist/plotly-locale-hu.js +1 -1
  51. package/dist/plotly-locale-hy.js +1 -1
  52. package/dist/plotly-locale-id.js +1 -1
  53. package/dist/plotly-locale-is.js +1 -1
  54. package/dist/plotly-locale-it.js +1 -1
  55. package/dist/plotly-locale-ja.js +1 -1
  56. package/dist/plotly-locale-ka.js +1 -1
  57. package/dist/plotly-locale-km.js +1 -1
  58. package/dist/plotly-locale-ko.js +1 -1
  59. package/dist/plotly-locale-lt.js +1 -1
  60. package/dist/plotly-locale-lv.js +1 -1
  61. package/dist/plotly-locale-me-me.js +1 -1
  62. package/dist/plotly-locale-me.js +1 -1
  63. package/dist/plotly-locale-mk.js +1 -1
  64. package/dist/plotly-locale-ml.js +1 -1
  65. package/dist/plotly-locale-ms.js +1 -1
  66. package/dist/plotly-locale-mt.js +1 -1
  67. package/dist/plotly-locale-nl-be.js +1 -1
  68. package/dist/plotly-locale-nl.js +1 -1
  69. package/dist/plotly-locale-no.js +1 -1
  70. package/dist/plotly-locale-pa.js +1 -1
  71. package/dist/plotly-locale-pl.js +1 -1
  72. package/dist/plotly-locale-pt-br.js +1 -1
  73. package/dist/plotly-locale-rm.js +1 -1
  74. package/dist/plotly-locale-ro.js +1 -1
  75. package/dist/plotly-locale-ru.js +1 -1
  76. package/dist/plotly-locale-sk.js +1 -1
  77. package/dist/plotly-locale-sl.js +1 -1
  78. package/dist/plotly-locale-sq.js +1 -1
  79. package/dist/plotly-locale-sr-sr.js +1 -1
  80. package/dist/plotly-locale-sr.js +1 -1
  81. package/dist/plotly-locale-sv.js +1 -1
  82. package/dist/plotly-locale-sw.js +1 -1
  83. package/dist/plotly-locale-ta.js +1 -1
  84. package/dist/plotly-locale-th.js +1 -1
  85. package/dist/plotly-locale-tr.js +1 -1
  86. package/dist/plotly-locale-tt.js +1 -1
  87. package/dist/plotly-locale-uk.js +1 -1
  88. package/dist/plotly-locale-ur.js +1 -1
  89. package/dist/plotly-locale-vi.js +1 -1
  90. package/dist/plotly-locale-zh-cn.js +1 -1
  91. package/dist/plotly-locale-zh-hk.js +1 -1
  92. package/dist/plotly-locale-zh-tw.js +1 -1
  93. package/dist/plotly-mapbox.js +1749 -1849
  94. package/dist/plotly-mapbox.min.js +3 -3
  95. package/dist/plotly-with-meta.js +6225 -3884
  96. package/dist/plotly.js +5898 -3754
  97. package/dist/plotly.min.js +3 -3
  98. package/dist/translation-keys.txt +17 -17
  99. package/lib/aggregate.js +1 -1
  100. package/lib/bar.js +1 -1
  101. package/lib/barpolar.js +1 -1
  102. package/lib/box.js +1 -1
  103. package/lib/calendars.js +1 -1
  104. package/lib/candlestick.js +1 -1
  105. package/lib/carpet.js +1 -1
  106. package/lib/choropleth.js +1 -1
  107. package/lib/choroplethmapbox.js +1 -1
  108. package/lib/cone.js +1 -1
  109. package/lib/contour.js +1 -1
  110. package/lib/contourcarpet.js +1 -1
  111. package/lib/contourgl.js +1 -1
  112. package/lib/core.js +1 -1
  113. package/lib/densitymapbox.js +1 -1
  114. package/lib/filter.js +1 -1
  115. package/lib/funnel.js +1 -1
  116. package/lib/funnelarea.js +1 -1
  117. package/lib/groupby.js +1 -1
  118. package/lib/heatmap.js +1 -1
  119. package/lib/heatmapgl.js +1 -1
  120. package/lib/histogram.js +1 -1
  121. package/lib/histogram2d.js +1 -1
  122. package/lib/histogram2dcontour.js +1 -1
  123. package/lib/image.js +1 -1
  124. package/lib/index-basic.js +1 -1
  125. package/lib/index-cartesian.js +1 -1
  126. package/lib/index-finance.js +1 -1
  127. package/lib/index-geo.js +1 -1
  128. package/lib/index-gl2d.js +1 -1
  129. package/lib/index-gl3d.js +1 -1
  130. package/lib/index-mapbox.js +1 -1
  131. package/lib/index.js +1 -1
  132. package/lib/indicator.js +1 -1
  133. package/lib/isosurface.js +1 -1
  134. package/lib/locales/af.js +1 -1
  135. package/lib/locales/am.js +1 -1
  136. package/lib/locales/ar-dz.js +1 -1
  137. package/lib/locales/ar-eg.js +1 -1
  138. package/lib/locales/ar.js +1 -1
  139. package/lib/locales/az.js +1 -1
  140. package/lib/locales/bg.js +1 -1
  141. package/lib/locales/bs.js +1 -1
  142. package/lib/locales/ca.js +1 -1
  143. package/lib/locales/cs.js +1 -1
  144. package/lib/locales/cy.js +1 -1
  145. package/lib/locales/da.js +1 -1
  146. package/lib/locales/de-ch.js +1 -1
  147. package/lib/locales/de.js +1 -1
  148. package/lib/locales/el.js +1 -1
  149. package/lib/locales/eo.js +1 -1
  150. package/lib/locales/es-ar.js +1 -1
  151. package/lib/locales/es-pe.js +1 -1
  152. package/lib/locales/es.js +1 -1
  153. package/lib/locales/et.js +1 -1
  154. package/lib/locales/eu.js +1 -1
  155. package/lib/locales/fa.js +1 -1
  156. package/lib/locales/fi.js +1 -1
  157. package/lib/locales/fo.js +1 -1
  158. package/lib/locales/fr-ch.js +1 -1
  159. package/lib/locales/fr.js +1 -1
  160. package/lib/locales/gl.js +1 -1
  161. package/lib/locales/gu.js +1 -1
  162. package/lib/locales/he.js +1 -1
  163. package/lib/locales/hi-in.js +1 -1
  164. package/lib/locales/hr.js +1 -1
  165. package/lib/locales/hu.js +1 -1
  166. package/lib/locales/hy.js +1 -1
  167. package/lib/locales/id.js +1 -1
  168. package/lib/locales/is.js +1 -1
  169. package/lib/locales/it.js +1 -1
  170. package/lib/locales/ja.js +1 -1
  171. package/lib/locales/ka.js +1 -1
  172. package/lib/locales/km.js +1 -1
  173. package/lib/locales/ko.js +54 -2
  174. package/lib/locales/lt.js +1 -1
  175. package/lib/locales/lv.js +1 -1
  176. package/lib/locales/me-me.js +1 -1
  177. package/lib/locales/me.js +1 -1
  178. package/lib/locales/mk.js +1 -1
  179. package/lib/locales/ml.js +1 -1
  180. package/lib/locales/ms.js +1 -1
  181. package/lib/locales/mt.js +1 -1
  182. package/lib/locales/nl-be.js +1 -1
  183. package/lib/locales/nl.js +1 -1
  184. package/lib/locales/no.js +1 -1
  185. package/lib/locales/pa.js +1 -1
  186. package/lib/locales/pl.js +1 -1
  187. package/lib/locales/pt-br.js +1 -1
  188. package/lib/locales/rm.js +1 -1
  189. package/lib/locales/ro.js +1 -1
  190. package/lib/locales/ru.js +1 -1
  191. package/lib/locales/sk.js +1 -1
  192. package/lib/locales/sl.js +1 -1
  193. package/lib/locales/sq.js +1 -1
  194. package/lib/locales/sr-sr.js +1 -1
  195. package/lib/locales/sr.js +1 -1
  196. package/lib/locales/sv.js +1 -1
  197. package/lib/locales/sw.js +1 -1
  198. package/lib/locales/ta.js +1 -1
  199. package/lib/locales/th.js +1 -1
  200. package/lib/locales/tr.js +1 -1
  201. package/lib/locales/tt.js +1 -1
  202. package/lib/locales/uk.js +1 -1
  203. package/lib/locales/ur.js +1 -1
  204. package/lib/locales/vi.js +1 -1
  205. package/lib/locales/zh-cn.js +1 -1
  206. package/lib/locales/zh-hk.js +1 -1
  207. package/lib/locales/zh-tw.js +1 -1
  208. package/lib/mesh3d.js +1 -1
  209. package/lib/ohlc.js +1 -1
  210. package/lib/parcats.js +1 -1
  211. package/lib/parcoords.js +1 -1
  212. package/lib/pie.js +1 -1
  213. package/lib/pointcloud.js +1 -1
  214. package/lib/sankey.js +1 -1
  215. package/lib/scatter.js +1 -1
  216. package/lib/scatter3d.js +1 -1
  217. package/lib/scattercarpet.js +1 -1
  218. package/lib/scattergeo.js +1 -1
  219. package/lib/scattergl.js +1 -1
  220. package/lib/scattermapbox.js +1 -1
  221. package/lib/scatterpolar.js +1 -1
  222. package/lib/scatterpolargl.js +1 -1
  223. package/lib/scatterternary.js +1 -1
  224. package/lib/sort.js +1 -1
  225. package/lib/splom.js +1 -1
  226. package/lib/streamtube.js +1 -1
  227. package/lib/sunburst.js +1 -1
  228. package/lib/surface.js +1 -1
  229. package/lib/table.js +1 -1
  230. package/lib/treemap.js +1 -1
  231. package/lib/violin.js +1 -1
  232. package/lib/volume.js +1 -1
  233. package/lib/waterfall.js +1 -1
  234. package/package.json +25 -23
  235. package/src/assets/geo_assets.js +2 -2
  236. package/src/components/annotations/arrow_paths.js +1 -1
  237. package/src/components/annotations/attributes.js +2 -2
  238. package/src/components/annotations/calc_autorange.js +1 -1
  239. package/src/components/annotations/click.js +1 -1
  240. package/src/components/annotations/common_defaults.js +1 -1
  241. package/src/components/annotations/convert_coords.js +1 -1
  242. package/src/components/annotations/defaults.js +1 -1
  243. package/src/components/annotations/draw.js +1 -1
  244. package/src/components/annotations/draw_arrow_head.js +1 -1
  245. package/src/components/annotations/index.js +1 -1
  246. package/src/components/annotations3d/attributes.js +1 -1
  247. package/src/components/annotations3d/convert.js +1 -1
  248. package/src/components/annotations3d/defaults.js +1 -1
  249. package/src/components/annotations3d/draw.js +1 -1
  250. package/src/components/annotations3d/index.js +1 -1
  251. package/src/components/calendars/calendars.js +1 -1
  252. package/src/components/calendars/index.js +1 -1
  253. package/src/components/color/attributes.js +1 -1
  254. package/src/components/color/index.js +1 -1
  255. package/src/components/colorbar/attributes.js +1 -1
  256. package/src/components/colorbar/constants.js +1 -1
  257. package/src/components/colorbar/defaults.js +1 -1
  258. package/src/components/colorbar/draw.js +1 -1
  259. package/src/components/colorbar/has_colorbar.js +1 -1
  260. package/src/components/colorbar/index.js +1 -1
  261. package/src/components/colorscale/attributes.js +1 -1
  262. package/src/components/colorscale/calc.js +1 -1
  263. package/src/components/colorscale/cross_trace_defaults.js +1 -1
  264. package/src/components/colorscale/defaults.js +5 -2
  265. package/src/components/colorscale/helpers.js +1 -1
  266. package/src/components/colorscale/index.js +1 -1
  267. package/src/components/colorscale/layout_attributes.js +1 -1
  268. package/src/components/colorscale/layout_defaults.js +1 -1
  269. package/src/components/colorscale/scales.js +1 -1
  270. package/src/components/dragelement/align.js +1 -1
  271. package/src/components/dragelement/cursor.js +1 -1
  272. package/src/components/dragelement/index.js +1 -1
  273. package/src/components/dragelement/unhover.js +1 -1
  274. package/src/components/drawing/attributes.js +1 -1
  275. package/src/components/drawing/index.js +40 -15
  276. package/src/components/drawing/symbol_defs.js +1 -1
  277. package/src/components/errorbars/attributes.js +1 -1
  278. package/src/components/errorbars/calc.js +1 -1
  279. package/src/components/errorbars/compute_error.js +1 -1
  280. package/src/components/errorbars/defaults.js +1 -1
  281. package/src/components/errorbars/index.js +1 -1
  282. package/src/components/errorbars/plot.js +1 -1
  283. package/src/components/errorbars/style.js +1 -1
  284. package/src/components/fx/attributes.js +1 -1
  285. package/src/components/fx/calc.js +1 -1
  286. package/src/components/fx/click.js +1 -1
  287. package/src/components/fx/constants.js +1 -1
  288. package/src/components/fx/defaults.js +1 -1
  289. package/src/components/fx/helpers.js +1 -1
  290. package/src/components/fx/hover.js +1 -1
  291. package/src/components/fx/hoverlabel_defaults.js +1 -1
  292. package/src/components/fx/index.js +1 -1
  293. package/src/components/fx/layout_attributes.js +1 -1
  294. package/src/components/fx/layout_defaults.js +1 -1
  295. package/src/components/fx/layout_global_defaults.js +1 -1
  296. package/src/components/grid/index.js +1 -1
  297. package/src/components/images/attributes.js +1 -1
  298. package/src/components/images/convert_coords.js +1 -1
  299. package/src/components/images/defaults.js +1 -1
  300. package/src/components/images/draw.js +1 -1
  301. package/src/components/images/index.js +1 -1
  302. package/src/components/legend/attributes.js +34 -1
  303. package/src/components/legend/constants.js +3 -1
  304. package/src/components/legend/defaults.js +15 -2
  305. package/src/components/legend/draw.js +96 -29
  306. package/src/components/legend/get_legend_data.js +1 -1
  307. package/src/components/legend/handle_click.js +7 -4
  308. package/src/components/legend/helpers.js +1 -1
  309. package/src/components/legend/index.js +1 -1
  310. package/src/components/legend/style.js +128 -3
  311. package/src/components/modebar/buttons.js +43 -5
  312. package/src/components/modebar/index.js +1 -1
  313. package/src/components/modebar/manage.js +2 -1
  314. package/src/components/modebar/modebar.js +1 -1
  315. package/src/components/rangeselector/attributes.js +1 -1
  316. package/src/components/rangeselector/constants.js +1 -1
  317. package/src/components/rangeselector/defaults.js +1 -1
  318. package/src/components/rangeselector/draw.js +1 -1
  319. package/src/components/rangeselector/get_update_object.js +1 -1
  320. package/src/components/rangeselector/index.js +1 -1
  321. package/src/components/rangeslider/attributes.js +1 -1
  322. package/src/components/rangeslider/calc_autorange.js +1 -1
  323. package/src/components/rangeslider/constants.js +1 -1
  324. package/src/components/rangeslider/defaults.js +1 -1
  325. package/src/components/rangeslider/draw.js +1 -1
  326. package/src/components/rangeslider/helpers.js +1 -1
  327. package/src/components/rangeslider/index.js +1 -1
  328. package/src/components/rangeslider/oppaxis_attributes.js +1 -1
  329. package/src/components/shapes/attributes.js +1 -1
  330. package/src/components/shapes/calc_autorange.js +1 -1
  331. package/src/components/shapes/constants.js +1 -1
  332. package/src/components/shapes/defaults.js +1 -1
  333. package/src/components/shapes/draw.js +1 -1
  334. package/src/components/shapes/helpers.js +1 -1
  335. package/src/components/shapes/index.js +1 -1
  336. package/src/components/sliders/attributes.js +1 -1
  337. package/src/components/sliders/constants.js +1 -1
  338. package/src/components/sliders/defaults.js +1 -1
  339. package/src/components/sliders/draw.js +1 -1
  340. package/src/components/sliders/index.js +1 -1
  341. package/src/components/titles/index.js +1 -1
  342. package/src/components/updatemenus/attributes.js +1 -1
  343. package/src/components/updatemenus/constants.js +1 -1
  344. package/src/components/updatemenus/defaults.js +1 -1
  345. package/src/components/updatemenus/draw.js +1 -1
  346. package/src/components/updatemenus/index.js +1 -1
  347. package/src/components/updatemenus/scrollbox.js +1 -1
  348. package/src/constants/alignment.js +1 -1
  349. package/src/constants/delta.js +1 -1
  350. package/src/constants/docs.js +1 -1
  351. package/src/constants/filter_ops.js +1 -1
  352. package/src/constants/gl3d_dashes.js +1 -1
  353. package/src/constants/gl3d_markers.js +1 -1
  354. package/src/constants/interactions.js +1 -1
  355. package/src/constants/numerical.js +1 -1
  356. package/src/constants/xmlns_namespaces.js +1 -1
  357. package/src/core.js +8 -2
  358. package/src/fonts/mathjax_config.js +1 -1
  359. package/src/fonts/ploticon.js +1 -1
  360. package/src/lib/anchor_utils.js +1 -1
  361. package/src/lib/angles.js +1 -1
  362. package/src/lib/array.js +1 -1
  363. package/src/lib/clean_number.js +1 -1
  364. package/src/lib/clear_gl_canvases.js +1 -1
  365. package/src/lib/clear_responsive.js +1 -1
  366. package/src/lib/coerce.js +1 -1
  367. package/src/lib/dates.js +1 -1
  368. package/src/lib/dom.js +1 -1
  369. package/src/lib/events.js +1 -1
  370. package/src/lib/extend.js +1 -1
  371. package/src/lib/filter_unique.js +1 -1
  372. package/src/lib/filter_visible.js +1 -1
  373. package/src/lib/geo_location_utils.js +312 -7
  374. package/src/lib/geojson_utils.js +1 -1
  375. package/src/lib/geometry2d.js +1 -1
  376. package/src/lib/gl_format_color.js +1 -1
  377. package/src/lib/gup.js +1 -1
  378. package/src/lib/identity.js +1 -1
  379. package/src/lib/index.js +57 -31
  380. package/src/lib/is_plain_object.js +1 -1
  381. package/src/lib/keyed_container.js +1 -1
  382. package/src/lib/localize.js +1 -1
  383. package/src/lib/loggers.js +36 -10
  384. package/src/lib/make_trace_groups.js +1 -1
  385. package/src/lib/matrix.js +1 -1
  386. package/src/lib/mod.js +1 -1
  387. package/src/lib/nested_property.js +1 -1
  388. package/src/lib/noop.js +1 -1
  389. package/src/lib/notifier.js +13 -7
  390. package/src/lib/override_cursor.js +1 -1
  391. package/src/lib/polygon.js +1 -1
  392. package/src/lib/prepare_regl.js +1 -1
  393. package/src/lib/push_unique.js +1 -1
  394. package/src/lib/queue.js +1 -1
  395. package/src/lib/regex.js +1 -1
  396. package/src/lib/relative_attr.js +1 -1
  397. package/src/lib/relink_private.js +1 -1
  398. package/src/lib/search.js +1 -1
  399. package/src/lib/setcursor.js +1 -1
  400. package/src/lib/show_no_webgl_msg.js +1 -1
  401. package/src/lib/stats.js +1 -1
  402. package/src/lib/str2rgbarray.js +1 -1
  403. package/src/lib/svg_text_utils.js +1 -1
  404. package/src/lib/throttle.js +1 -1
  405. package/src/lib/to_log_range.js +1 -1
  406. package/src/lib/topojson_utils.js +1 -1
  407. package/src/locale-en-us.js +1 -1
  408. package/src/locale-en.js +1 -1
  409. package/src/plot_api/container_array_match.js +1 -1
  410. package/src/plot_api/edit_types.js +1 -1
  411. package/src/plot_api/helpers.js +1 -1
  412. package/src/plot_api/index.js +1 -1
  413. package/src/plot_api/manage_arrays.js +1 -1
  414. package/src/plot_api/plot_api.js +2 -2
  415. package/src/plot_api/plot_config.js +19 -2
  416. package/src/plot_api/plot_schema.js +1 -1
  417. package/src/plot_api/plot_template.js +1 -1
  418. package/src/plot_api/subroutines.js +7 -1
  419. package/src/plot_api/template_api.js +1 -1
  420. package/src/plot_api/to_image.js +1 -1
  421. package/src/plot_api/validate.js +5 -4
  422. package/src/plots/animation_attributes.js +1 -1
  423. package/src/plots/array_container_defaults.js +1 -1
  424. package/src/plots/attributes.js +1 -1
  425. package/src/plots/cartesian/attributes.js +1 -1
  426. package/src/plots/cartesian/autorange.js +1 -1
  427. package/src/plots/cartesian/axes.js +7 -3
  428. package/src/plots/cartesian/axis_autotype.js +1 -1
  429. package/src/plots/cartesian/axis_defaults.js +1 -1
  430. package/src/plots/cartesian/axis_ids.js +1 -1
  431. package/src/plots/cartesian/category_order_defaults.js +1 -1
  432. package/src/plots/cartesian/clean_ticks.js +1 -1
  433. package/src/plots/cartesian/constants.js +2 -3
  434. package/src/plots/cartesian/constraints.js +1 -1
  435. package/src/plots/cartesian/dragbox.js +1 -1
  436. package/src/plots/cartesian/graph_interact.js +1 -1
  437. package/src/plots/cartesian/include_components.js +1 -1
  438. package/src/plots/cartesian/index.js +1 -1
  439. package/src/plots/cartesian/layout_attributes.js +1 -1
  440. package/src/plots/cartesian/layout_defaults.js +113 -28
  441. package/src/plots/cartesian/line_grid_defaults.js +1 -1
  442. package/src/plots/cartesian/position_defaults.js +1 -1
  443. package/src/plots/cartesian/scale_zoom.js +1 -1
  444. package/src/plots/cartesian/select.js +1 -1
  445. package/src/plots/cartesian/set_convert.js +1 -1
  446. package/src/plots/cartesian/tick_label_defaults.js +1 -1
  447. package/src/plots/cartesian/tick_mark_defaults.js +1 -1
  448. package/src/plots/cartesian/tick_value_defaults.js +1 -1
  449. package/src/plots/cartesian/transition_axes.js +1 -1
  450. package/src/plots/cartesian/type_defaults.js +11 -3
  451. package/src/plots/command.js +1 -1
  452. package/src/plots/domain.js +1 -1
  453. package/src/plots/font_attributes.js +1 -1
  454. package/src/plots/frame_attributes.js +1 -1
  455. package/src/plots/geo/constants.js +1 -1
  456. package/src/plots/geo/geo.js +114 -51
  457. package/src/plots/geo/index.js +1 -1
  458. package/src/plots/geo/layout_attributes.js +34 -1
  459. package/src/plots/geo/layout_defaults.js +80 -15
  460. package/src/plots/geo/projections.js +1 -1
  461. package/src/plots/geo/zoom.js +2 -2
  462. package/src/plots/get_data.js +1 -1
  463. package/src/plots/gl2d/camera.js +1 -1
  464. package/src/plots/gl2d/convert.js +1 -1
  465. package/src/plots/gl2d/index.js +1 -1
  466. package/src/plots/gl2d/scene2d.js +1 -1
  467. package/src/plots/gl3d/index.js +1 -1
  468. package/src/plots/gl3d/layout/attributes.js +1 -1
  469. package/src/plots/gl3d/layout/axis_attributes.js +1 -1
  470. package/src/plots/gl3d/layout/axis_defaults.js +1 -1
  471. package/src/plots/gl3d/layout/convert.js +1 -1
  472. package/src/plots/gl3d/layout/defaults.js +1 -1
  473. package/src/plots/gl3d/layout/layout_attributes.js +1 -1
  474. package/src/plots/gl3d/layout/spikes.js +1 -1
  475. package/src/plots/gl3d/layout/tick_marks.js +1 -1
  476. package/src/plots/gl3d/project.js +1 -1
  477. package/src/plots/gl3d/scene.js +362 -324
  478. package/src/plots/gl3d/zip3.js +1 -1
  479. package/src/plots/layout_attributes.js +33 -3
  480. package/src/plots/mapbox/constants.js +1 -1
  481. package/src/plots/mapbox/convert_text_opts.js +1 -1
  482. package/src/plots/mapbox/index.js +2 -1
  483. package/src/plots/mapbox/layers.js +28 -1
  484. package/src/plots/mapbox/layout_attributes.js +1 -1
  485. package/src/plots/mapbox/layout_defaults.js +1 -1
  486. package/src/plots/mapbox/mapbox.js +46 -54
  487. package/src/plots/pad_attributes.js +1 -1
  488. package/src/plots/plots.js +55 -14
  489. package/src/plots/polar/constants.js +1 -1
  490. package/src/plots/polar/helpers.js +1 -1
  491. package/src/plots/polar/index.js +1 -1
  492. package/src/plots/polar/layout_attributes.js +1 -1
  493. package/src/plots/polar/layout_defaults.js +1 -1
  494. package/src/plots/polar/legacy/area_attributes.js +1 -1
  495. package/src/plots/polar/legacy/axis_attributes.js +1 -1
  496. package/src/plots/polar/legacy/index.js +1 -1
  497. package/src/plots/polar/legacy/micropolar.js +1 -1
  498. package/src/plots/polar/legacy/micropolar_manager.js +1 -1
  499. package/src/plots/polar/legacy/undo_manager.js +1 -1
  500. package/src/plots/polar/polar.js +1 -1
  501. package/src/plots/polar/set_convert.js +1 -1
  502. package/src/plots/subplot_defaults.js +1 -1
  503. package/src/plots/template_attributes.js +1 -1
  504. package/src/plots/ternary/index.js +1 -1
  505. package/src/plots/ternary/layout_attributes.js +1 -1
  506. package/src/plots/ternary/layout_defaults.js +1 -1
  507. package/src/plots/ternary/ternary.js +1 -1
  508. package/src/registry.js +1 -1
  509. package/src/snapshot/cloneplot.js +1 -1
  510. package/src/snapshot/download.js +1 -1
  511. package/src/snapshot/filesaver.js +1 -1
  512. package/src/snapshot/helpers.js +1 -1
  513. package/src/snapshot/index.js +1 -1
  514. package/src/snapshot/svgtoimg.js +1 -1
  515. package/src/snapshot/toimage.js +1 -1
  516. package/src/snapshot/tosvg.js +21 -13
  517. package/src/traces/bar/arrays_to_calcdata.js +1 -1
  518. package/src/traces/bar/attributes.js +1 -1
  519. package/src/traces/bar/calc.js +1 -1
  520. package/src/traces/bar/constants.js +1 -1
  521. package/src/traces/bar/cross_trace_calc.js +1 -1
  522. package/src/traces/bar/defaults.js +10 -2
  523. package/src/traces/bar/event_data.js +1 -1
  524. package/src/traces/bar/helpers.js +1 -1
  525. package/src/traces/bar/hover.js +7 -2
  526. package/src/traces/bar/index.js +1 -1
  527. package/src/traces/bar/layout_attributes.js +1 -1
  528. package/src/traces/bar/layout_defaults.js +1 -1
  529. package/src/traces/bar/plot.js +139 -91
  530. package/src/traces/bar/select.js +1 -1
  531. package/src/traces/bar/sieve.js +1 -1
  532. package/src/traces/bar/style.js +9 -4
  533. package/src/traces/bar/style_defaults.js +1 -1
  534. package/src/traces/bar/uniform_text.js +84 -0
  535. package/src/traces/barpolar/attributes.js +1 -1
  536. package/src/traces/barpolar/calc.js +1 -1
  537. package/src/traces/barpolar/defaults.js +1 -1
  538. package/src/traces/barpolar/hover.js +1 -1
  539. package/src/traces/barpolar/index.js +1 -1
  540. package/src/traces/barpolar/layout_attributes.js +1 -1
  541. package/src/traces/barpolar/layout_defaults.js +1 -1
  542. package/src/traces/barpolar/plot.js +1 -1
  543. package/src/traces/box/attributes.js +204 -42
  544. package/src/traces/box/calc.js +286 -92
  545. package/src/traces/box/cross_trace_calc.js +1 -1
  546. package/src/traces/box/defaults.js +186 -22
  547. package/src/traces/box/event_data.js +1 -1
  548. package/src/traces/box/hover.js +1 -1
  549. package/src/traces/box/index.js +25 -12
  550. package/src/traces/box/layout_attributes.js +1 -1
  551. package/src/traces/box/layout_defaults.js +1 -1
  552. package/src/traces/box/plot.js +1 -1
  553. package/src/traces/box/select.js +1 -1
  554. package/src/traces/box/style.js +1 -1
  555. package/src/traces/candlestick/attributes.js +1 -1
  556. package/src/traces/candlestick/calc.js +1 -1
  557. package/src/traces/candlestick/defaults.js +1 -1
  558. package/src/traces/candlestick/index.js +1 -1
  559. package/src/traces/carpet/ab_defaults.js +1 -1
  560. package/src/traces/carpet/array_minmax.js +1 -1
  561. package/src/traces/carpet/attributes.js +1 -1
  562. package/src/traces/carpet/axis_aligned_line.js +1 -1
  563. package/src/traces/carpet/axis_attributes.js +1 -1
  564. package/src/traces/carpet/axis_defaults.js +1 -1
  565. package/src/traces/carpet/calc.js +1 -1
  566. package/src/traces/carpet/calc_clippath.js +1 -1
  567. package/src/traces/carpet/calc_gridlines.js +1 -1
  568. package/src/traces/carpet/calc_labels.js +1 -1
  569. package/src/traces/carpet/catmull_rom.js +1 -1
  570. package/src/traces/carpet/cheater_basis.js +1 -1
  571. package/src/traces/carpet/compute_control_points.js +1 -1
  572. package/src/traces/carpet/constants.js +1 -1
  573. package/src/traces/carpet/create_i_derivative_evaluator.js +1 -1
  574. package/src/traces/carpet/create_j_derivative_evaluator.js +1 -1
  575. package/src/traces/carpet/create_spline_evaluator.js +1 -1
  576. package/src/traces/carpet/defaults.js +1 -1
  577. package/src/traces/carpet/index.js +1 -1
  578. package/src/traces/carpet/lookup_carpetid.js +1 -1
  579. package/src/traces/carpet/makepath.js +1 -1
  580. package/src/traces/carpet/map_1d_array.js +1 -1
  581. package/src/traces/carpet/orient_text.js +1 -1
  582. package/src/traces/carpet/plot.js +1 -1
  583. package/src/traces/carpet/set_convert.js +1 -1
  584. package/src/traces/carpet/smooth_fill_2d_array.js +1 -1
  585. package/src/traces/carpet/smooth_fill_array.js +1 -1
  586. package/src/traces/carpet/xy_defaults.js +1 -1
  587. package/src/traces/choropleth/attributes.js +18 -2
  588. package/src/traces/choropleth/calc.js +1 -1
  589. package/src/traces/choropleth/defaults.js +13 -3
  590. package/src/traces/choropleth/event_data.js +4 -2
  591. package/src/traces/choropleth/hover.js +1 -1
  592. package/src/traces/choropleth/index.js +3 -2
  593. package/src/traces/choropleth/plot.js +39 -122
  594. package/src/traces/choropleth/select.js +1 -1
  595. package/src/traces/choropleth/style.js +1 -1
  596. package/src/traces/choroplethmapbox/attributes.js +16 -9
  597. package/src/traces/choroplethmapbox/convert.js +17 -106
  598. package/src/traces/choroplethmapbox/defaults.js +3 -1
  599. package/src/traces/choroplethmapbox/index.js +2 -2
  600. package/src/traces/choroplethmapbox/plot.js +1 -1
  601. package/src/traces/cone/attributes.js +4 -2
  602. package/src/traces/cone/calc.js +1 -1
  603. package/src/traces/cone/convert.js +1 -1
  604. package/src/traces/cone/defaults.js +1 -1
  605. package/src/traces/cone/index.js +2 -2
  606. package/src/traces/contour/attributes.js +1 -1
  607. package/src/traces/contour/calc.js +1 -1
  608. package/src/traces/contour/close_boundaries.js +1 -1
  609. package/src/traces/contour/colorbar.js +6 -4
  610. package/src/traces/contour/constants.js +1 -1
  611. package/src/traces/contour/constraint_defaults.js +1 -1
  612. package/src/traces/contour/constraint_mapping.js +1 -1
  613. package/src/traces/contour/contours_defaults.js +1 -1
  614. package/src/traces/contour/convert_to_constraints.js +1 -1
  615. package/src/traces/contour/defaults.js +1 -1
  616. package/src/traces/contour/empty_pathinfo.js +1 -1
  617. package/src/traces/contour/end_plus.js +1 -1
  618. package/src/traces/contour/find_all_paths.js +1 -1
  619. package/src/traces/contour/hover.js +1 -1
  620. package/src/traces/contour/index.js +1 -1
  621. package/src/traces/contour/label_defaults.js +1 -1
  622. package/src/traces/contour/make_color_map.js +1 -1
  623. package/src/traces/contour/make_crossings.js +1 -1
  624. package/src/traces/contour/plot.js +1 -1
  625. package/src/traces/contour/set_contours.js +1 -1
  626. package/src/traces/contour/style.js +1 -1
  627. package/src/traces/contour/style_defaults.js +1 -1
  628. package/src/traces/contourcarpet/attributes.js +1 -1
  629. package/src/traces/contourcarpet/calc.js +1 -1
  630. package/src/traces/contourcarpet/defaults.js +1 -1
  631. package/src/traces/contourcarpet/index.js +1 -1
  632. package/src/traces/contourcarpet/plot.js +1 -1
  633. package/src/traces/contourgl/convert.js +1 -1
  634. package/src/traces/contourgl/index.js +1 -1
  635. package/src/traces/densitymapbox/attributes.js +3 -2
  636. package/src/traces/densitymapbox/calc.js +1 -1
  637. package/src/traces/densitymapbox/convert.js +1 -1
  638. package/src/traces/densitymapbox/defaults.js +1 -1
  639. package/src/traces/densitymapbox/event_data.js +1 -1
  640. package/src/traces/densitymapbox/hover.js +1 -1
  641. package/src/traces/densitymapbox/index.js +2 -2
  642. package/src/traces/densitymapbox/plot.js +1 -1
  643. package/src/traces/funnel/arrays_to_calcdata.js +1 -1
  644. package/src/traces/funnel/attributes.js +1 -1
  645. package/src/traces/funnel/calc.js +1 -1
  646. package/src/traces/funnel/constants.js +1 -1
  647. package/src/traces/funnel/cross_trace_calc.js +1 -1
  648. package/src/traces/funnel/defaults.js +1 -1
  649. package/src/traces/funnel/event_data.js +1 -1
  650. package/src/traces/funnel/hover.js +1 -1
  651. package/src/traces/funnel/index.js +1 -1
  652. package/src/traces/funnel/layout_attributes.js +1 -1
  653. package/src/traces/funnel/layout_defaults.js +1 -1
  654. package/src/traces/funnel/plot.js +6 -3
  655. package/src/traces/funnel/style.js +5 -3
  656. package/src/traces/funnelarea/attributes.js +1 -1
  657. package/src/traces/funnelarea/base_plot.js +1 -1
  658. package/src/traces/funnelarea/calc.js +1 -1
  659. package/src/traces/funnelarea/defaults.js +11 -9
  660. package/src/traces/funnelarea/index.js +1 -1
  661. package/src/traces/funnelarea/layout_attributes.js +1 -1
  662. package/src/traces/funnelarea/layout_defaults.js +1 -1
  663. package/src/traces/funnelarea/plot.js +23 -14
  664. package/src/traces/funnelarea/style.js +6 -2
  665. package/src/traces/heatmap/attributes.js +4 -2
  666. package/src/traces/heatmap/calc.js +1 -1
  667. package/src/traces/heatmap/clean_2d_array.js +1 -1
  668. package/src/traces/heatmap/colorbar.js +1 -1
  669. package/src/traces/heatmap/convert_column_xyz.js +6 -1
  670. package/src/traces/heatmap/defaults.js +1 -1
  671. package/src/traces/heatmap/find_empties.js +1 -1
  672. package/src/traces/heatmap/hover.js +2 -2
  673. package/src/traces/heatmap/index.js +2 -2
  674. package/src/traces/heatmap/interp2d.js +1 -1
  675. package/src/traces/heatmap/make_bound_array.js +1 -1
  676. package/src/traces/heatmap/plot.js +1 -1
  677. package/src/traces/heatmap/style.js +1 -1
  678. package/src/traces/heatmap/style_defaults.js +1 -1
  679. package/src/traces/heatmap/xyz_defaults.js +1 -1
  680. package/src/traces/heatmapgl/attributes.js +1 -1
  681. package/src/traces/heatmapgl/convert.js +1 -1
  682. package/src/traces/heatmapgl/index.js +1 -1
  683. package/src/traces/histogram/attributes.js +1 -1
  684. package/src/traces/histogram/average.js +1 -1
  685. package/src/traces/histogram/bin_attributes.js +1 -1
  686. package/src/traces/histogram/bin_functions.js +1 -1
  687. package/src/traces/histogram/bin_label_vals.js +1 -1
  688. package/src/traces/histogram/calc.js +1 -1
  689. package/src/traces/histogram/constants.js +1 -1
  690. package/src/traces/histogram/cross_trace_defaults.js +2 -2
  691. package/src/traces/histogram/defaults.js +1 -1
  692. package/src/traces/histogram/event_data.js +1 -1
  693. package/src/traces/histogram/hover.js +1 -1
  694. package/src/traces/histogram/index.js +1 -1
  695. package/src/traces/histogram/norm_functions.js +1 -1
  696. package/src/traces/histogram2d/attributes.js +4 -2
  697. package/src/traces/histogram2d/calc.js +1 -1
  698. package/src/traces/histogram2d/defaults.js +1 -1
  699. package/src/traces/histogram2d/hover.js +1 -1
  700. package/src/traces/histogram2d/index.js +2 -3
  701. package/src/traces/histogram2d/sample_defaults.js +1 -1
  702. package/src/traces/histogram2dcontour/attributes.js +1 -1
  703. package/src/traces/histogram2dcontour/defaults.js +1 -1
  704. package/src/traces/histogram2dcontour/index.js +1 -1
  705. package/src/traces/image/attributes.js +1 -1
  706. package/src/traces/image/calc.js +1 -1
  707. package/src/traces/image/constants.js +1 -1
  708. package/src/traces/image/defaults.js +1 -1
  709. package/src/traces/image/event_data.js +1 -1
  710. package/src/traces/image/hover.js +1 -1
  711. package/src/traces/image/index.js +1 -1
  712. package/src/traces/image/plot.js +1 -1
  713. package/src/traces/image/style.js +1 -1
  714. package/src/traces/indicator/attributes.js +1 -1
  715. package/src/traces/indicator/base_plot.js +1 -1
  716. package/src/traces/indicator/calc.js +1 -1
  717. package/src/traces/indicator/constants.js +1 -1
  718. package/src/traces/indicator/defaults.js +1 -1
  719. package/src/traces/indicator/index.js +1 -1
  720. package/src/traces/indicator/plot.js +1 -1
  721. package/src/traces/isosurface/attributes.js +3 -2
  722. package/src/traces/isosurface/calc.js +23 -6
  723. package/src/traces/isosurface/convert.js +54 -44
  724. package/src/traces/isosurface/defaults.js +1 -1
  725. package/src/traces/isosurface/index.js +2 -2
  726. package/src/traces/mesh3d/attributes.js +16 -4
  727. package/src/traces/mesh3d/calc.js +1 -1
  728. package/src/traces/mesh3d/convert.js +13 -8
  729. package/src/traces/mesh3d/defaults.js +2 -1
  730. package/src/traces/mesh3d/index.js +2 -2
  731. package/src/traces/ohlc/attributes.js +1 -1
  732. package/src/traces/ohlc/calc.js +1 -1
  733. package/src/traces/ohlc/defaults.js +1 -1
  734. package/src/traces/ohlc/hover.js +1 -1
  735. package/src/traces/ohlc/index.js +1 -1
  736. package/src/traces/ohlc/ohlc_defaults.js +1 -1
  737. package/src/traces/ohlc/plot.js +1 -1
  738. package/src/traces/ohlc/select.js +1 -1
  739. package/src/traces/ohlc/style.js +1 -1
  740. package/src/traces/parcats/attributes.js +1 -1
  741. package/src/traces/parcats/base_plot.js +1 -1
  742. package/src/traces/parcats/calc.js +1 -1
  743. package/src/traces/parcats/defaults.js +1 -1
  744. package/src/traces/parcats/index.js +1 -1
  745. package/src/traces/parcats/parcats.js +1 -1
  746. package/src/traces/parcats/plot.js +1 -1
  747. package/src/traces/parcoords/attributes.js +1 -1
  748. package/src/traces/parcoords/axisbrush.js +1 -1
  749. package/src/traces/parcoords/base_plot.js +1 -1
  750. package/src/traces/parcoords/calc.js +1 -1
  751. package/src/traces/parcoords/constants.js +1 -1
  752. package/src/traces/parcoords/defaults.js +1 -1
  753. package/src/traces/parcoords/helpers.js +1 -1
  754. package/src/traces/parcoords/index.js +1 -1
  755. package/src/traces/parcoords/lines.js +1 -1
  756. package/src/traces/parcoords/merge_length.js +1 -1
  757. package/src/traces/parcoords/parcoords.js +1 -1
  758. package/src/traces/parcoords/plot.js +1 -1
  759. package/src/traces/pie/attributes.js +17 -1
  760. package/src/traces/pie/base_plot.js +1 -1
  761. package/src/traces/pie/calc.js +7 -8
  762. package/src/traces/pie/defaults.js +50 -10
  763. package/src/traces/pie/event_data.js +1 -1
  764. package/src/traces/pie/helpers.js +1 -1
  765. package/src/traces/pie/index.js +2 -2
  766. package/src/traces/pie/layout_attributes.js +1 -1
  767. package/src/traces/pie/layout_defaults.js +1 -1
  768. package/src/traces/pie/plot.js +196 -72
  769. package/src/traces/pie/style.js +6 -2
  770. package/src/traces/pie/style_one.js +1 -1
  771. package/src/traces/pointcloud/attributes.js +1 -1
  772. package/src/traces/pointcloud/convert.js +1 -1
  773. package/src/traces/pointcloud/defaults.js +1 -1
  774. package/src/traces/pointcloud/index.js +1 -1
  775. package/src/traces/sankey/attributes.js +1 -1
  776. package/src/traces/sankey/base_plot.js +1 -1
  777. package/src/traces/sankey/calc.js +1 -1
  778. package/src/traces/sankey/constants.js +1 -1
  779. package/src/traces/sankey/defaults.js +1 -1
  780. package/src/traces/sankey/index.js +1 -1
  781. package/src/traces/sankey/plot.js +10 -6
  782. package/src/traces/sankey/render.js +1 -1
  783. package/src/traces/sankey/select.js +1 -1
  784. package/src/traces/scatter/arrays_to_calcdata.js +1 -1
  785. package/src/traces/scatter/attributes.js +1 -1
  786. package/src/traces/scatter/calc.js +1 -1
  787. package/src/traces/scatter/calc_selection.js +1 -1
  788. package/src/traces/scatter/colorscale_calc.js +1 -1
  789. package/src/traces/scatter/constants.js +1 -1
  790. package/src/traces/scatter/cross_trace_calc.js +1 -1
  791. package/src/traces/scatter/cross_trace_defaults.js +1 -1
  792. package/src/traces/scatter/defaults.js +1 -1
  793. package/src/traces/scatter/fillcolor_defaults.js +1 -1
  794. package/src/traces/scatter/format_labels.js +1 -1
  795. package/src/traces/scatter/get_trace_color.js +1 -1
  796. package/src/traces/scatter/hover.js +1 -1
  797. package/src/traces/scatter/index.js +1 -1
  798. package/src/traces/scatter/line_defaults.js +1 -1
  799. package/src/traces/scatter/line_points.js +1 -1
  800. package/src/traces/scatter/line_shape_defaults.js +1 -1
  801. package/src/traces/scatter/link_traces.js +1 -1
  802. package/src/traces/scatter/make_bubble_size_func.js +1 -1
  803. package/src/traces/scatter/marker_colorbar.js +1 -1
  804. package/src/traces/scatter/marker_defaults.js +1 -1
  805. package/src/traces/scatter/plot.js +1 -1
  806. package/src/traces/scatter/select.js +1 -1
  807. package/src/traces/scatter/stack_defaults.js +1 -1
  808. package/src/traces/scatter/style.js +1 -1
  809. package/src/traces/scatter/subtypes.js +1 -1
  810. package/src/traces/scatter/text_defaults.js +1 -1
  811. package/src/traces/scatter/xy_defaults.js +1 -1
  812. package/src/traces/scatter3d/attributes.js +1 -1
  813. package/src/traces/scatter3d/calc.js +1 -1
  814. package/src/traces/scatter3d/calc_errors.js +1 -1
  815. package/src/traces/scatter3d/convert.js +1 -1
  816. package/src/traces/scatter3d/defaults.js +1 -1
  817. package/src/traces/scatter3d/index.js +1 -1
  818. package/src/traces/scattercarpet/attributes.js +1 -1
  819. package/src/traces/scattercarpet/calc.js +1 -1
  820. package/src/traces/scattercarpet/defaults.js +1 -1
  821. package/src/traces/scattercarpet/event_data.js +1 -1
  822. package/src/traces/scattercarpet/format_labels.js +1 -1
  823. package/src/traces/scattercarpet/hover.js +1 -1
  824. package/src/traces/scattercarpet/index.js +1 -1
  825. package/src/traces/scattercarpet/plot.js +1 -1
  826. package/src/traces/scattergeo/attributes.js +35 -3
  827. package/src/traces/scattergeo/calc.js +13 -2
  828. package/src/traces/scattergeo/defaults.js +26 -24
  829. package/src/traces/scattergeo/event_data.js +8 -2
  830. package/src/traces/scattergeo/format_labels.js +1 -1
  831. package/src/traces/scattergeo/hover.js +1 -1
  832. package/src/traces/scattergeo/index.js +3 -2
  833. package/src/traces/scattergeo/plot.js +55 -20
  834. package/src/traces/scattergeo/select.js +1 -1
  835. package/src/traces/scattergeo/style.js +1 -1
  836. package/src/traces/scattergl/attributes.js +1 -1
  837. package/src/traces/scattergl/calc.js +1 -1
  838. package/src/traces/scattergl/constants.js +1 -1
  839. package/src/traces/scattergl/convert.js +14 -10
  840. package/src/traces/scattergl/defaults.js +3 -2
  841. package/src/traces/scattergl/edit_style.js +1 -1
  842. package/src/traces/scattergl/format_labels.js +1 -1
  843. package/src/traces/scattergl/helpers.js +23 -0
  844. package/src/traces/scattergl/hover.js +5 -5
  845. package/src/traces/scattergl/index.js +1 -1
  846. package/src/traces/scattergl/plot.js +1 -1
  847. package/src/traces/scattergl/scene_update.js +1 -1
  848. package/src/traces/scattergl/select.js +1 -1
  849. package/src/traces/scattermapbox/attributes.js +1 -1
  850. package/src/traces/scattermapbox/convert.js +1 -1
  851. package/src/traces/scattermapbox/defaults.js +1 -1
  852. package/src/traces/scattermapbox/event_data.js +1 -1
  853. package/src/traces/scattermapbox/format_labels.js +1 -1
  854. package/src/traces/scattermapbox/hover.js +1 -1
  855. package/src/traces/scattermapbox/index.js +1 -1
  856. package/src/traces/scattermapbox/plot.js +1 -1
  857. package/src/traces/scattermapbox/select.js +1 -1
  858. package/src/traces/scatterpolar/attributes.js +1 -1
  859. package/src/traces/scatterpolar/calc.js +1 -1
  860. package/src/traces/scatterpolar/defaults.js +1 -1
  861. package/src/traces/scatterpolar/format_labels.js +1 -1
  862. package/src/traces/scatterpolar/hover.js +1 -1
  863. package/src/traces/scatterpolar/index.js +1 -1
  864. package/src/traces/scatterpolar/plot.js +1 -1
  865. package/src/traces/scatterpolargl/attributes.js +1 -1
  866. package/src/traces/scatterpolargl/calc.js +1 -1
  867. package/src/traces/scatterpolargl/defaults.js +1 -1
  868. package/src/traces/scatterpolargl/format_labels.js +1 -1
  869. package/src/traces/scatterpolargl/hover.js +1 -1
  870. package/src/traces/scatterpolargl/index.js +1 -1
  871. package/src/traces/scatterpolargl/plot.js +1 -1
  872. package/src/traces/scatterternary/attributes.js +1 -1
  873. package/src/traces/scatterternary/calc.js +1 -1
  874. package/src/traces/scatterternary/defaults.js +1 -1
  875. package/src/traces/scatterternary/event_data.js +1 -1
  876. package/src/traces/scatterternary/format_labels.js +1 -1
  877. package/src/traces/scatterternary/hover.js +1 -1
  878. package/src/traces/scatterternary/index.js +1 -1
  879. package/src/traces/scatterternary/plot.js +1 -1
  880. package/src/traces/splom/attributes.js +1 -1
  881. package/src/traces/splom/base_plot.js +1 -1
  882. package/src/traces/splom/calc.js +1 -1
  883. package/src/traces/splom/defaults.js +3 -3
  884. package/src/traces/splom/edit_style.js +1 -1
  885. package/src/traces/splom/helpers.js +1 -1
  886. package/src/traces/splom/hover.js +1 -1
  887. package/src/traces/splom/index.js +1 -1
  888. package/src/traces/splom/plot.js +1 -1
  889. package/src/traces/splom/scene_update.js +1 -1
  890. package/src/traces/splom/select.js +1 -1
  891. package/src/traces/streamtube/attributes.js +3 -2
  892. package/src/traces/streamtube/calc.js +112 -54
  893. package/src/traces/streamtube/convert.js +7 -7
  894. package/src/traces/streamtube/defaults.js +1 -1
  895. package/src/traces/streamtube/index.js +3 -3
  896. package/src/traces/sunburst/attributes.js +11 -2
  897. package/src/traces/sunburst/base_plot.js +1 -1
  898. package/src/traces/sunburst/calc.js +4 -2
  899. package/src/traces/sunburst/constants.js +1 -1
  900. package/src/traces/sunburst/defaults.js +7 -2
  901. package/src/traces/sunburst/fx.js +24 -23
  902. package/src/traces/sunburst/helpers.js +16 -9
  903. package/src/traces/sunburst/index.js +1 -1
  904. package/src/traces/sunburst/layout_attributes.js +1 -1
  905. package/src/traces/sunburst/layout_defaults.js +1 -1
  906. package/src/traces/sunburst/plot.js +52 -25
  907. package/src/traces/sunburst/style.js +6 -2
  908. package/src/traces/surface/attributes.js +3 -2
  909. package/src/traces/surface/calc.js +1 -1
  910. package/src/traces/surface/convert.js +1 -1
  911. package/src/traces/surface/defaults.js +1 -1
  912. package/src/traces/surface/index.js +2 -2
  913. package/src/traces/table/attributes.js +1 -1
  914. package/src/traces/table/base_plot.js +1 -1
  915. package/src/traces/table/calc.js +1 -1
  916. package/src/traces/table/constants.js +1 -1
  917. package/src/traces/table/data_preparation_helper.js +1 -1
  918. package/src/traces/table/data_split_helpers.js +1 -1
  919. package/src/traces/table/defaults.js +1 -1
  920. package/src/traces/table/index.js +1 -1
  921. package/src/traces/table/plot.js +1 -1
  922. package/src/traces/treemap/attributes.js +10 -2
  923. package/src/traces/treemap/base_plot.js +1 -1
  924. package/src/traces/treemap/calc.js +1 -1
  925. package/src/traces/treemap/constants.js +1 -1
  926. package/src/traces/treemap/defaults.js +8 -5
  927. package/src/traces/treemap/draw_ancestors.js +9 -11
  928. package/src/traces/treemap/draw_descendants.js +6 -2
  929. package/src/traces/treemap/index.js +1 -1
  930. package/src/traces/treemap/layout_attributes.js +1 -1
  931. package/src/traces/treemap/layout_defaults.js +1 -1
  932. package/src/traces/treemap/partition.js +1 -1
  933. package/src/traces/treemap/plot.js +62 -47
  934. package/src/traces/treemap/style.js +6 -2
  935. package/src/traces/violin/attributes.js +5 -2
  936. package/src/traces/violin/calc.js +1 -1
  937. package/src/traces/violin/cross_trace_calc.js +1 -1
  938. package/src/traces/violin/defaults.js +1 -1
  939. package/src/traces/violin/helpers.js +1 -1
  940. package/src/traces/violin/hover.js +1 -1
  941. package/src/traces/violin/index.js +1 -1
  942. package/src/traces/violin/layout_attributes.js +1 -1
  943. package/src/traces/violin/layout_defaults.js +1 -1
  944. package/src/traces/violin/plot.js +1 -1
  945. package/src/traces/violin/style.js +1 -1
  946. package/src/traces/volume/attributes.js +3 -2
  947. package/src/traces/volume/convert.js +13 -13
  948. package/src/traces/volume/defaults.js +1 -1
  949. package/src/traces/volume/index.js +2 -2
  950. package/src/traces/waterfall/attributes.js +1 -1
  951. package/src/traces/waterfall/calc.js +1 -1
  952. package/src/traces/waterfall/constants.js +1 -1
  953. package/src/traces/waterfall/cross_trace_calc.js +1 -1
  954. package/src/traces/waterfall/defaults.js +1 -1
  955. package/src/traces/waterfall/event_data.js +1 -1
  956. package/src/traces/waterfall/hover.js +1 -1
  957. package/src/traces/waterfall/index.js +1 -1
  958. package/src/traces/waterfall/layout_attributes.js +1 -1
  959. package/src/traces/waterfall/layout_defaults.js +1 -1
  960. package/src/traces/waterfall/plot.js +6 -3
  961. package/src/traces/waterfall/style.js +5 -3
  962. package/src/transforms/aggregate.js +1 -1
  963. package/src/transforms/filter.js +1 -1
  964. package/src/transforms/groupby.js +2 -2
  965. package/src/transforms/helpers.js +1 -1
  966. package/src/transforms/sort.js +1 -1
  967. package/tasks/noci_test.sh +1 -1
  968. package/tasks/test_syntax.js +1 -1
  969. package/tasks/util/constants.js +1 -1
  970. package/tasks/util/wrap_locale.js +2 -2
@@ -1,6 +1,6 @@
1
1
  /**
2
- * plotly.js (gl2d) v1.51.2
3
- * Copyright 2012-2019, Plotly, Inc.
2
+ * plotly.js (gl2d) v1.52.2
3
+ * Copyright 2012-2020, Plotly, Inc.
4
4
  * All rights reserved.
5
5
  * Licensed under the MIT license
6
6
  */
@@ -74,7 +74,7 @@ for(var selector in rules) {
74
74
 
75
75
  },{"../src/lib":440}],2:[function(_dereq_,module,exports){
76
76
  /**
77
- * Copyright 2012-2019, Plotly, Inc.
77
+ * Copyright 2012-2020, Plotly, Inc.
78
78
  * All rights reserved.
79
79
  *
80
80
  * This source code is licensed under the MIT license found in the
@@ -87,7 +87,7 @@ module.exports = _dereq_('../src/traces/contourgl');
87
87
 
88
88
  },{"../src/traces/contourgl":553}],3:[function(_dereq_,module,exports){
89
89
  /**
90
- * Copyright 2012-2019, Plotly, Inc.
90
+ * Copyright 2012-2020, Plotly, Inc.
91
91
  * All rights reserved.
92
92
  *
93
93
  * This source code is licensed under the MIT license found in the
@@ -100,7 +100,7 @@ module.exports = _dereq_('../src/core');
100
100
 
101
101
  },{"../src/core":420}],4:[function(_dereq_,module,exports){
102
102
  /**
103
- * Copyright 2012-2019, Plotly, Inc.
103
+ * Copyright 2012-2020, Plotly, Inc.
104
104
  * All rights reserved.
105
105
  *
106
106
  * This source code is licensed under the MIT license found in the
@@ -113,7 +113,7 @@ module.exports = _dereq_('../src/traces/heatmapgl');
113
113
 
114
114
  },{"../src/traces/heatmapgl":567}],5:[function(_dereq_,module,exports){
115
115
  /**
116
- * Copyright 2012-2019, Plotly, Inc.
116
+ * Copyright 2012-2020, Plotly, Inc.
117
117
  * All rights reserved.
118
118
  *
119
119
  * This source code is licensed under the MIT license found in the
@@ -137,7 +137,7 @@ module.exports = Plotly;
137
137
 
138
138
  },{"./contourgl":2,"./core":3,"./heatmapgl":4,"./parcoords":6,"./pointcloud":7,"./scattergl":8,"./splom":9}],6:[function(_dereq_,module,exports){
139
139
  /**
140
- * Copyright 2012-2019, Plotly, Inc.
140
+ * Copyright 2012-2020, Plotly, Inc.
141
141
  * All rights reserved.
142
142
  *
143
143
  * This source code is licensed under the MIT license found in the
@@ -150,7 +150,7 @@ module.exports = _dereq_('../src/traces/parcoords');
150
150
 
151
151
  },{"../src/traces/parcoords":581}],7:[function(_dereq_,module,exports){
152
152
  /**
153
- * Copyright 2012-2019, Plotly, Inc.
153
+ * Copyright 2012-2020, Plotly, Inc.
154
154
  * All rights reserved.
155
155
  *
156
156
  * This source code is licensed under the MIT license found in the
@@ -163,7 +163,7 @@ module.exports = _dereq_('../src/traces/pointcloud');
163
163
 
164
164
  },{"../src/traces/pointcloud":591}],8:[function(_dereq_,module,exports){
165
165
  /**
166
- * Copyright 2012-2019, Plotly, Inc.
166
+ * Copyright 2012-2020, Plotly, Inc.
167
167
  * All rights reserved.
168
168
  *
169
169
  * This source code is licensed under the MIT license found in the
@@ -174,9 +174,9 @@ module.exports = _dereq_('../src/traces/pointcloud');
174
174
 
175
175
  module.exports = _dereq_('../src/traces/scattergl');
176
176
 
177
- },{"../src/traces/scattergl":629}],9:[function(_dereq_,module,exports){
177
+ },{"../src/traces/scattergl":630}],9:[function(_dereq_,module,exports){
178
178
  /**
179
- * Copyright 2012-2019, Plotly, Inc.
179
+ * Copyright 2012-2020, Plotly, Inc.
180
180
  * All rights reserved.
181
181
  *
182
182
  * This source code is licensed under the MIT license found in the
@@ -187,7 +187,7 @@ module.exports = _dereq_('../src/traces/scattergl');
187
187
 
188
188
  module.exports = _dereq_('../src/traces/splom');
189
189
 
190
- },{"../src/traces/splom":640}],10:[function(_dereq_,module,exports){
190
+ },{"../src/traces/splom":641}],10:[function(_dereq_,module,exports){
191
191
 
192
192
  module.exports = absolutize
193
193
 
@@ -30337,8 +30337,11 @@ proto.dispose = function() {
30337
30337
  }
30338
30338
 
30339
30339
  function createSelectBuffer(gl, shape) {
30340
- var fbo = createFBO(gl, shape)
30341
- var buffer = pool.mallocUint8(shape[0]*shape[1]*4)
30340
+ var width = shape[0]
30341
+ var height = shape[1]
30342
+ var options = {}
30343
+ var fbo = createFBO(gl, width, height, options)
30344
+ var buffer = pool.mallocUint8(width*height*4)
30342
30345
  return new SelectBuffer(gl, fbo, buffer)
30343
30346
  }
30344
30347
 
@@ -47949,7 +47952,7 @@ function findZeroCrossings(array, level) {
47949
47952
  }
47950
47953
  },{"./lib/zc-core":302}],304:[function(_dereq_,module,exports){
47951
47954
  /**
47952
- * Copyright 2012-2019, Plotly, Inc.
47955
+ * Copyright 2012-2020, Plotly, Inc.
47953
47956
  * All rights reserved.
47954
47957
  *
47955
47958
  * This source code is licensed under the MIT license found in the
@@ -48020,7 +48023,7 @@ module.exports = [
48020
48023
 
48021
48024
  },{}],305:[function(_dereq_,module,exports){
48022
48025
  /**
48023
- * Copyright 2012-2019, Plotly, Inc.
48026
+ * Copyright 2012-2020, Plotly, Inc.
48024
48027
  * All rights reserved.
48025
48028
  *
48026
48029
  * This source code is licensed under the MIT license found in the
@@ -48375,7 +48378,7 @@ module.exports = templatedArray('annotation', {
48375
48378
 
48376
48379
  },{"../../plot_api/plot_template":477,"../../plots/cartesian/constants":493,"../../plots/font_attributes":513,"./arrow_paths":304}],306:[function(_dereq_,module,exports){
48377
48380
  /**
48378
- * Copyright 2012-2019, Plotly, Inc.
48381
+ * Copyright 2012-2020, Plotly, Inc.
48379
48382
  * All rights reserved.
48380
48383
  *
48381
48384
  * This source code is licensed under the MIT license found in the
@@ -48464,7 +48467,7 @@ function calcAxisExpansion(ann, ax) {
48464
48467
 
48465
48468
  },{"../../lib":440,"../../plots/cartesian/axes":487,"./draw":311}],307:[function(_dereq_,module,exports){
48466
48469
  /**
48467
- * Copyright 2012-2019, Plotly, Inc.
48470
+ * Copyright 2012-2020, Plotly, Inc.
48468
48471
  * All rights reserved.
48469
48472
  *
48470
48473
  * This source code is licensed under the MIT license found in the
@@ -48602,7 +48605,7 @@ function clickData2r(d, ax) {
48602
48605
 
48603
48606
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531}],308:[function(_dereq_,module,exports){
48604
48607
  /**
48605
- * Copyright 2012-2019, Plotly, Inc.
48608
+ * Copyright 2012-2020, Plotly, Inc.
48606
48609
  * All rights reserved.
48607
48610
  *
48608
48611
  * This source code is licensed under the MIT license found in the
@@ -48681,7 +48684,7 @@ module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayo
48681
48684
 
48682
48685
  },{"../../lib":440,"../color":320}],309:[function(_dereq_,module,exports){
48683
48686
  /**
48684
- * Copyright 2012-2019, Plotly, Inc.
48687
+ * Copyright 2012-2020, Plotly, Inc.
48685
48688
  * All rights reserved.
48686
48689
  *
48687
48690
  * This source code is licensed under the MIT license found in the
@@ -48744,7 +48747,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
48744
48747
 
48745
48748
  },{"../../lib/to_log_range":466,"fast-isnumeric":143}],310:[function(_dereq_,module,exports){
48746
48749
  /**
48747
- * Copyright 2012-2019, Plotly, Inc.
48750
+ * Copyright 2012-2020, Plotly, Inc.
48748
48751
  * All rights reserved.
48749
48752
  *
48750
48753
  * This source code is licensed under the MIT license found in the
@@ -48851,7 +48854,7 @@ function handleAnnotationDefaults(annIn, annOut, fullLayout) {
48851
48854
 
48852
48855
  },{"../../lib":440,"../../plots/array_container_defaults":483,"../../plots/cartesian/axes":487,"./attributes":305,"./common_defaults":308}],311:[function(_dereq_,module,exports){
48853
48856
  /**
48854
- * Copyright 2012-2019, Plotly, Inc.
48857
+ * Copyright 2012-2020, Plotly, Inc.
48855
48858
  * All rights reserved.
48856
48859
  *
48857
48860
  * This source code is licensed under the MIT license found in the
@@ -49551,7 +49554,7 @@ function drawRaw(gd, options, index, subplotId, xa, ya) {
49551
49554
 
49552
49555
  },{"../../lib":440,"../../lib/setcursor":460,"../../lib/svg_text_utils":464,"../../plot_api/plot_template":477,"../../plots/cartesian/axes":487,"../../plots/plots":523,"../../registry":531,"../color":320,"../dragelement":338,"../drawing":341,"../fx":358,"./draw_arrow_head":312,"d3":83}],312:[function(_dereq_,module,exports){
49553
49556
  /**
49554
- * Copyright 2012-2019, Plotly, Inc.
49557
+ * Copyright 2012-2020, Plotly, Inc.
49555
49558
  * All rights reserved.
49556
49559
  *
49557
49560
  * This source code is licensed under the MIT license found in the
@@ -49702,7 +49705,7 @@ module.exports = function drawArrowHead(el3, ends, options) {
49702
49705
 
49703
49706
  },{"../color":320,"./arrow_paths":304,"d3":83}],313:[function(_dereq_,module,exports){
49704
49707
  /**
49705
- * Copyright 2012-2019, Plotly, Inc.
49708
+ * Copyright 2012-2020, Plotly, Inc.
49706
49709
  * All rights reserved.
49707
49710
  *
49708
49711
  * This source code is licensed under the MIT license found in the
@@ -49736,7 +49739,7 @@ module.exports = {
49736
49739
 
49737
49740
  },{"../../plots/cartesian/include_components":497,"./attributes":305,"./calc_autorange":306,"./click":307,"./convert_coords":309,"./defaults":310,"./draw":311}],314:[function(_dereq_,module,exports){
49738
49741
  /**
49739
- * Copyright 2012-2019, Plotly, Inc.
49742
+ * Copyright 2012-2020, Plotly, Inc.
49740
49743
  * All rights reserved.
49741
49744
  *
49742
49745
  * This source code is licensed under the MIT license found in the
@@ -49824,7 +49827,7 @@ module.exports = overrideAll(templatedArray('annotation', {
49824
49827
 
49825
49828
  },{"../../plot_api/edit_types":470,"../../plot_api/plot_template":477,"../annotations/attributes":305}],315:[function(_dereq_,module,exports){
49826
49829
  /**
49827
- * Copyright 2012-2019, Plotly, Inc.
49830
+ * Copyright 2012-2020, Plotly, Inc.
49828
49831
  * All rights reserved.
49829
49832
  *
49830
49833
  * This source code is licensed under the MIT license found in the
@@ -49889,7 +49892,7 @@ function mockAnnAxes(ann, scene) {
49889
49892
 
49890
49893
  },{"../../lib":440,"../../plots/cartesian/axes":487}],316:[function(_dereq_,module,exports){
49891
49894
  /**
49892
- * Copyright 2012-2019, Plotly, Inc.
49895
+ * Copyright 2012-2020, Plotly, Inc.
49893
49896
  * All rights reserved.
49894
49897
  *
49895
49898
  * This source code is licensed under the MIT license found in the
@@ -49965,7 +49968,7 @@ function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {
49965
49968
 
49966
49969
  },{"../../lib":440,"../../plots/array_container_defaults":483,"../../plots/cartesian/axes":487,"../annotations/common_defaults":308,"./attributes":314}],317:[function(_dereq_,module,exports){
49967
49970
  /**
49968
- * Copyright 2012-2019, Plotly, Inc.
49971
+ * Copyright 2012-2020, Plotly, Inc.
49969
49972
  * All rights reserved.
49970
49973
  *
49971
49974
  * This source code is licensed under the MIT license found in the
@@ -50017,7 +50020,7 @@ module.exports = function draw(scene) {
50017
50020
 
50018
50021
  },{"../../plots/gl3d/project":520,"../annotations/draw":311}],318:[function(_dereq_,module,exports){
50019
50022
  /**
50020
- * Copyright 2012-2019, Plotly, Inc.
50023
+ * Copyright 2012-2020, Plotly, Inc.
50021
50024
  * All rights reserved.
50022
50025
  *
50023
50026
  * This source code is licensed under the MIT license found in the
@@ -50065,7 +50068,7 @@ function includeGL3D(layoutIn, layoutOut) {
50065
50068
 
50066
50069
  },{"../../lib":440,"../../registry":531,"./attributes":314,"./convert":315,"./defaults":316,"./draw":317}],319:[function(_dereq_,module,exports){
50067
50070
  /**
50068
- * Copyright 2012-2019, Plotly, Inc.
50071
+ * Copyright 2012-2020, Plotly, Inc.
50069
50072
  * All rights reserved.
50070
50073
  *
50071
50074
  * This source code is licensed under the MIT license found in the
@@ -50105,7 +50108,7 @@ exports.lightFraction = 100 * (0xe - 0x4) / (0xf - 0x4);
50105
50108
 
50106
50109
  },{}],320:[function(_dereq_,module,exports){
50107
50110
  /**
50108
- * Copyright 2012-2019, Plotly, Inc.
50111
+ * Copyright 2012-2020, Plotly, Inc.
50109
50112
  * All rights reserved.
50110
50113
  *
50111
50114
  * This source code is licensed under the MIT license found in the
@@ -50279,7 +50282,7 @@ function cleanOne(val) {
50279
50282
 
50280
50283
  },{"./attributes":319,"fast-isnumeric":143,"tinycolor2":285}],321:[function(_dereq_,module,exports){
50281
50284
  /**
50282
- * Copyright 2012-2019, Plotly, Inc.
50285
+ * Copyright 2012-2020, Plotly, Inc.
50283
50286
  * All rights reserved.
50284
50287
  *
50285
50288
  * This source code is licensed under the MIT license found in the
@@ -50458,7 +50461,7 @@ module.exports = overrideAll({
50458
50461
 
50459
50462
  },{"../../lib/extend":433,"../../plot_api/edit_types":470,"../../plots/cartesian/layout_attributes":499,"../../plots/font_attributes":513}],322:[function(_dereq_,module,exports){
50460
50463
  /**
50461
- * Copyright 2012-2019, Plotly, Inc.
50464
+ * Copyright 2012-2020, Plotly, Inc.
50462
50465
  * All rights reserved.
50463
50466
  *
50464
50467
  * This source code is licensed under the MIT license found in the
@@ -50486,7 +50489,7 @@ module.exports = {
50486
50489
 
50487
50490
  },{}],323:[function(_dereq_,module,exports){
50488
50491
  /**
50489
- * Copyright 2012-2019, Plotly, Inc.
50492
+ * Copyright 2012-2020, Plotly, Inc.
50490
50493
  * All rights reserved.
50491
50494
  *
50492
50495
  * This source code is licensed under the MIT license found in the
@@ -50552,7 +50555,7 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
50552
50555
 
50553
50556
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../plots/cartesian/tick_label_defaults":506,"../../plots/cartesian/tick_mark_defaults":507,"../../plots/cartesian/tick_value_defaults":508,"./attributes":321}],324:[function(_dereq_,module,exports){
50554
50557
  /**
50555
- * Copyright 2012-2019, Plotly, Inc.
50558
+ * Copyright 2012-2020, Plotly, Inc.
50556
50559
  * All rights reserved.
50557
50560
  *
50558
50561
  * This source code is licensed under the MIT license found in the
@@ -51278,7 +51281,7 @@ module.exports = {
51278
51281
 
51279
51282
  },{"../../constants/alignment":414,"../../lib":440,"../../lib/extend":433,"../../lib/setcursor":460,"../../lib/svg_text_utils":464,"../../plots/cartesian/axes":487,"../../plots/cartesian/axis_defaults":489,"../../plots/cartesian/layout_attributes":499,"../../plots/cartesian/position_defaults":502,"../../plots/plots":523,"../../registry":531,"../color":320,"../colorscale/helpers":331,"../dragelement":338,"../drawing":341,"../titles":407,"./constants":322,"d3":83,"tinycolor2":285}],325:[function(_dereq_,module,exports){
51280
51283
  /**
51281
- * Copyright 2012-2019, Plotly, Inc.
51284
+ * Copyright 2012-2020, Plotly, Inc.
51282
51285
  * All rights reserved.
51283
51286
  *
51284
51287
  * This source code is licensed under the MIT license found in the
@@ -51297,7 +51300,7 @@ module.exports = function hasColorbar(container) {
51297
51300
 
51298
51301
  },{"../../lib":440}],326:[function(_dereq_,module,exports){
51299
51302
  /**
51300
- * Copyright 2012-2019, Plotly, Inc.
51303
+ * Copyright 2012-2020, Plotly, Inc.
51301
51304
  * All rights reserved.
51302
51305
  *
51303
51306
  * This source code is licensed under the MIT license found in the
@@ -51319,7 +51322,7 @@ module.exports = {
51319
51322
 
51320
51323
  },{"./attributes":321,"./defaults":323,"./draw":324,"./has_colorbar":325}],327:[function(_dereq_,module,exports){
51321
51324
  /**
51322
- * Copyright 2012-2019, Plotly, Inc.
51325
+ * Copyright 2012-2020, Plotly, Inc.
51323
51326
  * All rights reserved.
51324
51327
  *
51325
51328
  * This source code is licensed under the MIT license found in the
@@ -51527,7 +51530,7 @@ module.exports = function colorScaleAttrs(context, opts) {
51527
51530
 
51528
51531
  },{"../../lib/regex":456,"../colorbar/attributes":321,"./scales.js":335}],328:[function(_dereq_,module,exports){
51529
51532
  /**
51530
- * Copyright 2012-2019, Plotly, Inc.
51533
+ * Copyright 2012-2020, Plotly, Inc.
51531
51534
  * All rights reserved.
51532
51535
  *
51533
51536
  * This source code is licensed under the MIT license found in the
@@ -51606,7 +51609,7 @@ module.exports = function calc(gd, trace, opts) {
51606
51609
 
51607
51610
  },{"../../lib":440,"./helpers":331,"fast-isnumeric":143}],329:[function(_dereq_,module,exports){
51608
51611
  /**
51609
- * Copyright 2012-2019, Plotly, Inc.
51612
+ * Copyright 2012-2020, Plotly, Inc.
51610
51613
  * All rights reserved.
51611
51614
  *
51612
51615
  * This source code is licensed under the MIT license found in the
@@ -51683,7 +51686,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
51683
51686
 
51684
51687
  },{"../../lib":440,"./helpers":331}],330:[function(_dereq_,module,exports){
51685
51688
  /**
51686
- * Copyright 2012-2019, Plotly, Inc.
51689
+ * Copyright 2012-2020, Plotly, Inc.
51687
51690
  * All rights reserved.
51688
51691
  *
51689
51692
  * This source code is licensed under the MIT license found in the
@@ -51799,13 +51802,16 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
51799
51802
  if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);
51800
51803
 
51801
51804
  var showScale = coerce(prefix + 'showscale', showScaleDflt);
51802
- if(showScale) colorbarDefaults(containerIn, containerOut, layout);
51805
+ if(showScale) {
51806
+ if(prefix && template) containerOut._template = template;
51807
+ colorbarDefaults(containerIn, containerOut, layout);
51808
+ }
51803
51809
  }
51804
51810
  };
51805
51811
 
51806
51812
  },{"../../lib":440,"../../registry":531,"../colorbar/defaults":323,"../colorbar/has_colorbar":325,"./scales":335,"fast-isnumeric":143}],331:[function(_dereq_,module,exports){
51807
51813
  /**
51808
- * Copyright 2012-2019, Plotly, Inc.
51814
+ * Copyright 2012-2020, Plotly, Inc.
51809
51815
  * All rights reserved.
51810
51816
  *
51811
51817
  * This source code is licensed under the MIT license found in the
@@ -52045,7 +52051,7 @@ module.exports = {
52045
52051
 
52046
52052
  },{"../../lib":440,"../color":320,"./scales":335,"d3":83,"fast-isnumeric":143,"tinycolor2":285}],332:[function(_dereq_,module,exports){
52047
52053
  /**
52048
- * Copyright 2012-2019, Plotly, Inc.
52054
+ * Copyright 2012-2020, Plotly, Inc.
52049
52055
  * All rights reserved.
52050
52056
  *
52051
52057
  * This source code is licensed under the MIT license found in the
@@ -52087,7 +52093,7 @@ module.exports = {
52087
52093
 
52088
52094
  },{"./attributes":327,"./calc":328,"./cross_trace_defaults":329,"./defaults":330,"./helpers":331,"./layout_attributes":333,"./layout_defaults":334,"./scales":335}],333:[function(_dereq_,module,exports){
52089
52095
  /**
52090
- * Copyright 2012-2019, Plotly, Inc.
52096
+ * Copyright 2012-2020, Plotly, Inc.
52091
52097
  * All rights reserved.
52092
52098
  *
52093
52099
  * This source code is licensed under the MIT license found in the
@@ -52148,7 +52154,7 @@ module.exports = {
52148
52154
 
52149
52155
  },{"../../lib/extend":433,"./attributes":327,"./scales":335}],334:[function(_dereq_,module,exports){
52150
52156
  /**
52151
- * Copyright 2012-2019, Plotly, Inc.
52157
+ * Copyright 2012-2020, Plotly, Inc.
52152
52158
  * All rights reserved.
52153
52159
  *
52154
52160
  * This source code is licensed under the MIT license found in the
@@ -52199,7 +52205,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
52199
52205
 
52200
52206
  },{"../../lib":440,"../../plot_api/plot_template":477,"./defaults":330,"./layout_attributes":333}],335:[function(_dereq_,module,exports){
52201
52207
  /**
52202
- * Copyright 2012-2019, Plotly, Inc.
52208
+ * Copyright 2012-2020, Plotly, Inc.
52203
52209
  * All rights reserved.
52204
52210
  *
52205
52211
  * This source code is licensed under the MIT license found in the
@@ -52403,7 +52409,7 @@ module.exports = {
52403
52409
 
52404
52410
  },{"tinycolor2":285}],336:[function(_dereq_,module,exports){
52405
52411
  /**
52406
- * Copyright 2012-2019, Plotly, Inc.
52412
+ * Copyright 2012-2020, Plotly, Inc.
52407
52413
  * All rights reserved.
52408
52414
  *
52409
52415
  * This source code is licensed under the MIT license found in the
@@ -52436,7 +52442,7 @@ module.exports = function align(v, dv, v0, v1, anchor) {
52436
52442
 
52437
52443
  },{}],337:[function(_dereq_,module,exports){
52438
52444
  /**
52439
- * Copyright 2012-2019, Plotly, Inc.
52445
+ * Copyright 2012-2020, Plotly, Inc.
52440
52446
  * All rights reserved.
52441
52447
  *
52442
52448
  * This source code is licensed under the MIT license found in the
@@ -52474,7 +52480,7 @@ module.exports = function getCursor(x, y, xanchor, yanchor) {
52474
52480
 
52475
52481
  },{"../../lib":440}],338:[function(_dereq_,module,exports){
52476
52482
  /**
52477
- * Copyright 2012-2019, Plotly, Inc.
52483
+ * Copyright 2012-2020, Plotly, Inc.
52478
52484
  * All rights reserved.
52479
52485
  *
52480
52486
  * This source code is licensed under the MIT license found in the
@@ -52766,7 +52772,7 @@ function pointerOffset(e) {
52766
52772
 
52767
52773
  },{"../../lib":440,"../../plots/cartesian/constants":493,"./align":336,"./cursor":337,"./unhover":339,"has-hover":198,"has-passive-events":199,"mouse-event-offset":213}],339:[function(_dereq_,module,exports){
52768
52774
  /**
52769
- * Copyright 2012-2019, Plotly, Inc.
52775
+ * Copyright 2012-2020, Plotly, Inc.
52770
52776
  * All rights reserved.
52771
52777
  *
52772
52778
  * This source code is licensed under the MIT license found in the
@@ -52821,7 +52827,7 @@ unhover.raw = function raw(gd, evt) {
52821
52827
 
52822
52828
  },{"../../lib/dom":431,"../../lib/events":432,"../../lib/throttle":465,"../fx/constants":353}],340:[function(_dereq_,module,exports){
52823
52829
  /**
52824
- * Copyright 2012-2019, Plotly, Inc.
52830
+ * Copyright 2012-2020, Plotly, Inc.
52825
52831
  * All rights reserved.
52826
52832
  *
52827
52833
  * This source code is licensed under the MIT license found in the
@@ -52846,7 +52852,7 @@ exports.dash = {
52846
52852
 
52847
52853
  },{}],341:[function(_dereq_,module,exports){
52848
52854
  /**
52849
- * Copyright 2012-2019, Plotly, Inc.
52855
+ * Copyright 2012-2020, Plotly, Inc.
52850
52856
  * All rights reserved.
52851
52857
  *
52852
52858
  * This source code is licensed under the MIT license found in the
@@ -53064,21 +53070,31 @@ drawing.symbolList = [];
53064
53070
 
53065
53071
  Object.keys(SYMBOLDEFS).forEach(function(k) {
53066
53072
  var symDef = SYMBOLDEFS[k];
53067
- drawing.symbolList = drawing.symbolList.concat(
53068
- [symDef.n, k, symDef.n + 100, k + '-open']);
53069
- drawing.symbolNames[symDef.n] = k;
53070
- drawing.symbolFuncs[symDef.n] = symDef.f;
53073
+ var n = symDef.n;
53074
+ drawing.symbolList.push(
53075
+ n,
53076
+ k,
53077
+ n + 100,
53078
+ k + '-open'
53079
+ );
53080
+ drawing.symbolNames[n] = k;
53081
+ drawing.symbolFuncs[n] = symDef.f;
53082
+
53071
53083
  if(symDef.needLine) {
53072
- drawing.symbolNeedLines[symDef.n] = true;
53084
+ drawing.symbolNeedLines[n] = true;
53073
53085
  }
53074
53086
  if(symDef.noDot) {
53075
- drawing.symbolNoDot[symDef.n] = true;
53087
+ drawing.symbolNoDot[n] = true;
53076
53088
  } else {
53077
- drawing.symbolList = drawing.symbolList.concat(
53078
- [symDef.n + 200, k + '-dot', symDef.n + 300, k + '-open-dot']);
53089
+ drawing.symbolList.push(
53090
+ n + 200,
53091
+ k + '-dot',
53092
+ n + 300,
53093
+ k + '-open-dot'
53094
+ );
53079
53095
  }
53080
53096
  if(symDef.noFill) {
53081
- drawing.symbolNoFill[symDef.n] = true;
53097
+ drawing.symbolNoFill[n] = true;
53082
53098
  }
53083
53099
  });
53084
53100
 
@@ -53100,8 +53116,9 @@ drawing.symbolNumber = function(v) {
53100
53116
  v = drawing.symbolNames.indexOf(v);
53101
53117
  if(v >= 0) { v += vbase; }
53102
53118
  }
53103
- if((v % 100 >= MAXSYMBOL) || v >= 400) { return 0; }
53104
- return Math.floor(Math.max(v, 0));
53119
+
53120
+ return (v % 100 >= MAXSYMBOL || v >= 400) ?
53121
+ 0 : Math.floor(Math.max(v, 0));
53105
53122
  };
53106
53123
 
53107
53124
  function makePointPath(symbolNumber, r) {
@@ -53147,9 +53164,10 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
53147
53164
  }
53148
53165
  }
53149
53166
 
53150
- var fullID = 'g' + gd._fullLayout._uid + '-' + gradientID;
53167
+ var fullLayout = gd._fullLayout;
53168
+ var fullID = 'g' + fullLayout._uid + '-' + gradientID;
53151
53169
 
53152
- var gradient = gd._fullLayout._defs.select('.gradients')
53170
+ var gradient = fullLayout._defs.select('.gradients')
53153
53171
  .selectAll('#' + fullID)
53154
53172
  .data([type + colorStops.join(';')], Lib.identity);
53155
53173
 
@@ -53180,6 +53198,13 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
53180
53198
 
53181
53199
  sel.style(prop, getFullUrl(fullID, gd))
53182
53200
  .style(prop + '-opacity', null);
53201
+
53202
+ var className2query = function(s) {
53203
+ return '.' + s.attr('class').replace(/\s/g, '.');
53204
+ };
53205
+ var k = className2query(d3.select(sel.node().parentNode)) +
53206
+ '>' + className2query(sel);
53207
+ fullLayout._gradientUrlQueryParts[k] = 1;
53183
53208
  };
53184
53209
 
53185
53210
  /*
@@ -53190,8 +53215,14 @@ drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {
53190
53215
  * The upside of this is arbitrary points can share gradient defs
53191
53216
  */
53192
53217
  drawing.initGradients = function(gd) {
53193
- var gradientsGroup = Lib.ensureSingle(gd._fullLayout._defs, 'g', 'gradients');
53218
+ var fullLayout = gd._fullLayout;
53219
+
53220
+ var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');
53194
53221
  gradientsGroup.selectAll('linearGradient,radialGradient').remove();
53222
+
53223
+ // initialize stash of query parts filled in Drawing.gradient,
53224
+ // used to fix URL strings during image exports
53225
+ fullLayout._gradientUrlQueryParts = {};
53195
53226
  };
53196
53227
 
53197
53228
 
@@ -54009,7 +54040,7 @@ drawing.setTextPointsScale = function(selection, xScale, yScale) {
54009
54040
 
54010
54041
  },{"../../components/fx/helpers":355,"../../constants/alignment":414,"../../constants/interactions":417,"../../constants/xmlns_namespaces":419,"../../lib":440,"../../lib/svg_text_utils":464,"../../registry":531,"../../traces/scatter/make_bubble_size_func":610,"../../traces/scatter/subtypes":617,"../color":320,"../colorscale":332,"./symbol_defs":342,"d3":83,"fast-isnumeric":143,"tinycolor2":285}],342:[function(_dereq_,module,exports){
54011
54042
  /**
54012
- * Copyright 2012-2019, Plotly, Inc.
54043
+ * Copyright 2012-2020, Plotly, Inc.
54013
54044
  * All rights reserved.
54014
54045
  *
54015
54046
  * This source code is licensed under the MIT license found in the
@@ -54497,7 +54528,7 @@ module.exports = {
54497
54528
 
54498
54529
  },{"d3":83}],343:[function(_dereq_,module,exports){
54499
54530
  /**
54500
- * Copyright 2012-2019, Plotly, Inc.
54531
+ * Copyright 2012-2020, Plotly, Inc.
54501
54532
  * All rights reserved.
54502
54533
  *
54503
54534
  * This source code is licensed under the MIT license found in the
@@ -54612,7 +54643,7 @@ module.exports = {
54612
54643
 
54613
54644
  },{}],344:[function(_dereq_,module,exports){
54614
54645
  /**
54615
- * Copyright 2012-2019, Plotly, Inc.
54646
+ * Copyright 2012-2020, Plotly, Inc.
54616
54647
  * All rights reserved.
54617
54648
  *
54618
54649
  * This source code is licensed under the MIT license found in the
@@ -54698,7 +54729,7 @@ function calcOneAxis(calcTrace, trace, axis, coord) {
54698
54729
 
54699
54730
  },{"../../lib":440,"../../plots/cartesian/axes":487,"../../registry":531,"./compute_error":345,"fast-isnumeric":143}],345:[function(_dereq_,module,exports){
54700
54731
  /**
54701
- * Copyright 2012-2019, Plotly, Inc.
54732
+ * Copyright 2012-2020, Plotly, Inc.
54702
54733
  * All rights reserved.
54703
54734
  *
54704
54735
  * This source code is licensed under the MIT license found in the
@@ -54799,7 +54830,7 @@ function makeComputeErrorValue(type, value) {
54799
54830
 
54800
54831
  },{}],346:[function(_dereq_,module,exports){
54801
54832
  /**
54802
- * Copyright 2012-2019, Plotly, Inc.
54833
+ * Copyright 2012-2020, Plotly, Inc.
54803
54834
  * All rights reserved.
54804
54835
  *
54805
54836
  * This source code is licensed under the MIT license found in the
@@ -54874,7 +54905,7 @@ module.exports = function(traceIn, traceOut, defaultColor, opts) {
54874
54905
 
54875
54906
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531,"./attributes":343,"fast-isnumeric":143}],347:[function(_dereq_,module,exports){
54876
54907
  /**
54877
- * Copyright 2012-2019, Plotly, Inc.
54908
+ * Copyright 2012-2020, Plotly, Inc.
54878
54909
  * All rights reserved.
54879
54910
  *
54880
54911
  * This source code is licensed under the MIT license found in the
@@ -54943,7 +54974,7 @@ function hoverInfo(calcPoint, trace, hoverPoint) {
54943
54974
 
54944
54975
  },{"../../lib":440,"../../plot_api/edit_types":470,"./attributes":343,"./calc":344,"./compute_error":345,"./defaults":346,"./plot":348,"./style":349}],348:[function(_dereq_,module,exports){
54945
54976
  /**
54946
- * Copyright 2012-2019, Plotly, Inc.
54977
+ * Copyright 2012-2020, Plotly, Inc.
54947
54978
  * All rights reserved.
54948
54979
  *
54949
54980
  * This source code is licensed under the MIT license found in the
@@ -55115,7 +55146,7 @@ function errorCoords(d, xa, ya) {
55115
55146
 
55116
55147
  },{"../../traces/scatter/subtypes":617,"../drawing":341,"d3":83,"fast-isnumeric":143}],349:[function(_dereq_,module,exports){
55117
55148
  /**
55118
- * Copyright 2012-2019, Plotly, Inc.
55149
+ * Copyright 2012-2020, Plotly, Inc.
55119
55150
  * All rights reserved.
55120
55151
  *
55121
55152
  * This source code is licensed under the MIT license found in the
@@ -55152,7 +55183,7 @@ module.exports = function style(traces) {
55152
55183
 
55153
55184
  },{"../color":320,"d3":83}],350:[function(_dereq_,module,exports){
55154
55185
  /**
55155
- * Copyright 2012-2019, Plotly, Inc.
55186
+ * Copyright 2012-2020, Plotly, Inc.
55156
55187
  * All rights reserved.
55157
55188
  *
55158
55189
  * This source code is licensed under the MIT license found in the
@@ -55188,7 +55219,7 @@ module.exports = {
55188
55219
 
55189
55220
  },{"../../lib/extend":433,"../../plots/font_attributes":513,"./layout_attributes":359}],351:[function(_dereq_,module,exports){
55190
55221
  /**
55191
- * Copyright 2012-2019, Plotly, Inc.
55222
+ * Copyright 2012-2020, Plotly, Inc.
55192
55223
  * All rights reserved.
55193
55224
  *
55194
55225
  * This source code is licensed under the MIT license found in the
@@ -55247,7 +55278,7 @@ function paste(traceAttr, cd, cdAttr, fn) {
55247
55278
 
55248
55279
  },{"../../lib":440,"../../registry":531}],352:[function(_dereq_,module,exports){
55249
55280
  /**
55250
- * Copyright 2012-2019, Plotly, Inc.
55281
+ * Copyright 2012-2020, Plotly, Inc.
55251
55282
  * All rights reserved.
55252
55283
  *
55253
55284
  * This source code is licensed under the MIT license found in the
@@ -55284,7 +55315,7 @@ module.exports = function click(gd, evt, subplot) {
55284
55315
 
55285
55316
  },{"../../registry":531,"./hover":356}],353:[function(_dereq_,module,exports){
55286
55317
  /**
55287
- * Copyright 2012-2019, Plotly, Inc.
55318
+ * Copyright 2012-2020, Plotly, Inc.
55288
55319
  * All rights reserved.
55289
55320
  *
55290
55321
  * This source code is licensed under the MIT license found in the
@@ -55316,7 +55347,7 @@ module.exports = {
55316
55347
 
55317
55348
  },{}],354:[function(_dereq_,module,exports){
55318
55349
  /**
55319
- * Copyright 2012-2019, Plotly, Inc.
55350
+ * Copyright 2012-2020, Plotly, Inc.
55320
55351
  * All rights reserved.
55321
55352
  *
55322
55353
  * This source code is licensed under the MIT license found in the
@@ -55342,7 +55373,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
55342
55373
 
55343
55374
  },{"../../lib":440,"./attributes":350,"./hoverlabel_defaults":357}],355:[function(_dereq_,module,exports){
55344
55375
  /**
55345
- * Copyright 2012-2019, Plotly, Inc.
55376
+ * Copyright 2012-2020, Plotly, Inc.
55346
55377
  * All rights reserved.
55347
55378
  *
55348
55379
  * This source code is licensed under the MIT license found in the
@@ -55584,7 +55615,7 @@ function getPointData(val, pointNumber) {
55584
55615
 
55585
55616
  },{"../../lib":440}],356:[function(_dereq_,module,exports){
55586
55617
  /**
55587
- * Copyright 2012-2019, Plotly, Inc.
55618
+ * Copyright 2012-2020, Plotly, Inc.
55588
55619
  * All rights reserved.
55589
55620
  *
55590
55621
  * This source code is licensed under the MIT license found in the
@@ -57270,7 +57301,7 @@ function plainText(s, len) {
57270
57301
 
57271
57302
  },{"../../lib":440,"../../lib/events":432,"../../lib/override_cursor":451,"../../lib/svg_text_utils":464,"../../plots/cartesian/axes":487,"../../registry":531,"../color":320,"../dragelement":338,"../drawing":341,"./constants":353,"./helpers":355,"d3":83,"fast-isnumeric":143,"tinycolor2":285}],357:[function(_dereq_,module,exports){
57272
57303
  /**
57273
- * Copyright 2012-2019, Plotly, Inc.
57304
+ * Copyright 2012-2020, Plotly, Inc.
57274
57305
  * All rights reserved.
57275
57306
  *
57276
57307
  * This source code is licensed under the MIT license found in the
@@ -57293,7 +57324,7 @@ module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts
57293
57324
 
57294
57325
  },{"../../lib":440}],358:[function(_dereq_,module,exports){
57295
57326
  /**
57296
- * Copyright 2012-2019, Plotly, Inc.
57327
+ * Copyright 2012-2020, Plotly, Inc.
57297
57328
  * All rights reserved.
57298
57329
  *
57299
57330
  * This source code is licensed under the MIT license found in the
@@ -57372,7 +57403,7 @@ function castHoverinfo(trace, fullLayout, ptNumber) {
57372
57403
 
57373
57404
  },{"../../lib":440,"../dragelement":338,"./attributes":350,"./calc":351,"./click":352,"./constants":353,"./defaults":354,"./helpers":355,"./hover":356,"./layout_attributes":359,"./layout_defaults":360,"./layout_global_defaults":361,"d3":83}],359:[function(_dereq_,module,exports){
57374
57405
  /**
57375
- * Copyright 2012-2019, Plotly, Inc.
57406
+ * Copyright 2012-2020, Plotly, Inc.
57376
57407
  * All rights reserved.
57377
57408
  *
57378
57409
  * This source code is licensed under the MIT license found in the
@@ -57475,7 +57506,7 @@ module.exports = {
57475
57506
 
57476
57507
  },{"../../plots/font_attributes":513,"./constants":353}],360:[function(_dereq_,module,exports){
57477
57508
  /**
57478
- * Copyright 2012-2019, Plotly, Inc.
57509
+ * Copyright 2012-2020, Plotly, Inc.
57479
57510
  * All rights reserved.
57480
57511
  *
57481
57512
  * This source code is licensed under the MIT license found in the
@@ -57549,7 +57580,7 @@ function isHoriz(fullData, fullLayout) {
57549
57580
 
57550
57581
  },{"../../lib":440,"./layout_attributes":359}],361:[function(_dereq_,module,exports){
57551
57582
  /**
57552
- * Copyright 2012-2019, Plotly, Inc.
57583
+ * Copyright 2012-2020, Plotly, Inc.
57553
57584
  * All rights reserved.
57554
57585
  *
57555
57586
  * This source code is licensed under the MIT license found in the
@@ -57572,7 +57603,7 @@ module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {
57572
57603
 
57573
57604
  },{"../../lib":440,"./hoverlabel_defaults":357,"./layout_attributes":359}],362:[function(_dereq_,module,exports){
57574
57605
  /**
57575
- * Copyright 2012-2019, Plotly, Inc.
57606
+ * Copyright 2012-2020, Plotly, Inc.
57576
57607
  * All rights reserved.
57577
57608
  *
57578
57609
  * This source code is licensed under the MIT license found in the
@@ -57946,7 +57977,7 @@ module.exports = {
57946
57977
 
57947
57978
  },{"../../lib":440,"../../lib/regex":456,"../../plot_api/plot_template":477,"../../plots/cartesian/constants":493,"../../plots/domain":512}],363:[function(_dereq_,module,exports){
57948
57979
  /**
57949
- * Copyright 2012-2019, Plotly, Inc.
57980
+ * Copyright 2012-2020, Plotly, Inc.
57950
57981
  * All rights reserved.
57951
57982
  *
57952
57983
  * This source code is licensed under the MIT license found in the
@@ -58081,7 +58112,7 @@ module.exports = templatedArray('image', {
58081
58112
 
58082
58113
  },{"../../plot_api/plot_template":477,"../../plots/cartesian/constants":493}],364:[function(_dereq_,module,exports){
58083
58114
  /**
58084
- * Copyright 2012-2019, Plotly, Inc.
58115
+ * Copyright 2012-2020, Plotly, Inc.
58085
58116
  * All rights reserved.
58086
58117
  *
58087
58118
  * This source code is licensed under the MIT license found in the
@@ -58162,7 +58193,7 @@ module.exports = function convertCoords(gd, ax, newType, doExtra) {
58162
58193
 
58163
58194
  },{"../../lib/to_log_range":466,"fast-isnumeric":143}],365:[function(_dereq_,module,exports){
58164
58195
  /**
58165
- * Copyright 2012-2019, Plotly, Inc.
58196
+ * Copyright 2012-2020, Plotly, Inc.
58166
58197
  * All rights reserved.
58167
58198
  *
58168
58199
  * This source code is licensed under the MIT license found in the
@@ -58227,7 +58258,7 @@ function imageDefaults(imageIn, imageOut, fullLayout) {
58227
58258
 
58228
58259
  },{"../../lib":440,"../../plots/array_container_defaults":483,"../../plots/cartesian/axes":487,"./attributes":363}],366:[function(_dereq_,module,exports){
58229
58260
  /**
58230
- * Copyright 2012-2019, Plotly, Inc.
58261
+ * Copyright 2012-2020, Plotly, Inc.
58231
58262
  * All rights reserved.
58232
58263
  *
58233
58264
  * This source code is licensed under the MIT license found in the
@@ -58452,7 +58483,7 @@ module.exports = function draw(gd) {
58452
58483
 
58453
58484
  },{"../../constants/xmlns_namespaces":419,"../../plots/cartesian/axes":487,"../drawing":341,"d3":83}],367:[function(_dereq_,module,exports){
58454
58485
  /**
58455
- * Copyright 2012-2019, Plotly, Inc.
58486
+ * Copyright 2012-2020, Plotly, Inc.
58456
58487
  * All rights reserved.
58457
58488
  *
58458
58489
  * This source code is licensed under the MIT license found in the
@@ -58476,7 +58507,7 @@ module.exports = {
58476
58507
 
58477
58508
  },{"../../plots/cartesian/include_components":497,"./attributes":363,"./convert_coords":364,"./defaults":365,"./draw":366}],368:[function(_dereq_,module,exports){
58478
58509
  /**
58479
- * Copyright 2012-2019, Plotly, Inc.
58510
+ * Copyright 2012-2020, Plotly, Inc.
58480
58511
  * All rights reserved.
58481
58512
  *
58482
58513
  * This source code is licensed under the MIT license found in the
@@ -58610,12 +58641,34 @@ module.exports = {
58610
58641
  editType: 'legend',
58611
58642
 
58612
58643
  },
58644
+ title: {
58645
+ text: {
58646
+ valType: 'string',
58647
+ dflt: '',
58648
+
58649
+ editType: 'legend',
58650
+
58651
+ },
58652
+ font: fontAttrs({
58653
+ editType: 'legend',
58654
+
58655
+ }),
58656
+ side: {
58657
+ valType: 'enumerated',
58658
+ values: ['top', 'left', 'top left'],
58659
+
58660
+ editType: 'legend',
58661
+
58662
+ },
58663
+ editType: 'legend',
58664
+ },
58665
+
58613
58666
  editType: 'legend'
58614
58667
  };
58615
58668
 
58616
58669
  },{"../../plots/font_attributes":513,"../color/attributes":319}],369:[function(_dereq_,module,exports){
58617
58670
  /**
58618
- * Copyright 2012-2019, Plotly, Inc.
58671
+ * Copyright 2012-2020, Plotly, Inc.
58619
58672
  * All rights reserved.
58620
58673
  *
58621
58674
  * This source code is licensed under the MIT license found in the
@@ -58631,6 +58684,8 @@ module.exports = {
58631
58684
  scrollBarMargin: 4,
58632
58685
  scrollBarEnterAttrs: {rx: 20, ry: 3, width: 0, height: 0},
58633
58686
 
58687
+ // number of px between legend title and (left) side of legend (always in x direction and from inner border)
58688
+ titlePad: 2,
58634
58689
  // number of px between legend symbol and legend text (always in x direction)
58635
58690
  textGap: 40,
58636
58691
  // number of px between each legend item (x and/or y direction)
@@ -58639,7 +58694,7 @@ module.exports = {
58639
58694
 
58640
58695
  },{}],370:[function(_dereq_,module,exports){
58641
58696
  /**
58642
- * Copyright 2012-2019, Plotly, Inc.
58697
+ * Copyright 2012-2020, Plotly, Inc.
58643
58698
  * All rights reserved.
58644
58699
  *
58645
58700
  * This source code is licensed under the MIT license found in the
@@ -58673,7 +58728,14 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
58673
58728
  // *would* be shown by default, toward the two traces you need to
58674
58729
  // ensure the legend is shown by default, because this can still help
58675
58730
  // disambiguate.
58676
- if(trace.showlegend || trace._dfltShowLegend) {
58731
+ if(trace.showlegend || (
58732
+ trace._dfltShowLegend && !(
58733
+ trace._module &&
58734
+ trace._module.attributes &&
58735
+ trace._module.attributes.showlegend &&
58736
+ trace._module.attributes.showlegend.dflt === false
58737
+ )
58738
+ )) {
58677
58739
  legendTraceCount++;
58678
58740
  if(trace.showlegend) {
58679
58741
  legendReallyHasATrace = true;
@@ -58756,11 +58818,17 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
58756
58818
  coerce('yanchor', defaultYAnchor);
58757
58819
  coerce('valign');
58758
58820
  Lib.noneOrAll(containerIn, containerOut, ['x', 'y']);
58821
+
58822
+ var titleText = coerce('title.text');
58823
+ if(titleText) {
58824
+ coerce('title.side', orientation === 'h' ? 'left' : 'top');
58825
+ Lib.coerceFont(coerce, 'title.font', layoutOut.font);
58826
+ }
58759
58827
  };
58760
58828
 
58761
58829
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../plots/layout_attributes":521,"../../registry":531,"./attributes":368,"./helpers":374}],371:[function(_dereq_,module,exports){
58762
58830
  /**
58763
- * Copyright 2012-2019, Plotly, Inc.
58831
+ * Copyright 2012-2020, Plotly, Inc.
58764
58832
  * All rights reserved.
58765
58833
  *
58766
58834
  * This source code is licensed under the MIT license found in the
@@ -58826,6 +58894,19 @@ module.exports = function draw(gd) {
58826
58894
 
58827
58895
  var scrollBox = Lib.ensureSingle(legend, 'g', 'scrollbox');
58828
58896
 
58897
+ var title = opts.title;
58898
+ opts._titleWidth = 0;
58899
+ opts._titleHeight = 0;
58900
+ if(title.text) {
58901
+ var titleEl = Lib.ensureSingle(scrollBox, 'text', 'legendtitletext');
58902
+ titleEl.attr('text-anchor', 'start')
58903
+ .classed('user-select-none', true)
58904
+ .call(Drawing.font, title.font)
58905
+ .text(title.text);
58906
+
58907
+ textLayout(titleEl, scrollBox, gd); // handle mathjax or multi-line text and compute title height
58908
+ }
58909
+
58829
58910
  var scrollBar = Lib.ensureSingle(legend, 'rect', 'scrollbar', function(s) {
58830
58911
  s.attr(constants.scrollBarEnterAttrs)
58831
58912
  .call(Color.fill, constants.scrollBarColor);
@@ -58882,7 +58963,7 @@ module.exports = function draw(gd) {
58882
58963
  }
58883
58964
 
58884
58965
  // Set size and position of all the elements that make up a legend:
58885
- // legend, background and border, scroll box and scroll bar
58966
+ // legend, background and border, scroll box and scroll bar as well as title
58886
58967
  Drawing.setTranslate(legend, lx, ly);
58887
58968
 
58888
58969
  // to be safe, remove previous listeners
@@ -59131,23 +59212,17 @@ function drawTexts(g, gd) {
59131
59212
 
59132
59213
  textEl.attr('text-anchor', 'start')
59133
59214
  .classed('user-select-none', true)
59134
- .call(Drawing.font, fullLayout.legend.font)
59215
+ .call(Drawing.font, opts.font)
59135
59216
  .text(isEditable ? ensureLength(name, maxNameLength) : name);
59136
59217
 
59137
59218
  svgTextUtils.positionText(textEl, constants.textGap, 0);
59138
59219
 
59139
- function textLayout(s) {
59140
- svgTextUtils.convertToTspans(s, gd, function() {
59141
- computeTextDimensions(g, gd);
59142
- });
59143
- }
59144
-
59145
59220
  if(isEditable) {
59146
59221
  textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})
59147
- .call(textLayout)
59222
+ .call(textLayout, g, gd)
59148
59223
  .on('edit', function(newName) {
59149
59224
  this.text(ensureLength(newName, maxNameLength))
59150
- .call(textLayout);
59225
+ .call(textLayout, g, gd);
59151
59226
 
59152
59227
  var fullInput = legendItem.trace._fullInput || {};
59153
59228
  var update = {};
@@ -59168,7 +59243,7 @@ function drawTexts(g, gd) {
59168
59243
  return Registry.call('_guiRestyle', gd, update, traceIndex);
59169
59244
  });
59170
59245
  } else {
59171
- textLayout(textEl);
59246
+ textLayout(textEl, g, gd);
59172
59247
  }
59173
59248
  }
59174
59249
 
@@ -59221,18 +59296,24 @@ function setupTraceToggle(g, gd) {
59221
59296
  });
59222
59297
  }
59223
59298
 
59299
+ function textLayout(s, g, gd) {
59300
+ svgTextUtils.convertToTspans(s, gd, function() {
59301
+ computeTextDimensions(g, gd);
59302
+ });
59303
+ }
59304
+
59224
59305
  function computeTextDimensions(g, gd) {
59225
59306
  var legendItem = g.data()[0][0];
59226
-
59227
- if(!legendItem.trace.showlegend) {
59307
+ if(legendItem && !legendItem.trace.showlegend) {
59228
59308
  g.remove();
59229
59309
  return;
59230
59310
  }
59231
59311
 
59232
59312
  var mathjaxGroup = g.select('g[class*=math-group]');
59233
59313
  var mathjaxNode = mathjaxGroup.node();
59314
+ var bw = gd._fullLayout.legend.borderwidth;
59234
59315
  var opts = gd._fullLayout.legend;
59235
- var lineHeight = opts.font.size * LINE_SPACING;
59316
+ var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;
59236
59317
  var height, width;
59237
59318
 
59238
59319
  if(mathjaxNode) {
@@ -59241,24 +59322,56 @@ function computeTextDimensions(g, gd) {
59241
59322
  height = mathjaxBB.height;
59242
59323
  width = mathjaxBB.width;
59243
59324
 
59244
- Drawing.setTranslate(mathjaxGroup, 0, (height / 4));
59325
+ if(legendItem) {
59326
+ Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);
59327
+ } else { // case of title
59328
+ Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);
59329
+ }
59245
59330
  } else {
59246
- var text = g.select('.legendtext');
59247
- var textLines = svgTextUtils.lineCount(text);
59248
- var textNode = text.node();
59331
+ var textEl = g.select(legendItem ?
59332
+ '.legendtext' : '.legendtitletext'
59333
+ );
59334
+ var textLines = svgTextUtils.lineCount(textEl);
59335
+ var textNode = textEl.node();
59249
59336
 
59250
59337
  height = lineHeight * textLines;
59251
59338
  width = textNode ? Drawing.bBox(textNode).width : 0;
59252
59339
 
59253
59340
  // approximation to height offset to center the font
59254
59341
  // to avoid getBoundingClientRect
59255
- var textY = lineHeight * (0.3 + (1 - textLines) / 2);
59256
- svgTextUtils.positionText(text, constants.textGap, textY);
59342
+ var textY = lineHeight * ((textLines - 1) / 2 - 0.3);
59343
+ if(legendItem) {
59344
+ svgTextUtils.positionText(textEl, constants.textGap, -textY);
59345
+ } else { // case of title
59346
+ svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);
59347
+ }
59348
+ }
59349
+
59350
+ if(legendItem) {
59351
+ legendItem.lineHeight = lineHeight;
59352
+ legendItem.height = Math.max(height, 16) + 3;
59353
+ legendItem.width = width;
59354
+ } else { // case of title
59355
+ opts._titleWidth = width;
59356
+ opts._titleHeight = height;
59357
+ }
59358
+ }
59359
+
59360
+ function getTitleSize(opts) {
59361
+ var w = 0;
59362
+ var h = 0;
59363
+
59364
+ var side = opts.title.side;
59365
+ if(side) {
59366
+ if(side.indexOf('left') !== -1) {
59367
+ w = opts._titleWidth;
59368
+ }
59369
+ if(side.indexOf('top') !== -1) {
59370
+ h = opts._titleHeight;
59371
+ }
59257
59372
  }
59258
59373
 
59259
- legendItem.lineHeight = lineHeight;
59260
- legendItem.height = Math.max(height, 16) + 3;
59261
- legendItem.width = width;
59374
+ return [w, h];
59262
59375
  }
59263
59376
 
59264
59377
  /*
@@ -59275,6 +59388,7 @@ function computeLegendDimensions(gd, groups, traces) {
59275
59388
  var fullLayout = gd._fullLayout;
59276
59389
  var opts = fullLayout.legend;
59277
59390
  var gs = fullLayout._size;
59391
+
59278
59392
  var isVertical = helpers.isVertical(opts);
59279
59393
  var isGrouped = helpers.isGrouped(opts);
59280
59394
 
@@ -59298,11 +59412,15 @@ function computeLegendDimensions(gd, groups, traces) {
59298
59412
  var toggleRectWidth = 0;
59299
59413
  opts._width = 0;
59300
59414
  opts._height = 0;
59415
+ var titleSize = getTitleSize(opts);
59301
59416
 
59302
59417
  if(isVertical) {
59303
59418
  traces.each(function(d) {
59304
59419
  var h = d[0].height;
59305
- Drawing.setTranslate(this, bw, itemGap + bw + opts._height + h / 2);
59420
+ Drawing.setTranslate(this,
59421
+ bw + titleSize[0],
59422
+ bw + titleSize[1] + opts._height + h / 2 + itemGap
59423
+ );
59306
59424
  opts._height += h;
59307
59425
  opts._width = Math.max(opts._width, d[0].width);
59308
59426
  });
@@ -59352,7 +59470,10 @@ function computeLegendDimensions(gd, groups, traces) {
59352
59470
  var offsetY = 0;
59353
59471
  d3.select(this).selectAll('g.traces').each(function(d) {
59354
59472
  var h = d[0].height;
59355
- Drawing.setTranslate(this, 0, itemGap + bw + h / 2 + offsetY);
59473
+ Drawing.setTranslate(this,
59474
+ titleSize[0],
59475
+ titleSize[1] + bw + itemGap + h / 2 + offsetY
59476
+ );
59356
59477
  offsetY += h;
59357
59478
  maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);
59358
59479
  });
@@ -59395,7 +59516,10 @@ function computeLegendDimensions(gd, groups, traces) {
59395
59516
  maxItemHeightInRow = 0;
59396
59517
  }
59397
59518
 
59398
- Drawing.setTranslate(this, bw + offsetX, itemGap + bw + h / 2 + offsetY);
59519
+ Drawing.setTranslate(this,
59520
+ titleSize[0] + bw + offsetX,
59521
+ titleSize[1] + bw + offsetY + h / 2 + itemGap
59522
+ );
59399
59523
 
59400
59524
  rowWidth = offsetX + w + itemGap;
59401
59525
  offsetX += next;
@@ -59412,8 +59536,19 @@ function computeLegendDimensions(gd, groups, traces) {
59412
59536
  }
59413
59537
  }
59414
59538
 
59415
- opts._width = Math.ceil(opts._width);
59416
- opts._height = Math.ceil(opts._height);
59539
+ opts._width = Math.ceil(
59540
+ Math.max(
59541
+ opts._width + titleSize[0],
59542
+ opts._titleWidth + 2 * (bw + constants.titlePad)
59543
+ )
59544
+ );
59545
+
59546
+ opts._height = Math.ceil(
59547
+ Math.max(
59548
+ opts._height + titleSize[1],
59549
+ opts._titleHeight + 2 * (bw + constants.itemGap)
59550
+ )
59551
+ );
59417
59552
 
59418
59553
  opts._effHeight = Math.min(opts._height, opts._maxHeight);
59419
59554
 
@@ -59458,7 +59593,7 @@ function getYanchor(opts) {
59458
59593
 
59459
59594
  },{"../../constants/alignment":414,"../../lib":440,"../../lib/events":432,"../../lib/svg_text_utils":464,"../../plots/plots":523,"../../registry":531,"../color":320,"../dragelement":338,"../drawing":341,"./constants":369,"./get_legend_data":372,"./handle_click":373,"./helpers":374,"./style":376,"d3":83}],372:[function(_dereq_,module,exports){
59460
59595
  /**
59461
- * Copyright 2012-2019, Plotly, Inc.
59596
+ * Copyright 2012-2020, Plotly, Inc.
59462
59597
  * All rights reserved.
59463
59598
  *
59464
59599
  * This source code is licensed under the MIT license found in the
@@ -59566,7 +59701,7 @@ module.exports = function getLegendData(calcdata, opts) {
59566
59701
 
59567
59702
  },{"../../registry":531,"./helpers":374}],373:[function(_dereq_,module,exports){
59568
59703
  /**
59569
- * Copyright 2012-2019, Plotly, Inc.
59704
+ * Copyright 2012-2020, Plotly, Inc.
59570
59705
  * All rights reserved.
59571
59706
  *
59572
59707
  * This source code is licensed under the MIT license found in the
@@ -59732,11 +59867,12 @@ module.exports = function handleClick(g, gd, numClicks) {
59732
59867
  } else if(mode === 'toggleothers') {
59733
59868
  // Compute the clicked index. expandedIndex does what we want for expanded traces
59734
59869
  // but also culls hidden traces. That means we have some work to do.
59735
- var isClicked, isInGroup, otherState;
59870
+ var isClicked, isInGroup, notInLegend, otherState;
59736
59871
  var isIsolated = true;
59737
59872
  for(i = 0; i < fullData.length; i++) {
59738
59873
  isClicked = fullData[i] === fullTrace;
59739
- if(isClicked) continue;
59874
+ notInLegend = fullData[i].showlegend !== true;
59875
+ if(isClicked || notInLegend) continue;
59740
59876
 
59741
59877
  isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);
59742
59878
 
@@ -59761,8 +59897,10 @@ module.exports = function handleClick(g, gd, numClicks) {
59761
59897
  case true:
59762
59898
  otherState = isIsolated ? true : 'legendonly';
59763
59899
  isClicked = fullData[i] === fullTrace;
59900
+ // N.B. consider traces that have a set legendgroup as toggleable
59901
+ notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);
59764
59902
  isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);
59765
- setVisibility(fullData[i], isInGroup ? true : otherState);
59903
+ setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);
59766
59904
  break;
59767
59905
  }
59768
59906
  }
@@ -59802,7 +59940,7 @@ module.exports = function handleClick(g, gd, numClicks) {
59802
59940
 
59803
59941
  },{"../../lib":440,"../../registry":531}],374:[function(_dereq_,module,exports){
59804
59942
  /**
59805
- * Copyright 2012-2019, Plotly, Inc.
59943
+ * Copyright 2012-2020, Plotly, Inc.
59806
59944
  * All rights reserved.
59807
59945
  *
59808
59946
  * This source code is licensed under the MIT license found in the
@@ -59826,7 +59964,7 @@ exports.isReversed = function isReversed(legendLayout) {
59826
59964
 
59827
59965
  },{}],375:[function(_dereq_,module,exports){
59828
59966
  /**
59829
- * Copyright 2012-2019, Plotly, Inc.
59967
+ * Copyright 2012-2020, Plotly, Inc.
59830
59968
  * All rights reserved.
59831
59969
  *
59832
59970
  * This source code is licensed under the MIT license found in the
@@ -59850,7 +59988,7 @@ module.exports = {
59850
59988
 
59851
59989
  },{"./attributes":368,"./defaults":370,"./draw":371,"./style":376}],376:[function(_dereq_,module,exports){
59852
59990
  /**
59853
- * Copyright 2012-2019, Plotly, Inc.
59991
+ * Copyright 2012-2020, Plotly, Inc.
59854
59992
  * All rights reserved.
59855
59993
  *
59856
59994
  * This source code is licensed under the MIT license found in the
@@ -59935,6 +60073,7 @@ module.exports = function style(s, gd) {
59935
60073
  .enter().append('g')
59936
60074
  .classed('legendpoints', true);
59937
60075
  })
60076
+ .each(styleSpatial)
59938
60077
  .each(styleWaterfalls)
59939
60078
  .each(styleFunnels)
59940
60079
  .each(styleBars)
@@ -60332,15 +60471,139 @@ module.exports = function style(s, gd) {
60332
60471
  stylePie(pts, d0Mod, tMod);
60333
60472
  }
60334
60473
  }
60474
+
60475
+ function styleSpatial(d) { // i.e. maninly traces having z and colorscale
60476
+ var trace = d[0].trace;
60477
+
60478
+ var useGradient;
60479
+ var ptsData = [];
60480
+ if(trace.visible) {
60481
+ switch(trace.type) {
60482
+ case 'histogram2d' :
60483
+ case 'heatmap' :
60484
+ ptsData = [
60485
+ ['M-15,-2V4H15V-2Z'] // similar to contour
60486
+ ];
60487
+ useGradient = true;
60488
+ break;
60489
+ case 'choropleth' :
60490
+ case 'choroplethmapbox' :
60491
+ ptsData = [
60492
+ ['M-6,-6V6H6V-6Z']
60493
+ ];
60494
+ useGradient = true;
60495
+ break;
60496
+ case 'densitymapbox' :
60497
+ ptsData = [
60498
+ ['M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0']
60499
+ ];
60500
+ useGradient = 'radial';
60501
+ break;
60502
+ case 'cone' :
60503
+ ptsData = [
60504
+ ['M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z'],
60505
+ ['M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z'],
60506
+ ['M-6,-2 A2,2 0 0,0 -6,2 L6,0Z']
60507
+ ];
60508
+ useGradient = false;
60509
+ break;
60510
+ case 'streamtube' :
60511
+ ptsData = [
60512
+ ['M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z'],
60513
+ ['M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z'],
60514
+ ['M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z']
60515
+ ];
60516
+ useGradient = false;
60517
+ break;
60518
+ case 'surface' :
60519
+ ptsData = [
60520
+ ['M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z'],
60521
+ ['M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z']
60522
+ ];
60523
+ useGradient = true;
60524
+ break;
60525
+ case 'mesh3d' :
60526
+ ptsData = [
60527
+ ['M-6,6H0L-6,-6Z'],
60528
+ ['M6,6H0L6,-6Z'],
60529
+ ['M-6,-6H6L0,6Z']
60530
+ ];
60531
+ useGradient = false;
60532
+ break;
60533
+ case 'volume' :
60534
+ ptsData = [
60535
+ ['M-6,6H0L-6,-6Z'],
60536
+ ['M6,6H0L6,-6Z'],
60537
+ ['M-6,-6H6L0,6Z']
60538
+ ];
60539
+ useGradient = true;
60540
+ break;
60541
+ case 'isosurface':
60542
+ ptsData = [
60543
+ ['M-6,6H0L-6,-6Z'],
60544
+ ['M6,6H0L6,-6Z'],
60545
+ ['M-6,-6 A12,24 0 0,0 6,-6 L0,6Z']
60546
+ ];
60547
+ useGradient = false;
60548
+ break;
60549
+ }
60550
+ }
60551
+
60552
+ var pts = d3.select(this).select('g.legendpoints')
60553
+ .selectAll('path.legend3dandfriends')
60554
+ .data(ptsData);
60555
+ pts.enter().append('path').classed('legend3dandfriends', true)
60556
+ .attr('transform', 'translate(20,0)')
60557
+ .style('stroke-miterlimit', 1);
60558
+ pts.exit().remove();
60559
+
60560
+ pts.each(function(dd, i) {
60561
+ var pt = d3.select(this);
60562
+
60563
+ var cOpts = extractOpts(trace);
60564
+ var colorscale = cOpts.colorscale;
60565
+ var reversescale = cOpts.reversescale;
60566
+ var fillGradient = function(s) {
60567
+ if(s.size()) {
60568
+ var gradientID = 'legendfill-' + trace.uid;
60569
+ Drawing.gradient(s, gd, gradientID,
60570
+ getGradientDirection(reversescale, useGradient === 'radial'),
60571
+ colorscale, 'fill');
60572
+ }
60573
+ };
60574
+
60575
+ var fillColor;
60576
+ if(!colorscale) {
60577
+ var color = trace.vertexcolor || trace.facecolor || trace.color;
60578
+ fillColor = Lib.isArrayOrTypedArray(color) ? (color[i] || color[0]) : color;
60579
+ } else {
60580
+ if(!useGradient) {
60581
+ var len = colorscale.length;
60582
+ fillColor =
60583
+ i === 0 ? colorscale[reversescale ? len - 1 : 0][1] : // minimum
60584
+ i === 1 ? colorscale[reversescale ? 0 : len - 1][1] : // maximum
60585
+ colorscale[Math.floor((len - 1) / 2)][1]; // middle
60586
+ }
60587
+ }
60588
+
60589
+ pt.attr('d', dd[0]);
60590
+ if(fillColor) {
60591
+ pt.call(Color.fill, fillColor);
60592
+ } else {
60593
+ pt.call(fillGradient);
60594
+ }
60595
+ });
60596
+ }
60335
60597
  };
60336
60598
 
60337
- function getGradientDirection(reversescale) {
60338
- return reversescale ? 'horizontal' : 'horizontalreversed';
60599
+ function getGradientDirection(reversescale, isRadial) {
60600
+ var str = isRadial ? 'radial' : 'horizontal';
60601
+ return str + (reversescale ? '' : 'reversed');
60339
60602
  }
60340
60603
 
60341
60604
  },{"../../lib":440,"../../registry":531,"../../traces/pie/helpers":586,"../../traces/pie/style_one":587,"../../traces/scatter/subtypes":617,"../color":320,"../colorscale/helpers":331,"../drawing":341,"d3":83}],377:[function(_dereq_,module,exports){
60342
60605
  /**
60343
- * Copyright 2012-2019, Plotly, Inc.
60606
+ * Copyright 2012-2020, Plotly, Inc.
60344
60607
  * All rights reserved.
60345
60608
  *
60346
60609
  * This source code is licensed under the MIT license found in the
@@ -60644,7 +60907,7 @@ function handleDrag3d(gd, ev) {
60644
60907
  var button = ev.currentTarget;
60645
60908
  var attr = button.getAttribute('data-attr');
60646
60909
  var val = button.getAttribute('data-val') || true;
60647
- var sceneIds = gd._fullLayout._subplots.gl3d;
60910
+ var sceneIds = gd._fullLayout._subplots.gl3d || [];
60648
60911
  var layoutUpdate = {};
60649
60912
 
60650
60913
  var parts = attr.split('.');
@@ -60809,7 +61072,7 @@ function handleGeo(gd, ev) {
60809
61072
  var attr = button.getAttribute('data-attr');
60810
61073
  var val = button.getAttribute('data-val') || true;
60811
61074
  var fullLayout = gd._fullLayout;
60812
- var geoIds = fullLayout._subplots.geo;
61075
+ var geoIds = fullLayout._subplots.geo || [];
60813
61076
 
60814
61077
  for(var i = 0; i < geoIds.length; i++) {
60815
61078
  var id = geoIds[i];
@@ -60820,10 +61083,12 @@ function handleGeo(gd, ev) {
60820
61083
  var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;
60821
61084
 
60822
61085
  Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);
60823
- } else if(attr === 'reset') {
60824
- resetView(gd, 'geo');
60825
61086
  }
60826
61087
  }
61088
+
61089
+ if(attr === 'reset') {
61090
+ resetView(gd, 'geo');
61091
+ }
60827
61092
  }
60828
61093
 
60829
61094
  modeBarButtons.hoverClosestGl2d = {
@@ -60959,6 +61224,42 @@ modeBarButtons.resetViewMapbox = {
60959
61224
  }
60960
61225
  };
60961
61226
 
61227
+ modeBarButtons.zoomInMapbox = {
61228
+ name: 'zoomInMapbox',
61229
+ title: function(gd) { return _(gd, 'Zoom in'); },
61230
+ attr: 'zoom',
61231
+ val: 'in',
61232
+ icon: Icons.zoom_plus,
61233
+ click: handleMapboxZoom
61234
+ };
61235
+
61236
+ modeBarButtons.zoomOutMapbox = {
61237
+ name: 'zoomOutMapbox',
61238
+ title: function(gd) { return _(gd, 'Zoom out'); },
61239
+ attr: 'zoom',
61240
+ val: 'out',
61241
+ icon: Icons.zoom_minus,
61242
+ click: handleMapboxZoom
61243
+ };
61244
+
61245
+ function handleMapboxZoom(gd, ev) {
61246
+ var button = ev.currentTarget;
61247
+ var val = button.getAttribute('data-val');
61248
+ var fullLayout = gd._fullLayout;
61249
+ var subplotIds = fullLayout._subplots.mapbox || [];
61250
+ var scalar = 1.05;
61251
+ var aObj = {};
61252
+
61253
+ for(var i = 0; i < subplotIds.length; i++) {
61254
+ var id = subplotIds[i];
61255
+ var current = fullLayout[id].zoom;
61256
+ var next = (val === 'in') ? scalar * current : current / scalar;
61257
+ aObj[id + '.zoom'] = next;
61258
+ }
61259
+
61260
+ Registry.call('_guiRelayout', gd, aObj);
61261
+ }
61262
+
60962
61263
  function resetView(gd, subplotType) {
60963
61264
  var fullLayout = gd._fullLayout;
60964
61265
  var subplotIds = fullLayout._subplots[subplotType] || [];
@@ -60981,7 +61282,7 @@ function resetView(gd, subplotType) {
60981
61282
 
60982
61283
  },{"../../fonts/ploticon":422,"../../lib":440,"../../plots/cartesian/axis_ids":490,"../../plots/plots":523,"../../registry":531}],378:[function(_dereq_,module,exports){
60983
61284
  /**
60984
- * Copyright 2012-2019, Plotly, Inc.
61285
+ * Copyright 2012-2020, Plotly, Inc.
60985
61286
  * All rights reserved.
60986
61287
  *
60987
61288
  * This source code is licensed under the MIT license found in the
@@ -60995,7 +61296,7 @@ exports.manage = _dereq_('./manage');
60995
61296
 
60996
61297
  },{"./manage":379}],379:[function(_dereq_,module,exports){
60997
61298
  /**
60998
- * Copyright 2012-2019, Plotly, Inc.
61299
+ * Copyright 2012-2020, Plotly, Inc.
60999
61300
  * All rights reserved.
61000
61301
  *
61001
61302
  * This source code is licensed under the MIT license found in the
@@ -61122,6 +61423,7 @@ function getButtonGroups(gd) {
61122
61423
  hoverGroup = ['hoverClosest3d'];
61123
61424
  resetGroup = ['resetCameraDefault3d', 'resetCameraLastSave3d'];
61124
61425
  } else if(hasMapbox) {
61426
+ zoomGroup = ['zoomInMapbox', 'zoomOutMapbox'];
61125
61427
  hoverGroup = ['toggleHover'];
61126
61428
  resetGroup = ['resetViewMapbox'];
61127
61429
  } else if(hasGL2D) {
@@ -61260,7 +61562,7 @@ function fillCustomButton(customButtons) {
61260
61562
 
61261
61563
  },{"../../plots/cartesian/axis_ids":490,"../../registry":531,"../../traces/scatter/subtypes":617,"./buttons":377,"./modebar":380}],380:[function(_dereq_,module,exports){
61262
61564
  /**
61263
- * Copyright 2012-2019, Plotly, Inc.
61565
+ * Copyright 2012-2020, Plotly, Inc.
61264
61566
  * All rights reserved.
61265
61567
  *
61266
61568
  * This source code is licensed under the MIT license found in the
@@ -61606,7 +61908,7 @@ module.exports = createModeBar;
61606
61908
 
61607
61909
  },{"../../fonts/ploticon":422,"../../lib":440,"d3":83,"fast-isnumeric":143}],381:[function(_dereq_,module,exports){
61608
61910
  /**
61609
- * Copyright 2012-2019, Plotly, Inc.
61911
+ * Copyright 2012-2020, Plotly, Inc.
61610
61912
  * All rights reserved.
61611
61913
  *
61612
61914
  * This source code is licensed under the MIT license found in the
@@ -61742,7 +62044,7 @@ module.exports = {
61742
62044
 
61743
62045
  },{"../../plot_api/plot_template":477,"../../plots/font_attributes":513,"../color/attributes":319}],382:[function(_dereq_,module,exports){
61744
62046
  /**
61745
- * Copyright 2012-2019, Plotly, Inc.
62047
+ * Copyright 2012-2020, Plotly, Inc.
61746
62048
  * All rights reserved.
61747
62049
  *
61748
62050
  * This source code is licensed under the MIT license found in the
@@ -61771,7 +62073,7 @@ module.exports = {
61771
62073
 
61772
62074
  },{}],383:[function(_dereq_,module,exports){
61773
62075
  /**
61774
- * Copyright 2012-2019, Plotly, Inc.
62076
+ * Copyright 2012-2020, Plotly, Inc.
61775
62077
  * All rights reserved.
61776
62078
  *
61777
62079
  * This source code is licensed under the MIT license found in the
@@ -61863,7 +62165,7 @@ function getPosDflt(containerOut, layout, counterAxes) {
61863
62165
 
61864
62166
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../plots/array_container_defaults":483,"../color":320,"./attributes":381,"./constants":382}],384:[function(_dereq_,module,exports){
61865
62167
  /**
61866
- * Copyright 2012-2019, Plotly, Inc.
62168
+ * Copyright 2012-2020, Plotly, Inc.
61867
62169
  * All rights reserved.
61868
62170
  *
61869
62171
  * This source code is licensed under the MIT license found in the
@@ -62120,7 +62422,7 @@ function reposition(gd, buttons, opts, axName, selector) {
62120
62422
 
62121
62423
  },{"../../constants/alignment":414,"../../lib":440,"../../lib/svg_text_utils":464,"../../plots/cartesian/axis_ids":490,"../../plots/plots":523,"../../registry":531,"../color":320,"../drawing":341,"./constants":382,"./get_update_object":385,"d3":83}],385:[function(_dereq_,module,exports){
62122
62424
  /**
62123
- * Copyright 2012-2019, Plotly, Inc.
62425
+ * Copyright 2012-2020, Plotly, Inc.
62124
62426
  * All rights reserved.
62125
62427
  *
62126
62428
  * This source code is licensed under the MIT license found in the
@@ -62174,7 +62476,7 @@ function getXRange(axisLayout, buttonLayout) {
62174
62476
 
62175
62477
  },{"d3":83}],386:[function(_dereq_,module,exports){
62176
62478
  /**
62177
- * Copyright 2012-2019, Plotly, Inc.
62479
+ * Copyright 2012-2020, Plotly, Inc.
62178
62480
  * All rights reserved.
62179
62481
  *
62180
62482
  * This source code is licensed under the MIT license found in the
@@ -62201,7 +62503,7 @@ module.exports = {
62201
62503
 
62202
62504
  },{"./attributes":381,"./defaults":383,"./draw":384}],387:[function(_dereq_,module,exports){
62203
62505
  /**
62204
- * Copyright 2012-2019, Plotly, Inc.
62506
+ * Copyright 2012-2020, Plotly, Inc.
62205
62507
  * All rights reserved.
62206
62508
  *
62207
62509
  * This source code is licensed under the MIT license found in the
@@ -62275,7 +62577,7 @@ module.exports = {
62275
62577
 
62276
62578
  },{"../color/attributes":319}],388:[function(_dereq_,module,exports){
62277
62579
  /**
62278
- * Copyright 2012-2019, Plotly, Inc.
62580
+ * Copyright 2012-2020, Plotly, Inc.
62279
62581
  * All rights reserved.
62280
62582
  *
62281
62583
  * This source code is licensed under the MIT license found in the
@@ -62309,7 +62611,7 @@ module.exports = function calcAutorange(gd) {
62309
62611
 
62310
62612
  },{"../../plots/cartesian/autorange":486,"../../plots/cartesian/axis_ids":490,"./constants":389}],389:[function(_dereq_,module,exports){
62311
62613
  /**
62312
- * Copyright 2012-2019, Plotly, Inc.
62614
+ * Copyright 2012-2020, Plotly, Inc.
62313
62615
  * All rights reserved.
62314
62616
  *
62315
62617
  * This source code is licensed under the MIT license found in the
@@ -62365,7 +62667,7 @@ module.exports = {
62365
62667
 
62366
62668
  },{}],390:[function(_dereq_,module,exports){
62367
62669
  /**
62368
- * Copyright 2012-2019, Plotly, Inc.
62670
+ * Copyright 2012-2020, Plotly, Inc.
62369
62671
  * All rights reserved.
62370
62672
  *
62371
62673
  * This source code is licensed under the MIT license found in the
@@ -62451,7 +62753,7 @@ module.exports = function handleDefaults(layoutIn, layoutOut, axName) {
62451
62753
 
62452
62754
  },{"../../lib":440,"../../plot_api/plot_template":477,"../../plots/cartesian/axis_ids":490,"./attributes":387,"./oppaxis_attributes":394}],391:[function(_dereq_,module,exports){
62453
62755
  /**
62454
- * Copyright 2012-2019, Plotly, Inc.
62756
+ * Copyright 2012-2020, Plotly, Inc.
62455
62757
  * All rights reserved.
62456
62758
  *
62457
62759
  * This source code is licensed under the MIT license found in the
@@ -63027,7 +63329,7 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) {
63027
63329
 
63028
63330
  },{"../../lib":440,"../../lib/setcursor":460,"../../plots/cartesian":498,"../../plots/cartesian/axis_ids":490,"../../plots/plots":523,"../../registry":531,"../color":320,"../dragelement":338,"../drawing":341,"../titles":407,"./constants":389,"d3":83}],392:[function(_dereq_,module,exports){
63029
63331
  /**
63030
- * Copyright 2012-2019, Plotly, Inc.
63332
+ * Copyright 2012-2020, Plotly, Inc.
63031
63333
  * All rights reserved.
63032
63334
  *
63033
63335
  * This source code is licensed under the MIT license found in the
@@ -63102,7 +63404,7 @@ exports.autoMarginOpts = function(gd, ax) {
63102
63404
 
63103
63405
  },{"../../constants/alignment":414,"../../lib/svg_text_utils":464,"../../plots/cartesian/axis_ids":490,"./constants":389}],393:[function(_dereq_,module,exports){
63104
63406
  /**
63105
- * Copyright 2012-2019, Plotly, Inc.
63407
+ * Copyright 2012-2020, Plotly, Inc.
63106
63408
  * All rights reserved.
63107
63409
  *
63108
63410
  * This source code is licensed under the MIT license found in the
@@ -63141,7 +63443,7 @@ module.exports = {
63141
63443
 
63142
63444
  },{"../../lib":440,"./attributes":387,"./calc_autorange":388,"./defaults":390,"./draw":391,"./helpers":392,"./oppaxis_attributes":394}],394:[function(_dereq_,module,exports){
63143
63445
  /**
63144
- * Copyright 2012-2019, Plotly, Inc.
63446
+ * Copyright 2012-2020, Plotly, Inc.
63145
63447
  * All rights reserved.
63146
63448
  *
63147
63449
  * This source code is licensed under the MIT license found in the
@@ -63179,7 +63481,7 @@ module.exports = {
63179
63481
 
63180
63482
  },{}],395:[function(_dereq_,module,exports){
63181
63483
  /**
63182
- * Copyright 2012-2019, Plotly, Inc.
63484
+ * Copyright 2012-2020, Plotly, Inc.
63183
63485
  * All rights reserved.
63184
63486
  *
63185
63487
  * This source code is licensed under the MIT license found in the
@@ -63315,7 +63617,7 @@ module.exports = templatedArray('shape', {
63315
63617
 
63316
63618
  },{"../../lib/extend":433,"../../plot_api/plot_template":477,"../../traces/scatter/attributes":593,"../annotations/attributes":305,"../drawing/attributes":340}],396:[function(_dereq_,module,exports){
63317
63619
  /**
63318
- * Copyright 2012-2019, Plotly, Inc.
63620
+ * Copyright 2012-2020, Plotly, Inc.
63319
63621
  * All rights reserved.
63320
63622
  *
63321
63623
  * This source code is licensed under the MIT license found in the
@@ -63432,7 +63734,7 @@ function shapeBounds(ax, v0, v1, path, paramsToUse) {
63432
63734
 
63433
63735
  },{"../../lib":440,"../../plots/cartesian/axes":487,"./constants":397,"./helpers":400}],397:[function(_dereq_,module,exports){
63434
63736
  /**
63435
- * Copyright 2012-2019, Plotly, Inc.
63737
+ * Copyright 2012-2020, Plotly, Inc.
63436
63738
  * All rights reserved.
63437
63739
  *
63438
63740
  * This source code is licensed under the MIT license found in the
@@ -63496,7 +63798,7 @@ module.exports = {
63496
63798
 
63497
63799
  },{}],398:[function(_dereq_,module,exports){
63498
63800
  /**
63499
- * Copyright 2012-2019, Plotly, Inc.
63801
+ * Copyright 2012-2020, Plotly, Inc.
63500
63802
  * All rights reserved.
63501
63803
  *
63502
63804
  * This source code is licensed under the MIT license found in the
@@ -63619,7 +63921,7 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {
63619
63921
 
63620
63922
  },{"../../lib":440,"../../plots/array_container_defaults":483,"../../plots/cartesian/axes":487,"./attributes":395,"./helpers":400}],399:[function(_dereq_,module,exports){
63621
63923
  /**
63622
- * Copyright 2012-2019, Plotly, Inc.
63924
+ * Copyright 2012-2020, Plotly, Inc.
63623
63925
  * All rights reserved.
63624
63926
  *
63625
63927
  * This source code is licensed under the MIT license found in the
@@ -64236,7 +64538,7 @@ function movePath(pathIn, moveX, moveY) {
64236
64538
 
64237
64539
  },{"../../lib":440,"../../lib/setcursor":460,"../../plot_api/plot_template":477,"../../plots/cartesian/axes":487,"../../registry":531,"../color":320,"../dragelement":338,"../drawing":341,"./constants":397,"./helpers":400}],400:[function(_dereq_,module,exports){
64238
64540
  /**
64239
- * Copyright 2012-2019, Plotly, Inc.
64541
+ * Copyright 2012-2020, Plotly, Inc.
64240
64542
  * All rights reserved.
64241
64543
  *
64242
64544
  * This source code is licensed under the MIT license found in the
@@ -64357,7 +64659,7 @@ exports.roundPositionForSharpStrokeRendering = function(pos, strokeWidth) {
64357
64659
 
64358
64660
  },{"../../lib":440,"./constants":397}],401:[function(_dereq_,module,exports){
64359
64661
  /**
64360
- * Copyright 2012-2019, Plotly, Inc.
64662
+ * Copyright 2012-2020, Plotly, Inc.
64361
64663
  * All rights reserved.
64362
64664
  *
64363
64665
  * This source code is licensed under the MIT license found in the
@@ -64384,7 +64686,7 @@ module.exports = {
64384
64686
 
64385
64687
  },{"../../plots/cartesian/include_components":497,"./attributes":395,"./calc_autorange":396,"./defaults":398,"./draw":399}],402:[function(_dereq_,module,exports){
64386
64688
  /**
64387
- * Copyright 2012-2019, Plotly, Inc.
64689
+ * Copyright 2012-2020, Plotly, Inc.
64388
64690
  * All rights reserved.
64389
64691
  *
64390
64692
  * This source code is licensed under the MIT license found in the
@@ -64627,7 +64929,7 @@ module.exports = overrideAll(templatedArray('slider', {
64627
64929
 
64628
64930
  },{"../../lib/extend":433,"../../plot_api/edit_types":470,"../../plot_api/plot_template":477,"../../plots/animation_attributes":482,"../../plots/font_attributes":513,"../../plots/pad_attributes":522,"./constants":403}],403:[function(_dereq_,module,exports){
64629
64931
  /**
64630
- * Copyright 2012-2019, Plotly, Inc.
64932
+ * Copyright 2012-2020, Plotly, Inc.
64631
64933
  * All rights reserved.
64632
64934
  *
64633
64935
  * This source code is licensed under the MIT license found in the
@@ -64721,7 +65023,7 @@ module.exports = {
64721
65023
 
64722
65024
  },{}],404:[function(_dereq_,module,exports){
64723
65025
  /**
64724
- * Copyright 2012-2019, Plotly, Inc.
65026
+ * Copyright 2012-2020, Plotly, Inc.
64725
65027
  * All rights reserved.
64726
65028
  *
64727
65029
  * This source code is licensed under the MIT license found in the
@@ -64836,7 +65138,7 @@ function stepDefaults(valueIn, valueOut) {
64836
65138
 
64837
65139
  },{"../../lib":440,"../../plots/array_container_defaults":483,"./attributes":402,"./constants":403}],405:[function(_dereq_,module,exports){
64838
65140
  /**
64839
- * Copyright 2012-2019, Plotly, Inc.
65141
+ * Copyright 2012-2020, Plotly, Inc.
64840
65142
  * All rights reserved.
64841
65143
  *
64842
65144
  * This source code is licensed under the MIT license found in the
@@ -65468,7 +65770,7 @@ function drawRail(sliderGroup, sliderOpts) {
65468
65770
 
65469
65771
  },{"../../constants/alignment":414,"../../lib":440,"../../lib/svg_text_utils":464,"../../plot_api/plot_template":477,"../../plots/plots":523,"../color":320,"../drawing":341,"./constants":403,"d3":83}],406:[function(_dereq_,module,exports){
65470
65772
  /**
65471
- * Copyright 2012-2019, Plotly, Inc.
65773
+ * Copyright 2012-2020, Plotly, Inc.
65472
65774
  * All rights reserved.
65473
65775
  *
65474
65776
  * This source code is licensed under the MIT license found in the
@@ -65491,7 +65793,7 @@ module.exports = {
65491
65793
 
65492
65794
  },{"./attributes":402,"./constants":403,"./defaults":404,"./draw":405}],407:[function(_dereq_,module,exports){
65493
65795
  /**
65494
- * Copyright 2012-2019, Plotly, Inc.
65796
+ * Copyright 2012-2020, Plotly, Inc.
65495
65797
  * All rights reserved.
65496
65798
  *
65497
65799
  * This source code is licensed under the MIT license found in the
@@ -65758,7 +66060,7 @@ module.exports = {
65758
66060
 
65759
66061
  },{"../../constants/alignment":414,"../../constants/interactions":417,"../../lib":440,"../../lib/svg_text_utils":464,"../../plots/plots":523,"../../registry":531,"../color":320,"../drawing":341,"d3":83,"fast-isnumeric":143}],408:[function(_dereq_,module,exports){
65760
66062
  /**
65761
- * Copyright 2012-2019, Plotly, Inc.
66063
+ * Copyright 2012-2020, Plotly, Inc.
65762
66064
  * All rights reserved.
65763
66065
  *
65764
66066
  * This source code is licensed under the MIT license found in the
@@ -65927,7 +66229,7 @@ module.exports = overrideAll(templatedArray('updatemenu', {
65927
66229
 
65928
66230
  },{"../../lib/extend":433,"../../plot_api/edit_types":470,"../../plot_api/plot_template":477,"../../plots/font_attributes":513,"../../plots/pad_attributes":522,"../color/attributes":319}],409:[function(_dereq_,module,exports){
65929
66231
  /**
65930
- * Copyright 2012-2019, Plotly, Inc.
66232
+ * Copyright 2012-2020, Plotly, Inc.
65931
66233
  * All rights reserved.
65932
66234
  *
65933
66235
  * This source code is licensed under the MIT license found in the
@@ -66008,7 +66310,7 @@ module.exports = {
66008
66310
 
66009
66311
  },{}],410:[function(_dereq_,module,exports){
66010
66312
  /**
66011
- * Copyright 2012-2019, Plotly, Inc.
66313
+ * Copyright 2012-2020, Plotly, Inc.
66012
66314
  * All rights reserved.
66013
66315
  *
66014
66316
  * This source code is licensed under the MIT license found in the
@@ -66091,7 +66393,7 @@ function buttonDefaults(buttonIn, buttonOut) {
66091
66393
 
66092
66394
  },{"../../lib":440,"../../plots/array_container_defaults":483,"./attributes":408,"./constants":409}],411:[function(_dereq_,module,exports){
66093
66395
  /**
66094
- * Copyright 2012-2019, Plotly, Inc.
66396
+ * Copyright 2012-2020, Plotly, Inc.
66095
66397
  * All rights reserved.
66096
66398
  *
66097
66399
  * This source code is licensed under the MIT license found in the
@@ -66746,7 +67048,7 @@ function removeAllButtons(gButton, newMenuIndexAttr) {
66746
67048
  arguments[4][406][0].apply(exports,arguments)
66747
67049
  },{"./attributes":408,"./constants":409,"./defaults":410,"./draw":411,"dup":406}],413:[function(_dereq_,module,exports){
66748
67050
  /**
66749
- * Copyright 2012-2019, Plotly, Inc.
67051
+ * Copyright 2012-2020, Plotly, Inc.
66750
67052
  * All rights reserved.
66751
67053
  *
66752
67054
  * This source code is licensed under the MIT license found in the
@@ -67211,7 +67513,7 @@ ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY)
67211
67513
 
67212
67514
  },{"../../lib":440,"../color":320,"../drawing":341,"d3":83}],414:[function(_dereq_,module,exports){
67213
67515
  /**
67214
- * Copyright 2012-2019, Plotly, Inc.
67516
+ * Copyright 2012-2020, Plotly, Inc.
67215
67517
  * All rights reserved.
67216
67518
  *
67217
67519
  * This source code is licensed under the MIT license found in the
@@ -67276,7 +67578,7 @@ module.exports = {
67276
67578
 
67277
67579
  },{}],415:[function(_dereq_,module,exports){
67278
67580
  /**
67279
- * Copyright 2012-2019, Plotly, Inc.
67581
+ * Copyright 2012-2020, Plotly, Inc.
67280
67582
  * All rights reserved.
67281
67583
  *
67282
67584
  * This source code is licensed under the MIT license found in the
@@ -67292,7 +67594,7 @@ module.exports = {
67292
67594
 
67293
67595
  },{}],416:[function(_dereq_,module,exports){
67294
67596
  /**
67295
- * Copyright 2012-2019, Plotly, Inc.
67597
+ * Copyright 2012-2020, Plotly, Inc.
67296
67598
  * All rights reserved.
67297
67599
  *
67298
67600
  * This source code is licensed under the MIT license found in the
@@ -67330,7 +67632,7 @@ module.exports = {
67330
67632
 
67331
67633
  },{}],417:[function(_dereq_,module,exports){
67332
67634
  /**
67333
- * Copyright 2012-2019, Plotly, Inc.
67635
+ * Copyright 2012-2020, Plotly, Inc.
67334
67636
  * All rights reserved.
67335
67637
  *
67336
67638
  * This source code is licensed under the MIT license found in the
@@ -67353,7 +67655,7 @@ module.exports = {
67353
67655
 
67354
67656
  },{}],418:[function(_dereq_,module,exports){
67355
67657
  /**
67356
- * Copyright 2012-2019, Plotly, Inc.
67658
+ * Copyright 2012-2020, Plotly, Inc.
67357
67659
  * All rights reserved.
67358
67660
  *
67359
67661
  * This source code is licensed under the MIT license found in the
@@ -67418,7 +67720,7 @@ module.exports = {
67418
67720
 
67419
67721
  },{}],419:[function(_dereq_,module,exports){
67420
67722
  /**
67421
- * Copyright 2012-2019, Plotly, Inc.
67723
+ * Copyright 2012-2020, Plotly, Inc.
67422
67724
  * All rights reserved.
67423
67725
  *
67424
67726
  * This source code is licensed under the MIT license found in the
@@ -67442,7 +67744,7 @@ exports.svgAttrs = {
67442
67744
 
67443
67745
  },{}],420:[function(_dereq_,module,exports){
67444
67746
  /**
67445
- * Copyright 2012-2019, Plotly, Inc.
67747
+ * Copyright 2012-2020, Plotly, Inc.
67446
67748
  * All rights reserved.
67447
67749
  *
67448
67750
  * This source code is licensed under the MIT license found in the
@@ -67452,7 +67754,7 @@ exports.svgAttrs = {
67452
67754
  'use strict';
67453
67755
 
67454
67756
  // package version injected by `npm run preprocess`
67455
- exports.version = '1.51.2';
67757
+ exports.version = '1.52.2';
67456
67758
 
67457
67759
  // inject promise polyfill
67458
67760
  _dereq_('es6-promise').polyfill();
@@ -67508,6 +67810,12 @@ register([
67508
67810
  _dereq_('./locale-en-us')
67509
67811
  ]);
67510
67812
 
67813
+ // locales that are present in the window should be loaded
67814
+ if(window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) {
67815
+ register(window.PlotlyLocales);
67816
+ delete window.PlotlyLocales;
67817
+ }
67818
+
67511
67819
  // plot icons
67512
67820
  exports.Icons = _dereq_('./fonts/ploticon');
67513
67821
 
@@ -67523,7 +67831,7 @@ exports.d3 = _dereq_('d3');
67523
67831
 
67524
67832
  },{"../build/plotcss":1,"./components/annotations":313,"./components/annotations3d":318,"./components/colorbar":326,"./components/colorscale":332,"./components/errorbars":347,"./components/fx":358,"./components/grid":362,"./components/images":367,"./components/legend":375,"./components/rangeselector":386,"./components/rangeslider":393,"./components/shapes":401,"./components/sliders":406,"./components/updatemenus":412,"./fonts/mathjax_config":421,"./fonts/ploticon":422,"./lib/queue":455,"./locale-en":468,"./locale-en-us":467,"./plot_api":472,"./plot_api/plot_schema":476,"./plots/plots":523,"./registry":531,"./snapshot":536,"./traces/scatter":605,"d3":83,"es6-promise":137}],421:[function(_dereq_,module,exports){
67525
67833
  /**
67526
- * Copyright 2012-2019, Plotly, Inc.
67834
+ * Copyright 2012-2020, Plotly, Inc.
67527
67835
  * All rights reserved.
67528
67836
  *
67529
67837
  * This source code is licensed under the MIT license found in the
@@ -67554,7 +67862,7 @@ module.exports = function() {
67554
67862
 
67555
67863
  },{}],422:[function(_dereq_,module,exports){
67556
67864
  /**
67557
- * Copyright 2012-2019, Plotly, Inc.
67865
+ * Copyright 2012-2020, Plotly, Inc.
67558
67866
  * All rights reserved.
67559
67867
  *
67560
67868
  * This source code is licensed under the MIT license found in the
@@ -67698,7 +68006,7 @@ module.exports = {
67698
68006
 
67699
68007
  },{}],423:[function(_dereq_,module,exports){
67700
68008
  /**
67701
- * Copyright 2012-2019, Plotly, Inc.
68009
+ * Copyright 2012-2020, Plotly, Inc.
67702
68010
  * All rights reserved.
67703
68011
  *
67704
68012
  * This source code is licensed under the MIT license found in the
@@ -67762,7 +68070,7 @@ exports.isBottomAnchor = function isBottomAnchor(opts) {
67762
68070
 
67763
68071
  },{}],424:[function(_dereq_,module,exports){
67764
68072
  /**
67765
- * Copyright 2012-2019, Plotly, Inc.
68073
+ * Copyright 2012-2020, Plotly, Inc.
67766
68074
  * All rights reserved.
67767
68075
  *
67768
68076
  * This source code is licensed under the MIT license found in the
@@ -68003,7 +68311,7 @@ module.exports = {
68003
68311
 
68004
68312
  },{"./mod":447}],425:[function(_dereq_,module,exports){
68005
68313
  /**
68006
- * Copyright 2012-2019, Plotly, Inc.
68314
+ * Copyright 2012-2020, Plotly, Inc.
68007
68315
  * All rights reserved.
68008
68316
  *
68009
68317
  * This source code is licensed under the MIT license found in the
@@ -68160,7 +68468,7 @@ function _rowLength(z, fn, len0) {
68160
68468
 
68161
68469
  },{}],426:[function(_dereq_,module,exports){
68162
68470
  /**
68163
- * Copyright 2012-2019, Plotly, Inc.
68471
+ * Copyright 2012-2020, Plotly, Inc.
68164
68472
  * All rights reserved.
68165
68473
  *
68166
68474
  * This source code is licensed under the MIT license found in the
@@ -68193,7 +68501,7 @@ module.exports = function cleanNumber(v) {
68193
68501
 
68194
68502
  },{"../constants/numerical":418,"fast-isnumeric":143}],427:[function(_dereq_,module,exports){
68195
68503
  /**
68196
- * Copyright 2012-2019, Plotly, Inc.
68504
+ * Copyright 2012-2020, Plotly, Inc.
68197
68505
  * All rights reserved.
68198
68506
  *
68199
68507
  * This source code is licensed under the MIT license found in the
@@ -68221,7 +68529,7 @@ module.exports = function clearGlCanvases(gd) {
68221
68529
 
68222
68530
  },{}],428:[function(_dereq_,module,exports){
68223
68531
  /**
68224
- * Copyright 2012-2019, Plotly, Inc.
68532
+ * Copyright 2012-2020, Plotly, Inc.
68225
68533
  * All rights reserved.
68226
68534
  *
68227
68535
  * This source code is licensed under the MIT license found in the
@@ -68244,7 +68552,7 @@ module.exports = function clearResponsive(gd) {
68244
68552
 
68245
68553
  },{}],429:[function(_dereq_,module,exports){
68246
68554
  /**
68247
- * Copyright 2012-2019, Plotly, Inc.
68555
+ * Copyright 2012-2020, Plotly, Inc.
68248
68556
  * All rights reserved.
68249
68557
  *
68250
68558
  * This source code is licensed under the MIT license found in the
@@ -68708,7 +69016,7 @@ exports.validate = validate;
68708
69016
 
68709
69017
  },{"../components/colorscale/scales":335,"../constants/interactions":417,"../plots/attributes":484,"./array":425,"./mod":447,"./nested_property":448,"./regex":456,"fast-isnumeric":143,"tinycolor2":285}],430:[function(_dereq_,module,exports){
68710
69018
  /**
68711
- * Copyright 2012-2019, Plotly, Inc.
69019
+ * Copyright 2012-2020, Plotly, Inc.
68712
69020
  * All rights reserved.
68713
69021
  *
68714
69022
  * This source code is licensed under the MIT license found in the
@@ -69294,7 +69602,7 @@ exports.findExactDates = function(data, calendar) {
69294
69602
 
69295
69603
  },{"../constants/numerical":418,"../registry":531,"./loggers":444,"./mod":447,"d3":83,"fast-isnumeric":143}],431:[function(_dereq_,module,exports){
69296
69604
  /**
69297
- * Copyright 2012-2019, Plotly, Inc.
69605
+ * Copyright 2012-2020, Plotly, Inc.
69298
69606
  * All rights reserved.
69299
69607
  *
69300
69608
  * This source code is licensed under the MIT license found in the
@@ -69397,7 +69705,7 @@ module.exports = {
69397
69705
 
69398
69706
  },{"./loggers":444,"d3":83}],432:[function(_dereq_,module,exports){
69399
69707
  /**
69400
- * Copyright 2012-2019, Plotly, Inc.
69708
+ * Copyright 2012-2020, Plotly, Inc.
69401
69709
  * All rights reserved.
69402
69710
  *
69403
69711
  * This source code is licensed under the MIT license found in the
@@ -69570,7 +69878,7 @@ module.exports = Events;
69570
69878
 
69571
69879
  },{"events":48}],433:[function(_dereq_,module,exports){
69572
69880
  /**
69573
- * Copyright 2012-2019, Plotly, Inc.
69881
+ * Copyright 2012-2020, Plotly, Inc.
69574
69882
  * All rights reserved.
69575
69883
  *
69576
69884
  * This source code is licensed under the MIT license found in the
@@ -69684,7 +69992,7 @@ function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) {
69684
69992
 
69685
69993
  },{"./is_plain_object.js":441}],434:[function(_dereq_,module,exports){
69686
69994
  /**
69687
- * Copyright 2012-2019, Plotly, Inc.
69995
+ * Copyright 2012-2020, Plotly, Inc.
69688
69996
  * All rights reserved.
69689
69997
  *
69690
69998
  * This source code is licensed under the MIT license found in the
@@ -69735,7 +70043,7 @@ module.exports = function filterUnique(array) {
69735
70043
 
69736
70044
  },{}],435:[function(_dereq_,module,exports){
69737
70045
  /**
69738
- * Copyright 2012-2019, Plotly, Inc.
70046
+ * Copyright 2012-2020, Plotly, Inc.
69739
70047
  * All rights reserved.
69740
70048
  *
69741
70049
  * This source code is licensed under the MIT license found in the
@@ -69783,7 +70091,7 @@ function isCalcData(cont) {
69783
70091
 
69784
70092
  },{}],436:[function(_dereq_,module,exports){
69785
70093
  /**
69786
- * Copyright 2012-2019, Plotly, Inc.
70094
+ * Copyright 2012-2020, Plotly, Inc.
69787
70095
  * All rights reserved.
69788
70096
  *
69789
70097
  * This source code is licensed under the MIT license found in the
@@ -70027,7 +70335,7 @@ exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {
70027
70335
 
70028
70336
  },{"./mod":447}],437:[function(_dereq_,module,exports){
70029
70337
  /**
70030
- * Copyright 2012-2019, Plotly, Inc.
70338
+ * Copyright 2012-2020, Plotly, Inc.
70031
70339
  * All rights reserved.
70032
70340
  *
70033
70341
  * This source code is licensed under the MIT license found in the
@@ -70131,7 +70439,7 @@ module.exports = {
70131
70439
 
70132
70440
  },{"../components/color/attributes":319,"../components/colorscale":332,"./array":425,"color-normalize":61,"fast-isnumeric":143,"tinycolor2":285}],438:[function(_dereq_,module,exports){
70133
70441
  /**
70134
- * Copyright 2012-2019, Plotly, Inc.
70442
+ * Copyright 2012-2020, Plotly, Inc.
70135
70443
  * All rights reserved.
70136
70444
  *
70137
70445
  * This source code is licensed under the MIT license found in the
@@ -70167,7 +70475,7 @@ module.exports = {
70167
70475
 
70168
70476
  },{"./identity":439}],439:[function(_dereq_,module,exports){
70169
70477
  /**
70170
- * Copyright 2012-2019, Plotly, Inc.
70478
+ * Copyright 2012-2020, Plotly, Inc.
70171
70479
  * All rights reserved.
70172
70480
  *
70173
70481
  * This source code is licensed under the MIT license found in the
@@ -70183,7 +70491,7 @@ module.exports = function identity(d) { return d; };
70183
70491
 
70184
70492
  },{}],440:[function(_dereq_,module,exports){
70185
70493
  /**
70186
- * Copyright 2012-2019, Plotly, Inc.
70494
+ * Copyright 2012-2020, Plotly, Inc.
70187
70495
  * All rights reserved.
70188
70496
  *
70189
70497
  * This source code is licensed under the MIT license found in the
@@ -70768,7 +71076,9 @@ lib.tagSelected = function(calcTrace, trace, ptNumber2cdIndex) {
70768
71076
  for(var i = 0; i < selectedpoints.length; i++) {
70769
71077
  var ptIndex = selectedpoints[i];
70770
71078
 
70771
- if(lib.isIndex(ptIndex)) {
71079
+ if(lib.isIndex(ptIndex) ||
71080
+ (lib.isArrayOrTypedArray(ptIndex) && lib.isIndex(ptIndex[0]) && lib.isIndex(ptIndex[1]))
71081
+ ) {
70772
71082
  var ptNumber = ptIndex2ptNumber ? ptIndex2ptNumber[ptIndex] : ptIndex;
70773
71083
  var cdIndex = ptNumber2cdIndex ? ptNumber2cdIndex[ptNumber] : ptNumber;
70774
71084
 
@@ -71171,11 +71481,14 @@ lib.templateString = function(string, obj) {
71171
71481
  var getterCache = {};
71172
71482
 
71173
71483
  return string.replace(lib.TEMPLATE_STRING_REGEX, function(dummy, key) {
71484
+ var v;
71174
71485
  if(SIMPLE_PROPERTY_REGEX.test(key)) {
71175
- return obj[key] || '';
71486
+ v = obj[key];
71487
+ } else {
71488
+ getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;
71489
+ v = getterCache[key]();
71176
71490
  }
71177
- getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;
71178
- return getterCache[key]() || '';
71491
+ return lib.isValidTextValue(v) ? v : '';
71179
71492
  });
71180
71493
  };
71181
71494
 
@@ -71366,38 +71679,59 @@ lib.isHidden = function(gd) {
71366
71679
  return !display || display === 'none';
71367
71680
  };
71368
71681
 
71369
- lib.getTextTransform = function(opts) {
71370
- var textX = opts.textX;
71371
- var textY = opts.textY;
71372
- var targetX = opts.targetX;
71373
- var targetY = opts.targetY;
71374
- var scale = opts.scale;
71375
- var rotate = opts.rotate;
71376
-
71377
- var transformScale;
71378
- var transformRotate;
71379
- var transformTranslate;
71380
-
71381
- if(scale < 1) transformScale = 'scale(' + scale + ') ';
71382
- else {
71383
- scale = 1;
71384
- transformScale = '';
71385
- }
71386
-
71387
- transformRotate = (rotate) ?
71388
- 'rotate(' + rotate + ' ' + textX + ' ' + textY + ') ' : '';
71682
+ /** Return transform text for bar bar-like rectangles and pie-like slices
71683
+ * @param {object} transform
71684
+ * - targetX: desired position on the x-axis
71685
+ * - targetY: desired position on the y-axis
71686
+ * - textX: text middle position on the x-axis
71687
+ * - textY: text middle position on the y-axis
71688
+ * - anchorX: (optional) text anchor position on the x-axis (computed from textX), zero for middle anchor
71689
+ * - anchorY: (optional) text anchor position on the y-axis (computed from textY), zero for middle anchor
71690
+ * - scale: (optional) scale applied after translate
71691
+ * - rotate: (optional) rotation applied after scale
71692
+ * - noCenter: when defined no extra arguments needed in rotation
71693
+ */
71694
+ lib.getTextTransform = function(transform) {
71695
+ var noCenter = transform.noCenter;
71696
+ var textX = transform.textX;
71697
+ var textY = transform.textY;
71698
+ var targetX = transform.targetX;
71699
+ var targetY = transform.targetY;
71700
+ var anchorX = transform.anchorX || 0;
71701
+ var anchorY = transform.anchorY || 0;
71702
+ var rotate = transform.rotate;
71703
+ var scale = transform.scale;
71704
+ if(!scale) scale = 0;
71705
+ else if(scale > 1) scale = 1;
71389
71706
 
71390
- // Note that scaling also affects the center of the text box
71391
- var translateX = (targetX - scale * textX);
71392
- var translateY = (targetY - scale * textY);
71393
- transformTranslate = 'translate(' + translateX + ' ' + translateY + ')';
71707
+ return (
71708
+ 'translate(' +
71709
+ (targetX - scale * (textX + anchorX)) + ',' +
71710
+ (targetY - scale * (textY + anchorY)) +
71711
+ ')' +
71712
+ (scale < 1 ?
71713
+ 'scale(' + scale + ')' : ''
71714
+ ) +
71715
+ (rotate ?
71716
+ 'rotate(' + rotate +
71717
+ (noCenter ? '' : ' ' + textX + ' ' + textY) +
71718
+ ')' : ''
71719
+ )
71720
+ );
71721
+ };
71394
71722
 
71395
- return transformTranslate + transformScale + transformRotate;
71723
+ lib.ensureUniformFontSize = function(gd, baseFont) {
71724
+ var out = lib.extendFlat({}, baseFont);
71725
+ out.size = Math.max(
71726
+ baseFont.size,
71727
+ gd._fullLayout.uniformtext.minsize || 0
71728
+ );
71729
+ return out;
71396
71730
  };
71397
71731
 
71398
71732
  },{"../constants/numerical":418,"./anchor_utils":423,"./angles":424,"./array":425,"./clean_number":426,"./clear_responsive":428,"./coerce":429,"./dates":430,"./dom":431,"./extend":433,"./filter_unique":434,"./filter_visible":435,"./geometry2d":436,"./identity":439,"./is_plain_object":441,"./keyed_container":442,"./localize":443,"./loggers":444,"./make_trace_groups":445,"./matrix":446,"./mod":447,"./nested_property":448,"./noop":449,"./notifier":450,"./push_unique":454,"./regex":456,"./relative_attr":457,"./relink_private":458,"./search":459,"./stats":462,"./throttle":465,"./to_log_range":466,"d3":83,"fast-isnumeric":143}],441:[function(_dereq_,module,exports){
71399
71733
  /**
71400
- * Copyright 2012-2019, Plotly, Inc.
71734
+ * Copyright 2012-2020, Plotly, Inc.
71401
71735
  * All rights reserved.
71402
71736
  *
71403
71737
  * This source code is licensed under the MIT license found in the
@@ -71425,7 +71759,7 @@ module.exports = function isPlainObject(obj) {
71425
71759
 
71426
71760
  },{}],442:[function(_dereq_,module,exports){
71427
71761
  /**
71428
- * Copyright 2012-2019, Plotly, Inc.
71762
+ * Copyright 2012-2020, Plotly, Inc.
71429
71763
  * All rights reserved.
71430
71764
  *
71431
71765
  * This source code is licensed under the MIT license found in the
@@ -71618,7 +71952,7 @@ module.exports = function keyedContainer(baseObj, path, keyName, valueName) {
71618
71952
 
71619
71953
  },{"./nested_property":448}],443:[function(_dereq_,module,exports){
71620
71954
  /**
71621
- * Copyright 2012-2019, Plotly, Inc.
71955
+ * Copyright 2012-2020, Plotly, Inc.
71622
71956
  * All rights reserved.
71623
71957
  *
71624
71958
  * This source code is licensed under the MIT license found in the
@@ -71674,7 +72008,7 @@ module.exports = function localize(gd, s) {
71674
72008
 
71675
72009
  },{"../registry":531}],444:[function(_dereq_,module,exports){
71676
72010
  /**
71677
- * Copyright 2012-2019, Plotly, Inc.
72011
+ * Copyright 2012-2020, Plotly, Inc.
71678
72012
  * All rights reserved.
71679
72013
  *
71680
72014
  * This source code is licensed under the MIT license found in the
@@ -71687,6 +72021,8 @@ module.exports = function localize(gd, s) {
71687
72021
 
71688
72022
  var dfltConfig = _dereq_('../plot_api/plot_config').dfltConfig;
71689
72023
 
72024
+ var notifier = _dereq_('./notifier');
72025
+
71690
72026
  var loggers = module.exports = {};
71691
72027
 
71692
72028
  /**
@@ -71696,39 +72032,63 @@ var loggers = module.exports = {};
71696
72032
  */
71697
72033
 
71698
72034
  loggers.log = function() {
72035
+ var i;
72036
+
71699
72037
  if(dfltConfig.logging > 1) {
71700
72038
  var messages = ['LOG:'];
71701
-
71702
- for(var i = 0; i < arguments.length; i++) {
72039
+ for(i = 0; i < arguments.length; i++) {
71703
72040
  messages.push(arguments[i]);
71704
72041
  }
71705
-
71706
72042
  apply(console.trace || console.log, messages);
71707
72043
  }
72044
+
72045
+ if(dfltConfig.notifyOnLogging > 1) {
72046
+ var lines = [];
72047
+ for(i = 0; i < arguments.length; i++) {
72048
+ lines.push(arguments[i]);
72049
+ }
72050
+ notifier(lines.join('<br>'), 'long');
72051
+ }
71708
72052
  };
71709
72053
 
71710
72054
  loggers.warn = function() {
72055
+ var i;
72056
+
71711
72057
  if(dfltConfig.logging > 0) {
71712
72058
  var messages = ['WARN:'];
71713
-
71714
- for(var i = 0; i < arguments.length; i++) {
72059
+ for(i = 0; i < arguments.length; i++) {
71715
72060
  messages.push(arguments[i]);
71716
72061
  }
71717
-
71718
72062
  apply(console.trace || console.log, messages);
71719
72063
  }
72064
+
72065
+ if(dfltConfig.notifyOnLogging > 0) {
72066
+ var lines = [];
72067
+ for(i = 0; i < arguments.length; i++) {
72068
+ lines.push(arguments[i]);
72069
+ }
72070
+ notifier(lines.join('<br>'), 'stick');
72071
+ }
71720
72072
  };
71721
72073
 
71722
72074
  loggers.error = function() {
72075
+ var i;
72076
+
71723
72077
  if(dfltConfig.logging > 0) {
71724
72078
  var messages = ['ERROR:'];
71725
-
71726
- for(var i = 0; i < arguments.length; i++) {
72079
+ for(i = 0; i < arguments.length; i++) {
71727
72080
  messages.push(arguments[i]);
71728
72081
  }
71729
-
71730
72082
  apply(console.error, messages);
71731
72083
  }
72084
+
72085
+ if(dfltConfig.notifyOnLogging > 0) {
72086
+ var lines = [];
72087
+ for(i = 0; i < arguments.length; i++) {
72088
+ lines.push(arguments[i]);
72089
+ }
72090
+ notifier(lines.join('<br>'), 'stick');
72091
+ }
71732
72092
  };
71733
72093
 
71734
72094
  /*
@@ -71756,9 +72116,9 @@ function apply(f, args) {
71756
72116
  }
71757
72117
  }
71758
72118
 
71759
- },{"../plot_api/plot_config":475}],445:[function(_dereq_,module,exports){
72119
+ },{"../plot_api/plot_config":475,"./notifier":450}],445:[function(_dereq_,module,exports){
71760
72120
  /**
71761
- * Copyright 2012-2019, Plotly, Inc.
72121
+ * Copyright 2012-2020, Plotly, Inc.
71762
72122
  * All rights reserved.
71763
72123
  *
71764
72124
  * This source code is licensed under the MIT license found in the
@@ -71801,7 +72161,7 @@ module.exports = function makeTraceGroups(traceLayer, cdModule, cls) {
71801
72161
 
71802
72162
  },{"d3":83}],446:[function(_dereq_,module,exports){
71803
72163
  /**
71804
- * Copyright 2012-2019, Plotly, Inc.
72164
+ * Copyright 2012-2020, Plotly, Inc.
71805
72165
  * All rights reserved.
71806
72166
  *
71807
72167
  * This source code is licensed under the MIT license found in the
@@ -71908,7 +72268,7 @@ exports.apply2DTransform2 = function(transform) {
71908
72268
 
71909
72269
  },{}],447:[function(_dereq_,module,exports){
71910
72270
  /**
71911
- * Copyright 2012-2019, Plotly, Inc.
72271
+ * Copyright 2012-2020, Plotly, Inc.
71912
72272
  * All rights reserved.
71913
72273
  *
71914
72274
  * This source code is licensed under the MIT license found in the
@@ -71943,7 +72303,7 @@ module.exports = {
71943
72303
 
71944
72304
  },{}],448:[function(_dereq_,module,exports){
71945
72305
  /**
71946
- * Copyright 2012-2019, Plotly, Inc.
72306
+ * Copyright 2012-2020, Plotly, Inc.
71947
72307
  * All rights reserved.
71948
72308
  *
71949
72309
  * This source code is licensed under the MIT license found in the
@@ -72189,7 +72549,7 @@ function badContainer(container, propStr, propParts) {
72189
72549
 
72190
72550
  },{"./array":425,"fast-isnumeric":143}],449:[function(_dereq_,module,exports){
72191
72551
  /**
72192
- * Copyright 2012-2019, Plotly, Inc.
72552
+ * Copyright 2012-2020, Plotly, Inc.
72193
72553
  * All rights reserved.
72194
72554
  *
72195
72555
  * This source code is licensed under the MIT license found in the
@@ -72205,7 +72565,7 @@ module.exports = function noop() {};
72205
72565
 
72206
72566
  },{}],450:[function(_dereq_,module,exports){
72207
72567
  /**
72208
- * Copyright 2012-2019, Plotly, Inc.
72568
+ * Copyright 2012-2020, Plotly, Inc.
72209
72569
  * All rights reserved.
72210
72570
  *
72211
72571
  * This source code is licensed under the MIT license found in the
@@ -72276,18 +72636,24 @@ module.exports = function(text, displayLength) {
72276
72636
  p.append('span').text(lines[i]);
72277
72637
  }
72278
72638
 
72279
- note.transition()
72280
- .duration(700)
72281
- .style('opacity', 1)
72282
- .transition()
72283
- .delay(ts)
72284
- .call(killNote);
72639
+ if(displayLength === 'stick') {
72640
+ note.transition()
72641
+ .duration(350)
72642
+ .style('opacity', 1);
72643
+ } else {
72644
+ note.transition()
72645
+ .duration(700)
72646
+ .style('opacity', 1)
72647
+ .transition()
72648
+ .delay(ts)
72649
+ .call(killNote);
72650
+ }
72285
72651
  });
72286
72652
  };
72287
72653
 
72288
72654
  },{"d3":83,"fast-isnumeric":143}],451:[function(_dereq_,module,exports){
72289
72655
  /**
72290
- * Copyright 2012-2019, Plotly, Inc.
72656
+ * Copyright 2012-2020, Plotly, Inc.
72291
72657
  * All rights reserved.
72292
72658
  *
72293
72659
  * This source code is licensed under the MIT license found in the
@@ -72335,7 +72701,7 @@ module.exports = function overrideCursor(el3, csr) {
72335
72701
 
72336
72702
  },{"./setcursor":460}],452:[function(_dereq_,module,exports){
72337
72703
  /**
72338
- * Copyright 2012-2019, Plotly, Inc.
72704
+ * Copyright 2012-2020, Plotly, Inc.
72339
72705
  * All rights reserved.
72340
72706
  *
72341
72707
  * This source code is licensed under the MIT license found in the
@@ -72588,7 +72954,7 @@ polygon.filter = function filter(pts, tolerance) {
72588
72954
  },{"../constants/numerical":418,"./matrix":446}],453:[function(_dereq_,module,exports){
72589
72955
  (function (global){
72590
72956
  /**
72591
- * Copyright 2012-2019, Plotly, Inc.
72957
+ * Copyright 2012-2020, Plotly, Inc.
72592
72958
  * All rights reserved.
72593
72959
  *
72594
72960
  * This source code is licensed under the MIT license found in the
@@ -72659,7 +73025,7 @@ module.exports = function prepareRegl(gd, extensions) {
72659
73025
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
72660
73026
  },{"./show_no_webgl_msg":461,"regl":261}],454:[function(_dereq_,module,exports){
72661
73027
  /**
72662
- * Copyright 2012-2019, Plotly, Inc.
73028
+ * Copyright 2012-2020, Plotly, Inc.
72663
73029
  * All rights reserved.
72664
73030
  *
72665
73031
  * This source code is licensed under the MIT license found in the
@@ -72697,7 +73063,7 @@ module.exports = function pushUnique(array, item) {
72697
73063
 
72698
73064
  },{}],455:[function(_dereq_,module,exports){
72699
73065
  /**
72700
- * Copyright 2012-2019, Plotly, Inc.
73066
+ * Copyright 2012-2020, Plotly, Inc.
72701
73067
  * All rights reserved.
72702
73068
  *
72703
73069
  * This source code is licensed under the MIT license found in the
@@ -72905,7 +73271,7 @@ module.exports = queue;
72905
73271
 
72906
73272
  },{"../lib":440,"../plot_api/plot_config":475}],456:[function(_dereq_,module,exports){
72907
73273
  /**
72908
- * Copyright 2012-2019, Plotly, Inc.
73274
+ * Copyright 2012-2020, Plotly, Inc.
72909
73275
  * All rights reserved.
72910
73276
  *
72911
73277
  * This source code is licensed under the MIT license found in the
@@ -72935,7 +73301,7 @@ exports.counter = function(head, tail, openEnded, matchBeginning) {
72935
73301
 
72936
73302
  },{}],457:[function(_dereq_,module,exports){
72937
73303
  /**
72938
- * Copyright 2012-2019, Plotly, Inc.
73304
+ * Copyright 2012-2020, Plotly, Inc.
72939
73305
  * All rights reserved.
72940
73306
  *
72941
73307
  * This source code is licensed under the MIT license found in the
@@ -72988,7 +73354,7 @@ module.exports = function(baseAttr, relativeAttr) {
72988
73354
 
72989
73355
  },{}],458:[function(_dereq_,module,exports){
72990
73356
  /**
72991
- * Copyright 2012-2019, Plotly, Inc.
73357
+ * Copyright 2012-2020, Plotly, Inc.
72992
73358
  * All rights reserved.
72993
73359
  *
72994
73360
  * This source code is licensed under the MIT license found in the
@@ -73046,7 +73412,7 @@ module.exports = function relinkPrivateKeys(toContainer, fromContainer) {
73046
73412
 
73047
73413
  },{"./array":425,"./is_plain_object":441}],459:[function(_dereq_,module,exports){
73048
73414
  /**
73049
- * Copyright 2012-2019, Plotly, Inc.
73415
+ * Copyright 2012-2020, Plotly, Inc.
73050
73416
  * All rights reserved.
73051
73417
  *
73052
73418
  * This source code is licensed under the MIT license found in the
@@ -73233,7 +73599,7 @@ exports.findIndexOfMin = function(arr, fn) {
73233
73599
 
73234
73600
  },{"./identity":439,"./loggers":444,"fast-isnumeric":143}],460:[function(_dereq_,module,exports){
73235
73601
  /**
73236
- * Copyright 2012-2019, Plotly, Inc.
73602
+ * Copyright 2012-2020, Plotly, Inc.
73237
73603
  * All rights reserved.
73238
73604
  *
73239
73605
  * This source code is licensed under the MIT license found in the
@@ -73256,7 +73622,7 @@ module.exports = function setCursor(el3, csr) {
73256
73622
 
73257
73623
  },{}],461:[function(_dereq_,module,exports){
73258
73624
  /**
73259
- * Copyright 2012-2019, Plotly, Inc.
73625
+ * Copyright 2012-2020, Plotly, Inc.
73260
73626
  * All rights reserved.
73261
73627
  *
73262
73628
  * This source code is licensed under the MIT license found in the
@@ -73320,7 +73686,7 @@ module.exports = function showNoWebGlMsg(scene) {
73320
73686
 
73321
73687
  },{"../components/color":320}],462:[function(_dereq_,module,exports){
73322
73688
  /**
73323
- * Copyright 2012-2019, Plotly, Inc.
73689
+ * Copyright 2012-2020, Plotly, Inc.
73324
73690
  * All rights reserved.
73325
73691
  *
73326
73692
  * This source code is licensed under the MIT license found in the
@@ -73430,7 +73796,7 @@ exports.interp = function(arr, n) {
73430
73796
 
73431
73797
  },{"./array":425,"fast-isnumeric":143}],463:[function(_dereq_,module,exports){
73432
73798
  /**
73433
- * Copyright 2012-2019, Plotly, Inc.
73799
+ * Copyright 2012-2020, Plotly, Inc.
73434
73800
  * All rights reserved.
73435
73801
  *
73436
73802
  * This source code is licensed under the MIT license found in the
@@ -73451,7 +73817,7 @@ module.exports = str2RgbaArray;
73451
73817
 
73452
73818
  },{"color-normalize":61}],464:[function(_dereq_,module,exports){
73453
73819
  /**
73454
- * Copyright 2012-2019, Plotly, Inc.
73820
+ * Copyright 2012-2020, Plotly, Inc.
73455
73821
  * All rights reserved.
73456
73822
  *
73457
73823
  * This source code is licensed under the MIT license found in the
@@ -74267,7 +74633,7 @@ exports.makeEditable = function(context, options) {
74267
74633
 
74268
74634
  },{"../constants/alignment":414,"../constants/xmlns_namespaces":419,"../lib":440,"d3":83}],465:[function(_dereq_,module,exports){
74269
74635
  /**
74270
- * Copyright 2012-2019, Plotly, Inc.
74636
+ * Copyright 2012-2020, Plotly, Inc.
74271
74637
  * All rights reserved.
74272
74638
  *
74273
74639
  * This source code is licensed under the MIT license found in the
@@ -74370,7 +74736,7 @@ function _clearTimeout(cache) {
74370
74736
 
74371
74737
  },{}],466:[function(_dereq_,module,exports){
74372
74738
  /**
74373
- * Copyright 2012-2019, Plotly, Inc.
74739
+ * Copyright 2012-2020, Plotly, Inc.
74374
74740
  * All rights reserved.
74375
74741
  *
74376
74742
  * This source code is licensed under the MIT license found in the
@@ -74398,7 +74764,7 @@ module.exports = function toLogRange(val, range) {
74398
74764
 
74399
74765
  },{"fast-isnumeric":143}],467:[function(_dereq_,module,exports){
74400
74766
  /**
74401
- * Copyright 2012-2019, Plotly, Inc.
74767
+ * Copyright 2012-2020, Plotly, Inc.
74402
74768
  * All rights reserved.
74403
74769
  *
74404
74770
  * This source code is licensed under the MIT license found in the
@@ -74420,7 +74786,7 @@ module.exports = {
74420
74786
 
74421
74787
  },{}],468:[function(_dereq_,module,exports){
74422
74788
  /**
74423
- * Copyright 2012-2019, Plotly, Inc.
74789
+ * Copyright 2012-2020, Plotly, Inc.
74424
74790
  * All rights reserved.
74425
74791
  *
74426
74792
  * This source code is licensed under the MIT license found in the
@@ -74463,7 +74829,7 @@ module.exports = {
74463
74829
 
74464
74830
  },{}],469:[function(_dereq_,module,exports){
74465
74831
  /**
74466
- * Copyright 2012-2019, Plotly, Inc.
74832
+ * Copyright 2012-2020, Plotly, Inc.
74467
74833
  * All rights reserved.
74468
74834
  *
74469
74835
  * This source code is licensed under the MIT license found in the
@@ -74521,7 +74887,7 @@ module.exports = function containerArrayMatch(astr) {
74521
74887
 
74522
74888
  },{"../registry":531}],470:[function(_dereq_,module,exports){
74523
74889
  /**
74524
- * Copyright 2012-2019, Plotly, Inc.
74890
+ * Copyright 2012-2020, Plotly, Inc.
74525
74891
  * All rights reserved.
74526
74892
  *
74527
74893
  * This source code is licensed under the MIT license found in the
@@ -74646,7 +75012,7 @@ function overrideOne(attr, editTypeOverride, overrideContainers, key) {
74646
75012
 
74647
75013
  },{"../lib":440}],471:[function(_dereq_,module,exports){
74648
75014
  /**
74649
- * Copyright 2012-2019, Plotly, Inc.
75015
+ * Copyright 2012-2020, Plotly, Inc.
74650
75016
  * All rights reserved.
74651
75017
  *
74652
75018
  * This source code is licensed under the MIT license found in the
@@ -75338,7 +75704,7 @@ exports.clearAxisTypes = function(gd, traces, layoutUpdate) {
75338
75704
 
75339
75705
  },{"../components/color":320,"../lib":440,"../plots/cartesian/axis_ids":490,"../plots/plots":523,"../registry":531,"fast-isnumeric":143,"gl-mat4/fromQuat":161}],472:[function(_dereq_,module,exports){
75340
75706
  /**
75341
- * Copyright 2012-2019, Plotly, Inc.
75707
+ * Copyright 2012-2020, Plotly, Inc.
75342
75708
  * All rights reserved.
75343
75709
  *
75344
75710
  * This source code is licensed under the MIT license found in the
@@ -75381,7 +75747,7 @@ exports.validateTemplate = templateApi.validateTemplate;
75381
75747
 
75382
75748
  },{"../snapshot/download":533,"./plot_api":474,"./template_api":479,"./to_image":480,"./validate":481}],473:[function(_dereq_,module,exports){
75383
75749
  /**
75384
- * Copyright 2012-2019, Plotly, Inc.
75750
+ * Copyright 2012-2020, Plotly, Inc.
75385
75751
  * All rights reserved.
75386
75752
  *
75387
75753
  * This source code is licensed under the MIT license found in the
@@ -75594,7 +75960,7 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np,
75594
75960
 
75595
75961
  },{"../lib/is_plain_object":441,"../lib/loggers":444,"../lib/noop":449,"../lib/search":459,"../registry":531,"./container_array_match":469}],474:[function(_dereq_,module,exports){
75596
75962
  /**
75597
- * Copyright 2012-2019, Plotly, Inc.
75963
+ * Copyright 2012-2020, Plotly, Inc.
75598
75964
  * All rights reserved.
75599
75965
  *
75600
75966
  * This source code is licensed under the MIT license found in the
@@ -78037,7 +78403,7 @@ var layoutUIControlPatterns = [
78037
78403
  {pattern: /(hover|drag)mode$/, attr: 'modebar.uirevision'},
78038
78404
 
78039
78405
  {pattern: /^(scene\d*)\.camera/},
78040
- {pattern: /^(geo\d*)\.(projection|center)/},
78406
+ {pattern: /^(geo\d*)\.(projection|center|fitbounds)/},
78041
78407
  {pattern: /^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},
78042
78408
  {pattern: /^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},
78043
78409
  {pattern: /^(polar\d*\.angularaxis)\.rotation/},
@@ -79456,7 +79822,7 @@ exports._storeDirectGUIEdit = _storeDirectGUIEdit;
79456
79822
 
79457
79823
  },{"../components/color":320,"../components/drawing":341,"../constants/xmlns_namespaces":419,"../lib":440,"../lib/events":432,"../lib/queue":455,"../lib/svg_text_utils":464,"../plots/cartesian/axes":487,"../plots/cartesian/constants":493,"../plots/cartesian/graph_interact":496,"../plots/cartesian/select":504,"../plots/plots":523,"../plots/polar/legacy":526,"../registry":531,"./edit_types":470,"./helpers":471,"./manage_arrays":473,"./plot_config":475,"./plot_schema":476,"./subroutines":478,"d3":83,"fast-isnumeric":143,"has-hover":198}],475:[function(_dereq_,module,exports){
79458
79824
  /**
79459
- * Copyright 2012-2019, Plotly, Inc.
79825
+ * Copyright 2012-2020, Plotly, Inc.
79460
79826
  * All rights reserved.
79461
79827
  *
79462
79828
  * This source code is licensed under the MIT license found in the
@@ -79705,11 +80071,21 @@ var configAttributes = {
79705
80071
  },
79706
80072
 
79707
80073
  logging: {
79708
- valType: 'boolean',
80074
+ valType: 'integer',
80075
+ min: 0,
80076
+ max: 2,
79709
80077
  dflt: 1,
79710
80078
 
79711
80079
  },
79712
80080
 
80081
+ notifyOnLogging: {
80082
+ valType: 'integer',
80083
+ min: 0,
80084
+ max: 2,
80085
+ dflt: 0,
80086
+
80087
+ },
80088
+
79713
80089
  queueLength: {
79714
80090
  valType: 'integer',
79715
80091
  min: 0,
@@ -79761,7 +80137,7 @@ module.exports = {
79761
80137
 
79762
80138
  },{}],476:[function(_dereq_,module,exports){
79763
80139
  /**
79764
- * Copyright 2012-2019, Plotly, Inc.
80140
+ * Copyright 2012-2020, Plotly, Inc.
79765
80141
  * All rights reserved.
79766
80142
  *
79767
80143
  * This source code is licensed under the MIT license found in the
@@ -80472,7 +80848,7 @@ function insertAttrs(baseAttrs, newAttrs, astr) {
80472
80848
 
80473
80849
  },{"../lib":440,"../plots/animation_attributes":482,"../plots/attributes":484,"../plots/frame_attributes":514,"../plots/layout_attributes":521,"../plots/polar/legacy/area_attributes":524,"../plots/polar/legacy/axis_attributes":525,"../registry":531,"./edit_types":470,"./plot_config":475}],477:[function(_dereq_,module,exports){
80474
80850
  /**
80475
- * Copyright 2012-2019, Plotly, Inc.
80851
+ * Copyright 2012-2020, Plotly, Inc.
80476
80852
  * All rights reserved.
80477
80853
  *
80478
80854
  * This source code is licensed under the MIT license found in the
@@ -80784,7 +81160,7 @@ exports.arrayEditor = function(parentIn, containerStr, itemOut) {
80784
81160
 
80785
81161
  },{"../lib":440,"../plots/attributes":484}],478:[function(_dereq_,module,exports){
80786
81162
  /**
80787
- * Copyright 2012-2019, Plotly, Inc.
81163
+ * Copyright 2012-2020, Plotly, Inc.
80788
81164
  * All rights reserved.
80789
81165
  *
80790
81166
  * This source code is licensed under the MIT license found in the
@@ -81455,6 +81831,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
81455
81831
  var fullLayout = gd._fullLayout;
81456
81832
  var axList = Axes.list(gd, '', true);
81457
81833
  var matchGroups = fullLayout._axisMatchGroups || [];
81834
+ var axLookup = {};
81458
81835
  var ax;
81459
81836
  var axRng;
81460
81837
 
@@ -81462,6 +81839,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
81462
81839
  ax = axList[i];
81463
81840
  cleanAxisConstraints(gd, ax);
81464
81841
  doAutoRange(gd, ax);
81842
+ axLookup[ax._id] = 1;
81465
81843
  }
81466
81844
 
81467
81845
  enforceAxisConstraints(gd);
@@ -81474,6 +81852,10 @@ exports.doAutoRangeAndConstraints = function(gd) {
81474
81852
 
81475
81853
  for(id in group) {
81476
81854
  ax = Axes.getFromId(gd, id);
81855
+
81856
+ // skip over 'missing' axes which do not pass through doAutoRange
81857
+ if(!axLookup[ax._id]) continue;
81858
+ // if one axis has autorange false, we're done
81477
81859
  if(ax.autorange === false) continue groupLoop;
81478
81860
 
81479
81861
  axRng = Lib.simpleMap(ax.range, ax.r2l);
@@ -81524,7 +81906,7 @@ exports.drawMarginPushers = function(gd) {
81524
81906
 
81525
81907
  },{"../components/color":320,"../components/drawing":341,"../components/modebar":378,"../components/titles":407,"../constants/alignment":414,"../lib":440,"../lib/clear_gl_canvases":427,"../plots/cartesian/autorange":486,"../plots/cartesian/axes":487,"../plots/cartesian/constraints":494,"../plots/plots":523,"../registry":531,"d3":83}],479:[function(_dereq_,module,exports){
81526
81908
  /**
81527
- * Copyright 2012-2019, Plotly, Inc.
81909
+ * Copyright 2012-2020, Plotly, Inc.
81528
81910
  * All rights reserved.
81529
81911
  *
81530
81912
  * This source code is licensed under the MIT license found in the
@@ -81986,7 +82368,7 @@ function format(opts) {
81986
82368
 
81987
82369
  },{"../lib":440,"../plots/attributes":484,"../plots/plots":523,"./plot_config":475,"./plot_schema":476,"./plot_template":477}],480:[function(_dereq_,module,exports){
81988
82370
  /**
81989
- * Copyright 2012-2019, Plotly, Inc.
82371
+ * Copyright 2012-2020, Plotly, Inc.
81990
82372
  * All rights reserved.
81991
82373
  *
81992
82374
  * This source code is licensed under the MIT license found in the
@@ -82189,7 +82571,7 @@ module.exports = toImage;
82189
82571
 
82190
82572
  },{"../lib":440,"../snapshot/helpers":535,"../snapshot/svgtoimg":537,"../snapshot/tosvg":539,"./plot_api":474,"fast-isnumeric":143}],481:[function(_dereq_,module,exports){
82191
82573
  /**
82192
- * Copyright 2012-2019, Plotly, Inc.
82574
+ * Copyright 2012-2020, Plotly, Inc.
82193
82575
  * All rights reserved.
82194
82576
  *
82195
82577
  * This source code is licensed under the MIT license found in the
@@ -82351,13 +82733,14 @@ function crawl(objIn, objOut, schema, list, base, path) {
82351
82733
  var valOut = objOut[k];
82352
82734
 
82353
82735
  var nestedSchema = getNestedSchema(schema, k);
82354
- var isInfoArray = (nestedSchema || {}).valType === 'info_array';
82355
- var isColorscale = (nestedSchema || {}).valType === 'colorscale';
82736
+ var nestedValType = (nestedSchema || {}).valType;
82737
+ var isInfoArray = nestedValType === 'info_array';
82738
+ var isColorscale = nestedValType === 'colorscale';
82356
82739
  var items = (nestedSchema || {}).items;
82357
82740
 
82358
82741
  if(!isInSchema(schema, k)) {
82359
82742
  list.push(format('schema', base, p));
82360
- } else if(isPlainObject(valIn) && isPlainObject(valOut)) {
82743
+ } else if(isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== 'any') {
82361
82744
  crawl(valIn, valOut, nestedSchema, list, base, p);
82362
82745
  } else if(isInfoArray && isArray(valIn)) {
82363
82746
  if(valIn.length > valOut.length) {
@@ -82616,7 +82999,7 @@ function convertPathToAttributeString(path) {
82616
82999
 
82617
83000
  },{"../lib":440,"../plots/plots":523,"./plot_config":475,"./plot_schema":476}],482:[function(_dereq_,module,exports){
82618
83001
  /**
82619
- * Copyright 2012-2019, Plotly, Inc.
83002
+ * Copyright 2012-2020, Plotly, Inc.
82620
83003
  * All rights reserved.
82621
83004
  *
82622
83005
  * This source code is licensed under the MIT license found in the
@@ -82728,7 +83111,7 @@ module.exports = {
82728
83111
 
82729
83112
  },{}],483:[function(_dereq_,module,exports){
82730
83113
  /**
82731
- * Copyright 2012-2019, Plotly, Inc.
83114
+ * Copyright 2012-2020, Plotly, Inc.
82732
83115
  * All rights reserved.
82733
83116
  *
82734
83117
  * This source code is licensed under the MIT license found in the
@@ -82823,7 +83206,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
82823
83206
 
82824
83207
  },{"../lib":440,"../plot_api/plot_template":477}],484:[function(_dereq_,module,exports){
82825
83208
  /**
82826
- * Copyright 2012-2019, Plotly, Inc.
83209
+ * Copyright 2012-2020, Plotly, Inc.
82827
83210
  * All rights reserved.
82828
83211
  *
82829
83212
  * This source code is licensed under the MIT license found in the
@@ -82964,7 +83347,7 @@ module.exports = {
82964
83347
 
82965
83348
  },{"../components/fx/attributes":350}],485:[function(_dereq_,module,exports){
82966
83349
  /**
82967
- * Copyright 2012-2019, Plotly, Inc.
83350
+ * Copyright 2012-2020, Plotly, Inc.
82968
83351
  * All rights reserved.
82969
83352
  *
82970
83353
  * This source code is licensed under the MIT license found in the
@@ -82993,7 +83376,7 @@ module.exports = {
82993
83376
 
82994
83377
  },{}],486:[function(_dereq_,module,exports){
82995
83378
  /**
82996
- * Copyright 2012-2019, Plotly, Inc.
83379
+ * Copyright 2012-2020, Plotly, Inc.
82997
83380
  * All rights reserved.
82998
83381
  *
82999
83382
  * This source code is licensed under the MIT license found in the
@@ -83492,7 +83875,7 @@ function greaterOrEqual(v0, v1) { return v0 >= v1; }
83492
83875
 
83493
83876
  },{"../../constants/numerical":418,"../../lib":440,"../../registry":531,"fast-isnumeric":143}],487:[function(_dereq_,module,exports){
83494
83877
  /**
83495
- * Copyright 2012-2019, Plotly, Inc.
83878
+ * Copyright 2012-2020, Plotly, Inc.
83496
83879
  * All rights reserved.
83497
83880
  *
83498
83881
  * This source code is licensed under the MIT license found in the
@@ -85162,10 +85545,14 @@ axes.drawOne = function(gd, ax, opts) {
85162
85545
  var axId = ax._id;
85163
85546
  var axLetter = axId.charAt(0);
85164
85547
  var counterLetter = axes.counterLetter(axId);
85165
- var mainLinePosition = ax._mainLinePosition;
85166
- var mainMirrorPosition = ax._mainMirrorPosition;
85167
85548
  var mainPlotinfo = fullLayout._plots[ax._mainSubplot];
85549
+
85550
+ // this happens when updating matched group with 'missing' axes
85551
+ if(!mainPlotinfo) return;
85552
+
85168
85553
  var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];
85554
+ var mainLinePosition = ax._mainLinePosition;
85555
+ var mainMirrorPosition = ax._mainMirrorPosition;
85169
85556
 
85170
85557
  var vals = ax._vals = axes.calcTicks(ax);
85171
85558
 
@@ -86589,7 +86976,7 @@ function isAngular(ax) {
86589
86976
 
86590
86977
  },{"../../components/color":320,"../../components/drawing":341,"../../components/titles":407,"../../constants/alignment":414,"../../constants/numerical":418,"../../lib":440,"../../lib/svg_text_utils":464,"../../plots/plots":523,"../../registry":531,"./autorange":486,"./axis_autotype":488,"./axis_ids":490,"./clean_ticks":492,"./layout_attributes":499,"./set_convert":505,"d3":83,"fast-isnumeric":143}],488:[function(_dereq_,module,exports){
86591
86978
  /**
86592
- * Copyright 2012-2019, Plotly, Inc.
86979
+ * Copyright 2012-2020, Plotly, Inc.
86593
86980
  * All rights reserved.
86594
86981
  *
86595
86982
  * This source code is licensed under the MIT license found in the
@@ -86684,7 +87071,7 @@ function multiCategory(a) {
86684
87071
 
86685
87072
  },{"../../constants/numerical":418,"../../lib":440,"fast-isnumeric":143}],489:[function(_dereq_,module,exports){
86686
87073
  /**
86687
- * Copyright 2012-2019, Plotly, Inc.
87074
+ * Copyright 2012-2020, Plotly, Inc.
86688
87075
  * All rights reserved.
86689
87076
  *
86690
87077
  * This source code is licensed under the MIT license found in the
@@ -86807,7 +87194,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
86807
87194
 
86808
87195
  },{"../../lib":440,"../../registry":531,"./category_order_defaults":491,"./layout_attributes":499,"./line_grid_defaults":501,"./set_convert":505,"./tick_label_defaults":506,"./tick_mark_defaults":507,"./tick_value_defaults":508}],490:[function(_dereq_,module,exports){
86809
87196
  /**
86810
- * Copyright 2012-2019, Plotly, Inc.
87197
+ * Copyright 2012-2020, Plotly, Inc.
86811
87198
  * All rights reserved.
86812
87199
  *
86813
87200
  * This source code is licensed under the MIT license found in the
@@ -86934,7 +87321,7 @@ exports.getAxisGroup = function getAxisGroup(fullLayout, axId) {
86934
87321
 
86935
87322
  },{"../../registry":531,"./constants":493}],491:[function(_dereq_,module,exports){
86936
87323
  /**
86937
- * Copyright 2012-2019, Plotly, Inc.
87324
+ * Copyright 2012-2020, Plotly, Inc.
86938
87325
  * All rights reserved.
86939
87326
  *
86940
87327
  * This source code is licensed under the MIT license found in the
@@ -87028,7 +87415,7 @@ module.exports = function handleCategoryOrderDefaults(containerIn, containerOut,
87028
87415
 
87029
87416
  },{}],492:[function(_dereq_,module,exports){
87030
87417
  /**
87031
- * Copyright 2012-2019, Plotly, Inc.
87418
+ * Copyright 2012-2020, Plotly, Inc.
87032
87419
  * All rights reserved.
87033
87420
  *
87034
87421
  * This source code is licensed under the MIT license found in the
@@ -87116,7 +87503,7 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
87116
87503
 
87117
87504
  },{"../../constants/numerical":418,"../../lib":440,"fast-isnumeric":143}],493:[function(_dereq_,module,exports){
87118
87505
  /**
87119
- * Copyright 2012-2019, Plotly, Inc.
87506
+ * Copyright 2012-2020, Plotly, Inc.
87120
87507
  * All rights reserved.
87121
87508
  *
87122
87509
  * This source code is licensed under the MIT license found in the
@@ -87124,11 +87511,10 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
87124
87511
  */
87125
87512
 
87126
87513
  'use strict';
87127
- var counterRegex = _dereq_('../../lib/regex').counter;
87128
87514
 
87515
+ var counterRegex = _dereq_('../../lib/regex').counter;
87129
87516
 
87130
87517
  module.exports = {
87131
-
87132
87518
  idRegex: {
87133
87519
  x: counterRegex('x'),
87134
87520
  y: counterRegex('y')
@@ -87206,7 +87592,7 @@ module.exports = {
87206
87592
 
87207
87593
  },{"../../lib/regex":456}],494:[function(_dereq_,module,exports){
87208
87594
  /**
87209
- * Copyright 2012-2019, Plotly, Inc.
87595
+ * Copyright 2012-2020, Plotly, Inc.
87210
87596
  * All rights reserved.
87211
87597
  *
87212
87598
  * This source code is licensed under the MIT license found in the
@@ -87592,7 +87978,7 @@ function updateDomain(ax, factor) {
87592
87978
 
87593
87979
  },{"../../constants/alignment":414,"../../constants/numerical":418,"../../lib":440,"./autorange":486,"./axis_ids":490,"./scale_zoom":503}],495:[function(_dereq_,module,exports){
87594
87980
  /**
87595
- * Copyright 2012-2019, Plotly, Inc.
87981
+ * Copyright 2012-2020, Plotly, Inc.
87596
87982
  * All rights reserved.
87597
87983
  *
87598
87984
  * This source code is licensed under the MIT license found in the
@@ -88832,7 +89218,7 @@ module.exports = {
88832
89218
 
88833
89219
  },{"../../components/color":320,"../../components/dragelement":338,"../../components/drawing":341,"../../components/fx":358,"../../constants/alignment":414,"../../lib":440,"../../lib/clear_gl_canvases":427,"../../lib/setcursor":460,"../../lib/svg_text_utils":464,"../../plot_api/subroutines":478,"../../registry":531,"../plots":523,"./axes":487,"./axis_ids":490,"./constants":493,"./scale_zoom":503,"./select":504,"d3":83,"has-passive-events":199,"tinycolor2":285}],496:[function(_dereq_,module,exports){
88834
89220
  /**
88835
- * Copyright 2012-2019, Plotly, Inc.
89221
+ * Copyright 2012-2020, Plotly, Inc.
88836
89222
  * All rights reserved.
88837
89223
  *
88838
89224
  * This source code is licensed under the MIT license found in the
@@ -89000,7 +89386,7 @@ exports.updateFx = function(gd) {
89000
89386
 
89001
89387
  },{"../../components/dragelement":338,"../../components/fx":358,"../../lib/setcursor":460,"./constants":493,"./dragbox":495,"d3":83}],497:[function(_dereq_,module,exports){
89002
89388
  /**
89003
- * Copyright 2012-2019, Plotly, Inc.
89389
+ * Copyright 2012-2020, Plotly, Inc.
89004
89390
  * All rights reserved.
89005
89391
  *
89006
89392
  * This source code is licensed under the MIT license found in the
@@ -89075,7 +89461,7 @@ module.exports = function makeIncludeComponents(containerArrayName) {
89075
89461
 
89076
89462
  },{"../../lib":440,"../../registry":531}],498:[function(_dereq_,module,exports){
89077
89463
  /**
89078
- * Copyright 2012-2019, Plotly, Inc.
89464
+ * Copyright 2012-2020, Plotly, Inc.
89079
89465
  * All rights reserved.
89080
89466
  *
89081
89467
  * This source code is licensed under the MIT license found in the
@@ -89692,7 +90078,7 @@ exports.updateFx = _dereq_('./graph_interact').updateFx;
89692
90078
 
89693
90079
  },{"../../components/drawing":341,"../../constants/xmlns_namespaces":419,"../../lib":440,"../../registry":531,"../get_data":515,"../plots":523,"./attributes":485,"./axis_ids":490,"./constants":493,"./graph_interact":496,"./layout_attributes":499,"./layout_defaults":500,"./transition_axes":509,"d3":83}],499:[function(_dereq_,module,exports){
89694
90080
  /**
89695
- * Copyright 2012-2019, Plotly, Inc.
90081
+ * Copyright 2012-2020, Plotly, Inc.
89696
90082
  * All rights reserved.
89697
90083
  *
89698
90084
  * This source code is licensed under the MIT license found in the
@@ -90293,7 +90679,7 @@ module.exports = {
90293
90679
 
90294
90680
  },{"../../components/color/attributes":319,"../../components/drawing/attributes":340,"../../constants/docs":415,"../../lib/extend":433,"../../plot_api/plot_template":477,"../font_attributes":513,"./constants":493}],500:[function(_dereq_,module,exports){
90295
90681
  /**
90296
- * Copyright 2012-2019, Plotly, Inc.
90682
+ * Copyright 2012-2020, Plotly, Inc.
90297
90683
  * All rights reserved.
90298
90684
  *
90299
90685
  * This source code is licensed under the MIT license found in the
@@ -90318,6 +90704,8 @@ var axisIds = _dereq_('./axis_ids');
90318
90704
  var id2name = axisIds.id2name;
90319
90705
  var name2id = axisIds.name2id;
90320
90706
 
90707
+ var AX_ID_PATTERN = _dereq_('./constants').AX_ID_PATTERN;
90708
+
90321
90709
  var Registry = _dereq_('../../registry');
90322
90710
  var traceIs = Registry.traceIs;
90323
90711
  var getComponentMethod = Registry.getComponentMethod;
@@ -90427,7 +90815,28 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90427
90815
 
90428
90816
  var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);
90429
90817
 
90430
- var axName, axLetter, axLayoutIn, axLayoutOut;
90818
+ // name of single axis (e.g. 'xaxis', 'yaxis2')
90819
+ var axName;
90820
+ // id of single axis (e.g. 'y', 'x5')
90821
+ var axId;
90822
+ // 'x' or 'y'
90823
+ var axLetter;
90824
+ // input layout axis container
90825
+ var axLayoutIn;
90826
+ // full layout axis container
90827
+ var axLayoutOut;
90828
+
90829
+ function newAxLayoutOut() {
90830
+ var traces = ax2traces[axName] || [];
90831
+ axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
90832
+ axLayoutOut._annIndices = [];
90833
+ axLayoutOut._shapeIndices = [];
90834
+ axLayoutOut._imgIndices = [];
90835
+ axLayoutOut._subplotsWith = [];
90836
+ axLayoutOut._counterAxes = [];
90837
+ axLayoutOut._name = axLayoutOut._attr = axName;
90838
+ axLayoutOut._id = axId;
90839
+ }
90431
90840
 
90432
90841
  function coerce(attr, dflt) {
90433
90842
  return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);
@@ -90441,9 +90850,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90441
90850
  return (axLetter === 'x') ? yIds : xIds;
90442
90851
  }
90443
90852
 
90444
- var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
90445
- var allAxisIds = counterAxes.x.concat(counterAxes.y);
90446
-
90447
90853
  function getOverlayableAxes(axLetter, axName) {
90448
90854
  var list = (axLetter === 'x') ? xNames : yNames;
90449
90855
  var out = [];
@@ -90459,9 +90865,30 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90459
90865
  return out;
90460
90866
  }
90461
90867
 
90868
+ // list of available counter axis names
90869
+ var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
90870
+ // list of all x AND y axis ids
90871
+ var allAxisIds = counterAxes.x.concat(counterAxes.y);
90872
+ // lookup and list of axis ids that axes in axNames have a reference to,
90873
+ // even though they are missing from allAxisIds
90874
+ var missingMatchedAxisIdsLookup = {};
90875
+ var missingMatchedAxisIds = [];
90876
+
90877
+ // fill in 'missing' axis lookup when an axis is set to match an axis
90878
+ // not part of the allAxisIds list, save axis type so that we can propagate
90879
+ // it to the missing axes
90880
+ function addMissingMatchedAxis() {
90881
+ var matchesIn = axLayoutIn.matches;
90882
+ if(AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {
90883
+ missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;
90884
+ missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);
90885
+ }
90886
+ }
90887
+
90462
90888
  // first pass creates the containers, determines types, and handles most of the settings
90463
90889
  for(i = 0; i < axNames.length; i++) {
90464
90890
  axName = axNames[i];
90891
+ axId = name2id(axName);
90465
90892
  axLetter = axName.charAt(0);
90466
90893
 
90467
90894
  if(!Lib.isPlainObject(layoutIn[axName])) {
@@ -90470,20 +90897,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90470
90897
 
90471
90898
  axLayoutIn = layoutIn[axName];
90472
90899
  axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
90473
-
90474
- var traces = ax2traces[axName] || [];
90475
- axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
90476
- axLayoutOut._annIndices = [];
90477
- axLayoutOut._shapeIndices = [];
90478
- axLayoutOut._imgIndices = [];
90479
- axLayoutOut._subplotsWith = [];
90480
- axLayoutOut._counterAxes = [];
90481
-
90482
- // set up some private properties
90483
- axLayoutOut._name = axLayoutOut._attr = axName;
90484
- var id = axLayoutOut._id = name2id(axName);
90485
-
90486
- var overlayableAxes = getOverlayableAxes(axLetter, axName);
90900
+ newAxLayoutOut();
90487
90901
 
90488
90902
  var visibleDflt =
90489
90903
  (axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||
@@ -90501,13 +90915,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90501
90915
  font: layoutOut.font,
90502
90916
  outerTicks: outerTicks[axName],
90503
90917
  showGrid: !noGrids[axName],
90504
- data: traces,
90918
+ data: ax2traces[axName] || [],
90505
90919
  bgColor: bgColor,
90506
90920
  calendar: layoutOut.calendar,
90507
90921
  automargin: true,
90508
90922
  visibleDflt: visibleDflt,
90509
90923
  reverseDflt: reverseDflt,
90510
- splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[id]
90924
+ splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
90511
90925
  };
90512
90926
 
90513
90927
  coerce('uirevision', layoutOut.uirevision);
@@ -90533,12 +90947,63 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90533
90947
  handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
90534
90948
  letter: axLetter,
90535
90949
  counterAxes: counterAxes[axLetter],
90536
- overlayableAxes: overlayableAxes,
90950
+ overlayableAxes: getOverlayableAxes(axLetter, axName),
90537
90951
  grid: layoutOut.grid
90538
90952
  });
90539
90953
 
90540
90954
  coerce('title.standoff');
90541
90955
 
90956
+ addMissingMatchedAxis();
90957
+
90958
+ axLayoutOut._input = axLayoutIn;
90959
+ }
90960
+
90961
+ // coerce the 'missing' axes
90962
+ i = 0;
90963
+ while(i < missingMatchedAxisIds.length) {
90964
+ axId = missingMatchedAxisIds[i++];
90965
+ axName = id2name(axId);
90966
+ axLetter = axName.charAt(0);
90967
+
90968
+ if(!Lib.isPlainObject(layoutIn[axName])) {
90969
+ layoutIn[axName] = {};
90970
+ }
90971
+
90972
+ axLayoutIn = layoutIn[axName];
90973
+ axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
90974
+ newAxLayoutOut();
90975
+
90976
+ var defaultOptions2 = {
90977
+ letter: axLetter,
90978
+ font: layoutOut.font,
90979
+ outerTicks: outerTicks[axName],
90980
+ showGrid: !noGrids[axName],
90981
+ data: [],
90982
+ bgColor: bgColor,
90983
+ calendar: layoutOut.calendar,
90984
+ automargin: true,
90985
+ visibleDflt: false,
90986
+ reverseDflt: false,
90987
+ splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
90988
+ };
90989
+
90990
+ coerce('uirevision', layoutOut.uirevision);
90991
+
90992
+ axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || 'linear';
90993
+
90994
+ handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
90995
+
90996
+ handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
90997
+ letter: axLetter,
90998
+ counterAxes: counterAxes[axLetter],
90999
+ overlayableAxes: getOverlayableAxes(axLetter, axName),
91000
+ grid: layoutOut.grid
91001
+ });
91002
+
91003
+ coerce('fixedrange');
91004
+
91005
+ addMissingMatchedAxis();
91006
+
90542
91007
  axLayoutOut._input = axLayoutIn;
90543
91008
  }
90544
91009
 
@@ -90589,9 +91054,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90589
91054
  var constraintGroups = layoutOut._axisConstraintGroups = [];
90590
91055
  // similar to _axisConstraintGroups, but for matching axes
90591
91056
  var matchGroups = layoutOut._axisMatchGroups = [];
91057
+ // make sure to include 'missing' axes here
91058
+ var allAxisIdsIncludingMissing = allAxisIds.concat(missingMatchedAxisIds);
91059
+ var axNamesIncludingMissing = axNames.concat(Lib.simpleMap(missingMatchedAxisIds, id2name));
90592
91060
 
90593
- for(i = 0; i < axNames.length; i++) {
90594
- axName = axNames[i];
91061
+ for(i = 0; i < axNamesIncludingMissing.length; i++) {
91062
+ axName = axNamesIncludingMissing[i];
90595
91063
  axLetter = axName.charAt(0);
90596
91064
  axLayoutIn = layoutIn[axName];
90597
91065
  axLayoutOut = layoutOut[axName];
@@ -90599,15 +91067,19 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90599
91067
  var scaleanchorDflt;
90600
91068
  if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {
90601
91069
  scaleanchorDflt = axLayoutOut.anchor;
90602
- } else {scaleanchorDflt = undefined;}
91070
+ } else {
91071
+ scaleanchorDflt = undefined;
91072
+ }
90603
91073
 
90604
91074
  var constrainDflt;
90605
91075
  if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {
90606
91076
  constrainDflt = 'domain';
90607
- } else {constrainDflt = undefined;}
91077
+ } else {
91078
+ constrainDflt = undefined;
91079
+ }
90608
91080
 
90609
91081
  handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {
90610
- allAxisIds: allAxisIds,
91082
+ allAxisIds: allAxisIdsIncludingMissing,
90611
91083
  layoutOut: layoutOut,
90612
91084
  scaleanchorDflt: scaleanchorDflt,
90613
91085
  constrainDflt: constrainDflt
@@ -90618,7 +91090,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90618
91090
  var group = matchGroups[i];
90619
91091
  var rng = null;
90620
91092
  var autorange = null;
90621
- var axId;
90622
91093
 
90623
91094
  // find 'matching' range attrs
90624
91095
  for(axId in group) {
@@ -90671,9 +91142,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
90671
91142
  }
90672
91143
  };
90673
91144
 
90674
- },{"../../components/color":320,"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531,"../layout_attributes":521,"./axis_defaults":489,"./axis_ids":490,"./constraints":494,"./layout_attributes":499,"./position_defaults":502,"./type_defaults":510}],501:[function(_dereq_,module,exports){
91145
+ },{"../../components/color":320,"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531,"../layout_attributes":521,"./axis_defaults":489,"./axis_ids":490,"./constants":493,"./constraints":494,"./layout_attributes":499,"./position_defaults":502,"./type_defaults":510}],501:[function(_dereq_,module,exports){
90675
91146
  /**
90676
- * Copyright 2012-2019, Plotly, Inc.
91147
+ * Copyright 2012-2020, Plotly, Inc.
90677
91148
  * All rights reserved.
90678
91149
  *
90679
91150
  * This source code is licensed under the MIT license found in the
@@ -90738,7 +91209,7 @@ module.exports = function handleLineGridDefaults(containerIn, containerOut, coer
90738
91209
 
90739
91210
  },{"../../components/color/attributes":319,"../../lib":440,"tinycolor2":285}],502:[function(_dereq_,module,exports){
90740
91211
  /**
90741
- * Copyright 2012-2019, Plotly, Inc.
91212
+ * Copyright 2012-2020, Plotly, Inc.
90742
91213
  * All rights reserved.
90743
91214
  *
90744
91215
  * This source code is licensed under the MIT license found in the
@@ -90826,7 +91297,7 @@ module.exports = function handlePositionDefaults(containerIn, containerOut, coer
90826
91297
 
90827
91298
  },{"../../lib":440,"fast-isnumeric":143}],503:[function(_dereq_,module,exports){
90828
91299
  /**
90829
- * Copyright 2012-2019, Plotly, Inc.
91300
+ * Copyright 2012-2020, Plotly, Inc.
90830
91301
  * All rights reserved.
90831
91302
  *
90832
91303
  * This source code is licensed under the MIT license found in the
@@ -90854,7 +91325,7 @@ module.exports = function scaleZoom(ax, factor, centerFraction) {
90854
91325
 
90855
91326
  },{"../../constants/alignment":414}],504:[function(_dereq_,module,exports){
90856
91327
  /**
90857
- * Copyright 2012-2019, Plotly, Inc.
91328
+ * Copyright 2012-2020, Plotly, Inc.
90858
91329
  * All rights reserved.
90859
91330
  *
90860
91331
  * This source code is licensed under the MIT license found in the
@@ -91659,7 +92130,7 @@ module.exports = {
91659
92130
 
91660
92131
  },{"../../components/color":320,"../../components/fx":358,"../../components/fx/helpers":355,"../../lib":440,"../../lib/clear_gl_canvases":427,"../../lib/polygon":452,"../../lib/throttle":465,"../../plot_api/subroutines":478,"../../registry":531,"./axis_ids":490,"./constants":493,"polybooljs":238}],505:[function(_dereq_,module,exports){
91661
92132
  /**
91662
- * Copyright 2012-2019, Plotly, Inc.
92133
+ * Copyright 2012-2020, Plotly, Inc.
91663
92134
  * All rights reserved.
91664
92135
  *
91665
92136
  * This source code is licensed under the MIT license found in the
@@ -92329,7 +92800,7 @@ module.exports = function setConvert(ax, fullLayout) {
92329
92800
 
92330
92801
  },{"../../constants/numerical":418,"../../lib":440,"./axis_ids":490,"./constants":493,"d3":83,"fast-isnumeric":143}],506:[function(_dereq_,module,exports){
92331
92802
  /**
92332
- * Copyright 2012-2019, Plotly, Inc.
92803
+ * Copyright 2012-2020, Plotly, Inc.
92333
92804
  * All rights reserved.
92334
92805
  *
92335
92806
  * This source code is licensed under the MIT license found in the
@@ -92448,7 +92919,7 @@ function tickformatstopDefaults(valueIn, valueOut) {
92448
92919
 
92449
92920
  },{"../../lib":440,"../array_container_defaults":483,"./layout_attributes":499}],507:[function(_dereq_,module,exports){
92450
92921
  /**
92451
- * Copyright 2012-2019, Plotly, Inc.
92922
+ * Copyright 2012-2020, Plotly, Inc.
92452
92923
  * All rights reserved.
92453
92924
  *
92454
92925
  * This source code is licensed under the MIT license found in the
@@ -92481,7 +92952,7 @@ module.exports = function handleTickDefaults(containerIn, containerOut, coerce,
92481
92952
 
92482
92953
  },{"../../lib":440,"./layout_attributes":499}],508:[function(_dereq_,module,exports){
92483
92954
  /**
92484
- * Copyright 2012-2019, Plotly, Inc.
92955
+ * Copyright 2012-2020, Plotly, Inc.
92485
92956
  * All rights reserved.
92486
92957
  *
92487
92958
  * This source code is licensed under the MIT license found in the
@@ -92523,7 +92994,7 @@ module.exports = function handleTickValueDefaults(containerIn, containerOut, coe
92523
92994
 
92524
92995
  },{"./clean_ticks":492}],509:[function(_dereq_,module,exports){
92525
92996
  /**
92526
- * Copyright 2012-2019, Plotly, Inc.
92997
+ * Copyright 2012-2020, Plotly, Inc.
92527
92998
  * All rights reserved.
92528
92999
  *
92529
93000
  * This source code is licensed under the MIT license found in the
@@ -92736,7 +93207,7 @@ module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnComple
92736
93207
 
92737
93208
  },{"../../components/drawing":341,"../../lib":440,"../../registry":531,"./axes":487,"d3":83}],510:[function(_dereq_,module,exports){
92738
93209
  /**
92739
- * Copyright 2012-2019, Plotly, Inc.
93210
+ * Copyright 2012-2020, Plotly, Inc.
92740
93211
  * All rights reserved.
92741
93212
  *
92742
93213
  * This source code is licensed under the MIT license found in the
@@ -92777,6 +93248,7 @@ function setAutoType(ax, data) {
92777
93248
 
92778
93249
  var id = ax._id;
92779
93250
  var axLetter = id.charAt(0);
93251
+ var i;
92780
93252
 
92781
93253
  // support 3d
92782
93254
  if(id.indexOf('scene') !== -1) id = axLetter;
@@ -92787,7 +93259,8 @@ function setAutoType(ax, data) {
92787
93259
  // first check for histograms, as the count direction
92788
93260
  // should always default to a linear axis
92789
93261
  if(d0.type === 'histogram' &&
92790
- axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']) {
93262
+ axLetter === {v: 'y', h: 'x'}[d0.orientation || 'v']
93263
+ ) {
92791
93264
  ax.type = 'linear';
92792
93265
  return;
92793
93266
  }
@@ -92795,7 +93268,13 @@ function setAutoType(ax, data) {
92795
93268
  var calAttr = axLetter + 'calendar';
92796
93269
  var calendar = d0[calAttr];
92797
93270
  var opts = {noMultiCategory: !traceIs(d0, 'cartesian') || traceIs(d0, 'noMultiCategory')};
92798
- var i;
93271
+
93272
+ // To not confuse 2D x/y used for per-box sample points for multicategory coordinates
93273
+ if(d0.type === 'box' && d0._hasPreCompStats &&
93274
+ axLetter === {h: 'x', v: 'y'}[d0.orientation || 'v']
93275
+ ) {
93276
+ opts.noMultiCategory = true;
93277
+ }
92799
93278
 
92800
93279
  // check all boxes on this x axis to see
92801
93280
  // if they're dates, numbers, or categories
@@ -92865,7 +93344,7 @@ function isBoxWithoutPositionCoords(trace, axLetter) {
92865
93344
 
92866
93345
  },{"../../registry":531,"./axis_autotype":488}],511:[function(_dereq_,module,exports){
92867
93346
  /**
92868
- * Copyright 2012-2019, Plotly, Inc.
93347
+ * Copyright 2012-2020, Plotly, Inc.
92869
93348
  * All rights reserved.
92870
93349
  *
92871
93350
  * This source code is licensed under the MIT license found in the
@@ -93292,7 +93771,7 @@ function crawl(attrs, callback, path, depth) {
93292
93771
 
93293
93772
  },{"../lib":440,"../registry":531}],512:[function(_dereq_,module,exports){
93294
93773
  /**
93295
- * Copyright 2012-2019, Plotly, Inc.
93774
+ * Copyright 2012-2020, Plotly, Inc.
93296
93775
  * All rights reserved.
93297
93776
  *
93298
93777
  * This source code is licensed under the MIT license found in the
@@ -93404,7 +93883,7 @@ exports.defaults = function(containerOut, layout, coerce, dfltDomains) {
93404
93883
 
93405
93884
  },{"../lib/extend":433}],513:[function(_dereq_,module,exports){
93406
93885
  /**
93407
- * Copyright 2012-2019, Plotly, Inc.
93886
+ * Copyright 2012-2020, Plotly, Inc.
93408
93887
  * All rights reserved.
93409
93888
  *
93410
93889
  * This source code is licensed under the MIT license found in the
@@ -93469,7 +93948,7 @@ module.exports = function(opts) {
93469
93948
 
93470
93949
  },{}],514:[function(_dereq_,module,exports){
93471
93950
  /**
93472
- * Copyright 2012-2019, Plotly, Inc.
93951
+ * Copyright 2012-2020, Plotly, Inc.
93473
93952
  * All rights reserved.
93474
93953
  *
93475
93954
  * This source code is licensed under the MIT license found in the
@@ -93515,7 +93994,7 @@ module.exports = {
93515
93994
 
93516
93995
  },{}],515:[function(_dereq_,module,exports){
93517
93996
  /**
93518
- * Copyright 2012-2019, Plotly, Inc.
93997
+ * Copyright 2012-2020, Plotly, Inc.
93519
93998
  * All rights reserved.
93520
93999
  *
93521
94000
  * This source code is licensed under the MIT license found in the
@@ -93644,7 +94123,7 @@ exports.getSubplotData = function getSubplotData(data, type, subplotId) {
93644
94123
 
93645
94124
  },{"../registry":531,"./cartesian/constants":493}],516:[function(_dereq_,module,exports){
93646
94125
  /**
93647
- * Copyright 2012-2019, Plotly, Inc.
94126
+ * Copyright 2012-2020, Plotly, Inc.
93648
94127
  * All rights reserved.
93649
94128
  *
93650
94129
  * This source code is licensed under the MIT license found in the
@@ -93939,7 +94418,7 @@ function createCamera(scene) {
93939
94418
 
93940
94419
  },{"../cartesian/constants":493,"has-passive-events":199,"mouse-change":212,"mouse-event-offset":213,"mouse-wheel":215}],517:[function(_dereq_,module,exports){
93941
94420
  /**
93942
- * Copyright 2012-2019, Plotly, Inc.
94421
+ * Copyright 2012-2020, Plotly, Inc.
93943
94422
  * All rights reserved.
93944
94423
  *
93945
94424
  * This source code is licensed under the MIT license found in the
@@ -94182,7 +94661,7 @@ module.exports = createAxes2D;
94182
94661
 
94183
94662
  },{"../../lib/str2rgbarray":463,"../cartesian/axes":487}],518:[function(_dereq_,module,exports){
94184
94663
  /**
94185
- * Copyright 2012-2019, Plotly, Inc.
94664
+ * Copyright 2012-2020, Plotly, Inc.
94186
94665
  * All rights reserved.
94187
94666
  *
94188
94667
  * This source code is licensed under the MIT license found in the
@@ -94333,7 +94812,7 @@ exports.updateFx = function(gd) {
94333
94812
 
94334
94813
  },{"../../components/fx/layout_attributes":359,"../../constants/xmlns_namespaces":419,"../../plot_api/edit_types":470,"../cartesian":498,"../cartesian/attributes":485,"../cartesian/constants":493,"../get_data":515,"../layout_attributes":521,"./scene2d":519}],519:[function(_dereq_,module,exports){
94335
94814
  /**
94336
- * Copyright 2012-2019, Plotly, Inc.
94815
+ * Copyright 2012-2020, Plotly, Inc.
94337
94816
  * All rights reserved.
94338
94817
  *
94339
94818
  * This source code is licensed under the MIT license found in the
@@ -95054,7 +95533,7 @@ proto.hoverFormatter = function(axisName, val) {
95054
95533
 
95055
95534
  },{"../../components/fx":358,"../../lib/show_no_webgl_msg":461,"../../plots/cartesian/axes":487,"../../registry":531,"../cartesian/autorange":486,"../cartesian/constants":493,"../cartesian/constraints":494,"./camera":516,"./convert":517,"gl-plot2d":168,"gl-select-box":172,"gl-spikes2d":181,"webgl-context":301}],520:[function(_dereq_,module,exports){
95056
95535
  /**
95057
- * Copyright 2012-2019, Plotly, Inc.
95536
+ * Copyright 2012-2020, Plotly, Inc.
95058
95537
  * All rights reserved.
95059
95538
  *
95060
95539
  * This source code is licensed under the MIT license found in the
@@ -95088,7 +95567,7 @@ module.exports = project;
95088
95567
 
95089
95568
  },{}],521:[function(_dereq_,module,exports){
95090
95569
  /**
95091
- * Copyright 2012-2019, Plotly, Inc.
95570
+ * Copyright 2012-2020, Plotly, Inc.
95092
95571
  * All rights reserved.
95093
95572
  *
95094
95573
  * This source code is licensed under the MIT license found in the
@@ -95179,6 +95658,25 @@ module.exports = {
95179
95658
  }),
95180
95659
  editType: 'layoutstyle'
95181
95660
  },
95661
+ uniformtext: {
95662
+ mode: {
95663
+ valType: 'enumerated',
95664
+ values: [false, 'hide', 'show'],
95665
+ dflt: false,
95666
+
95667
+ editType: 'plot',
95668
+
95669
+ },
95670
+ minsize: {
95671
+ valType: 'number',
95672
+ min: 0,
95673
+ dflt: 0,
95674
+
95675
+ editType: 'plot',
95676
+
95677
+ },
95678
+ editType: 'plot'
95679
+ },
95182
95680
  autosize: {
95183
95681
  valType: 'boolean',
95184
95682
 
@@ -95392,7 +95890,7 @@ module.exports = {
95392
95890
 
95393
95891
  },{"../components/color/attributes":319,"../lib/extend":433,"./animation_attributes":482,"./font_attributes":513,"./pad_attributes":522}],522:[function(_dereq_,module,exports){
95394
95892
  /**
95395
- * Copyright 2012-2019, Plotly, Inc.
95893
+ * Copyright 2012-2020, Plotly, Inc.
95396
95894
  * All rights reserved.
95397
95895
  *
95398
95896
  * This source code is licensed under the MIT license found in the
@@ -95447,7 +95945,7 @@ module.exports = function(opts) {
95447
95945
 
95448
95946
  },{}],523:[function(_dereq_,module,exports){
95449
95947
  /**
95450
- * Copyright 2012-2019, Plotly, Inc.
95948
+ * Copyright 2012-2020, Plotly, Inc.
95451
95949
  * All rights reserved.
95452
95950
  *
95453
95951
  * This source code is licensed under the MIT license found in the
@@ -95524,12 +96022,15 @@ plots.redrawText = function(gd) {
95524
96022
  plots.resize = function(gd) {
95525
96023
  gd = Lib.getGraphDiv(gd);
95526
96024
 
95527
- return new Promise(function(resolve, reject) {
96025
+ var resolveLastResize;
96026
+ var p = new Promise(function(resolve, reject) {
95528
96027
  if(!gd || Lib.isHidden(gd)) {
95529
96028
  reject(new Error('Resize must be passed a displayed plot div element.'));
95530
96029
  }
95531
96030
 
95532
96031
  if(gd._redrawTimer) clearTimeout(gd._redrawTimer);
96032
+ if(gd._resolveResize) resolveLastResize = gd._resolveResize;
96033
+ gd._resolveResize = resolve;
95533
96034
 
95534
96035
  gd._redrawTimer = setTimeout(function() {
95535
96036
  // return if there is nothing to resize or is hidden
@@ -95549,10 +96050,17 @@ plots.resize = function(gd) {
95549
96050
 
95550
96051
  Registry.call('relayout', gd, {autosize: true}).then(function() {
95551
96052
  gd.changed = oldchanged;
95552
- resolve(gd);
96053
+ // Only resolve if a new call hasn't been made!
96054
+ if(gd._resolveResize === resolve) {
96055
+ delete gd._resolveResize;
96056
+ resolve(gd);
96057
+ }
95553
96058
  });
95554
96059
  }, 100);
95555
96060
  });
96061
+
96062
+ if(resolveLastResize) resolveLastResize(p);
96063
+ return p;
95556
96064
  };
95557
96065
 
95558
96066
 
@@ -96710,10 +97218,13 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
96710
97218
  var subplots = layout._subplots;
96711
97219
  var subplotId = '';
96712
97220
 
96713
- // TODO - currently if we draw an empty gl2d subplot, it draws
96714
- // nothing then gets stuck and you can't get it back without newPlot
96715
- // sort this out in the regl refactor? but for now just drop empty gl2d subplots
96716
- if(basePlotModule.name !== 'gl2d' || visible) {
97221
+ if(
97222
+ visible ||
97223
+ basePlotModule.name !== 'gl2d' // for now just drop empty gl2d subplots
97224
+ // TODO - currently if we draw an empty gl2d subplot, it draws
97225
+ // nothing then gets stuck and you can't get it back without newPlot
97226
+ // sort this out in the regl refactor?
97227
+ ) {
96717
97228
  if(Array.isArray(subplotAttr)) {
96718
97229
  for(i = 0; i < subplotAttr.length; i++) {
96719
97230
  var attri = subplotAttr[i];
@@ -96739,9 +97250,14 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
96739
97250
  coerce('meta');
96740
97251
 
96741
97252
  if(Registry.traceIs(traceOut, 'showLegend')) {
96742
- traceOut._dfltShowLegend = true;
96743
- coerce('showlegend');
97253
+ Lib.coerce(traceIn, traceOut,
97254
+ _module.attributes.showlegend ? _module.attributes : plots.attributes,
97255
+ 'showlegend'
97256
+ );
97257
+
96744
97258
  coerce('legendgroup');
97259
+
97260
+ traceOut._dfltShowLegend = true;
96745
97261
  } else {
96746
97262
  traceOut._dfltShowLegend = false;
96747
97263
  }
@@ -96905,6 +97421,11 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
96905
97421
  coerce('title.pad.b');
96906
97422
  coerce('title.pad.l');
96907
97423
 
97424
+ var uniformtextMode = coerce('uniformtext.mode');
97425
+ if(uniformtextMode) {
97426
+ coerce('uniformtext.minsize');
97427
+ }
97428
+
96908
97429
  // Make sure that autosize is defaulted to *true*
96909
97430
  // on layouts with no set width and height for backward compatibly,
96910
97431
  // in particular https://plot.ly/javascript/responsive-fluid-layout/
@@ -98362,7 +98883,7 @@ plots.doCalcdata = function(gd, traces) {
98362
98883
  calcdata[i] = cd;
98363
98884
  }
98364
98885
 
98365
- setupAxisCategories(axList, fullData);
98886
+ setupAxisCategories(axList, fullData, fullLayout);
98366
98887
 
98367
98888
  // 'transform' loop - must calc container traces first
98368
98889
  // so that if their dependent traces can get transform properly
@@ -98370,7 +98891,7 @@ plots.doCalcdata = function(gd, traces) {
98370
98891
  for(i = 0; i < fullData.length; i++) transformCalci(i);
98371
98892
 
98372
98893
  // clear stuff that should recomputed in 'regular' loop
98373
- if(hasCalcTransform) setupAxisCategories(axList, fullData);
98894
+ if(hasCalcTransform) setupAxisCategories(axList, fullData, fullLayout);
98374
98895
 
98375
98896
  // 'regular' loop - make sure container traces (eg carpet) calc before
98376
98897
  // contained traces (eg contourcarpet)
@@ -98575,13 +99096,31 @@ function sortAxisCategoriesByValue(axList, gd) {
98575
99096
  return affectedTraces;
98576
99097
  }
98577
99098
 
98578
- function setupAxisCategories(axList, fullData) {
98579
- for(var i = 0; i < axList.length; i++) {
98580
- var ax = axList[i];
99099
+ function setupAxisCategories(axList, fullData, fullLayout) {
99100
+ var axLookup = {};
99101
+ var i, ax, axId;
99102
+
99103
+ for(i = 0; i < axList.length; i++) {
99104
+ ax = axList[i];
99105
+ axId = ax._id;
99106
+
98581
99107
  ax.clearCalc();
98582
99108
  if(ax.type === 'multicategory') {
98583
99109
  ax.setupMultiCategory(fullData);
98584
99110
  }
99111
+
99112
+ axLookup[ax._id] = 1;
99113
+ }
99114
+
99115
+ // look into match groups for 'missing' axes
99116
+ var matchGroups = fullLayout._axisMatchGroups || [];
99117
+ for(i = 0; i < matchGroups.length; i++) {
99118
+ for(axId in matchGroups[i]) {
99119
+ if(!axLookup[axId]) {
99120
+ ax = fullLayout[axisIDs.id2name(axId)];
99121
+ ax.clearCalc();
99122
+ }
99123
+ }
98585
99124
  }
98586
99125
  }
98587
99126
 
@@ -98703,7 +99242,7 @@ plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullD
98703
99242
 
98704
99243
  },{"../components/color":320,"../constants/numerical":418,"../lib":440,"../plot_api/plot_schema":476,"../plot_api/plot_template":477,"../plots/get_data":515,"../registry":531,"./animation_attributes":482,"./attributes":484,"./cartesian/axis_ids":490,"./command":511,"./font_attributes":513,"./frame_attributes":514,"./layout_attributes":521,"d3":83,"fast-isnumeric":143}],524:[function(_dereq_,module,exports){
98705
99244
  /**
98706
- * Copyright 2012-2019, Plotly, Inc.
99245
+ * Copyright 2012-2020, Plotly, Inc.
98707
99246
  * All rights reserved.
98708
99247
  *
98709
99248
  * This source code is licensed under the MIT license found in the
@@ -98747,7 +99286,7 @@ module.exports = {
98747
99286
 
98748
99287
  },{"../../../lib/extend":433,"../../../traces/scatter/attributes":593}],525:[function(_dereq_,module,exports){
98749
99288
  /**
98750
- * Copyright 2012-2019, Plotly, Inc.
99289
+ * Copyright 2012-2020, Plotly, Inc.
98751
99290
  * All rights reserved.
98752
99291
  *
98753
99292
  * This source code is licensed under the MIT license found in the
@@ -98869,7 +99408,7 @@ module.exports = overrideAll({
98869
99408
 
98870
99409
  },{"../../../lib/extend":433,"../../../plot_api/edit_types":470,"../../cartesian/layout_attributes":499}],526:[function(_dereq_,module,exports){
98871
99410
  /**
98872
- * Copyright 2012-2019, Plotly, Inc.
99411
+ * Copyright 2012-2020, Plotly, Inc.
98873
99412
  * All rights reserved.
98874
99413
  *
98875
99414
  * This source code is licensed under the MIT license found in the
@@ -98884,7 +99423,7 @@ Polar.manager = _dereq_('./micropolar_manager');
98884
99423
 
98885
99424
  },{"./micropolar":527,"./micropolar_manager":528}],527:[function(_dereq_,module,exports){
98886
99425
  /**
98887
- * Copyright 2012-2019, Plotly, Inc.
99426
+ * Copyright 2012-2020, Plotly, Inc.
98888
99427
  * All rights reserved.
98889
99428
  *
98890
99429
  * This source code is licensed under the MIT license found in the
@@ -100304,7 +100843,7 @@ var µ = module.exports = { version: '0.2.2' };
100304
100843
 
100305
100844
  },{"../../../constants/alignment":414,"../../../lib":440,"d3":83}],528:[function(_dereq_,module,exports){
100306
100845
  /**
100307
- * Copyright 2012-2019, Plotly, Inc.
100846
+ * Copyright 2012-2020, Plotly, Inc.
100308
100847
  * All rights reserved.
100309
100848
  *
100310
100849
  * This source code is licensed under the MIT license found in the
@@ -100390,7 +100929,7 @@ manager.fillLayout = function(_gd) {
100390
100929
 
100391
100930
  },{"../../../components/color":320,"../../../lib":440,"./micropolar":527,"./undo_manager":529,"d3":83}],529:[function(_dereq_,module,exports){
100392
100931
  /**
100393
- * Copyright 2012-2019, Plotly, Inc.
100932
+ * Copyright 2012-2020, Plotly, Inc.
100394
100933
  * All rights reserved.
100395
100934
  *
100396
100935
  * This source code is licensed under the MIT license found in the
@@ -100456,7 +100995,7 @@ module.exports = function UndoManager() {
100456
100995
 
100457
100996
  },{}],530:[function(_dereq_,module,exports){
100458
100997
  /**
100459
- * Copyright 2012-2019, Plotly, Inc.
100998
+ * Copyright 2012-2020, Plotly, Inc.
100460
100999
  * All rights reserved.
100461
101000
  *
100462
101001
  * This source code is licensed under the MIT license found in the
@@ -100539,7 +101078,7 @@ exports.texttemplateAttrs = function(opts, extra) {
100539
101078
 
100540
101079
  },{"../constants/docs":415}],531:[function(_dereq_,module,exports){
100541
101080
  /**
100542
- * Copyright 2012-2019, Plotly, Inc.
101081
+ * Copyright 2012-2020, Plotly, Inc.
100543
101082
  * All rights reserved.
100544
101083
  *
100545
101084
  * This source code is licensed under the MIT license found in the
@@ -101005,7 +101544,7 @@ function getTraceType(traceType) {
101005
101544
 
101006
101545
  },{"./lib/dom":431,"./lib/extend":433,"./lib/is_plain_object":441,"./lib/loggers":444,"./lib/noop":449,"./lib/push_unique":454,"./plots/attributes":484,"./plots/layout_attributes":521}],532:[function(_dereq_,module,exports){
101007
101546
  /**
101008
- * Copyright 2012-2019, Plotly, Inc.
101547
+ * Copyright 2012-2020, Plotly, Inc.
101009
101548
  * All rights reserved.
101010
101549
  *
101011
101550
  * This source code is licensed under the MIT license found in the
@@ -101178,7 +101717,7 @@ module.exports = function clonePlot(graphObj, options) {
101178
101717
 
101179
101718
  },{"../lib":440,"../registry":531}],533:[function(_dereq_,module,exports){
101180
101719
  /**
101181
- * Copyright 2012-2019, Plotly, Inc.
101720
+ * Copyright 2012-2020, Plotly, Inc.
101182
101721
  * All rights reserved.
101183
101722
  *
101184
101723
  * This source code is licensed under the MIT license found in the
@@ -101248,7 +101787,7 @@ module.exports = downloadImage;
101248
101787
 
101249
101788
  },{"../lib":440,"../plot_api/to_image":480,"./filesaver":534,"./helpers":535}],534:[function(_dereq_,module,exports){
101250
101789
  /**
101251
- * Copyright 2012-2019, Plotly, Inc.
101790
+ * Copyright 2012-2020, Plotly, Inc.
101252
101791
  * All rights reserved.
101253
101792
  *
101254
101793
  * This source code is licensed under the MIT license found in the
@@ -101328,7 +101867,7 @@ module.exports = fileSaver;
101328
101867
 
101329
101868
  },{"../lib":440,"./helpers":535}],535:[function(_dereq_,module,exports){
101330
101869
  /**
101331
- * Copyright 2012-2019, Plotly, Inc.
101870
+ * Copyright 2012-2020, Plotly, Inc.
101332
101871
  * All rights reserved.
101333
101872
  *
101334
101873
  * This source code is licensed under the MIT license found in the
@@ -101405,7 +101944,7 @@ exports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas.
101405
101944
 
101406
101945
  },{"../registry":531}],536:[function(_dereq_,module,exports){
101407
101946
  /**
101408
- * Copyright 2012-2019, Plotly, Inc.
101947
+ * Copyright 2012-2020, Plotly, Inc.
101409
101948
  * All rights reserved.
101410
101949
  *
101411
101950
  * This source code is licensed under the MIT license found in the
@@ -101431,7 +101970,7 @@ module.exports = Snapshot;
101431
101970
 
101432
101971
  },{"./cloneplot":532,"./download":533,"./helpers":535,"./svgtoimg":537,"./toimage":538,"./tosvg":539}],537:[function(_dereq_,module,exports){
101433
101972
  /**
101434
- * Copyright 2012-2019, Plotly, Inc.
101973
+ * Copyright 2012-2020, Plotly, Inc.
101435
101974
  * All rights reserved.
101436
101975
  *
101437
101976
  * This source code is licensed under the MIT license found in the
@@ -101558,7 +102097,7 @@ module.exports = svgToImg;
101558
102097
 
101559
102098
  },{"../lib":440,"./helpers":535,"events":48}],538:[function(_dereq_,module,exports){
101560
102099
  /**
101561
- * Copyright 2012-2019, Plotly, Inc.
102100
+ * Copyright 2012-2020, Plotly, Inc.
101562
102101
  * All rights reserved.
101563
102102
  *
101564
102103
  * This source code is licensed under the MIT license found in the
@@ -101635,7 +102174,7 @@ module.exports = toImage;
101635
102174
 
101636
102175
  },{"../lib":440,"../registry":531,"./cloneplot":532,"./helpers":535,"./svgtoimg":537,"./tosvg":539,"events":48}],539:[function(_dereq_,module,exports){
101637
102176
  /**
101638
- * Copyright 2012-2019, Plotly, Inc.
102177
+ * Copyright 2012-2020, Plotly, Inc.
101639
102178
  * All rights reserved.
101640
102179
  *
101641
102180
  * This source code is licensed under the MIT license found in the
@@ -101751,21 +102290,29 @@ module.exports = function toSVG(gd, format, scale) {
101751
102290
  }
101752
102291
  });
101753
102292
 
101754
- svg.selectAll('.point, .scatterpts, .legendfill>path, .legendlines>path, .cbfill').each(function() {
101755
- var pt = d3.select(this);
101756
102293
 
101757
- // similar to font family styles above,
101758
- // we must remove " after the SVG DOM has been serialized
101759
- var fill = this.style.fill;
101760
- if(fill && fill.indexOf('url(') !== -1) {
101761
- pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
101762
- }
102294
+ if(fullLayout._gradientUrlQueryParts) {
102295
+ var queryParts = [];
102296
+ for(var k in fullLayout._gradientUrlQueryParts) queryParts.push(k);
102297
+
102298
+ if(queryParts.length) {
102299
+ svg.selectAll(queryParts.join(',')).each(function() {
102300
+ var pt = d3.select(this);
101763
102301
 
101764
- var stroke = this.style.stroke;
101765
- if(stroke && stroke.indexOf('url(') !== -1) {
101766
- pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
102302
+ // similar to font family styles above,
102303
+ // we must remove " after the SVG DOM has been serialized
102304
+ var fill = this.style.fill;
102305
+ if(fill && fill.indexOf('url(') !== -1) {
102306
+ pt.style('fill', fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
102307
+ }
102308
+
102309
+ var stroke = this.style.stroke;
102310
+ if(stroke && stroke.indexOf('url(') !== -1) {
102311
+ pt.style('stroke', stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));
102312
+ }
102313
+ });
101767
102314
  }
101768
- });
102315
+ }
101769
102316
 
101770
102317
  if(format === 'pdf' || format === 'eps') {
101771
102318
  // these formats make the extra line MathJax adds around symbols look super thick in some cases
@@ -101816,7 +102363,7 @@ module.exports = function toSVG(gd, format, scale) {
101816
102363
 
101817
102364
  },{"../components/color":320,"../components/drawing":341,"../constants/xmlns_namespaces":419,"../lib":440,"d3":83}],540:[function(_dereq_,module,exports){
101818
102365
  /**
101819
- * Copyright 2012-2019, Plotly, Inc.
102366
+ * Copyright 2012-2020, Plotly, Inc.
101820
102367
  * All rights reserved.
101821
102368
  *
101822
102369
  * This source code is licensed under the MIT license found in the
@@ -101849,7 +102396,7 @@ module.exports = function arraysToCalcdata(cd, trace) {
101849
102396
 
101850
102397
  },{"../../lib":440}],541:[function(_dereq_,module,exports){
101851
102398
  /**
101852
- * Copyright 2012-2019, Plotly, Inc.
102399
+ * Copyright 2012-2020, Plotly, Inc.
101853
102400
  * All rights reserved.
101854
102401
  *
101855
102402
  * This source code is licensed under the MIT license found in the
@@ -102036,7 +102583,7 @@ module.exports = extendFlat({
102036
102583
 
102037
102584
  },{"../../components/colorscale/attributes":327,"../../components/drawing/attributes":340,"../../constants/docs":415,"../../constants/filter_ops":416,"../../lib/extend":433,"../../plots/font_attributes":513,"../heatmap/attributes":554,"../scatter/attributes":593}],542:[function(_dereq_,module,exports){
102038
102585
  /**
102039
- * Copyright 2012-2019, Plotly, Inc.
102586
+ * Copyright 2012-2020, Plotly, Inc.
102040
102587
  * All rights reserved.
102041
102588
  *
102042
102589
  * This source code is licensed under the MIT license found in the
@@ -102089,7 +102636,7 @@ module.exports = function calc(gd, trace) {
102089
102636
 
102090
102637
  },{"../../components/colorscale":332,"../heatmap/calc":555,"./end_plus":547,"./set_contours":550}],543:[function(_dereq_,module,exports){
102091
102638
  /**
102092
- * Copyright 2012-2019, Plotly, Inc.
102639
+ * Copyright 2012-2020, Plotly, Inc.
102093
102640
  * All rights reserved.
102094
102641
  *
102095
102642
  * This source code is licensed under the MIT license found in the
@@ -102098,7 +102645,7 @@ module.exports = function calc(gd, trace) {
102098
102645
 
102099
102646
  'use strict';
102100
102647
 
102101
- var extractOpts = _dereq_('../../components/colorscale').extractOpts;
102648
+ var Colorscale = _dereq_('../../components/colorscale');
102102
102649
  var makeColorMap = _dereq_('./make_color_map');
102103
102650
  var endPlus = _dereq_('./end_plus');
102104
102651
 
@@ -102110,8 +102657,10 @@ function calc(gd, trace, opts) {
102110
102657
  var colorMap = makeColorMap(trace, {isColorbar: true});
102111
102658
 
102112
102659
  if(coloring === 'heatmap') {
102113
- var cOpts = extractOpts(trace);
102114
- opts._fillgradient = trace.colorscale;
102660
+ var cOpts = Colorscale.extractOpts(trace);
102661
+ opts._fillgradient = cOpts.reversescale ?
102662
+ Colorscale.flipScale(cOpts.colorscale) :
102663
+ cOpts.colorscale;
102115
102664
  opts._zrange = [cOpts.min, cOpts.max];
102116
102665
  } else if(coloring === 'fill') {
102117
102666
  opts._fillcolor = colorMap;
@@ -102138,7 +102687,7 @@ module.exports = {
102138
102687
 
102139
102688
  },{"../../components/colorscale":332,"./end_plus":547,"./make_color_map":549}],544:[function(_dereq_,module,exports){
102140
102689
  /**
102141
- * Copyright 2012-2019, Plotly, Inc.
102690
+ * Copyright 2012-2020, Plotly, Inc.
102142
102691
  * All rights reserved.
102143
102692
  *
102144
102693
  * This source code is licensed under the MIT license found in the
@@ -102232,7 +102781,7 @@ function handleConstraintValueDefaults(coerce, contours) {
102232
102781
 
102233
102782
  },{"../../components/color":320,"../../constants/filter_ops":416,"./label_defaults":548,"fast-isnumeric":143}],545:[function(_dereq_,module,exports){
102234
102783
  /**
102235
- * Copyright 2012-2019, Plotly, Inc.
102784
+ * Copyright 2012-2020, Plotly, Inc.
102236
102785
  * All rights reserved.
102237
102786
  *
102238
102787
  * This source code is licensed under the MIT license found in the
@@ -102261,7 +102810,7 @@ module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerc
102261
102810
 
102262
102811
  },{}],546:[function(_dereq_,module,exports){
102263
102812
  /**
102264
- * Copyright 2012-2019, Plotly, Inc.
102813
+ * Copyright 2012-2020, Plotly, Inc.
102265
102814
  * All rights reserved.
102266
102815
  *
102267
102816
  * This source code is licensed under the MIT license found in the
@@ -102312,7 +102861,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
102312
102861
 
102313
102862
  },{"../../lib":440,"../heatmap/xyz_defaults":564,"./attributes":541,"./constraint_defaults":544,"./contours_defaults":545,"./style_defaults":551}],547:[function(_dereq_,module,exports){
102314
102863
  /**
102315
- * Copyright 2012-2019, Plotly, Inc.
102864
+ * Copyright 2012-2020, Plotly, Inc.
102316
102865
  * All rights reserved.
102317
102866
  *
102318
102867
  * This source code is licensed under the MIT license found in the
@@ -102332,7 +102881,7 @@ module.exports = function endPlus(contours) {
102332
102881
 
102333
102882
  },{}],548:[function(_dereq_,module,exports){
102334
102883
  /**
102335
- * Copyright 2012-2019, Plotly, Inc.
102884
+ * Copyright 2012-2020, Plotly, Inc.
102336
102885
  * All rights reserved.
102337
102886
  *
102338
102887
  * This source code is licensed under the MIT license found in the
@@ -102362,7 +102911,7 @@ module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {
102362
102911
 
102363
102912
  },{"../../lib":440}],549:[function(_dereq_,module,exports){
102364
102913
  /**
102365
- * Copyright 2012-2019, Plotly, Inc.
102914
+ * Copyright 2012-2020, Plotly, Inc.
102366
102915
  * All rights reserved.
102367
102916
  *
102368
102917
  * This source code is licensed under the MIT license found in the
@@ -102446,7 +102995,7 @@ module.exports = function makeColorMap(trace) {
102446
102995
 
102447
102996
  },{"../../components/colorscale":332,"./end_plus":547,"d3":83}],550:[function(_dereq_,module,exports){
102448
102997
  /**
102449
- * Copyright 2012-2019, Plotly, Inc.
102998
+ * Copyright 2012-2020, Plotly, Inc.
102450
102999
  * All rights reserved.
102451
103000
  *
102452
103001
  * This source code is licensed under the MIT license found in the
@@ -102550,7 +103099,7 @@ function autoContours(start, end, ncontours) {
102550
103099
 
102551
103100
  },{"../../lib":440,"../../plots/cartesian/axes":487}],551:[function(_dereq_,module,exports){
102552
103101
  /**
102553
- * Copyright 2012-2019, Plotly, Inc.
103102
+ * Copyright 2012-2020, Plotly, Inc.
102554
103103
  * All rights reserved.
102555
103104
  *
102556
103105
  * This source code is licensed under the MIT license found in the
@@ -102595,7 +103144,7 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
102595
103144
 
102596
103145
  },{"../../components/colorscale/defaults":330,"./label_defaults":548}],552:[function(_dereq_,module,exports){
102597
103146
  /**
102598
- * Copyright 2012-2019, Plotly, Inc.
103147
+ * Copyright 2012-2020, Plotly, Inc.
102599
103148
  * All rights reserved.
102600
103149
  *
102601
103150
  * This source code is licensed under the MIT license found in the
@@ -102784,7 +103333,7 @@ module.exports = createContour;
102784
103333
 
102785
103334
  },{"../../lib/str2rgbarray":463,"../../plots/cartesian/axes":487,"../contour/make_color_map":549,"gl-contour2d":153,"gl-heatmap2d":158}],553:[function(_dereq_,module,exports){
102786
103335
  /**
102787
- * Copyright 2012-2019, Plotly, Inc.
103336
+ * Copyright 2012-2020, Plotly, Inc.
102788
103337
  * All rights reserved.
102789
103338
  *
102790
103339
  * This source code is licensed under the MIT license found in the
@@ -102814,7 +103363,7 @@ module.exports = {
102814
103363
 
102815
103364
  },{"../../plot_api/edit_types":470,"../../plots/gl2d":518,"../contour/attributes":541,"../contour/calc":542,"../contour/colorbar":543,"../contour/defaults":546,"./convert":552}],554:[function(_dereq_,module,exports){
102816
103365
  /**
102817
- * Copyright 2012-2019, Plotly, Inc.
103366
+ * Copyright 2012-2020, Plotly, Inc.
102818
103367
  * All rights reserved.
102819
103368
  *
102820
103369
  * This source code is licensed under the MIT license found in the
@@ -102824,6 +103373,7 @@ module.exports = {
102824
103373
  'use strict';
102825
103374
 
102826
103375
  var scatterAttrs = _dereq_('../scatter/attributes');
103376
+ var baseAttrs = _dereq_('../../plots/attributes');
102827
103377
  var hovertemplateAttrs = _dereq_('../../plots/template_attributes').hovertemplateAttrs;
102828
103378
  var colorScaleAttrs = _dereq_('../../components/colorscale/attributes');
102829
103379
  var FORMAT_LINK = _dereq_('../../constants/docs').FORMAT_LINK;
@@ -102918,16 +103468,17 @@ module.exports = extendFlat({
102918
103468
  editType: 'none',
102919
103469
 
102920
103470
  },
102921
- hovertemplate: hovertemplateAttrs()
103471
+ hovertemplate: hovertemplateAttrs(),
103472
+ showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})
102922
103473
  }, {
102923
103474
  transforms: undefined
102924
103475
  },
102925
103476
  colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})
102926
103477
  );
102927
103478
 
102928
- },{"../../components/colorscale/attributes":327,"../../constants/docs":415,"../../lib/extend":433,"../../plots/template_attributes":530,"../scatter/attributes":593}],555:[function(_dereq_,module,exports){
103479
+ },{"../../components/colorscale/attributes":327,"../../constants/docs":415,"../../lib/extend":433,"../../plots/attributes":484,"../../plots/template_attributes":530,"../scatter/attributes":593}],555:[function(_dereq_,module,exports){
102929
103480
  /**
102930
- * Copyright 2012-2019, Plotly, Inc.
103481
+ * Copyright 2012-2020, Plotly, Inc.
102931
103482
  * All rights reserved.
102932
103483
  *
102933
103484
  * This source code is licensed under the MIT license found in the
@@ -103087,7 +103638,7 @@ module.exports = function calc(gd, trace) {
103087
103638
 
103088
103639
  },{"../../components/colorscale/calc":328,"../../lib":440,"../../plots/cartesian/axes":487,"../../registry":531,"../histogram2d/calc":573,"./clean_2d_array":556,"./convert_column_xyz":558,"./find_empties":560,"./interp2d":561,"./make_bound_array":562}],556:[function(_dereq_,module,exports){
103089
103640
  /**
103090
- * Copyright 2012-2019, Plotly, Inc.
103641
+ * Copyright 2012-2020, Plotly, Inc.
103091
103642
  * All rights reserved.
103092
103643
  *
103093
103644
  * This source code is licensed under the MIT license found in the
@@ -103164,7 +103715,7 @@ module.exports = function clean2dArray(zOld, trace, xa, ya) {
103164
103715
 
103165
103716
  },{"../../constants/numerical":418,"../../lib":440,"fast-isnumeric":143}],557:[function(_dereq_,module,exports){
103166
103717
  /**
103167
- * Copyright 2012-2019, Plotly, Inc.
103718
+ * Copyright 2012-2020, Plotly, Inc.
103168
103719
  * All rights reserved.
103169
103720
  *
103170
103721
  * This source code is licensed under the MIT license found in the
@@ -103180,7 +103731,7 @@ module.exports = {
103180
103731
 
103181
103732
  },{}],558:[function(_dereq_,module,exports){
103182
103733
  /**
103183
- * Copyright 2012-2019, Plotly, Inc.
103734
+ * Copyright 2012-2020, Plotly, Inc.
103184
103735
  * All rights reserved.
103185
103736
  *
103186
103737
  * This source code is licensed under the MIT license found in the
@@ -103222,6 +103773,8 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
103222
103773
  hovertext = Lib.init2dArray(col2vals.length, col1vals.length);
103223
103774
  }
103224
103775
 
103776
+ var after2before = Lib.init2dArray(col2vals.length, col1vals.length);
103777
+
103225
103778
  for(i = 0; i < colLen; i++) {
103226
103779
  if(col1[i] !== BADNUM && col2[i] !== BADNUM) {
103227
103780
  var i1 = Lib.findBin(col1[i] + col1dv.minDiff / 2, col1vals);
@@ -103232,6 +103785,7 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
103232
103785
  var arrayVar = trace[arrayVarName];
103233
103786
  var newArray = newArrays[j];
103234
103787
  newArray[i2][i1] = arrayVar[i];
103788
+ after2before[i2][i1] = i;
103235
103789
  }
103236
103790
 
103237
103791
  if(hasColumnText) text[i2][i1] = textCol[i];
@@ -103254,11 +103808,13 @@ module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name,
103254
103808
  if(ax2 && ax2.type === 'category') {
103255
103809
  trace['_' + var2Name + 'CategoryMap'] = col2vals.map(function(v) { return ax2._categories[v];});
103256
103810
  }
103811
+
103812
+ trace._after2before = after2before;
103257
103813
  };
103258
103814
 
103259
103815
  },{"../../constants/numerical":418,"../../lib":440}],559:[function(_dereq_,module,exports){
103260
103816
  /**
103261
- * Copyright 2012-2019, Plotly, Inc.
103817
+ * Copyright 2012-2020, Plotly, Inc.
103262
103818
  * All rights reserved.
103263
103819
  *
103264
103820
  * This source code is licensed under the MIT license found in the
@@ -103301,7 +103857,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
103301
103857
 
103302
103858
  },{"../../components/colorscale/defaults":330,"../../lib":440,"./attributes":554,"./style_defaults":563,"./xyz_defaults":564}],560:[function(_dereq_,module,exports){
103303
103859
  /**
103304
- * Copyright 2012-2019, Plotly, Inc.
103860
+ * Copyright 2012-2020, Plotly, Inc.
103305
103861
  * All rights reserved.
103306
103862
  *
103307
103863
  * This source code is licensed under the MIT license found in the
@@ -103406,7 +103962,7 @@ module.exports = function findEmpties(z) {
103406
103962
 
103407
103963
  },{"../../lib":440}],561:[function(_dereq_,module,exports){
103408
103964
  /**
103409
- * Copyright 2012-2019, Plotly, Inc.
103965
+ * Copyright 2012-2020, Plotly, Inc.
103410
103966
  * All rights reserved.
103411
103967
  *
103412
103968
  * This source code is licensed under the MIT license found in the
@@ -103539,7 +104095,7 @@ function iterateInterp2d(z, emptyPoints, overshoot) {
103539
104095
 
103540
104096
  },{"../../lib":440}],562:[function(_dereq_,module,exports){
103541
104097
  /**
103542
- * Copyright 2012-2019, Plotly, Inc.
104098
+ * Copyright 2012-2020, Plotly, Inc.
103543
104099
  * All rights reserved.
103544
104100
  *
103545
104101
  * This source code is licensed under the MIT license found in the
@@ -103627,7 +104183,7 @@ module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks,
103627
104183
 
103628
104184
  },{"../../lib":440,"../../registry":531}],563:[function(_dereq_,module,exports){
103629
104185
  /**
103630
- * Copyright 2012-2019, Plotly, Inc.
104186
+ * Copyright 2012-2020, Plotly, Inc.
103631
104187
  * All rights reserved.
103632
104188
  *
103633
104189
  * This source code is licensed under the MIT license found in the
@@ -103650,7 +104206,7 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {
103650
104206
 
103651
104207
  },{}],564:[function(_dereq_,module,exports){
103652
104208
  /**
103653
- * Copyright 2012-2019, Plotly, Inc.
104209
+ * Copyright 2012-2020, Plotly, Inc.
103654
104210
  * All rights reserved.
103655
104211
  *
103656
104212
  * This source code is licensed under the MIT license found in the
@@ -103747,7 +104303,7 @@ function isValidZ(z) {
103747
104303
 
103748
104304
  },{"../../lib":440,"../../registry":531,"fast-isnumeric":143}],565:[function(_dereq_,module,exports){
103749
104305
  /**
103750
- * Copyright 2012-2019, Plotly, Inc.
104306
+ * Copyright 2012-2020, Plotly, Inc.
103751
104307
  * All rights reserved.
103752
104308
  *
103753
104309
  * This source code is licensed under the MIT license found in the
@@ -103786,7 +104342,7 @@ module.exports = overrideAll(attrs, 'calc', 'nested');
103786
104342
 
103787
104343
  },{"../../components/colorscale/attributes":327,"../../lib/extend":433,"../../plot_api/edit_types":470,"../heatmap/attributes":554}],566:[function(_dereq_,module,exports){
103788
104344
  /**
103789
- * Copyright 2012-2019, Plotly, Inc.
104345
+ * Copyright 2012-2020, Plotly, Inc.
103790
104346
  * All rights reserved.
103791
104347
  *
103792
104348
  * This source code is licensed under the MIT license found in the
@@ -103928,7 +104484,7 @@ module.exports = createHeatmap;
103928
104484
 
103929
104485
  },{"../../lib/str2rgbarray":463,"../../plots/cartesian/axes":487,"gl-heatmap2d":158}],567:[function(_dereq_,module,exports){
103930
104486
  /**
103931
- * Copyright 2012-2019, Plotly, Inc.
104487
+ * Copyright 2012-2020, Plotly, Inc.
103932
104488
  * All rights reserved.
103933
104489
  *
103934
104490
  * This source code is licensed under the MIT license found in the
@@ -103956,7 +104512,7 @@ module.exports = {
103956
104512
 
103957
104513
  },{"../../plots/gl2d":518,"../heatmap/calc":555,"../heatmap/colorbar":557,"../heatmap/defaults":559,"./attributes":565,"./convert":566}],568:[function(_dereq_,module,exports){
103958
104514
  /**
103959
- * Copyright 2012-2019, Plotly, Inc.
104515
+ * Copyright 2012-2020, Plotly, Inc.
103960
104516
  * All rights reserved.
103961
104517
  *
103962
104518
  * This source code is licensed under the MIT license found in the
@@ -103981,7 +104537,7 @@ module.exports = function doAvg(size, counts) {
103981
104537
 
103982
104538
  },{}],569:[function(_dereq_,module,exports){
103983
104539
  /**
103984
- * Copyright 2012-2019, Plotly, Inc.
104540
+ * Copyright 2012-2020, Plotly, Inc.
103985
104541
  * All rights reserved.
103986
104542
  *
103987
104543
  * This source code is licensed under the MIT license found in the
@@ -104055,7 +104611,7 @@ module.exports = {
104055
104611
 
104056
104612
  },{"fast-isnumeric":143}],570:[function(_dereq_,module,exports){
104057
104613
  /**
104058
- * Copyright 2012-2019, Plotly, Inc.
104614
+ * Copyright 2012-2020, Plotly, Inc.
104059
104615
  * All rights reserved.
104060
104616
  *
104061
104617
  * This source code is licensed under the MIT license found in the
@@ -104231,7 +104787,7 @@ function dateParts(v, pa, calendar) {
104231
104787
 
104232
104788
  },{"../../constants/numerical":418,"../../plots/cartesian/axes":487}],571:[function(_dereq_,module,exports){
104233
104789
  /**
104234
- * Copyright 2012-2019, Plotly, Inc.
104790
+ * Copyright 2012-2020, Plotly, Inc.
104235
104791
  * All rights reserved.
104236
104792
  *
104237
104793
  * This source code is licensed under the MIT license found in the
@@ -104788,7 +105344,7 @@ module.exports = {
104788
105344
 
104789
105345
  },{"../../lib":440,"../../plots/cartesian/axes":487,"../../registry":531,"../bar/arrays_to_calcdata":540,"./average":568,"./bin_functions":569,"./bin_label_vals":570,"./norm_functions":572,"fast-isnumeric":143}],572:[function(_dereq_,module,exports){
104790
105346
  /**
104791
- * Copyright 2012-2019, Plotly, Inc.
105347
+ * Copyright 2012-2020, Plotly, Inc.
104792
105348
  * All rights reserved.
104793
105349
  *
104794
105350
  * This source code is licensed under the MIT license found in the
@@ -104823,7 +105379,7 @@ module.exports = {
104823
105379
 
104824
105380
  },{}],573:[function(_dereq_,module,exports){
104825
105381
  /**
104826
- * Copyright 2012-2019, Plotly, Inc.
105382
+ * Copyright 2012-2020, Plotly, Inc.
104827
105383
  * All rights reserved.
104828
105384
  *
104829
105385
  * This source code is licensed under the MIT license found in the
@@ -105042,7 +105598,7 @@ function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {
105042
105598
 
105043
105599
  },{"../../lib":440,"../../plots/cartesian/axes":487,"../histogram/average":568,"../histogram/bin_functions":569,"../histogram/bin_label_vals":570,"../histogram/calc":571,"../histogram/norm_functions":572}],574:[function(_dereq_,module,exports){
105044
105600
  /**
105045
- * Copyright 2012-2019, Plotly, Inc.
105601
+ * Copyright 2012-2020, Plotly, Inc.
105046
105602
  * All rights reserved.
105047
105603
  *
105048
105604
  * This source code is licensed under the MIT license found in the
@@ -105171,7 +105727,7 @@ module.exports = {
105171
105727
 
105172
105728
  },{"../../components/colorscale/attributes":327,"../../lib/extend":433,"../../plot_api/plot_template":477,"../../plots/cartesian/layout_attributes":499,"../../plots/domain":512,"../../plots/font_attributes":513}],575:[function(_dereq_,module,exports){
105173
105729
  /**
105174
- * Copyright 2012-2019, Plotly, Inc.
105730
+ * Copyright 2012-2020, Plotly, Inc.
105175
105731
  * All rights reserved.
105176
105732
  *
105177
105733
  * This source code is licensed under the MIT license found in the
@@ -105706,7 +106262,7 @@ module.exports = {
105706
106262
 
105707
106263
  },{"../../lib":440,"../../lib/gup":438,"./constants":578,"d3":83}],576:[function(_dereq_,module,exports){
105708
106264
  /**
105709
- * Copyright 2012-2019, Plotly, Inc.
106265
+ * Copyright 2012-2020, Plotly, Inc.
105710
106266
  * All rights reserved.
105711
106267
  *
105712
106268
  * This source code is licensed under the MIT license found in the
@@ -105773,7 +106329,7 @@ exports.toSVG = function(gd) {
105773
106329
 
105774
106330
  },{"../../constants/xmlns_namespaces":419,"../../plots/get_data":515,"./plot":585,"d3":83}],577:[function(_dereq_,module,exports){
105775
106331
  /**
105776
- * Copyright 2012-2019, Plotly, Inc.
106332
+ * Copyright 2012-2020, Plotly, Inc.
105777
106333
  * All rights reserved.
105778
106334
  *
105779
106335
  * This source code is licensed under the MIT license found in the
@@ -105817,7 +106373,7 @@ function constHalf(len) {
105817
106373
 
105818
106374
  },{"../../components/colorscale":332,"../../lib":440,"../../lib/gup":438}],578:[function(_dereq_,module,exports){
105819
106375
  /**
105820
- * Copyright 2012-2019, Plotly, Inc.
106376
+ * Copyright 2012-2020, Plotly, Inc.
105821
106377
  * All rights reserved.
105822
106378
  *
105823
106379
  * This source code is licensed under the MIT license found in the
@@ -105879,7 +106435,7 @@ module.exports = {
105879
106435
 
105880
106436
  },{}],579:[function(_dereq_,module,exports){
105881
106437
  /**
105882
- * Copyright 2012-2019, Plotly, Inc.
106438
+ * Copyright 2012-2020, Plotly, Inc.
105883
106439
  * All rights reserved.
105884
106440
  *
105885
106441
  * This source code is licensed under the MIT license found in the
@@ -105999,7 +106555,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
105999
106555
 
106000
106556
  },{"../../components/colorscale/defaults":330,"../../components/colorscale/helpers":331,"../../lib":440,"../../plots/array_container_defaults":483,"../../plots/cartesian/axes":487,"../../plots/domain":512,"./attributes":574,"./axisbrush":575,"./constants":578,"./merge_length":583}],580:[function(_dereq_,module,exports){
106001
106557
  /**
106002
- * Copyright 2012-2019, Plotly, Inc.
106558
+ * Copyright 2012-2020, Plotly, Inc.
106003
106559
  * All rights reserved.
106004
106560
  *
106005
106561
  * This source code is licensed under the MIT license found in the
@@ -106024,7 +106580,7 @@ exports.isVisible = function(dimension) {
106024
106580
 
106025
106581
  },{"../../lib":440}],581:[function(_dereq_,module,exports){
106026
106582
  /**
106027
- * Copyright 2012-2019, Plotly, Inc.
106583
+ * Copyright 2012-2020, Plotly, Inc.
106028
106584
  * All rights reserved.
106029
106585
  *
106030
106586
  * This source code is licensed under the MIT license found in the
@@ -106055,7 +106611,7 @@ module.exports = {
106055
106611
 
106056
106612
  },{"./attributes":574,"./base_plot":576,"./calc":577,"./defaults":579,"./plot":585}],582:[function(_dereq_,module,exports){
106057
106613
  /**
106058
- * Copyright 2012-2019, Plotly, Inc.
106614
+ * Copyright 2012-2020, Plotly, Inc.
106059
106615
  * All rights reserved.
106060
106616
  *
106061
106617
  * This source code is licensed under the MIT license found in the
@@ -106585,7 +107141,7 @@ module.exports = function(canvasGL, d) {
106585
107141
 
106586
107142
  },{"../../lib":440,"./constants":578,"glslify":197}],583:[function(_dereq_,module,exports){
106587
107143
  /**
106588
- * Copyright 2012-2019, Plotly, Inc.
107144
+ * Copyright 2012-2020, Plotly, Inc.
106589
107145
  * All rights reserved.
106590
107146
  *
106591
107147
  * This source code is licensed under the MIT license found in the
@@ -106623,7 +107179,7 @@ module.exports = function(traceOut, dimensions, dataAttr, len) {
106623
107179
 
106624
107180
  },{}],584:[function(_dereq_,module,exports){
106625
107181
  /**
106626
- * Copyright 2012-2019, Plotly, Inc.
107182
+ * Copyright 2012-2020, Plotly, Inc.
106627
107183
  * All rights reserved.
106628
107184
  *
106629
107185
  * This source code is licensed under the MIT license found in the
@@ -107387,7 +107943,7 @@ module.exports = function parcoords(gd, cdModule, layout, callbacks) {
107387
107943
 
107388
107944
  },{"../../components/colorscale":332,"../../components/drawing":341,"../../lib":440,"../../lib/gup":438,"../../lib/svg_text_utils":464,"../../plots/cartesian/axes":487,"./axisbrush":575,"./constants":578,"./helpers":580,"./lines":582,"color-rgba":63,"d3":83}],585:[function(_dereq_,module,exports){
107389
107945
  /**
107390
- * Copyright 2012-2019, Plotly, Inc.
107946
+ * Copyright 2012-2020, Plotly, Inc.
107391
107947
  * All rights reserved.
107392
107948
  *
107393
107949
  * This source code is licensed under the MIT license found in the
@@ -107542,7 +108098,7 @@ module.exports = function plot(gd, cdModule) {
107542
108098
 
107543
108099
  },{"../../lib/prepare_regl":453,"./helpers":580,"./parcoords":584}],586:[function(_dereq_,module,exports){
107544
108100
  /**
107545
- * Copyright 2012-2019, Plotly, Inc.
108101
+ * Copyright 2012-2020, Plotly, Inc.
107546
108102
  * All rights reserved.
107547
108103
  *
107548
108104
  * This source code is licensed under the MIT license found in the
@@ -107584,7 +108140,7 @@ exports.castOption = function castOption(item, indices) {
107584
108140
 
107585
108141
  },{"../../lib":440}],587:[function(_dereq_,module,exports){
107586
108142
  /**
107587
- * Copyright 2012-2019, Plotly, Inc.
108143
+ * Copyright 2012-2020, Plotly, Inc.
107588
108144
  * All rights reserved.
107589
108145
  *
107590
108146
  * This source code is licensed under the MIT license found in the
@@ -107608,7 +108164,7 @@ module.exports = function styleOne(s, pt, trace) {
107608
108164
 
107609
108165
  },{"../../components/color":320,"./helpers":586}],588:[function(_dereq_,module,exports){
107610
108166
  /**
107611
- * Copyright 2012-2019, Plotly, Inc.
108167
+ * Copyright 2012-2020, Plotly, Inc.
107612
108168
  * All rights reserved.
107613
108169
  *
107614
108170
  * This source code is licensed under the MIT license found in the
@@ -107711,7 +108267,7 @@ module.exports = {
107711
108267
 
107712
108268
  },{"../scatter/attributes":593}],589:[function(_dereq_,module,exports){
107713
108269
  /**
107714
- * Copyright 2012-2019, Plotly, Inc.
108270
+ * Copyright 2012-2020, Plotly, Inc.
107715
108271
  * All rights reserved.
107716
108272
  *
107717
108273
  * This source code is licensed under the MIT license found in the
@@ -107913,7 +108469,7 @@ module.exports = createPointcloud;
107913
108469
 
107914
108470
  },{"../../lib/str2rgbarray":463,"../../plots/cartesian/autorange":486,"../scatter/get_trace_color":603,"gl-pointcloud2d":170}],590:[function(_dereq_,module,exports){
107915
108471
  /**
107916
- * Copyright 2012-2019, Plotly, Inc.
108472
+ * Copyright 2012-2020, Plotly, Inc.
107917
108473
  * All rights reserved.
107918
108474
  *
107919
108475
  * This source code is licensed under the MIT license found in the
@@ -107961,7 +108517,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor) {
107961
108517
 
107962
108518
  },{"../../lib":440,"./attributes":588}],591:[function(_dereq_,module,exports){
107963
108519
  /**
107964
- * Copyright 2012-2019, Plotly, Inc.
108520
+ * Copyright 2012-2020, Plotly, Inc.
107965
108521
  * All rights reserved.
107966
108522
  *
107967
108523
  * This source code is licensed under the MIT license found in the
@@ -107989,7 +108545,7 @@ module.exports = {
107989
108545
 
107990
108546
  },{"../../plots/gl2d":518,"../scatter3d/calc":620,"./attributes":588,"./convert":589,"./defaults":590}],592:[function(_dereq_,module,exports){
107991
108547
  /**
107992
- * Copyright 2012-2019, Plotly, Inc.
108548
+ * Copyright 2012-2020, Plotly, Inc.
107993
108549
  * All rights reserved.
107994
108550
  *
107995
108551
  * This source code is licensed under the MIT license found in the
@@ -108041,7 +108597,7 @@ module.exports = function arraysToCalcdata(cd, trace) {
108041
108597
 
108042
108598
  },{"../../lib":440}],593:[function(_dereq_,module,exports){
108043
108599
  /**
108044
- * Copyright 2012-2019, Plotly, Inc.
108600
+ * Copyright 2012-2020, Plotly, Inc.
108045
108601
  * All rights reserved.
108046
108602
  *
108047
108603
  * This source code is licensed under the MIT license found in the
@@ -108455,7 +109011,7 @@ module.exports = {
108455
109011
 
108456
109012
  },{"../../components/colorscale/attributes":327,"../../components/drawing":341,"../../components/drawing/attributes":340,"../../lib/extend":433,"../../plots/font_attributes":513,"../../plots/template_attributes":530,"./constants":597}],594:[function(_dereq_,module,exports){
108457
109013
  /**
108458
- * Copyright 2012-2019, Plotly, Inc.
109014
+ * Copyright 2012-2020, Plotly, Inc.
108459
109015
  * All rights reserved.
108460
109016
  *
108461
109017
  * This source code is licensed under the MIT license found in the
@@ -108740,7 +109296,7 @@ module.exports = {
108740
109296
 
108741
109297
  },{"../../constants/numerical":418,"../../lib":440,"../../plots/cartesian/axes":487,"./arrays_to_calcdata":592,"./calc_selection":595,"./colorscale_calc":596,"./subtypes":617,"fast-isnumeric":143}],595:[function(_dereq_,module,exports){
108742
109298
  /**
108743
- * Copyright 2012-2019, Plotly, Inc.
109299
+ * Copyright 2012-2020, Plotly, Inc.
108744
109300
  * All rights reserved.
108745
109301
  *
108746
109302
  * This source code is licensed under the MIT license found in the
@@ -108759,7 +109315,7 @@ module.exports = function calcSelection(cd, trace) {
108759
109315
 
108760
109316
  },{"../../lib":440}],596:[function(_dereq_,module,exports){
108761
109317
  /**
108762
- * Copyright 2012-2019, Plotly, Inc.
109318
+ * Copyright 2012-2020, Plotly, Inc.
108763
109319
  * All rights reserved.
108764
109320
  *
108765
109321
  * This source code is licensed under the MIT license found in the
@@ -108802,7 +109358,7 @@ module.exports = function calcMarkerColorscale(gd, trace) {
108802
109358
 
108803
109359
  },{"../../components/colorscale/calc":328,"../../components/colorscale/helpers":331,"./subtypes":617}],597:[function(_dereq_,module,exports){
108804
109360
  /**
108805
- * Copyright 2012-2019, Plotly, Inc.
109361
+ * Copyright 2012-2020, Plotly, Inc.
108806
109362
  * All rights reserved.
108807
109363
  *
108808
109364
  * This source code is licensed under the MIT license found in the
@@ -108831,7 +109387,7 @@ module.exports = {
108831
109387
 
108832
109388
  },{}],598:[function(_dereq_,module,exports){
108833
109389
  /**
108834
- * Copyright 2012-2019, Plotly, Inc.
109390
+ * Copyright 2012-2020, Plotly, Inc.
108835
109391
  * All rights reserved.
108836
109392
  *
108837
109393
  * This source code is licensed under the MIT license found in the
@@ -109012,7 +109568,7 @@ function getInterp(calcTrace, index, position, posAttr) {
109012
109568
 
109013
109569
  },{"./calc":594}],599:[function(_dereq_,module,exports){
109014
109570
  /**
109015
- * Copyright 2012-2019, Plotly, Inc.
109571
+ * Copyright 2012-2020, Plotly, Inc.
109016
109572
  * All rights reserved.
109017
109573
  *
109018
109574
  * This source code is licensed under the MIT license found in the
@@ -109051,7 +109607,7 @@ module.exports = function crossTraceDefaults(fullData) {
109051
109607
 
109052
109608
  },{}],600:[function(_dereq_,module,exports){
109053
109609
  /**
109054
- * Copyright 2012-2019, Plotly, Inc.
109610
+ * Copyright 2012-2020, Plotly, Inc.
109055
109611
  * All rights reserved.
109056
109612
  *
109057
109613
  * This source code is licensed under the MIT license found in the
@@ -109141,7 +109697,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
109141
109697
 
109142
109698
  },{"../../lib":440,"../../registry":531,"./attributes":593,"./constants":597,"./fillcolor_defaults":601,"./line_defaults":606,"./line_shape_defaults":608,"./marker_defaults":612,"./stack_defaults":615,"./subtypes":617,"./text_defaults":618,"./xy_defaults":619}],601:[function(_dereq_,module,exports){
109143
109699
  /**
109144
- * Copyright 2012-2019, Plotly, Inc.
109700
+ * Copyright 2012-2020, Plotly, Inc.
109145
109701
  * All rights reserved.
109146
109702
  *
109147
109703
  * This source code is licensed under the MIT license found in the
@@ -109178,7 +109734,7 @@ module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coe
109178
109734
 
109179
109735
  },{"../../components/color":320,"../../lib":440}],602:[function(_dereq_,module,exports){
109180
109736
  /**
109181
- * Copyright 2012-2019, Plotly, Inc.
109737
+ * Copyright 2012-2020, Plotly, Inc.
109182
109738
  * All rights reserved.
109183
109739
  *
109184
109740
  * This source code is licensed under the MIT license found in the
@@ -109204,7 +109760,7 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
109204
109760
 
109205
109761
  },{"../../plots/cartesian/axes":487}],603:[function(_dereq_,module,exports){
109206
109762
  /**
109207
- * Copyright 2012-2019, Plotly, Inc.
109763
+ * Copyright 2012-2020, Plotly, Inc.
109208
109764
  * All rights reserved.
109209
109765
  *
109210
109766
  * This source code is licensed under the MIT license found in the
@@ -109253,7 +109809,7 @@ module.exports = function getTraceColor(trace, di) {
109253
109809
 
109254
109810
  },{"../../components/color":320,"./subtypes":617}],604:[function(_dereq_,module,exports){
109255
109811
  /**
109256
- * Copyright 2012-2019, Plotly, Inc.
109812
+ * Copyright 2012-2020, Plotly, Inc.
109257
109813
  * All rights reserved.
109258
109814
  *
109259
109815
  * This source code is licensed under the MIT license found in the
@@ -109448,7 +110004,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
109448
110004
 
109449
110005
  },{"../../components/color":320,"../../components/fx":358,"../../lib":440,"../../registry":531,"./get_trace_color":603}],605:[function(_dereq_,module,exports){
109450
110006
  /**
109451
- * Copyright 2012-2019, Plotly, Inc.
110007
+ * Copyright 2012-2020, Plotly, Inc.
109452
110008
  * All rights reserved.
109453
110009
  *
109454
110010
  * This source code is licensed under the MIT license found in the
@@ -109494,7 +110050,7 @@ module.exports = {
109494
110050
 
109495
110051
  },{"../../plots/cartesian":498,"./arrays_to_calcdata":592,"./attributes":593,"./calc":594,"./cross_trace_calc":598,"./cross_trace_defaults":599,"./defaults":600,"./format_labels":602,"./hover":604,"./marker_colorbar":611,"./plot":613,"./select":614,"./style":616,"./subtypes":617}],606:[function(_dereq_,module,exports){
109496
110052
  /**
109497
- * Copyright 2012-2019, Plotly, Inc.
110053
+ * Copyright 2012-2020, Plotly, Inc.
109498
110054
  * All rights reserved.
109499
110055
  *
109500
110056
  * This source code is licensed under the MIT license found in the
@@ -109525,7 +110081,7 @@ module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout,
109525
110081
 
109526
110082
  },{"../../components/colorscale/defaults":330,"../../components/colorscale/helpers":331,"../../lib":440}],607:[function(_dereq_,module,exports){
109527
110083
  /**
109528
- * Copyright 2012-2019, Plotly, Inc.
110084
+ * Copyright 2012-2020, Plotly, Inc.
109529
110085
  * All rights reserved.
109530
110086
  *
109531
110087
  * This source code is licensed under the MIT license found in the
@@ -109986,7 +110542,7 @@ module.exports = function linePoints(d, opts) {
109986
110542
 
109987
110543
  },{"../../constants/numerical":418,"../../lib":440,"./constants":597}],608:[function(_dereq_,module,exports){
109988
110544
  /**
109989
- * Copyright 2012-2019, Plotly, Inc.
110545
+ * Copyright 2012-2020, Plotly, Inc.
109990
110546
  * All rights reserved.
109991
110547
  *
109992
110548
  * This source code is licensed under the MIT license found in the
@@ -110005,7 +110561,7 @@ module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {
110005
110561
 
110006
110562
  },{}],609:[function(_dereq_,module,exports){
110007
110563
  /**
110008
- * Copyright 2012-2019, Plotly, Inc.
110564
+ * Copyright 2012-2020, Plotly, Inc.
110009
110565
  * All rights reserved.
110010
110566
  *
110011
110567
  * This source code is licensed under the MIT license found in the
@@ -110095,7 +110651,7 @@ module.exports = function linkTraces(gd, plotinfo, cdscatter) {
110095
110651
 
110096
110652
  },{}],610:[function(_dereq_,module,exports){
110097
110653
  /**
110098
- * Copyright 2012-2019, Plotly, Inc.
110654
+ * Copyright 2012-2020, Plotly, Inc.
110099
110655
  * All rights reserved.
110100
110656
  *
110101
110657
  * This source code is licensed under the MIT license found in the
@@ -110137,7 +110693,7 @@ module.exports = function makeBubbleSizeFn(trace) {
110137
110693
 
110138
110694
  },{"fast-isnumeric":143}],611:[function(_dereq_,module,exports){
110139
110695
  /**
110140
- * Copyright 2012-2019, Plotly, Inc.
110696
+ * Copyright 2012-2020, Plotly, Inc.
110141
110697
  * All rights reserved.
110142
110698
  *
110143
110699
  * This source code is licensed under the MIT license found in the
@@ -110155,7 +110711,7 @@ module.exports = {
110155
110711
 
110156
110712
  },{}],612:[function(_dereq_,module,exports){
110157
110713
  /**
110158
- * Copyright 2012-2019, Plotly, Inc.
110714
+ * Copyright 2012-2020, Plotly, Inc.
110159
110715
  * All rights reserved.
110160
110716
  *
110161
110717
  * This source code is licensed under the MIT license found in the
@@ -110236,7 +110792,7 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
110236
110792
 
110237
110793
  },{"../../components/color":320,"../../components/colorscale/defaults":330,"../../components/colorscale/helpers":331,"./subtypes":617}],613:[function(_dereq_,module,exports){
110238
110794
  /**
110239
- * Copyright 2012-2019, Plotly, Inc.
110795
+ * Copyright 2012-2020, Plotly, Inc.
110240
110796
  * All rights reserved.
110241
110797
  *
110242
110798
  * This source code is licensed under the MIT license found in the
@@ -110797,7 +111353,7 @@ function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {
110797
111353
 
110798
111354
  },{"../../components/drawing":341,"../../lib":440,"../../lib/polygon":452,"../../registry":531,"./line_points":607,"./link_traces":609,"./subtypes":617,"d3":83}],614:[function(_dereq_,module,exports){
110799
111355
  /**
110800
- * Copyright 2012-2019, Plotly, Inc.
111356
+ * Copyright 2012-2020, Plotly, Inc.
110801
111357
  * All rights reserved.
110802
111358
  *
110803
111359
  * This source code is licensed under the MIT license found in the
@@ -110851,7 +111407,7 @@ module.exports = function selectPoints(searchInfo, selectionTester) {
110851
111407
 
110852
111408
  },{"./subtypes":617}],615:[function(_dereq_,module,exports){
110853
111409
  /**
110854
- * Copyright 2012-2019, Plotly, Inc.
111410
+ * Copyright 2012-2020, Plotly, Inc.
110855
111411
  * All rights reserved.
110856
111412
  *
110857
111413
  * This source code is licensed under the MIT license found in the
@@ -110956,7 +111512,7 @@ module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce)
110956
111512
 
110957
111513
  },{}],616:[function(_dereq_,module,exports){
110958
111514
  /**
110959
- * Copyright 2012-2019, Plotly, Inc.
111515
+ * Copyright 2012-2020, Plotly, Inc.
110960
111516
  * All rights reserved.
110961
111517
  *
110962
111518
  * This source code is licensed under the MIT license found in the
@@ -111027,7 +111583,7 @@ module.exports = {
111027
111583
 
111028
111584
  },{"../../components/drawing":341,"../../registry":531,"d3":83}],617:[function(_dereq_,module,exports){
111029
111585
  /**
111030
- * Copyright 2012-2019, Plotly, Inc.
111586
+ * Copyright 2012-2020, Plotly, Inc.
111031
111587
  * All rights reserved.
111032
111588
  *
111033
111589
  * This source code is licensed under the MIT license found in the
@@ -111066,7 +111622,7 @@ module.exports = {
111066
111622
 
111067
111623
  },{"../../lib":440}],618:[function(_dereq_,module,exports){
111068
111624
  /**
111069
- * Copyright 2012-2019, Plotly, Inc.
111625
+ * Copyright 2012-2020, Plotly, Inc.
111070
111626
  * All rights reserved.
111071
111627
  *
111072
111628
  * This source code is licensed under the MIT license found in the
@@ -111096,7 +111652,7 @@ module.exports = function(traceIn, traceOut, layout, coerce, opts) {
111096
111652
 
111097
111653
  },{"../../lib":440}],619:[function(_dereq_,module,exports){
111098
111654
  /**
111099
- * Copyright 2012-2019, Plotly, Inc.
111655
+ * Copyright 2012-2020, Plotly, Inc.
111100
111656
  * All rights reserved.
111101
111657
  *
111102
111658
  * This source code is licensed under the MIT license found in the
@@ -111140,7 +111696,7 @@ module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {
111140
111696
 
111141
111697
  },{"../../lib":440,"../../registry":531}],620:[function(_dereq_,module,exports){
111142
111698
  /**
111143
- * Copyright 2012-2019, Plotly, Inc.
111699
+ * Copyright 2012-2020, Plotly, Inc.
111144
111700
  * All rights reserved.
111145
111701
  *
111146
111702
  * This source code is licensed under the MIT license found in the
@@ -111168,7 +111724,7 @@ module.exports = function calc(gd, trace) {
111168
111724
 
111169
111725
  },{"../scatter/arrays_to_calcdata":592,"../scatter/colorscale_calc":596}],621:[function(_dereq_,module,exports){
111170
111726
  /**
111171
- * Copyright 2012-2019, Plotly, Inc.
111727
+ * Copyright 2012-2020, Plotly, Inc.
111172
111728
  * All rights reserved.
111173
111729
  *
111174
111730
  * This source code is licensed under the MIT license found in the
@@ -111266,7 +111822,7 @@ attrs.texttemplate = scatterAttrs.texttemplate;
111266
111822
 
111267
111823
  },{"../../components/colorscale/attributes":327,"../../lib/extend":433,"../../plot_api/edit_types":470,"../../plots/attributes":484,"../scatter/attributes":593,"./constants":623}],622:[function(_dereq_,module,exports){
111268
111824
  /**
111269
- * Copyright 2012-2019, Plotly, Inc.
111825
+ * Copyright 2012-2020, Plotly, Inc.
111270
111826
  * All rights reserved.
111271
111827
  *
111272
111828
  * This source code is licensed under the MIT license found in the
@@ -111442,9 +111998,9 @@ function sceneOptions(gd, subplot, trace, positions, x, y) {
111442
111998
  return opts;
111443
111999
  }
111444
112000
 
111445
- },{"../../constants/numerical":418,"../../lib":440,"../../plots/cartesian/autorange":486,"../../plots/cartesian/axis_ids":490,"../scatter/calc":594,"../scatter/colorscale_calc":596,"./constants":623,"./convert":624,"./scene_update":631,"point-cluster":234}],623:[function(_dereq_,module,exports){
112001
+ },{"../../constants/numerical":418,"../../lib":440,"../../plots/cartesian/autorange":486,"../../plots/cartesian/axis_ids":490,"../scatter/calc":594,"../scatter/colorscale_calc":596,"./constants":623,"./convert":624,"./scene_update":632,"point-cluster":234}],623:[function(_dereq_,module,exports){
111446
112002
  /**
111447
- * Copyright 2012-2019, Plotly, Inc.
112003
+ * Copyright 2012-2020, Plotly, Inc.
111448
112004
  * All rights reserved.
111449
112005
  *
111450
112006
  * This source code is licensed under the MIT license found in the
@@ -111477,7 +112033,7 @@ module.exports = {
111477
112033
 
111478
112034
  },{}],624:[function(_dereq_,module,exports){
111479
112035
  /**
111480
- * Copyright 2012-2019, Plotly, Inc.
112036
+ * Copyright 2012-2020, Plotly, Inc.
111481
112037
  * All rights reserved.
111482
112038
  *
111483
112039
  * This source code is licensed under the MIT license found in the
@@ -111499,6 +112055,7 @@ var formatColor = _dereq_('../../lib/gl_format_color').formatColor;
111499
112055
  var subTypes = _dereq_('../scatter/subtypes');
111500
112056
  var makeBubbleSizeFn = _dereq_('../scatter/make_bubble_size_func');
111501
112057
 
112058
+ var helpers = _dereq_('./helpers');
111502
112059
  var constants = _dereq_('./constants');
111503
112060
  var DESELECTDIM = _dereq_('../../constants/interactions').DESELECTDIM;
111504
112061
 
@@ -111537,7 +112094,7 @@ function convertStyle(gd, trace) {
111537
112094
  opts.markerSel = convertMarkerSelection(trace, trace.selected);
111538
112095
  opts.markerUnsel = convertMarkerSelection(trace, trace.unselected);
111539
112096
 
111540
- if(!trace.unselected && Array.isArray(trace.marker.opacity)) {
112097
+ if(!trace.unselected && Lib.isArrayOrTypedArray(trace.marker.opacity)) {
111541
112098
  var mo = trace.marker.opacity;
111542
112099
  opts.markerUnsel.opacity = new Array(mo.length);
111543
112100
  for(i = 0; i < mo.length; i++) {
@@ -111665,15 +112222,18 @@ function convertTextStyle(gd, trace) {
111665
112222
  optsOut.color = tfc;
111666
112223
  }
111667
112224
 
111668
- if(Array.isArray(tfs) || Array.isArray(tff)) {
112225
+ if(Lib.isArrayOrTypedArray(tfs) || Array.isArray(tff)) {
111669
112226
  // if any textfont param is array - make render a batch
111670
112227
  optsOut.font = new Array(count);
111671
112228
  for(i = 0; i < count; i++) {
111672
112229
  var fonti = optsOut.font[i] = {};
111673
112230
 
111674
- fonti.size = Array.isArray(tfs) ?
111675
- (isNumeric(tfs[i]) ? tfs[i] : 0) :
111676
- tfs;
112231
+ fonti.size = (
112232
+ Lib.isTypedArray(tfs) ? tfs[i] :
112233
+ Array.isArray(tfs) ? (
112234
+ isNumeric(tfs[i]) ? tfs[i] : 0
112235
+ ) : tfs
112236
+ );
111677
112237
 
111678
112238
  fonti.family = Array.isArray(tff) ? tff[i] : tff;
111679
112239
  }
@@ -111692,7 +112252,7 @@ function convertMarkerStyle(trace) {
111692
112252
  var optsOut = {};
111693
112253
  var i;
111694
112254
 
111695
- var multiSymbol = Array.isArray(optsIn.symbol);
112255
+ var multiSymbol = Lib.isArrayOrTypedArray(optsIn.symbol);
111696
112256
  var multiColor = Lib.isArrayOrTypedArray(optsIn.color);
111697
112257
  var multiLineColor = Lib.isArrayOrTypedArray(optsIn.line.color);
111698
112258
  var multiOpacity = Lib.isArrayOrTypedArray(optsIn.opacity);
@@ -111700,7 +112260,7 @@ function convertMarkerStyle(trace) {
111700
112260
  var multiLineWidth = Lib.isArrayOrTypedArray(optsIn.line.width);
111701
112261
 
111702
112262
  var isOpen;
111703
- if(!multiSymbol) isOpen = constants.OPEN_RE.test(optsIn.symbol);
112263
+ if(!multiSymbol) isOpen = helpers.isOpenSymbol(optsIn.symbol);
111704
112264
 
111705
112265
  // prepare colors
111706
112266
  if(multiSymbol || multiColor || multiLineColor || multiOpacity) {
@@ -111731,7 +112291,7 @@ function convertMarkerStyle(trace) {
111731
112291
  for(i = 0; i < count; i++) {
111732
112292
  if(multiSymbol) {
111733
112293
  var symbol = optsIn.symbol[i];
111734
- isOpen = constants.OPEN_RE.test(symbol);
112294
+ isOpen = helpers.isOpenSymbol(symbol);
111735
112295
  }
111736
112296
  if(isOpen) {
111737
112297
  borderColors[i] = colors[i].slice();
@@ -111876,7 +112436,7 @@ function getSymbolSdf(symbol) {
111876
112436
  var symbolNoDot = !!Drawing.symbolNoDot[symbolNumber % 100];
111877
112437
  var symbolNoFill = !!Drawing.symbolNoFill[symbolNumber % 100];
111878
112438
 
111879
- var isDot = constants.DOT_RE.test(symbol);
112439
+ var isDot = helpers.isDotSymbol(symbol);
111880
112440
 
111881
112441
  // get symbol sdf from cache or generate it
111882
112442
  if(SYMBOL_SDF[symbol]) return SYMBOL_SDF[symbol];
@@ -112122,9 +112682,9 @@ module.exports = {
112122
112682
  textPosition: convertTextPosition
112123
112683
  };
112124
112684
 
112125
- },{"../../components/drawing":341,"../../components/fx/helpers":355,"../../constants/interactions":417,"../../lib":440,"../../lib/gl_format_color":437,"../../plots/cartesian/axis_ids":490,"../../registry":531,"../scatter/make_bubble_size_func":610,"../scatter/subtypes":617,"./constants":623,"color-normalize":61,"fast-isnumeric":143,"svg-path-sdf":283}],625:[function(_dereq_,module,exports){
112685
+ },{"../../components/drawing":341,"../../components/fx/helpers":355,"../../constants/interactions":417,"../../lib":440,"../../lib/gl_format_color":437,"../../plots/cartesian/axis_ids":490,"../../registry":531,"../scatter/make_bubble_size_func":610,"../scatter/subtypes":617,"./constants":623,"./helpers":628,"color-normalize":61,"fast-isnumeric":143,"svg-path-sdf":283}],625:[function(_dereq_,module,exports){
112126
112686
  /**
112127
- * Copyright 2012-2019, Plotly, Inc.
112687
+ * Copyright 2012-2020, Plotly, Inc.
112128
112688
  * All rights reserved.
112129
112689
  *
112130
112690
  * This source code is licensed under the MIT license found in the
@@ -112136,6 +112696,7 @@ module.exports = {
112136
112696
  var Lib = _dereq_('../../lib');
112137
112697
  var Registry = _dereq_('../../registry');
112138
112698
 
112699
+ var helpers = _dereq_('./helpers');
112139
112700
  var attributes = _dereq_('./attributes');
112140
112701
  var constants = _dereq_('../scatter/constants');
112141
112702
  var subTypes = _dereq_('../scatter/subtypes');
@@ -112150,7 +112711,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
112150
112711
  return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
112151
112712
  }
112152
112713
 
112153
- var isOpen = traceIn.marker ? /-open/.test(traceIn.marker.symbol) : false;
112714
+ var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;
112154
112715
  var isBubble = subTypes.isBubble(traceIn);
112155
112716
 
112156
112717
  var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
@@ -112196,9 +112757,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
112196
112757
  Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
112197
112758
  };
112198
112759
 
112199
- },{"../../lib":440,"../../registry":531,"../scatter/constants":597,"../scatter/fillcolor_defaults":601,"../scatter/line_defaults":606,"../scatter/marker_defaults":612,"../scatter/subtypes":617,"../scatter/text_defaults":618,"../scatter/xy_defaults":619,"./attributes":621}],626:[function(_dereq_,module,exports){
112760
+ },{"../../lib":440,"../../registry":531,"../scatter/constants":597,"../scatter/fillcolor_defaults":601,"../scatter/line_defaults":606,"../scatter/marker_defaults":612,"../scatter/subtypes":617,"../scatter/text_defaults":618,"../scatter/xy_defaults":619,"./attributes":621,"./helpers":628}],626:[function(_dereq_,module,exports){
112200
112761
  /**
112201
- * Copyright 2012-2019, Plotly, Inc.
112762
+ * Copyright 2012-2020, Plotly, Inc.
112202
112763
  * All rights reserved.
112203
112764
  *
112204
112765
  * This source code is licensed under the MIT license found in the
@@ -112254,7 +112815,7 @@ module.exports = {
112254
112815
 
112255
112816
  },{"../../components/color":320,"../../constants/interactions":417,"../../lib":440}],627:[function(_dereq_,module,exports){
112256
112817
  /**
112257
- * Copyright 2012-2019, Plotly, Inc.
112818
+ * Copyright 2012-2020, Plotly, Inc.
112258
112819
  * All rights reserved.
112259
112820
  *
112260
112821
  * This source code is licensed under the MIT license found in the
@@ -112274,7 +112835,32 @@ module.exports = function formatLabels(cdi, trace, fullLayout) {
112274
112835
 
112275
112836
  },{"../scatter/format_labels":602}],628:[function(_dereq_,module,exports){
112276
112837
  /**
112277
- * Copyright 2012-2019, Plotly, Inc.
112838
+ * Copyright 2012-2020, Plotly, Inc.
112839
+ * All rights reserved.
112840
+ *
112841
+ * This source code is licensed under the MIT license found in the
112842
+ * LICENSE file in the root directory of this source tree.
112843
+ */
112844
+
112845
+ 'use strict';
112846
+
112847
+ var constants = _dereq_('./constants');
112848
+
112849
+ exports.isOpenSymbol = function(symbol) {
112850
+ return (typeof symbol === 'string') ?
112851
+ constants.OPEN_RE.test(symbol) :
112852
+ symbol % 200 > 100;
112853
+ };
112854
+
112855
+ exports.isDotSymbol = function(symbol) {
112856
+ return (typeof symbol === 'string') ?
112857
+ constants.DOT_RE.test(symbol) :
112858
+ symbol > 200;
112859
+ };
112860
+
112861
+ },{"./constants":623}],629:[function(_dereq_,module,exports){
112862
+ /**
112863
+ * Copyright 2012-2020, Plotly, Inc.
112278
112864
  * All rights reserved.
112279
112865
  *
112280
112866
  * This source code is licensed under the MIT license found in the
@@ -112384,7 +112970,7 @@ function calcHover(pointData, x, y, trace) {
112384
112970
 
112385
112971
  var font = trace.textfont;
112386
112972
  if(font) {
112387
- di.ts = Array.isArray(font.size) ? font.size[id] : font.size;
112973
+ di.ts = Lib.isArrayOrTypedArray(font.size) ? font.size[id] : font.size;
112388
112974
  di.tc = Array.isArray(font.color) ? font.color[id] : font.color;
112389
112975
  di.tf = Array.isArray(font.family) ? font.family[id] : font.family;
112390
112976
  }
@@ -112393,7 +112979,7 @@ function calcHover(pointData, x, y, trace) {
112393
112979
  if(marker) {
112394
112980
  di.ms = Lib.isArrayOrTypedArray(marker.size) ? marker.size[id] : marker.size;
112395
112981
  di.mo = Lib.isArrayOrTypedArray(marker.opacity) ? marker.opacity[id] : marker.opacity;
112396
- di.mx = Array.isArray(marker.symbol) ? marker.symbol[id] : marker.symbol;
112982
+ di.mx = Lib.isArrayOrTypedArray(marker.symbol) ? marker.symbol[id] : marker.symbol;
112397
112983
  di.mc = Lib.isArrayOrTypedArray(marker.color) ? marker.color[id] : marker.color;
112398
112984
  }
112399
112985
 
@@ -112418,10 +113004,10 @@ function calcHover(pointData, x, y, trace) {
112418
113004
  if(hoverlabel) {
112419
113005
  di.hbg = Array.isArray(hoverlabel.bgcolor) ? hoverlabel.bgcolor[id] : hoverlabel.bgcolor;
112420
113006
  di.hbc = Array.isArray(hoverlabel.bordercolor) ? hoverlabel.bordercolor[id] : hoverlabel.bordercolor;
112421
- di.hts = Array.isArray(hoverlabel.font.size) ? hoverlabel.font.size[id] : hoverlabel.font.size;
113007
+ di.hts = Lib.isArrayOrTypedArray(hoverlabel.font.size) ? hoverlabel.font.size[id] : hoverlabel.font.size;
112422
113008
  di.htc = Array.isArray(hoverlabel.font.color) ? hoverlabel.font.color[id] : hoverlabel.font.color;
112423
113009
  di.htf = Array.isArray(hoverlabel.font.family) ? hoverlabel.font.family[id] : hoverlabel.font.family;
112424
- di.hnl = Array.isArray(hoverlabel.namelength) ? hoverlabel.namelength[id] : hoverlabel.namelength;
113010
+ di.hnl = Lib.isArrayOrTypedArray(hoverlabel.namelength) ? hoverlabel.namelength[id] : hoverlabel.namelength;
112425
113011
  }
112426
113012
  var hoverinfo = trace.hoverinfo;
112427
113013
  if(hoverinfo) {
@@ -112469,9 +113055,9 @@ module.exports = {
112469
113055
  calcHover: calcHover
112470
113056
  };
112471
113057
 
112472
- },{"../../lib":440,"../../registry":531,"../scatter/get_trace_color":603}],629:[function(_dereq_,module,exports){
113058
+ },{"../../lib":440,"../../registry":531,"../scatter/get_trace_color":603}],630:[function(_dereq_,module,exports){
112473
113059
  /**
112474
- * Copyright 2012-2019, Plotly, Inc.
113060
+ * Copyright 2012-2020, Plotly, Inc.
112475
113061
  * All rights reserved.
112476
113062
  *
112477
113063
  * This source code is licensed under the MIT license found in the
@@ -112504,9 +113090,9 @@ module.exports = {
112504
113090
  }
112505
113091
  };
112506
113092
 
112507
- },{"../../plots/cartesian":498,"../scatter/cross_trace_defaults":599,"../scatter/marker_colorbar":611,"./attributes":621,"./calc":622,"./defaults":625,"./format_labels":627,"./hover":628,"./plot":630,"./select":632}],630:[function(_dereq_,module,exports){
113093
+ },{"../../plots/cartesian":498,"../scatter/cross_trace_defaults":599,"../scatter/marker_colorbar":611,"./attributes":621,"./calc":622,"./defaults":625,"./format_labels":627,"./hover":629,"./plot":631,"./select":633}],631:[function(_dereq_,module,exports){
112508
113094
  /**
112509
- * Copyright 2012-2019, Plotly, Inc.
113095
+ * Copyright 2012-2020, Plotly, Inc.
112510
113096
  * All rights reserved.
112511
113097
  *
112512
113098
  * This source code is licensed under the MIT license found in the
@@ -112872,9 +113458,9 @@ module.exports = function plot(gd, subplot, cdata) {
112872
113458
  }
112873
113459
  };
112874
113460
 
112875
- },{"../../lib":440,"../../lib/prepare_regl":453,"../scatter/link_traces":609,"../scatter/subtypes":617,"./edit_style":626,"gl-text":182,"regl-error2d":252,"regl-line2d":253,"regl-scatter2d":259}],631:[function(_dereq_,module,exports){
113461
+ },{"../../lib":440,"../../lib/prepare_regl":453,"../scatter/link_traces":609,"../scatter/subtypes":617,"./edit_style":626,"gl-text":182,"regl-error2d":252,"regl-line2d":253,"regl-scatter2d":259}],632:[function(_dereq_,module,exports){
112876
113462
  /**
112877
- * Copyright 2012-2019, Plotly, Inc.
113463
+ * Copyright 2012-2020, Plotly, Inc.
112878
113464
  * All rights reserved.
112879
113465
  *
112880
113466
  * This source code is licensed under the MIT license found in the
@@ -113030,9 +113616,9 @@ module.exports = function sceneUpdate(gd, subplot) {
113030
113616
  return scene;
113031
113617
  };
113032
113618
 
113033
- },{"../../lib":440}],632:[function(_dereq_,module,exports){
113619
+ },{"../../lib":440}],633:[function(_dereq_,module,exports){
113034
113620
  /**
113035
- * Copyright 2012-2019, Plotly, Inc.
113621
+ * Copyright 2012-2020, Plotly, Inc.
113036
113622
  * All rights reserved.
113037
113623
  *
113038
113624
  * This source code is licensed under the MIT license found in the
@@ -113109,9 +113695,9 @@ module.exports = function select(searchInfo, selectionTester) {
113109
113695
  return selection;
113110
113696
  };
113111
113697
 
113112
- },{"../scatter/subtypes":617,"./edit_style":626}],633:[function(_dereq_,module,exports){
113698
+ },{"../scatter/subtypes":617,"./edit_style":626}],634:[function(_dereq_,module,exports){
113113
113699
  /**
113114
- * Copyright 2012-2019, Plotly, Inc.
113700
+ * Copyright 2012-2020, Plotly, Inc.
113115
113701
  * All rights reserved.
113116
113702
  *
113117
113703
  * This source code is licensed under the MIT license found in the
@@ -113276,9 +113862,9 @@ module.exports = {
113276
113862
  opacity: scatterGlAttrs.opacity
113277
113863
  };
113278
113864
 
113279
- },{"../../components/colorscale/attributes":327,"../../lib/extend":433,"../../plot_api/plot_template":477,"../../plots/cartesian/constants":493,"../../plots/template_attributes":530,"../scatter/attributes":593,"../scattergl/attributes":621}],634:[function(_dereq_,module,exports){
113865
+ },{"../../components/colorscale/attributes":327,"../../lib/extend":433,"../../plot_api/plot_template":477,"../../plots/cartesian/constants":493,"../../plots/template_attributes":530,"../scatter/attributes":593,"../scattergl/attributes":621}],635:[function(_dereq_,module,exports){
113280
113866
  /**
113281
- * Copyright 2012-2019, Plotly, Inc.
113867
+ * Copyright 2012-2020, Plotly, Inc.
113282
113868
  * All rights reserved.
113283
113869
  *
113284
113870
  * This source code is licensed under the MIT license found in the
@@ -113495,9 +114081,9 @@ module.exports = {
113495
114081
  toSVG: Cartesian.toSVG
113496
114082
  };
113497
114083
 
113498
- },{"../../lib/prepare_regl":453,"../../plots/cartesian":498,"../../plots/cartesian/axes":487,"../../plots/cartesian/axis_ids":490,"../../plots/get_data":515,"../../registry":531,"regl-line2d":253}],635:[function(_dereq_,module,exports){
114084
+ },{"../../lib/prepare_regl":453,"../../plots/cartesian":498,"../../plots/cartesian/axes":487,"../../plots/cartesian/axis_ids":490,"../../plots/get_data":515,"../../registry":531,"regl-line2d":253}],636:[function(_dereq_,module,exports){
113499
114085
  /**
113500
- * Copyright 2012-2019, Plotly, Inc.
114086
+ * Copyright 2012-2020, Plotly, Inc.
113501
114087
  * All rights reserved.
113502
114088
  *
113503
114089
  * This source code is licensed under the MIT license found in the
@@ -113606,9 +114192,9 @@ module.exports = function calc(gd, trace) {
113606
114192
  return [{x: false, y: false, t: {}, trace: trace}];
113607
114193
  };
113608
114194
 
113609
- },{"../../constants/numerical":418,"../../lib":440,"../../plots/cartesian/axis_ids":490,"../scatter/calc":594,"../scatter/colorscale_calc":596,"../scattergl/constants":623,"../scattergl/convert":624,"./scene_update":642}],636:[function(_dereq_,module,exports){
114195
+ },{"../../constants/numerical":418,"../../lib":440,"../../plots/cartesian/axis_ids":490,"../scatter/calc":594,"../scatter/colorscale_calc":596,"../scattergl/constants":623,"../scattergl/convert":624,"./scene_update":643}],637:[function(_dereq_,module,exports){
113610
114196
  /**
113611
- * Copyright 2012-2019, Plotly, Inc.
114197
+ * Copyright 2012-2020, Plotly, Inc.
113612
114198
  * All rights reserved.
113613
114199
  *
113614
114200
  * This source code is licensed under the MIT license found in the
@@ -113624,7 +114210,7 @@ var attributes = _dereq_('./attributes');
113624
114210
  var subTypes = _dereq_('../scatter/subtypes');
113625
114211
  var handleMarkerDefaults = _dereq_('../scatter/marker_defaults');
113626
114212
  var mergeLength = _dereq_('../parcoords/merge_length');
113627
- var OPEN_RE = /-open/;
114213
+ var isOpenSymbol = _dereq_('../scattergl/helpers').isOpenSymbol;
113628
114214
 
113629
114215
  module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
113630
114216
  function coerce(attr, dflt) {
@@ -113653,7 +114239,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
113653
114239
 
113654
114240
  handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);
113655
114241
 
113656
- var isOpen = OPEN_RE.test(traceOut.marker.symbol);
114242
+ var isOpen = isOpenSymbol(traceOut.marker.symbol);
113657
114243
  var isBubble = subTypes.isBubble(traceOut);
113658
114244
  coerce('marker.line.width', isOpen || isBubble ? 1 : 0);
113659
114245
 
@@ -113783,9 +114369,9 @@ function handleAxisDefaults(traceIn, traceOut, layout, coerce) {
113783
114369
  }
113784
114370
  }
113785
114371
 
113786
- },{"../../lib":440,"../../plots/array_container_defaults":483,"../parcoords/merge_length":583,"../scatter/marker_defaults":612,"../scatter/subtypes":617,"./attributes":633}],637:[function(_dereq_,module,exports){
114372
+ },{"../../lib":440,"../../plots/array_container_defaults":483,"../parcoords/merge_length":583,"../scatter/marker_defaults":612,"../scatter/subtypes":617,"../scattergl/helpers":628,"./attributes":634}],638:[function(_dereq_,module,exports){
113787
114373
  /**
113788
- * Copyright 2012-2019, Plotly, Inc.
114374
+ * Copyright 2012-2020, Plotly, Inc.
113789
114375
  * All rights reserved.
113790
114376
  *
113791
114377
  * This source code is licensed under the MIT license found in the
@@ -113815,9 +114401,9 @@ module.exports = function editStyle(gd, cd0) {
113815
114401
  }
113816
114402
  };
113817
114403
 
113818
- },{"../../lib":440,"../scatter/colorscale_calc":596,"../scattergl/convert":624}],638:[function(_dereq_,module,exports){
114404
+ },{"../../lib":440,"../scatter/colorscale_calc":596,"../scattergl/convert":624}],639:[function(_dereq_,module,exports){
113819
114405
  /**
113820
- * Copyright 2012-2019, Plotly, Inc.
114406
+ * Copyright 2012-2020, Plotly, Inc.
113821
114407
  * All rights reserved.
113822
114408
  *
113823
114409
  * This source code is licensed under the MIT license found in the
@@ -113839,9 +114425,9 @@ exports.getDimIndex = function getDimIndex(trace, ax) {
113839
114425
  return false;
113840
114426
  };
113841
114427
 
113842
- },{}],639:[function(_dereq_,module,exports){
114428
+ },{}],640:[function(_dereq_,module,exports){
113843
114429
  /**
113844
- * Copyright 2012-2019, Plotly, Inc.
114430
+ * Copyright 2012-2020, Plotly, Inc.
113845
114431
  * All rights reserved.
113846
114432
  *
113847
114433
  * This source code is licensed under the MIT license found in the
@@ -113900,9 +114486,9 @@ module.exports = {
113900
114486
  hoverPoints: hoverPoints
113901
114487
  };
113902
114488
 
113903
- },{"../scattergl/hover":628,"./helpers":638}],640:[function(_dereq_,module,exports){
114489
+ },{"../scattergl/hover":629,"./helpers":639}],641:[function(_dereq_,module,exports){
113904
114490
  /**
113905
- * Copyright 2012-2019, Plotly, Inc.
114491
+ * Copyright 2012-2020, Plotly, Inc.
113906
114492
  * All rights reserved.
113907
114493
  *
113908
114494
  * This source code is licensed under the MIT license found in the
@@ -113940,9 +114526,9 @@ module.exports = {
113940
114526
  // register it here
113941
114527
  Registry.register(Grid);
113942
114528
 
113943
- },{"../../components/grid":362,"../../registry":531,"../scatter/marker_colorbar":611,"./attributes":633,"./base_plot":634,"./calc":635,"./defaults":636,"./edit_style":637,"./hover":639,"./plot":641,"./select":643}],641:[function(_dereq_,module,exports){
114529
+ },{"../../components/grid":362,"../../registry":531,"../scatter/marker_colorbar":611,"./attributes":634,"./base_plot":635,"./calc":636,"./defaults":637,"./edit_style":638,"./hover":640,"./plot":642,"./select":644}],642:[function(_dereq_,module,exports){
113944
114530
  /**
113945
- * Copyright 2012-2019, Plotly, Inc.
114531
+ * Copyright 2012-2020, Plotly, Inc.
113946
114532
  * All rights reserved.
113947
114533
  *
113948
114534
  * This source code is licensed under the MIT license found in the
@@ -114084,9 +114670,9 @@ function plotOne(gd, cd0) {
114084
114670
  }
114085
114671
  }
114086
114672
 
114087
- },{"../../lib":440,"../../plots/cartesian/axis_ids":490,"regl-splom":260}],642:[function(_dereq_,module,exports){
114673
+ },{"../../lib":440,"../../plots/cartesian/axis_ids":490,"regl-splom":260}],643:[function(_dereq_,module,exports){
114088
114674
  /**
114089
- * Copyright 2012-2019, Plotly, Inc.
114675
+ * Copyright 2012-2020, Plotly, Inc.
114090
114676
  * All rights reserved.
114091
114677
  *
114092
114678
  * This source code is licensed under the MIT license found in the
@@ -114152,9 +114738,9 @@ module.exports = function sceneUpdate(gd, trace) {
114152
114738
  return scene;
114153
114739
  };
114154
114740
 
114155
- },{"../../lib":440}],643:[function(_dereq_,module,exports){
114741
+ },{"../../lib":440}],644:[function(_dereq_,module,exports){
114156
114742
  /**
114157
- * Copyright 2012-2019, Plotly, Inc.
114743
+ * Copyright 2012-2020, Plotly, Inc.
114158
114744
  * All rights reserved.
114159
114745
  *
114160
114746
  * This source code is licensed under the MIT license found in the
@@ -114227,5 +114813,5 @@ module.exports = function select(searchInfo, selectionTester) {
114227
114813
  return selection;
114228
114814
  };
114229
114815
 
114230
- },{"../../lib":440,"../scatter/subtypes":617,"./helpers":638}]},{},[5])(5)
114816
+ },{"../../lib":440,"../scatter/subtypes":617,"./helpers":639}]},{},[5])(5)
114231
114817
  });