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
@@ -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
@@ -181,6 +181,22 @@ module.exports = {
181
181
  textfont: extendFlat({}, textFontAttrs, {
182
182
  description: 'Sets the font used for `textinfo`.'
183
183
  }),
184
+ insidetextorientation: {
185
+ valType: 'enumerated',
186
+ role: 'info',
187
+ values: ['horizontal', 'radial', 'tangential', 'auto'],
188
+ dflt: 'auto',
189
+ editType: 'plot',
190
+ description: [
191
+ 'Controls the orientation of the text inside chart sectors.',
192
+ 'When set to *auto*, text may be oriented in any direction in order',
193
+ 'to be as big as possible in the middle of a sector.',
194
+ 'The *horizontal* option orients text to be parallel with the bottom',
195
+ 'of the chart, and may make text smaller in order to achieve that goal.',
196
+ 'The *radial* option orients text along the radius of the sector.',
197
+ 'The *tangential* option orients text perpendicular to the radius of the sector.'
198
+ ].join(' ')
199
+ },
184
200
  insidetextfont: extendFlat({}, textFontAttrs, {
185
201
  description: 'Sets the font used for `textinfo` lying inside the sector.'
186
202
  }),
@@ -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
@@ -9,7 +9,6 @@
9
9
  'use strict';
10
10
 
11
11
  var isNumeric = require('fast-isnumeric');
12
- var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;
13
12
  var tinycolor = require('tinycolor2');
14
13
 
15
14
  var Color = require('../../components/color');
@@ -25,26 +24,26 @@ function calc(gd, trace) {
25
24
  var labels = trace.labels;
26
25
  var colors = trace.marker.colors || [];
27
26
  var vals = trace.values;
28
- var hasVals = isArrayOrTypedArray(vals) && vals.length;
27
+ var len = trace._length;
28
+ var hasValues = trace._hasValues && len;
29
29
 
30
30
  var i, pt;
31
31
 
32
32
  if(trace.dlabel) {
33
- labels = new Array(vals.length);
34
- for(i = 0; i < vals.length; i++) {
33
+ labels = new Array(len);
34
+ for(i = 0; i < len; i++) {
35
35
  labels[i] = String(trace.label0 + i * trace.dlabel);
36
36
  }
37
37
  }
38
38
 
39
39
  var allThisTraceLabels = {};
40
40
  var pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);
41
- var seriesLen = (hasVals ? vals : labels).length;
42
41
  var vTotal = 0;
43
42
  var isAggregated = false;
44
43
 
45
- for(i = 0; i < seriesLen; i++) {
44
+ for(i = 0; i < len; i++) {
46
45
  var v, label, hidden;
47
- if(hasVals) {
46
+ if(hasValues) {
48
47
  v = vals[i];
49
48
  if(!isNumeric(v)) continue;
50
49
  v = +v;
@@ -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
@@ -8,26 +8,57 @@
8
8
 
9
9
  'use strict';
10
10
 
11
+ var isNumeric = require('fast-isnumeric');
11
12
  var Lib = require('../../lib');
12
13
  var attributes = require('./attributes');
13
14
  var handleDomainDefaults = require('../../plots/domain').defaults;
14
15
  var handleText = require('../bar/defaults').handleText;
15
16
 
16
- module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
17
+ function handleLabelsAndValues(labels, values) {
18
+ var hasLabels = Array.isArray(labels);
19
+ var hasValues = Lib.isArrayOrTypedArray(values);
20
+ var len = Math.min(
21
+ hasLabels ? labels.length : Infinity,
22
+ hasValues ? values.length : Infinity
23
+ );
24
+
25
+ if(!isFinite(len)) len = 0;
26
+
27
+ if(len && hasValues) {
28
+ var hasPositive;
29
+ for(var i = 0; i < len; i++) {
30
+ var v = values[i];
31
+ if(isNumeric(v) && v > 0) {
32
+ hasPositive = true;
33
+ break;
34
+ }
35
+ }
36
+ if(!hasPositive) len = 0;
37
+ }
38
+
39
+ return {
40
+ hasLabels: hasLabels,
41
+ hasValues: hasValues,
42
+ len: len
43
+ };
44
+ }
45
+
46
+ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
17
47
  function coerce(attr, dflt) {
18
48
  return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
19
49
  }
20
50
 
21
- var len;
22
- var vals = coerce('values');
23
- var hasVals = Lib.isArrayOrTypedArray(vals);
24
51
  var labels = coerce('labels');
25
- if(Array.isArray(labels)) {
26
- len = labels.length;
27
- if(hasVals) len = Math.min(len, vals.length);
28
- } else if(hasVals) {
29
- len = vals.length;
52
+ var values = coerce('values');
30
53
 
54
+ var res = handleLabelsAndValues(labels, values);
55
+ var len = res.len;
56
+ traceOut._hasLabels = res.hasLabels;
57
+ traceOut._hasValues = res.hasValues;
58
+
59
+ if(!traceOut._hasLabels &&
60
+ traceOut._hasValues
61
+ ) {
31
62
  coerce('label0');
32
63
  coerce('dlabel');
33
64
  }
@@ -70,6 +101,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
70
101
  if(hasOutside) {
71
102
  coerce('automargin');
72
103
  }
104
+
105
+ if(textposition === 'inside' || textposition === 'auto' || Array.isArray(textposition)) {
106
+ coerce('insidetextorientation');
107
+ }
73
108
  }
74
109
 
75
110
  handleDomainDefaults(traceOut, layout, coerce);
@@ -86,4 +121,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
86
121
  coerce('direction');
87
122
  coerce('rotation');
88
123
  coerce('pull');
124
+ }
125
+
126
+ module.exports = {
127
+ handleLabelsAndValues: handleLabelsAndValues,
128
+ supplyDefaults: supplyDefaults
89
129
  };
@@ -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
@@ -10,7 +10,7 @@
10
10
 
11
11
  module.exports = {
12
12
  attributes: require('./attributes'),
13
- supplyDefaults: require('./defaults'),
13
+ supplyDefaults: require('./defaults').supplyDefaults,
14
14
  supplyLayoutDefaults: require('./layout_defaults'),
15
15
  layoutAttributes: require('./layout_attributes'),
16
16
 
@@ -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
@@ -16,6 +16,9 @@ var Color = require('../../components/color');
16
16
  var Drawing = require('../../components/drawing');
17
17
  var Lib = require('../../lib');
18
18
  var svgTextUtils = require('../../lib/svg_text_utils');
19
+ var uniformText = require('../bar/uniform_text');
20
+ var recordMinTextSize = uniformText.recordMinTextSize;
21
+ var clearMinTextSize = uniformText.clearMinTextSize;
19
22
 
20
23
  var helpers = require('./helpers');
21
24
  var eventData = require('./event_data');
@@ -25,6 +28,8 @@ function plot(gd, cdModule) {
25
28
  var fullLayout = gd._fullLayout;
26
29
  var gs = fullLayout._size;
27
30
 
31
+ clearMinTextSize('pie', fullLayout);
32
+
28
33
  prerenderTitles(cdModule, gd);
29
34
  layoutAreas(cdModule, gs);
30
35
 
@@ -52,7 +57,7 @@ function plot(gd, cdModule) {
52
57
  ];
53
58
  var hasOutsideText = false;
54
59
 
55
- slices.each(function(pt) {
60
+ slices.each(function(pt, i) {
56
61
  if(pt.hidden) {
57
62
  d3.select(this).selectAll('path,g').remove();
58
63
  return;
@@ -144,15 +149,18 @@ function plot(gd, cdModule) {
144
149
  s.attr('data-notex', 1);
145
150
  });
146
151
 
152
+ var font = Lib.ensureUniformFontSize(gd, textPosition === 'outside' ?
153
+ determineOutsideTextFont(trace, pt, fullLayout.font) :
154
+ determineInsideTextFont(trace, pt, fullLayout.font)
155
+ );
156
+
147
157
  sliceText.text(pt.text)
148
158
  .attr({
149
159
  'class': 'slicetext',
150
160
  transform: '',
151
161
  'text-anchor': 'middle'
152
162
  })
153
- .call(Drawing.font, textPosition === 'outside' ?
154
- determineOutsideTextFont(trace, pt, gd._fullLayout.font) :
155
- determineInsideTextFont(trace, pt, gd._fullLayout.font))
163
+ .call(Drawing.font, font)
156
164
  .call(svgTextUtils.convertToTspans, gd);
157
165
 
158
166
  // position the text relative to the slice
@@ -164,36 +172,37 @@ function plot(gd, cdModule) {
164
172
  } else {
165
173
  transform = transformInsideText(textBB, pt, cd0);
166
174
  if(textPosition === 'auto' && transform.scale < 1) {
167
- sliceText.call(Drawing.font, trace.outsidetextfont);
168
- if(trace.outsidetextfont.family !== trace.insidetextfont.family ||
169
- trace.outsidetextfont.size !== trace.insidetextfont.size) {
170
- textBB = Drawing.bBox(sliceText.node());
171
- }
175
+ var newFont = Lib.ensureUniformFontSize(gd, trace.outsidetextfont);
176
+
177
+ sliceText.call(Drawing.font, newFont);
178
+ textBB = Drawing.bBox(sliceText.node());
179
+
172
180
  transform = transformOutsideText(textBB, pt);
173
181
  }
174
182
  }
175
183
 
176
- var translateX = cx + pt.pxmid[0] * transform.rCenter + (transform.x || 0);
177
- var translateY = cy + pt.pxmid[1] * transform.rCenter + (transform.y || 0);
184
+ var textPosAngle = transform.textPosAngle;
185
+ var textXY = textPosAngle === undefined ? pt.pxmid : getCoords(cd0.r, textPosAngle);
186
+ transform.targetX = cx + textXY[0] * transform.rCenter + (transform.x || 0);
187
+ transform.targetY = cy + textXY[1] * transform.rCenter + (transform.y || 0);
188
+ computeTransform(transform, textBB);
178
189
 
179
190
  // save some stuff to use later ensure no labels overlap
180
191
  if(transform.outside) {
181
- pt.yLabelMin = translateY - textBB.height / 2;
182
- pt.yLabelMid = translateY;
183
- pt.yLabelMax = translateY + textBB.height / 2;
192
+ var targetY = transform.targetY;
193
+ pt.yLabelMin = targetY - textBB.height / 2;
194
+ pt.yLabelMid = targetY;
195
+ pt.yLabelMax = targetY + textBB.height / 2;
184
196
  pt.labelExtraX = 0;
185
197
  pt.labelExtraY = 0;
186
198
  hasOutsideText = true;
187
199
  }
188
200
 
189
- sliceText.attr('transform',
190
- 'translate(' + translateX + ',' + translateY + ')' +
191
- (transform.scale < 1 ? ('scale(' + transform.scale + ')') : '') +
192
- (transform.rotate ? ('rotate(' + transform.rotate + ')') : '') +
193
- 'translate(' +
194
- (-(textBB.left + textBB.right) / 2) + ',' +
195
- (-(textBB.top + textBB.bottom) / 2) +
196
- ')');
201
+ transform.fontSize = font.size;
202
+ recordMinTextSize(trace.type, transform, fullLayout);
203
+ cd[i].transform = transform;
204
+
205
+ sliceText.attr('transform', Lib.getTextTransform(transform));
197
206
  });
198
207
  });
199
208
 
@@ -298,8 +307,10 @@ function plotTextLines(slices, trace) {
298
307
  // first move the text to its new location
299
308
  var sliceText = sliceTop.select('g.slicetext text');
300
309
 
301
- sliceText.attr('transform', 'translate(' + pt.labelExtraX + ',' + pt.labelExtraY + ')' +
302
- sliceText.attr('transform'));
310
+ pt.transform.targetX += pt.labelExtraX;
311
+ pt.transform.targetY += pt.labelExtraY;
312
+
313
+ sliceText.attr('transform', Lib.getTextTransform(pt.transform));
303
314
 
304
315
  // then add a line to the new location
305
316
  var lineStartX = pt.cxFinal + pt.pxmid[0];
@@ -549,59 +560,150 @@ function prerenderTitles(cdModule, gd) {
549
560
 
550
561
  function transformInsideText(textBB, pt, cd0) {
551
562
  var textDiameter = Math.sqrt(textBB.width * textBB.width + textBB.height * textBB.height);
552
- var textAspect = textBB.width / textBB.height;
553
563
  var halfAngle = pt.halfangle;
564
+ var midAngle = pt.midangle;
554
565
  var ring = pt.ring;
555
566
  var rInscribed = pt.rInscribed;
556
567
  var r = cd0.r || pt.rpx1;
568
+ var orientation = cd0.trace.insidetextorientation;
569
+ var isHorizontal = orientation === 'horizontal';
570
+ var isTangential = orientation === 'tangential';
571
+ var isRadial = orientation === 'radial';
572
+ var isAuto = orientation === 'auto';
573
+ var isCircle = (ring === 1) && (Math.abs(pt.startangle - pt.stopangle) === Math.PI * 2);
574
+ var allTransforms = [];
575
+ var newT;
576
+
577
+ if(!isAuto) {
578
+ // max size if text is placed (horizontally) at the top or bottom of the arc
579
+
580
+ var considerCrossing = function(angle, key) {
581
+ if(isCrossing(pt, angle)) {
582
+ var dStart = Math.abs(angle - pt.startangle);
583
+ var dStop = Math.abs(angle - pt.stopangle);
584
+
585
+ var closestEdge = dStart < dStop ? dStart : dStop;
586
+
587
+ if(key === 'tan') {
588
+ newT = calcTanTransform(textBB, r, ring, closestEdge, 0);
589
+ } else { // case of 'rad'
590
+ newT = calcRadTransform(textBB, r, ring, closestEdge, Math.PI / 2);
591
+ }
592
+ newT.textPosAngle = angle;
557
593
 
558
- // max size text can be inserted inside without rotating it
559
- // this inscribes the text rectangle in a circle, which is then inscribed
560
- // in the slice, so it will be an underestimate, which some day we may want
561
- // to improve so this case can get more use
562
- var transform = {
563
- scale: rInscribed * r * 2 / textDiameter,
594
+ allTransforms.push(newT);
595
+ }
596
+ };
564
597
 
565
- // and the center position and rotation in this case
566
- rCenter: 1 - rInscribed,
567
- rotate: 0
568
- };
598
+ // to cover all cases with trace.rotation added
599
+ var i;
600
+ if(isHorizontal || isTangential) {
601
+ // top
602
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * i, 'tan');
603
+ // bottom
604
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1), 'tan');
605
+ }
606
+ if(isHorizontal || isRadial) {
607
+ // left
608
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1.5), 'rad');
609
+ // right
610
+ for(i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 0.5), 'rad');
611
+ }
612
+ }
569
613
 
570
- if(transform.scale >= 1) return transform;
614
+ if(isCircle || isAuto || isHorizontal) {
615
+ // max size text can be inserted inside without rotating it
616
+ // this inscribes the text rectangle in a circle, which is then inscribed
617
+ // in the slice, so it will be an underestimate, which some day we may want
618
+ // to improve so this case can get more use
619
+ newT = {
620
+ scale: rInscribed * r * 2 / textDiameter,
621
+
622
+ // and the center position and rotation in this case
623
+ rCenter: 1 - rInscribed,
624
+ rotate: 0
625
+ };
571
626
 
572
- // max size if text is rotated radially
573
- var Qr = textAspect + 1 / (2 * Math.tan(halfAngle));
574
- var maxHalfHeightRotRadial = r * Math.min(
575
- 1 / (Math.sqrt(Qr * Qr + 0.5) + Qr),
576
- ring / (Math.sqrt(textAspect * textAspect + ring / 2) + textAspect)
627
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
628
+ if(newT.scale >= 1) return newT;
629
+
630
+ allTransforms.push(newT);
631
+ }
632
+
633
+ if(isAuto || isRadial) {
634
+ newT = calcRadTransform(textBB, r, ring, halfAngle, midAngle);
635
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
636
+ allTransforms.push(newT);
637
+ }
638
+
639
+ if(isAuto || isTangential) {
640
+ newT = calcTanTransform(textBB, r, ring, halfAngle, midAngle);
641
+ newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;
642
+ allTransforms.push(newT);
643
+ }
644
+
645
+ var id = 0;
646
+ var maxScale = 0;
647
+ for(var k = 0; k < allTransforms.length; k++) {
648
+ var s = allTransforms[k].scale;
649
+ if(maxScale < s) {
650
+ maxScale = s;
651
+ id = k;
652
+ }
653
+
654
+ if(!isAuto && maxScale >= 1) {
655
+ // respect test order for non-auto options
656
+ break;
657
+ }
658
+ }
659
+ return allTransforms[id];
660
+ }
661
+
662
+ function isCrossing(pt, angle) {
663
+ var start = pt.startangle;
664
+ var stop = pt.stopangle;
665
+ return (
666
+ (start > angle && angle > stop) ||
667
+ (start < angle && angle < stop)
577
668
  );
578
- var radialTransform = {
579
- scale: maxHalfHeightRotRadial * 2 / textBB.height,
580
- rCenter: Math.cos(maxHalfHeightRotRadial / r) -
581
- maxHalfHeightRotRadial * textAspect / r,
582
- rotate: (180 / Math.PI * pt.midangle + 720) % 180 - 90
669
+ }
670
+
671
+ function calcRadTransform(textBB, r, ring, halfAngle, midAngle) {
672
+ // max size if text is rotated radially
673
+ var a = textBB.width / textBB.height;
674
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
675
+ return {
676
+ scale: s * 2 / textBB.height,
677
+ rCenter: calcRCenter(a, s / r),
678
+ rotate: calcRotate(midAngle)
583
679
  };
680
+ }
584
681
 
682
+ function calcTanTransform(textBB, r, ring, halfAngle, midAngle) {
585
683
  // max size if text is rotated tangentially
586
- var aspectInv = 1 / textAspect;
587
- var Qt = aspectInv + 1 / (2 * Math.tan(halfAngle));
588
- var maxHalfWidthTangential = r * Math.min(
589
- 1 / (Math.sqrt(Qt * Qt + 0.5) + Qt),
590
- ring / (Math.sqrt(aspectInv * aspectInv + ring / 2) + aspectInv)
591
- );
592
- var tangentialTransform = {
593
- scale: maxHalfWidthTangential * 2 / textBB.width,
594
- rCenter: Math.cos(maxHalfWidthTangential / r) -
595
- maxHalfWidthTangential / textAspect / r,
596
- rotate: (180 / Math.PI * pt.midangle + 810) % 180 - 90
684
+ var a = textBB.height / textBB.width;
685
+ var s = calcMaxHalfSize(a, halfAngle, r, ring);
686
+ return {
687
+ scale: s * 2 / textBB.width,
688
+ rCenter: calcRCenter(a, s / r),
689
+ rotate: calcRotate(midAngle + Math.PI / 2)
597
690
  };
598
- // if we need a rotated transform, pick the biggest one
599
- // even if both are bigger than 1
600
- var rotatedTransform = tangentialTransform.scale > radialTransform.scale ?
601
- tangentialTransform : radialTransform;
691
+ }
692
+
693
+ function calcRCenter(a, b) {
694
+ return Math.cos(b) - a * b;
695
+ }
696
+
697
+ function calcRotate(t) {
698
+ return (180 / Math.PI * t + 720) % 180 - 90;
699
+ }
602
700
 
603
- if(transform.scale < 1 && rotatedTransform.scale > transform.scale) return rotatedTransform;
604
- return transform;
701
+ function calcMaxHalfSize(a, halfAngle, r, ring) {
702
+ var q = a + 1 / (2 * Math.tan(halfAngle));
703
+ return r * Math.min(
704
+ 1 / (Math.sqrt(q * q + 0.5) + q),
705
+ ring / (Math.sqrt(a * a + ring / 2) + a)
706
+ );
605
707
  }
606
708
 
607
709
  function getInscribedRadiusFraction(pt, cd0) {
@@ -921,6 +1023,7 @@ function groupScale(cdModule, scaleGroups) {
921
1023
 
922
1024
  function setCoords(cd) {
923
1025
  var cd0 = cd[0];
1026
+ var r = cd0.r;
924
1027
  var trace = cd0.trace;
925
1028
  var currentAngle = trace.rotation * Math.PI / 180;
926
1029
  var angleFactor = 2 * Math.PI / cd0.vTotal;
@@ -941,11 +1044,7 @@ function setCoords(cd) {
941
1044
  lastPt = 'px0';
942
1045
  }
943
1046
 
944
- function getCoords(angle) {
945
- return [cd0.r * Math.sin(angle), -cd0.r * Math.cos(angle)];
946
- }
947
-
948
- currentCoords = getCoords(currentAngle);
1047
+ currentCoords = getCoords(r, currentAngle);
949
1048
 
950
1049
  for(i = 0; i < cd.length; i++) {
951
1050
  cdi = cd[i];
@@ -953,12 +1052,13 @@ function setCoords(cd) {
953
1052
 
954
1053
  cdi[firstPt] = currentCoords;
955
1054
 
1055
+ cdi.startangle = currentAngle;
956
1056
  currentAngle += angleFactor * cdi.v / 2;
957
- cdi.pxmid = getCoords(currentAngle);
1057
+ cdi.pxmid = getCoords(r, currentAngle);
958
1058
  cdi.midangle = currentAngle;
959
-
960
1059
  currentAngle += angleFactor * cdi.v / 2;
961
- currentCoords = getCoords(currentAngle);
1060
+ currentCoords = getCoords(r, currentAngle);
1061
+ cdi.stopangle = currentAngle;
962
1062
 
963
1063
  cdi[lastPt] = currentCoords;
964
1064
 
@@ -970,6 +1070,10 @@ function setCoords(cd) {
970
1070
  }
971
1071
  }
972
1072
 
1073
+ function getCoords(r, angle) {
1074
+ return [r * Math.sin(angle), -r * Math.cos(angle)];
1075
+ }
1076
+
973
1077
  function formatSliceLabel(gd, pt, cd0) {
974
1078
  var fullLayout = gd._fullLayout;
975
1079
  var trace = cd0.trace;
@@ -1024,6 +1128,25 @@ function formatSliceLabel(gd, pt, cd0) {
1024
1128
  }
1025
1129
  }
1026
1130
  }
1131
+
1132
+ function computeTransform(
1133
+ transform, // inout
1134
+ textBB // in
1135
+ ) {
1136
+ var rotate = transform.rotate;
1137
+ var scale = transform.scale;
1138
+ if(scale > 1) scale = 1;
1139
+
1140
+ var a = rotate * Math.PI / 180;
1141
+ var cosA = Math.cos(a);
1142
+ var sinA = Math.sin(a);
1143
+ var midX = (textBB.left + textBB.right) / 2;
1144
+ var midY = (textBB.top + textBB.bottom) / 2;
1145
+ transform.textX = midX * cosA - midY * sinA;
1146
+ transform.textY = midX * sinA + midY * cosA;
1147
+ transform.noCenter = true;
1148
+ }
1149
+
1027
1150
  module.exports = {
1028
1151
  plot: plot,
1029
1152
  formatSliceLabel: formatSliceLabel,
@@ -1033,4 +1156,5 @@ module.exports = {
1033
1156
  prerenderTitles: prerenderTitles,
1034
1157
  layoutAreas: layoutAreas,
1035
1158
  attachFxHandlers: attachFxHandlers,
1159
+ computeTransform: computeTransform
1036
1160
  };
@@ -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
@@ -11,9 +11,13 @@
11
11
  var d3 = require('d3');
12
12
 
13
13
  var styleOne = require('./style_one');
14
+ var resizeText = require('../bar/uniform_text').resizeText;
14
15
 
15
16
  module.exports = function style(gd) {
16
- gd._fullLayout._pielayer.selectAll('.trace').each(function(cd) {
17
+ var s = gd._fullLayout._pielayer.selectAll('.trace');
18
+ resizeText(gd, s, 'pie');
19
+
20
+ s.each(function(cd) {
17
21
  var cd0 = cd[0];
18
22
  var trace = cd0.trace;
19
23
  var traceSelection = d3.select(this);
@@ -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