highcharts 12.1.0 → 12.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Core/Defaults.js +0 -8
  3. package/es-modules/Core/Globals.js +1 -1
  4. package/es-modules/Core/Pointer.js +3 -1
  5. package/es-modules/Core/Renderer/SVG/SVGElement.js +4 -4
  6. package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
  7. package/es-modules/Core/Series/DataLabel.js +2 -3
  8. package/es-modules/Core/Templating.js +6 -6
  9. package/es-modules/Core/Time.js +15 -7
  10. package/es-modules/Extensions/Exporting/Exporting.js +16 -8
  11. package/es-modules/Stock/RangeSelector/RangeSelector.js +11 -3
  12. package/es-modules/tsconfig.tsbuildinfo +1 -1
  13. package/highcharts-3d.js +1 -1
  14. package/highcharts-3d.src.js +1 -1
  15. package/highcharts-gantt.js +5 -5
  16. package/highcharts-gantt.src.js +53 -42
  17. package/highcharts-more.js +1 -1
  18. package/highcharts-more.src.js +1 -1
  19. package/highcharts.d.ts +20 -2
  20. package/highcharts.js +3 -3
  21. package/highcharts.src.d.ts +20 -2
  22. package/highcharts.src.js +37 -34
  23. package/highmaps.js +5 -5
  24. package/highmaps.src.js +40 -37
  25. package/highstock.js +5 -5
  26. package/highstock.src.js +53 -42
  27. package/indicators/acceleration-bands.js +1 -1
  28. package/indicators/acceleration-bands.src.js +1 -1
  29. package/indicators/accumulation-distribution.js +1 -1
  30. package/indicators/accumulation-distribution.src.js +1 -1
  31. package/indicators/ao.js +1 -1
  32. package/indicators/ao.src.js +1 -1
  33. package/indicators/apo.js +1 -1
  34. package/indicators/apo.src.js +1 -1
  35. package/indicators/aroon-oscillator.js +1 -1
  36. package/indicators/aroon-oscillator.src.js +1 -1
  37. package/indicators/aroon.js +1 -1
  38. package/indicators/aroon.src.js +1 -1
  39. package/indicators/atr.js +1 -1
  40. package/indicators/atr.src.js +1 -1
  41. package/indicators/bollinger-bands.js +1 -1
  42. package/indicators/bollinger-bands.src.js +1 -1
  43. package/indicators/cci.js +1 -1
  44. package/indicators/cci.src.js +1 -1
  45. package/indicators/chaikin.js +1 -1
  46. package/indicators/chaikin.src.js +1 -1
  47. package/indicators/cmf.js +1 -1
  48. package/indicators/cmf.src.js +1 -1
  49. package/indicators/cmo.js +1 -1
  50. package/indicators/cmo.src.js +1 -1
  51. package/indicators/dema.js +1 -1
  52. package/indicators/dema.src.js +1 -1
  53. package/indicators/disparity-index.js +1 -1
  54. package/indicators/disparity-index.src.js +1 -1
  55. package/indicators/dmi.js +1 -1
  56. package/indicators/dmi.src.js +1 -1
  57. package/indicators/dpo.js +1 -1
  58. package/indicators/dpo.src.js +1 -1
  59. package/indicators/ichimoku-kinko-hyo.js +1 -1
  60. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  61. package/indicators/indicators-all.js +1 -1
  62. package/indicators/indicators-all.src.js +1 -1
  63. package/indicators/indicators.js +1 -1
  64. package/indicators/indicators.src.js +1 -1
  65. package/indicators/keltner-channels.js +1 -1
  66. package/indicators/keltner-channels.src.js +1 -1
  67. package/indicators/klinger.js +1 -1
  68. package/indicators/klinger.src.js +1 -1
  69. package/indicators/macd.js +1 -1
  70. package/indicators/macd.src.js +1 -1
  71. package/indicators/mfi.js +1 -1
  72. package/indicators/mfi.src.js +1 -1
  73. package/indicators/momentum.js +1 -1
  74. package/indicators/momentum.src.js +1 -1
  75. package/indicators/natr.js +1 -1
  76. package/indicators/natr.src.js +1 -1
  77. package/indicators/obv.js +1 -1
  78. package/indicators/obv.src.js +1 -1
  79. package/indicators/pivot-points.js +1 -1
  80. package/indicators/pivot-points.src.js +1 -1
  81. package/indicators/ppo.js +1 -1
  82. package/indicators/ppo.src.js +1 -1
  83. package/indicators/price-channel.js +1 -1
  84. package/indicators/price-channel.src.js +1 -1
  85. package/indicators/price-envelopes.js +1 -1
  86. package/indicators/price-envelopes.src.js +1 -1
  87. package/indicators/psar.js +1 -1
  88. package/indicators/psar.src.js +1 -1
  89. package/indicators/regressions.js +1 -1
  90. package/indicators/regressions.src.js +1 -1
  91. package/indicators/roc.js +1 -1
  92. package/indicators/roc.src.js +1 -1
  93. package/indicators/rsi.js +1 -1
  94. package/indicators/rsi.src.js +1 -1
  95. package/indicators/slow-stochastic.js +1 -1
  96. package/indicators/slow-stochastic.src.js +1 -1
  97. package/indicators/stochastic.js +1 -1
  98. package/indicators/stochastic.src.js +1 -1
  99. package/indicators/supertrend.js +1 -1
  100. package/indicators/supertrend.src.js +1 -1
  101. package/indicators/tema.js +1 -1
  102. package/indicators/tema.src.js +1 -1
  103. package/indicators/trendline.js +1 -1
  104. package/indicators/trendline.src.js +1 -1
  105. package/indicators/trix.js +1 -1
  106. package/indicators/trix.src.js +1 -1
  107. package/indicators/volume-by-price.js +1 -1
  108. package/indicators/volume-by-price.src.js +1 -1
  109. package/indicators/vwap.js +1 -1
  110. package/indicators/vwap.src.js +1 -1
  111. package/indicators/williams-r.js +1 -1
  112. package/indicators/williams-r.src.js +1 -1
  113. package/indicators/wma.js +1 -1
  114. package/indicators/wma.src.js +1 -1
  115. package/indicators/zigzag.js +1 -1
  116. package/indicators/zigzag.src.js +1 -1
  117. package/modules/accessibility.js +1 -1
  118. package/modules/accessibility.src.js +1 -1
  119. package/modules/annotations-advanced.js +3 -3
  120. package/modules/annotations-advanced.src.js +4 -4
  121. package/modules/annotations.js +2 -2
  122. package/modules/annotations.src.js +3 -3
  123. package/modules/arc-diagram.js +1 -1
  124. package/modules/arc-diagram.src.js +1 -1
  125. package/modules/arrow-symbols.js +1 -1
  126. package/modules/arrow-symbols.src.js +1 -1
  127. package/modules/boost-canvas.js +1 -1
  128. package/modules/boost-canvas.src.js +1 -1
  129. package/modules/boost.js +1 -1
  130. package/modules/boost.src.js +1 -1
  131. package/modules/broken-axis.js +1 -1
  132. package/modules/broken-axis.src.js +1 -1
  133. package/modules/bullet.js +1 -1
  134. package/modules/bullet.src.js +1 -1
  135. package/modules/coloraxis.js +1 -1
  136. package/modules/coloraxis.src.js +1 -1
  137. package/modules/current-date-indicator.js +1 -1
  138. package/modules/current-date-indicator.src.js +1 -1
  139. package/modules/cylinder.js +1 -1
  140. package/modules/cylinder.src.js +1 -1
  141. package/modules/data-tools.js +1 -1
  142. package/modules/data-tools.src.js +1 -1
  143. package/modules/data.js +1 -1
  144. package/modules/data.src.js +1 -1
  145. package/modules/datagrouping.js +1 -1
  146. package/modules/datagrouping.src.js +1 -1
  147. package/modules/debugger.js +1 -1
  148. package/modules/debugger.src.js +1 -1
  149. package/modules/dependency-wheel.js +1 -1
  150. package/modules/dependency-wheel.src.js +1 -1
  151. package/modules/dotplot.js +1 -1
  152. package/modules/dotplot.src.js +1 -1
  153. package/modules/drag-panes.js +1 -1
  154. package/modules/drag-panes.src.js +1 -1
  155. package/modules/draggable-points.js +1 -1
  156. package/modules/draggable-points.src.js +1 -1
  157. package/modules/drilldown.js +1 -1
  158. package/modules/drilldown.src.js +1 -1
  159. package/modules/dumbbell.js +1 -1
  160. package/modules/dumbbell.src.js +1 -1
  161. package/modules/export-data.js +1 -1
  162. package/modules/export-data.src.js +1 -1
  163. package/modules/exporting.js +2 -2
  164. package/modules/exporting.src.js +17 -9
  165. package/modules/flowmap.js +1 -1
  166. package/modules/flowmap.src.js +1 -1
  167. package/modules/full-screen.js +1 -1
  168. package/modules/full-screen.src.js +1 -1
  169. package/modules/funnel.js +1 -1
  170. package/modules/funnel.src.js +1 -1
  171. package/modules/funnel3d.js +1 -1
  172. package/modules/funnel3d.src.js +1 -1
  173. package/modules/gantt.js +6 -6
  174. package/modules/gantt.src.js +15 -7
  175. package/modules/geoheatmap.js +1 -1
  176. package/modules/geoheatmap.src.js +1 -1
  177. package/modules/grid-axis.js +1 -1
  178. package/modules/grid-axis.src.js +1 -1
  179. package/modules/heatmap.js +2 -2
  180. package/modules/heatmap.src.js +2 -2
  181. package/modules/heikinashi.js +1 -1
  182. package/modules/heikinashi.src.js +1 -1
  183. package/modules/histogram-bellcurve.js +1 -1
  184. package/modules/histogram-bellcurve.src.js +1 -1
  185. package/modules/hollowcandlestick.js +1 -1
  186. package/modules/hollowcandlestick.src.js +1 -1
  187. package/modules/item-series.js +1 -1
  188. package/modules/item-series.src.js +1 -1
  189. package/modules/lollipop.js +1 -1
  190. package/modules/lollipop.src.js +1 -1
  191. package/modules/map.js +2 -2
  192. package/modules/map.src.js +2 -2
  193. package/modules/marker-clusters.js +1 -1
  194. package/modules/marker-clusters.src.js +1 -1
  195. package/modules/mouse-wheel-zoom.js +1 -1
  196. package/modules/mouse-wheel-zoom.src.js +1 -1
  197. package/modules/navigator.js +1 -1
  198. package/modules/navigator.src.js +1 -1
  199. package/modules/networkgraph.js +1 -1
  200. package/modules/networkgraph.src.js +1 -1
  201. package/modules/no-data-to-display.js +1 -1
  202. package/modules/no-data-to-display.src.js +1 -1
  203. package/modules/offline-exporting.js +2 -2
  204. package/modules/offline-exporting.src.js +18 -10
  205. package/modules/organization.js +1 -1
  206. package/modules/organization.src.js +1 -1
  207. package/modules/overlapping-datalabels.js +1 -1
  208. package/modules/overlapping-datalabels.src.js +1 -1
  209. package/modules/parallel-coordinates.js +1 -1
  210. package/modules/parallel-coordinates.src.js +1 -1
  211. package/modules/pareto.js +1 -1
  212. package/modules/pareto.src.js +1 -1
  213. package/modules/pathfinder.js +1 -1
  214. package/modules/pathfinder.src.js +1 -1
  215. package/modules/pattern-fill.js +1 -1
  216. package/modules/pattern-fill.src.js +1 -1
  217. package/modules/pictorial.js +1 -1
  218. package/modules/pictorial.src.js +1 -1
  219. package/modules/pointandfigure.js +1 -1
  220. package/modules/pointandfigure.src.js +1 -1
  221. package/modules/price-indicator.js +1 -1
  222. package/modules/price-indicator.src.js +1 -1
  223. package/modules/pyramid3d.js +1 -1
  224. package/modules/pyramid3d.src.js +1 -1
  225. package/modules/renko.js +1 -1
  226. package/modules/renko.src.js +1 -1
  227. package/modules/sankey.js +1 -1
  228. package/modules/sankey.src.js +1 -1
  229. package/modules/series-label.js +1 -1
  230. package/modules/series-label.src.js +1 -1
  231. package/modules/series-on-point.js +1 -1
  232. package/modules/series-on-point.src.js +1 -1
  233. package/modules/solid-gauge.js +1 -1
  234. package/modules/solid-gauge.src.js +1 -1
  235. package/modules/sonification.js +1 -1
  236. package/modules/sonification.src.js +1 -1
  237. package/modules/static-scale.js +1 -1
  238. package/modules/static-scale.src.js +1 -1
  239. package/modules/stock-tools.js +2 -2
  240. package/modules/stock-tools.src.js +3 -3
  241. package/modules/stock.js +4 -4
  242. package/modules/stock.src.js +15 -7
  243. package/modules/streamgraph.js +1 -1
  244. package/modules/streamgraph.src.js +1 -1
  245. package/modules/sunburst.js +1 -1
  246. package/modules/sunburst.src.js +1 -1
  247. package/modules/textpath.js +1 -1
  248. package/modules/textpath.src.js +1 -1
  249. package/modules/tiledwebmap.js +1 -1
  250. package/modules/tiledwebmap.src.js +1 -1
  251. package/modules/tilemap.js +1 -1
  252. package/modules/tilemap.src.js +1 -1
  253. package/modules/timeline.js +1 -1
  254. package/modules/timeline.src.js +1 -1
  255. package/modules/treegraph.js +1 -1
  256. package/modules/treegraph.src.js +1 -1
  257. package/modules/treegrid.js +1 -1
  258. package/modules/treegrid.src.js +1 -1
  259. package/modules/treemap.js +1 -1
  260. package/modules/treemap.src.js +1 -1
  261. package/modules/variable-pie.js +1 -1
  262. package/modules/variable-pie.src.js +1 -1
  263. package/modules/variwide.js +1 -1
  264. package/modules/variwide.src.js +1 -1
  265. package/modules/vector.js +1 -1
  266. package/modules/vector.src.js +1 -1
  267. package/modules/venn.js +1 -1
  268. package/modules/venn.src.js +1 -1
  269. package/modules/windbarb.js +1 -1
  270. package/modules/windbarb.src.js +1 -1
  271. package/modules/wordcloud.js +1 -1
  272. package/modules/wordcloud.src.js +1 -1
  273. package/modules/xrange.js +1 -1
  274. package/modules/xrange.src.js +1 -1
  275. package/package.json +1 -1
  276. package/standalone-navigator.js +3 -3
  277. package/standalone-navigator.src.js +38 -35
  278. package/themes/avocado.js +1 -1
  279. package/themes/avocado.src.js +1 -1
  280. package/themes/brand-dark.js +1 -1
  281. package/themes/brand-dark.src.js +1 -1
  282. package/themes/brand-light.js +1 -1
  283. package/themes/brand-light.src.js +1 -1
  284. package/themes/dark-blue.js +1 -1
  285. package/themes/dark-blue.src.js +1 -1
  286. package/themes/dark-green.js +1 -1
  287. package/themes/dark-green.src.js +1 -1
  288. package/themes/dark-unica.js +1 -1
  289. package/themes/dark-unica.src.js +1 -1
  290. package/themes/gray.js +1 -1
  291. package/themes/gray.src.js +1 -1
  292. package/themes/grid-light.js +1 -1
  293. package/themes/grid-light.src.js +1 -1
  294. package/themes/grid.js +1 -1
  295. package/themes/grid.src.js +1 -1
  296. package/themes/high-contrast-dark.js +1 -1
  297. package/themes/high-contrast-dark.src.js +1 -1
  298. package/themes/high-contrast-light.js +1 -1
  299. package/themes/high-contrast-light.src.js +1 -1
  300. package/themes/sand-signika.js +1 -1
  301. package/themes/sand-signika.src.js +1 -1
  302. package/themes/skies.js +1 -1
  303. package/themes/skies.src.js +1 -1
  304. package/themes/sunset.js +1 -1
  305. package/themes/sunset.src.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v12.1.0 (2024-12-17)
