TilemapComposition.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* *
  2. *
  3. * Tilemaps module
  4. *
  5. * (c) 2010-2021 Highsoft AS
  6. * Author: Øystein Moseng
  7. *
  8. * License: www.highcharts.com/license
  9. *
  10. * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
  11. *
  12. * */
  13. 'use strict';
  14. /* *
  15. *
  16. * Imports
  17. *
  18. * */
  19. import H from '../../Core/Globals.js';
  20. import U from '../../Core/Utilities.js';
  21. var addEvent = U.addEvent;
  22. /* *
  23. *
  24. * Composition
  25. *
  26. * */
  27. /* eslint-disable no-invalid-this */
  28. // Extension to add pixel padding for series. Uses getSeriesPixelPadding on each
  29. // series and adds the largest padding required. If no series has this function
  30. // defined, we add nothing.
  31. addEvent(H.Axis, 'afterSetAxisTranslation', function () {
  32. if (this.recomputingForTilemap || this.coll === 'colorAxis') {
  33. return;
  34. }
  35. var axis = this,
  36. // Find which series' padding to use
  37. seriesPadding = axis.series
  38. .map(function (series) {
  39. return series.getSeriesPixelPadding &&
  40. series.getSeriesPixelPadding(axis);
  41. })
  42. .reduce(function (a, b) {
  43. return (a && a.padding) > (b && b.padding) ?
  44. a :
  45. b;
  46. }, void 0) ||
  47. {
  48. padding: 0,
  49. axisLengthFactor: 1
  50. }, lengthPadding = Math.round(seriesPadding.padding * seriesPadding.axisLengthFactor);
  51. // Don't waste time on this if we're not adding extra padding
  52. if (seriesPadding.padding) {
  53. // Recompute translation with new axis length now (minus padding)
  54. axis.len -= lengthPadding;
  55. axis.recomputingForTilemap = true;
  56. axis.setAxisTranslation();
  57. delete axis.recomputingForTilemap;
  58. axis.minPixelPadding += seriesPadding.padding;
  59. axis.len += lengthPadding;
  60. }
  61. });