debugger.src.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. /**
  2. * @license Highcharts JS v9.1.1 (2021-06-04)
  3. *
  4. * Debugger module
  5. *
  6. * (c) 2012-2021 Torstein Honsi
  7. *
  8. * License: www.highcharts.com/license
  9. */
  10. 'use strict';
  11. (function (factory) {
  12. if (typeof module === 'object' && module.exports) {
  13. factory['default'] = factory;
  14. module.exports = factory;
  15. } else if (typeof define === 'function' && define.amd) {
  16. define('highcharts/modules/debugger', ['highcharts'], function (Highcharts) {
  17. factory(Highcharts);
  18. factory.Highcharts = Highcharts;
  19. return factory;
  20. });
  21. } else {
  22. factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
  23. }
  24. }(function (Highcharts) {
  25. var _modules = Highcharts ? Highcharts._modules : {};
  26. function _registerModule(obj, path, args, fn) {
  27. if (!obj.hasOwnProperty(path)) {
  28. obj[path] = fn.apply(null, args);
  29. }
  30. }
  31. _registerModule(_modules, 'Extensions/Debugger/ErrorMessages.js', [], function () {
  32. /* eslint-disable */
  33. /* *
  34. * Error information for the debugger module
  35. * (c) 2010-2021 Torstein Honsi
  36. * License: www.highcharts.com/license
  37. */
  38. // DO NOT EDIT!
  39. // Automatically generated by ./tools/error-messages.js
  40. // Sources can be found in ./errors/*/*.md
  41. var errorMessages = {
  42. "10": {
  43. "title": "Can't plot zero or subzero values on a logarithmic axis",
  44. "text": "<h1>Can't plot zero or subzero values on a logarithmic axis</h1><p>This error occurs in the following situations: </p><ul><li>If a zero or subzero data value is added to a logarithmic axis</li><li>If the minimum of a logarithimic axis is set to 0 or less</li><li>If the threshold is set to 0 or less</li></ul><p>Note: As of Highcharts 5.0.8 it's possible to bypass this error message by setting <code>Axis.prototype.allowNegativeLog</code> to true, and add custom conversion functions. <a href=\"https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/samples/highcharts/yaxis/type-log-negative/\">View live demo</a>. It is also possible to use a similar workaround for colorAxis. <a href=\"https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/samples/highcharts/coloraxis/logarithmic-with-emulate-negative-values/\">View live demo</a>.</p>",
  45. "enduser": "<h1>Can't plot zero or subzero values on a logarithmic axis</h1><p>This error occurs in the following situations:</p><ul><li>If a zero or subzero data value is added to a logarithmic axis</li><li>If the minimum of a logarithimic axis is set to 0 or less</li><li>If the threshold is set to 0 or less</li></ul><p>As of Highcharts 5.0.8 it's possible to bypass this error message by setting <code>Axis.prototype.allowNegativeLog</code> to <code>true</code> and add custom conversion functions. <a href=\"http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/samples/highcharts/yaxis/type-log-negative/\">\">View Live Demo</a>. It is also possible to use a similar workaround for colorAxis. <a href=\"https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/samples/highcharts/coloraxis/logarithmic-with-emulate-negative-values/\">View live demo</a>.</p>"
  46. },
  47. "11": {
  48. "title": "Can't link axes of different type",
  49. "text": "<h1>Can't link axes of different type</h1><p>This error occurs when using the <code>linkedTo</code> option to link two axes of different types, for example a logarithmic axis to a linear axis. Highcharts can't link these because the calculation of ticks, extremes, padding etc. is different.</p>"
  50. },
  51. "12": {
  52. "title": "Highcharts expects point configuration to be numbers or arrays in turbo mode",
  53. "text": "<h1>Highcharts expects point configuration to be numbers or arrays in turbo mode</h1><p>This error occurs if the <code>series.data</code> option contains object configurations and the number of points exceeds the turboThreshold. It can be fixed by either setting <code>turboThreshold</code> to a higher value, or changing the point configurations to numbers or arrays.</p><p>In boost mode, turbo mode is always on, which means only array of numbers or two dimensional arrays are allowed.</p><p>See <a href=\"https://api.highcharts.com/highcharts#plotOptions.series.turboThreshold\">plotOptions.series.turboThreshold</a></p>"
  54. },
  55. "13": {
  56. "title": "Rendering div not found",
  57. "text": "<h1>Rendering div not found</h1><p>This error occurs if the <a href=\"https://api.highcharts.com/highcharts#chart.renderTo\">chart.renderTo</a> option is misconfigured so that Highcharts is unable to find the HTML element to render the chart in.</p><p>If using a DOM ID when creating the chart, make sure a node with the same ID exists somewhere in the DOM.</p>"
  58. },
  59. "14": {
  60. "title": "String value sent to series.data, expected Number",
  61. "text": "<h1>String value sent to series.data, expected Number</h1><p>This happens if using a string as a data point, for example in a setup like this: </p><pre>series: [{\n data: [&quot;3&quot;, &quot;5&quot;, &quot;1&quot;, &quot;6&quot;]\n}]</pre><p>Highcharts expects numerical data values.</p><p>The most common reason for this error this is that data is parsed from CSV or from a XML source, and the implementer forgot to run <code>parseFloat</code> on the parsed value.</p><p>Note: For performance reasons internal type casting is not performed, and only the first value is checked (since 2.3).</p>"
  62. },
  63. "15": {
  64. "title": "Highcharts expects data to be sorted",
  65. "text": "<h1>Highcharts expects data to be sorted</h1><p>This happens when creating a line series or a stock chart where the data is not sorted in ascending X order.</p><p>For performance reasons, Highcharts does not sort the data, instead it requires that the implementer pre-sorts the data.</p>"
  66. },
  67. "16": {
  68. "title": "Highcharts already defined in the page",
  69. "text": "<h1>Highcharts already defined in the page</h1><p>This error happens if the <code>Highcharts</code> namespace already exists when loading Highcharts or Highstock.</p><p>This is caused by including Highcharts or Highstock more than once.</p><p>Keep in mind that the <code>Highcharts.Chart</code> constructor and all features of Highcharts are included in Highstock, so if using the <code>Chart</code> and <code>StockChart</code> constructors in combination, only the <code>highstock.js</code> file is required.</p>"
  70. },
  71. "17": {
  72. "title": "The requested series type does not exist",
  73. "text": "<h1>The requested series type does not exist</h1><p>This error happens when setting <code>chart.type</code> or <code>series.type</code> to a series type that isn't defined in Highcharts. A typical reason may be that the module or extension where the series type is defined isn't included.</p><p>For example in order to create an <code>arearange</code> series, the <code>highcharts-more.js</code> file must be loaded.</p>"
  74. },
  75. "18": {
  76. "title": "The requested axis does not exist",
  77. "text": "<h1>The requested axis does not exist</h1><p>This error happens when setting a series' <code>xAxis</code> or <code>yAxis</code> property to point to an axis that does not exist.</p>"
  78. },
  79. "19": {
  80. "title": "Too many ticks",
  81. "text": "<h1>Too many ticks</h1><p>This error happens when applying too many ticks to an axis, specifically when adding more ticks than the axis pixel length.</p><p>With default value this won't happen, but there are edge cases, for example when setting axis categories and <code>xAxis.labels.step</code> in combination with a long data range, when the axis is instructed to create a great number of ticks.</p>"
  82. },
  83. "20": {
  84. "title": "Can't add object point configuration to a long data series",
  85. "text": "<h1>Can't add object point configuration to a long data series</h1><p>In Highstock, when trying to add a point using the object literal configuration syntax, it will only work when the number of data points is below the series' <a href=\"https://api.highcharts.com/highstock#plotOptions.series.turboThreshold\">turboThreshold</a>. Instead of the object syntax, use the Array syntax.</p>"
  86. },
  87. "21": {
  88. "title": "Can't find Proj4js library",
  89. "text": "<h1>Can't find Proj4js library</h1><p>Using latitude/longitude functionality in Highmaps requires the <a href=\"http://proj4js.org\">Proj4js</a> library to be loaded.</p>"
  90. },
  91. "22": {
  92. "title": "Map does not support latitude/longitude",
  93. "text": "<h1>Map does not support latitude/longitude</h1><p>The loaded map does not support latitude/longitude functionality. This is only supported with maps from the <a href=\"https://code.highcharts.com/mapdata\">official Highmaps map collection</a> from version 1.1.0 onwards. If you are using a custom map, consider using the <a href=\"https://proj4js.org\">Proj4js</a> library to convert between projections.</p>"
  94. },
  95. "23": {
  96. "title": "Unsupported color format used for color interpolation",
  97. "text": "<h1>Unsupported color format used for color interpolation</h1><p>Highcharts supports three color formats primarily: hex (<code>#FFFFFF</code>), rgb (<code>rgba(255,255,255)</code>) and rgba (<code>rgba(255,255,255,1)</code>). If any other format, like 3-digit colors (<code>#FFF</code>), named colors (<code>white</code>) or gradient structures are used in for example a heatmap, Highcharts will fail to interpolate and will instead use the end-color with no interpolation applied.</p><p>We've chosen to preserve this limitation in order to keep the weight of the implementation at a minimum.</p>"
  98. },
  99. "24": {
  100. "title": "Cannot run Point.update on a grouped point",
  101. "text": "<h1>Cannot run Point.update on a grouped point</h1><p>Running <code>Point.update</code> in Highstock when a point is grouped by data grouping is not supported.</p><p>This is not supported because when data grouping is enabled, there won't be any references to the raw points, which is required by the <code>Point.update</code> function.</p>"
  102. },
  103. "25": {
  104. "title": "Can't find Moment.js library",
  105. "text": "<h1>Can't find Moment.js library</h1><p>Using the global.timezone option requires the <a href=\"https://momentjs.com/\">Moment.js</a> library to be loaded.</p>"
  106. },
  107. "26": {
  108. "title": "WebGL not supported, and no fallback module included",
  109. "text": "<h1>WebGL not supported, and no fallback module included</h1><p>This happens when the browser doesn't support WebGL,<b>and</b> the canvas fallback module (<code>boost-canvas.js</code>) hasn't been included OR if the fallback module was included<b>after</b> the boost module.</p><p>If a fallback is required, make sure to include <code>boost-canvas.js</code>, and that it's included before <code>boost.js</code>.</p><p>Please note that the fallback module is not intended as a fully-featured one. Rather, it's a minimal implementation of the WebGL counterpart.</p>"
  110. },
  111. "27": {
  112. "title": "This browser does not support SVG",
  113. "text": "<h1>This browser does not support SVG</h1><p>This happens in old IE when the <code>oldie.js</code> module isn't loaded.</p><p>If compatibility with IE versions 6, 7 and 8 is required, add the module after loading <code>highcharts.js</code>. In a website context, it's a good idea to load it in a conditional comment to avoid traffic overhead and dead code in modern browsers: </p><pre>&lt;!--[if lt IE 9]&gt;\n &lt;script src='https://code.highcharts.com/modules/oldie.js'&gt;&lt;/script&gt;\n&lt;![endif]--&gt;</pre>"
  114. },
  115. "28": {
  116. "title": "Fallback to export server disabled",
  117. "text": "<h1>Fallback to export server disabled</h1><p>This happens when the offline export module encounters a chart that it can't export successfully, and the fallback to the online export server is disabled. The offline exporting module will fail for certain browsers, and certain features (e.g. <a href=\"https://api.highcharts.com/highcharts/exporting.allowHTML\">exporting.allowHTML</a> ), depending on the type of image exporting to. For a compatibility overview, see <a href=\"https://www.highcharts.com/docs/export-module/client-side-export\">Client Side Export</a>.</p><p>For very complex charts, it's possible that exporting fail in browsers that don't support Blob objects, due to data URL length limits. It's always recommended to define the <a href=\"https://api.highcharts.com/highcharts/exporting.error\">exporting.error</a> callback when disabling the fallback, so that details can be provided to the end-user if offline export isn't working for them.</p>"
  118. },
  119. "29": {
  120. "title": "Browser does not support WebAudio",
  121. "text": "<h1>Browser does not support WebAudio</h1><p>This happens when you attempt to use the sonification module on a chart in a browser or environment that does not support the WebAudio API. This API is supported on all modern browsers, including Microsoft Edge, Google Chrome and Mozilla Firefox.</p>"
  122. },
  123. "30": {
  124. "title": "Invalid instrument",
  125. "text": "<h1>Invalid instrument</h1><p>This happens when you try to use a sonification instrument that is not valid. If you are using a predefined instrument, make sure your spelling is correct.</p>"
  126. },
  127. "31": {
  128. "title": "Non-unique point or node id",
  129. "text": "<h1>Non-unique point or node id</h1><p>This error occurs when using the same <code>id</code> for two or more points or nodes.</p>"
  130. },
  131. "32": {
  132. "title": "Deprecated function or property",
  133. "text": "<h1>Deprecated function or property</h1><p>This error occurs when using a deprecated function or property. Consult the <a href=\"https://api.highcharts.com/\">API documentation</a> for alternatives, if no replacement is mentioned by the error itself.</p>"
  134. }
  135. };
  136. return errorMessages;
  137. });
  138. _registerModule(_modules, 'Extensions/Debugger/Debugger.js', [_modules['Core/Chart/Chart.js'], _modules['Extensions/Debugger/ErrorMessages.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js']], function (Chart, ErrorMessages, H, D, U) {
  139. /* *
  140. *
  141. * (c) 2010-2021 Torstein Honsi
  142. *
  143. * License: www.highcharts.com/license
  144. *
  145. * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
  146. *
  147. * */
  148. var charts = H.charts;
  149. var setOptions = D.setOptions;
  150. var addEvent = U.addEvent,
  151. find = U.find,
  152. isNumber = U.isNumber;
  153. /* *
  154. *
  155. * Compositions
  156. *
  157. * */
  158. setOptions({
  159. /**
  160. * @optionparent chart
  161. */
  162. chart: {
  163. /**
  164. * Whether to display errors on the chart. When `false`, the errors will
  165. * be shown only in the console.
  166. *
  167. * @sample highcharts/chart/display-errors/
  168. * Show errors on chart
  169. *
  170. * @since 7.0.0
  171. * @requires modules/debugger
  172. */
  173. displayErrors: true
  174. }
  175. });
  176. /* eslint-disable no-invalid-this */
  177. addEvent(H, 'displayError', function (e) {
  178. // Display error on the chart causing the error or the last created chart.
  179. var chart = e.chart ||
  180. find(charts.slice().reverse(),
  181. function (c) { return !!c; });
  182. if (!chart) {
  183. return;
  184. }
  185. var code = e.code,
  186. msg,
  187. options = chart.options.chart,
  188. renderer = chart.renderer,
  189. chartWidth,
  190. chartHeight;
  191. if (chart.errorElements) {
  192. chart.errorElements.forEach(function (el) {
  193. if (el) {
  194. el.destroy();
  195. }
  196. });
  197. }
  198. if (options && options.displayErrors && renderer) {
  199. chart.errorElements = [];
  200. msg = isNumber(code) ?
  201. ('Highcharts error #' + code + ': ' +
  202. ErrorMessages[code].text) :
  203. code;
  204. chartWidth = chart.chartWidth;
  205. chartHeight = chart.chartHeight;
  206. // Format msg so SVGRenderer can handle it
  207. msg = msg
  208. .replace(/<h1>(.*)<\/h1>/g, '<br><span style="font-size: 24px">$1</span><br>')
  209. .replace(/<p>/g, '')
  210. .replace(/<\/p>/g, '<br>');
  211. // Render red chart frame.
  212. chart.errorElements[0] = renderer.rect(2, 2, chartWidth - 4, chartHeight - 4).attr({
  213. 'stroke-width': 4,
  214. stroke: '#ff0000',
  215. zIndex: 3
  216. }).add();
  217. // Render error message
  218. chart.errorElements[1] = renderer.label(msg, 0, 0, 'rect', void 0, void 0, void 0, void 0, 'debugger').css({
  219. color: '#ffffff',
  220. width: (chartWidth - 16) + 'px',
  221. padding: 0
  222. }).attr({
  223. fill: 'rgba(255, 0, 0, 0.9)',
  224. width: chartWidth,
  225. padding: 8,
  226. zIndex: 10
  227. }).add();
  228. chart.errorElements[1].attr({
  229. y: chartHeight - chart.errorElements[1].getBBox().height
  230. });
  231. }
  232. });
  233. addEvent(Chart, 'beforeRedraw', function () {
  234. var errorElements = this.errorElements;
  235. if (errorElements && errorElements.length) {
  236. errorElements.forEach(function (el) {
  237. el.destroy();
  238. });
  239. }
  240. delete this.errorElements;
  241. });
  242. });
  243. _registerModule(_modules, 'masters/modules/debugger.src.js', [_modules['Core/Globals.js'], _modules['Extensions/Debugger/ErrorMessages.js']], function (Highcharts, ErrorMessages) {
  244. Highcharts.errorMessages = ErrorMessages;
  245. });
  246. }));