@highcharts/grid-pro 2.1.1 → 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 -1
  373. package/es-modules/Grid/Pro/highcharts.d.ts +0 -7
@@ -5,6 +5,7 @@ import type { ColumnDataType } from './Table/Column';
5
5
  import type DataTable from '../../Data/DataTable';
6
6
  import type DataTableOptions from '../../Data/DataTableOptions';
7
7
  import type Cell from './Table/Cell';
8
+ import type Column from './Table/Column';
8
9
  import type { LangOptionsCore } from '../../Shared/LangOptionsCore';
9
10
  import type { Condition as ColumnFilteringCondition } from './Table/Actions/ColumnFiltering/FilteringTypes';
10
11
  /**
@@ -12,6 +13,11 @@ import type { Condition as ColumnFilteringCondition } from './Table/Actions/Colu
12
13
  * formatted cell's string.
13
14
  */
14
15
  export type CellFormatterCallback = (this: Cell) => string;
16
+ /**
17
+ * Callback function to be called when a header event is triggered. Returns a
18
+ * formatted header's string.
19
+ */
20
+ export type HeaderFormatterCallback = (this: Column) => string;
15
21
  /**
16
22
  * Column sorting order type.
17
23
  */
@@ -337,7 +343,7 @@ export interface ColumnHeaderOptions {
337
343
  * @return
338
344
  * A string to be set as a header cell's content.
339
345
  */
340
- formatter?: CellFormatterCallback;
346
+ formatter?: HeaderFormatterCallback;
341
347
  }
342
348
  /**
343
349
  * Column sorting options available for applying to all columns at once.
@@ -355,6 +361,11 @@ export interface ColumnSortingOptions {
355
361
  *
356
362
  * @default true
357
363
  */
364
+ enabled?: boolean;
365
+ /**
366
+ * @deprecated
367
+ * Use `enabled` instead
368
+ */
358
369
  sortable?: boolean;
359
370
  /**
360
371
  * Custom compare function to sort the column values. It overrides the
@@ -384,6 +395,11 @@ export interface IndividualColumnSortingOptions extends ColumnSortingOptions {
384
395
  * @default null
385
396
  */
386
397
  order?: ColumnSortingOrder;
398
+ /**
399
+ * Priority of this column when multiple columns are sorted. Lower numbers
400
+ * have higher priority.
401
+ */
402
+ priority?: number;
387
403
  }
388
404
  /**
389
405
  * Column options that can be set for each column individually.
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid options
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 Pagination 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
  * - Sebastian Bochan
@@ -1,19 +1,3 @@
1
- /* *
2
- *
3
- * (c) 2010-2024 Torstein Honsi
4
- *
5
- * License: www.highcharts.com/license
6
- *
7
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
- *
9
- * */
10
-
11
- /* *
12
- *
13
- * Declarations
14
- *
15
- * */
16
-
17
1
  /**
18
2
  * Page size selector configuration options.
19
3
  */
@@ -24,7 +8,6 @@ export interface PageSizeSelectorOptions {
24
8
  * @default true
25
9
  */
26
10
  enabled?: boolean;
27
-
28
11
  /**
29
12
  * Available options for page size dropdown.
30
13
  *
@@ -32,7 +15,6 @@ export interface PageSizeSelectorOptions {
32
15
  */
33
16
  options?: Array<number>;
34
17
  }
35
-
36
18
  /**
37
19
  * Controls options for pagination UI elements.
38
20
  */
@@ -45,7 +27,6 @@ export interface PaginationControlsOptions {
45
27
  * @default { enabled: true, options: [10, 20, 50, 100] }
46
28
  */
47
29
  pageSizeSelector?: boolean | PageSizeSelectorOptions;
48
-
49
30
  /**
50
31
  * Whether to show the page information text
51
32
  * (e.g., "Showing 1 - 20 of 200").
@@ -53,21 +34,18 @@ export interface PaginationControlsOptions {
53
34
  * @default true
54
35
  */
55
36
  pageInfo?: boolean | PageInfoOptions;
56
-
57
37
  /**
58
38
  * Whether to show the first/last page controls buttons.
59
39
  *
60
40
  * @default true
61
41
  */
62
42
  firstLastButtons?: boolean | FirstLastButtonsOptions;
63
-
64
43
  /**
65
44
  * Whether to show the previous/next page controls buttons.
66
45
  *
67
46
  * @default true
68
47
  */
69
48
  previousNextButtons?: boolean | PreviousNextButtonsOptions;
70
-
71
49
  /**
72
50
  * Page number buttons configuration.
73
51
  *
@@ -75,7 +53,6 @@ export interface PaginationControlsOptions {
75
53
  */
76
54
  pageButtons?: boolean | PageButtonsOptions;
77
55
  }
