@highcharts/grid-pro 2.0.0

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 (442) hide show
  1. package/README.md +35 -0
  2. package/css/grid-pro.css +1756 -0
  3. package/es-modules/Accessibility/A11yI18n.d.ts +95 -0
  4. package/es-modules/Accessibility/A11yI18n.js +290 -0
  5. package/es-modules/Accessibility/Accessibility.d.ts +116 -0
  6. package/es-modules/Accessibility/Accessibility.js +402 -0
  7. package/es-modules/Accessibility/AccessibilityComponent.d.ts +97 -0
  8. package/es-modules/Accessibility/AccessibilityComponent.js +147 -0
  9. package/es-modules/Accessibility/Components/AnnotationsA11y.d.ts +43 -0
  10. package/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
  11. package/es-modules/Accessibility/Components/ContainerComponent.d.ts +48 -0
  12. package/es-modules/Accessibility/Components/ContainerComponent.js +142 -0
  13. package/es-modules/Accessibility/Components/InfoRegionsComponent.d.ts +144 -0
  14. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +555 -0
  15. package/es-modules/Accessibility/Components/LegendComponent.d.ts +124 -0
  16. package/es-modules/Accessibility/Components/LegendComponent.js +474 -0
  17. package/es-modules/Accessibility/Components/MenuComponent.d.ts +93 -0
  18. package/es-modules/Accessibility/Components/MenuComponent.js +430 -0
  19. package/es-modules/Accessibility/Components/NavigatorComponent.d.ts +57 -0
  20. package/es-modules/Accessibility/Components/NavigatorComponent.js +235 -0
  21. package/es-modules/Accessibility/Components/RangeSelectorComponent.d.ts +126 -0
  22. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +473 -0
  23. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.d.ts +18 -0
  24. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +234 -0
  25. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.d.ts +87 -0
  26. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +309 -0
  27. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.d.ts +53 -0
  28. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +130 -0
  29. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.d.ts +28 -0
  30. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +415 -0
  31. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.d.ts +114 -0
  32. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +721 -0
  33. package/es-modules/Accessibility/Components/ZoomComponent.d.ts +96 -0
  34. package/es-modules/Accessibility/Components/ZoomComponent.js +314 -0
  35. package/es-modules/Accessibility/FocusBorder.d.ts +40 -0
  36. package/es-modules/Accessibility/FocusBorder.js +301 -0
  37. package/es-modules/Accessibility/HighContrastMode.d.ts +35 -0
  38. package/es-modules/Accessibility/HighContrastMode.js +100 -0
  39. package/es-modules/Accessibility/HighContrastTheme.d.ts +11 -0
  40. package/es-modules/Accessibility/HighContrastTheme.js +212 -0
  41. package/es-modules/Accessibility/KeyboardNavigation.d.ts +133 -0
  42. package/es-modules/Accessibility/KeyboardNavigation.js +450 -0
  43. package/es-modules/Accessibility/KeyboardNavigationHandler.d.ts +48 -0
  44. package/es-modules/Accessibility/KeyboardNavigationHandler.js +126 -0
  45. package/es-modules/Accessibility/Options/A11yDefaults.d.ts +68 -0
  46. package/es-modules/Accessibility/Options/A11yDefaults.js +971 -0
  47. package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +22 -0
  48. package/es-modules/Accessibility/Options/DeprecatedOptions.js +265 -0
  49. package/es-modules/Accessibility/Options/LangDefaults.d.ts +4 -0
  50. package/es-modules/Accessibility/Options/LangDefaults.js +440 -0
  51. package/es-modules/Accessibility/ProxyElement.d.ts +78 -0
  52. package/es-modules/Accessibility/ProxyElement.js +223 -0
  53. package/es-modules/Accessibility/ProxyProvider.d.ts +90 -0
  54. package/es-modules/Accessibility/ProxyProvider.js +315 -0
  55. package/es-modules/Accessibility/Utils/Announcer.d.ts +26 -0
  56. package/es-modules/Accessibility/Utils/Announcer.js +90 -0
  57. package/es-modules/Accessibility/Utils/ChartUtilities.d.ts +90 -0
  58. package/es-modules/Accessibility/Utils/ChartUtilities.js +298 -0
  59. package/es-modules/Accessibility/Utils/DOMElementProvider.d.ts +20 -0
  60. package/es-modules/Accessibility/Utils/DOMElementProvider.js +69 -0
  61. package/es-modules/Accessibility/Utils/EventProvider.d.ts +26 -0
  62. package/es-modules/Accessibility/Utils/EventProvider.js +65 -0
  63. package/es-modules/Accessibility/Utils/HTMLUtilities.d.ts +108 -0
  64. package/es-modules/Accessibility/Utils/HTMLUtilities.js +319 -0
  65. package/es-modules/Core/Animation/AnimationUtilities.d.ts +107 -0
  66. package/es-modules/Core/Animation/AnimationUtilities.js +200 -0
  67. package/es-modules/Core/Animation/Fx.d.ts +130 -0
  68. package/es-modules/Core/Animation/Fx.js +388 -0
  69. package/es-modules/Core/Chart/Chart.d.ts +1009 -0
  70. package/es-modules/Core/Chart/Chart.js +3008 -0
  71. package/es-modules/Core/Chart/Chart3D.d.ts +276 -0
  72. package/es-modules/Core/Chart/Chart3D.js +1686 -0
  73. package/es-modules/Core/Chart/ChartDefaults.d.ts +8 -0
  74. package/es-modules/Core/Chart/ChartDefaults.js +1304 -0
  75. package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +55 -0
  76. package/es-modules/Core/Chart/ChartNavigationComposition.js +90 -0
  77. package/es-modules/Core/Chart/GanttChart.d.ts +74 -0
  78. package/es-modules/Core/Chart/GanttChart.js +189 -0
  79. package/es-modules/Core/Chart/MapChart.d.ts +132 -0
  80. package/es-modules/Core/Chart/MapChart.js +232 -0
  81. package/es-modules/Core/Chart/StockChart.d.ts +117 -0
  82. package/es-modules/Core/Chart/StockChart.js +641 -0
  83. package/es-modules/Core/Color/Color.d.ts +112 -0
  84. package/es-modules/Core/Color/Color.js +418 -0
  85. package/es-modules/Core/Color/Palettes.d.ts +84 -0
  86. package/es-modules/Core/Color/Palettes.js +23 -0
  87. package/es-modules/Core/Defaults.d.ts +42 -0
  88. package/es-modules/Core/Defaults.js +2977 -0
  89. package/es-modules/Core/Foundation.d.ts +19 -0
  90. package/es-modules/Core/Foundation.js +63 -0
  91. package/es-modules/Core/Geometry/CircleUtilities.d.ts +189 -0
  92. package/es-modules/Core/Geometry/CircleUtilities.js +388 -0
  93. package/es-modules/Core/Geometry/GeometryUtilities.d.ts +48 -0
  94. package/es-modules/Core/Geometry/GeometryUtilities.js +105 -0
  95. package/es-modules/Core/Geometry/PolygonClip.d.ts +19 -0
  96. package/es-modules/Core/Geometry/PolygonClip.js +96 -0
  97. package/es-modules/Core/Globals.d.ts +110 -0
  98. package/es-modules/Core/Globals.js +127 -0
  99. package/es-modules/Core/HttpUtilities.d.ts +61 -0
  100. package/es-modules/Core/HttpUtilities.js +214 -0
  101. package/es-modules/Core/MSPointer.d.ts +74 -0
  102. package/es-modules/Core/MSPointer.js +218 -0
  103. package/es-modules/Core/Math3D.d.ts +117 -0
  104. package/es-modules/Core/Math3D.js +250 -0
  105. package/es-modules/Core/Pointer.d.ts +590 -0
  106. package/es-modules/Core/Pointer.js +1631 -0
  107. package/es-modules/Core/Renderer/HTML/AST.d.ts +163 -0
  108. package/es-modules/Core/Renderer/HTML/AST.js +562 -0
  109. package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +76 -0
  110. package/es-modules/Core/Renderer/HTML/HTMLElement.js +471 -0
  111. package/es-modules/Core/Renderer/RendererRegistry.d.ts +29 -0
  112. package/es-modules/Core/Renderer/RendererRegistry.js +76 -0
  113. package/es-modules/Core/Renderer/RendererUtilities.d.ts +26 -0
  114. package/es-modules/Core/Renderer/RendererUtilities.js +172 -0
  115. package/es-modules/Core/Responsive.d.ts +55 -0
  116. package/es-modules/Core/Responsive.js +260 -0
  117. package/es-modules/Core/Templating.d.ts +125 -0
  118. package/es-modules/Core/Templating.js +428 -0
  119. package/es-modules/Core/Time.d.ts +69 -0
  120. package/es-modules/Core/Time.js +172 -0
  121. package/es-modules/Core/Tooltip.d.ts +297 -0
  122. package/es-modules/Core/Tooltip.js +1377 -0
  123. package/es-modules/Core/Utilities.d.ts +770 -0
  124. package/es-modules/Core/Utilities.js +1989 -0
  125. package/es-modules/Data/ColumnUtils.d.ts +87 -0
  126. package/es-modules/Data/ColumnUtils.js +140 -0
  127. package/es-modules/Data/Connectors/CSVConnector.d.ts +63 -0
  128. package/es-modules/Data/Connectors/CSVConnector.js +149 -0
  129. package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +149 -0
  130. package/es-modules/Data/Connectors/DataConnector.d.ts +204 -0
  131. package/es-modules/Data/Connectors/DataConnector.js +345 -0
  132. package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +87 -0
  133. package/es-modules/Data/Connectors/DataConnectorType.d.ts +45 -0
  134. package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +65 -0
  135. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +226 -0
  136. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +167 -0
  137. package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +77 -0
  138. package/es-modules/Data/Connectors/HTMLTableConnector.js +119 -0
  139. package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +49 -0
  140. package/es-modules/Data/Connectors/JSONConnector.d.ts +64 -0
  141. package/es-modules/Data/Connectors/JSONConnector.js +156 -0
  142. package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +185 -0
  143. package/es-modules/Data/Converters/CSVConverter.d.ts +64 -0
  144. package/es-modules/Data/Converters/CSVConverter.js +374 -0
  145. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +53 -0
  146. package/es-modules/Data/Converters/DataConverter.d.ts +168 -0
  147. package/es-modules/Data/Converters/DataConverter.js +387 -0
  148. package/es-modules/Data/Converters/DataConverterType.d.ts +40 -0
  149. package/es-modules/Data/Converters/DataConverterUtils.d.ts +82 -0
  150. package/es-modules/Data/Converters/DataConverterUtils.js +216 -0
  151. package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +46 -0
  152. package/es-modules/Data/Converters/GoogleSheetsConverter.js +135 -0
  153. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +52 -0
  154. package/es-modules/Data/Converters/HTMLTableConverter.d.ts +72 -0
  155. package/es-modules/Data/Converters/HTMLTableConverter.js +362 -0
  156. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +51 -0
  157. package/es-modules/Data/Converters/JSONConverter.d.ts +99 -0
  158. package/es-modules/Data/Converters/JSONConverter.js +239 -0
  159. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +52 -0
  160. package/es-modules/Data/DataCursor.d.ts +176 -0
  161. package/es-modules/Data/DataCursor.js +379 -0
  162. package/es-modules/Data/DataEvent.d.ts +81 -0
  163. package/es-modules/Data/DataEvent.js +14 -0
  164. package/es-modules/Data/DataPool.d.ts +130 -0
  165. package/es-modules/Data/DataPool.js +257 -0
  166. package/es-modules/Data/DataPoolOptions.d.ts +66 -0
  167. package/es-modules/Data/DataTable.d.ts +563 -0
  168. package/es-modules/Data/DataTable.js +930 -0
  169. package/es-modules/Data/DataTableCore.d.ts +165 -0
  170. package/es-modules/Data/DataTableCore.js +316 -0
  171. package/es-modules/Data/DataTableOptions.d.ts +25 -0
  172. package/es-modules/Data/DataTableOptions.js +15 -0
  173. package/es-modules/Data/Formula/Formula.d.ts +21 -0
  174. package/es-modules/Data/Formula/Formula.js +54 -0
  175. package/es-modules/Data/Formula/FormulaParser.d.ts +31 -0
  176. package/es-modules/Data/Formula/FormulaParser.js +488 -0
  177. package/es-modules/Data/Formula/FormulaProcessor.d.ts +155 -0
  178. package/es-modules/Data/Formula/FormulaProcessor.js +529 -0
  179. package/es-modules/Data/Formula/FormulaTypes.d.ts +138 -0
  180. package/es-modules/Data/Formula/FormulaTypes.js +135 -0
  181. package/es-modules/Data/Formula/Functions/ABS.d.ts +19 -0
  182. package/es-modules/Data/Formula/Functions/ABS.js +67 -0
  183. package/es-modules/Data/Formula/Functions/AND.d.ts +20 -0
  184. package/es-modules/Data/Formula/Functions/AND.js +59 -0
  185. package/es-modules/Data/Formula/Functions/AVERAGE.d.ts +20 -0
  186. package/es-modules/Data/Formula/Functions/AVERAGE.js +74 -0
  187. package/es-modules/Data/Formula/Functions/AVERAGEA.d.ts +20 -0
  188. package/es-modules/Data/Formula/Functions/AVERAGEA.js +90 -0
  189. package/es-modules/Data/Formula/Functions/COUNT.d.ts +20 -0
  190. package/es-modules/Data/Formula/Functions/COUNT.js +65 -0
  191. package/es-modules/Data/Formula/Functions/COUNTA.d.ts +20 -0
  192. package/es-modules/Data/Formula/Functions/COUNTA.js +71 -0
  193. package/es-modules/Data/Formula/Functions/IF.d.ts +21 -0
  194. package/es-modules/Data/Formula/Functions/IF.js +54 -0
  195. package/es-modules/Data/Formula/Functions/ISNA.d.ts +20 -0
  196. package/es-modules/Data/Formula/Functions/ISNA.js +52 -0
  197. package/es-modules/Data/Formula/Functions/MAX.d.ts +20 -0
  198. package/es-modules/Data/Formula/Functions/MAX.js +69 -0
  199. package/es-modules/Data/Formula/Functions/MEDIAN.d.ts +20 -0
  200. package/es-modules/Data/Formula/Functions/MEDIAN.js +78 -0
  201. package/es-modules/Data/Formula/Functions/MIN.d.ts +20 -0
  202. package/es-modules/Data/Formula/Functions/MIN.js +69 -0
  203. package/es-modules/Data/Formula/Functions/MOD.d.ts +20 -0
  204. package/es-modules/Data/Formula/Functions/MOD.js +63 -0
  205. package/es-modules/Data/Formula/Functions/MODE.d.ts +41 -0
  206. package/es-modules/Data/Formula/Functions/MODE.js +149 -0
  207. package/es-modules/Data/Formula/Functions/NOT.d.ts +20 -0
  208. package/es-modules/Data/Formula/Functions/NOT.js +60 -0
  209. package/es-modules/Data/Formula/Functions/OR.d.ts +20 -0
  210. package/es-modules/Data/Formula/Functions/OR.js +62 -0
  211. package/es-modules/Data/Formula/Functions/PRODUCT.d.ts +20 -0
  212. package/es-modules/Data/Formula/Functions/PRODUCT.js +68 -0
  213. package/es-modules/Data/Formula/Functions/SUM.d.ts +20 -0
  214. package/es-modules/Data/Formula/Functions/SUM.js +65 -0
  215. package/es-modules/Data/Formula/Functions/XOR.d.ts +20 -0
  216. package/es-modules/Data/Formula/Functions/XOR.js +81 -0
  217. package/es-modules/Data/Modifiers/ChainModifier.d.ts +128 -0
  218. package/es-modules/Data/Modifiers/ChainModifier.js +231 -0
  219. package/es-modules/Data/Modifiers/ChainModifierOptions.d.ts +20 -0
  220. package/es-modules/Data/Modifiers/ChainModifierOptions.js +14 -0
  221. package/es-modules/Data/Modifiers/DataModifier.d.ts +117 -0
  222. package/es-modules/Data/Modifiers/DataModifier.js +202 -0
  223. package/es-modules/Data/Modifiers/DataModifierEvent.d.ts +28 -0
  224. package/es-modules/Data/Modifiers/DataModifierEvent.js +15 -0
  225. package/es-modules/Data/Modifiers/DataModifierOptions.d.ts +11 -0
  226. package/es-modules/Data/Modifiers/DataModifierOptions.js +15 -0
  227. package/es-modules/Data/Modifiers/DataModifierType.d.ts +44 -0
  228. package/es-modules/Data/Modifiers/FilterModifier.d.ts +53 -0
  229. package/es-modules/Data/Modifiers/FilterModifier.js +172 -0
  230. package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +110 -0
  231. package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
  232. package/es-modules/Data/Modifiers/InvertModifier.d.ts +48 -0
  233. package/es-modules/Data/Modifiers/InvertModifier.js +116 -0
  234. package/es-modules/Data/Modifiers/InvertModifierOptions.d.ts +11 -0
  235. package/es-modules/Data/Modifiers/InvertModifierOptions.js +15 -0
  236. package/es-modules/Data/Modifiers/MathModifier.d.ts +68 -0
  237. package/es-modules/Data/Modifiers/MathModifier.js +165 -0
  238. package/es-modules/Data/Modifiers/MathModifierOptions.d.ts +50 -0
  239. package/es-modules/Data/Modifiers/MathModifierOptions.js +14 -0
  240. package/es-modules/Data/Modifiers/RangeModifier.d.ts +46 -0
  241. package/es-modules/Data/Modifiers/RangeModifier.js +96 -0
  242. package/es-modules/Data/Modifiers/RangeModifierOptions.d.ts +22 -0
  243. package/es-modules/Data/Modifiers/RangeModifierOptions.js +15 -0
  244. package/es-modules/Data/Modifiers/SortModifier.d.ts +54 -0
  245. package/es-modules/Data/Modifiers/SortModifier.js +144 -0
  246. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +44 -0
  247. package/es-modules/Data/Modifiers/SortModifierOptions.js +14 -0
  248. package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +148 -0
  249. package/es-modules/Grid/Core/Accessibility/A11yOptions.js +17 -0
  250. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +115 -0
  251. package/es-modules/Grid/Core/Accessibility/Accessibility.js +231 -0
  252. package/es-modules/Grid/Core/Credits.d.ts +57 -0
  253. package/es-modules/Grid/Core/Credits.js +125 -0
  254. package/es-modules/Grid/Core/Defaults.d.ts +20 -0
  255. package/es-modules/Grid/Core/Defaults.js +148 -0
  256. package/es-modules/Grid/Core/Globals.d.ts +103 -0
  257. package/es-modules/Grid/Core/Globals.js +134 -0
  258. package/es-modules/Grid/Core/Grid.d.ts +295 -0
  259. package/es-modules/Grid/Core/Grid.js +730 -0
  260. package/es-modules/Grid/Core/GridUtils.d.ts +110 -0
  261. package/es-modules/Grid/Core/GridUtils.js +191 -0
  262. package/es-modules/Grid/Core/Options.d.ts +599 -0
  263. package/es-modules/Grid/Core/Options.js +16 -0
  264. package/es-modules/Grid/Core/Pagination/Icons.d.ts +7 -0
  265. package/es-modules/Grid/Core/Pagination/Icons.js +7 -0
  266. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +278 -0
  267. package/es-modules/Grid/Core/Pagination/Pagination.js +842 -0
  268. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +228 -0
  269. package/es-modules/Grid/Core/Querying/FilteringController.d.ts +66 -0
  270. package/es-modules/Grid/Core/Querying/FilteringController.js +256 -0
  271. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +50 -0
  272. package/es-modules/Grid/Core/Querying/PaginationController.js +101 -0
  273. package/es-modules/Grid/Core/Querying/QueryingController.d.ts +58 -0
  274. package/es-modules/Grid/Core/Querying/QueryingController.js +127 -0
  275. package/es-modules/Grid/Core/Querying/SortingController.d.ts +67 -0
  276. package/es-modules/Grid/Core/Querying/SortingController.js +136 -0
  277. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.d.ts +114 -0
  278. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +351 -0
  279. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +14 -0
  280. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +86 -0
  281. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +19 -0
  282. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +80 -0
  283. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.d.ts +52 -0
  284. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +81 -0
  285. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +56 -0
  286. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +170 -0
  287. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.d.ts +55 -0
  288. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +182 -0
  289. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +87 -0
  290. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +346 -0
  291. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +88 -0
  292. package/es-modules/Grid/Core/Table/Body/TableCell.js +231 -0
  293. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +79 -0
  294. package/es-modules/Grid/Core/Table/Body/TableRow.js +177 -0
  295. package/es-modules/Grid/Core/Table/Cell.d.ts +92 -0
  296. package/es-modules/Grid/Core/Table/Cell.js +223 -0
  297. package/es-modules/Grid/Core/Table/CellContent/CellContent.d.ts +30 -0
  298. package/es-modules/Grid/Core/Table/CellContent/CellContent.js +40 -0
  299. package/es-modules/Grid/Core/Table/CellContent/TextContent.d.ts +19 -0
  300. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +98 -0
  301. package/es-modules/Grid/Core/Table/Column.d.ts +136 -0
  302. package/es-modules/Grid/Core/Table/Column.js +230 -0
  303. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.d.ts +7 -0
  304. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +62 -0
  305. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.d.ts +32 -0
  306. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +68 -0
  307. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.d.ts +7 -0
  308. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +53 -0
  309. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.d.ts +7 -0
  310. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +63 -0
  311. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.d.ts +92 -0
  312. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +194 -0
  313. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +68 -0
  314. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +187 -0
  315. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.d.ts +29 -0
  316. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +77 -0
  317. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.d.ts +13 -0
  318. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +79 -0
  319. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +12 -0
  320. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +71 -0
  321. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.d.ts +12 -0
  322. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +66 -0
  323. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.d.ts +25 -0
  324. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +65 -0
  325. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.d.ts +12 -0
  326. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +81 -0
  327. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.d.ts +12 -0
  328. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +80 -0
  329. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +11 -0
  330. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +81 -0
  331. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +70 -0
  332. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +225 -0
  333. package/es-modules/Grid/Core/Table/Header/HeaderRow.d.ts +53 -0
  334. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +182 -0
  335. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +65 -0
  336. package/es-modules/Grid/Core/Table/Header/TableHeader.js +159 -0
  337. package/es-modules/Grid/Core/Table/Row.d.ts +76 -0
  338. package/es-modules/Grid/Core/Table/Row.js +131 -0
  339. package/es-modules/Grid/Core/Table/Table.d.ts +181 -0
  340. package/es-modules/Grid/Core/Table/Table.js +399 -0
  341. package/es-modules/Grid/Core/UI/Button.d.ts +31 -0
  342. package/es-modules/Grid/Core/UI/Button.js +16 -0
  343. package/es-modules/Grid/Core/UI/ContextMenu.d.ts +38 -0
  344. package/es-modules/Grid/Core/UI/ContextMenu.js +132 -0
  345. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +126 -0
  346. package/es-modules/Grid/Core/UI/ContextMenuButton.js +183 -0
  347. package/es-modules/Grid/Core/UI/Popup.d.ts +149 -0
  348. package/es-modules/Grid/Core/UI/Popup.js +271 -0
  349. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +53 -0
  350. package/es-modules/Grid/Core/UI/SvgIcons.js +158 -0
  351. package/es-modules/Grid/Core/UI/Toolbar.d.ts +16 -0
  352. package/es-modules/Grid/Core/UI/Toolbar.js +16 -0
  353. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +135 -0
  354. package/es-modules/Grid/Core/UI/ToolbarButton.js +191 -0
  355. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +112 -0
  356. package/es-modules/Grid/Pro/CellEditing/CellEditing.d.ts +80 -0
  357. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +211 -0
  358. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.d.ts +123 -0
  359. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +198 -0
  360. package/es-modules/Grid/Pro/CellRendering/CellContentPro.d.ts +23 -0
  361. package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +45 -0
  362. package/es-modules/Grid/Pro/CellRendering/CellRenderer.d.ts +50 -0
  363. package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +41 -0
  364. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.d.ts +18 -0
  365. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +58 -0
  366. package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +48 -0
  367. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +18 -0
  368. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +79 -0
  369. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +30 -0
  370. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +122 -0
  371. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.d.ts +12 -0
  372. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +39 -0
  373. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.d.ts +66 -0
  374. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +145 -0
  375. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.d.ts +12 -0
  376. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +38 -0
  377. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.d.ts +58 -0
  378. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +158 -0
  379. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +58 -0
  380. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +173 -0
  381. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +28 -0
  382. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +157 -0
  383. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +58 -0
  384. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +168 -0
  385. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.d.ts +13 -0
  386. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +41 -0
  387. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.d.ts +50 -0
  388. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +65 -0
  389. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.d.ts +37 -0
  390. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +65 -0
  391. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.d.ts +26 -0
  392. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +16 -0
  393. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.d.ts +37 -0
  394. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +64 -0
  395. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.d.ts +52 -0
  396. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +64 -0
  397. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.d.ts +74 -0
  398. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +66 -0
  399. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +45 -0
  400. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +89 -0
  401. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.d.ts +54 -0
  402. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +65 -0
  403. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.d.ts +43 -0
  404. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +74 -0
  405. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.d.ts +37 -0
  406. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +64 -0
  407. package/es-modules/Grid/Pro/ColumnTypes/ColumnDataType.d.ts +29 -0
  408. package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +118 -0
  409. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +270 -0
  410. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +32 -0
  411. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +63 -0
  412. package/es-modules/Grid/Pro/Credits/CreditsPro.d.ts +35 -0
  413. package/es-modules/Grid/Pro/Credits/CreditsPro.js +112 -0
  414. package/es-modules/Grid/Pro/Credits/CreditsProComposition.d.ts +28 -0
  415. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +61 -0
  416. package/es-modules/Grid/Pro/Export/Exporting.d.ts +68 -0
  417. package/es-modules/Grid/Pro/Export/Exporting.js +202 -0
  418. package/es-modules/Grid/Pro/Export/ExportingComposition.d.ts +68 -0
  419. package/es-modules/Grid/Pro/Export/ExportingComposition.js +55 -0
  420. package/es-modules/Grid/Pro/GridEvents.d.ts +119 -0
  421. package/es-modules/Grid/Pro/GridEvents.js +107 -0
  422. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +75 -0
  423. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +76 -0
  424. package/es-modules/Grid/Pro/highcharts.d.ts +7 -0
  425. package/es-modules/Grid/index.d.ts +5 -0
  426. package/es-modules/Grid/index.js +19 -0
  427. package/es-modules/Shared/BaseForm.d.ts +49 -0
  428. package/es-modules/Shared/BaseForm.js +126 -0
  429. package/es-modules/Shared/DownloadURL.d.ts +85 -0
  430. package/es-modules/Shared/DownloadURL.js +198 -0
  431. package/es-modules/Shared/LangOptionsCore.d.ts +27 -0
  432. package/es-modules/Shared/TimeBase.d.ts +353 -0
  433. package/es-modules/Shared/TimeBase.js +830 -0
  434. package/es-modules/Shared/Types.d.ts +48 -0
  435. package/es-modules/masters/grid-pro.src.d.ts +99 -0
  436. package/es-modules/masters/grid-pro.src.js +129 -0
  437. package/grid-pro.d.ts +50 -0
  438. package/grid-pro.js +12 -0
  439. package/grid-pro.js.map +1 -0
  440. package/grid-pro.src.d.ts +50 -0
  441. package/grid-pro.src.js +26623 -0
  442. package/package.json +21 -0
