@highcharts/grid-pro 2.1.0 → 2.2.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 (373) hide show
  1. package/css/grid-pro.css +428 -432
  2. package/es-modules/Accessibility/A11yI18n.js +3 -3
  3. package/es-modules/Accessibility/Accessibility.js +4 -3
  4. package/es-modules/Accessibility/AccessibilityComponent.d.ts +1 -1
  5. package/es-modules/Accessibility/AccessibilityComponent.js +4 -3
  6. package/es-modules/Accessibility/Components/AnnotationsA11y.js +4 -3
  7. package/es-modules/Accessibility/Components/ContainerComponent.js +4 -3
  8. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +4 -3
  9. package/es-modules/Accessibility/Components/LegendComponent.js +4 -3
  10. package/es-modules/Accessibility/Components/MenuComponent.js +4 -3
  11. package/es-modules/Accessibility/Components/NavigatorComponent.js +3 -3
  12. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +4 -3
  13. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +14 -3
  14. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +4 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +4 -3
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +4 -3
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +4 -3
  18. package/es-modules/Accessibility/Components/ZoomComponent.js +4 -3
  19. package/es-modules/Accessibility/FocusBorder.js +4 -3
  20. package/es-modules/Accessibility/HighContrastMode.js +4 -3
  21. package/es-modules/Accessibility/HighContrastTheme.js +4 -3
  22. package/es-modules/Accessibility/KeyboardNavigation.js +4 -3
  23. package/es-modules/Accessibility/KeyboardNavigationHandler.js +4 -3
  24. package/es-modules/Accessibility/Options/A11yDefaults.js +4 -3
  25. package/es-modules/Accessibility/Options/DeprecatedOptions.js +4 -3
  26. package/es-modules/Accessibility/Options/LangDefaults.js +4 -3
  27. package/es-modules/Accessibility/ProxyElement.js +4 -3
  28. package/es-modules/Accessibility/ProxyProvider.js +4 -3
  29. package/es-modules/Accessibility/Utils/Announcer.js +4 -3
  30. package/es-modules/Accessibility/Utils/ChartUtilities.js +4 -3
  31. package/es-modules/Accessibility/Utils/DOMElementProvider.js +4 -3
  32. package/es-modules/Accessibility/Utils/EventProvider.d.ts +1 -1
  33. package/es-modules/Accessibility/Utils/EventProvider.js +4 -3
  34. package/es-modules/Accessibility/Utils/HTMLUtilities.js +4 -3
  35. package/es-modules/Core/Animation/AnimationOptions.d.ts +42 -0
  36. package/es-modules/Core/Animation/AnimationOptions.js +10 -0
  37. package/es-modules/Core/Animation/AnimationUtilities.js +39 -3
  38. package/es-modules/Core/Animation/Fx.d.ts +1 -130
  39. package/es-modules/Core/Animation/Fx.js +13 -6
  40. package/es-modules/Core/Animation/FxBase.d.ts +1 -0
  41. package/es-modules/Core/Animation/FxBase.js +11 -0
  42. package/es-modules/Core/Callback.d.ts +49 -0
  43. package/es-modules/Core/Callback.js +10 -0
  44. package/es-modules/Core/Chart/Chart.d.ts +659 -400
  45. package/es-modules/Core/Chart/Chart.js +64 -54
  46. package/es-modules/Core/Chart/Chart3D.d.ts +123 -233
  47. package/es-modules/Core/Chart/Chart3D.js +22 -35
  48. package/es-modules/Core/Chart/ChartBase.d.ts +3 -0
  49. package/es-modules/Core/Chart/ChartBase.js +11 -0
  50. package/es-modules/Core/Chart/ChartDefaults.js +7 -12
  51. package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +1 -55
  52. package/es-modules/Core/Chart/ChartNavigationComposition.js +13 -13
  53. package/es-modules/Core/Chart/ChartOptions.d.ts +1217 -0
  54. package/es-modules/Core/Chart/ChartOptions.js +10 -0
  55. package/es-modules/Core/Chart/GanttChart.d.ts +0 -38
  56. package/es-modules/Core/Chart/GanttChart.js +4 -3
  57. package/es-modules/Core/Chart/MapChart.d.ts +9 -4
  58. package/es-modules/Core/Chart/MapChart.js +13 -3
  59. package/es-modules/Core/Chart/StockChart.d.ts +0 -85
  60. package/es-modules/Core/Chart/StockChart.js +33 -15
  61. package/es-modules/Core/Color/Color.d.ts +16 -24
  62. package/es-modules/Core/Color/Color.js +26 -8
  63. package/es-modules/Core/Color/ColorString.d.ts +0 -23
  64. package/es-modules/Core/Color/ColorString.js +11 -0
  65. package/es-modules/Core/Color/ColorType.d.ts +0 -33
  66. package/es-modules/Core/Color/ColorType.js +11 -0
  67. package/es-modules/Core/Color/GradientColor.d.ts +0 -33
  68. package/es-modules/Core/Color/GradientColor.js +11 -0
  69. package/es-modules/Core/Color/Palettes.d.ts +1 -84
  70. package/es-modules/Core/Color/Palettes.js +2 -1
  71. package/es-modules/Core/Defaults.d.ts +6 -0
  72. package/es-modules/Core/Defaults.js +30 -66
  73. package/es-modules/Core/Foundation.d.ts +1 -19
  74. package/es-modules/Core/Foundation.js +7 -4
  75. package/es-modules/Core/Geometry/CircleObject.d.ts +5 -0
  76. package/es-modules/Core/Geometry/CircleObject.js +10 -0
  77. package/es-modules/Core/Geometry/CircleUtilities.d.ts +1 -189
  78. package/es-modules/Core/Geometry/CircleUtilities.js +17 -15
  79. package/es-modules/Core/Geometry/GeometryObject.d.ts +7 -0
  80. package/es-modules/Core/Geometry/GeometryObject.js +10 -0
  81. package/es-modules/Core/Geometry/GeometryUtilities.d.ts +1 -48
  82. package/es-modules/Core/Geometry/GeometryUtilities.js +9 -7
  83. package/es-modules/Core/Geometry/IntersectionObject.d.ts +7 -0
  84. package/es-modules/Core/Geometry/IntersectionObject.js +10 -0
  85. package/es-modules/Core/Geometry/PolygonClip.d.ts +1 -19
  86. package/es-modules/Core/Geometry/PolygonClip.js +9 -7
  87. package/es-modules/Core/Globals.d.ts +9 -31
  88. package/es-modules/Core/Globals.js +9 -10
  89. package/es-modules/Core/GlobalsBase.d.ts +35 -0
  90. package/es-modules/Core/GlobalsBase.js +11 -0
  91. package/es-modules/Core/HttpUtilities.d.ts +54 -17
  92. package/es-modules/Core/HttpUtilities.js +15 -14
  93. package/es-modules/Core/JSON.d.ts +29 -0
  94. package/es-modules/Core/JSON.js +13 -0
  95. package/es-modules/Core/KeyboardEvent.d.ts +1 -0
  96. package/es-modules/Core/KeyboardEvent.js +11 -0
  97. package/es-modules/Core/MSPointer.d.ts +1 -74
  98. package/es-modules/Core/MSPointer.js +23 -13
  99. package/es-modules/Core/Math3D.d.ts +1 -117
  100. package/es-modules/Core/Math3D.js +13 -10
  101. package/es-modules/Core/Options.d.ts +334 -0
  102. package/es-modules/Core/Options.js +10 -0
  103. package/es-modules/Core/Pointer.d.ts +71 -445
  104. package/es-modules/Core/Pointer.js +51 -65
  105. package/es-modules/Core/PointerEvent.d.ts +18 -0
  106. package/es-modules/Core/PointerEvent.js +11 -0
  107. package/es-modules/Core/Renderer/AlignObject.d.ts +25 -27
  108. package/es-modules/Core/Renderer/AlignObject.js +11 -0
  109. package/es-modules/Core/Renderer/BBoxObject.d.ts +20 -31
  110. package/es-modules/Core/Renderer/BBoxObject.js +11 -0
  111. package/es-modules/Core/Renderer/CSSObject.d.ts +268 -59
  112. package/es-modules/Core/Renderer/CSSObject.js +10 -0
  113. package/es-modules/Core/Renderer/DOMElementType.d.ts +1 -33
  114. package/es-modules/Core/Renderer/DOMElementType.js +11 -0
  115. package/es-modules/Core/Renderer/DashStyleValue.d.ts +1 -27
  116. package/es-modules/Core/Renderer/DashStyleValue.js +11 -0
  117. package/es-modules/Core/Renderer/FontMetricsObject.d.ts +6 -26
  118. package/es-modules/Core/Renderer/FontMetricsObject.js +11 -0
  119. package/es-modules/Core/Renderer/HTML/AST.d.ts +3 -15
  120. package/es-modules/Core/Renderer/HTML/AST.js +22 -13
  121. package/es-modules/Core/Renderer/HTML/HTMLAttributes.d.ts +1 -25
  122. package/es-modules/Core/Renderer/HTML/HTMLAttributes.js +11 -0
  123. package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +0 -54
  124. package/es-modules/Core/Renderer/HTML/HTMLElement.js +27 -22
  125. package/es-modules/Core/Renderer/PolygonBoxObject.d.ts +15 -12
  126. package/es-modules/Core/Renderer/PolygonBoxObject.js +11 -0
  127. package/es-modules/Core/Renderer/Position3DObject.d.ts +6 -30
  128. package/es-modules/Core/Renderer/Position3DObject.js +11 -0
  129. package/es-modules/Core/Renderer/PositionObject.d.ts +9 -23
  130. package/es-modules/Core/Renderer/PositionObject.js +11 -0
  131. package/es-modules/Core/Renderer/RectangleObject.d.ts +6 -30
  132. package/es-modules/Core/Renderer/RectangleObject.js +11 -0
  133. package/es-modules/Core/Renderer/RendererRegistry.d.ts +1 -29
  134. package/es-modules/Core/Renderer/RendererRegistry.js +6 -3
  135. package/es-modules/Core/Renderer/RendererType.d.ts +1 -53
  136. package/es-modules/Core/Renderer/RendererType.js +11 -0
  137. package/es-modules/Core/Renderer/RendererUtilities.d.ts +1 -26
  138. package/es-modules/Core/Renderer/RendererUtilities.js +7 -4
  139. package/es-modules/Core/Renderer/SVG/ButtonThemeObject.d.ts +26 -31
  140. package/es-modules/Core/Renderer/SVG/SVGArc3D.d.ts +1 -44
  141. package/es-modules/Core/Renderer/SVG/SVGAttributes.d.ts +15 -51
  142. package/es-modules/Core/Renderer/SVG/SVGAttributes3D.d.ts +1 -42
  143. package/es-modules/Core/Renderer/SVG/SVGCuboid.d.ts +1 -42
  144. package/es-modules/Core/Renderer/SVG/SVGElement.d.ts +459 -0
  145. package/es-modules/Core/Renderer/SVG/SVGElement3D.d.ts +1 -0
  146. package/es-modules/Core/Renderer/SVG/SVGElementBase.d.ts +0 -23
  147. package/es-modules/Core/Renderer/SVG/SVGLabel.d.ts +14 -0
  148. package/es-modules/Core/Renderer/SVG/SVGPath.d.ts +18 -56
  149. package/es-modules/Core/Renderer/SVG/SVGPath3D.d.ts +0 -30
  150. package/es-modules/Core/Renderer/SVG/SVGRenderer.d.ts +652 -0
  151. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.d.ts +1 -0
  152. package/es-modules/Core/Renderer/SVG/SVGRendererBase.d.ts +0 -24
  153. package/es-modules/Core/Renderer/SVG/SymbolOptions.d.ts +3 -26
  154. package/es-modules/Core/Renderer/SVG/SymbolType.d.ts +1 -41
  155. package/es-modules/Core/Renderer/SVG/Symbols.d.ts +146 -0
  156. package/es-modules/Core/Renderer/SVG/TextBuilder.d.ts +1 -0
  157. package/es-modules/Core/Renderer/ShadowOptionsObject.d.ts +21 -30
  158. package/es-modules/Core/Renderer/ShadowOptionsObject.js +11 -0
  159. package/es-modules/Core/Renderer/SizeObject.d.ts +0 -23
  160. package/es-modules/Core/Renderer/SizeObject.js +11 -0
  161. package/es-modules/Core/Responsive.d.ts +91 -28
  162. package/es-modules/Core/Responsive.js +7 -8
  163. package/es-modules/Core/Templating.d.ts +16 -0
  164. package/es-modules/Core/Templating.js +9 -4
  165. package/es-modules/Core/Time.d.ts +10 -1
  166. package/es-modules/Core/Time.js +4 -3
  167. package/es-modules/Core/Tooltip.d.ts +63 -115
  168. package/es-modules/Core/Tooltip.js +61 -27
  169. package/es-modules/Core/TooltipOptions.d.ts +681 -0
  170. package/es-modules/Core/TooltipOptions.js +10 -0
  171. package/es-modules/Core/Utilities.d.ts +75 -106
  172. package/es-modules/Core/Utilities.js +19 -53
  173. package/es-modules/Data/ColumnUtils.js +3 -3
  174. package/es-modules/Data/Connectors/CSVConnector.js +3 -3
  175. package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +3 -3
  176. package/es-modules/Data/Connectors/DataConnector.d.ts +12 -1
  177. package/es-modules/Data/Connectors/DataConnector.js +34 -4
  178. package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +3 -3
  179. package/es-modules/Data/Connectors/DataConnectorType.d.ts +3 -3
  180. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +3 -3
  181. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +3 -3
  182. package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -3
  183. package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +3 -3
  184. package/es-modules/Data/Connectors/JSONConnector.js +3 -3
  185. package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +3 -3
  186. package/es-modules/Data/Converters/CSVConverter.js +3 -3
  187. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +3 -3
  188. package/es-modules/Data/Converters/DataConverter.js +3 -3
  189. package/es-modules/Data/Converters/DataConverterType.d.ts +3 -3
  190. package/es-modules/Data/Converters/DataConverterUtils.js +3 -3
  191. package/es-modules/Data/Converters/GoogleSheetsConverter.js +3 -3
  192. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +3 -3
  193. package/es-modules/Data/Converters/HTMLTableConverter.js +3 -3
  194. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +3 -3
  195. package/es-modules/Data/Converters/JSONConverter.js +3 -3
  196. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +3 -3
  197. package/es-modules/Data/DataCursor.js +3 -3
  198. package/es-modules/Data/DataEvent.js +3 -3
  199. package/es-modules/Data/DataPool.js +3 -3
  200. package/es-modules/Data/DataPoolOptions.d.ts +3 -3
  201. package/es-modules/Data/DataTable.d.ts +6 -6
  202. package/es-modules/Data/DataTable.js +64 -30
  203. package/es-modules/Data/DataTableCore.d.ts +2 -2
  204. package/es-modules/Data/DataTableCore.js +5 -5
  205. package/es-modules/Data/DataTableOptions.js +3 -3
  206. package/es-modules/Data/Formula/Formula.js +3 -3
  207. package/es-modules/Data/Formula/FormulaParser.js +3 -3
  208. package/es-modules/Data/Formula/FormulaProcessor.js +3 -3
  209. package/es-modules/Data/Formula/FormulaTypes.js +3 -3
  210. package/es-modules/Data/Formula/Functions/ABS.js +3 -3
  211. package/es-modules/Data/Formula/Functions/AND.js +3 -3
  212. package/es-modules/Data/Formula/Functions/AVERAGE.js +3 -3
  213. package/es-modules/Data/Formula/Functions/AVERAGEA.js +3 -3
  214. package/es-modules/Data/Formula/Functions/COUNT.js +3 -3
  215. package/es-modules/Data/Formula/Functions/COUNTA.js +3 -3
  216. package/es-modules/Data/Formula/Functions/IF.js +3 -3
  217. package/es-modules/Data/Formula/Functions/ISNA.js +3 -3
  218. package/es-modules/Data/Formula/Functions/MAX.js +3 -3
  219. package/es-modules/Data/Formula/Functions/MEDIAN.js +3 -3
  220. package/es-modules/Data/Formula/Functions/MIN.js +3 -3
  221. package/es-modules/Data/Formula/Functions/MOD.js +3 -3
  222. package/es-modules/Data/Formula/Functions/MODE.js +3 -3
  223. package/es-modules/Data/Formula/Functions/NOT.js +3 -3
  224. package/es-modules/Data/Formula/Functions/OR.js +3 -3
  225. package/es-modules/Data/Formula/Functions/PRODUCT.js +3 -3
  226. package/es-modules/Data/Formula/Functions/SUM.js +3 -3
  227. package/es-modules/Data/Formula/Functions/XOR.js +3 -3
  228. package/es-modules/Data/Modifiers/ChainModifier.js +3 -3
  229. package/es-modules/Data/Modifiers/ChainModifierOptions.js +3 -3
  230. package/es-modules/Data/Modifiers/DataModifier.js +3 -3
  231. package/es-modules/Data/Modifiers/DataModifierEvent.js +3 -3
  232. package/es-modules/Data/Modifiers/DataModifierOptions.js +3 -3
  233. package/es-modules/Data/Modifiers/DataModifierType.d.ts +3 -3
  234. package/es-modules/Data/Modifiers/FilterModifier.js +3 -3
  235. package/es-modules/Data/Modifiers/FilterModifierOptions.js +3 -3
  236. package/es-modules/Data/Modifiers/InvertModifier.js +3 -3
  237. package/es-modules/Data/Modifiers/InvertModifierOptions.js +3 -3
  238. package/es-modules/Data/Modifiers/MathModifier.js +3 -3
  239. package/es-modules/Data/Modifiers/MathModifierOptions.js +3 -3
  240. package/es-modules/Data/Modifiers/RangeModifier.js +3 -3
  241. package/es-modules/Data/Modifiers/RangeModifierOptions.js +3 -3
  242. package/es-modules/Data/Modifiers/SortModifier.js +32 -6
  243. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +41 -4
  244. package/es-modules/Data/Modifiers/SortModifierOptions.js +3 -3
  245. package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +77 -0
  246. package/es-modules/Grid/Core/Accessibility/A11yOptions.js +4 -3
  247. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +67 -0
  248. package/es-modules/Grid/Core/Accessibility/Accessibility.js +176 -3
  249. package/es-modules/Grid/Core/Credits.js +3 -3
  250. package/es-modules/Grid/Core/Defaults.js +17 -5
  251. package/es-modules/Grid/Core/Globals.d.ts +4 -4
  252. package/es-modules/Grid/Core/Globals.js +5 -5
  253. package/es-modules/Grid/Core/Grid.d.ts +12 -1
  254. package/es-modules/Grid/Core/Grid.js +110 -8
  255. package/es-modules/Grid/Core/GridUtils.js +3 -3
  256. package/es-modules/Grid/Core/Options.d.ts +17 -1
  257. package/es-modules/Grid/Core/Options.js +3 -3
  258. package/es-modules/Grid/Core/Pagination/Pagination.js +3 -3
  259. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +0 -40
  260. package/es-modules/Grid/Core/Pagination/PaginationOptions.js +11 -0
  261. package/es-modules/Grid/Core/Querying/FilteringController.js +3 -3
  262. package/es-modules/Grid/Core/Querying/PaginationController.js +3 -3
  263. package/es-modules/Grid/Core/Querying/QueryingController.js +3 -3
  264. package/es-modules/Grid/Core/Querying/SortingController.d.ts +15 -0
  265. package/es-modules/Grid/Core/Querying/SortingController.js +89 -51
  266. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +3 -3
  267. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +2 -2
  268. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +3 -3
  269. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +3 -3
  270. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +3 -3
  271. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +12 -2
  272. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +85 -18
  273. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +3 -3
  274. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +37 -0
  275. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +137 -26
  276. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +9 -2
  277. package/es-modules/Grid/Core/Table/Body/TableCell.js +15 -8
  278. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +18 -0
  279. package/es-modules/Grid/Core/Table/Body/TableRow.js +56 -10
  280. package/es-modules/Grid/Core/Table/Cell.d.ts +0 -7
  281. package/es-modules/Grid/Core/Table/Cell.js +5 -3
  282. package/es-modules/Grid/Core/Table/CellContent/CellContent.js +3 -3
  283. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +4 -4
  284. package/es-modules/Grid/Core/Table/Column.d.ts +1 -1
  285. package/es-modules/Grid/Core/Table/Column.js +3 -3
  286. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +3 -3
  287. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +3 -3
  288. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +3 -3
  289. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +3 -3
  290. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +3 -3
  291. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +14 -5
  292. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +3 -3
  293. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +3 -3
  294. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +9 -0
  295. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +35 -6
  296. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +5 -4
  297. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +11 -7
  298. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +3 -3
  299. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +3 -3
  300. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +5 -1
  301. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +92 -9
  302. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +2 -2
  303. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +8 -7
  304. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +3 -3
  305. package/es-modules/Grid/Core/Table/Header/TableHeader.js +3 -3
  306. package/es-modules/Grid/Core/Table/Row.js +3 -3
  307. package/es-modules/Grid/Core/Table/Table.d.ts +30 -0
  308. package/es-modules/Grid/Core/Table/Table.js +118 -7
  309. package/es-modules/Grid/Core/UI/Button.js +3 -3
  310. package/es-modules/Grid/Core/UI/ContextMenu.js +3 -3
  311. package/es-modules/Grid/Core/UI/ContextMenuButton.js +3 -3
  312. package/es-modules/Grid/Core/UI/Popup.js +3 -3
  313. package/es-modules/Grid/Core/UI/SvgIcons.js +3 -3
  314. package/es-modules/Grid/Core/UI/Toolbar.js +3 -3
  315. package/es-modules/Grid/Core/UI/ToolbarButton.js +3 -3
  316. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +3 -44
  317. package/es-modules/Grid/Pro/CellEditing/CellEditMode.js +16 -0
  318. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +3 -3
  319. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +3 -3
  320. package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +3 -3
  321. package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +3 -3
  322. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +3 -3
  323. package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +1 -34
  324. package/es-modules/Grid/Pro/CellRendering/CellRendererType.js +15 -0
  325. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +3 -3
  326. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +3 -3
  327. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +3 -3
  328. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +3 -3
  329. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +3 -3
  330. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +3 -3
  331. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +3 -3
  332. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +7 -5
  333. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +3 -3
  334. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +3 -3
  335. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +3 -3
  336. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +3 -3
  337. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +3 -3
  338. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +3 -3
  339. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +3 -3
  340. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +3 -3
  341. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +3 -3
  342. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +3 -3
  343. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +3 -3
  344. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +3 -3
  345. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +3 -3
  346. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +3 -3
  347. package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +10 -1
  348. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +50 -8
  349. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +3 -3
  350. package/es-modules/Grid/Pro/Credits/CreditsPro.js +3 -3
  351. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +3 -3
  352. package/es-modules/Grid/Pro/Export/Exporting.js +4 -5
  353. package/es-modules/Grid/Pro/Export/ExportingComposition.js +3 -3
  354. package/es-modules/Grid/Pro/GridEvents.d.ts +1 -0
  355. package/es-modules/Grid/Pro/GridEvents.js +3 -3
  356. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +3 -3
  357. package/es-modules/Grid/index.js +3 -3
  358. package/es-modules/Shared/BaseForm.js +3 -3
  359. package/es-modules/Shared/DownloadURL.d.ts +1 -85
  360. package/es-modules/Shared/DownloadURL.js +14 -11
  361. package/es-modules/Shared/LangOptionsCore.d.ts +4 -3
  362. package/es-modules/Shared/TimeBase.d.ts +1 -46
  363. package/es-modules/Shared/TimeBase.js +8 -7
  364. package/es-modules/Shared/Types.d.ts +4 -3
  365. package/es-modules/masters/grid-pro.src.d.ts +8 -13
  366. package/es-modules/masters/grid-pro.src.js +15 -7
  367. package/grid-pro.d.ts +8 -13
  368. package/grid-pro.js +6 -5
  369. package/grid-pro.js.map +1 -1
  370. package/grid-pro.src.d.ts +8 -13
  371. package/grid-pro.src.js +1923 -721
  372. package/package.json +1 -9
  373. package/es-modules/Grid/Pro/highcharts.d.ts +0 -7
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Cell abstract class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -106,6 +106,8 @@ class Cell {
106
106
  *
107
107
  * @param e
108
108
  * Keyboard event object.
109
+ *
110
+ * @internal
109
111
  */
110
112
  onKeyDown(e) {
111
113
  const { row, column } = this;
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Cell Content abstract class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Text Cell Content class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -97,7 +97,7 @@ class TextContent extends CellContent {
97
97
  * */
98
98
  TextContent.defaultFormatsForDataTypes = {
99
99
  string: '{value}',
100
- number: '{value}',
100
+ number: '{value:,.f}',
101
101
  'boolean': '{value}',
102
102
  datetime: '{value:%Y-%m-%d %H:%M:%S}'
103
103
  };
@@ -35,7 +35,7 @@ export declare class Column {
35
35
  * The options of the column as a proxy that provides merged access to
36
36
  * original options and defaults if not defined in the individual options.
37
37
  */
38
- readonly options: NoIdColumnOptions;
38
+ options: NoIdColumnOptions;
39
39
  /**
40
40
  * The index of the column in the viewport.
41
41
  */
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Column class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Adjacent Resizing Mode class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Column Resizing namespace
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Distributed Resizing Mode class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Independent Resizing Mode class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Resizing Mode abstract class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Header Cell Toolbar class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -51,7 +51,9 @@ class HeaderCellToolbar {
51
51
  */
52
52
  renderFull() {
53
53
  const columnOptions = this.column.options;
54
- if (columnOptions.sorting?.sortable) {
54
+ const sortingEnabled = columnOptions.sorting?.enabled ??
55
+ columnOptions.sorting?.sortable;
56
+ if (sortingEnabled) {
55
57
  new SortToolbarButton().add(this);
56
58
  }
57
59
  if (columnOptions.filtering?.enabled &&
@@ -61,7 +63,9 @@ class HeaderCellToolbar {
61
63
  }
62
64
  renderMinimized() {
63
65
  const columnOptions = this.column.options;
64
- if (columnOptions.sorting?.sortable || (columnOptions.filtering?.enabled &&
66
+ const sortingEnabled = columnOptions.sorting?.enabled ??
67
+ columnOptions.sorting?.sortable;
68
+ if (sortingEnabled || (columnOptions.filtering?.enabled &&
65
69
  !columnOptions.filtering.inline)) {
66
70
  new MenuToolbarButton().add(this);
67
71
  }
@@ -127,6 +131,11 @@ class HeaderCellToolbar {
127
131
  }
128
132
  }
129
133
  if (!shouldBeMinimized) {
134
+ // Ensure we reset any "minimized only" header state. This can
135
+ // happen if the grid was initialized in a hidden container
136
+ // (e.g. display:none) where widths measure as 0. (#24002)
137
+ this.isMenuCentered = void 0;
138
+ this.column.header?.container?.classList.remove(Globals.getClassName('noWidth'));
130
139
  return;
131
140
  }
132
141
  const parent = this.column.header?.htmlElement;
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Filter Popup class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Filter Context Menu Button class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -4,8 +4,17 @@ import ContextMenuButton from '../../../../UI/ContextMenuButton.js';
4
4
  declare class SortMenuButton extends ContextMenuButton {
5
5
  contextMenu?: MenuPopup;
6
6
  private direction;
7
+ private baseLabel;
7
8
  constructor(langOptions: LangOptions, direction: typeof SortMenuButton.prototype.direction);
8
9
  protected refreshState(): void;
10
+ /**
11
+ * Updates the label to include the sort priority when multi-column
12
+ * sorting is active.
13
+ *
14
+ * @param column
15
+ * The column to get the priority from, or undefined to reset the label.
16
+ */
17
+ private updateLabelWithPriority;
9
18
  protected addEventListeners(): void;
10
19
  protected clickHandler(event: MouseEvent): void;
11
20
  }
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Sort Context Menu Button class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -31,7 +31,8 @@ class SortMenuButton extends ContextMenuButton {
31
31
  constructor(langOptions, direction) {
32
32
  super({ icon: direction === 'asc' ? 'sortAsc' : 'sortDesc' });
33
33
  this.direction = direction;
34
- this.options.label = langOptions[direction === 'asc' ? 'sortAscending' : 'sortDescending'];
34
+ this.baseLabel = langOptions[direction === 'asc' ? 'sortAscending' : 'sortDescending'] || '';
35
+ this.options.label = this.baseLabel;
35
36
  }
36
37
  /* *
37
38
  *
@@ -43,7 +44,35 @@ class SortMenuButton extends ContextMenuButton {
43
44
  if (!column) {
44
45
  return;
45
46
  }
46
- this.setActive(StateHelpers.isSorted(column, this.direction));
47
+ const isSorted = StateHelpers.isSorted(column, this.direction);
48
+ this.setActive(isSorted);
49
+ // Update label with priority if multi-column sorting is active
50
+ this.updateLabelWithPriority(isSorted ? column : void 0);
51
+ }
52
+ /**
53
+ * Updates the label to include the sort priority when multi-column
54
+ * sorting is active.
55
+ *
56
+ * @param column
57
+ * The column to get the priority from, or undefined to reset the label.
58
+ */
59
+ updateLabelWithPriority(column) {
60
+ if (!column) {
61
+ this.setLabel(this.baseLabel);
62
+ return;
63
+ }
64
+ const { currentSortings } = column.viewport.grid.querying.sorting;
65
+ const sortings = currentSortings || [];
66
+ const sortIndex = sortings.findIndex((sorting) => sorting.columnId === column.id);
67
+ const priority = (sortings.length > 1 && sortIndex !== -1 ?
68
+ sortIndex + 1 :
69
+ void 0);
70
+ if (priority) {
71
+ this.setLabel(`${this.baseLabel} (${priority})`);
72
+ }
73
+ else {
74
+ this.setLabel(this.baseLabel);
75
+ }
47
76
  }
48
77
  addEventListeners() {
49
78
  super.addEventListeners();
@@ -60,7 +89,7 @@ class SortMenuButton extends ContextMenuButton {
60
89
  if (!sorting) {
61
90
  return;
62
91
  }
63
- void sorting.setOrder(this.isActive ? null : this.direction);
92
+ void sorting.setOrder(this.isActive ? null : this.direction, !!event?.shiftKey);
64
93
  }
65
94
  }
66
95
  /* *
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Menu Popup class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -44,7 +44,8 @@ class MenuPopup extends ContextMenu {
44
44
  const columnOptions = this.button.toolbar?.column.options || {};
45
45
  const filteringEnabled = (columnOptions.filtering?.enabled &&
46
46
  !columnOptions.filtering.inline);
47
- const sortingEnabled = columnOptions.sorting?.sortable;
47
+ const sortingEnabled = columnOptions.sorting?.enabled ??
48
+ columnOptions.sorting?.sortable;
48
49
  this.addHeader(this.button.toolbar?.column.header?.value || '', lang.column);
49
50
  if (sortingEnabled) {
50
51
  new SortMenuButton(lang, 'desc').add(this);
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Header Cell State Helpers namespace
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -44,13 +44,17 @@ export function isFiltered(column) {
44
44
  * only if the column is sorted in the provided order.
45
45
  */
46
46
  export function isSorted(column, order) {
47
- const { currentSorting } = column.viewport.grid.querying.sorting || {};
48
- if (currentSorting?.columnId !== column.id) {
47
+ const { currentSorting, currentSortings } = column.viewport.grid.querying.sorting || {};
48
+ const columnSorting = (currentSortings?.find((sorting) => sorting.columnId === column.id) ||
49
+ (currentSorting?.columnId === column.id ?
50
+ currentSorting :
51
+ void 0));
52
+ if (!columnSorting?.order) {
49
53
  return false;
50
54
  }
51
55
  return order ?
52
- currentSorting?.order === order :
53
- !!currentSorting?.order;
56
+ columnSorting.order === order :
57
+ !!columnSorting.order;
54
58
  }
55
59
  /* *
56
60
  *
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Filter Toolbar Button class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Menu Toolbar Button class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -2,10 +2,14 @@ import type ColumnToolbar from '../ColumnToolbar.js';
2
2
  import ToolbarButton from '../../../../UI/ToolbarButton.js';
3
3
  declare class SortToolbarButton extends ToolbarButton {
4
4
  toolbar?: ColumnToolbar;
5
+ private sortPriorityIndicator?;
6
+ private getColumnLabel;
7
+ private updateA11yLabel;
5
8
  constructor();
6
9
  protected clickHandler(event: MouseEvent): void;
10
+ private renderSortPriorityIndicator;
7
11
  refreshState(): void;
8
12
  protected addEventListeners(): void;
9
- protected renderActiveIndicator(): void;
13
+ protected renderActiveIndicator(render: boolean): void;
10
14
  }
11
15
  export default SortToolbarButton;
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Sort Toolbar Button class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -14,8 +14,11 @@
14
14
  * */
15
15
  'use strict';
16
16
  import ToolbarButton from '../../../../UI/ToolbarButton.js';
17
+ import GridUtils from '../../../../GridUtils.js';
18
+ import Globals from '../../../../Globals.js';
17
19
  import StateHelpers from '../StateHelpers.js';
18
20
  import U from '../../../../../../Core/Utilities.js';
21
+ const { formatText } = GridUtils;
19
22
  const { addEvent } = U;
20
23
  /* *
21
24
  *
@@ -23,6 +26,48 @@ const { addEvent } = U;
23
26
  *
24
27
  * */
25
28
  class SortToolbarButton extends ToolbarButton {
29
+ getColumnLabel() {
30
+ const column = this.toolbar?.column;
31
+ const label = (column?.header?.headerContent?.textContent ||
32
+ column?.header?.value ||
33
+ column?.id ||
34
+ '').trim();
35
+ return label || column?.id || '';
36
+ }
37
+ updateA11yLabel(order, priority) {
38
+ const button = this.wrapper?.querySelector('button');
39
+ if (!button) {
40
+ return;
41
+ }
42
+ const column = this.toolbar?.column;
43
+ const lang = column?.viewport.grid.options?.lang;
44
+ const sortingLang = lang?.accessibility?.sorting;
45
+ const announcements = sortingLang?.announcements;
46
+ const columnLabel = this.getColumnLabel();
47
+ const labelParts = [];
48
+ if (columnLabel) {
49
+ labelParts.push(columnLabel);
50
+ }
51
+ let stateLabel;
52
+ if (order === 'asc') {
53
+ stateLabel = announcements?.ascending;
54
+ }
55
+ else if (order === 'desc') {
56
+ stateLabel = announcements?.descending;
57
+ }
58
+ else {
59
+ stateLabel = announcements?.none;
60
+ }
61
+ if (stateLabel) {
62
+ labelParts.push(stateLabel);
63
+ }
64
+ if (priority) {
65
+ labelParts.push(formatText(sortingLang?.priority ?? 'Priority {priority}.', { priority: String(priority) }));
66
+ }
67
+ if (labelParts.length) {
68
+ button.setAttribute('aria-label', labelParts.join(' '));
69
+ }
70
+ }
26
71
  /* *
27
72
  *
28
73
  * Constructor
@@ -44,21 +89,56 @@ class SortToolbarButton extends ToolbarButton {
44
89
  * */
45
90
  clickHandler(event) {
46
91
  super.clickHandler(event);
47
- this.toolbar?.column.sorting?.toggle();
92
+ this.toolbar?.column.sorting?.toggle(event);
93
+ }
94
+ renderSortPriorityIndicator(priority) {
95
+ const wrapper = this.wrapper;
96
+ if (!wrapper) {
97
+ return;
98
+ }
99
+ const button = wrapper.querySelector('button');
100
+ if (!button) {
101
+ return;
102
+ }
103
+ if (!priority) {
104
+ this.sortPriorityIndicator?.remove();
105
+ delete this.sortPriorityIndicator;
106
+ return;
107
+ }
108
+ if (!this.sortPriorityIndicator) {
109
+ this.sortPriorityIndicator = document.createElement('span');
110
+ this.sortPriorityIndicator.className = Globals.getClassName('sortPriorityIndicator');
111
+ }
112
+ // Ensure the indicator is rendered to the right of the icon.
113
+ button.appendChild(this.sortPriorityIndicator);
114
+ this.sortPriorityIndicator.textContent = String(priority);
48
115
  }
49
116
  refreshState() {
50
117
  const column = this.toolbar?.column;
51
118
  if (!column) {
52
119
  return;
53
120
  }
54
- if (!StateHelpers.isSorted(column)) {
121
+ const { currentSortings, currentSorting } = column.viewport.grid.querying.sorting;
122
+ const sortings = currentSortings || [];
123
+ const columnSorting = (sortings.find((sorting) => sorting.columnId === column.id) ||
124
+ (currentSorting?.columnId === column.id ?
125
+ currentSorting :
126
+ void 0));
127
+ if (!StateHelpers.isSorted(column) || !columnSorting?.order) {
55
128
  this.setActive(false);
56
129
  this.setIcon('upDownArrows');
130
+ this.renderSortPriorityIndicator();
131
+ this.updateA11yLabel(null);
57
132
  return;
58
133
  }
59
- const { currentSorting } = column.viewport.grid.querying.sorting;
60
134
  this.setActive(true);
61
- this.setIcon(currentSorting?.order === 'asc' ? 'sortAsc' : 'sortDesc');
135
+ this.setIcon(columnSorting.order === 'asc' ? 'sortAsc' : 'sortDesc');
136
+ const sortIndex = sortings.findIndex((sorting) => sorting.columnId === column.id);
137
+ const priority = (sortings.length > 1 && sortIndex !== -1 ?
138
+ sortIndex + 1 :
139
+ void 0);
140
+ this.renderSortPriorityIndicator(priority);
141
+ this.updateA11yLabel(columnSorting.order, priority);
62
142
  }
63
143
  addEventListeners() {
64
144
  super.addEventListeners();
@@ -69,8 +149,11 @@ class SortToolbarButton extends ToolbarButton {
69
149
  // If this grid is currently sorted, update the state
70
150
  this.eventListenerDestroyers.push(addEvent(column.viewport.grid, 'afterSort', () => this.refreshState()));
71
151
  }
72
- renderActiveIndicator() {
73
- // Do nothing
152
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
153
+ renderActiveIndicator(render) {
154
+ // Sorting uses directional icons + priority indicators
155
+ // (for multi-sort), not the generic active dot indicator
156
+ // (reserved for filtering).
74
157
  }
75
158
  }
76
159
  /* *
@@ -55,8 +55,8 @@ declare class HeaderCell extends Cell {
55
55
  */
56
56
  render(): void;
57
57
  reflow(): void;
58
- protected onKeyDown(e: KeyboardEvent): void;
59
- protected onClick(e: MouseEvent): void;
58
+ onKeyDown(e: KeyboardEvent): void;
59
+ onClick(e: MouseEvent): void;
60
60
  /**
61
61
  * Add sorting option to the column.
62
62
  */
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid HeaderCell class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula
@@ -106,8 +106,8 @@ class HeaderCell extends Cell {
106
106
  const { column } = this;
107
107
  const options = createOptionsProxy(this.superColumnOptions, column?.options);
108
108
  const headerCellOptions = options.header || {};
109
- if (headerCellOptions.formatter) {
110
- this.value = headerCellOptions.formatter.call(this).toString();
109
+ if (column && headerCellOptions.formatter) {
110
+ this.value = headerCellOptions.formatter.call(column).toString();
111
111
  }
112
112
  else if (isString(headerCellOptions.format)) {
113
113
  this.value = column ?
@@ -184,8 +184,9 @@ class HeaderCell extends Cell {
184
184
  e.target !== column.header?.headerContent) || column.viewport.columnsResizer?.isResizing) {
185
185
  return;
186
186
  }
187
- if (column.options.sorting?.sortable) {
188
- column.sorting?.toggle();
187
+ if ((column.options.sorting?.enabled ??
188
+ column.options.sorting?.sortable)) {
189
+ column.sorting?.toggle(e);
189
190
  }
190
191
  fireEvent(this, 'click', {
191
192
  originalEvent: e,
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid HeaderRow class
4
4
  *
5
- * (c) 2020-2025 Highsoft AS
5
+ * (c) 2020-2026 Highsoft AS
6
6
  *
7
- * License: www.highcharts.com/license
7
+ * A commercial license may be required depending on use.
8
+ * See www.highcharts.com/license
8
9
  *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
10
  *
11
11
  * Authors:
12
12
  * - Dawid Dragula