78
-
79
56
  /**
80
57
  * Language options for pagination text values.
81
58
  */
@@ -87,42 +64,36 @@ export interface PaginationLangOptions {
87
64
  * @default "Showing {start} - {end} of {total} (Page {currentPage} of {totalPages})" // eslint-disable-line
88
65
  */
89
66
  pageInfo?: string;
90
-
91
67
  /**
92
68
  * Text for the page size label.
93
69
  *
94
70
  * @default "rows per page"
95
71
  */
96
72
  pageSizeLabel?: string;
97
-
98
73
  /**
99
74
  * Text for the first page button (accessibility).
100
75
  *
101
76
  * @default "First page"
102
77
  */
103
78
  firstPage?: string;
104
-
105
79
  /**
106
80
  * Text for the previous page button (accessibility).
107
81
  *
108
82
  * @default "Previous page"
109
83
  */
110
84
  previousPage?: string;
111
-
112
85
  /**
113
86
  * Text for the next page button (accessibility).
114
87
  *
115
88
  * @default "Next page"
116
89
  */
117
90
  nextPage?: string;
118
-
119
91
  /**
120
92
  * Text for the last page button (accessibility).
121
93
  *
122
94
  * @default "Last page"
123
95
  */
124
96
  lastPage?: string;
125
-
126
97
  /**
127
98
  * Text for page number button (accessibility).
128
99
  * Placeholder: {page}
@@ -130,7 +101,6 @@ export interface PaginationLangOptions {
130
101
  * @default "Page {page}"
131
102
  */
132
103
  pageNumber?: string;
133
-
134
104
  /**
135
105
  * Text for ellipsis (accessibility).
136
106
  *
@@ -138,7 +108,6 @@ export interface PaginationLangOptions {
138
108
  */
139
109
  ellipsis?: string;
140
110
  }
141
-
142
111
  /**
143
112
  * Pagination options.
144
113
  */
@@ -149,14 +118,12 @@ export interface PaginationOptions {
149
118
  * @default false
150
119
  */
151
120
  enabled?: boolean;
152
-
153
121
  /**
154
122
  * The current page number.
155
123
  *
156
124
  * @default 1
157
125
  */
158
126
  page?: number;
159
-
160
127
  /**
161
128
  * Initial number of items per page when the Grid is initialized.
162
129
  * This value will be used as the default page size if not specified
@@ -165,20 +132,17 @@ export interface PaginationOptions {
165
132
  * @default 10
166
133
  */
167
134
  pageSize?: number;
168
-
169
135
  /**
170
136
  * Position of the pagination container relative to the table.
171
137
  *
172
138
  * @default 'bottom'
173
139
  */
174
140
  position?: string;
175
-
176
141
  /**
177
142
  * Controls options for pagination UI elements.
178
143
  */
179
144
  controls?: PaginationControlsOptions;
180
145
  }
181
-
182
146
  /**
183
147
  * Page buttons configuration options.
184
148
  */
@@ -189,7 +153,6 @@ export interface PageButtonsOptions {
189
153
  * @default true
190
154
  */
191
155
  enabled?: boolean;
192
-
193
156
  /**
194
157
  * Maximum number of page number buttons to show before using ellipsis.
195
158
  *
@@ -197,7 +160,6 @@ export interface PageButtonsOptions {
197
160
  */
198
161
  count?: number;
199
162
  }
200
-
201
163
  /**
202
164
  * Page info configuration options.
203
165
  */
@@ -209,7 +171,6 @@ export interface PageInfoOptions {
209
171
  */
210
172
  enabled?: boolean;
211
173
  }
212
-
213
174
  /**
214
175
  * First/last page navigation buttons configuration options.
215
176
  */
@@ -221,7 +182,6 @@ export interface FirstLastButtonsOptions {
221
182
  */
222
183
  enabled?: boolean;
223
184
  }
224
-
225
185
  /**
226
186
  * Previous/next page navigation buttons configuration options.
227
187
  */
