@highcharts/grid-pro 2.1.1 → 2.3.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 (455) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +15 -9
  3. package/css/grid-pro.css +1289 -1153
  4. package/css/modules/grid-base-variables.css +131 -0
  5. package/css/modules/grid-button-variables.css +140 -0
  6. package/css/modules/grid-caption-variables.css +11 -0
  7. package/css/modules/grid-description-variables.css +11 -0
  8. package/css/modules/grid-input-variables.css +114 -0
  9. package/css/modules/grid-link-variables.css +18 -0
  10. package/css/modules/grid-menu-variables.css +50 -0
  11. package/css/modules/grid-pagination-variables.css +12 -0
  12. package/css/modules/grid-popup-variables.css +24 -0
  13. package/css/modules/grid-pro.css +234 -0
  14. package/css/modules/grid-table-variables.css +385 -0
  15. package/css/modules/grid-theme-default.css +55 -0
  16. package/es-modules/Accessibility/A11yI18n.js +4 -5
  17. package/es-modules/Accessibility/Accessibility.js +5 -5
  18. package/es-modules/Accessibility/AccessibilityComponent.d.ts +3 -3
  19. package/es-modules/Accessibility/AccessibilityComponent.js +4 -3
  20. package/es-modules/Accessibility/Components/AnnotationsA11y.js +4 -3
  21. package/es-modules/Accessibility/Components/ContainerComponent.js +4 -3
  22. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +9 -9
  23. package/es-modules/Accessibility/Components/LegendComponent.js +5 -5
  24. package/es-modules/Accessibility/Components/MenuComponent.js +5 -5
  25. package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -7
  26. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -5
  27. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -5
  28. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +7 -7
  29. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +4 -3
  30. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +7 -7
  31. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +5 -5
  32. package/es-modules/Accessibility/Components/ZoomComponent.js +5 -5
  33. package/es-modules/Accessibility/FocusBorder.js +5 -5
  34. package/es-modules/Accessibility/HighContrastMode.js +4 -3
  35. package/es-modules/Accessibility/HighContrastTheme.js +4 -3
  36. package/es-modules/Accessibility/KeyboardNavigation.js +5 -5
  37. package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
  38. package/es-modules/Accessibility/Options/A11yDefaults.d.ts +11 -0
  39. package/es-modules/Accessibility/Options/A11yDefaults.js +15 -3
  40. package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +58 -0
  41. package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -5
  42. package/es-modules/Accessibility/Options/LangDefaults.js +13 -3
  43. package/es-modules/Accessibility/ProxyElement.js +6 -8
  44. package/es-modules/Accessibility/ProxyProvider.js +5 -5
  45. package/es-modules/Accessibility/Utils/Announcer.js +6 -6
  46. package/es-modules/Accessibility/Utils/ChartUtilities.js +5 -5
  47. package/es-modules/Accessibility/Utils/DOMElementProvider.js +4 -3
  48. package/es-modules/Accessibility/Utils/EventProvider.d.ts +3 -3
  49. package/es-modules/Accessibility/Utils/EventProvider.js +10 -5
  50. package/es-modules/Accessibility/Utils/HTMLUtilities.js +5 -5
  51. package/es-modules/Core/Animation/AnimationOptions.d.ts +42 -0
  52. package/es-modules/Core/Animation/AnimationOptions.js +10 -0
  53. package/es-modules/Core/Animation/AnimationUtilities.js +40 -5
  54. package/es-modules/Core/Animation/Fx.d.ts +1 -130
  55. package/es-modules/Core/Animation/Fx.js +14 -8
  56. package/es-modules/Core/Animation/FxBase.d.ts +1 -0
  57. package/es-modules/Core/Animation/FxBase.js +11 -0
  58. package/es-modules/Core/Callback.d.ts +56 -0
  59. package/es-modules/Core/Callback.js +10 -0
  60. package/es-modules/Core/Chart/Chart.d.ts +659 -400
  61. package/es-modules/Core/Chart/Chart.js +112 -95
  62. package/es-modules/Core/Chart/Chart3D.d.ts +123 -233
  63. package/es-modules/Core/Chart/Chart3D.js +23 -37
  64. package/es-modules/Core/Chart/ChartBase.d.ts +3 -0
  65. package/es-modules/Core/Chart/ChartBase.js +11 -0
  66. package/es-modules/Core/Chart/ChartDefaults.js +18 -12
  67. package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +1 -55
  68. package/es-modules/Core/Chart/ChartNavigationComposition.js +13 -13
  69. package/es-modules/Core/Chart/ChartOptions.d.ts +1225 -0
  70. package/es-modules/Core/Chart/ChartOptions.js +10 -0
  71. package/es-modules/Core/Chart/GanttChart.d.ts +0 -38
  72. package/es-modules/Core/Chart/GanttChart.js +5 -5
  73. package/es-modules/Core/Chart/MapChart.d.ts +9 -4
  74. package/es-modules/Core/Chart/MapChart.js +14 -5
  75. package/es-modules/Core/Chart/StockChart.d.ts +0 -85
  76. package/es-modules/Core/Chart/StockChart.js +35 -18
  77. package/es-modules/Core/Color/Color.d.ts +16 -24
  78. package/es-modules/Core/Color/Color.js +27 -10
  79. package/es-modules/Core/Color/ColorString.d.ts +0 -23
  80. package/es-modules/Core/Color/ColorString.js +11 -0
  81. package/es-modules/Core/Color/ColorType.d.ts +0 -33
  82. package/es-modules/Core/Color/ColorType.js +11 -0
  83. package/es-modules/Core/Color/GradientColor.d.ts +0 -33
  84. package/es-modules/Core/Color/GradientColor.js +11 -0
  85. package/es-modules/Core/Color/Palettes.d.ts +1 -84
  86. package/es-modules/Core/Color/Palettes.js +2 -1
  87. package/es-modules/Core/Defaults.d.ts +6 -0
  88. package/es-modules/Core/Defaults.js +66 -75
  89. package/es-modules/Core/Delaunay.d.ts +52 -0
  90. package/es-modules/Core/Delaunay.js +310 -0
  91. package/es-modules/Core/Foundation.d.ts +1 -19
  92. package/es-modules/Core/Foundation.js +8 -6
  93. package/es-modules/Core/Geometry/CircleObject.d.ts +5 -0
  94. package/es-modules/Core/Geometry/CircleObject.js +10 -0
  95. package/es-modules/Core/Geometry/CircleUtilities.d.ts +1 -189
  96. package/es-modules/Core/Geometry/CircleUtilities.js +18 -17
  97. package/es-modules/Core/Geometry/GeometryObject.d.ts +7 -0
  98. package/es-modules/Core/Geometry/GeometryObject.js +10 -0
  99. package/es-modules/Core/Geometry/GeometryUtilities.d.ts +1 -48
  100. package/es-modules/Core/Geometry/GeometryUtilities.js +9 -7
  101. package/es-modules/Core/Geometry/IntersectionObject.d.ts +7 -0
  102. package/es-modules/Core/Geometry/IntersectionObject.js +10 -0
  103. package/es-modules/Core/Geometry/PolygonClip.d.ts +1 -19
  104. package/es-modules/Core/Geometry/PolygonClip.js +9 -7
  105. package/es-modules/Core/Globals.d.ts +9 -31
  106. package/es-modules/Core/Globals.js +9 -10
  107. package/es-modules/Core/GlobalsBase.d.ts +35 -0
  108. package/es-modules/Core/GlobalsBase.js +11 -0
  109. package/es-modules/Core/HttpUtilities.d.ts +54 -17
  110. package/es-modules/Core/HttpUtilities.js +16 -16
  111. package/es-modules/Core/JSON.d.ts +29 -0
  112. package/es-modules/Core/JSON.js +13 -0
  113. package/es-modules/Core/KeyboardEvent.d.ts +1 -0
  114. package/es-modules/Core/KeyboardEvent.js +11 -0
  115. package/es-modules/Core/MSPointer.d.ts +1 -74
  116. package/es-modules/Core/MSPointer.js +24 -15
  117. package/es-modules/Core/Math3D.d.ts +1 -117
  118. package/es-modules/Core/Math3D.js +14 -12
  119. package/es-modules/Core/Options.d.ts +338 -0
  120. package/es-modules/Core/Options.js +10 -0
  121. package/es-modules/Core/Pointer.d.ts +71 -445
  122. package/es-modules/Core/Pointer.js +74 -69
  123. package/es-modules/Core/PointerEvent.d.ts +20 -0
  124. package/es-modules/Core/PointerEvent.js +11 -0
  125. package/es-modules/Core/Renderer/AlignObject.d.ts +25 -27
  126. package/es-modules/Core/Renderer/AlignObject.js +11 -0
  127. package/es-modules/Core/Renderer/BBoxObject.d.ts +20 -31
  128. package/es-modules/Core/Renderer/BBoxObject.js +11 -0
  129. package/es-modules/Core/Renderer/CSSObject.d.ts +268 -59
  130. package/es-modules/Core/Renderer/CSSObject.js +10 -0
  131. package/es-modules/Core/Renderer/DOMElementType.d.ts +1 -33
  132. package/es-modules/Core/Renderer/DOMElementType.js +11 -0
  133. package/es-modules/Core/Renderer/DashStyleValue.d.ts +1 -27
  134. package/es-modules/Core/Renderer/DashStyleValue.js +11 -0
  135. package/es-modules/Core/Renderer/FontMetricsObject.d.ts +6 -26
  136. package/es-modules/Core/Renderer/FontMetricsObject.js +11 -0
  137. package/es-modules/Core/Renderer/HTML/AST.d.ts +3 -15
  138. package/es-modules/Core/Renderer/HTML/AST.js +24 -15
  139. package/es-modules/Core/Renderer/HTML/HTMLAttributes.d.ts +1 -25
  140. package/es-modules/Core/Renderer/HTML/HTMLAttributes.js +11 -0
  141. package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +0 -54
  142. package/es-modules/Core/Renderer/HTML/HTMLElement.js +28 -24
  143. package/es-modules/Core/Renderer/PolygonBoxObject.d.ts +15 -12
  144. package/es-modules/Core/Renderer/PolygonBoxObject.js +11 -0
  145. package/es-modules/Core/Renderer/Position3DObject.d.ts +6 -30
  146. package/es-modules/Core/Renderer/Position3DObject.js +11 -0
  147. package/es-modules/Core/Renderer/PositionObject.d.ts +9 -23
  148. package/es-modules/Core/Renderer/PositionObject.js +11 -0
  149. package/es-modules/Core/Renderer/RectangleObject.d.ts +6 -30
  150. package/es-modules/Core/Renderer/RectangleObject.js +11 -0
  151. package/es-modules/Core/Renderer/RendererRegistry.d.ts +1 -29
  152. package/es-modules/Core/Renderer/RendererRegistry.js +6 -3
  153. package/es-modules/Core/Renderer/RendererType.d.ts +1 -53
  154. package/es-modules/Core/Renderer/RendererType.js +11 -0
  155. package/es-modules/Core/Renderer/RendererUtilities.d.ts +1 -26
  156. package/es-modules/Core/Renderer/RendererUtilities.js +41 -23
  157. package/es-modules/Core/Renderer/SVG/ButtonThemeObject.d.ts +26 -31
  158. package/es-modules/Core/Renderer/SVG/SVGArc3D.d.ts +1 -44
  159. package/es-modules/Core/Renderer/SVG/SVGAttributes.d.ts +15 -51
  160. package/es-modules/Core/Renderer/SVG/SVGAttributes3D.d.ts +1 -42
  161. package/es-modules/Core/Renderer/SVG/SVGCuboid.d.ts +1 -42
  162. package/es-modules/Core/Renderer/SVG/SVGElement.d.ts +459 -0
  163. package/es-modules/Core/Renderer/SVG/SVGElement3D.d.ts +1 -0
  164. package/es-modules/Core/Renderer/SVG/SVGElementBase.d.ts +0 -23
  165. package/es-modules/Core/Renderer/SVG/SVGLabel.d.ts +14 -0
  166. package/es-modules/Core/Renderer/SVG/SVGPath.d.ts +18 -56
  167. package/es-modules/Core/Renderer/SVG/SVGPath3D.d.ts +0 -30
  168. package/es-modules/Core/Renderer/SVG/SVGRenderer.d.ts +652 -0
  169. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.d.ts +1 -0
  170. package/es-modules/Core/Renderer/SVG/SVGRendererBase.d.ts +0 -24
  171. package/es-modules/Core/Renderer/SVG/SymbolOptions.d.ts +3 -26
  172. package/es-modules/Core/Renderer/SVG/SymbolType.d.ts +1 -41
  173. package/es-modules/Core/Renderer/SVG/Symbols.d.ts +146 -0
  174. package/es-modules/Core/Renderer/SVG/TextBuilder.d.ts +1 -0
  175. package/es-modules/Core/Renderer/ShadowOptionsObject.d.ts +21 -30
  176. package/es-modules/Core/Renderer/ShadowOptionsObject.js +11 -0
  177. package/es-modules/Core/Renderer/SizeObject.d.ts +0 -23
  178. package/es-modules/Core/Renderer/SizeObject.js +11 -0
  179. package/es-modules/Core/Responsive.d.ts +94 -29
  180. package/es-modules/Core/Responsive.js +17 -12
  181. package/es-modules/Core/Templating.d.ts +17 -1
  182. package/es-modules/Core/Templating.js +12 -8
  183. package/es-modules/Core/Time.d.ts +18 -1
  184. package/es-modules/Core/Time.js +6 -5
  185. package/es-modules/Core/Tooltip.d.ts +67 -123
  186. package/es-modules/Core/Tooltip.js +161 -108
  187. package/es-modules/Core/TooltipOptions.d.ts +724 -0
  188. package/es-modules/Core/TooltipOptions.js +10 -0
  189. package/es-modules/Core/Utilities.d.ts +32 -703
  190. package/es-modules/Core/Utilities.js +28 -1443
  191. package/es-modules/Data/ColumnUtils.d.ts +83 -80
  192. package/es-modules/Data/ColumnUtils.js +106 -116
  193. package/es-modules/Data/Connectors/CSVConnector.d.ts +9 -14
  194. package/es-modules/Data/Connectors/CSVConnector.js +6 -7
  195. package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +3 -3
  196. package/es-modules/Data/Connectors/DataConnector.d.ts +63 -54
  197. package/es-modules/Data/Connectors/DataConnector.js +67 -56
  198. package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +3 -3
  199. package/es-modules/Data/Connectors/DataConnectorType.d.ts +3 -3
  200. package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +40 -42
  201. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +76 -91
  202. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +7 -5
  203. package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +23 -28
  204. package/es-modules/Data/Connectors/HTMLTableConnector.js +6 -7
  205. package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +3 -3
  206. package/es-modules/Data/Connectors/JSONConnector.d.ts +9 -14
  207. package/es-modules/Data/Connectors/JSONConnector.js +6 -7
  208. package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +3 -3
  209. package/es-modules/Data/Converters/CSVConverter.d.ts +5 -5
  210. package/es-modules/Data/Converters/CSVConverter.js +6 -7
  211. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +5 -5
  212. package/es-modules/Data/Converters/DataConverter.d.ts +76 -78
  213. package/es-modules/Data/Converters/DataConverter.js +29 -56
  214. package/es-modules/Data/Converters/DataConverterType.d.ts +3 -3
  215. package/es-modules/Data/Converters/DataConverterUtils.d.ts +88 -81
  216. package/es-modules/Data/Converters/DataConverterUtils.js +172 -184
  217. package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +4 -4
  218. package/es-modules/Data/Converters/GoogleSheetsConverter.js +6 -6
  219. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +5 -5
  220. package/es-modules/Data/Converters/HTMLTableConverter.d.ts +4 -4
  221. package/es-modules/Data/Converters/HTMLTableConverter.js +5 -6
  222. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +5 -5
  223. package/es-modules/Data/Converters/JSONConverter.d.ts +7 -7
  224. package/es-modules/Data/Converters/JSONConverter.js +9 -9
  225. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +5 -5
  226. package/es-modules/Data/DataCursor.d.ts +65 -70
  227. package/es-modules/Data/DataCursor.js +122 -142
  228. package/es-modules/Data/DataEvent.d.ts +55 -57
  229. package/es-modules/Data/DataEvent.js +3 -3
  230. package/es-modules/Data/DataPool.d.ts +10 -17
  231. package/es-modules/Data/DataPool.js +23 -12
  232. package/es-modules/Data/DataPoolOptions.d.ts +3 -3
  233. package/es-modules/Data/DataTable.d.ts +115 -117
  234. package/es-modules/Data/DataTable.js +67 -33
  235. package/es-modules/Data/DataTableCore.d.ts +11 -11
  236. package/es-modules/Data/DataTableCore.js +7 -7
  237. package/es-modules/Data/DataTableOptions.js +3 -3
  238. package/es-modules/Data/Formula/Formula.js +3 -3
  239. package/es-modules/Data/Formula/FormulaParser.js +4 -5
  240. package/es-modules/Data/Formula/FormulaProcessor.js +4 -5
  241. package/es-modules/Data/Formula/FormulaTypes.js +3 -3
  242. package/es-modules/Data/Formula/Functions/ABS.js +3 -3
  243. package/es-modules/Data/Formula/Functions/AND.js +3 -3
  244. package/es-modules/Data/Formula/Functions/AVERAGE.js +3 -3
  245. package/es-modules/Data/Formula/Functions/AVERAGEA.js +3 -3
  246. package/es-modules/Data/Formula/Functions/COUNT.js +3 -3
  247. package/es-modules/Data/Formula/Functions/COUNTA.js +3 -3
  248. package/es-modules/Data/Formula/Functions/IF.js +3 -3
  249. package/es-modules/Data/Formula/Functions/ISNA.js +3 -3
  250. package/es-modules/Data/Formula/Functions/MAX.js +3 -3
  251. package/es-modules/Data/Formula/Functions/MEDIAN.js +3 -3
  252. package/es-modules/Data/Formula/Functions/MIN.js +3 -3
  253. package/es-modules/Data/Formula/Functions/MOD.js +3 -3
  254. package/es-modules/Data/Formula/Functions/MODE.js +3 -3
  255. package/es-modules/Data/Formula/Functions/NOT.js +3 -3
  256. package/es-modules/Data/Formula/Functions/OR.js +3 -3
  257. package/es-modules/Data/Formula/Functions/PRODUCT.js +3 -3
  258. package/es-modules/Data/Formula/Functions/SUM.js +3 -3
  259. package/es-modules/Data/Formula/Functions/XOR.js +3 -3
  260. package/es-modules/Data/Modifiers/ChainModifier.d.ts +29 -34
  261. package/es-modules/Data/Modifiers/ChainModifier.js +10 -11
  262. package/es-modules/Data/Modifiers/ChainModifierOptions.js +3 -3
  263. package/es-modules/Data/Modifiers/DataModifier.d.ts +36 -41
  264. package/es-modules/Data/Modifiers/DataModifier.js +34 -56
  265. package/es-modules/Data/Modifiers/DataModifierEvent.js +3 -3
  266. package/es-modules/Data/Modifiers/DataModifierOptions.js +3 -3
  267. package/es-modules/Data/Modifiers/DataModifierType.d.ts +3 -3
  268. package/es-modules/Data/Modifiers/FilterModifier.d.ts +4 -4
  269. package/es-modules/Data/Modifiers/FilterModifier.js +6 -7
  270. package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +3 -2
  271. package/es-modules/Data/Modifiers/FilterModifierOptions.js +3 -3
  272. package/es-modules/Data/Modifiers/InvertModifier.d.ts +4 -4
  273. package/es-modules/Data/Modifiers/InvertModifier.js +6 -7
  274. package/es-modules/Data/Modifiers/InvertModifierOptions.js +3 -3
  275. package/es-modules/Data/Modifiers/MathModifier.d.ts +5 -4
  276. package/es-modules/Data/Modifiers/MathModifier.js +3 -3
  277. package/es-modules/Data/Modifiers/MathModifierOptions.js +3 -3
  278. package/es-modules/Data/Modifiers/RangeModifier.d.ts +4 -4
  279. package/es-modules/Data/Modifiers/RangeModifier.js +6 -7
  280. package/es-modules/Data/Modifiers/RangeModifierOptions.js +3 -3
  281. package/es-modules/Data/Modifiers/SortModifier.d.ts +6 -11
  282. package/es-modules/Data/Modifiers/SortModifier.js +35 -10
  283. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +43 -6
  284. package/es-modules/Data/Modifiers/SortModifierOptions.js +3 -3
  285. package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +77 -0
  286. package/es-modules/Grid/Core/Accessibility/A11yOptions.js +4 -3
  287. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +68 -1
  288. package/es-modules/Grid/Core/Accessibility/Accessibility.js +179 -7
  289. package/es-modules/Grid/Core/Credits.js +3 -3
  290. package/es-modules/Grid/Core/Data/DataProvider.d.ts +97 -0
  291. package/es-modules/Grid/Core/Data/DataProvider.js +89 -0
  292. package/es-modules/Grid/Core/Data/DataProviderRegistry.d.ts +20 -0
  293. package/es-modules/Grid/Core/Data/DataProviderRegistry.js +52 -0
  294. package/es-modules/Grid/Core/Data/DataProviderType.d.ts +19 -0
  295. package/es-modules/Grid/Core/Data/DataProviderType.js +15 -0
  296. package/es-modules/Grid/Core/Data/LocalDataProvider.d.ts +165 -0
  297. package/es-modules/Grid/Core/Data/LocalDataProvider.js +341 -0
  298. package/es-modules/Grid/Core/Defaults.js +21 -7
  299. package/es-modules/Grid/Core/Globals.d.ts +20 -16
  300. package/es-modules/Grid/Core/Globals.js +13 -11
  301. package/es-modules/Grid/Core/Grid.d.ts +43 -23
  302. package/es-modules/Grid/Core/Grid.js +316 -136
  303. package/es-modules/Grid/Core/GridUtils.d.ts +33 -0
  304. package/es-modules/Grid/Core/GridUtils.js +53 -6
  305. package/es-modules/Grid/Core/Options.d.ts +162 -5
  306. package/es-modules/Grid/Core/Options.js +3 -3
  307. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +3 -0
  308. package/es-modules/Grid/Core/Pagination/Pagination.js +66 -26
  309. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +4 -40
  310. package/es-modules/Grid/Core/Pagination/PaginationOptions.js +11 -0
  311. package/es-modules/Grid/Core/Querying/FilteringController.js +4 -5
  312. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +2 -2
  313. package/es-modules/Grid/Core/Querying/PaginationController.js +6 -6
  314. package/es-modules/Grid/Core/Querying/QueryingController.d.ts +1 -1
  315. package/es-modules/Grid/Core/Querying/QueryingController.js +5 -29
  316. package/es-modules/Grid/Core/Querying/SortingController.d.ts +15 -0
  317. package/es-modules/Grid/Core/Querying/SortingController.js +89 -51
  318. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.d.ts +53 -0
  319. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.js +229 -0
  320. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.d.ts +58 -0
  321. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.js +15 -0
  322. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +5 -6
  323. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +3 -3
  324. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +6 -7
  325. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +1 -1
  326. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +5 -5
  327. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +3 -3
  328. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +29 -3
  329. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +136 -26
  330. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +4 -6
  331. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +94 -3
  332. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +481 -91
  333. package/es-modules/Grid/Core/Table/Body/CellContextMenu.d.ts +11 -0
  334. package/es-modules/Grid/Core/Table/Body/CellContextMenu.js +84 -0
  335. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +36 -15
  336. package/es-modules/Grid/Core/Table/Body/TableCell.js +89 -33
  337. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +15 -5
  338. package/es-modules/Grid/Core/Table/Body/TableRow.js +70 -19
  339. package/es-modules/Grid/Core/Table/Cell.d.ts +16 -10
  340. package/es-modules/Grid/Core/Table/Cell.js +41 -6
  341. package/es-modules/Grid/Core/Table/CellContent/CellContent.js +3 -3
  342. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +7 -12
  343. package/es-modules/Grid/Core/Table/Column.d.ts +11 -5
  344. package/es-modules/Grid/Core/Table/Column.js +26 -37
  345. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +3 -3
  346. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +3 -3
  347. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +3 -3
  348. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +12 -11
  349. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +7 -6
  350. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +5 -0
  351. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +21 -7
  352. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +4 -5
  353. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +4 -5
  354. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +9 -0
  355. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +37 -9
  356. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +5 -4
  357. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +11 -7
  358. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +4 -5
  359. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +4 -5
  360. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +4 -1
  361. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +88 -15
  362. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +8 -3
  363. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +36 -15
  364. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +7 -8
  365. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +1 -1
  366. package/es-modules/Grid/Core/Table/Header/TableHeader.js +6 -6
  367. package/es-modules/Grid/Core/Table/Row.d.ts +1 -1
  368. package/es-modules/Grid/Core/Table/Row.js +5 -5
  369. package/es-modules/Grid/Core/Table/Table.d.ts +68 -12
  370. package/es-modules/Grid/Core/Table/Table.js +296 -92
  371. package/es-modules/Grid/Core/UI/Button.js +3 -3
  372. package/es-modules/Grid/Core/UI/ContextMenu.js +3 -3
  373. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +6 -7
  374. package/es-modules/Grid/Core/UI/ContextMenuButton.js +8 -6
  375. package/es-modules/Grid/Core/UI/Popup.js +10 -12
  376. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +42 -7
  377. package/es-modules/Grid/Core/UI/SvgIcons.js +209 -36
  378. package/es-modules/Grid/Core/UI/Toolbar.d.ts +5 -0
  379. package/es-modules/Grid/Core/UI/Toolbar.js +3 -3
  380. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +4 -12
  381. package/es-modules/Grid/Core/UI/ToolbarButton.js +11 -29
  382. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +4 -45
  383. package/es-modules/Grid/Pro/CellEditing/CellEditMode.js +16 -0
  384. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +13 -13
  385. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +4 -5
  386. package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +3 -3
  387. package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +3 -3
  388. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +3 -3
  389. package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +1 -34
  390. package/es-modules/Grid/Pro/CellRendering/CellRendererType.js +15 -0
  391. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +1 -1
  392. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +7 -5
  393. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +2 -2
  394. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +3 -3
  395. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +3 -3
  396. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +3 -3
  397. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +3 -3
  398. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +4 -5
  399. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +2 -2
  400. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +3 -3
  401. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +7 -5
  402. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +4 -5
  403. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +2 -2
  404. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +4 -5
  405. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +3 -3
  406. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +4 -5
  407. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +4 -5
  408. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +3 -3
  409. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +4 -5
  410. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +4 -5
  411. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +4 -5
  412. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +4 -4
  413. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +4 -5
  414. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +4 -5
  415. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +4 -5
  416. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +4 -5
  417. package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +10 -1
  418. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +56 -12
  419. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +1 -1
  420. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +6 -7
  421. package/es-modules/Grid/Pro/Credits/CreditsPro.js +3 -3
  422. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +4 -6
  423. package/es-modules/Grid/Pro/Data/DataSourceHelper.d.ts +74 -0
  424. package/es-modules/Grid/Pro/Data/DataSourceHelper.js +246 -0
  425. package/es-modules/Grid/Pro/Data/QuerySerializer.d.ts +46 -0
  426. package/es-modules/Grid/Pro/Data/QuerySerializer.js +169 -0
  427. package/es-modules/Grid/Pro/Data/RemoteDataProvider.d.ts +187 -0
  428. package/es-modules/Grid/Pro/Data/RemoteDataProvider.js +500 -0
  429. package/es-modules/Grid/Pro/Export/Exporting.js +5 -7
  430. package/es-modules/Grid/Pro/Export/ExportingComposition.js +4 -5
  431. package/es-modules/Grid/Pro/GridEvents.d.ts +1 -0
  432. package/es-modules/Grid/Pro/GridEvents.js +4 -5
  433. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +0 -1
  434. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +4 -5
  435. package/es-modules/Grid/index.js +3 -3
  436. package/es-modules/Shared/BaseForm.js +4 -5
  437. package/es-modules/Shared/DownloadURL.d.ts +1 -85
  438. package/es-modules/Shared/DownloadURL.js +15 -13
  439. package/es-modules/Shared/LangOptionsCore.d.ts +4 -3
  440. package/es-modules/Shared/TimeBase.d.ts +1 -46
  441. package/es-modules/Shared/TimeBase.js +11 -10
  442. package/es-modules/Shared/Types.d.ts +11 -3
  443. package/es-modules/Shared/Utilities.d.ts +576 -0
  444. package/es-modules/Shared/Utilities.js +1368 -0
  445. package/es-modules/masters/grid-pro.src.d.ts +18 -19
  446. package/es-modules/masters/grid-pro.src.js +24 -9
  447. package/grid-pro.d.ts +18 -19
  448. package/grid-pro.js +6 -5
  449. package/grid-pro.js.map +1 -1
  450. package/grid-pro.src.d.ts +18 -19
  451. package/grid-pro.src.js +8132 -4531
  452. package/package.json +1 -1
  453. package/es-modules/Grid/Core/Pagination/Icons.d.ts +0 -7
  454. package/es-modules/Grid/Core/Pagination/Icons.js +0 -7
  455. package/es-modules/Grid/Pro/highcharts.d.ts +0 -7
