axis.js 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.Axis = void 0;
  4. var tslib_1 = require("tslib");
  5. var animation_1 = require("../../animation");
  6. var core_1 = require("../../core");
  7. var util_1 = require("../../util");
  8. var constant_1 = require("./constant");
  9. var grid_1 = require("./guides/grid");
  10. var labels_1 = require("./guides/labels");
  11. var line_1 = require("./guides/line");
  12. var ticks_1 = require("./guides/ticks");
  13. var title_1 = require("./guides/title");
  14. function renderAxisMain(attributes, container, data, animation) {
  15. var showLine = attributes.showLine, showTick = attributes.showTick, showLabel = attributes.showLabel;
  16. /** line */
  17. var lineGroup = container.maybeAppendByClassName(constant_1.CLASS_NAMES.lineGroup, 'g');
  18. var lineTransitions = (0, util_1.ifShow)(showLine, lineGroup, function (group) {
  19. return (0, line_1.renderAxisLine)(group, attributes, animation);
  20. }) || [];
  21. /** tick */
  22. var tickGroup = container.maybeAppendByClassName(constant_1.CLASS_NAMES.tickGroup, 'g');
  23. var tickTransitions = (0, util_1.ifShow)(showTick, tickGroup, function (group) {
  24. return (0, ticks_1.renderTicks)(group, data, attributes, animation);
  25. }) || [];
  26. /** label */
  27. var labelGroup = container.maybeAppendByClassName(constant_1.CLASS_NAMES.labelGroup, 'g');
  28. var labelTransitions = (0, util_1.ifShow)(showLabel, labelGroup, function (group) {
  29. return (0, labels_1.renderLabels)(group, data, attributes, animation);
  30. }) || [];
  31. return tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(lineTransitions), false), tslib_1.__read(tickTransitions), false), tslib_1.__read(labelTransitions), false).filter(function (t) { return !!t; });
  32. }
  33. var Axis = /** @class */ (function (_super) {
  34. tslib_1.__extends(Axis, _super);
  35. function Axis(options) {
  36. return _super.call(this, options, constant_1.AXIS_BASE_DEFAULT_ATTR) || this;
  37. }
  38. Axis.prototype.render = function (attributes, container, specificAnimation) {
  39. var _this = this;
  40. var titleText = attributes.titleText, data = attributes.data, animate = attributes.animate, showTitle = attributes.showTitle, showGrid = attributes.showGrid, dataThreshold = attributes.dataThreshold, truncRange = attributes.truncRange;
  41. var sampledData = (0, util_1.sampling)(data, dataThreshold).filter(function (_a) {
  42. var value = _a.value;
  43. if (truncRange && value > truncRange[0] && value < truncRange[1])
  44. return false;
  45. return true;
  46. });
  47. var finalAnimation = (0, animation_1.parseAnimationOption)(specificAnimation === undefined ? animate : specificAnimation);
  48. /** grid */
  49. var gridGroup = (0, util_1.select)(container).maybeAppendByClassName(constant_1.CLASS_NAMES.gridGroup, 'g');
  50. var gridTransitions = (0, util_1.ifShow)(showGrid, gridGroup, function (group) { return (0, grid_1.renderGrid)(group, sampledData, attributes, finalAnimation); }) || [];
  51. /** main group */
  52. var mainGroup = (0, util_1.select)(container).maybeAppendByClassName(constant_1.CLASS_NAMES.mainGroup, 'g');
  53. if (titleText && ((!this.initialized && finalAnimation.enter) || (this.initialized && finalAnimation.update))) {
  54. renderAxisMain(attributes, (0, util_1.select)(this.offscreenGroup), sampledData, (0, animation_1.parseAnimationOption)(false));
  55. }
  56. // render
  57. var mainTransitions = renderAxisMain(attributes, (0, util_1.select)(mainGroup.node()), sampledData, finalAnimation);
  58. /** title */
  59. var titleGroup = (0, util_1.select)(container).maybeAppendByClassName(constant_1.CLASS_NAMES.titleGroup, 'g');
  60. var titleTransitions = (0, util_1.ifShow)(showTitle, titleGroup, function (group) {
  61. return (0, title_1.renderTitle)(group, _this, attributes, finalAnimation);
  62. }) || [];
  63. return tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gridTransitions), false), tslib_1.__read(mainTransitions), false), tslib_1.__read(titleTransitions), false).flat().filter(function (t) { return !!t; });
  64. };
  65. return Axis;
  66. }(core_1.GUI));
  67. exports.Axis = Axis;
  68. //# sourceMappingURL=axis.js.map