@@ -0,0 +1,11 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2026 Highsoft AS
4
+ * Author: Torstein Honsi
5
+ *
6
+ * A commercial license may be required depending on use.
7
+ * See www.highcharts.com/license
8
+ *
9
+ *
10
+ * */
11
+ export {};
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Filtering Controller 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 Pagination Controller 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
  * - Sebastian Bochan
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Querying Controller 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
@@ -13,6 +13,10 @@ declare class SortingController {
13
13
  * The current sorting options: column ID and sorting order.
14
14
  */
15
15
  currentSorting?: SortingState;
16
+ /**
17
+ * The current multi-column sorting options in priority order.
18
+ */
19
+ currentSortings?: SortingState[];
16
20
  /**
17
21
  * The modifier that is applied to the data table.
18
22
  */
@@ -36,6 +40,17 @@ declare class SortingController {
36
40
  * The column ID to sort by.
37
41
  */
38
42
  setSorting(order: ColumnSortingOrder, columnId?: string): void;
43
+ setSorting(sortings: SortingState[]): void;
44
+ /**
45
+ * Checks whether two sorting state arrays are equal.
46
+ *
47
+ * @param a
48
+ * First sorting state array.
49
+ *
50
+ * @param b
51
+ * Second sorting state array.
52
+ */
53
+ private static sortingsEqual;
39
54
  /**
40
55
  * Returns the sorting options from the data grid options.
41
56
  */
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Sorting Controller 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
@@ -37,23 +37,24 @@ class SortingController {
37
37
  constructor(querying) {
38
38
  this.querying = querying;
39
39
  }
40
- /* *
41
- *
42
- * Functions
43
- *
44
- * */
45
- /**
46
- * Sets the sorting state. If the new sorting state is different than the
47
- * current one, the `shouldBeUpdated` flag is set to `true`. If the
48
- * same, the flag is set to `false`.
49
- *
50
- * @param order
51
- * The sorting order.
52
- *
53
- * @param columnId
54
- * The column ID to sort by.
55
- */
56
- setSorting(order, columnId) {
40
+ setSorting(orderOrSortings, columnId) {
41
+ if (Array.isArray(orderOrSortings)) {
42
+ const sortings = orderOrSortings
43
+ .filter((sorting) => !!(sorting.columnId && sorting.order))
44
+ .map((sorting) => ({
45
+ columnId: sorting.columnId,
46
+ order: sorting.order
47
+ }));
48
+ const currentSortings = this.currentSortings || [];
49
+ if (!SortingController.sortingsEqual(sortings, currentSortings)) {
50
+ this.querying.shouldBeUpdated = true;
51
+ this.currentSortings = sortings;
52
+ this.currentSorting = sortings[0] || { order: null };
53
+ }
54
+ this.modifier = this.createModifier();
55
+ return;
56
+ }
57
+ const order = orderOrSortings;
57
58
  if (this.currentSorting?.columnId !== columnId ||
58
59
  this.currentSorting?.order !== order) {
59
60
  this.querying.shouldBeUpdated = true;
@@ -61,69 +62,106 @@ class SortingController {
61
62
  columnId,
62
63
  order
63
64
  };
65
+ this.currentSortings = (order && columnId ?
66
+ [{ columnId, order }] :
67
+ []);
64
68
  }
65
69
  this.modifier = this.createModifier();
66
70
  }
71
+ /**
72
+ * Checks whether two sorting state arrays are equal.
73
+ *
74
+ * @param a
75
+ * First sorting state array.
76
+ *
77
+ * @param b
78
+ * Second sorting state array.
79
+ */
80
+ static sortingsEqual(a, b) {
81
+ if (a.length !== b.length) {
82
+ return false;
83
+ }
84
+ for (let i = 0, iEnd = a.length; i < iEnd; ++i) {
85
+ if (a[i].columnId !== b[i].columnId ||
86
+ a[i].order !== b[i].order) {
87
+ return false;
88
+ }
89
+ }
90
+ return true;
91
+ }
67
92
  /**
68
93
  * Returns the sorting options from the data grid options.
69
94
  */
70
95
  getSortingOptions() {
71
96
  const grid = this.querying.grid, { columnOptionsMap } = grid;
72
97
  if (!columnOptionsMap) {
73
- return { order: null };
98
+ return [];
74
99
  }
75
100
  const columnIDs = Object.keys(columnOptionsMap);
76
- let foundOrder = null;
77
- let foundColumnId;
78
- for (let i = columnIDs.length - 1; i > -1; --i) {
101
+ const sortings = [];
102
+ for (let i = 0, iEnd = columnIDs.length; i < iEnd; ++i) {
79
103
  const columnId = columnIDs[i];
80
104
  const columnOptions = columnOptionsMap[columnId]?.options || {};
81
105
  const order = columnOptions.sorting?.order;
82
106
  if (order) {
83
- if (foundColumnId) {
84
- // eslint-disable-next-line no-console
85
- console.warn('Grid: Only one column can be sorted at a time. ' +
86
- 'Data will be sorted only by the last found column ' +
87
- `with the sorting order defined in the options: "${foundColumnId}".`);
88
- break;
89
- }
90
- foundOrder = order;
91
- foundColumnId = columnId;
107
+ sortings.push({
108
+ columnId,
109
+ order,
110
+ priority: columnOptions.sorting?.priority,
111
+ index: i
112
+ });
92
113
  }
93
114
  }
94
- return {
95
- columnId: foundColumnId,
96
- order: foundOrder
97
- };
115
+ if (sortings.some((sorting) => typeof sorting.priority === 'number')) {
116
+ sortings.sort((a, b) => {
117
+ const aPriority = (typeof a.priority === 'number' ?
118
+ a.priority :
119
+ Number.POSITIVE_INFINITY);
120
+ const bPriority = (typeof b.priority === 'number' ?
121
+ b.priority :
122
+ Number.POSITIVE_INFINITY);
123
+ if (aPriority !== bPriority) {
124
+ return aPriority - bPriority;
125
+ }
126
+ return a.index - b.index;
127
+ });
128
+ }
129
+ else {
130
+ sortings.reverse();
131
+ }
132
+ return sortings.map((sorting) => ({
133
+ columnId: sorting.columnId,
134
+ order: sorting.order
135
+ }));
98
136
  }
99
137
  /**
100
138
  * Loads sorting options from the data grid options.
101
139
  */
102
140
  loadOptions() {
103
- const stateFromOptions = this.getSortingOptions();
104
- if (stateFromOptions.columnId !== this.currentSorting?.columnId ||
105
- stateFromOptions.order !== this.currentSorting?.order) {
106
- this.setSorting(stateFromOptions.order, stateFromOptions.columnId);
141
+ const sortingsFromOptions = this.getSortingOptions();
142
+ if (!SortingController.sortingsEqual(sortingsFromOptions, this.currentSortings || [])) {
143
+ this.setSorting(sortingsFromOptions);
107
144
  }
108
145
  }
109
146
  /**
110
147
  * Returns the sorting modifier based on the loaded sorting options.
111
148
  */
112
149
  createModifier() {
113
- if (!this.currentSorting) {
114
- return;
115
- }
116
- const { columnId, order } = this.currentSorting;
117
- if (!order || !columnId) {
150
+ const sortings = (this.currentSortings ||
151
+ (this.currentSorting ? [this.currentSorting] : [])).filter((sorting) => !!(sorting.columnId && sorting.order));
152
+ if (!sortings.length) {
118
153
  return;
119
154
  }
120
155
  const grid = this.querying.grid;
156
+ const defaultCompare = grid.options?.columnDefaults?.sorting?.compare;
121
157
  return new SortModifier({
122
- orderByColumn: columnId,
123
- direction: order,
124
- compare: grid.columnOptionsMap?.[columnId]?.options
125
- ?.sorting?.compare ||
126
- grid.options?.columnDefaults?.sorting?.compare
158
+ direction: sortings[0].order,
159
+ columns: sortings.map((sorting) => ({
160
+ column: sorting.columnId,
161
+ direction: sorting.order,
162
+ compare: grid.columnOptionsMap?.[sorting.columnId]
163
+ ?.options?.sorting?.compare || defaultCompare
164
+ }))
127
165
  });
128
166
  }
129
167
  }
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid ColumnFiltering 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
@@ -8,7 +8,7 @@ declare class FilterCell extends HeaderCell {
8
8
  column: Column;
9
9
  constructor(row: Row, column: Column);
10
10
  render(): void;
11
- protected onKeyDown(e: KeyboardEvent): void;
12
- protected onClick(e: MouseEvent): void;
11
+ onKeyDown(e: KeyboardEvent): void;
12
+ onClick(e: MouseEvent): void;
13
13
  }
14
14
  export default FilterCell;
@@ -2,11 +2,11 @@
2
2
  *
3
3
  * Grid Filter Cell 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 FilteringRow 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 Filtering Types and Constants
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
@@ -26,6 +26,10 @@ declare class ColumnSorting {
26
26
  * Adds attributes to the column header.
27
27
  */
28
28
  private addHeaderElementAttributes;
29
+ /**
30
+ * Refreshes the sorting-related header attributes and classes.
31
+ */
32
+ refreshHeaderAttributes(): void;
29
33
  /**
30
34
  * Updates the column options with the new sorting state.
31
35
  *
@@ -40,12 +44,18 @@ declare class ColumnSorting {
40
44
  * @param order
41
45
  * The order of sorting. It can be `'asc'`, `'desc'` or `null` if the
42
46
  * sorting should be disabled.
47
+ *
48
+ * @param additive
49
+ * Whether to add this sort to existing sorts or replace them.
43
50
  */
44
- setOrder(order: ColumnSortingOrder): Promise<void>;
51
+ setOrder(order: ColumnSortingOrder, additive?: boolean): Promise<void>;
45
52
  /**
46
53
  * Toggle sorting order for the column in the order: asc -> desc -> none
54
+ *
55
+ * @param e
56
+ * Optional mouse or keyboard event.
47
57
  */
48
- toggle: () => void;
58
+ toggle: (e?: MouseEvent | KeyboardEvent) => void;
49
59
  }
50
60
  export interface ColumnSortingEvent {
51
61
  target: Column;