@@ -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
@@ -15,8 +15,7 @@
15
15
  'use strict';
16
16
  import ContextMenuButton from '../../../../UI/ContextMenuButton.js';
17
17
  import StateHelpers from '../StateHelpers.js';
18
- import U from '../../../../../../Core/Utilities.js';
19
- const { addEvent } = U;
18
+ import { addEvent } from '../../../../../../Shared/Utilities.js';
20
19
  /* *
21
20
  *
22
21
  * Class
@@ -29,9 +28,10 @@ class SortMenuButton extends ContextMenuButton {
29
28
  *
30
29
  * */
31
30
  constructor(langOptions, direction) {
32
- super({ icon: direction === 'asc' ? 'sortAsc' : 'sortDesc' });
31
+ super({ icon: direction === 'asc' ? 'arrowUp' : 'arrowDown' });
33
32
  this.direction = direction;
34
- this.options.label = langOptions[direction === 'asc' ? 'sortAscending' : 'sortDescending'];
33
+ this.baseLabel = langOptions[direction === 'asc' ? 'sortAscending' : 'sortDescending'] || '';
34
+ this.options.label = this.baseLabel;
35
35
  }
36
36
  /* *
37
37
  *
@@ -43,7 +43,35 @@ class SortMenuButton extends ContextMenuButton {
43
43
  if (!column) {
44
44
  return;
45
45
  }
46
- this.setActive(StateHelpers.isSorted(column, this.direction));
46
+ const isSorted = StateHelpers.isSorted(column, this.direction);
47
+ this.setActive(isSorted);
48
+ // Update label with priority if multi-column sorting is active
49
+ this.updateLabelWithPriority(isSorted ? column : void 0);
50
+ }
51
+ /**
52
+ * Updates the label to include the sort priority when multi-column
53
+ * sorting is active.
54
+ *
55
+ * @param column
56
+ * The column to get the priority from, or undefined to reset the label.
57
+ */
58
+ updateLabelWithPriority(column) {
59
+ if (!column) {
60
+ this.setLabel(this.baseLabel);
61
+ return;
62
+ }
63
+ const { currentSortings } = column.viewport.grid.querying.sorting;
64
+ const sortings = currentSortings || [];
65
+ const sortIndex = sortings.findIndex((sorting) => sorting.columnId === column.id);
66
+ const priority = (sortings.length > 1 && sortIndex !== -1 ?
67
+ sortIndex + 1 :
68
+ void 0);
69
+ if (priority) {
70
+ this.setLabel(`${this.baseLabel} (${priority})`);
71
+ }
72
+ else {
73
+ this.setLabel(this.baseLabel);
74
+ }
47
75
  }
