api.axis.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { c3_chart_fn } from './core';
  2. import { isValue, isDefined } from './util';
  3. c3_chart_fn.axis = function () {};
  4. c3_chart_fn.axis.labels = function (labels) {
  5. var $$ = this.internal;
  6. if (arguments.length) {
  7. Object.keys(labels).forEach(function (axisId) {
  8. $$.axis.setLabelText(axisId, labels[axisId]);
  9. });
  10. $$.axis.updateLabels();
  11. }
  12. // TODO: return some values?
  13. };
  14. c3_chart_fn.axis.max = function (max) {
  15. var $$ = this.internal, config = $$.config;
  16. if (arguments.length) {
  17. if (typeof max === 'object') {
  18. if (isValue(max.x)) { config.axis_x_max = max.x; }
  19. if (isValue(max.y)) { config.axis_y_max = max.y; }
  20. if (isValue(max.y2)) { config.axis_y2_max = max.y2; }
  21. } else {
  22. config.axis_y_max = config.axis_y2_max = max;
  23. }
  24. $$.redraw({withUpdateOrgXDomain: true, withUpdateXDomain: true});
  25. } else {
  26. return {
  27. x: config.axis_x_max,
  28. y: config.axis_y_max,
  29. y2: config.axis_y2_max
  30. };
  31. }
  32. };
  33. c3_chart_fn.axis.min = function (min) {
  34. var $$ = this.internal, config = $$.config;
  35. if (arguments.length) {
  36. if (typeof min === 'object') {
  37. if (isValue(min.x)) { config.axis_x_min = min.x; }
  38. if (isValue(min.y)) { config.axis_y_min = min.y; }
  39. if (isValue(min.y2)) { config.axis_y2_min = min.y2; }
  40. } else {
  41. config.axis_y_min = config.axis_y2_min = min;
  42. }
  43. $$.redraw({withUpdateOrgXDomain: true, withUpdateXDomain: true});
  44. } else {
  45. return {
  46. x: config.axis_x_min,
  47. y: config.axis_y_min,
  48. y2: config.axis_y2_min
  49. };
  50. }
  51. };
  52. c3_chart_fn.axis.range = function (range) {
  53. if (arguments.length) {
  54. if (isDefined(range.max)) { this.axis.max(range.max); }
  55. if (isDefined(range.min)) { this.axis.min(range.min); }
  56. } else {
  57. return {
  58. max: this.axis.max(),
  59. min: this.axis.min()
  60. };
  61. }
  62. };