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,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -19,6 +19,10 @@ var Drawing = require('../../components/drawing');
19
19
  var Registry = require('../../registry');
20
20
  var tickText = require('../../plots/cartesian/axes').tickText;
21
21
 
22
+ var uniformText = require('./uniform_text');
23
+ var recordMinTextSize = uniformText.recordMinTextSize;
24
+ var clearMinTextSize = uniformText.clearMinTextSize;
25
+
22
26
  var style = require('./style');
23
27
  var helpers = require('./helpers');
24
28
  var constants = require('./constants');
@@ -58,8 +62,8 @@ function getXY(di, xa, ya, isHorizontal) {
58
62
  return isHorizontal ? [s, p] : [p, s];
59
63
  }
60
64
 
61
- function transition(selection, opts, makeOnCompleteCallback) {
62
- if(hasTransition(opts)) {
65
+ function transition(selection, fullLayout, opts, makeOnCompleteCallback) {
66
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
63
67
  var onComplete;
64
68
  if(makeOnCompleteCallback) {
65
69
  onComplete = makeOnCompleteCallback();
@@ -91,6 +95,9 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
91
95
  gap: fullLayout.bargap,
92
96
  groupgap: fullLayout.bargroupgap
93
97
  };
98
+
99
+ // don't clear bar when this is called from waterfall or funnel
100
+ clearMinTextSize('bar', fullLayout);
94
101
  }
95
102
 
96
103
  var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {
@@ -140,6 +147,7 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
140
147
  !isNumeric(y0) ||
141
148
  !isNumeric(y1)
142
149
  );
150
+
143
151
  // display zeros if line.width > 0
144
152
  if(isBlank && shouldDisplayZeros && helpers.getLineWidth(trace, di) && (isHorizontal ? x1 - x0 === 0 : y1 - y0 === 0)) {
145
153
  isBlank = false;
@@ -149,6 +157,9 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
149
157
  if(isBlank && isHorizontal) x1 = x0;
150
158
  if(isBlank && !isHorizontal) y1 = y0;
151
159
 
160
+ var spansHorizontal = isHorizontal && (x0 !== x1);
161
+ var spansVertical = !isHorizontal && (y0 !== y1);
162
+
152
163
  // in waterfall mode `between` we need to adjust bar end points to match the connector width
153
164
  if(adjustPixel && !isBlank) {
154
165
  if(isHorizontal) {
@@ -203,19 +214,24 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
203
214
 
204
215
  var op = Color.opacity(mc);
205
216
  var fixpx = (op < 1 || lw > 0.01) ? roundWithLine : expandToVisible;
206
- x0 = fixpx(x0, x1);
207
- x1 = fixpx(x1, x0);
208
- y0 = fixpx(y0, y1);
209
- y1 = fixpx(y1, y0);
217
+
218
+ if(spansHorizontal) {
219
+ x0 = fixpx(x0, x1);
220
+ x1 = fixpx(x1, x0);
221
+ }
222
+ if(spansVertical) {
223
+ y0 = fixpx(y0, y1);
224
+ y1 = fixpx(y1, y0);
225
+ }
210
226
  }
211
227
 
212
- var sel = transition(Lib.ensureSingle(bar, 'path'), opts, makeOnCompleteCallback);
228
+ var sel = transition(Lib.ensureSingle(bar, 'path'), fullLayout, opts, makeOnCompleteCallback);
213
229
  sel
214
230
  .style('vector-effect', 'non-scaling-stroke')
215
231
  .attr('d', 'M' + x0 + ',' + y0 + 'V' + y1 + 'H' + x1 + 'V' + y0 + 'Z')
216
232
  .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);
217
233
 
218
- if(hasTransition(opts)) {
234
+ if(!fullLayout.uniformtext.mode && hasTransition(opts)) {
219
235
  var styleFns = Drawing.makePointStyleFns(trace);
220
236
  Drawing.singlePointStyle(di, sel, trace, styleFns, gd);
221
237
  }
@@ -237,14 +253,14 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
237
253
  Registry.getComponentMethod('errorbars', 'plot')(gd, bartraces, plotinfo, opts);
238
254
  }
239
255
 
240
- function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
256
+ function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCompleteCallback) {
241
257
  var xa = plotinfo.xaxis;
242
258
  var ya = plotinfo.yaxis;
243
259
 
244
260
  var fullLayout = gd._fullLayout;
245
261
  var textPosition;
246
262
 
247
- function appendTextNode(bar, text, textFont) {
263
+ function appendTextNode(bar, text, font) {
248
264
  var textSelection = Lib.ensureSingle(bar, 'text')
249
265
  .text(text)
250
266
  .attr({
@@ -254,17 +270,17 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
254
270
  // tex and regular text together
255
271
  'data-notex': 1
256
272
  })
257
- .call(Drawing.font, textFont)
273
+ .call(Drawing.font, font)
258
274
  .call(svgTextUtils.convertToTspans, gd);
259
275
 
260
276
  return textSelection;
261
277
  }
262
278
 
263
279
  // get trace attributes
264
- var trace = calcTrace[0].trace;
280
+ var trace = cd[0].trace;
265
281
  var isHorizontal = (trace.orientation === 'h');
266
282
 
267
- var text = getText(fullLayout, calcTrace, i, xa, ya);
283
+ var text = getText(fullLayout, cd, i, xa, ya);
268
284
  textPosition = getTextPosition(trace, i);
269
285
 
270
286
  // compute text position
@@ -272,7 +288,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
272
288
  opts.mode === 'stack' ||
273
289
  opts.mode === 'relative';
274
290
 
275
- var calcBar = calcTrace[i];
291
+ var calcBar = cd[i];
276
292
  var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost;
277
293
 
278
294
  if(!text ||
@@ -285,7 +301,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
285
301
  }
286
302
 
287
303
  var layoutFont = fullLayout.font;
288
- var barColor = style.getBarColor(calcTrace[i], trace);
304
+ var barColor = style.getBarColor(cd[i], trace);
289
305
  var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor);
290
306
  var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont);
291
307
 
@@ -318,6 +334,7 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
318
334
  var textBB;
319
335
  var textWidth;
320
336
  var textHeight;
337
+ var font;
321
338
 
322
339
  if(textPosition === 'outside') {
323
340
  if(!isOutmostBar && !calcBar.hasB) textPosition = 'inside';
@@ -327,7 +344,10 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
327
344
  if(isOutmostBar) {
328
345
  // draw text using insideTextFont and check if it fits inside bar
329
346
  textPosition = 'inside';
330
- textSelection = appendTextNode(bar, text, insideTextFont);
347
+
348
+ font = Lib.ensureUniformFontSize(gd, insideTextFont);
349
+
350
+ textSelection = appendTextNode(bar, text, font);
331
351
 
332
352
  textBB = Drawing.bBox(textSelection.node()),
333
353
  textWidth = textBB.width,
@@ -357,9 +377,9 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
357
377
  }
358
378
 
359
379
  if(!textSelection) {
360
- textSelection = appendTextNode(bar, text,
361
- (textPosition === 'outside') ?
362
- outsideTextFont : insideTextFont);
380
+ font = Lib.ensureUniformFontSize(gd, (textPosition === 'outside') ? outsideTextFont : insideTextFont);
381
+
382
+ textSelection = appendTextNode(bar, text, font);
363
383
 
364
384
  var currentTransform = textSelection.attr('transform');
365
385
  textSelection.attr('transform', '');
@@ -374,6 +394,8 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
374
394
  }
375
395
  }
376
396
 
397
+ var angle = trace.textangle;
398
+
377
399
  // compute text transform
378
400
  var transform, constrained;
379
401
  if(textPosition === 'outside') {
@@ -381,42 +403,64 @@ function appendBarText(gd, plotinfo, bar, calcTrace, i, x0, x1, y0, y1, opts, ma
381
403
  trace.constraintext === 'both' ||
382
404
  trace.constraintext === 'outside';
383
405
 
384
- transform = Lib.getTextTransform(toMoveOutsideBar(x0, x1, y0, y1, textBB, {
406
+ transform = toMoveOutsideBar(x0, x1, y0, y1, textBB, {
385
407
  isHorizontal: isHorizontal,
386
408
  constrained: constrained,
387
- angle: trace.textangle
388
- }));
409
+ angle: angle
410
+ });
389
411
  } else {
390
412
  constrained =
391
413
  trace.constraintext === 'both' ||
392
414
  trace.constraintext === 'inside';
393
415
 
394
- transform = Lib.getTextTransform(toMoveInsideBar(x0, x1, y0, y1, textBB, {
416
+ transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {
395
417
  isHorizontal: isHorizontal,
396
418
  constrained: constrained,
397
- angle: trace.textangle,
419
+ angle: angle,
398
420
  anchor: trace.insidetextanchor
399
- }));
421
+ });
400
422
  }
401
423
 
402
- transition(textSelection, opts, makeOnCompleteCallback).attr('transform', transform);
424
+ transform.fontSize = font.size;
425
+ recordMinTextSize(trace.type, transform, fullLayout);
426
+ calcBar.transform = transform;
427
+
428
+ transition(textSelection, fullLayout, opts, makeOnCompleteCallback)
429
+ .attr('transform', Lib.getTextTransform(transform));
403
430
  }
404
431
 
405
432
  function getRotateFromAngle(angle) {
406
433
  return (angle === 'auto') ? 0 : angle;
407
434
  }
408
435
 
436
+ function getRotatedTextSize(textBB, rotate) {
437
+ var a = Math.PI / 180 * rotate;
438
+ var absSin = Math.abs(Math.sin(a));
439
+ var absCos = Math.abs(Math.cos(a));
440
+
441
+ return {
442
+ x: textBB.width * absCos + textBB.height * absSin,
443
+ y: textBB.width * absSin + textBB.height * absCos
444
+ };
445
+ }
446
+
409
447
  function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
410
448
  var isHorizontal = !!opts.isHorizontal;
411
449
  var constrained = !!opts.constrained;
412
450
  var angle = opts.angle || 0;
413
- var anchor = opts.anchor || 0;
451
+ var anchor = opts.anchor || 'end';
452
+ var isEnd = anchor === 'end';
453
+ var isStart = anchor === 'start';
454
+ var leftToRight = opts.leftToRight || 0; // left: -1, center: 0, right: 1
455
+ var toRight = (leftToRight + 1) / 2;
456
+ var toLeft = 1 - toRight;
414
457
 
415
458
  var textWidth = textBB.width;
416
459
  var textHeight = textBB.height;
417
460
  var lx = Math.abs(x1 - x0);
418
461
  var ly = Math.abs(y1 - y0);
419
462
 
463
+ // compute remaining space
420
464
  var textpad = (
421
465
  lx > (2 * TEXTPAD) &&
422
466
  ly > (2 * TEXTPAD)
@@ -425,67 +469,70 @@ function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {
425
469
  lx -= 2 * textpad;
426
470
  ly -= 2 * textpad;
427
471
 
428
- var autoRotate = (angle === 'auto');
429
- var isAutoRotated = false;
430
- if(autoRotate &&
472
+ var rotate = getRotateFromAngle(angle);
473
+ if((angle === 'auto') &&
431
474
  !(textWidth <= lx && textHeight <= ly) &&
432
475
  (textWidth > lx || textHeight > ly) && (
433
476
  !(textWidth > ly || textHeight > lx) ||
434
477
  ((textWidth < textHeight) !== (lx < ly))
435
478
  )) {
436
- isAutoRotated = true;
479
+ rotate += 90;
437
480
  }
438
481
 
439
- if(isAutoRotated) {
440
- // don't rotate yet only swap bar width with height
441
- var tmp = ly;
442
- ly = lx;
443
- lx = tmp;
444
- }
445
-
446
- var rotate = getRotateFromAngle(angle);
447
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
448
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
482
+ var t = getRotatedTextSize(textBB, rotate);
449
483
 
450
- // compute and apply text padding
451
- var dx = Math.max(lx * absCos, ly * absSin);
452
- var dy = Math.max(lx * absSin, ly * absCos);
453
-
454
- var scale = (constrained) ?
455
- Math.min(dx / textWidth, dy / textHeight) :
456
- Math.max(absCos, absSin);
457
-
458
- scale = Math.min(1, scale);
484
+ var scale = 1;
485
+ if(constrained) {
486
+ scale = Math.min(
487
+ 1,
488
+ lx / t.x,
489
+ ly / t.y
490
+ );
491
+ }
459
492
 
460
493
  // compute text and target positions
461
- var targetX = (x0 + x1) / 2;
494
+ var textX = (
495
+ textBB.left * toLeft +
496
+ textBB.right * toRight
497
+ );
498
+ var textY = (textBB.top + textBB.bottom) / 2;
499
+ var targetX = (
500
+ (x0 + TEXTPAD) * toLeft +
501
+ (x1 - TEXTPAD) * toRight
502
+ );
462
503
  var targetY = (y0 + y1) / 2;
463
-
464
- if(anchor !== 'middle') { // case of 'start' or 'end'
465
- var targetWidth = scale * (isHorizontal !== isAutoRotated ? textHeight : textWidth);
466
- var targetHeight = scale * (isHorizontal !== isAutoRotated ? textWidth : textHeight);
467
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
504
+ var anchorX = 0;
505
+ var anchorY = 0;
506
+ if(isStart || isEnd) {
507
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
508
+ var dir = isHorizontal ? dirSign(x0, x1) : dirSign(y0, y1);
468
509
 
469
510
  if(isHorizontal) {
470
- textpad *= dirSign(x0, x1);
471
- targetX = (anchor === 'start') ? x0 + textpad : x1 - textpad;
511
+ if(isStart) {
512
+ targetX = x0 + dir * textpad;
513
+ anchorX = -dir * extrapad;
514
+ } else {
515
+ targetX = x1 - dir * textpad;
516
+ anchorX = dir * extrapad;
517
+ }
472
518
  } else {
473
- textpad *= dirSign(y0, y1);
474
- targetY = (anchor === 'start') ? y0 + textpad : y1 - textpad;
519
+ if(isStart) {
520
+ targetY = y0 + dir * textpad;
521
+ anchorY = -dir * extrapad;
522
+ } else {
523
+ targetY = y1 - dir * textpad;
524
+ anchorY = dir * extrapad;
525
+ }
475
526
  }
476
527
  }
477
528
 
478
- var textX = (textBB.left + textBB.right) / 2;
479
- var textY = (textBB.top + textBB.bottom) / 2;
480
-
481
- // lastly apply auto rotation
482
- if(isAutoRotated) rotate += 90;
483
-
484
529
  return {
485
530
  textX: textX,
486
531
  textY: textY,
487
532
  targetX: targetX,
488
533
  targetY: targetY,
534
+ anchorX: anchorX,
535
+ anchorY: anchorY,
489
536
  scale: scale,
490
537
  rotate: rotate
491
538
  };
@@ -519,45 +566,47 @@ function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {
519
566
  }
520
567
 
521
568
  var rotate = getRotateFromAngle(angle);
522
- var absSin = Math.abs(Math.sin(Math.PI / 180 * rotate));
523
- var absCos = Math.abs(Math.cos(Math.PI / 180 * rotate));
569
+ var t = getRotatedTextSize(textBB, rotate);
524
570
 
525
571
  // compute text and target positions
526
- var targetWidth = scale * (isHorizontal ? textHeight : textWidth);
527
- var targetHeight = scale * (isHorizontal ? textWidth : textHeight);
528
- textpad += 0.5 * (targetWidth * absSin + targetHeight * absCos);
529
-
572
+ var extrapad = (isHorizontal ? t.x : t.y) / 2;
573
+ var textX = (textBB.left + textBB.right) / 2;
574
+ var textY = (textBB.top + textBB.bottom) / 2;
530
575
  var targetX = (x0 + x1) / 2;
531
576
  var targetY = (y0 + y1) / 2;
577
+ var anchorX = 0;
578
+ var anchorY = 0;
532
579
 
580
+ var dir = isHorizontal ? dirSign(x1, x0) : dirSign(y0, y1);
533
581
  if(isHorizontal) {
534
- targetX = x1 - textpad * dirSign(x1, x0);
582
+ targetX = x1 - dir * textpad;
583
+ anchorX = dir * extrapad;
535
584
  } else {
536
- targetY = y1 + textpad * dirSign(y0, y1);
585
+ targetY = y1 + dir * textpad;
586
+ anchorY = -dir * extrapad;
537
587
  }
538
588
 
539
- var textX = (textBB.left + textBB.right) / 2;
540
- var textY = (textBB.top + textBB.bottom) / 2;
541
-
542
589
  return {
543
590
  textX: textX,
544
591
  textY: textY,
545
592
  targetX: targetX,
546
593
  targetY: targetY,
594
+ anchorX: anchorX,
595
+ anchorY: anchorY,
547
596
  scale: scale,
548
597
  rotate: rotate
549
598
  };
550
599
  }
551
600
 
552
- function getText(fullLayout, calcTrace, index, xa, ya) {
553
- var trace = calcTrace[0].trace;
601
+ function getText(fullLayout, cd, index, xa, ya) {
602
+ var trace = cd[0].trace;
554
603
  var texttemplate = trace.texttemplate;
555
604
 
556
605
  var value;
557
606
  if(texttemplate) {
558
- value = calcTexttemplate(fullLayout, calcTrace, index, xa, ya);
607
+ value = calcTexttemplate(fullLayout, cd, index, xa, ya);
559
608
  } else if(trace.textinfo) {
560
- value = calcTextinfo(calcTrace, index, xa, ya);
609
+ value = calcTextinfo(cd, index, xa, ya);
561
610
  } else {
562
611
  value = helpers.getValue(trace.text, index);
563
612
  }
@@ -570,8 +619,8 @@ function getTextPosition(trace, index) {
570
619
  return helpers.coerceEnumerated(attributeTextPosition, value);
571
620
  }
572
621
 
573
- function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
574
- var trace = calcTrace[0].trace;
622
+ function calcTexttemplate(fullLayout, cd, index, xa, ya) {
623
+ var trace = cd[0].trace;
575
624
  var texttemplate = Lib.castOption(trace, index, 'texttemplate');
576
625
  if(!texttemplate) return '';
577
626
  var isWaterfall = (trace.type === 'waterfall');
@@ -599,7 +648,7 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
599
648
  return tickText(vAxis, +v, true).text;
600
649
  }
601
650
 
602
- var cdi = calcTrace[index];
651
+ var cdi = cd[index];
603
652
  var obj = {};
604
653
 
605
654
  obj.label = cdi.p;
@@ -640,8 +689,8 @@ function calcTexttemplate(fullLayout, calcTrace, index, xa, ya) {
640
689
  return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});
641
690
  }
642
691
 
643
- function calcTextinfo(calcTrace, index, xa, ya) {
644
- var trace = calcTrace[0].trace;
692
+ function calcTextinfo(cd, index, xa, ya) {
693
+ var trace = cd[0].trace;
645
694
  var isHorizontal = (trace.orientation === 'h');
646
695
  var isWaterfall = (trace.type === 'waterfall');
647
696
  var isFunnel = (trace.type === 'funnel');
@@ -657,7 +706,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
657
706
  }
658
707
 
659
708
  var textinfo = trace.textinfo;
660
- var cdi = calcTrace[index];
709
+ var cdi = cd[index];
661
710
 
662
711
  var parts = textinfo.split('+');
663
712
  var text = [];
@@ -666,7 +715,7 @@ function calcTextinfo(calcTrace, index, xa, ya) {
666
715
  var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };
667
716
 
668
717
  if(hasFlag('label')) {
669
- text.push(formatLabel(calcTrace[index].p));
718
+ text.push(formatLabel(cd[index].p));
670
719
  }
671
720
 
672
721
  if(hasFlag('text')) {
@@ -716,6 +765,5 @@ function calcTextinfo(calcTrace, index, xa, ya) {
716
765
 
717
766
  module.exports = {
718
767
  plot: plot,
719
- toMoveInsideBar: toMoveInsideBar,
720
- toMoveOutsideBar: toMoveOutsideBar
768
+ toMoveInsideBar: toMoveInsideBar
721
769
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -14,6 +14,7 @@ var Drawing = require('../../components/drawing');
14
14
  var Lib = require('../../lib');
15
15
  var Registry = require('../../registry');
16
16
 
17
+ var resizeText = require('./uniform_text').resizeText;
17
18
  var attributes = require('./attributes');
18
19
  var attributeTextFont = attributes.textfont;
19
20
  var attributeInsideTextFont = attributes.insidetextfont;
@@ -22,6 +23,8 @@ var helpers = require('./helpers');
22
23
 
23
24
  function style(gd) {
24
25
  var s = d3.select(gd).selectAll('g.barlayer').selectAll('g.trace');
26
+ resizeText(gd, s, 'bar');
27
+
25
28
  var barcount = s.size();
26
29
  var fullLayout = gd._fullLayout;
27
30
 
@@ -57,7 +60,8 @@ function stylePoints(sel, trace, gd) {
57
60
  function styleTextPoints(sel, trace, gd) {
58
61
  sel.selectAll('text').each(function(d) {
59
62
  var tx = d3.select(this);
60
- var font = determineFont(tx, d, trace, gd);
63
+ var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
64
+
61
65
  Drawing.font(tx, font);
62
66
  });
63
67
  }
@@ -84,7 +88,7 @@ function styleTextInSelectionMode(txs, trace, gd) {
84
88
  var font;
85
89
 
86
90
  if(d.selected) {
87
- font = Lib.extendFlat({}, determineFont(tx, d, trace, gd));
91
+ font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));
88
92
 
89
93
  var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;
90
94
  if(selectedFontColor) {
@@ -171,5 +175,6 @@ module.exports = {
171
175
  styleOnSelect: styleOnSelect,
172
176
  getInsideTextFont: getInsideTextFont,
173
177
  getOutsideTextFont: getOutsideTextFont,
174
- getBarColor: getBarColor
178
+ getBarColor: getBarColor,
179
+ resizeText: resizeText
175
180
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Copyright 2012-2020, Plotly, Inc.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
9
+ 'use strict';
10
+
11
+ var d3 = require('d3');
12
+ var Lib = require('../../lib');
13
+
14
+ function resizeText(gd, gTrace, traceType) {
15
+ var fullLayout = gd._fullLayout;
16
+ var minSize = fullLayout['_' + traceType + 'Text_minsize'];
17
+ if(minSize) {
18
+ var shouldHide = fullLayout.uniformtext.mode === 'hide';
19
+
20
+ var selector;
21
+ switch(traceType) {
22
+ case 'funnelarea' :
23
+ case 'pie' :
24
+ case 'sunburst' :
25
+ selector = 'g.slice';
26
+ break;
27
+ case 'treemap' :
28
+ selector = 'g.slice, g.pathbar';
29
+ break;
30
+ default :
31
+ selector = 'g.points > g.point';
32
+ }
33
+
34
+ gTrace.selectAll(selector).each(function(d) {
35
+ var transform = d.transform;
36
+ if(transform) {
37
+ transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize;
38
+
39
+ var el = d3.select(this).select('text');
40
+ el.attr('transform', Lib.getTextTransform(transform));
41
+ }
42
+ });
43
+ }
44
+ }
45
+
46
+ function recordMinTextSize(
47
+ traceType, // in
48
+ transform, // inout
49
+ fullLayout // inout
50
+ ) {
51
+ if(fullLayout.uniformtext.mode) {
52
+ var minKey = getMinKey(traceType);
53
+ var minSize = fullLayout.uniformtext.minsize;
54
+ var size = transform.scale * transform.fontSize;
55
+
56
+ transform.hide = size < minSize;
57
+
58
+ fullLayout[minKey] = fullLayout[minKey] || Infinity;
59
+ if(!transform.hide) {
60
+ fullLayout[minKey] = Math.min(
61
+ fullLayout[minKey],
62
+ Math.max(size, minSize)
63
+ );
64
+ }
65
+ }
66
+ }
67
+
68
+ function clearMinTextSize(
69
+ traceType, // in
70
+ fullLayout // inout
71
+ ) {
72
+ var minKey = getMinKey(traceType);
73
+ fullLayout[minKey] = undefined;
74
+ }
75
+
76
+ function getMinKey(traceType) {
77
+ return '_' + traceType + 'Text_minsize';
78
+ }
79
+
80
+ module.exports = {
81
+ recordMinTextSize: recordMinTextSize,
82
+ clearMinTextSize: clearMinTextSize,
83
+ resizeText: resizeText
84
+ };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2012-2019, Plotly, Inc.
2
+ * Copyright 2012-2020, Plotly, Inc.
3
3
  * All rights reserved.
4
4
  *
5
5
  * This source code is licensed under the MIT license found in the