48
76
  addEventListeners() {
49
77
  super.addEventListeners();
@@ -60,7 +88,7 @@ class SortMenuButton extends ContextMenuButton {
60
88
  if (!sorting) {
61
89
  return;
62
90
  }
63
- void sorting.setOrder(this.isActive ? null : this.direction);
91
+ void sorting.setOrder(this.isActive ? null : this.direction, !!event?.shiftKey);
64
92
  }
65
93
  }
66
94
  /* *
@@ -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
@@ -16,8 +16,7 @@
16
16
  import FilterPopup from '../FilterPopup.js';
17
17
  import ToolbarButton from '../../../../UI/ToolbarButton.js';
18
18
  import StateHelpers from '../StateHelpers.js';
19
- import U from '../../../../../../Core/Utilities.js';
20
- const { addEvent } = U;
19
+ import { addEvent } from '../../../../../../Shared/Utilities.js';
21
20
  /* *
22
21
  *
23
22
  * Class
@@ -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
@@ -16,8 +16,7 @@
16
16
  import ToolbarButton from '../../../../UI/ToolbarButton.js';
17
17
  import StateHelpers from '../StateHelpers.js';
18
18
  import MenuPopup from '../MenuPopup.js';
19
- import U from '../../../../../../Core/Utilities.js';
20
- const { addEvent } = U;
19
+ import { addEvent } from '../../../../../../Shared/Utilities.js';
21
20
  /* *
22
21
  *
23
22
  * Class
@@ -2,10 +2,13 @@ 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;
10
13
  }
11
14
  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,15 +14,58 @@
14
14
  * */