@@ -0,0 +1,721 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Øystein Moseng
4
+ *
5
+ * Handle keyboard navigation for series.
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * */
12
+ 'use strict';
13
+ import Point from '../../../Core/Series/Point.js';
14
+ import Series from '../../../Core/Series/Series.js';
15
+ import SeriesRegistry from '../../../Core/Series/SeriesRegistry.js';
16
+ const { seriesTypes } = SeriesRegistry;
17
+ import H from '../../../Core/Globals.js';
18
+ const { doc } = H;
19
+ import U from '../../../Core/Utilities.js';
20
+ const { defined, fireEvent } = U;
21
+ import KeyboardNavigationHandler from '../../KeyboardNavigationHandler.js';
22
+ import EventProvider from '../../Utils/EventProvider.js';
23
+ import ChartUtilities from '../../Utils/ChartUtilities.js';
24
+ const { getPointFromXY, getSeriesFromName, scrollAxisToPoint } = ChartUtilities;
25
+ /* *
26
+ *
27
+ * Functions
28
+ *
29
+ * */
30
+ /* eslint-disable valid-jsdoc */
31
+ /**
32
+ * Get the index of a point in a series. This is needed when using e.g. data
33
+ * grouping.
34
+ *
35
+ * @private
36
+ * @function getPointIndex
37
+ * @param {Highcharts.AccessibilityPoint} point
38
+ * The point to find index of.
39
+ * @return {number|undefined}
40
+ * The index in the series.points array of the point.
41
+ */
42
+ function getPointIndex(point) {
43
+ const index = point.index, points = point.series.points;
44
+ let i = points.length;
45
+ if (points[index] !== point) {
46
+ while (i--) {
47
+ if (points[i] === point) {
48
+ return i;
49
+ }
50
+ }
51
+ }
52
+ else {
53
+ return index;
54
+ }
55
+ }
56
+ /**
57
+ * Determine if series navigation should be skipped
58
+ * @private
59
+ */
60
+ function isSkipSeries(series) {
61
+ const a11yOptions = series.chart.options.accessibility, seriesNavOptions = a11yOptions.keyboardNavigation.seriesNavigation, seriesA11yOptions = series.options.accessibility || {}, seriesKbdNavOptions = seriesA11yOptions.keyboardNavigation;
62
+ return seriesKbdNavOptions && seriesKbdNavOptions.enabled === false ||
63
+ seriesA11yOptions.enabled === false ||
64
+ series.options.enableMouseTracking === false || // #8440
65
+ !series.visible ||
66
+ // Skip all points in a series where pointNavigationEnabledThreshold is
67
+ // reached
68
+ (seriesNavOptions.pointNavigationEnabledThreshold &&
69
+ +seriesNavOptions.pointNavigationEnabledThreshold <=
70
+ series.points.length);
71
+ }
72
+ /**
73
+ * Determine if navigation for a point should be skipped
74
+ * @private
75
+ */
76
+ function isSkipPoint(point) {
77
+ const series = point.series, nullInteraction = series.options.nullInteraction, pointOptions = point.options, pointA11yOptions = pointOptions.accessibility, a11yOptions = series.chart.options.accessibility, pointA11yDisabled = pointA11yOptions?.enabled === false;
78
+ return a11yOptions
79
+ .keyboardNavigation
80
+ .seriesNavigation
81
+ .skipNullPoints ?? (!(!point.isNull || nullInteraction) &&
82
+ point.visible === false ||
83
+ point.isInside === false ||
84
+ pointA11yDisabled ||
85
+ isSkipSeries(series));
86
+ }
87
+ /**
88
+ * Get the first point that is not a skip point in this series.
89
+ * @private
90
+ */
91
+ function getFirstValidPointInSeries(series) {
92
+ const points = series.points || [], len = points.length;
93
+ for (let i = 0; i < len; ++i) {
94
+ if (!isSkipPoint(points[i])) {
95
+ return points[i];
96
+ }
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * Get the first point that is not a skip point in this chart.
102
+ * @private
103
+ */
104
+ function getFirstValidPointInChart(chart) {
105
+ const series = chart.series || [], len = series.length;
106
+ for (let i = 0; i < len; ++i) {
107
+ if (!isSkipSeries(series[i])) {
108
+ const point = getFirstValidPointInSeries(series[i]);
109
+ if (point) {
110
+ return point;
111
+ }
112
+ }
113
+ }
114
+ return null;
115
+ }
116
+ /**
117
+ * @private
118
+ */
119
+ function highlightLastValidPointInChart(chart) {
120
+ const numSeries = chart.series.length;
121
+ let i = numSeries, res = false;
122
+ while (i--) {
123
+ chart.highlightedPoint = chart.series[i].points[chart.series[i].points.length - 1];
124
+ // Highlight first valid point in the series will also
125
+ // look backwards. It always starts from currently
126
+ // highlighted point.
127
+ res = chart.series[i].highlightNextValidPoint();
128
+ if (res) {
129
+ break;
130
+ }
131
+ }
132
+ return res;
133
+ }
134
+ /**
135
+ * After drilling down/up, we need to set focus to the first point for
136
+ * screen readers and keyboard nav.
137
+ * @private
138
+ */
139
+ function updateChartFocusAfterDrilling(chart) {
140
+ const point = getFirstValidPointInChart(chart);
141
+ if (point) {
142
+ point.highlight(false); // Do not visually highlight
143
+ }
144
+ }
145
+ /**
146
+ * Highlight the first point in chart that is not a skip point
147
+ * @private
148
+ */
149
+ function highlightFirstValidPointInChart(chart) {
150
+ delete chart.highlightedPoint;
151
+ const point = getFirstValidPointInChart(chart);
152
+ return point ? point.highlight() : false;
153
+ }
154
+ /* *
155
+ *
156
+ * Class
157
+ *
158
+ * */
159
+ /**
160
+ * @private
161
+ * @class
162
+ * @name Highcharts.SeriesKeyboardNavigation
163
+ */
164
+ class SeriesKeyboardNavigation {
165
+ /* *
166
+ *
167
+ * Constructor
168
+ *
169
+ * */
170
+ constructor(chart, keyCodes) {
171
+ this.keyCodes = keyCodes;
172
+ this.chart = chart;
173
+ }
174
+ /* *
175
+ *
176
+ * Functions
177
+ *
178
+ * */
179
+ /* eslint-disable valid-jsdoc */
180
+ /**
181
+ * Init the keyboard navigation
182
+ */
183
+ init() {
184
+ const keyboardNavigation = this, chart = this.chart, e = this.eventProvider = new EventProvider();
185
+ e.addEvent(Series, 'destroy', function () {
186
+ return keyboardNavigation.onSeriesDestroy(this);
187
+ });
188
+ e.addEvent(chart, 'afterApplyDrilldown', function () {
189
+ updateChartFocusAfterDrilling(this);
190
+ });
191
+ e.addEvent(chart, 'drilldown', function (e) {
192
+ const point = e.point, series = point.series;
193
+ keyboardNavigation.lastDrilledDownPoint = {
194
+ x: point.x,
195
+ y: point.y,
196
+ seriesName: series ? series.name : ''
197
+ };
198
+ });
199
+ e.addEvent(chart, 'drillupall', function () {
200
+ setTimeout(function () {
201
+ keyboardNavigation.onDrillupAll();
202
+ }, 10);
203
+ });
204
+ // Heatmaps et al. alter z-index in setState, causing elements
205
+ // to lose focus
206
+ e.addEvent(Point, 'afterSetState', function () {
207
+ const point = this;
208
+ const pointEl = point.graphic && point.graphic.element;
209
+ const focusedElement = doc.activeElement;
210
+ // VO brings focus with it to container, causing series nav to run.
211
+ // If then navigating with virtual cursor, it is possible to leave
212
+ // keyboard nav module state on the data points and still activate
213
+ // proxy buttons.
214
+ const focusedElClassName = (focusedElement && focusedElement.getAttribute('class'));
215
+ const isProxyFocused = focusedElClassName &&
216
+ focusedElClassName.indexOf('highcharts-a11y-proxy-element') > -1;
217
+ if (chart.highlightedPoint === point &&
218
+ focusedElement !== pointEl &&
219
+ !isProxyFocused &&
220
+ pointEl &&
221
+ pointEl.focus) {
222
+ pointEl.focus();
223
+ }
224
+ });
225
+ }
226
+ /**
227
+ * After drillup we want to find the point that was drilled down to and
228
+ * highlight it.
229
+ * @private
230
+ */
231
+ onDrillupAll() {
232
+ const last = this.lastDrilledDownPoint, chart = this.chart, series = last && getSeriesFromName(chart, last.seriesName);
233
+ let point;
234
+ if (last && series && defined(last.x) && defined(last.y)) {
235
+ point = getPointFromXY(series, last.x, last.y);
236
+ }
237
+ point = point || getFirstValidPointInChart(chart);
238
+ // Container focus can be lost on drillup due to deleted elements.
239
+ if (chart.container) {
240
+ chart.container.focus();
241
+ }
242
+ if (point && point.highlight) {
243
+ point.highlight(false); // Do not visually highlight
244
+ }
245
+ }
246
+ /**
247
+ * @private
248
+ */
249
+ getKeyboardNavigationHandler() {
250
+ const keyboardNavigation = this, keys = this.keyCodes, chart = this.chart, inverted = chart.inverted;
251
+ return new KeyboardNavigationHandler(chart, {
252
+ keyCodeMap: [
253
+ [
254
+ inverted ? [keys.up, keys.down] : [keys.left, keys.right],
255
+ function (keyCode) {
256
+ return keyboardNavigation.onKbdSideways(this, keyCode);
257
+ }
258
+ ],
259
+ [
260
+ inverted ? [keys.left, keys.right] : [keys.up, keys.down],
261
+ function (keyCode) {
262
+ return keyboardNavigation.onKbdVertical(this, keyCode);
263
+ }
264
+ ],
265
+ [
266
+ [keys.enter, keys.space],
267
+ function (keyCode, event) {
268
+ const point = chart.highlightedPoint;
269
+ if (point) {
270
+ const { plotLeft, plotTop } = this.chart, { plotX = 0, plotY = 0 } = point;
271
+ event = {
272
+ ...event,
273
+ chartX: plotLeft + plotX,
274
+ chartY: plotTop + plotY,
275
+ point: point,
276
+ target: point.graphic?.element || event.target
277
+ };
278
+ fireEvent(point.series, 'click', event);
279
+ point.firePointEvent('click', event);
280
+ }
281
+ return this.response.success;
282
+ }
283
+ ],
284
+ [
285
+ [keys.home],
286
+ function () {
287
+ highlightFirstValidPointInChart(chart);
288
+ return this.response.success;
289
+ }
290
+ ],
291
+ [
292
+ [keys.end],
293
+ function () {
294
+ highlightLastValidPointInChart(chart);
295
+ return this.response.success;
296
+ }
297
+ ],
298
+ [
299
+ [keys.pageDown, keys.pageUp],
300
+ function (keyCode) {
301
+ chart.highlightAdjacentSeries(keyCode === keys.pageDown);
302
+ return this.response.success;
303
+ }
304
+ ]
305
+ ],
306
+ init: function () {
307
+ return keyboardNavigation.onHandlerInit(this);
308
+ },
309
+ validate: function () {
310
+ return !!getFirstValidPointInChart(chart);
311
+ },
312
+ terminate: function () {
313
+ return keyboardNavigation.onHandlerTerminate();
314
+ }
315
+ });
316
+ }
317
+ /**
318
+ * @private
319
+ * @param {Highcharts.KeyboardNavigationHandler} handler
320
+ * @param {number} keyCode
321
+ * @return {number}
322
+ * response
323
+ */
324
+ onKbdSideways(handler, keyCode) {
325
+ const keys = this.keyCodes, isNext = keyCode === keys.right || keyCode === keys.down;
326
+ return this.attemptHighlightAdjacentPoint(handler, isNext);
327
+ }
328
+ /**
329
+ * When keyboard navigation inits.
330
+ * @private
331
+ * @param {Highcharts.KeyboardNavigationHandler} handler The handler object
332
+ * @return {number}
333
+ * response
334
+ */
335
+ onHandlerInit(handler) {
336
+ const chart = this.chart, kbdNavOptions = chart.options.accessibility.keyboardNavigation;
337
+ if (kbdNavOptions.seriesNavigation.rememberPointFocus &&
338
+ chart.highlightedPoint) {
339
+ chart.highlightedPoint.highlight();
340
+ }
341
+ else {
342
+ highlightFirstValidPointInChart(chart);
343
+ }
344
+ return handler.response.success;
345
+ }
346
+ /**
347
+ * @private
348
+ * @param {Highcharts.KeyboardNavigationHandler} handler
349
+ * @param {number} keyCode
350
+ * @return {number}
351
+ * response
352
+ */
353
+ onKbdVertical(handler, keyCode) {
354
+ const chart = this.chart, keys = this.keyCodes, isNext = keyCode === keys.down || keyCode === keys.right, navOptions = chart.options.accessibility.keyboardNavigation
355
+ .seriesNavigation;
356
+ // Handle serialized mode, act like left/right
357
+ if (navOptions.mode && navOptions.mode === 'serialize') {
358
+ return this.attemptHighlightAdjacentPoint(handler, isNext);
359
+ }
360
+ // Normal mode, move between series
361
+ const highlightMethod = (chart.highlightedPoint &&
362
+ chart.highlightedPoint.series.keyboardMoveVertical) ?
363
+ 'highlightAdjacentPointVertical' :
364
+ 'highlightAdjacentSeries';
365
+ chart[highlightMethod](isNext);
366
+ return handler.response.success;
367
+ }
368
+ /**
369
+ * @private
370
+ */
371
+ onHandlerTerminate() {
372
+ const chart = this.chart, kbdNavOptions = chart.options.accessibility.keyboardNavigation;
373
+ if (chart.tooltip) {
374
+ chart.tooltip.hide(0);
375
+ }
376
+ const hoverSeries = (chart.highlightedPoint && chart.highlightedPoint.series);
377
+ if (hoverSeries && hoverSeries.onMouseOut) {
378
+ hoverSeries.onMouseOut();
379
+ }
380
+ if (chart.highlightedPoint && chart.highlightedPoint.onMouseOut) {
381
+ chart.highlightedPoint.onMouseOut();
382
+ }
383
+ if (!kbdNavOptions.seriesNavigation.rememberPointFocus) {
384
+ delete chart.highlightedPoint;
385
+ }
386
+ }
387
+ /**
388
+ * Function that attempts to highlight next/prev point. Handles wrap around.
389
+ * @private
390
+ */
391
+ attemptHighlightAdjacentPoint(handler, directionIsNext) {
392
+ const chart = this.chart, wrapAround = chart.options.accessibility.keyboardNavigation
393
+ .wrapAround, highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
394
+ if (!highlightSuccessful) {
395
+ if (wrapAround && (directionIsNext ?
396
+ highlightFirstValidPointInChart(chart) :
397
+ highlightLastValidPointInChart(chart))) {
398
+ return handler.response.success;
399
+ }
400
+ return handler.response[directionIsNext ? 'next' : 'prev'];
401
+ }
402
+ return handler.response.success;
403
+ }
404
+ /**
405
+ * @private
406
+ */
407
+ onSeriesDestroy(series) {
408
+ const chart = this.chart, currentHighlightedPointDestroyed = chart.highlightedPoint &&
409
+ chart.highlightedPoint.series === series;
410
+ if (currentHighlightedPointDestroyed) {
411
+ delete chart.highlightedPoint;
412
+ if (chart.focusElement) {
413
+ chart.focusElement.removeFocusBorder();
414
+ }
415
+ }
416
+ }
417
+ /**
418
+ * @private
419
+ */
420
+ destroy() {
421
+ this.eventProvider.removeAddedEvents();
422
+ }
423
+ }
424
+ /* *
425
+ *
426
+ * Class Namespace
427
+ *
428
+ * */
429
+ (function (SeriesKeyboardNavigation) {
430
+ /* *
431
+ *
432
+ * Declarations
433
+ *
434
+ * */
435
+ /* *
436
+ *
437
+ * Functions
438
+ *
439
+ * */
440
+ /**
441
+ * Function to highlight next/previous point in chart.
442
+ *
443
+ * @private
444
+ * @function Highcharts.Chart#highlightAdjacentPoint
445
+ *
446
+ * @param {boolean} next
447
+ * Flag for the direction.
448
+ *
449
+ * @return {Highcharts.Point|boolean}
450
+ * Returns highlighted point on success, false on failure (no adjacent point
451
+ * to highlight in chosen direction).
452
+ */
453
+ function chartHighlightAdjacentPoint(next) {
454
+ const chart = this, series = chart.series, curPoint = chart.highlightedPoint, curPointIndex = curPoint && getPointIndex(curPoint) || 0, curPoints = curPoint && curPoint.series.points || [], lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries &&
455
+ lastSeries.points &&
456
+ lastSeries.points[lastSeries.points.length - 1];
457
+ let newSeries, newPoint;
458
+ // If no points, return false
459
+ if (!series[0] || !series[0].points) {
460
+ return false;
461
+ }
462
+ if (!curPoint) {
463
+ // No point is highlighted yet. Try first/last point depending on
464
+ // move direction
465
+ newPoint = next ? series[0].points[0] : lastPoint;
466
+ }
467
+ else {
468
+ // We have a highlighted point. Grab next/prev point & series.
469
+ newSeries = series[curPoint.series.index + (next ? 1 : -1)];
470
+ newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
471
+ if (!newPoint && newSeries) {
472
+ // Done with this series, try next one
473
+ newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];
474
+ }
475
+ // If there is no adjacent point, we return false
476
+ if (!newPoint) {
477
+ return false;
478
+ }
479
+ }
480
+ // Recursively skip points
481
+ if (isSkipPoint(newPoint)) {
482
+ // If we skip this whole series, move to the end of the series
483
+ // before we recurse, just to optimize
484
+ newSeries = newPoint.series;
485
+ if (isSkipSeries(newSeries)) {
486
+ chart.highlightedPoint = next ?
487
+ newSeries.points[newSeries.points.length - 1] :
488
+ newSeries.points[0];
489
+ }
490
+ else {
491
+ // Otherwise, just move one point
492
+ chart.highlightedPoint = newPoint;
493
+ }
494
+ // Retry
495
+ return chart.highlightAdjacentPoint(next);
496
+ }
497
+ // There is an adjacent point, highlight it
498
+ return newPoint.highlight();
499
+ }
500
+ /**
501
+ * Highlight the closest point vertically.
502
+ * @private
503
+ */
504
+ function chartHighlightAdjacentPointVertical(down) {
505
+ const curPoint = this.highlightedPoint;
506
+ let minDistance = Infinity, bestPoint;
507
+ if (!defined(curPoint.plotX) || !defined(curPoint.plotY)) {
508
+ return false;
509
+ }
510
+ this.series.forEach((series) => {
511
+ if (isSkipSeries(series)) {
512
+ return;
513
+ }
514
+ series.points.forEach((point) => {
515
+ if (!defined(point.plotY) || !defined(point.plotX) ||
516
+ point === curPoint) {
517
+ return;
518
+ }
519
+ let yDistance = point.plotY - curPoint.plotY;
520
+ const width = Math.abs(point.plotX - curPoint.plotX), distance = Math.abs(yDistance) * Math.abs(yDistance) +
521
+ width * width * 4; // Weigh horizontal distance highly
522
+ // Reverse distance number if axis is reversed
523
+ if (series.yAxis && series.yAxis.reversed) {
524
+ yDistance *= -1;
525
+ }
526
+ if (yDistance <= 0 && down || yDistance >= 0 && !down ||
527
+ distance < 5 || // Points in same spot => infinite loop
528
+ isSkipPoint(point)) {
529
+ return;
530
+ }
531
+ if (distance < minDistance) {
532
+ minDistance = distance;
533
+ bestPoint = point;
534
+ }
535
+ });
536
+ });
537
+ return bestPoint ? bestPoint.highlight() : false;
538
+ }
539
+ /**
540
+ * Highlight next/previous series in chart. Returns false if no adjacent
541
+ * series in the direction, otherwise returns new highlighted point.
542
+ * @private
543
+ */
544
+ function chartHighlightAdjacentSeries(down) {
545
+ const chart = this, curPoint = chart.highlightedPoint, lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
546
+ lastSeries.points[lastSeries.points.length - 1];
547
+ let newSeries, newPoint, adjacentNewPoint;
548
+ // If no point is highlighted, highlight the first/last point
549
+ if (!chart.highlightedPoint) {
550
+ newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
551
+ newPoint = down ?
552
+ (newSeries && newSeries.points && newSeries.points[0]) :
553
+ lastPoint;
554
+ return newPoint ? newPoint.highlight() : false;
555
+ }
556
+ newSeries = (chart.series[curPoint.series.index + (down ? -1 : 1)]);
557
+ if (!newSeries) {
558
+ return false;
559
+ }
560
+ // We have a new series in this direction, find the right point
561
+ // Weigh xDistance as counting much higher than Y distance
562
+ newPoint = getClosestPoint(curPoint, newSeries, 4);
563
+ if (!newPoint) {
564
+ return false;
565
+ }
566
+ // New series and point exists, but we might want to skip it
567
+ if (isSkipSeries(newSeries)) {
568
+ // Skip the series
569
+ newPoint.highlight();
570
+ // Try recurse
571
+ adjacentNewPoint = chart.highlightAdjacentSeries(down);
572
+ if (!adjacentNewPoint) {
573
+ // Recurse failed
574
+ curPoint.highlight();
575
+ return false;
576
+ }
577
+ // Recurse succeeded
578
+ return adjacentNewPoint;
579
+ }
580
+ // Highlight the new point or any first valid point back or forwards
581
+ // from it
582
+ newPoint.highlight();
583
+ return newPoint.series.highlightNextValidPoint();
584
+ }
585
+ /**
586
+ * @private
587
+ */
588
+ function compose(ChartClass, PointClass, SeriesClass) {
589
+ const chartProto = ChartClass.prototype, pointProto = PointClass.prototype, seriesProto = SeriesClass.prototype;
590
+ if (!chartProto.highlightAdjacentPoint) {
591
+ chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;
592
+ chartProto.highlightAdjacentPointVertical = (chartHighlightAdjacentPointVertical);
593
+ chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;
594
+ pointProto.highlight = pointHighlight;
595
+ /**
596
+ * Set for which series types it makes sense to move to the closest
597
+ * point with up/down arrows, and which series types should just
598
+ * move to next series.
599
+ * @private
600
+ */
601
+ seriesProto.keyboardMoveVertical = true;
602
+ [
603
+ 'column',
604
+ 'gantt',
605
+ 'pie'
606
+ ].forEach((type) => {
607
+ if (seriesTypes[type]) {
608
+ seriesTypes[type].prototype.keyboardMoveVertical = false;
609
+ }
610
+ });
611
+ seriesProto.highlightNextValidPoint = (seriesHighlightNextValidPoint);
612
+ }
613
+ }
614
+ SeriesKeyboardNavigation.compose = compose;
615
+ /**
616
+ * Get the point in a series that is closest (in pixel distance) to a
617
+ * reference point. Optionally supply weight factors for x and y directions.
618
+ * @private
619
+ */
620
+ function getClosestPoint(point, series, xWeight, yWeight) {
621
+ let minDistance = Infinity, dPoint, minIx, distance, i = series.points.length;
622
+ const hasUndefinedPosition = (point) => (!(defined(point.plotX) && defined(point.plotY)));
623
+ if (hasUndefinedPosition(point)) {
624
+ return;
625
+ }
626
+ while (i--) {
627
+ dPoint = series.points[i];
628
+ if (hasUndefinedPosition(dPoint)) {
629
+ continue;
630
+ }
631
+ distance = (point.plotX - dPoint.plotX) *
632
+ (point.plotX - dPoint.plotX) *
633
+ (xWeight || 1) +
634
+ (point.plotY - dPoint.plotY) *
635
+ (point.plotY - dPoint.plotY) *
636
+ (yWeight || 1);
637
+ if (distance < minDistance) {
638
+ minDistance = distance;
639
+ minIx = i;
640
+ }
641
+ }
642
+ return defined(minIx) ? series.points[minIx] : void 0;
643
+ }
644
+ /**
645
+ * Highlights a point (show tooltip, display hover state, focus element).
646
+ *
647
+ * @private
648
+ * @function Highcharts.Point#highlight
649
+ *
650
+ * @return {Highcharts.Point}
651
+ * This highlighted point.
652
+ */
653
+ function pointHighlight(highlightVisually = true) {
654
+ const chart = this.series.chart, tooltipElement = chart.tooltip?.label?.element;
655
+ if ((!this.isNull ||
656
+ this.series.options?.nullInteraction) && highlightVisually) {
657
+ this.onMouseOver(); // Show the hover marker and tooltip
658
+ }
659
+ else {
660
+ if (chart.tooltip) {
661
+ chart.tooltip.hide(0);
662
+ }
663
+ // Do not call blur on the element, as it messes up the focus of the
664
+ // div element of the chart
665
+ }
666
+ scrollAxisToPoint(this);
667
+ // We focus only after calling onMouseOver because the state change can
668
+ // change z-index and mess up the element.
669
+ if (this.graphic) {
670
+ chart.setFocusToElement(this.graphic);
671
+ if (!highlightVisually && chart.focusElement) {
672
+ chart.focusElement.removeFocusBorder();
673
+ }
674
+ }
675
+ chart.highlightedPoint = this;
676
+ // Get position of the tooltip.
677
+ const tooltipTop = tooltipElement?.getBoundingClientRect().top;
678
+ if (tooltipElement && tooltipTop && tooltipTop < 0) {
679
+ // Calculate scroll position.
680
+ const scrollTop = window.scrollY, newScrollTop = scrollTop + tooltipTop;
681
+ // Scroll window to new position.
682
+ window.scrollTo({
683
+ behavior: 'smooth',
684
+ top: newScrollTop
685
+ });
686
+ }
687
+ return this;
688
+ }
689
+ /**
690
+ * Highlight first valid point in a series. Returns the point if
691
+ * successfully highlighted, otherwise false. If there is a highlighted
692
+ * point in the series, use that as starting point.
693
+ *
694
+ * @private
695
+ * @function Highcharts.Series#highlightNextValidPoint
696
+ */
697
+ function seriesHighlightNextValidPoint() {
698
+ const curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
699
+ getPointIndex(curPoint) :
700
+ 0, points = this.points, len = points.length;
701
+ if (points && len) {
702
+ for (let i = start; i < len; ++i) {
703
+ if (!isSkipPoint(points[i])) {
704
+ return points[i].highlight();
705
+ }
706
+ }
707
+ for (let j = start; j >= 0; --j) {
708
+ if (!isSkipPoint(points[j])) {
709
+ return points[j].highlight();
710
+ }
711
+ }
712
+ }
713
+ return false;
714
+ }
715
+ })(SeriesKeyboardNavigation || (SeriesKeyboardNavigation = {}));
716
+ /* *
717
+ *
718
+ * Default Export
719
+ *
720
+ * */
721
+ export default SeriesKeyboardNavigation;