indicator-required.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * (c) 2010-2019 Daniel Studencki
  3. *
  4. * License: www.highcharts.com/license
  5. */
  6. 'use strict';
  7. import H from '../parts/Globals.js';
  8. import '../parts/Utilities.js';
  9. var error = H.error;
  10. var requiredIndicatorMixin = {
  11. /**
  12. * Check whether given indicator is loaded, else throw error.
  13. * @param {function} indicator Indicator constructor function.
  14. * @param {string} requiredIndicator required indicator type.
  15. * @param {string} type Type of indicator where function was called (parent).
  16. * @param {function} callback Callback which is triggered if the given
  17. * indicator is loaded. Takes indicator as
  18. * an argument.
  19. * @param {string} errMessage Error message that will be logged in console.
  20. * @returns {boolean} Returns false when there is no required indicator loaded.
  21. */
  22. isParentLoaded: function (
  23. indicator,
  24. requiredIndicator,
  25. type,
  26. callback,
  27. errMessage
  28. ) {
  29. if (indicator) {
  30. return callback ? callback(indicator) : true;
  31. }
  32. error(
  33. errMessage || this.generateMessage(type, requiredIndicator)
  34. );
  35. return false;
  36. },
  37. generateMessage: function (indicatorType, required) {
  38. return 'Error: "' + indicatorType +
  39. '" indicator type requires "' + required +
  40. '" indicator loaded before. Please read docs: ' +
  41. 'https://api.highcharts.com/highstock/plotOptions.' +
  42. indicatorType;
  43. }
  44. };
  45. export default requiredIndicatorMixin;