@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,130 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Øystein Moseng
4
+ *
5
+ * Accessibility component for series and points.
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 AccessibilityComponent from '../../AccessibilityComponent.js';
14
+ import ChartUtilities from '../../Utils/ChartUtilities.js';
15
+ const { hideSeriesFromAT } = ChartUtilities;
16
+ import ForcedMarkers from './ForcedMarkers.js';
17
+ import NewDataAnnouncer from './NewDataAnnouncer.js';
18
+ import SeriesDescriber from './SeriesDescriber.js';
19
+ const { describeSeries } = SeriesDescriber;
20
+ import SeriesKeyboardNavigation from './SeriesKeyboardNavigation.js';
21
+ /* *
22
+ *
23
+ * Class
24
+ *
25
+ * */
26
+ /**
27
+ * The SeriesComponent class
28
+ *
29
+ * @private
30
+ * @class
31
+ * @name Highcharts.SeriesComponent
32
+ */
33
+ class SeriesComponent extends AccessibilityComponent {
34
+ /* *
35
+ *
36
+ * Static Functions
37
+ *
38
+ * */
39
+ /* eslint-disable valid-jsdoc */
40
+ /**
41
+ * @private
42
+ */
43
+ static compose(ChartClass, PointClass, SeriesClass) {
44
+ NewDataAnnouncer.compose(SeriesClass);
45
+ ForcedMarkers.compose(SeriesClass);
46
+ SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);
47
+ }
48
+ /* *
49
+ *
50
+ * Functions
51
+ *
52
+ * */
53
+ /**
54
+ * Init the component.
55
+ */
56
+ init() {
57
+ this.newDataAnnouncer = new NewDataAnnouncer(this.chart);
58
+ this.newDataAnnouncer.init();
59
+ this.keyboardNavigation = new SeriesKeyboardNavigation(this.chart, this.keyCodes);
60
+ this.keyboardNavigation.init();
61
+ this.hideTooltipFromATWhenShown();
62
+ this.hideSeriesLabelsFromATWhenShown();
63
+ }
64
+ /**
65
+ * @private
66
+ */
67
+ hideTooltipFromATWhenShown() {
68
+ const component = this;
69
+ if (this.chart.tooltip) {
70
+ this.addEvent(this.chart.tooltip.constructor, 'refresh', function () {
71
+ if (this.chart === component.chart &&
72
+ this.label &&
73
+ this.label.element) {
74
+ this.label.element.setAttribute('aria-hidden', true);
75
+ }
76
+ });
77
+ }
78
+ }
79
+ /**
80
+ * @private
81
+ */
82
+ hideSeriesLabelsFromATWhenShown() {
83
+ this.addEvent(this.chart, 'afterDrawSeriesLabels', function () {
84
+ this.series.forEach(function (series) {
85
+ if (series.labelBySeries) {
86
+ series.labelBySeries.attr('aria-hidden', true);
87
+ }
88
+ });
89
+ });
90
+ }
91
+ /**
92
+ * Called on chart render. It is necessary to do this for render in case
93
+ * markers change on zoom/pixel density.
94
+ */
95
+ onChartRender() {
96
+ const chart = this.chart;
97
+ chart.series.forEach(function (series) {
98
+ const shouldDescribeSeries = (series.options.accessibility &&
99
+ series.options.accessibility.enabled) !== false &&
100
+ series.visible && series.getPointsCollection().length !== 0;
101
+ if (shouldDescribeSeries) {
102
+ describeSeries(series);
103
+ }
104
+ else {
105
+ hideSeriesFromAT(series);
106
+ }
107
+ });
108
+ }
109
+ /**
110
+ * Get keyboard navigation handler for this component.
111
+ * @private
112
+ */
113
+ getKeyboardNavigation() {
114
+ return this.keyboardNavigation.getKeyboardNavigationHandler();
115
+ }
116
+ /**
117
+ * Remove traces
118
+ * @private
119
+ */
120
+ destroy() {
121
+ this.newDataAnnouncer.destroy();
122
+ this.keyboardNavigation.destroy();
123
+ }
124
+ }
125
+ /* *
126
+ *
127
+ * Default Export
128
+ *
129
+ * */
130
+ export default SeriesComponent;
@@ -0,0 +1,28 @@
1
+ import type Accessibility from '../../Accessibility';
2
+ declare module '../../../Core/Series/PointBase' {
3
+ interface PointBase {
4
+ /** @requires modules/accessibility */
5
+ hasMockGraphic?: boolean;
6
+ }
7
+ }
8
+ /**
9
+ * Return string with information about point.
10
+ * @private
11
+ */
12
+ declare function defaultPointDescriptionFormatter(point: Accessibility.PointComposition): string;
13
+ /**
14
+ * Return string with information about series.
15
+ * @private
16
+ */
17
+ declare function defaultSeriesDescriptionFormatter(series: Accessibility.SeriesComposition): string;
18
+ /**
19
+ * Put accessible info on series and points of a series.
20
+ * @param {Highcharts.Series} series The series to add info on.
21
+ */
22
+ declare function describeSeries(series: Accessibility.SeriesComposition): void;
23
+ declare const SeriesDescriber: {
24
+ defaultPointDescriptionFormatter: typeof defaultPointDescriptionFormatter;
25
+ defaultSeriesDescriptionFormatter: typeof defaultSeriesDescriptionFormatter;
26
+ describeSeries: typeof describeSeries;
27
+ };
28
+ export default SeriesDescriber;
@@ -0,0 +1,415 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Øystein Moseng
4
+ *
5
+ * Place desriptions on a series and its points.
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 AnnotationsA11y from '../AnnotationsA11y.js';
14
+ const { getPointAnnotationTexts } = AnnotationsA11y;
15
+ import ChartUtilities from '../../Utils/ChartUtilities.js';
16
+ const { getAxisDescription, getSeriesFirstPointElement, getSeriesA11yElement, unhideChartElementFromAT } = ChartUtilities;
17
+ import F from '../../../Core/Templating.js';
18
+ const { format, numberFormat } = F;
19
+ import HTMLUtilities from '../../Utils/HTMLUtilities.js';
20
+ const { reverseChildNodes, stripHTMLTagsFromString: stripHTMLTags } = HTMLUtilities;
21
+ import U from '../../../Core/Utilities.js';
22
+ const { find, isNumber, isString, pick, defined } = U;
23
+ /* *
24
+ *
25
+ * Functions
26
+ *
27
+ * */
28
+ /* eslint-disable valid-jsdoc */
29
+ /**
30
+ * @private
31
+ */
32
+ function findFirstPointWithGraphic(point) {
33
+ const sourcePointIndex = point.index;
34
+ if (!point.series || !point.series.data || !defined(sourcePointIndex)) {
35
+ return null;
36
+ }
37
+ const nullInteraction = point.series.options?.nullInteraction;
38
+ return find(point.series.data, function (p) {
39
+ return !!(p &&
40
+ typeof p.index !== 'undefined' &&
41
+ (nullInteraction || p.index > sourcePointIndex) &&
42
+ p.graphic &&
43
+ p.graphic.element);
44
+ }) || null;
45
+ }
46
+ /**
47
+ * Whether or not we should add a mock point element in
48
+ * order to describe a point that has no graphic.
49
+ * @private
50
+ */
51
+ function shouldAddMockPoint(point) {
52
+ // Note: Sunburst series use isNull for hidden points on drilldown.
53
+ // Ignore these.
54
+ const series = point.series, chart = series && series.chart, isSunburst = series && series.is('sunburst'), isNull = point.isNull, shouldDescribeNull = chart &&
55
+ chart
56
+ .options.accessibility.point.describeNull;
57
+ return isNull && !isSunburst && shouldDescribeNull;
58
+ }
59
+ /**
60
+ * @private
61
+ */
62
+ function makeMockElement(point, pos) {
63
+ const renderer = point.series.chart.renderer, mock = renderer.rect(pos.x, pos.y, 1, 1);
64
+ mock.attr({
65
+ 'class': 'highcharts-a11y-mock-point',
66
+ fill: 'none',
67
+ opacity: 0,
68
+ 'fill-opacity': 0,
69
+ 'stroke-opacity': 0
70
+ });
71
+ return mock;
72
+ }
73
+ /**
74
+ * @private
75
+ */
76
+ function addMockPointElement(point) {
77
+ const series = point.series, firstPointWithGraphic = findFirstPointWithGraphic(point), firstGraphic = firstPointWithGraphic && firstPointWithGraphic.graphic, parentGroup = firstGraphic ?
78
+ firstGraphic.parentGroup :
79
+ series.graph || series.group, mockPos = firstPointWithGraphic ? {
80
+ x: pick(point.plotX, firstPointWithGraphic.plotX, 0),
81
+ y: pick(point.plotY, firstPointWithGraphic.plotY, 0)
82
+ } : {
83
+ x: pick(point.plotX, 0),
84
+ y: pick(point.plotY, 0)
85
+ }, mockElement = makeMockElement(point, mockPos);
86
+ if (parentGroup && parentGroup.element) {
87
+ point.graphic = mockElement;
88
+ point.hasMockGraphic = true;
89
+ mockElement.add(parentGroup);
90
+ // Move to correct pos in DOM
91
+ parentGroup.element.insertBefore(mockElement.element, firstGraphic ? firstGraphic.element : null);
92
+ return mockElement.element;
93
+ }
94
+ }
95
+ /**
96
+ * @private
97
+ */
98
+ function hasMorePointsThanDescriptionThreshold(series) {
99
+ const chartA11yOptions = series.chart.options.accessibility, threshold = (chartA11yOptions.series.pointDescriptionEnabledThreshold);
100
+ return !!(threshold !== false &&
101
+ series.points &&
102
+ series.points.length >= +threshold);
103
+ }
104
+ /**
105
+ * @private
106
+ */
107
+ function shouldSetScreenReaderPropsOnPoints(series) {
108
+ const seriesA11yOptions = series.options.accessibility || {};
109
+ return !hasMorePointsThanDescriptionThreshold(series) &&
110
+ !seriesA11yOptions.exposeAsGroupOnly;
111
+ }
112
+ /**
113
+ * @private
114
+ */
115
+ function shouldSetKeyboardNavPropsOnPoints(series) {
116
+ const chartA11yOptions = series.chart.options.accessibility, seriesNavOptions = chartA11yOptions.keyboardNavigation.seriesNavigation;
117
+ return !!(series.points && (series.points.length <
118
+ +seriesNavOptions.pointNavigationEnabledThreshold ||
119
+ seriesNavOptions.pointNavigationEnabledThreshold === false));
120
+ }
121
+ /**
122
+ * @private
123
+ */
124
+ function shouldDescribeSeriesElement(series) {
125
+ const chart = series.chart, chartOptions = chart.options.chart, chartHas3d = chartOptions.options3d && chartOptions.options3d.enabled, hasMultipleSeries = chart.series.length > 1, describeSingleSeriesOption = chart.options.accessibility.series.describeSingleSeries, exposeAsGroupOnlyOption = (series.options.accessibility || {}).exposeAsGroupOnly, noDescribe3D = chartHas3d && hasMultipleSeries;
126
+ return !noDescribe3D && (hasMultipleSeries || describeSingleSeriesOption ||
127
+ exposeAsGroupOnlyOption || hasMorePointsThanDescriptionThreshold(series));
128
+ }
129
+ /**
130
+ * @private
131
+ */
132
+ function pointNumberToString(point, value) {
133
+ const series = point.series, chart = series.chart, a11yPointOptions = chart.options.accessibility.point || {}, seriesA11yPointOptions = series.options.accessibility &&
134
+ series.options.accessibility.point || {}, tooltipOptions = series.tooltipOptions || {}, lang = chart.options.lang;
135
+ if (isNumber(value)) {
136
+ return numberFormat(value, seriesA11yPointOptions.valueDecimals ||
137
+ a11yPointOptions.valueDecimals ||
138
+ tooltipOptions.valueDecimals ||
139
+ -1, lang.decimalPoint, lang.accessibility.thousandsSep || lang.thousandsSep);
140
+ }
141
+ return value;
142
+ }
143
+ /**
144
+ * @private
145
+ */
146
+ function getSeriesDescriptionText(series) {
147
+ const seriesA11yOptions = series.options.accessibility || {}, descOpt = seriesA11yOptions.description;
148
+ return descOpt && series.chart.langFormat('accessibility.series.description', {
149
+ description: descOpt,
150
+ series: series
151
+ }) || '';
152
+ }
153
+ /**
154
+ * @private
155
+ */
156
+ function getSeriesAxisDescriptionText(series, axisCollection) {
157
+ const axis = series[axisCollection];
158
+ return series.chart.langFormat('accessibility.series.' + axisCollection + 'Description', {
159
+ name: getAxisDescription(axis),
160
+ series: series
161
+ });
162
+ }
163
+ /**
164
+ * Get accessible time description for a point on a datetime axis.
165
+ *
166
+ * @private
167
+ */
168
+ function getPointA11yTimeDescription(point) {
169
+ const series = point.series, chart = series.chart, seriesA11yOptions = series.options.accessibility &&
170
+ series.options.accessibility.point || {}, a11yOptions = chart.options.accessibility.point || {}, dateXAxis = series.xAxis && series.xAxis.dateTime;
171
+ if (dateXAxis) {
172
+ const tooltipDateFormat = dateXAxis.getXDateFormat(point.x || 0, chart.options.tooltip.dateTimeLabelFormats), dateFormat = seriesA11yOptions.dateFormatter &&
173
+ seriesA11yOptions.dateFormatter(point) ||
174
+ a11yOptions.dateFormatter && a11yOptions.dateFormatter(point) ||
175
+ seriesA11yOptions.dateFormat ||
176
+ a11yOptions.dateFormat ||
177
+ tooltipDateFormat;
178
+ return chart.time.dateFormat(dateFormat, point.x || 0, void 0);
179
+ }
180
+ }
181
+ /**
182
+ * @private
183
+ */
184
+ function getPointXDescription(point) {
185
+ const timeDesc = getPointA11yTimeDescription(point), xAxis = point.series.xAxis || {}, pointCategory = xAxis.categories && defined(point.category) &&
186
+ ('' + point.category).replace('<br/>', ' '), canUseId = defined(point.id) &&
187
+ ('' + point.id).indexOf('highcharts-') < 0, fallback = 'x, ' + point.x;
188
+ return point.name || timeDesc || pointCategory ||
189
+ (canUseId ? point.id : fallback);
190
+ }
191
+ /**
192
+ * @private
193
+ */
194
+ function getPointArrayMapValueDescription(point, prefix, suffix) {
195
+ const pre = prefix || '', suf = suffix || '', keyToValStr = function (key) {
196
+ const num = pointNumberToString(point, pick(point[key], point.options[key]));
197
+ return num !== void 0 ?
198
+ key + ': ' + pre + num + suf :
199
+ num;
200
+ }, pointArrayMap = point.series.pointArrayMap;
201
+ return pointArrayMap.reduce(function (desc, key) {
202
+ const propDesc = keyToValStr(key);
203
+ return propDesc ?
204
+ (desc + (desc.length ? ', ' : '') + propDesc) :
205
+ desc;
206
+ }, '');
207
+ }
208
+ /**
209
+ * @private
210
+ */
211
+ function getPointValue(point) {
212
+ const series = point.series, a11yPointOpts = series.chart.options.accessibility.point || {}, seriesA11yPointOpts = series.chart.options.accessibility &&
213
+ series.chart.options.accessibility.point || {}, tooltipOptions = series.tooltipOptions || {}, valuePrefix = seriesA11yPointOpts.valuePrefix ||
214
+ a11yPointOpts.valuePrefix ||
215
+ tooltipOptions.valuePrefix ||
216
+ '', valueSuffix = seriesA11yPointOpts.valueSuffix ||
217
+ a11yPointOpts.valueSuffix ||
218
+ tooltipOptions.valueSuffix ||
219
+ '', fallbackKey = (typeof point.value !==
220
+ 'undefined' ?
221
+ 'value' : 'y'), fallbackDesc = pointNumberToString(point, point[fallbackKey]);
222
+ if (point.isNull) {
223
+ return series.chart.langFormat('accessibility.series.nullPointValue', {
224
+ point: point
225
+ });
226
+ }
227
+ if (series.pointArrayMap) {
228
+ return getPointArrayMapValueDescription(point, valuePrefix, valueSuffix);
229
+ }
230
+ return valuePrefix + fallbackDesc + valueSuffix;
231
+ }
232
+ /**
233
+ * Return the description for the annotation(s) connected to a point, or
234
+ * empty string if none.
235
+ *
236
+ * @private
237
+ * @param {Highcharts.Point} point
238
+ * The data point to get the annotation info from.
239
+ * @return {string}
240
+ * Annotation description
241
+ */
242
+ function getPointAnnotationDescription(point) {
243
+ const chart = point.series.chart;
244
+ const langKey = 'accessibility.series.pointAnnotationsDescription';
245
+ const annotations = getPointAnnotationTexts(point);
246
+ const context = { point, annotations };
247
+ return annotations.length ? chart.langFormat(langKey, context) : '';
248
+ }
249
+ /**
250
+ * Return string with information about point.
251
+ * @private
252
+ */
253
+ function getPointValueDescription(point) {
254
+ const series = point.series, chart = series.chart, seriesA11yOptions = series.options.accessibility, seriesValueDescFormat = seriesA11yOptions && seriesA11yOptions.point &&
255
+ seriesA11yOptions.point.valueDescriptionFormat, pointValueDescriptionFormat = seriesValueDescFormat ||
256
+ chart.options.accessibility.point.valueDescriptionFormat, showXDescription = pick(series.xAxis &&
257
+ series.xAxis.options.accessibility &&
258
+ series.xAxis.options.accessibility.enabled, !chart.angular && series.type !== 'flowmap'), xDesc = showXDescription ? getPointXDescription(point) : '', context = {
259
+ point: point,
260
+ index: defined(point.index) ? (point.index + 1) : '',
261
+ xDescription: xDesc,
262
+ value: getPointValue(point),
263
+ separator: showXDescription ? ', ' : ''
264
+ };
265
+ return format(pointValueDescriptionFormat, context, chart);
266
+ }
267
+ /**
268
+ * Return string with information about point.
269
+ * @private
270
+ */
271
+ function defaultPointDescriptionFormatter(point) {
272
+ const series = point.series, shouldExposeSeriesName = series.chart.series.length > 1 ||
273
+ series.options.name, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
274
+ point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = shouldExposeSeriesName ? ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
275
+ point.accessibility = point.accessibility || {};
276
+ point.accessibility.valueDescription = valText;
277
+ return valText + userDescText + seriesNameText + pointAnnotationsText;
278
+ }
279
+ /**
280
+ * Set a11y props on a point element
281
+ * @private
282
+ * @param {Highcharts.Point} point
283
+ * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} pointElement
284
+ */
285
+ function setPointScreenReaderAttribs(point, pointElement) {
286
+ const series = point.series, seriesPointA11yOptions = series.options.accessibility?.point || {}, a11yPointOptions = series.chart.options.accessibility.point || {}, label = stripHTMLTags((isString(seriesPointA11yOptions.descriptionFormat) &&
287
+ format(seriesPointA11yOptions.descriptionFormat, point, series.chart)) ||
288
+ seriesPointA11yOptions.descriptionFormatter?.(point) ||
289
+ (isString(a11yPointOptions.descriptionFormat) &&
290
+ format(a11yPointOptions.descriptionFormat, point, series.chart)) ||
291
+ a11yPointOptions.descriptionFormatter?.(point) ||
292
+ defaultPointDescriptionFormatter(point), series.chart.renderer.forExport);
293
+ pointElement.setAttribute('role', 'img');
294
+ pointElement.setAttribute('aria-label', label);
295
+ }
296
+ /**
297
+ * Add accessible info to individual point elements of a series
298
+ * @private
299
+ * @param {Highcharts.Series} series
300
+ */
301
+ function describePointsInSeries(series) {
302
+ const setScreenReaderProps = shouldSetScreenReaderPropsOnPoints(series), setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series), shouldDescribeNullPoints = series.chart.options.accessibility
303
+ .point.describeNull;
304
+ if (setScreenReaderProps || setKeyboardProps) {
305
+ series.points.forEach((point) => {
306
+ const pointEl = point.graphic && point.graphic.element ||
307
+ shouldAddMockPoint(point) && addMockPointElement(point), pointA11yDisabled = (point.options &&
308
+ point.options.accessibility &&
309
+ point.options.accessibility.enabled === false);
310
+ if (pointEl) {
311
+ if (point.isNull && !shouldDescribeNullPoints) {
312
+ pointEl.setAttribute('aria-hidden', true);
313
+ return;
314
+ }
315
+ // We always set tabindex, as long as we are setting props.
316
+ // When setting tabindex, also remove default outline to
317
+ // avoid ugly border on click.
318
+ pointEl.setAttribute('tabindex', '-1');
319
+ if (!series.chart.styledMode) {
320
+ pointEl.style.outline = 'none';
321
+ }
322
+ if (setScreenReaderProps && !pointA11yDisabled) {
323
+ setPointScreenReaderAttribs(point, pointEl);
324
+ }
325
+ else {
326
+ pointEl.setAttribute('aria-hidden', true);
327
+ }
328
+ }
329
+ });
330
+ }
331
+ }
332
+ /**
333
+ * Return string with information about series.
334
+ * @private
335
+ */
336
+ function defaultSeriesDescriptionFormatter(series) {
337
+ const chart = series.chart, chartTypes = chart.types || [], description = getSeriesDescriptionText(series), shouldDescribeAxis = function (coll) {
338
+ return chart[coll] && chart[coll].length > 1 && series[coll];
339
+ }, seriesNumber = series.index + 1, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {
340
+ seriesNumber,
341
+ series,
342
+ chart
343
+ }, combinationSuffix = chartTypes.length > 1 ? 'Combination' : '', summary = chart.langFormat('accessibility.series.summary.' + series.type + combinationSuffix, summaryContext) || chart.langFormat('accessibility.series.summary.default' + combinationSuffix, summaryContext), axisDescription = (shouldDescribeAxis('yAxis') ? ' ' + yAxisInfo + '.' : '') + (shouldDescribeAxis('xAxis') ? ' ' + xAxisInfo + '.' : ''), formatStr = pick(series.options.accessibility &&
344
+ series.options.accessibility.descriptionFormat, chart.options.accessibility.series.descriptionFormat, '');
345
+ return format(formatStr, {
346
+ seriesDescription: summary,
347
+ authorDescription: (description ? ' ' + description : ''),
348
+ axisDescription,
349
+ series,
350
+ chart,
351
+ seriesNumber
352
+ }, void 0);
353
+ }
354
+ /**
355
+ * Set a11y props on a series element
356
+ * @private
357
+ * @param {Highcharts.Series} series
358
+ * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} seriesElement
359
+ */
360
+ function describeSeriesElement(series, seriesElement) {
361
+ const seriesA11yOptions = series.options.accessibility || {}, a11yOptions = series.chart.options.accessibility, landmarkVerbosity = a11yOptions.landmarkVerbosity;
362
+ // Handle role attribute
363
+ if (seriesA11yOptions.exposeAsGroupOnly) {
364
+ seriesElement.setAttribute('role', 'img');
365
+ }
366
+ else if (landmarkVerbosity === 'all') {
367
+ seriesElement.setAttribute('role', 'region');
368
+ }
369
+ else {
370
+ seriesElement.setAttribute('role', 'group');
371
+ }
372
+ seriesElement.setAttribute('tabindex', '-1');
373
+ if (!series.chart.styledMode) {
374
+ // Don't show browser outline on click, despite tabindex
375
+ seriesElement.style.outline = 'none';
376
+ }
377
+ seriesElement.setAttribute('aria-label', stripHTMLTags(a11yOptions.series.descriptionFormatter &&
378
+ a11yOptions.series.descriptionFormatter(series) ||
379
+ defaultSeriesDescriptionFormatter(series), series.chart.renderer.forExport));
380
+ }
381
+ /**
382
+ * Put accessible info on series and points of a series.
383
+ * @param {Highcharts.Series} series The series to add info on.
384
+ */
385
+ function describeSeries(series) {
386
+ const chart = series.chart, firstPointEl = getSeriesFirstPointElement(series), seriesEl = getSeriesA11yElement(series), is3d = chart.is3d && chart.is3d();
387
+ if (seriesEl) {
388
+ // For some series types the order of elements do not match the
389
+ // order of points in series. In that case we have to reverse them
390
+ // in order for AT to read them out in an understandable order.
391
+ // Due to z-index issues we cannot do this for 3D charts.
392
+ if (seriesEl.lastChild === firstPointEl && !is3d) {
393
+ reverseChildNodes(seriesEl);
394
+ }
395
+ describePointsInSeries(series);
396
+ unhideChartElementFromAT(chart, seriesEl);
397
+ if (shouldDescribeSeriesElement(series)) {
398
+ describeSeriesElement(series, seriesEl);
399
+ }
400
+ else {
401
+ seriesEl.removeAttribute('aria-label');
402
+ }
403
+ }
404
+ }
405
+ /* *
406
+ *
407
+ * Default Export
408
+ *
409
+ * */
410
+ const SeriesDescriber = {
411
+ defaultPointDescriptionFormatter,
412
+ defaultSeriesDescriptionFormatter,
413
+ describeSeries
414
+ };
415
+ export default SeriesDescriber;
@@ -0,0 +1,114 @@
1
+ import type Accessibility from '../../Accessibility';
2
+ import Chart from '../../../Core/Chart/Chart.js';
3
+ import Point from '../../../Core/Series/Point.js';
4
+ import Series from '../../../Core/Series/Series.js';
5
+ import KeyboardNavigationHandler from '../../KeyboardNavigationHandler.js';
6
+ import EventProvider from '../../Utils/EventProvider.js';
7
+ declare module '../../../Core/Chart/ChartBase' {
8
+ interface ChartBase {
9
+ highlightedPoint?: Point;
10
+ }
11
+ }
12
+ declare module '../../../Core/Series/SeriesBase' {
13
+ interface SeriesBase {
14
+ /** @requires modules/accessibility */
15
+ keyboardMoveVertical?: boolean;
16
+ }
17
+ }
18
+ /**
19
+ * @private
20
+ * @class
21
+ * @name Highcharts.SeriesKeyboardNavigation
22
+ */
23
+ declare class SeriesKeyboardNavigation {
24
+ constructor(chart: SeriesKeyboardNavigation.ChartComposition, keyCodes: Record<string, number>);
25
+ chart: SeriesKeyboardNavigation.ChartComposition;
26
+ eventProvider?: EventProvider;
27
+ keyCodes: Record<string, number>;
28
+ lastDrilledDownPoint?: SeriesKeyboardNavigation.DrilldownObject;
29
+ /**
30
+ * Init the keyboard navigation
31
+ */
32
+ init(): void;
33
+ /**
34
+ * After drillup we want to find the point that was drilled down to and
35
+ * highlight it.
36
+ * @private
37
+ */
38
+ onDrillupAll(): void;
39
+ /**
40
+ * @private
41
+ */
42
+ getKeyboardNavigationHandler(): KeyboardNavigationHandler;
43
+ /**
44
+ * @private
45
+ * @param {Highcharts.KeyboardNavigationHandler} handler
46
+ * @param {number} keyCode
47
+ * @return {number}
48
+ * response
49
+ */
50
+ onKbdSideways(handler: KeyboardNavigationHandler, keyCode: number): number;
51
+ /**
52
+ * When keyboard navigation inits.
53
+ * @private
54
+ * @param {Highcharts.KeyboardNavigationHandler} handler The handler object
55
+ * @return {number}
56
+ * response
57
+ */
58
+ onHandlerInit(handler: KeyboardNavigationHandler): number;
59
+ /**
60
+ * @private
61
+ * @param {Highcharts.KeyboardNavigationHandler} handler
62
+ * @param {number} keyCode
63
+ * @return {number}
64
+ * response
65
+ */
66
+ onKbdVertical(handler: KeyboardNavigationHandler, keyCode: number): number;
67
+ /**
68
+ * @private
69
+ */
70
+ onHandlerTerminate(): void;
71
+ /**
72
+ * Function that attempts to highlight next/prev point. Handles wrap around.
73
+ * @private
74
+ */
75
+ attemptHighlightAdjacentPoint(handler: KeyboardNavigationHandler, directionIsNext: boolean): number;
76
+ /**
77
+ * @private
78
+ */
79
+ onSeriesDestroy(series: Series): void;
80
+ /**
81
+ * @private
82
+ */
83
+ destroy(): void;
84
+ }
85
+ declare namespace SeriesKeyboardNavigation {
86
+ class ChartComposition extends Accessibility.ChartComposition {
87
+ highlightedPoint?: PointComposition;
88
+ series: Array<SeriesComposition>;
89
+ highlightAdjacentPoint(next: boolean): (boolean | PointComposition);
90
+ highlightAdjacentPointVertical(down: boolean): (boolean | PointComposition);
91
+ highlightAdjacentSeries(down: boolean): (boolean | PointComposition);
92
+ }
93
+ interface DrilldownObject {
94
+ x: (number | null);
95
+ y: (number | null | undefined);
96
+ seriesName: string;
97
+ }
98
+ class PointComposition extends Accessibility.PointComposition {
99
+ series: SeriesComposition;
100
+ highlight(highlightVisually?: boolean): PointComposition;
101
+ }
102
+ class SeriesComposition extends Accessibility.SeriesComposition {
103
+ chart: ChartComposition;
104
+ data: Array<PointComposition>;
105
+ pointClass: typeof PointComposition;
106
+ points: Array<PointComposition>;
107
+ highlightNextValidPoint(): (boolean | PointComposition);
108
+ }
109
+ /**
110
+ * @private
111
+ */
112
+ function compose(ChartClass: typeof Chart, PointClass: typeof Point, SeriesClass: typeof Series): void;
113
+ }
114
+ export default SeriesKeyboardNavigation;