@elastic/charts 37.0.0 → 38.1.1

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 (254) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/NOTICE.txt +21 -0
  3. package/dist/chart_types/goal_chart/layout/viewmodel/geoms.js +20 -10
  4. package/dist/chart_types/goal_chart/layout/viewmodel/geoms.js.map +1 -1
  5. package/dist/chart_types/goal_chart/layout/viewmodel/utils.d.ts +2 -0
  6. package/dist/chart_types/goal_chart/layout/viewmodel/utils.d.ts.map +1 -0
  7. package/dist/chart_types/goal_chart/layout/viewmodel/utils.js +37 -0
  8. package/dist/chart_types/goal_chart/layout/viewmodel/utils.js.map +1 -0
  9. package/dist/chart_types/goal_chart/state/selectors/scenegraph.js +5 -13
  10. package/dist/chart_types/goal_chart/state/selectors/scenegraph.js.map +1 -1
  11. package/dist/chart_types/heatmap/layout/viewmodel/viewmodel.js +5 -7
  12. package/dist/chart_types/heatmap/layout/viewmodel/viewmodel.js.map +1 -1
  13. package/dist/chart_types/heatmap/state/selectors/get_heatmap_config.js +1 -3
  14. package/dist/chart_types/heatmap/state/selectors/get_heatmap_config.js.map +1 -1
  15. package/dist/chart_types/heatmap/state/selectors/get_x_axis_right_overflow.js +10 -19
  16. package/dist/chart_types/heatmap/state/selectors/get_x_axis_right_overflow.js.map +1 -1
  17. package/dist/chart_types/heatmap/state/selectors/scenegraph.js +1 -1
  18. package/dist/chart_types/heatmap/state/selectors/scenegraph.js.map +1 -1
  19. package/dist/chart_types/partition_chart/layout/config.js +1 -1
  20. package/dist/chart_types/partition_chart/layout/config.js.map +1 -1
  21. package/dist/chart_types/partition_chart/layout/viewmodel/fill_text_layout.js +5 -4
  22. package/dist/chart_types/partition_chart/layout/viewmodel/fill_text_layout.js.map +1 -1
  23. package/dist/chart_types/partition_chart/layout/viewmodel/scenegraph.js +1 -1
  24. package/dist/chart_types/partition_chart/layout/viewmodel/scenegraph.js.map +1 -1
  25. package/dist/chart_types/partition_chart/state/chart_state.js +3 -3
  26. package/dist/chart_types/partition_chart/state/chart_state.js.map +1 -1
  27. package/dist/chart_types/partition_chart/state/selectors/get_cursor_pointer.d.ts +2 -0
  28. package/dist/chart_types/partition_chart/state/selectors/get_cursor_pointer.d.ts.map +1 -0
  29. package/dist/chart_types/partition_chart/state/selectors/get_cursor_pointer.js +14 -0
  30. package/dist/chart_types/partition_chart/state/selectors/get_cursor_pointer.js.map +1 -0
  31. package/dist/chart_types/wordcloud/state/selectors/scenegraph.js +1 -4
  32. package/dist/chart_types/wordcloud/state/selectors/scenegraph.js.map +1 -1
  33. package/dist/chart_types/xy_chart/annotations/line/dimensions.js +14 -13
  34. package/dist/chart_types/xy_chart/annotations/line/dimensions.js.map +1 -1
  35. package/dist/chart_types/xy_chart/annotations/rect/dimensions.js +11 -13
  36. package/dist/chart_types/xy_chart/annotations/rect/dimensions.js.map +1 -1
  37. package/dist/chart_types/xy_chart/annotations/utils.js +5 -7
  38. package/dist/chart_types/xy_chart/annotations/utils.js.map +1 -1
  39. package/dist/chart_types/xy_chart/axes/axes_sizes.js +80 -35
  40. package/dist/chart_types/xy_chart/axes/axes_sizes.js.map +1 -1
  41. package/dist/chart_types/xy_chart/axes/timeslip/chrono/cached_chrono.d.ts +2 -0
  42. package/dist/chart_types/xy_chart/axes/timeslip/chrono/cached_chrono.d.ts.map +1 -0
  43. package/dist/chart_types/xy_chart/axes/timeslip/chrono/cached_chrono.js +33 -0
  44. package/dist/chart_types/xy_chart/axes/timeslip/chrono/cached_chrono.js.map +1 -0
  45. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono.d.ts +2 -0
  46. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono.d.ts.map +1 -0
  47. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono.js +18 -0
  48. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono.js.map +1 -0
  49. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono_luxon/chrono_luxon.d.ts +2 -0
  50. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono_luxon/chrono_luxon.d.ts.map +1 -0
  51. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono_luxon/chrono_luxon.js +35 -0
  52. package/dist/chart_types/xy_chart/axes/timeslip/chrono/chrono_luxon/chrono_luxon.js.map +1 -0
  53. package/dist/chart_types/xy_chart/axes/timeslip/rasters.d.ts +2 -0
  54. package/dist/chart_types/xy_chart/axes/timeslip/rasters.d.ts.map +1 -0
  55. package/dist/chart_types/xy_chart/axes/timeslip/rasters.js +708 -0
  56. package/dist/chart_types/xy_chart/axes/timeslip/rasters.js.map +1 -0
  57. package/dist/chart_types/xy_chart/crosshair/crosshair_utils.js +2 -2
  58. package/dist/chart_types/xy_chart/crosshair/crosshair_utils.js.map +1 -1
  59. package/dist/chart_types/xy_chart/domains/x_domain.js +3 -2
  60. package/dist/chart_types/xy_chart/domains/x_domain.js.map +1 -1
  61. package/dist/chart_types/xy_chart/legend/legend.js +10 -19
  62. package/dist/chart_types/xy_chart/legend/legend.js.map +1 -1
  63. package/dist/chart_types/xy_chart/renderer/canvas/axes/index.js +2 -2
  64. package/dist/chart_types/xy_chart/renderer/canvas/axes/index.js.map +1 -1
  65. package/dist/chart_types/xy_chart/renderer/canvas/axes/tick.js +12 -4
  66. package/dist/chart_types/xy_chart/renderer/canvas/axes/tick.js.map +1 -1
  67. package/dist/chart_types/xy_chart/renderer/canvas/axes/tick_label.js +7 -4
  68. package/dist/chart_types/xy_chart/renderer/canvas/axes/tick_label.js.map +1 -1
  69. package/dist/chart_types/xy_chart/renderer/canvas/panels/panels.js +2 -0
  70. package/dist/chart_types/xy_chart/renderer/canvas/panels/panels.js.map +1 -1
  71. package/dist/chart_types/xy_chart/renderer/canvas/panels/title.js +5 -3
  72. package/dist/chart_types/xy_chart/renderer/canvas/panels/title.js.map +1 -1
  73. package/dist/chart_types/xy_chart/renderer/canvas/xy_chart.js +2 -2
  74. package/dist/chart_types/xy_chart/renderer/canvas/xy_chart.js.map +1 -1
  75. package/dist/chart_types/xy_chart/rendering/area.js +11 -33
  76. package/dist/chart_types/xy_chart/rendering/area.js.map +1 -1
  77. package/dist/chart_types/xy_chart/rendering/bars.js +8 -9
  78. package/dist/chart_types/xy_chart/rendering/bars.js.map +1 -1
  79. package/dist/chart_types/xy_chart/rendering/line.js +4 -13
  80. package/dist/chart_types/xy_chart/rendering/line.js.map +1 -1
  81. package/dist/chart_types/xy_chart/rendering/point_style.js +2 -4
  82. package/dist/chart_types/xy_chart/rendering/point_style.js.map +1 -1
  83. package/dist/chart_types/xy_chart/rendering/points.js +9 -24
  84. package/dist/chart_types/xy_chart/rendering/points.js.map +1 -1
  85. package/dist/chart_types/xy_chart/rendering/utils.js +20 -31
  86. package/dist/chart_types/xy_chart/rendering/utils.js.map +1 -1
  87. package/dist/chart_types/xy_chart/specs/axis.d.ts +2 -2
  88. package/dist/chart_types/xy_chart/specs/axis.d.ts.map +1 -1
  89. package/dist/chart_types/xy_chart/specs/axis.js +3 -3
  90. package/dist/chart_types/xy_chart/specs/axis.js.map +1 -1
  91. package/dist/chart_types/xy_chart/state/selectors/compute_annotations.js +10 -12
  92. package/dist/chart_types/xy_chart/state/selectors/compute_annotations.js.map +1 -1
  93. package/dist/chart_types/xy_chart/state/selectors/compute_axes_geometries.js +5 -20
  94. package/dist/chart_types/xy_chart/state/selectors/compute_axes_geometries.js.map +1 -1
  95. package/dist/chart_types/xy_chart/state/selectors/compute_axis_ticks_dimensions.js +75 -40
  96. package/dist/chart_types/xy_chart/state/selectors/compute_axis_ticks_dimensions.js.map +1 -1
  97. package/dist/chart_types/xy_chart/state/selectors/compute_chart_dimensions.js +2 -4
  98. package/dist/chart_types/xy_chart/state/selectors/compute_chart_dimensions.js.map +1 -1
  99. package/dist/chart_types/xy_chart/state/selectors/compute_legend.js +1 -1
  100. package/dist/chart_types/xy_chart/state/selectors/compute_legend.js.map +1 -1
  101. package/dist/chart_types/xy_chart/state/selectors/compute_series_domains.js +2 -4
  102. package/dist/chart_types/xy_chart/state/selectors/compute_series_domains.js.map +1 -1
  103. package/dist/chart_types/xy_chart/state/selectors/compute_series_geometries.js +4 -4
  104. package/dist/chart_types/xy_chart/state/selectors/compute_series_geometries.js.map +1 -1
  105. package/dist/chart_types/xy_chart/state/selectors/get_axis_styles.js +4 -15
  106. package/dist/chart_types/xy_chart/state/selectors/get_axis_styles.js.map +1 -1
  107. package/dist/chart_types/xy_chart/state/selectors/get_brush_area.js +2 -3
  108. package/dist/chart_types/xy_chart/state/selectors/get_brush_area.js.map +1 -1
  109. package/dist/chart_types/xy_chart/state/selectors/get_chart_type_description.js +1 -2
  110. package/dist/chart_types/xy_chart/state/selectors/get_chart_type_description.js.map +1 -1
  111. package/dist/chart_types/xy_chart/state/selectors/get_cursor_band.js +6 -6
  112. package/dist/chart_types/xy_chart/state/selectors/get_cursor_band.js.map +1 -1
  113. package/dist/chart_types/xy_chart/state/selectors/get_debug_state.js +1 -1
  114. package/dist/chart_types/xy_chart/state/selectors/get_debug_state.js.map +1 -1
  115. package/dist/chart_types/xy_chart/state/selectors/get_elements_at_cursor_pos.js +1 -1
  116. package/dist/chart_types/xy_chart/state/selectors/get_elements_at_cursor_pos.js.map +1 -1
  117. package/dist/chart_types/xy_chart/state/selectors/get_grid_lines.js +2 -4
  118. package/dist/chart_types/xy_chart/state/selectors/get_grid_lines.js.map +1 -1
  119. package/dist/chart_types/xy_chart/state/selectors/get_projected_scaled_values.js +1 -1
  120. package/dist/chart_types/xy_chart/state/selectors/get_projected_scaled_values.js.map +1 -1
  121. package/dist/chart_types/xy_chart/state/selectors/get_series_color_map.js.map +1 -1
  122. package/dist/chart_types/xy_chart/state/selectors/get_specs.js +2 -1
  123. package/dist/chart_types/xy_chart/state/selectors/get_specs.js.map +1 -1
  124. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_position.js +2 -3
  125. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_position.js.map +1 -1
  126. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_snap.js +1 -4
  127. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_snap.js.map +1 -1
  128. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_values_highlighted_geoms.js +5 -7
  129. package/dist/chart_types/xy_chart/state/selectors/get_tooltip_values_highlighted_geoms.js.map +1 -1
  130. package/dist/chart_types/xy_chart/state/selectors/is_brush_available.js +1 -6
  131. package/dist/chart_types/xy_chart/state/selectors/is_brush_available.js.map +1 -1
  132. package/dist/chart_types/xy_chart/state/selectors/is_brushing.js +1 -6
  133. package/dist/chart_types/xy_chart/state/selectors/is_brushing.js.map +1 -1
  134. package/dist/chart_types/xy_chart/state/selectors/is_tooltip_snap_enabled.js +1 -4
  135. package/dist/chart_types/xy_chart/state/selectors/is_tooltip_snap_enabled.js.map +1 -1
  136. package/dist/chart_types/xy_chart/state/selectors/is_tooltip_visible.js +2 -2
  137. package/dist/chart_types/xy_chart/state/selectors/on_brush_end_caller.js +10 -6
  138. package/dist/chart_types/xy_chart/state/selectors/on_brush_end_caller.js.map +1 -1
  139. package/dist/chart_types/xy_chart/state/selectors/on_click_caller.js +4 -5
  140. package/dist/chart_types/xy_chart/state/selectors/on_click_caller.js.map +1 -1
  141. package/dist/chart_types/xy_chart/state/selectors/on_element_out_caller.js +7 -12
  142. package/dist/chart_types/xy_chart/state/selectors/on_element_out_caller.js.map +1 -1
  143. package/dist/chart_types/xy_chart/state/selectors/on_element_over_caller.js +10 -16
  144. package/dist/chart_types/xy_chart/state/selectors/on_element_over_caller.js.map +1 -1
  145. package/dist/chart_types/xy_chart/state/selectors/on_pointer_move_caller.js +10 -33
  146. package/dist/chart_types/xy_chart/state/selectors/on_pointer_move_caller.js.map +1 -1
  147. package/dist/chart_types/xy_chart/state/selectors/visible_ticks.d.ts +2 -0
  148. package/dist/chart_types/xy_chart/state/selectors/visible_ticks.d.ts.map +1 -0
  149. package/dist/chart_types/xy_chart/state/selectors/visible_ticks.js +297 -0
  150. package/dist/chart_types/xy_chart/state/selectors/visible_ticks.js.map +1 -0
  151. package/dist/chart_types/xy_chart/state/utils/spec.js +5 -4
  152. package/dist/chart_types/xy_chart/state/utils/spec.js.map +1 -1
  153. package/dist/chart_types/xy_chart/state/utils/utils.js +32 -51
  154. package/dist/chart_types/xy_chart/state/utils/utils.js.map +1 -1
  155. package/dist/chart_types/xy_chart/tooltip/tooltip.js +3 -4
  156. package/dist/chart_types/xy_chart/tooltip/tooltip.js.map +1 -1
  157. package/dist/chart_types/xy_chart/utils/axis_utils.js +42 -131
  158. package/dist/chart_types/xy_chart/utils/axis_utils.js.map +1 -1
  159. package/dist/chart_types/xy_chart/utils/dimensions.js +27 -23
  160. package/dist/chart_types/xy_chart/utils/dimensions.js.map +1 -1
  161. package/dist/chart_types/xy_chart/utils/fill_series.js +3 -1
  162. package/dist/chart_types/xy_chart/utils/fill_series.js.map +1 -1
  163. package/dist/chart_types/xy_chart/utils/get_linear_ticks.d.ts +2 -0
  164. package/dist/chart_types/xy_chart/utils/get_linear_ticks.d.ts.map +1 -0
  165. package/dist/chart_types/xy_chart/utils/get_linear_ticks.js +99 -0
  166. package/dist/chart_types/xy_chart/utils/get_linear_ticks.js.map +1 -0
  167. package/dist/chart_types/xy_chart/utils/grid_lines.js +44 -29
  168. package/dist/chart_types/xy_chart/utils/grid_lines.js.map +1 -1
  169. package/dist/chart_types/xy_chart/utils/panel_utils.js +2 -3
  170. package/dist/chart_types/xy_chart/utils/panel_utils.js.map +1 -1
  171. package/dist/chart_types/xy_chart/utils/scales.js +1 -2
  172. package/dist/chart_types/xy_chart/utils/scales.js.map +1 -1
  173. package/dist/chart_types/xy_chart/utils/series.js +8 -12
  174. package/dist/chart_types/xy_chart/utils/series.js.map +1 -1
  175. package/dist/chart_types/xy_chart/utils/specs.d.ts +9 -3
  176. package/dist/chart_types/xy_chart/utils/specs.d.ts.map +1 -1
  177. package/dist/chart_types/xy_chart/utils/specs.js.map +1 -1
  178. package/dist/components/legend/legend.js.map +1 -1
  179. package/dist/components/legend/position_style.js +2 -2
  180. package/dist/components/legend/position_style.js.map +1 -1
  181. package/dist/components/legend/style_utils.js.map +1 -1
  182. package/dist/components/portal/tooltip_portal.js +1 -1
  183. package/dist/components/portal/tooltip_portal.js.map +1 -1
  184. package/dist/components/portal/utils.js +1 -1
  185. package/dist/components/portal/utils.js.map +1 -1
  186. package/dist/index.d.ts +2 -1
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +2 -3
  189. package/dist/index.js.map +1 -1
  190. package/dist/scales/constants.d.ts +4 -0
  191. package/dist/scales/constants.d.ts.map +1 -1
  192. package/dist/scales/constants.js +1 -0
  193. package/dist/scales/constants.js.map +1 -1
  194. package/dist/scales/index.d.ts +2 -2
  195. package/dist/scales/index.d.ts.map +1 -1
  196. package/dist/scales/index.js +1 -3
  197. package/dist/scales/index.js.map +1 -1
  198. package/dist/scales/scale_band.js +3 -16
  199. package/dist/scales/scale_band.js.map +1 -1
  200. package/dist/scales/scale_continuous.d.ts +1 -40
  201. package/dist/scales/scale_continuous.d.ts.map +1 -1
  202. package/dist/scales/scale_continuous.js +150 -225
  203. package/dist/scales/scale_continuous.js.map +1 -1
  204. package/dist/scales/types.d.ts +19 -1
  205. package/dist/scales/types.d.ts.map +1 -1
  206. package/dist/specs/constants.d.ts.map +1 -1
  207. package/dist/specs/constants.js +1 -1
  208. package/dist/specs/constants.js.map +1 -1
  209. package/dist/specs/settings.d.ts +4 -11
  210. package/dist/specs/settings.d.ts.map +1 -1
  211. package/dist/specs/settings.js +7 -14
  212. package/dist/specs/settings.js.map +1 -1
  213. package/dist/state/selectors/get_legend_size.js.map +1 -1
  214. package/dist/state/selectors/is_external_tooltip_visible.js +1 -1
  215. package/dist/state/selectors/is_external_tooltip_visible.js.map +1 -1
  216. package/dist/state/utils.js +3 -19
  217. package/dist/state/utils.js.map +1 -1
  218. package/dist/utils/bbox/canvas_text_bbox_calculator.js +0 -2
  219. package/dist/utils/bbox/canvas_text_bbox_calculator.js.map +1 -1
  220. package/dist/utils/common.d.ts.map +1 -1
  221. package/dist/utils/common.js +8 -34
  222. package/dist/utils/common.js.map +1 -1
  223. package/dist/utils/data/formatters.d.ts.map +1 -1
  224. package/dist/utils/data/formatters.js +3 -6
  225. package/dist/utils/data/formatters.js.map +1 -1
  226. package/dist/utils/series_sort.d.ts.map +1 -1
  227. package/dist/utils/series_sort.js +13 -21
  228. package/dist/utils/series_sort.js.map +1 -1
  229. package/dist/utils/themes/dark_theme.d.ts.map +1 -1
  230. package/dist/utils/themes/dark_theme.js +1 -0
  231. package/dist/utils/themes/dark_theme.js.map +1 -1
  232. package/dist/utils/themes/light_theme.d.ts.map +1 -1
  233. package/dist/utils/themes/light_theme.js +1 -0
  234. package/dist/utils/themes/light_theme.js.map +1 -1
  235. package/dist/utils/themes/merge_utils.d.ts +2 -2
  236. package/dist/utils/themes/merge_utils.d.ts.map +1 -1
  237. package/dist/utils/themes/merge_utils.js +3 -3
  238. package/dist/utils/themes/merge_utils.js.map +1 -1
  239. package/dist/utils/themes/theme.d.ts +1 -0
  240. package/dist/utils/themes/theme.d.ts.map +1 -1
  241. package/dist/utils/themes/theme.js.map +1 -1
  242. package/dist/utils/use_legend_action.d.ts +9 -0
  243. package/dist/utils/use_legend_action.d.ts.map +1 -0
  244. package/dist/utils/use_legend_action.js +15 -0
  245. package/dist/utils/use_legend_action.js.map +1 -0
  246. package/package.json +3 -2
  247. package/dist/chart_types/xy_chart/state/selectors/compute_grid_lines.d.ts +0 -2
  248. package/dist/chart_types/xy_chart/state/selectors/compute_grid_lines.d.ts.map +0 -1
  249. package/dist/chart_types/xy_chart/state/selectors/compute_grid_lines.js +0 -13
  250. package/dist/chart_types/xy_chart/state/selectors/compute_grid_lines.js.map +0 -1
  251. package/dist/chart_types/xy_chart/state/selectors/is_chart_animatable.d.ts +0 -2
  252. package/dist/chart_types/xy_chart/state/selectors/is_chart_animatable.d.ts.map +0 -1
  253. package/dist/chart_types/xy_chart/state/selectors/is_chart_animatable.js +0 -10
  254. package/dist/chart_types/xy_chart/state/selectors/is_chart_animatable.js.map +0 -1
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LOG_MIN_ABS_DOMAIN = exports.ScaleType = void 0;
4
4
  exports.ScaleType = Object.freeze({
5
+ LinearBinary: 'linear_binary',
5
6
  Linear: 'linear',
6
7
  Ordinal: 'ordinal',
7
8
  Log: 'log',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scales/constants.ts"],"names":[],"mappings":";;;AAca,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,QAAiB;IACzB,OAAO,EAAE,SAAkB;IAC3B,GAAG,EAAE,KAAc;IACnB,IAAI,EAAE,MAAe;IACrB,IAAI,EAAE,MAAe;IACrB,QAAQ,EAAE,UAAmB;IAC7B,QAAQ,EAAE,UAAmB;IAC7B,SAAS,EAAE,WAAoB;CAChC,CAAC,CAAC;AASU,QAAA,kBAAkB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/scales/constants.ts"],"names":[],"mappings":";;;AAca,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAIrC,YAAY,EAAE,eAAwB;IACtC,MAAM,EAAE,QAAiB;IACzB,OAAO,EAAE,SAAkB;IAC3B,GAAG,EAAE,KAAc;IACnB,IAAI,EAAE,MAAe;IACrB,IAAI,EAAE,MAAe;IACrB,QAAQ,EAAE,UAAmB;IAC7B,QAAQ,EAAE,UAAmB;IAC7B,SAAS,EAAE,WAAoB;CAChC,CAAC,CAAC;AASU,QAAA,kBAAkB,GAAG,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { ScaleType } from './constants';
2
2
  /** @public */
3
- export declare type ScaleContinuousType = typeof ScaleType.Linear | typeof ScaleType.Time | typeof ScaleType.Log | typeof ScaleType.Sqrt;
3
+ export declare type ScaleContinuousType = typeof ScaleType.LinearBinary | typeof ScaleType.Linear | typeof ScaleType.Time | typeof ScaleType.Log | typeof ScaleType.Sqrt;
4
4
  /** @public */
5
5
  export declare type ScaleOrdinalType = typeof ScaleType.Ordinal;
6
6
  /** @public */
7
7
  export declare type ScaleBandType = ScaleOrdinalType;
8
- export { LogBase, LogScaleOptions } from './scale_continuous';
8
+ export { LogScaleOptions } from './types';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scales/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc;AACd,oBAAY,mBAAmB,GAC3B,OAAO,SAAS,CAAC,MAAM,GACvB,OAAO,SAAS,CAAC,IAAI,GACrB,OAAO,SAAS,CAAC,GAAG,GACpB,OAAO,SAAS,CAAC,IAAI,CAAC;AAE1B,cAAc;AACd,oBAAY,gBAAgB,GAAG,OAAO,SAAS,CAAC,OAAO,CAAC;AAExD,cAAc;AACd,oBAAY,aAAa,GAAG,gBAAgB,CAAC;AAiD7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scales/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc;AACd,oBAAY,mBAAmB,GAC3B,OAAO,SAAS,CAAC,YAAY,GAC7B,OAAO,SAAS,CAAC,MAAM,GACvB,OAAO,SAAS,CAAC,IAAI,GACrB,OAAO,SAAS,CAAC,GAAG,GACpB,OAAO,SAAS,CAAC,IAAI,CAAC;AAE1B,cAAc;AACd,oBAAY,gBAAgB,GAAG,OAAO,SAAS,CAAC,OAAO,CAAC;AAExD,cAAc;AACd,oBAAY,aAAa,GAAG,gBAAgB,CAAC;AA+C7C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LogBase = exports.ScaleContinuous = exports.ScaleBand = void 0;
3
+ exports.ScaleContinuous = exports.ScaleBand = void 0;
4
4
  var scale_band_1 = require("./scale_band");
5
5
  Object.defineProperty(exports, "ScaleBand", { enumerable: true, get: function () { return scale_band_1.ScaleBand; } });
6
6
  var scale_continuous_1 = require("./scale_continuous");
7
7
  Object.defineProperty(exports, "ScaleContinuous", { enumerable: true, get: function () { return scale_continuous_1.ScaleContinuous; } });
8
- var scale_continuous_2 = require("./scale_continuous");
9
- Object.defineProperty(exports, "LogBase", { enumerable: true, get: function () { return scale_continuous_2.LogBase; } });
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scales/index.ts"],"names":[],"mappings":";;;AAmEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,uDAA8D;AAArD,2GAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scales/index.ts"],"names":[],"mappings":";;;AAkEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
@@ -55,25 +55,12 @@ var ScaleBand = (function () {
55
55
  .range(inputDomain.length > 0 ? __spreadArray([], __read(new Set(inputDomain)), false) : [undefined]);
56
56
  this.minInterval = 0;
57
57
  }
58
- ScaleBand.prototype.getScaledValue = function (value) {
59
- var scaleValue = this.d3Scale((0, common_1.stringifyNullsUndefined)(value));
60
- if (scaleValue === undefined || isNaN(scaleValue)) {
61
- return null;
62
- }
63
- return scaleValue;
64
- };
65
- ScaleBand.prototype.scaleOrThrow = function (value) {
66
- var scaleValue = this.scale(value);
67
- if (scaleValue === null) {
68
- throw new Error("Unable to scale value: " + scaleValue + ")");
69
- }
70
- return scaleValue;
71
- };
72
58
  ScaleBand.prototype.scale = function (value) {
73
- return this.getScaledValue(value);
59
+ var scaleValue = this.d3Scale((0, common_1.stringifyNullsUndefined)(value));
60
+ return typeof scaleValue === 'number' && Number.isFinite(scaleValue) ? scaleValue : NaN;
74
61
  };
75
62
  ScaleBand.prototype.pureScale = function (value) {
76
- return this.getScaledValue(value);
63
+ return this.scale(value);
77
64
  };
78
65
  ScaleBand.prototype.ticks = function () {
79
66
  return this.domain;
@@ -1 +1 @@
1
- {"version":3,"file":"scale_band.js","sourceRoot":"","sources":["../../src/scales/scale_band.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scale_band.js","sourceRoot":"","sources":["../../src/scales/scale_band.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,2 @@
1
- import { $Values } from 'utility-types';
2
- /** @public */
3
- export declare const LogBase: Readonly<{
4
- /**
5
- * log base `10`
6
- */
7
- Common: "common";
8
- /**
9
- * log base `2`
10
- */
11
- Binary: "binary";
12
- /**
13
- * log base `e` (aka ln)
14
- */
15
- Natural: "natural";
16
- }>;
17
- /**
18
- * Log bases
19
- * @public
20
- */
21
- export declare type LogBase = $Values<typeof LogBase>;
22
- /**
23
- * Options specific to log scales
24
- * @public
25
- */
26
- export interface LogScaleOptions {
27
- /**
28
- * Min value to render on log scale
29
- *
30
- * Defaults to min value of domain, or LOG_MIN_ABS_DOMAIN if mixed polarity
31
- */
32
- logMinLimit?: number;
33
- /**
34
- * Base for log scale
35
- *
36
- * @defaultValue `common` {@link (LogBase:type) | LogBase.Common}
37
- * (i.e. log base 10)
38
- */
39
- logBase?: LogBase;
40
- }
1
+ export {};
41
2
  //# sourceMappingURL=scale_continuous.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scale_continuous.d.ts","sourceRoot":"","sources":["../../src/scales/scale_continuous.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAoIlD,cAAc;AACd,eAAO,MAAM,OAAO;IAClB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;EAEH,CAAC;AACH;;;GAGG;AACH,oBAAY,OAAO,GAAG,OAAO,CAAC,OAAO,OAAO,CAAC,CAAC;AAmB9C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"scale_continuous.d.ts","sourceRoot":"","sources":["../../src/scales/scale_continuous.ts"],"names":[],"mappings":""}
@@ -15,11 +15,12 @@ var __read = (this && this.__read) || function (o, n) {
15
15
  }
16
16
  return ar;
17
17
  };
18
- var _a, _b;
18
+ var _a;
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.getDomainPolarity = exports.ScaleContinuous = exports.logBaseMap = exports.LogBase = exports.limitLogScaleDomain = void 0;
20
+ exports.limitLogScaleDomain = exports.ScaleContinuous = void 0;
21
21
  var d3_array_1 = require("d3-array");
22
22
  var d3_scale_1 = require("d3-scale");
23
+ var get_linear_ticks_1 = require("../chart_types/xy_chart/utils/get_linear_ticks");
23
24
  var screenspace_marker_scale_compressor_1 = require("../solvers/screenspace_marker_scale_compressor");
24
25
  var common_1 = require("../utils/common");
25
26
  var date_time_1 = require("../utils/data/date_time");
@@ -30,94 +31,6 @@ var SCALES = (_a = {},
30
31
  _a[constants_1.ScaleType.Sqrt] = d3_scale_1.scaleSqrt,
31
32
  _a[constants_1.ScaleType.Time] = d3_scale_1.scaleUtc,
32
33
  _a);
33
- var isUnitRange = function (_a) {
34
- var _b = __read(_a, 2), r1 = _b[0], r2 = _b[1];
35
- return r1 === 0 && r2 === 1;
36
- };
37
- function limitLogScaleDomain(_a, logMinLimit) {
38
- var _b = __read(_a, 2), min = _b[0], max = _b[1];
39
- var absLimit = logMinLimit !== undefined ? Math.abs(logMinLimit) : undefined;
40
- if (absLimit !== undefined && absLimit > 0) {
41
- if (min > 0 && min < absLimit) {
42
- if (max > absLimit) {
43
- return [absLimit, max];
44
- }
45
- return [absLimit, absLimit];
46
- }
47
- if (max < 0 && max > -absLimit) {
48
- if (min < -absLimit) {
49
- return [min, -absLimit];
50
- }
51
- return [-absLimit, -absLimit];
52
- }
53
- }
54
- var fallbackLimit = absLimit || constants_1.LOG_MIN_ABS_DOMAIN;
55
- if (min === 0) {
56
- if (max > 0) {
57
- return [fallbackLimit, max];
58
- }
59
- if (max < 0) {
60
- return [-fallbackLimit, max];
61
- }
62
- return [fallbackLimit, fallbackLimit];
63
- }
64
- if (max === 0) {
65
- if (min > 0) {
66
- return [min, fallbackLimit];
67
- }
68
- if (min < 0) {
69
- return [min, -fallbackLimit];
70
- }
71
- return [fallbackLimit, fallbackLimit];
72
- }
73
- if (min < 0 && max > 0) {
74
- var isD0Min = Math.abs(max) - Math.abs(min) >= 0;
75
- if (isD0Min) {
76
- return [fallbackLimit, max];
77
- }
78
- return [min, -fallbackLimit];
79
- }
80
- if (min > 0 && max < 0) {
81
- var isD0Max = Math.abs(min) - Math.abs(max) >= 0;
82
- if (isD0Max) {
83
- return [min, fallbackLimit];
84
- }
85
- return [-fallbackLimit, max];
86
- }
87
- return [min, max];
88
- }
89
- exports.limitLogScaleDomain = limitLogScaleDomain;
90
- function getPixelPaddedDomain(chartHeight, domain, desiredPixelPadding, constrainDomainPadding, intercept) {
91
- if (intercept === void 0) { intercept = 0; }
92
- var inverted = domain[1] < domain[0];
93
- var orderedDomain = inverted ? domain.slice().reverse() : domain;
94
- var scaleMultiplier = (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)(orderedDomain, [2 * desiredPixelPadding, 2 * desiredPixelPadding], chartHeight).scaleMultiplier;
95
- var paddedDomainLo = orderedDomain[0] - desiredPixelPadding / scaleMultiplier;
96
- var paddedDomainHigh = orderedDomain[1] + desiredPixelPadding / scaleMultiplier;
97
- if (constrainDomainPadding) {
98
- if (paddedDomainLo < intercept && orderedDomain[0] >= intercept) {
99
- var scaleMultiplier_1 = (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)([intercept, orderedDomain[1]], [0, 2 * desiredPixelPadding], chartHeight).scaleMultiplier;
100
- paddedDomainLo = intercept;
101
- paddedDomainHigh = orderedDomain[1] + desiredPixelPadding / scaleMultiplier_1;
102
- }
103
- else if (paddedDomainHigh > 0 && orderedDomain[1] <= 0) {
104
- var scaleMultiplier_2 = (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)([orderedDomain[0], intercept], [2 * desiredPixelPadding, 0], chartHeight).scaleMultiplier;
105
- paddedDomainLo = orderedDomain[0] - desiredPixelPadding / scaleMultiplier_2;
106
- paddedDomainHigh = intercept;
107
- }
108
- }
109
- return inverted ? [paddedDomainHigh, paddedDomainLo] : [paddedDomainLo, paddedDomainHigh];
110
- }
111
- exports.LogBase = Object.freeze({
112
- Common: 'common',
113
- Binary: 'binary',
114
- Natural: 'natural',
115
- });
116
- exports.logBaseMap = (_b = {},
117
- _b[exports.LogBase.Common] = 10,
118
- _b[exports.LogBase.Binary] = 2,
119
- _b[exports.LogBase.Natural] = Math.E,
120
- _b);
121
34
  var defaultScaleOptions = {
122
35
  bandwidth: 0,
123
36
  minInterval: 0,
@@ -129,140 +42,110 @@ var defaultScaleOptions = {
129
42
  desiredTickCount: 10,
130
43
  isSingleValueHistogram: false,
131
44
  integersOnly: false,
132
- logBase: exports.LogBase.Common,
45
+ logBase: 10,
46
+ logMinLimit: NaN,
47
+ linearBase: 10,
48
+ };
49
+ var isUnitRange = function (_a) {
50
+ var _b = __read(_a, 2), r1 = _b[0], r2 = _b[1];
51
+ return r1 === 0 && r2 === 1;
133
52
  };
134
53
  var ScaleContinuous = (function () {
135
54
  function ScaleContinuous(_a, options) {
136
- var _this = this;
137
- var _b = _a.type, type = _b === void 0 ? constants_1.ScaleType.Linear : _b, _c = _a.domain, domain = _c === void 0 ? [0, 1] : _c, _d = _a.range, range = _d === void 0 ? [0, 1] : _d, _e = _a.nice, nice = _e === void 0 ? false : _e;
138
- var _f = (0, common_1.mergePartial)(defaultScaleOptions, options, { mergeOptionalPartialValues: true }), bandwidth = _f.bandwidth, minInterval = _f.minInterval, timeZone = _f.timeZone, totalBarsInCluster = _f.totalBarsInCluster, barsPadding = _f.barsPadding, desiredTickCount = _f.desiredTickCount, isSingleValueHistogram = _f.isSingleValueHistogram, integersOnly = _f.integersOnly, logBase = _f.logBase, logMinLimit = _f.logMinLimit, domainPixelPadding = _f.domainPixelPadding, constrainDomainPadding = _f.constrainDomainPadding;
139
- this.d3Scale = SCALES[type]();
140
- if (type === constants_1.ScaleType.Log) {
141
- this.d3Scale.base(exports.logBaseMap[logBase]);
142
- this.domain = limitLogScaleDomain(domain, logMinLimit);
143
- }
144
- else {
145
- this.domain = domain;
146
- }
147
- this.d3Scale.domain(this.domain);
148
- if (nice && type !== constants_1.ScaleType.Time) {
149
- this.d3Scale.domain(this.domain).nice(desiredTickCount);
150
- this.domain = this.d3Scale.domain();
151
- }
152
- var safeBarPadding = (0, common_1.clamp)(barsPadding, 0, 1);
153
- this.barsPadding = safeBarPadding;
154
- this.bandwidth = bandwidth * (1 - safeBarPadding);
155
- this.bandwidthPadding = bandwidth * safeBarPadding;
156
- this.d3Scale.range(range);
157
- this.step = this.bandwidth + this.barsPadding + this.bandwidthPadding;
55
+ var _b = _a.type, scaleType = _b === void 0 ? constants_1.ScaleType.Linear : _b, inputDomain = _a.domain, range = _a.range, _c = _a.nice, nice = _c === void 0 ? false : _c;
56
+ var isBinary = scaleType === constants_1.ScaleType.LinearBinary;
57
+ var type = isBinary ? constants_1.ScaleType.Linear : scaleType;
58
+ var scaleOptions = (0, common_1.mergePartial)(defaultScaleOptions, options);
59
+ var min = inputDomain.reduce(function (p, n) { return Math.min(p, n); }, Infinity);
60
+ var max = inputDomain.reduce(function (p, n) { return Math.max(p, n); }, -Infinity);
61
+ var properLogScale = type === constants_1.ScaleType.Log && min < max;
62
+ var dataDomain = properLogScale ? limitLogScaleDomain([min, max], scaleOptions.logMinLimit) : inputDomain;
63
+ var barsPadding = (0, common_1.clamp)(scaleOptions.barsPadding, 0, 1);
64
+ var isNice = nice && type !== constants_1.ScaleType.Time;
65
+ var totalRange = Math.abs(range[1] - range[0]);
66
+ var pixelPadFits = 0 < scaleOptions.domainPixelPadding && scaleOptions.domainPixelPadding * 2 < totalRange;
67
+ var isPixelPadded = pixelPadFits && type !== constants_1.ScaleType.Time && !isUnitRange(range);
68
+ var minInterval = Math.abs(scaleOptions.minInterval);
69
+ var bandwidth = scaleOptions.bandwidth * (1 - barsPadding);
70
+ var bandwidthPadding = scaleOptions.bandwidth * barsPadding;
71
+ this.barsPadding = barsPadding;
72
+ this.bandwidth = bandwidth;
73
+ this.bandwidthPadding = bandwidthPadding;
158
74
  this.type = type;
159
75
  this.range = range;
76
+ this.linearBase = isBinary ? 2 : scaleOptions.linearBase;
160
77
  this.minInterval = minInterval;
161
- this.isInverted = this.domain[0] > this.domain[1];
162
- this.timeZone = timeZone;
163
- this.totalBarsInCluster = totalBarsInCluster;
164
- this.isSingleValueHistogram = isSingleValueHistogram;
165
- var _g = __read(this.range, 2), r1 = _g[0], r2 = _g[1];
166
- var totalRange = Math.abs(r1 - r2);
167
- if (type !== constants_1.ScaleType.Time && domainPixelPadding && !isUnitRange(range) && domainPixelPadding * 2 < totalRange) {
168
- var newDomain = getPixelPaddedDomain(totalRange, this.domain, domainPixelPadding, constrainDomainPadding);
169
- if (nice) {
170
- this.d3Scale.domain(newDomain).nice(desiredTickCount);
171
- this.domain = this.d3Scale.domain();
172
- }
173
- else {
174
- this.domain = newDomain;
175
- this.d3Scale.domain(newDomain);
176
- }
177
- }
178
- if (type === constants_1.ScaleType.Time) {
179
- var startDomain = (0, date_time_1.getMomentWithTz)(this.domain[0], this.timeZone);
180
- var endDomain = (0, date_time_1.getMomentWithTz)(this.domain[1], this.timeZone);
181
- var offset_1 = startDomain.utcOffset();
182
- var shiftedDomainMin = startDomain.add(offset_1, 'minutes').valueOf();
183
- var shiftedDomainMax = endDomain.add(offset_1, 'minutes').valueOf();
184
- var tzShiftedScale = (0, d3_scale_1.scaleUtc)().domain([shiftedDomainMin, shiftedDomainMax]);
185
- var rawTicks = tzShiftedScale.ticks(desiredTickCount);
186
- var timePerTick = (shiftedDomainMax - shiftedDomainMin) / rawTicks.length;
187
- var hasHourTicks_1 = timePerTick < 1000 * 60 * 60 * 12;
188
- this.tickValues = rawTicks.map(function (d) {
189
- var currentDateTime = (0, date_time_1.getMomentWithTz)(d, _this.timeZone);
190
- var currentOffset = hasHourTicks_1 ? offset_1 : currentDateTime.utcOffset();
191
- return currentDateTime.subtract(currentOffset, 'minutes').valueOf();
192
- });
193
- }
194
- else {
195
- if (minInterval > 0 && bandwidth > 0) {
196
- var intervalCount = Math.floor((this.domain[1] - this.domain[0]) / this.minInterval);
197
- this.tickValues = new Array(intervalCount + 1).fill(0).map(function (_, i) { return _this.domain[0] + i * _this.minInterval; });
78
+ this.step = bandwidth + barsPadding + bandwidthPadding;
79
+ this.timeZone = scaleOptions.timeZone;
80
+ this.isInverted = dataDomain[0] > dataDomain[1];
81
+ this.totalBarsInCluster = scaleOptions.totalBarsInCluster;
82
+ this.isSingleValueHistogram = scaleOptions.isSingleValueHistogram;
83
+ var d3Scale = SCALES[type]();
84
+ d3Scale.domain(dataDomain);
85
+ d3Scale.range(range);
86
+ if (properLogScale)
87
+ d3Scale.base(scaleOptions.logBase);
88
+ if (isNice) {
89
+ if (type === constants_1.ScaleType.Linear) {
90
+ (0, get_linear_ticks_1.getNiceLinearTicks)(d3Scale, scaleOptions.desiredTickCount, this.linearBase);
198
91
  }
199
92
  else {
200
- this.tickValues = this.getTicks(desiredTickCount, integersOnly);
93
+ d3Scale
94
+ .domain(dataDomain)
95
+ .nice(scaleOptions.desiredTickCount);
201
96
  }
202
97
  }
98
+ var niceDomain = isNice ? d3Scale.domain() : dataDomain;
99
+ var paddedDomain = isPixelPadded
100
+ ? getPixelPaddedDomain(totalRange, niceDomain, scaleOptions.domainPixelPadding, scaleOptions.constrainDomainPadding)
101
+ : niceDomain;
102
+ d3Scale.domain(paddedDomain);
103
+ if (isPixelPadded && isNice)
104
+ d3Scale.nice(scaleOptions.desiredTickCount);
105
+ var nicePaddedDomain = isPixelPadded && isNice ? d3Scale.domain() : paddedDomain;
106
+ this.tickValues =
107
+ type === constants_1.ScaleType.Time
108
+ ? getTimeTicks(scaleOptions.desiredTickCount, scaleOptions.timeZone, nicePaddedDomain)
109
+ : scaleOptions.minInterval <= 0 || scaleOptions.bandwidth <= 0
110
+ ? this.type === constants_1.ScaleType.Linear
111
+ ? (0, get_linear_ticks_1.getLinearTicks)(nicePaddedDomain[0], nicePaddedDomain[nicePaddedDomain.length - 1], scaleOptions.desiredTickCount, this.linearBase)
112
+ : d3Scale.ticks(scaleOptions.desiredTickCount)
113
+ : new Array(Math.floor((nicePaddedDomain[1] - nicePaddedDomain[0]) / minInterval) + 1)
114
+ .fill(0)
115
+ .map(function (_, i) { return nicePaddedDomain[0] + i * minInterval; });
116
+ this.domain = nicePaddedDomain;
117
+ this.project = function (d) { return d3Scale(d); };
118
+ this.inverseProject = function (d) { return d3Scale.invert(d); };
203
119
  }
204
- ScaleContinuous.prototype.getScaledValue = function (value) {
205
- if (typeof value !== 'number' || isNaN(value)) {
206
- return null;
207
- }
208
- var scaledValue = this.d3Scale(value);
209
- return isNaN(scaledValue) ? null : scaledValue;
210
- };
211
- ScaleContinuous.prototype.getTicks = function (ticks, integersOnly) {
212
- return integersOnly
213
- ? this.d3Scale
214
- .ticks(ticks)
215
- .filter(function (item) { return typeof item === 'number' && item % 1 === 0; })
216
- .map(function (item) { return parseInt(item.toFixed(0), 10); })
217
- : this.d3Scale.ticks(ticks);
218
- };
219
- ScaleContinuous.prototype.scaleOrThrow = function (value) {
220
- var scaleValue = this.scale(value);
221
- if (scaleValue === null) {
222
- throw new Error("Unable to scale value: " + scaleValue + ")");
223
- }
224
- return scaleValue;
225
- };
226
120
  ScaleContinuous.prototype.scale = function (value) {
227
- var scaledValue = this.getScaledValue(value);
228
- return scaledValue === null ? null : scaledValue + (this.bandwidthPadding / 2) * this.totalBarsInCluster;
121
+ return typeof value === 'number'
122
+ ? this.project(value) + (this.bandwidthPadding / 2) * this.totalBarsInCluster
123
+ : NaN;
229
124
  };
230
125
  ScaleContinuous.prototype.pureScale = function (value) {
231
- if (this.bandwidth === 0) {
232
- return this.getScaledValue(value);
233
- }
234
- if (typeof value !== 'number' || isNaN(value)) {
235
- return null;
236
- }
237
- return this.getScaledValue(value + this.minInterval / 2);
126
+ return typeof value === 'number' ? this.project(this.bandwidth === 0 ? value : value + this.minInterval / 2) : NaN;
238
127
  };
239
128
  ScaleContinuous.prototype.ticks = function () {
240
129
  return this.tickValues;
241
130
  };
242
131
  ScaleContinuous.prototype.invert = function (value) {
243
- var invertedValue = this.d3Scale.invert(value);
244
- if (this.type === constants_1.ScaleType.Time) {
245
- invertedValue = (0, date_time_1.getMomentWithTz)(invertedValue, this.timeZone).valueOf();
246
- }
247
- return invertedValue;
132
+ var invertedValue = this.inverseProject(value);
133
+ return this.type === constants_1.ScaleType.Time
134
+ ? (0, date_time_1.getMomentWithTz)(invertedValue, this.timeZone).valueOf()
135
+ : Number(invertedValue);
248
136
  };
249
137
  ScaleContinuous.prototype.invertWithStep = function (value, data) {
250
138
  if (data.length === 0) {
251
- return { value: NaN, withinBandwidth: false };
139
+ return { withinBandwidth: false, value: NaN };
252
140
  }
253
141
  var invertedValue = this.invert(value);
254
142
  var bisectValue = this.bandwidth === 0 ? invertedValue + this.minInterval / 2 : invertedValue;
255
143
  var leftIndex = (0, d3_array_1.bisectLeft)(data, bisectValue);
256
144
  if (leftIndex === 0) {
257
- if (invertedValue < data[0]) {
258
- return {
259
- value: data[0] - this.minInterval * Math.ceil((data[0] - invertedValue) / this.minInterval),
260
- withinBandwidth: false,
261
- };
262
- }
145
+ var withinBandwidth_1 = invertedValue >= data[0];
263
146
  return {
264
- value: data[0],
265
- withinBandwidth: true,
147
+ withinBandwidth: withinBandwidth_1,
148
+ value: data[0] + (withinBandwidth_1 ? 0 : -this.minInterval * Math.ceil((data[0] - invertedValue) / this.minInterval)),
266
149
  };
267
150
  }
268
151
  var currentValue = data[leftIndex - 1];
@@ -271,48 +154,90 @@ var ScaleContinuous = (function () {
271
154
  var nextDiff = Math.abs(nextValue - invertedValue);
272
155
  var prevDiff = Math.abs(invertedValue - currentValue);
273
156
  return {
274
- value: nextDiff <= prevDiff ? nextValue : currentValue,
275
- withinBandwidth: true,
276
- };
277
- }
278
- if (invertedValue - currentValue <= this.minInterval) {
279
- return {
280
- value: currentValue,
281
157
  withinBandwidth: true,
158
+ value: nextDiff <= prevDiff ? nextValue : currentValue,
282
159
  };
283
160
  }
161
+ var withinBandwidth = invertedValue - currentValue <= this.minInterval;
284
162
  return {
285
- value: currentValue + this.minInterval * Math.floor((invertedValue - currentValue) / this.minInterval),
286
- withinBandwidth: false,
163
+ withinBandwidth: withinBandwidth,
164
+ value: currentValue +
165
+ (withinBandwidth ? 0 : this.minInterval * Math.floor((invertedValue - currentValue) / this.minInterval)),
287
166
  };
288
167
  };
289
168
  ScaleContinuous.prototype.isSingleValue = function () {
290
- if (this.isSingleValueHistogram) {
291
- return true;
292
- }
293
- if (this.domain.length < 2) {
294
- return true;
295
- }
296
- var min = this.domain[0];
297
- var max = this.domain[this.domain.length - 1];
298
- return max === min;
169
+ return this.isSingleValueHistogram || isDegenerateDomain(this.domain);
299
170
  };
300
171
  ScaleContinuous.prototype.isValueInDomain = function (value) {
301
- return value >= this.domain[0] && value <= this.domain[1];
172
+ return this.domain[0] <= value && value <= this.domain[1];
302
173
  };
303
174
  ScaleContinuous.prototype.handleDomainPadding = function () { };
304
175
  return ScaleContinuous;
305
176
  }());
306
177
  exports.ScaleContinuous = ScaleContinuous;
307
- function getDomainPolarity(domain) {
308
- var _a = __read(domain, 2), min = _a[0], max = _a[1];
309
- if (min >= 0 && max >= 0) {
310
- return 1;
311
- }
312
- if (min <= 0 && max <= 0) {
313
- return -1;
314
- }
315
- return 0;
178
+ function getTimeTicks(desiredTickCount, timeZone, domain) {
179
+ var startDomain = (0, date_time_1.getMomentWithTz)(domain[0], timeZone);
180
+ var endDomain = (0, date_time_1.getMomentWithTz)(domain[1], timeZone);
181
+ var offset = startDomain.utcOffset();
182
+ var shiftedDomainMin = startDomain.add(offset, 'minutes').valueOf();
183
+ var shiftedDomainMax = endDomain.add(offset, 'minutes').valueOf();
184
+ var tzShiftedScale = (0, d3_scale_1.scaleUtc)().domain([shiftedDomainMin, shiftedDomainMax]);
185
+ var rawTicks = tzShiftedScale.ticks(desiredTickCount);
186
+ var timePerTick = (shiftedDomainMax - shiftedDomainMin) / rawTicks.length;
187
+ var hasHourTicks = timePerTick < 1000 * 60 * 60 * 12;
188
+ return rawTicks.map(function (d) {
189
+ var currentDateTime = (0, date_time_1.getMomentWithTz)(d, timeZone);
190
+ var currentOffset = hasHourTicks ? offset : currentDateTime.utcOffset();
191
+ return currentDateTime.subtract(currentOffset, 'minutes').valueOf();
192
+ });
193
+ }
194
+ function isDegenerateDomain(domain) {
195
+ return domain.every(function (v) { return v === domain[0]; });
196
+ }
197
+ function limitLogScaleDomain(_a, logMinLimit) {
198
+ var _b = __read(_a, 2), min = _b[0], max = _b[1];
199
+ var absLimit = Math.abs(logMinLimit);
200
+ var fallback = absLimit || constants_1.LOG_MIN_ABS_DOMAIN;
201
+ if (absLimit > 0 && min > 0 && min < absLimit)
202
+ return max > absLimit ? [absLimit, max] : [absLimit, absLimit];
203
+ if (absLimit > 0 && max < 0 && max > -absLimit)
204
+ return min < -absLimit ? [min, -absLimit] : [-absLimit, -absLimit];
205
+ if (min === 0)
206
+ return max > 0 ? [fallback, max] : max < 0 ? [-fallback, max] : [fallback, fallback];
207
+ if (max === 0)
208
+ return min > 0 ? [min, fallback] : min < 0 ? [min, -fallback] : [fallback, fallback];
209
+ if (min < 0 && max > 0)
210
+ return Math.abs(max) >= Math.abs(min) ? [fallback, max] : [min, -fallback];
211
+ if (min > 0 && max < 0)
212
+ return Math.abs(min) >= Math.abs(max) ? [min, fallback] : [-fallback, max];
213
+ return [min, max];
214
+ }
215
+ exports.limitLogScaleDomain = limitLogScaleDomain;
216
+ function getPixelPaddedDomain(chartHeight, domain, desiredPixelPadding, constrainDomainPadding, intercept) {
217
+ if (intercept === void 0) { intercept = 0; }
218
+ var inverted = domain[1] < domain[0];
219
+ var orderedDomain = inverted ? [domain[1], domain[0]] : domain;
220
+ var scaleMultiplier = (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)(orderedDomain, [2 * desiredPixelPadding, 2 * desiredPixelPadding], chartHeight).scaleMultiplier;
221
+ var baselinePaddedDomainLo = orderedDomain[0] - desiredPixelPadding / scaleMultiplier;
222
+ var baselinePaddedDomainHigh = orderedDomain[1] + desiredPixelPadding / scaleMultiplier;
223
+ var crossBelow = constrainDomainPadding && baselinePaddedDomainLo < intercept && orderedDomain[0] >= intercept;
224
+ var crossAbove = constrainDomainPadding && baselinePaddedDomainHigh > 0 && orderedDomain[1] <= 0;
225
+ var paddedDomainLo = crossBelow
226
+ ? intercept
227
+ : crossAbove
228
+ ? orderedDomain[0] -
229
+ desiredPixelPadding /
230
+ (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)([orderedDomain[0], intercept], [2 * desiredPixelPadding, 0], chartHeight)
231
+ .scaleMultiplier
232
+ : baselinePaddedDomainLo;
233
+ var paddedDomainHigh = crossBelow
234
+ ? orderedDomain[1] +
235
+ desiredPixelPadding /
236
+ (0, screenspace_marker_scale_compressor_1.screenspaceMarkerScaleCompressor)([intercept, orderedDomain[1]], [0, 2 * desiredPixelPadding], chartHeight)
237
+ .scaleMultiplier
238
+ : crossAbove
239
+ ? intercept
240
+ : baselinePaddedDomainHigh;
241
+ return inverted ? [paddedDomainHigh, paddedDomainLo] : [paddedDomainLo, paddedDomainHigh];
316
242
  }
317
- exports.getDomainPolarity = getDomainPolarity;
318
243
  //# sourceMappingURL=scale_continuous.js.map