@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,555 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Øystein Moseng
4
+ *
5
+ * Accessibility component for chart info region and table.
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 A11yI18n from '../A11yI18n.js';
14
+ import AccessibilityComponent from '../AccessibilityComponent.js';
15
+ import Announcer from '../Utils/Announcer.js';
16
+ import AnnotationsA11y from './AnnotationsA11y.js';
17
+ const { getAnnotationsInfoHTML } = AnnotationsA11y;
18
+ import AST from '../../Core/Renderer/HTML/AST.js';
19
+ import CU from '../Utils/ChartUtilities.js';
20
+ const { getAxisDescription, getAxisRangeDescription, getChartTitle, unhideChartElementFromAT } = CU;
21
+ import F from '../../Core/Templating.js';
22
+ const { format } = F;
23
+ import H from '../../Core/Globals.js';
24
+ const { doc } = H;
25
+ import HU from '../Utils/HTMLUtilities.js';
26
+ const { addClass, getElement, getHeadingTagNameForElement, stripHTMLTagsFromString, visuallyHideElement } = HU;
27
+ import U from '../../Core/Utilities.js';
28
+ const { attr, pick, replaceNested } = U;
29
+ /* *
30
+ *
31
+ * Functions
32
+ *
33
+ * */
34
+ /* eslint-disable valid-jsdoc */
35
+ /**
36
+ * @private
37
+ */
38
+ function getTableSummary(chart) {
39
+ return chart.langFormat('accessibility.table.tableSummary', { chart: chart });
40
+ }
41
+ /**
42
+ * @private
43
+ */
44
+ function getTypeDescForMapChart(chart, formatContext) {
45
+ return formatContext.mapTitle ?
46
+ chart.langFormat('accessibility.chartTypes.mapTypeDescription', formatContext) :
47
+ chart.langFormat('accessibility.chartTypes.unknownMap', formatContext);
48
+ }
49
+ /**
50
+ * @private
51
+ */
52
+ function getTypeDescForCombinationChart(chart, formatContext) {
53
+ return chart.langFormat('accessibility.chartTypes.combinationChart', formatContext);
54
+ }
55
+ /**
56
+ * @private
57
+ */
58
+ function getTypeDescForEmptyChart(chart, formatContext) {
59
+ return chart.langFormat('accessibility.chartTypes.emptyChart', formatContext);
60
+ }
61
+ /**
62
+ * @private
63
+ */
64
+ function buildTypeDescriptionFromSeries(chart, types, context) {
65
+ const firstType = types[0], typeExplanation = chart.langFormat('accessibility.seriesTypeDescriptions.' + firstType, context), multi = chart.series && chart.series.length < 2 ? 'Single' : 'Multiple';
66
+ return (chart.langFormat('accessibility.chartTypes.' + firstType + multi, context) ||
67
+ chart.langFormat('accessibility.chartTypes.default' + multi, context)) + (typeExplanation ? ' ' + typeExplanation : '');
68
+ }
69
+ /**
70
+ * Return simplified explanation of chart type. Some types will not be
71
+ * familiar to most users, but in those cases we try to add an explanation
72
+ * of the type.
73
+ *
74
+ * @private
75
+ * @function Highcharts.Chart#getTypeDescription
76
+ * @param {Array<string>} types The series types in this chart.
77
+ * @return {string} The text description of the chart type.
78
+ */
79
+ function getTypeDescription(chart, types) {
80
+ const firstType = types[0], firstSeries = chart.series && chart.series[0] || {}, mapTitle = chart.mapView && chart.mapView.geoMap &&
81
+ chart.mapView.geoMap.title, formatContext = {
82
+ numSeries: chart.series.length,
83
+ numPoints: firstSeries.points && firstSeries.points.length,
84
+ chart,
85
+ mapTitle
86
+ };
87
+ if (!firstType) {
88
+ return getTypeDescForEmptyChart(chart, formatContext);
89
+ }
90
+ if (firstType === 'map' || firstType === 'tiledwebmap') {
91
+ return getTypeDescForMapChart(chart, formatContext);
92
+ }
93
+ if (chart.types.length > 1) {
94
+ return getTypeDescForCombinationChart(chart, formatContext);
95
+ }
96
+ return buildTypeDescriptionFromSeries(chart, types, formatContext);
97
+ }
98
+ /**
99
+ * @private
100
+ */
101
+ function stripEmptyHTMLTags(str) {
102
+ // Scan alert #[71]: Loop for nested patterns
103
+ return replaceNested(str, [/<([\w\-.:!]+)\b[^<>]*>\s*<\/\1>/g, '']);
104
+ }
105
+ /* *
106
+ *
107
+ * Class
108
+ *
109
+ * */
110
+ /**
111
+ * The InfoRegionsComponent class
112
+ *
113
+ * @private
114
+ * @class
115
+ * @name Highcharts.InfoRegionsComponent
116
+ */
117
+ class InfoRegionsComponent extends AccessibilityComponent {
118
+ constructor() {
119
+ /* *
120
+ *
121
+ * Properties
122
+ *
123
+ * */
124
+ super(...arguments);
125
+ this.screenReaderSections = {};
126
+ }
127
+ /* *
128
+ *
129
+ * Functions
130
+ *
131
+ * */
132
+ /* eslint-disable valid-jsdoc */
133
+ /**
134
+ * Init the component
135
+ * @private
136
+ */
137
+ init() {
138
+ const chart = this.chart;
139
+ const component = this;
140
+ this.initRegionsDefinitions();
141
+ this.addEvent(chart, 'afterGetTableAST', function (e) {
142
+ component.onDataTableCreated(e);
143
+ });
144
+ this.addEvent(chart, 'afterViewData', function (e) {
145
+ if (e.wasHidden) {
146
+ component.dataTableDiv = e.element;
147
+ // Use a small delay to give browsers & AT time to
148
+ // register the new table.
149
+ setTimeout(function () {
150
+ component.focusDataTable();
151
+ }, 300);
152
+ }
153
+ });
154
+ this.addEvent(chart, 'afterHideData', function () {
155
+ if (component.viewDataTableButton) {
156
+ component.viewDataTableButton
157
+ .setAttribute('aria-expanded', 'false');
158
+ }
159
+ });
160
+ if (chart.exporting) {
161
+ // Needed when print logic in exporting does not trigger
162
+ // rerendering thus repositioning of screen reader DOM elements
163
+ // (#21554)
164
+ this.addEvent(chart, 'afterPrint', function () {
165
+ component.updateAllScreenReaderSections();
166
+ });
167
+ }
168
+ this.announcer = new Announcer(chart, 'assertive');
169
+ }
170
+ /**
171
+ * @private
172
+ */
173
+ initRegionsDefinitions() {
174
+ const component = this, accessibilityOptions = this.chart.options.accessibility;
175
+ this.screenReaderSections = {
176
+ before: {
177
+ element: null,
178
+ buildContent: function (chart) {
179
+ const formatter = accessibilityOptions.screenReaderSection
180
+ .beforeChartFormatter;
181
+ return formatter ? formatter(chart) :
182
+ component.defaultBeforeChartFormatter(chart);
183
+ },
184
+ insertIntoDOM: function (el, chart) {
185
+ chart.renderTo.insertBefore(el, chart.renderTo.firstChild);
186
+ },
187
+ afterInserted: function () {
188
+ if (typeof component.sonifyButtonId !== 'undefined') {
189
+ component.initSonifyButton(component.sonifyButtonId);
190
+ }
191
+ if (typeof component.dataTableButtonId !== 'undefined') {
192
+ component.initDataTableButton(component.dataTableButtonId);
193
+ }
194
+ }
195
+ },
196
+ after: {
197
+ element: null,
198
+ buildContent: function (chart) {
199
+ const formatter = accessibilityOptions.screenReaderSection
200
+ .afterChartFormatter;
201
+ return formatter ? formatter(chart) :
202
+ component.defaultAfterChartFormatter();
203
+ },
204
+ insertIntoDOM: function (el, chart) {
205
+ chart.renderTo.insertBefore(el, chart.container.nextSibling);
206
+ },
207
+ afterInserted: function () {
208
+ if (component.chart.accessibility &&
209
+ accessibilityOptions.keyboardNavigation.enabled) {
210
+ component.chart.accessibility
211
+ .keyboardNavigation.updateExitAnchor(); // #15986
212
+ }
213
+ }
214
+ }
215
+ };
216
+ }
217
+ /**
218
+ * Called on chart render. Have to update the sections on render, in order
219
+ * to get a11y info from series.
220
+ */
221
+ onChartRender() {
222
+ this.linkedDescriptionElement = this.getLinkedDescriptionElement();
223
+ this.setLinkedDescriptionAttrs();
224
+ this.updateAllScreenReaderSections();
225
+ }
226
+ updateAllScreenReaderSections() {
227
+ const component = this;
228
+ Object.keys(this.screenReaderSections).forEach(function (regionKey) {
229
+ component.updateScreenReaderSection(regionKey);
230
+ });
231
+ }
232
+ /**
233
+ * @private
234
+ */
235
+ getLinkedDescriptionElement() {
236
+ const chartOptions = this.chart.options, linkedDescOption = chartOptions.accessibility.linkedDescription;
237
+ if (!linkedDescOption) {
238
+ return;
239
+ }
240
+ if (typeof linkedDescOption !== 'string') {
241
+ return linkedDescOption;
242
+ }
243
+ const query = format(linkedDescOption, this.chart), queryMatch = doc.querySelectorAll(query);
244
+ if (queryMatch.length === 1) {
245
+ return queryMatch[0];
246
+ }
247
+ }
248
+ /**
249
+ * @private
250
+ */
251
+ setLinkedDescriptionAttrs() {
252
+ const el = this.linkedDescriptionElement;
253
+ if (el) {
254
+ el.setAttribute('aria-hidden', 'true');
255
+ addClass(el, 'highcharts-linked-description');
256
+ }
257
+ }
258
+ /**
259
+ * @private
260
+ * @param {string} regionKey
261
+ * The name/key of the region to update
262
+ */
263
+ updateScreenReaderSection(regionKey) {
264
+ const chart = this.chart;
265
+ const region = this.screenReaderSections[regionKey];
266
+ const content = region.buildContent(chart);
267
+ const sectionDiv = region.element = (region.element || this.createElement('div'));
268
+ const hiddenDiv = (sectionDiv.firstChild || this.createElement('div'));
269
+ if (content) {
270
+ this.setScreenReaderSectionAttribs(sectionDiv, regionKey);
271
+ AST.setElementHTML(hiddenDiv, content);
272
+ sectionDiv.appendChild(hiddenDiv);
273
+ region.insertIntoDOM(sectionDiv, chart);
274
+ if (chart.styledMode) {
275
+ addClass(hiddenDiv, 'highcharts-visually-hidden');
276
+ }
277
+ else {
278
+ visuallyHideElement(hiddenDiv);
279
+ }
280
+ unhideChartElementFromAT(chart, hiddenDiv);
281
+ if (region.afterInserted) {
282
+ region.afterInserted();
283
+ }
284
+ }
285
+ else {
286
+ if (sectionDiv.parentNode) {
287
+ sectionDiv.parentNode.removeChild(sectionDiv);
288
+ }
289
+ region.element = null;
290
+ }
291
+ }
292
+ /**
293
+ * Apply a11y attributes to a screen reader info section
294
+ * @private
295
+ * @param {Highcharts.HTMLDOMElement} sectionDiv The section element
296
+ * @param {string} regionKey Name/key of the region we are setting attrs for
297
+ */
298
+ setScreenReaderSectionAttribs(sectionDiv, regionKey) {
299
+ const chart = this.chart, labelText = chart.langFormat('accessibility.screenReaderSection.' + regionKey +
300
+ 'RegionLabel', { chart: chart, chartTitle: getChartTitle(chart) }), sectionId = `highcharts-screen-reader-region-${regionKey}-${chart.index}`;
301
+ attr(sectionDiv, {
302
+ id: sectionId,
303
+ 'aria-label': labelText || void 0
304
+ });
305
+ // Sections are wrapped to be positioned relatively to chart in case
306
+ // elements inside are tabbed to.
307
+ sectionDiv.style.position = 'relative';
308
+ if (labelText) {
309
+ sectionDiv.setAttribute('role', chart.options.accessibility.landmarkVerbosity === 'all' ?
310
+ 'region' : 'group');
311
+ }
312
+ }
313
+ /**
314
+ * @private
315
+ */
316
+ defaultBeforeChartFormatter() {
317
+ const chart = this.chart, format = chart.options.accessibility.screenReaderSection
318
+ .beforeChartFormat;
319
+ if (!format) {
320
+ return '';
321
+ }
322
+ const axesDesc = this.getAxesDescription(), shouldHaveSonifyBtn = (chart.sonify &&
323
+ chart.options.sonification &&
324
+ chart.options.sonification.enabled), sonifyButtonId = 'highcharts-a11y-sonify-data-btn-' +
325
+ chart.index, dataTableButtonId = 'hc-linkto-highcharts-data-table-' +
326
+ chart.index, annotationsList = getAnnotationsInfoHTML(chart), annotationsTitleStr = chart.langFormat('accessibility.screenReaderSection.annotations.heading', { chart: chart }), context = {
327
+ headingTagName: getHeadingTagNameForElement(chart.renderTo),
328
+ chartTitle: getChartTitle(chart),
329
+ typeDescription: this.getTypeDescriptionText(),
330
+ chartSubtitle: this.getSubtitleText(),
331
+ chartLongdesc: this.getLongdescText(),
332
+ xAxisDescription: axesDesc.xAxis,
333
+ yAxisDescription: axesDesc.yAxis,
334
+ playAsSoundButton: shouldHaveSonifyBtn ?
335
+ this.getSonifyButtonText(sonifyButtonId) : '',
336
+ viewTableButton: chart.exporting?.getCSV ?
337
+ this.getDataTableButtonText(dataTableButtonId) : '',
338
+ annotationsTitle: annotationsList ? annotationsTitleStr : '',
339
+ annotationsList: annotationsList
340
+ }, formattedString = A11yI18n.i18nFormat(format, context, chart);
341
+ this.dataTableButtonId = dataTableButtonId;
342
+ this.sonifyButtonId = sonifyButtonId;
343
+ return stripEmptyHTMLTags(formattedString);
344
+ }
345
+ /**
346
+ * @private
347
+ */
348
+ defaultAfterChartFormatter() {
349
+ const chart = this.chart;
350
+ const format = chart.options.accessibility.screenReaderSection
351
+ .afterChartFormat;
352
+ if (!format) {
353
+ return '';
354
+ }
355
+ const context = { endOfChartMarker: this.getEndOfChartMarkerText() };
356
+ const formattedString = A11yI18n.i18nFormat(format, context, chart);
357
+ return stripEmptyHTMLTags(formattedString);
358
+ }
359
+ /**
360
+ * @private
361
+ */
362
+ getLinkedDescription() {
363
+ const el = this.linkedDescriptionElement, content = el && el.innerHTML || '';
364
+ return stripHTMLTagsFromString(content, this.chart.renderer.forExport);
365
+ }
366
+ /**
367
+ * @private
368
+ */
369
+ getLongdescText() {
370
+ const chartOptions = this.chart.options, captionOptions = chartOptions.caption, captionText = captionOptions && captionOptions.text, linkedDescription = this.getLinkedDescription();
371
+ return (chartOptions.accessibility.description ||
372
+ linkedDescription ||
373
+ captionText ||
374
+ '');
375
+ }
376
+ /**
377
+ * @private
378
+ */
379
+ getTypeDescriptionText() {
380
+ const chart = this.chart;
381
+ return chart.types ?
382
+ chart.options.accessibility.typeDescription ||
383
+ getTypeDescription(chart, chart.types) : '';
384
+ }
385
+ /**
386
+ * @private
387
+ */
388
+ getDataTableButtonText(buttonId) {
389
+ const chart = this.chart, buttonText = chart.langFormat('accessibility.table.viewAsDataTableButtonText', { chart: chart, chartTitle: getChartTitle(chart) });
390
+ return '<button id="' + buttonId + '">' + buttonText + '</button>';
391
+ }
392
+ /**
393
+ * @private
394
+ */
395
+ getSonifyButtonText(buttonId) {
396
+ const chart = this.chart;
397
+ if (chart.options.sonification &&
398
+ chart.options.sonification.enabled === false) {
399
+ return '';
400
+ }
401
+ const buttonText = chart.langFormat('accessibility.sonification.playAsSoundButtonText', { chart: chart, chartTitle: getChartTitle(chart) });
402
+ return '<button id="' + buttonId + '">' + buttonText + '</button>';
403
+ }
404
+ /**
405
+ * @private
406
+ */
407
+ getSubtitleText() {
408
+ const subtitle = (this.chart.options.subtitle);
409
+ return stripHTMLTagsFromString(subtitle && subtitle.text || '', this.chart.renderer.forExport);
410
+ }
411
+ /**
412
+ * @private
413
+ */
414
+ getEndOfChartMarkerText() {
415
+ const endMarkerId = `highcharts-end-of-chart-marker-${this.chart.index}`, endMarker = getElement(endMarkerId);
416
+ if (endMarker) {
417
+ return endMarker.outerHTML;
418
+ }
419
+ const chart = this.chart, markerText = chart.langFormat('accessibility.screenReaderSection.endOfChartMarker', { chart: chart }), id = 'highcharts-end-of-chart-marker-' + chart.index;
420
+ return '<div id="' + id + '">' + markerText + '</div>';
421
+ }
422
+ /**
423
+ * @private
424
+ * @param {Highcharts.Dictionary<string>} e
425
+ */
426
+ onDataTableCreated(e) {
427
+ const chart = this.chart;
428
+ if (chart.options.accessibility.enabled) {
429
+ if (this.viewDataTableButton) {
430
+ this.viewDataTableButton.setAttribute('aria-expanded', 'true');
431
+ }
432
+ const attributes = e.tree.attributes || {};
433
+ attributes.tabindex = -1;
434
+ attributes.summary = getTableSummary(chart);
435
+ e.tree.attributes = attributes;
436
+ }
437
+ }
438
+ /**
439
+ * @private
440
+ */
441
+ focusDataTable() {
442
+ const tableDiv = this.dataTableDiv, table = tableDiv && tableDiv.getElementsByTagName('table')[0];
443
+ if (table && table.focus) {
444
+ table.focus();
445
+ }
446
+ }
447
+ /**
448
+ * @private
449
+ * @param {string} sonifyButtonId
450
+ */
451
+ initSonifyButton(sonifyButtonId) {
452
+ const el = this.sonifyButton = getElement(sonifyButtonId);
453
+ const chart = this.chart;
454
+ const defaultHandler = (e) => {
455
+ if (el) {
456
+ el.setAttribute('aria-hidden', 'true');
457
+ el.setAttribute('aria-label', '');
458
+ }
459
+ e.preventDefault();
460
+ e.stopPropagation();
461
+ const announceMsg = chart.langFormat('accessibility.sonification.playAsSoundClickAnnouncement', { chart: chart });
462
+ this.announcer.announce(announceMsg);
463
+ setTimeout(() => {
464
+ if (el) {
465
+ el.removeAttribute('aria-hidden');
466
+ el.removeAttribute('aria-label');
467
+ }
468
+ if (chart.sonify) {
469
+ chart.sonify();
470
+ }
471
+ }, 1000); // Delay to let screen reader speak the button press
472
+ };
473
+ if (el && chart) {
474
+ el.setAttribute('tabindex', -1);
475
+ el.onclick = function (e) {
476
+ const onPlayAsSoundClick = (chart.options.accessibility &&
477
+ chart.options.accessibility.screenReaderSection
478
+ .onPlayAsSoundClick);
479
+ (onPlayAsSoundClick || defaultHandler).call(this, e, chart);
480
+ };
481
+ }
482
+ }
483
+ /**
484
+ * Set attribs and handlers for default viewAsDataTable button if exists.
485
+ * @private
486
+ * @param {string} tableButtonId
487
+ */
488
+ initDataTableButton(tableButtonId) {
489
+ const el = this.viewDataTableButton = getElement(tableButtonId), chart = this.chart, tableId = tableButtonId.replace('hc-linkto-', '');
490
+ if (el) {
491
+ attr(el, {
492
+ tabindex: -1,
493
+ 'aria-expanded': !!getElement(tableId)
494
+ });
495
+ el.onclick = chart.options.accessibility
496
+ .screenReaderSection.onViewDataTableClick ||
497
+ function () {
498
+ chart.exporting?.viewData();
499
+ };
500
+ }
501
+ }
502
+ /**
503
+ * Return object with text description of each of the chart's axes.
504
+ * @private
505
+ */
506
+ getAxesDescription() {
507
+ const chart = this.chart, shouldDescribeColl = function (collectionKey, defaultCondition) {
508
+ const axes = chart[collectionKey];
509
+ return axes.length > 1 || axes[0] &&
510
+ pick(axes[0].options.accessibility &&
511
+ axes[0].options.accessibility.enabled, defaultCondition);
512
+ }, hasNoMap = !!chart.types &&
513
+ chart.types.indexOf('map') < 0 &&
514
+ chart.types.indexOf('treemap') < 0 &&
515
+ chart.types.indexOf('tilemap') < 0, hasCartesian = !!chart.hasCartesianSeries, showXAxes = shouldDescribeColl('xAxis', !chart.angular && hasCartesian && hasNoMap), showYAxes = shouldDescribeColl('yAxis', hasCartesian && hasNoMap), desc = {};
516
+ if (showXAxes) {
517
+ desc.xAxis = this.getAxisDescriptionText('xAxis');
518
+ }
519
+ if (showYAxes) {
520
+ desc.yAxis = this.getAxisDescriptionText('yAxis');
521
+ }
522
+ return desc;
523
+ }
524
+ /**
525
+ * @private
526
+ */
527
+ getAxisDescriptionText(collectionKey) {
528
+ const chart = this.chart;
529
+ const axes = chart[collectionKey];
530
+ return chart.langFormat('accessibility.axis.' + collectionKey + 'Description' + (axes.length > 1 ? 'Plural' : 'Singular'), {
531
+ chart: chart,
532
+ names: axes.map(function (axis) {
533
+ return getAxisDescription(axis);
534
+ }),
535
+ ranges: axes.map(function (axis) {
536
+ return getAxisRangeDescription(axis);
537
+ }),
538
+ numAxes: axes.length
539
+ });
540
+ }
541
+ /**
542
+ * Remove component traces
543
+ */
544
+ destroy() {
545
+ if (this.announcer) {
546
+ this.announcer.destroy();
547
+ }
548
+ }
549
+ }
550
+ /* *
551
+ *
552
+ * Default Export
553
+ *
554
+ * */
555
+ export default InfoRegionsComponent;
@@ -0,0 +1,124 @@
1
+ import type Accessibility from '../Accessibility';
2
+ import type Chart from '../../Core/Chart/Chart.js';
3
+ import type ProxyElement from '../ProxyElement';
4
+ import Legend from '../../Core/Legend/Legend.js';
5
+ import AccessibilityComponent from '../AccessibilityComponent.js';
6
+ import KeyboardNavigationHandler from '../KeyboardNavigationHandler.js';
7
+ declare module '../../Core/Legend/LegendItem' {
8
+ interface LegendItem {
9
+ a11yProxyElement?: ProxyElement;
10
+ }
11
+ }
12
+ declare module '../../Core/Series/PointBase' {
13
+ interface PointBase {
14
+ a11yProxyElement?: ProxyElement;
15
+ }
16
+ }
17
+ declare module '../../Core/Series/SeriesBase' {
18
+ interface SeriesBase {
19
+ a11yProxyElement?: ProxyElement;
20
+ }
21
+ }
22
+ /**
23
+ * The LegendComponent class
24
+ *
25
+ * @private
26
+ * @class
27
+ * @name Highcharts.LegendComponent
28
+ */
29
+ declare class LegendComponent extends AccessibilityComponent {
30
+ highlightedLegendItemIx: number;
31
+ private proxyGroup;
32
+ /**
33
+ * Init the component
34
+ * @private
35
+ */
36
+ init(): void;
37
+ /**
38
+ * Update visibility of legend items when using paged legend
39
+ * @private
40
+ */
41
+ updateLegendItemProxyVisibility(): void;
42
+ /**
43
+ * @private
44
+ */
45
+ onChartRender(): void;
46
+ /**
47
+ * @private
48
+ */
49
+ highlightAdjacentLegendPage(direction: number): void;
50
+ /**
51
+ * @private
52
+ */
53
+ updateProxyPositionForItem(item: Legend.Item): void;
54
+ /**
55
+ * Returns false if legend a11y is disabled and proxies were not created,
56
+ * true otherwise.
57
+ * @private
58
+ */
59
+ recreateProxies(): boolean;
60
+ /**
61
+ * @private
62
+ */
63
+ removeProxies(): void;
64
+ /**
65
+ * @private
66
+ */
67
+ updateLegendTitle(): void;
68
+ /**
69
+ * @private
70
+ */
71
+ addLegendProxyGroup(): void;
72
+ /**
73
+ * @private
74
+ */
75
+ proxyLegendItems(): void;
76
+ /**
77
+ * @private
78
+ * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
79
+ */
80
+ proxyLegendItem(item: Legend.Item): void;
81
+ /**
82
+ * Get keyboard navigation handler for this component.
83
+ * @private
84
+ */
85
+ getKeyboardNavigation(): KeyboardNavigationHandler;
86
+ /**
87
+ * Arrow key navigation
88
+ * @private
89
+ */
90
+ onKbdArrowKey(keyboardNavigationHandler: KeyboardNavigationHandler, key: number): number;
91
+ /**
92
+ * @private
93
+ * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
94
+ * @return {number} Response code
95
+ */
96
+ onKbdClick(keyboardNavigationHandler: KeyboardNavigationHandler): number;
97
+ /**
98
+ * @private
99
+ */
100
+ shouldHaveLegendNavigation(): boolean;
101
+ /**
102
+ * Clean up
103
+ * @private
104
+ */
105
+ destroy(): void;
106
+ }
107
+ interface LegendComponent {
108
+ chart: LegendComponent.ChartComposition;
109
+ }
110
+ declare namespace LegendComponent {
111
+ class ChartComposition extends Accessibility.ChartComposition {
112
+ highlightedLegendItemIx?: number;
113
+ /** @requires modules/accessibility */
114
+ highlightLegendItem(ix: number): boolean;
115
+ }
116
+ class LegendComposition extends Legend {
117
+ chart: ChartComposition;
118
+ }
119
+ /**
120
+ * @private
121
+ */
122
+ function compose(ChartClass: typeof Chart, LegendClass: typeof Legend): void;
123
+ }
124
+ export default LegendComponent;