LinearRegressionAngle.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /**
  2. *
  3. * (c) 2010-2021 Kamil Kulig
  4. *
  5. * License: www.highcharts.com/license
  6. *
  7. * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
  8. *
  9. * */
  10. 'use strict';
  11. var __extends = (this && this.__extends) || (function () {
  12. var extendStatics = function (d, b) {
  13. extendStatics = Object.setPrototypeOf ||
  14. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  15. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  16. return extendStatics(d, b);
  17. };
  18. return function (d, b) {
  19. extendStatics(d, b);
  20. function __() { this.constructor = d; }
  21. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  22. };
  23. })();
  24. import SeriesRegistry from '../../../Core/Series/SeriesRegistry.js';
  25. var _a = SeriesRegistry.seriesTypes, SMAIndicator = _a.sma, LinearRegressionIndicator = _a.linearRegression;
  26. import U from '../../../Core/Utilities.js';
  27. var extend = U.extend, merge = U.merge;
  28. /* *
  29. *
  30. * Class
  31. *
  32. * */
  33. /**
  34. * The Linear Regression Angle series type.
  35. *
  36. * @private
  37. * @class
  38. * @name Highcharts.seriesTypes.linearRegressionAngle
  39. *
  40. * @augments Highcharts.Series
  41. */
  42. var LinearRegressionAngleIndicator = /** @class */ (function (_super) {
  43. __extends(LinearRegressionAngleIndicator, _super);
  44. function LinearRegressionAngleIndicator() {
  45. var _this = _super !== null && _super.apply(this, arguments) || this;
  46. /* *
  47. *
  48. * Properties
  49. *
  50. * */
  51. _this.data = void 0;
  52. _this.options = void 0;
  53. _this.points = void 0;
  54. return _this;
  55. }
  56. /* *
  57. *
  58. * Functions
  59. *
  60. * */
  61. /**
  62. * Convert a slope of a line to angle (in degrees) between
  63. * the line and x axis
  64. * @private
  65. * @param {number} slope of the straight line function
  66. * @return {number} angle in degrees
  67. */
  68. LinearRegressionAngleIndicator.prototype.slopeToAngle = function (slope) {
  69. return Math.atan(slope) * (180 / Math.PI); // rad to deg
  70. };
  71. LinearRegressionAngleIndicator.prototype.getEndPointY = function (lineParameters) {
  72. return this.slopeToAngle(lineParameters.slope);
  73. };
  74. /**
  75. * Linear regression angle indicator. This series requires `linkedTo`
  76. * option to be set.
  77. *
  78. * @sample {highstock} stock/indicators/linear-regression-angle
  79. * Linear intercept angle indicator
  80. *
  81. * @extends plotOptions.linearregression
  82. * @since 7.0.0
  83. * @product highstock
  84. * @requires stock/indicators/indicators
  85. * @requires stock/indicators/linearregressionangle
  86. * @optionparent plotOptions.linearregressionangle
  87. */
  88. LinearRegressionAngleIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {
  89. tooltip: {
  90. pointFormat: '<span style="color:{point.color}">\u25CF</span>' +
  91. '{series.name}: <b>{point.y}°</b><br/>'
  92. }
  93. });
  94. return LinearRegressionAngleIndicator;
  95. }(LinearRegressionIndicator));
  96. extend(LinearRegressionAngleIndicator.prototype, {
  97. nameBase: 'Linear Regression Angle Indicator'
  98. });
  99. SeriesRegistry.registerSeriesType('linearRegressionAngle', LinearRegressionAngleIndicator);
  100. /* *
  101. *
  102. * Default Export
  103. *
  104. * */
  105. export default LinearRegressionAngleIndicator;
  106. /**
  107. * A linear regression intercept series. If the
  108. * [type](#series.linearregressionangle.type) option is not specified, it is
  109. * inherited from [chart.type](#chart.type).
  110. *
  111. * @extends series,plotOptions.linearregressionangle
  112. * @since 7.0.0
  113. * @product highstock
  114. * @excluding dataParser,dataURL
  115. * @requires stock/indicators/indicators
  116. * @requires stock/indicators/linearregressionangle
  117. * @apioption series.linearregressionangle
  118. */
  119. ''; // to include the above in the js output