@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
@@ -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,21 @@ 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
-
141
+ /**
142
+ * Alignment of the pagination elements within the wrapper.
143
+ */
144
+ align?: 'left' | 'center' | 'right' | 'distributed';
176
145
  /**
177
146
  * Controls options for pagination UI elements.
178
147
  */
179
148
  controls?: PaginationControlsOptions;
180
149
  }
181
-
182
150
  /**
183
151
  * Page buttons configuration options.
184
152
  */
@@ -189,7 +157,6 @@ export interface PageButtonsOptions {
189
157
  * @default true
190
158
  */
191
159
  enabled?: boolean;
192
-
193
160
  /**
194
161
  * Maximum number of page number buttons to show before using ellipsis.
195
162
  *
@@ -197,7 +164,6 @@ export interface PageButtonsOptions {
197
164
  */
198
165
  count?: number;
199
166
  }
200
-
201
167
  /**
202
168
  * Page info configuration options.
203
169
  */
@@ -209,7 +175,6 @@ export interface PageInfoOptions {
209
175
  */
210
176
  enabled?: boolean;
211
177
  }
212
-
213
178
  /**
214
179
  * First/last page navigation buttons configuration options.
215
180
  */
@@ -221,7 +186,6 @@ export interface FirstLastButtonsOptions {
221
186
  */
222
187
  enabled?: boolean;
223
188
  }
224
-
225
189
  /**
226
190
  * Previous/next page navigation buttons configuration options.
227
191
  */
@@ -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
@@ -14,8 +14,7 @@
14
14
  * */
15
15
  'use strict';
16
16
  import FilterModifier from '../../../Data/Modifiers/FilterModifier.js';
17
- import U from '../../../Core/Utilities.js';
18
- const { isString } = U;
17
+ import { isString } from '../../../Shared/Utilities.js';
19
18
  /* *
20
19
  *
21
20
  * Class
@@ -23,7 +23,7 @@ declare class PaginationController {
23
23
  /**
24
24
  * The number of rows before pagination.
25
25
  */
26
- private _totalItems?;
26
+ totalItemsCount?: number;
27
27
  /**
28
28
  * Constructs the PaginationController instance.
29
29
  *
@@ -32,7 +32,7 @@ declare class PaginationController {
32
32
  */
33
33
  constructor(querying: QueryingController);
34
34
  /**
35
- * Total number of items (rows)
35
+ * Total number of items (rows before pagination).
36
36
  */
37
37
  get totalItems(): number;
38
38
  /**
@@ -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
@@ -52,10 +52,10 @@ class PaginationController {
52
52
  *
53
53
  * */
54
54
  /**
55
- * Total number of items (rows)
55
+ * Total number of items (rows before pagination).
56
56
  */
57
57
  get totalItems() {
58
- return this._totalItems ?? this.querying.grid.dataTable?.rowCount ?? 0;
58
+ return this.totalItemsCount ?? 0;
59
59
  }
60
60
  /**
61
61
  * Gets the total number of pages.
@@ -126,7 +126,7 @@ class PaginationController {
126
126
  // Calculate the start index (0-based)
127
127
  const start = (currentPage - 1) * pageSize;
128
128
  const end = Math.min(start + pageSize, rowsCountBeforePagination);
129
- this._totalItems = rowsCountBeforePagination;
129
+ this.totalItemsCount = rowsCountBeforePagination;
130
130
  return new RangeModifier({
131
131
  start,
132
132
  end
@@ -51,7 +51,7 @@ declare class QueryingController {
51
51
  */
52
52
  getGroupedModifiers(): DataModifier[];
53
53
  /**
54
- * Apply all modifiers to the data table.
54
+ * Apply all modifiers to the data provider.
55
55
  */
56
56
  private modifyData;
57
57
  }
@@ -2,18 +2,17 @@
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
13
  *
14
14
  * */
15
15
  'use strict';
16
- import ChainModifier from '../../../Data/Modifiers/ChainModifier.js';
17
16
  import SortingController from './SortingController.js';
18
17
  import FilteringController from './FilteringController.js';
19
18
  import PaginationController from './PaginationController.js';
@@ -89,33 +88,10 @@ class QueryingController {
89
88
  return modifiers;
90
89
  }
91
90
  /**
92
- * Apply all modifiers to the data table.
91
+ * Apply all modifiers to the data provider.
93
92
  */
94
93
  async modifyData() {
95
- const originalDataTable = this.grid.dataTable;
96
- if (!originalDataTable) {
97
- return;
98
- }
99
- const groupedModifiers = this.getGroupedModifiers();
100
- let interTable;
101
- // Grouped modifiers
102
- if (groupedModifiers.length > 0) {
103
- const chainModifier = new ChainModifier({}, ...groupedModifiers);
104
- const dataTableCopy = originalDataTable.clone();
105
- await chainModifier.modify(dataTableCopy.getModified());
106
- interTable = dataTableCopy.getModified();
107
- }
108
- else {
109
- interTable = originalDataTable.getModified();
110
- }
111
- // Pagination modifier
112
- const paginationModifier = this.pagination.createModifier(interTable.rowCount);
113
- if (paginationModifier) {
114
- interTable = interTable.clone();
115
- await paginationModifier.modify(interTable);
116
- interTable = interTable.getModified();
117
- }
118
- this.grid.presentationTable = interTable;
94
+ await this.grid.dataProvider?.applyQuery();
119
95
  this.shouldBeUpdated = false;
120
96
  }
121
97
  }
@@ -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
  }
@@ -0,0 +1,53 @@
1
+ import type { DeepPartial } from '../../../Shared/Types';
2
+ import type Grid from '../../Core/Grid';
3
+ import type { Options } from '../Options';
4
+ import type { ResponsiveOptions, RuleOptions } from './ResponsiveOptions';
5
+ /**
6
+ * Extends the grid classes with responsive options.
7
+ *
8
+ * @param GridClass
9
+ * The class to extend.
10
+ *
11
+ */
12
+ export declare function compose(GridClass: typeof Grid): void;
13
+ declare module '../Options' {
14
+ interface Options {
15
+ /**
16
+ * Allows setting a set of rules to apply for different screen or grid
17
+ * sizes. Each rule specifies additional grid options.
18
+ */
19
+ responsive?: ResponsiveOptions;
20
+ }
21
+ }
22
+ declare module '../Grid' {
23
+ export default interface Grid {
24
+ /**
25
+ * Tracks the ResizeObserver instance for the grid.
26
+ * @private
27
+ */
28
+ resizeObserver?: ResizeObserver;
29
+ /**
30
+ * Cache of currently active responsive rules.
31
+ * @private
32
+ */
33
+ activeRules?: Set<RuleOptions>;
34
+ /**
35
+ * Stores merged responsive options and undo data.
36
+ * @private
37
+ */
38
+ currentResponsive?: {
39
+ ruleIds?: string;
40
+ mergedOptions: DeepPartial<Options>;
41
+ undoOptions: DeepPartial<Options>;
42
+ };
43
+ /**
44
+ * Prevents recursive updates during responsive changes.
45
+ * @private
46
+ */
47
+ updatingResponsive?: boolean;
48
+ }
49
+ }
50
+ declare const _default: {
51
+ readonly compose: typeof compose;
52
+ };
53
+ export default _default;