linear_range_container.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * DevExtreme (viz/gauges/linear_range_container.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var BaseRangeContainer = require("./base_range_container");
  11. var _Number = Number;
  12. var _max = Math.max;
  13. var _normalizeEnum = require("../core/utils").normalizeEnum;
  14. var LinearRangeContainer = BaseRangeContainer.inherit({
  15. _processOptions: function() {
  16. var that = this;
  17. that.vertical = that._options.vertical;
  18. that._inner = that._outer = 0;
  19. if (that.vertical) {
  20. switch (_normalizeEnum(that._options.horizontalOrientation)) {
  21. case "left":
  22. that._inner = 1;
  23. break;
  24. case "center":
  25. that._inner = that._outer = .5;
  26. break;
  27. default:
  28. that._outer = 1
  29. }
  30. } else {
  31. switch (_normalizeEnum(that._options.verticalOrientation)) {
  32. case "top":
  33. that._inner = 1;
  34. break;
  35. case "center":
  36. that._inner = that._outer = .5;
  37. break;
  38. default:
  39. that._outer = 1
  40. }
  41. }
  42. },
  43. _isVisible: function() {
  44. return true
  45. },
  46. _createRange: function(range, layout) {
  47. var that = this;
  48. var inner = that._inner;
  49. var outer = that._outer;
  50. var startPosition = that._translator.translate(range.start);
  51. var endPosition = that._translator.translate(range.end);
  52. var points;
  53. var x = layout.x;
  54. var y = layout.y;
  55. var startWidth = range.startWidth;
  56. var endWidth = range.endWidth;
  57. if (that.vertical) {
  58. points = [x - startWidth * inner, startPosition, x - endWidth * inner, endPosition, x + endWidth * outer, endPosition, x + startWidth * outer, startPosition]
  59. } else {
  60. points = [startPosition, y + startWidth * outer, startPosition, y - startWidth * inner, endPosition, y - endWidth * inner, endPosition, y + endWidth * outer]
  61. }
  62. return that._renderer.path(points, "area")
  63. },
  64. measure: function(layout) {
  65. var result = {};
  66. var width;
  67. result.min = result.max = layout[this.vertical ? "x" : "y"];
  68. width = this._options.width;
  69. width = _Number(width) || _max(_Number(width.start), _Number(width.end));
  70. result.min -= this._inner * width;
  71. result.max += this._outer * width;
  72. return result
  73. }
  74. });
  75. module.exports = LinearRangeContainer;