15
15
  'use strict';
16
16
  import ToolbarButton from '../../../../UI/ToolbarButton.js';
17
+ import GridUtils from '../../../../GridUtils.js';
17
18
  import StateHelpers from '../StateHelpers.js';
18
- import U from '../../../../../../Core/Utilities.js';
19
- const { addEvent } = U;
19
+ import { addEvent } from '../../../../../../Shared/Utilities.js';
20
+ const { formatText } = GridUtils;
20
21
  /* *
21
22
  *
22
23
  * Class
23
24
  *
24
25
  * */
25
26
  class SortToolbarButton extends ToolbarButton {
27
+ getColumnLabel() {
28
+ const column = this.toolbar?.column;
29
+ const label = (column?.header?.headerContent?.textContent ||
30
+ column?.header?.value ||
31
+ column?.id ||
32
+ '').trim();
33
+ return label || column?.id || '';
34
+ }
35
+ updateA11yLabel(order, priority) {
36
+ const button = this.wrapper?.querySelector('button');
37
+ if (!button) {
38
+ return;
39
+ }
40
+ const column = this.toolbar?.column;
41
+ const lang = column?.viewport.grid.options?.lang;
42
+ const sortingLang = lang?.accessibility?.sorting;
43
+ const announcements = sortingLang?.announcements;
44
+ const columnLabel = this.getColumnLabel();
45
+ const labelParts = [];
46
+ if (columnLabel) {
47
+ labelParts.push(columnLabel);
48
+ }
49
+ let stateLabel;
50
+ if (order === 'asc') {
51
+ stateLabel = announcements?.ascending;
52
+ }
53
+ else if (order === 'desc') {
54
+ stateLabel = announcements?.descending;
55
+ }
56
+ else {
57
+ stateLabel = announcements?.none;
58
+ }
59
+ if (stateLabel) {
60
+ labelParts.push(stateLabel);
61
+ }
62
+ if (priority) {
63
+ labelParts.push(formatText(sortingLang?.priority ?? 'Priority {priority}.', { priority: String(priority) }));
64
+ }
65
+ if (labelParts.length) {
66
+ button.setAttribute('aria-label', labelParts.join(' '));
67
+ }
68
+ }
26
69
  /* *
27
70
  *
28
71
  * Constructor
@@ -30,8 +73,7 @@ class SortToolbarButton extends ToolbarButton {
30
73
  * */
31
74
  constructor() {
32
75
  super({
33
- icon: 'upDownArrows',
34
- classNameKey: 'headerCellSortIcon',
76
+ icon: 'arrowUpDown',
35
77
  accessibility: {
36
78
  ariaLabel: 'sort'
37
79
  }
@@ -44,21 +86,55 @@ class SortToolbarButton extends ToolbarButton {
44
86
  * */
45
87
  clickHandler(event) {
46
88
  super.clickHandler(event);
47
- this.toolbar?.column.sorting?.toggle();
89
+ this.toolbar?.column.sorting?.toggle(event);
90
+ }
91
+ renderSortPriorityIndicator(priority) {
92
+ const wrapper = this.wrapper;
93
+ if (!wrapper) {
94
+ return;
95
+ }
96
+ const button = wrapper.querySelector('button');
97
+ if (!button) {
98
+ return;
99
+ }
100
+ if (!priority) {
101
+ this.sortPriorityIndicator?.remove();
102
+ delete this.sortPriorityIndicator;
103
+ return;
104
+ }
105
+ if (!this.sortPriorityIndicator) {
106
+ this.sortPriorityIndicator = document.createElement('span');
107
+ }
108
+ // Ensure the indicator is rendered to the right of the icon.
109
+ button.appendChild(this.sortPriorityIndicator);
110
+ this.sortPriorityIndicator.textContent = String(priority);
48
111
  }
49
112
  refreshState() {
50
113
  const column = this.toolbar?.column;
51
114
  if (!column) {
52
115
  return;
53
116
  }
54
- if (!StateHelpers.isSorted(column)) {
117
+ const { currentSortings, currentSorting } = column.viewport.grid.querying.sorting;
118
+ const sortings = currentSortings || [];
119
+ const columnSorting = (sortings.find((sorting) => sorting.columnId === column.id) ||
120
+ (currentSorting?.columnId === column.id ?
121
+ currentSorting :
122
+ void 0));
123
+ if (!StateHelpers.isSorted(column) || !columnSorting?.order) {
55
124
  this.setActive(false);
56
- this.setIcon('upDownArrows');
125
+ this.setIcon('arrowUpDown');
126
+ this.renderSortPriorityIndicator();
127
+ this.updateA11yLabel(null);
57
128
  return;
58
129
  }
59
- const { currentSorting } = column.viewport.grid.querying.sorting;
60
130
  this.setActive(true);
61
- this.setIcon(currentSorting?.order === 'asc' ? 'sortAsc' : 'sortDesc');
131
+ this.setIcon(columnSorting.order === 'asc' ? 'arrowUp' : 'arrowDown');
132
+ const sortIndex = sortings.findIndex((sorting) => sorting.columnId === column.id);
133
+ const priority = (sortings.length > 1 && sortIndex !== -1 ?
134
+ sortIndex + 1 :
135
+ void 0);
136
+ this.renderSortPriorityIndicator(priority);
137
+ this.updateA11yLabel(columnSorting.order, priority);
62
138
  }
63
139
  addEventListeners() {
64
140
  super.addEventListeners();
@@ -69,9 +145,6 @@ class SortToolbarButton extends ToolbarButton {
69
145
  // If this grid is currently sorted, update the state
70
146
  this.eventListenerDestroyers.push(addEvent(column.viewport.grid, 'afterSort', () => this.refreshState()));
71
147
  }
72
- renderActiveIndicator() {
73
- // Do nothing
74
- }
75
148
  }
76
149
  /* *
77
150
  *
@@ -53,10 +53,15 @@ declare class HeaderCell extends Cell {
53
53
  /**
54
54
  * Render the cell container.
55
55
  */
56
- render(): void;
56
+ render(): Promise<void>;
57
+ /**
58
+ * Returns merged header styles from defaults and current column options.
59
+ *
60
+ */
61
+ private getColumnStyles;
57
62
  reflow(): void;
58
- protected onKeyDown(e: KeyboardEvent): void;
59
- protected onClick(e: MouseEvent): void;
63
+ onKeyDown(e: KeyboardEvent): void;
64
+ onClick(e: MouseEvent): void;
60
65
  /**
61
66
  * Add sorting option to the column.
62
67
  */
@@ -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
@@ -15,13 +15,11 @@
15
15
  * */
16
16
  'use strict';
17
17
  import Cell from '../Cell.js';
18
- import GridUtils from '../../GridUtils.js';
18
+ import { makeHTMLElement, setHTMLContent, createOptionsProxy, resolveStyleValue, mergeStyleValues } from '../../GridUtils.js';
19
19
  import ColumnSorting from '../Actions/ColumnSorting.js';
20
20
  import Globals from '../../Globals.js';
21
- import Utilities from '../../../../Core/Utilities.js';
22
21
  import ColumnToolbar from './ColumnToolbar/ColumnToolbar.js';
23
- const { makeHTMLElement, setHTMLContent, createOptionsProxy } = GridUtils;
24
- const { fireEvent, isString } = Utilities;
22
+ import { fireEvent, isString } from '../../../../Shared/Utilities.js';
25
23
  /* *
26
24
  *
27
25
  * Class
@@ -102,12 +100,14 @@ class HeaderCell extends Cell {
102
100
  /**
103
101
  * Render the cell container.
104
102
  */
105
- render() {
103
+ async render() {
106
104
  const { column } = this;
107
105
  const options = createOptionsProxy(this.superColumnOptions, column?.options);
108
106
  const headerCellOptions = options.header || {};
109
- if (headerCellOptions.formatter) {
110
- this.value = headerCellOptions.formatter.call(this).toString();
107
+ const headerValue = column ?
108
+ headerCellOptions.formatter?.call(column) : void 0;
109
+ if (headerValue) {
110
+ this.value = headerValue.toString();
111
111
  }
112
112
  else if (isString(headerCellOptions.format)) {
113
113
  this.value = column ?
@@ -151,7 +151,25 @@ class HeaderCell extends Cell {
151
151
  this.htmlElement.classList[column?.dataType === 'number' ? 'add' : 'remove'](Globals.getClassName('rightAlign'));
152
152
  // Add custom class name from column options
153
153
  this.setCustomClassName(options.header?.className);
154
+ this.setCustomStyles(this.getColumnStyles());
154
155
  fireEvent(this, 'afterRender', { column });
156
+ return Promise.resolve();
157
+ }
158
+ /**
159
+ * Returns merged header styles from defaults and current column options.
160
+ *
161
+ */
162
+ getColumnStyles() {
163
+ const { column } = this;
164
+ if (!column) {
165
+ return resolveStyleValue(this.superColumnOptions.header?.style);
166
+ }
167
+ const { grid } = this.row.viewport;
168
+ const rawColumnOptions = grid.columnOptionsMap?.[column.id]?.options;
169
+ return {
170
+ ...mergeStyleValues(column, grid.options?.columnDefaults?.style, rawColumnOptions?.style),
171
+ ...mergeStyleValues(column, grid.options?.columnDefaults?.header?.style, rawColumnOptions?.header?.style)
172
+ };
155
173
  }
156
174
  reflow() {
157
175
  const th = this.htmlElement;
@@ -179,13 +197,16 @@ class HeaderCell extends Cell {
179
197
  super.onKeyDown(e);
180
198
  }
181
199
  onClick(e) {
182
- const column = this.column;
183
- if (!column || (e.target !== this.htmlElement &&
184
- e.target !== column.header?.headerContent) || column.viewport.columnsResizer?.isResizing) {
200
+ if (!this.column ||
201
+ !this.htmlElement.contains(e.target) ||
202
+ this.column.viewport.columnsResizer?.isResizing) {
185
203
  return;
186
204
  }
187
- if (column.options.sorting?.sortable) {
188
- column.sorting?.toggle();
205
+ // Toggle sort only when clicking header text/area, not toolbar icons
206
+ if (!this.toolbar?.container?.contains(e.target) &&
207
+ (this.column.options.sorting?.enabled ??
208
+ this.column.options.sorting?.sortable)) {
209
+ this.column.sorting?.toggle(e);
189
210
  }
190
211
  fireEvent(this, 'click', {
191
212
  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
@@ -17,8 +17,7 @@
17
17
  import Row from '../Row.js';
18
18
  import HeaderCell from './HeaderCell.js';
19
19
  import Globals from '../../Globals.js';
20
- import Utils from '../../../../Core/Utilities.js';
21
- const { isString } = Utils;
20
+ import { isString } from '../../../../Shared/Utilities.js';
22
21
  /* *
23
22
  *
24
23
  * Class
@@ -63,7 +62,7 @@ class HeaderRow extends Row {
63
62
  *
64
63
  * @internal
65
64
  */
66
- renderContent(level) {
65
+ async renderContent(level) {
67
66
  const headerOpt = this.viewport.grid.options?.header;
68
67
  const vp = this.viewport;
69
68
  const enabledColumns = vp.grid.enabledColumns || [];
@@ -71,7 +70,7 @@ class HeaderRow extends Row {
71
70
  vp.theadElement?.appendChild(this.htmlElement);
72
71
  this.htmlElement.classList.add(Globals.getClassName('headerRow'));
73
72
  if (!headerOpt) {
74
- super.render();
73
+ await super.render();
75
74
  }
76
75
  else {
77
76
  const columnsOnLevel = this.getColumnsAtLevel(headerOpt, level);
@@ -110,7 +109,7 @@ class HeaderRow extends Row {
110
109
  if (dataColumn?.index === 0 && i === 0) {
111
110
  headerCell.htmlElement.classList.add(Globals.getClassName('columnFirst'));
112
111
  }
113
- headerCell.render();
112
+ await headerCell.render();
114
113
  if (columnId) {
115
114
  headerCell.htmlElement.setAttribute('rowSpan', (this.viewport.header?.levels || 1) - level);
116
115
  }
@@ -33,7 +33,7 @@ declare class TableHeader {
33
33
  /**
34
34
  * Renders the table head content.
35
35
  */
36
- render(): void;
36
+ render(): Promise<void>;
37
37
  /**
38
38
  * Reflows the table head's content dimensions.
39
39
  */
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid TableHeader 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
@@ -70,7 +70,7 @@ class TableHeader {
70
70
  /**
71
71
  * Renders the table head content.
72
72
  */
73
- render() {
73
+ async render() {
74
74
  const vp = this.viewport;
75
75
  if (!vp.grid.enabledColumns) {
76
76
  return;
@@ -78,14 +78,14 @@ class TableHeader {
78
78
  // Render regular, multiple level rows.
79
79
  for (let i = 0, iEnd = this.levels; i < iEnd; i++) {
80
80
  const row = new HeaderRow(vp, i + 1); // Avoid indexing from 0
81
- row.renderContent(i);
81
+ await row.renderContent(i);
82
82
  this.rows.push(row);
83
83
  }
84
84
  // Render an extra row for inline filtering.
85
85
  if (vp.columns.some((column) => (column.options.filtering?.enabled &&
86
86
  column.options.filtering.inline) || false)) {
87
87
  const row = new FilterRow(vp);
88
- row.renderContent();
88
+ await row.renderContent();
89
89
  this.rows.push(row);
90
90
  }
91
91
  }
@@ -39,7 +39,7 @@ declare abstract class Row {
39
39
  * Renders the row's content. It does not attach the row element to the
40
40
  * viewport nor pushes the rows to the viewport.rows array.
41
41
  */
42
- render(): void;
42
+ render(): Promise<void>;
43
43
  /**
44
44
  * Reflows the row's content dimensions.
45
45
  */
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Row 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
@@ -54,11 +54,11 @@ class Row {
54
54
  * Renders the row's content. It does not attach the row element to the
55
55
  * viewport nor pushes the rows to the viewport.rows array.
56
56
  */
57
- render() {
57
+ async render() {
58
58
  const columns = this.viewport.columns;
59
59
  for (let i = 0, iEnd = columns.length; i < iEnd; i++) {
60
60
  const cell = this.createCell(columns[i]);
61
- cell.render();
61
+ await cell.render();
62
62
  }
63
63
  this.rendered = true;
64
64
  if (this.viewport.virtualRows) {