2
+ * @license Highcharts JS v12.1.2 (2024-12-21)
3
3
  * @module highcharts/highcharts
4
4
  *
5
5
  * (c) 2009-2024 Torstein Honsi
@@ -74,12 +74,12 @@ var Globals;
74
74
  * Constants
75
75
  *
76
76
  * */
77
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.0', Globals.win = (typeof window !== 'undefined' ?
77
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.1.2', Globals.win = (typeof window !== 'undefined' ?
78
78
  window :
79
79
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
80
80
  Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
81
81
  Globals.doc.createElementNS &&
82
- !!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
82
+ !!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.pageLang = Globals.doc?.documentElement?.closest('[lang]')?.lang, Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
83
83
  'plotTop',
84
84
  'marginRight',
85
85
  'marginBottom',
@@ -3500,7 +3500,7 @@ const SeriesPalettes = {
3500
3500
  * */
3501
3501
 
3502
3502
 
3503
- const { win: Time_win } = Core_Globals;
3503
+ const { pageLang, win: Time_win } = Core_Globals;
3504
3504
 
3505
3505
  const { defined: Time_defined, error: Time_error, extend: Time_extend, isNumber: Time_isNumber, isObject: Time_isObject, isString: Time_isString, merge: Time_merge, objectEach: Time_objectEach, pad: Time_pad, splat: Time_splat, timeUnits: Time_timeUnits, ucfirst: Time_ucfirst } = Core_Utilities;
3506
3506
  /* *
@@ -3527,9 +3527,17 @@ const spanishWeekdayIndex = (weekday) => ['D', 'L', 'M', 'X', 'J', 'V', 'S'].ind
3527
3527
  * `Highcharts.setOptions`, or individually for each Chart item through the
3528
3528
  * [time](https://api.highcharts.com/highcharts/time) options set.
3529
3529
  *
3530
- * The Time object is available from {@link Highcharts.Chart#time},
3531
- * which refers to `Highcharts.time` if no individual time settings are
3532
- * applied.
3530
+ * The Time object is available from {@link Highcharts.Chart#time}, which refers
3531
+ * to `Highcharts.time` unless individual time settings are applied for each
3532
+ * chart.
3533
+ *
3534
+ * When configuring time settings for individual chart instances, be aware that
3535
+ * using `Highcharts.dateFormat` or `Highcharts.time.dateFormat` within
3536
+ * formatter callbacks relies on the global time object, which applies the
3537
+ * global language and time zone settings. To ensure charts with local time
3538
+ * settings function correctly, use `chart.time.dateFormat? instead. However,
3539
+ * the recommended best practice is to use `setOptions` to define global time
3540
+ * settings unless specific configurations are needed for each chart.
3533
3541
  *
3534
3542
  * @example
3535
3543
  * // Apply time settings globally
@@ -3567,8 +3575,8 @@ const spanishWeekdayIndex = (weekday) => ['D', 'L', 'M', 'X', 'J', 'V', 'S'].ind
3567
3575
  * @class
3568
3576
  * @name Highcharts.Time
3569
3577
  *
3570
- * @param {Highcharts.TimeOptions} [options]
3571
- * Time options as defined in [chart.options.time](/highcharts/time).
3578
+ * @param {Highcharts.TimeOptions} [options] Time options as defined in
3579
+ * [chart.options.time](/highcharts/time).
3572
3580
  */
3573
3581
  class Time {
3574
3582
  /* *
@@ -3688,7 +3696,7 @@ class Time {
3688
3696
  /**
3689
3697
  * Shorthand to get a cached `Intl.DateTimeFormat` instance.
3690
3698
  */
3691
- dateTimeFormat(options, timestamp, locale = this.options.locale) {
3699
+ dateTimeFormat(options, timestamp, locale = this.options.locale || pageLang) {
3692
3700
  const cacheKey = JSON.stringify(options) + locale;
3693
3701
  if (Time_isString(options)) {
3694
3702
  options = this.str2dtf(options);
@@ -7066,14 +7074,6 @@ const defaultOptions = {
7066
7074
  text: 'Highcharts.com'
7067
7075
  }
7068
7076
  };
7069
- /* eslint-disable spaced-comment */
7070
- /*= if (!build.classic) { =*/
7071
- // Legacy build for styled mode, set the styledMode option to true by default.
7072
- defaultOptions.chart.styledMode = true;
7073
- /*= } else { =*/
7074
- defaultOptions.chart.styledMode = false;
7075
- /*= } =*/
7076
- '';
7077
7077
  const defaultTime = new Core_Time(defaultOptions.time);
7078
7078
  /**
7079
7079
  * Get the updated default options. Until 3.0.7, merely exposing defaultOptions
@@ -8834,7 +8834,7 @@ AST.bypassHTMLFiltering = false;
8834
8834
 
8835
8835
  const { defaultOptions: Templating_defaultOptions, defaultTime: Templating_defaultTime } = Defaults;
8836
8836
 
8837
- const { doc: Templating_doc } = Core_Globals;
8837
+ const { pageLang: Templating_pageLang } = Core_Globals;
8838
8838
 
8839
8839
  const { extend: Templating_extend, getNestedProperty: Templating_getNestedProperty, isArray: Templating_isArray, isNumber: Templating_isNumber, isObject: Templating_isObject, isString: Templating_isString, pick: Templating_pick, ucfirst: Templating_ucfirst } = Core_Utilities;
8840
8840
  const helpers = {
@@ -9187,16 +9187,16 @@ function numberFormat(number, decimals, decimalPoint, thousandsSep) {
9187
9187
  }
9188
9188
  const hasSeparators = thousandsSep || decimalPoint, locale = hasSeparators ?
9189
9189
  'en' :
9190
- (this?.locale ||
9191
- lang.locale ||
9192
- Templating_doc.body.closest('[lang]')?.lang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
9190
+ (this?.locale || lang.locale || Templating_pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
9193
9191
  ret = nf.format(number);
9194
9192
  // If thousandsSep or decimalPoint are set, fall back to using English
9195
9193
  // format with string replacement for the separators.
9196
9194
  if (hasSeparators) {
9197
9195
  ret = ret
9198
- .replace(/\,/g, thousandsSep ?? ',')
9199
- .replace('.', decimalPoint ?? '.');
9196
+ // Preliminary step to avoid re-swapping (#22402)
9197
+ .replace(/([,\.])/g, '_$1')
9198
+ .replace(/_\,/g, thousandsSep ?? ',')
9199
+ .replace('_.', decimalPoint ?? '.');
9200
9200
  }
9201
9201
  if (
9202
9202
  // Remove signed zero (#20564)
@@ -9691,9 +9691,7 @@ class SVGElement {
9691
9691
  * @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
9692
9692
  */
9693
9693
  align(alignOptions, alignByTranslate, alignTo, redraw = true) {
9694
- const attribs = {
9695
- 'text-align': alignOptions?.align
9696
- }, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions);
9694
+ const renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions);
9697
9695
  // First call on instanciate
9698
9696
  if (alignOptions) {
9699
9697
  this.alignOptions = alignOptions;
@@ -9725,7 +9723,9 @@ class SVGElement {
9725
9723
  // Default: top align
9726
9724
  y = (alignToBox.y || 0) + (alignOptions.y || 0) +
9727
9725
  ((alignToBox.height || 0) - (alignOptions.height || 0)) *
9728
- SVGElement_getAlignFactor(alignOptions.verticalAlign);
9726
+ SVGElement_getAlignFactor(alignOptions.verticalAlign), attribs = {
9727
+ 'text-align': alignOptions?.align
9728
+ };
9729
9729
  attribs[alignByTranslate ? 'translateX' : 'x'] = Math.round(x);
9730
9730
  attribs[alignByTranslate ? 'translateY' : 'y'] = Math.round(y);
9731
9731
  // Animate only if already placed
@@ -11608,7 +11608,9 @@ class SVGLabel extends SVG_SVGElement {
11608
11608
  this.boxAttr(key, value);
11609
11609
  }
11610
11610
  'text-alignSetter'(value) {
11611
- this.textAlign = value;
11611
+ // The text-align variety is for the pre-animation getter. The code
11612
+ // should be unified to either textAlign or text-align.
11613
+ this.textAlign = this['text-align'] = value;
11612
11614
  this.updateTextPadding();
11613
11615
  }
11614
11616
  textSetter(text) {
@@ -12636,7 +12638,7 @@ class SVGRenderer {
12636
12638
  this.url = this.getReferenceURL();
12637
12639
  // Add description
12638
12640
  const desc = this.createElement('desc').add();
12639
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.0'));
12641
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.1.2'));
12640
12642
  this.defs = this.createElement('defs').add();
12641
12643
  this.allowHTML = allowHTML;
12642
12644
  this.forExport = forExport;
@@ -27477,7 +27479,9 @@ class Pointer {
27477
27479
  hoverChart !== chart) {
27478
27480
  const relatedTargetObj = { relatedTarget: chart.container };
27479
27481
  if (e && !e?.relatedTarget) {
27480
- e = { ...relatedTargetObj, ...e };
27482
+ // #17192, Non-enumerable properties of "e" are dropped with
27483
+ // spreading (...e). Using Object.assign ensures integrity.
27484
+ Object.assign({}, e, relatedTargetObj);
27481
27485
  }
27482
27486
  hoverChart.pointer?.onContainerMouseLeave(e || relatedTargetObj);
27483
27487
  }
@@ -42627,9 +42631,8 @@ var DataLabel;
42627
42631
  (unrotatedbBox.width - bBox.width);
42628
42632
  dataLabel.alignAttr.y += DataLabel_getAlignFactor(options.verticalAlign) *
42629
42633
  (unrotatedbBox.height - bBox.height);
42630
- dataLabel.attr({
42631
- 'text-align': dataLabel.alignAttr['text-align'] || 'center'
42632
- })[dataLabel.placed ? 'animate' : 'attr']({
42634
+ dataLabel[dataLabel.placed ? 'animate' : 'attr']({
42635
+ 'text-align': dataLabel.alignAttr['text-align'] || 'center',
42633
42636
  x: dataLabel.alignAttr.x +
42634
42637
  (bBox.width - unrotatedbBox.width) / 2,
42635
42638
  y: dataLabel.alignAttr.y +
@@ -54320,7 +54323,7 @@ class RangeSelector {
54320
54323
  * exporting button
54321
54324
  */
54322
54325
  handleCollision(xOffsetForExportButton) {
54323
- const { chart, buttonGroup, inputGroup } = this;
54326
+ const { chart, buttonGroup, inputGroup, initialButtonGroupWidth } = this;
54324
54327
  const { buttonPosition, dropdown, inputPosition } = this.options;
54325
54328
  const moveInputsDown = () => {
54326
54329
  if (inputGroup && buttonGroup) {
@@ -54337,7 +54340,7 @@ class RangeSelector {
54337
54340
  if (inputGroup && buttonGroup) {
54338
54341
  if (inputPosition.align === buttonPosition.align) {
54339
54342
  moveInputsDown();
54340
- if (this.initialButtonGroupWidth >
54343
+ if (initialButtonGroupWidth >
54341
54344
  chart.plotWidth + xOffsetForExportButton - 20) {
54342
54345
  this.collapseButtons();
54343
54346
  }
@@ -54345,7 +54348,7 @@ class RangeSelector {
54345
54348
  this.expandButtons();
54346
54349
  }
54347
54350
  }
54348
- else if (this.initialButtonGroupWidth -
54351
+ else if (initialButtonGroupWidth -
54349
54352
  xOffsetForExportButton +
54350
54353
  inputGroup.getBBox().width >
54351
54354
  chart.plotWidth) {
@@ -54360,6 +54363,14 @@ class RangeSelector {
54360
54363
  this.expandButtons();
54361
54364
  }
54362
54365
  }
54366
+ else if (buttonGroup && dropdown === 'responsive') {
54367
+ if (initialButtonGroupWidth > chart.plotWidth) {
54368
+ this.collapseButtons();
54369
+ }
54370
+ else {
54371
+ this.expandButtons();
54372
+ }
54373
+ }
54363
54374
  // Forced states
54364
54375
  if (buttonGroup) {
54365
54376
  if (dropdown === 'always') {
@@ -56394,7 +56405,7 @@ Pathfinder.prototype.algorithms = PathfinderAlgorithms;
56394
56405
 
56395
56406
  ;// ./code/es-modules/masters/modules/pathfinder.src.js
56396
56407
  /**
56397
- * @license Highcharts Gantt JS v12.1.0 (2024-12-17)
56408
+ * @license Highcharts Gantt JS v12.1.2 (2024-12-21)
56398
56409
  * @module highcharts/modules/pathfinder
56399
56410
  * @requires highcharts
56400
56411
  *
@@ -56522,7 +56533,7 @@ const StaticScale = {
56522
56533
 
56523
56534
  ;// ./code/es-modules/masters/modules/static-scale.src.js
56524
56535
  /**
56525
- * @license Highcharts Gantt JS v12.1.0 (2024-12-17)
56536
+ * @license Highcharts Gantt JS v12.1.2 (2024-12-21)
56526
56537
  * @module highcharts/modules/static-scale
56527
56538
  * @requires highcharts
56528
56539
  *
@@ -57333,7 +57344,7 @@ Series_SeriesRegistry.registerSeriesType('xrange', XRangeSeries);
57333
57344
 
57334
57345
  ;// ./code/es-modules/masters/modules/xrange.src.js
57335
57346
  /**
57336
- * @license Highcharts JS v12.1.0 (2024-12-17)
57347
+ * @license Highcharts JS v12.1.2 (2024-12-21)
57337
57348
  * @module highcharts/modules/xrange
57338
57349
  * @requires highcharts
57339
57350
  *
@@ -60881,7 +60892,7 @@ Series_SeriesRegistry.registerSeriesType('gantt', GanttSeries);
60881
60892
 
60882
60893
  ;// ./code/es-modules/masters/modules/gantt.src.js
60883
60894
  /**
60884
- * @license Highcharts Gantt JS v12.1.0 (2024-12-17)
60895
+ * @license Highcharts Gantt JS v12.1.2 (2024-12-21)
60885
60896
  * @module highcharts/modules/gantt
60886
60897
  * @requires highcharts
60887
60898
  *
@@ -60925,7 +60936,7 @@ gantt_src_G.Scrollbar.compose(gantt_src_G.Axis);
60925
60936
 
60926
60937
  ;// ./code/es-modules/masters/highcharts-gantt.src.js
60927
60938
  /**
60928
- * @license Highcharts Gantt JS v12.1.0 (2024-12-17)
60939
+ * @license Highcharts Gantt JS v12.1.2 (2024-12-21)
60929
60940
  * @module highcharts/highcharts-gantt
60930
60941
  *
60931
60942
  * (c) 2017-2024 Lars Cabrera, Torstein Honsi, Jon Arild Nygard & Oystein Moseng
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highcharts JS v12.1.0 (2024-12-17)
2
+ * Highcharts JS v12.1.2 (2024-12-21)
3
3
  * @module highcharts/highcharts-more
4
4
  * @requires highcharts
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v12.1.0 (2024-12-17)
2
+ * @license Highcharts JS v12.1.2 (2024-12-21)
3
3
  * @module highcharts/highcharts-more
4
4
  * @requires highcharts
5
5
  *
package/highcharts.d.ts CHANGED
@@ -97913,7 +97913,15 @@ export class Tick {
97913
97913
  * options set.
97914
97914
  *
97915
97915
  * The Time object is available from Highcharts.Chart#time, which refers to
97916
- * `Highcharts.time` if no individual time settings are applied.
97916
+ * `Highcharts.time` unless individual time settings are applied for each chart.
97917
+ *
97918
+ * When configuring time settings for individual chart instances, be aware that
97919
+ * using `Highcharts.dateFormat` or `Highcharts.time.dateFormat` within
97920
+ * formatter callbacks relies on the global time object, which applies the
97921
+ * global language and time zone settings. To ensure charts with local time
97922
+ * settings function correctly, use `chart.time.dateFormat? instead. However,
97923
+ * the recommended best practice is to use `setOptions` to define global time
97924
+ * settings unless specific configurations are needed for each chart.
97917
97925
  */
97918
97926
  export class Time {
97919
97927
  /**
@@ -97922,7 +97930,17 @@ export class Time {
97922
97930
  * time options set.
97923
97931
  *
97924
97932
  * The Time object is available from Highcharts.Chart#time, which refers to
97925
- * `Highcharts.time` if no individual time settings are applied.
97933
+ * `Highcharts.time` unless individual time settings are applied for each
97934
+ * chart.
97935
+ *
97936
+ * When configuring time settings for individual chart instances, be aware
97937
+ * that using `Highcharts.dateFormat` or `Highcharts.time.dateFormat` within
97938
+ * formatter callbacks relies on the global time object, which applies the
97939
+ * global language and time zone settings. To ensure charts with local time
97940
+ * settings function correctly, use `chart.time.dateFormat? instead.
97941
+ * However, the recommended best practice is to use `setOptions` to define
97942
+ * global time settings unless specific configurations are needed for each
97943
+ * chart.
97926
97944
  *
97927
97945
  * @param options
97928
97946
  * Time options as defined in chart.options.time.